diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 5f6112b363..0000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,46 +0,0 @@ -# Builds the project with every commit to confirm that the mod works. - -# Based on fabric-example-mod's workflow, with more comments. - -name: build -on: [pull_request, push] - -jobs: - build: - strategy: - matrix: - # Use these Java versions - java: [17] # Current Java LTS & minimum supported by Minecraft - # Test on both Linux and Windows - os: [ubuntu-20.04, windows-latest] - - runs-on: ${{ matrix.os }} - - steps: - - name: checkout repository - uses: actions/checkout@v2 - - - name: validate gradle wrapper - uses: gradle/wrapper-validation-action@v1 - - - name: setup jdk ${{ matrix.java }} - uses: actions/setup-java@v1 - with: - java-version: ${{ matrix.java }} - - - name: make gradle wrapper executable - # Linux requires that files are marked executable - if: ${{ runner.os != 'Windows' }} - run: chmod +x ./gradlew - - - name: build - run: ./gradlew build - - - name: capture build artifacts - # Only capture artifacts from one OS (Linux) - if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v2 - with: - name: Artifacts - path: build/libs/ - diff --git a/build.gradle b/build.gradle index 67283d0f17..f4bdb3a976 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.12-SNAPSHOT' + id 'fabric-loom' version '1.0-SNAPSHOT' id 'maven-publish' } @@ -12,12 +12,13 @@ group = project.maven_group repositories { //mavenLocal() + maven { url 'https://jitpack.io' } maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.terraformersmc.com" } - maven { + /*maven { name = "Enchantment Descriptions" url = 'https://maven.blamejared.com' - } + }*/ maven { name = "Patchouli" // https://github.com/Vazkii/Patchouli url = 'https://maven.blamejared.com' @@ -27,52 +28,30 @@ repositories { url = 'https://ladysnake.jfrog.io/artifactory/mods' } maven { - url 'https://api.modrinth.com/maven' - content { - includeGroup "maven.modrinth" - } + name = "entity reach attribute" + url = "https://maven.jamieswhiteshirt.com/libs-release/" } - maven { - name = "banner++" - url "https://maven.theepicblock.nl" - } - maven { - name "entity reach attribute" - url "https://maven.jamieswhiteshirt.com/libs-release/" - } - /*maven { - name "bannerpp" - url 'https://server.bbkr.space/artifactory/libs-release/' - }*/ maven { url 'https://maven.wispforest.io/' } // owo lib - maven { url 'https://jitpack.io' } - //maven { url 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' } - - maven { - name = "ProgrammerArtInjector" - url = 'https://maven.extracraftx.com' - } - - maven { - name = "Shimmer" - url = 'https://maven.firstdarkdev.xyz/snapshots' - } - maven { - url "https://maven.ryanliptak.com/" + url = "https://api.modrinth.com/maven" + content { + includeGroup "maven.modrinth" + } } - maven { name = "Curse" url = 'https://cfa2.cursemaven.com' } + mavenCentral() } dependencies { // jetbrains annotations - implementation 'org.jetbrains:annotations:23.0.0' + implementation 'org.jetbrains:annotations:23.1.0' - // fabric + implementation include('org.jgrapht:jgrapht-core:1.5.1') + + // fabric & api minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" @@ -82,21 +61,25 @@ dependencies { modImplementation "com.github.DaFuqs:Revelationary:${project.revelationary_version}" modImplementation include("com.github.DaFuqs:AdditionalEntityAttributes:${project.additional_entity_attributes_version}") modImplementation include("com.github.DaFuqs:Arrowhead:${project.arrowhead_version}") + modImplementation include("com.github.DaFuqs:DimensionalReverb:${project.dimensional_reverb_version}") + + modImplementation include("com.github.devs-immortal:Incubus-Core:${project.incubus_core_version}") + // we need a bit of concern + - modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}"){ + modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") { exclude(group: "net.fabricmc.fabric-api") } modApi("com.terraformersmc:modmenu:${project.modmenu_version}") - implementation include("com.github.LlamaLad7:MixinExtras:0.0.12") - annotationProcessor("com.github.LlamaLad7:MixinExtras:0.0.12") - - modImplementation "vazkii.patchouli:Patchouli:${project.patchouli_version}" // https://maven.blamejared.com/vazkii/patchouli/Patchouli/ - modImplementation "io.wispforest:owo-lib:${project.owo_version}+1.18" + modImplementation "vazkii.patchouli:Patchouli:${project.patchouli_version}" + // https://maven.blamejared.com/vazkii/patchouli/Patchouli/ + modImplementation "io.wispforest:owo-lib:${project.owo_version}" // https://github.com/shedaniel/RoughlyEnoughItems modCompileOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" + modApi "dev.architectury:architectury-fabric:${project.architectury_version}" // https://github.com/emilyploszaj/trinkets modImplementation "dev.emi:trinkets:${project.trinkets_version}" @@ -107,30 +90,20 @@ dependencies { modImplementation include("dev.onyxstudios.cardinal-components-api:cardinal-components-item:${project.cca_version}") modImplementation include("dev.onyxstudios.cardinal-components-api:cardinal-components-level:${project.cca_version}") - // https://github.com/TheEpicBlock/banner-plus-plus - modImplementation include("io.github.fablabsmc:bannerpp:2.0.6-teb.1+mc.1.18.2") modImplementation include("com.github.emilyploszaj:step-height-entity-attribute:${project.step_height_attribute_version}") + modImplementation include("com.jamieswhiteshirt:reach-entity-attributes:${project.reach_entity_attributes_version}") - modImplementation include("com.jamieswhiteshirt:reach-entity-attributes:2.1.1") - modImplementation include("com.github.devs-immortal:Incubus-Core:${project.incubus_core_version}") - //modImplementation include("com.github.devs-immortal:Some-Assembly-Required:${project.sar_version}") - //modImplementation include("com.github.devs-immortal:Divine-Intervention:${project.divine_intervention_version}") - modImplementation("com.github.LudoCrypt:Liminal-Library:5.2.1") + implementation include("com.github.LlamaLad7:MixinExtras:${project.mixin_extras_version}") + annotationProcessor("com.github.LlamaLad7:MixinExtras:${project.mixin_extras_version}") - // includes the textures in the "programmer art" folder in the programmer art texture pack - modImplementation "com.extracraftx.minecraft:ProgrammerArtInjector:${project.programmer_art_injector_version}" - include "com.extracraftx.minecraft:ProgrammerArtInjector:${project.programmer_art_injector_version}" + // https://github.com/Terrails/HealthOverlay + // Thanks to yurisuika's Raised for the head-up (https://github.com/yurisuika/Raised/blob/Fabric-1.19/build.gradle) + modCompileOnly ("curse.maven:health-overlay-fabric-313219:${project.health_overlay_version}") {transitive = false} // Soft testing-only dependencies: // Descriptions for all Enchantments https://maven.blamejared.com/net/darkhax/enchdesc/ - modCompileOnly("net.darkhax.enchdesc:EnchantmentDescriptions-Common-${project.enchantment_descriptions_mc_version}:${project.enchantment_descriptions_mod_version}") - modRuntimeOnly("squeek.appleskin:appleskin-fabric:mc1.18.2-2.4.1") { exclude module: 'modmenu' } - - //modImplementation "io.wispforest:jello:${project.jello_version}" - - // colored lights: purely soft dependencies - // https://github.com/Gegy/colored-lights // uses colored_lights/light_colors.json - // modImplementation "com.lowdragmc.shimmer:Shimmer-fabric-1.18.2:0.1.9" + //modCompileOnly("net.darkhax.enchdesc:EnchantmentDescriptions-Common-${project.enchantment_descriptions_mc_version}:${project.enchantment_descriptions_mod_version}") + //modRuntimeOnly("squeek.appleskin:appleskin-fabric:mc1.18.2-2.4.1") { exclude module: 'modmenu' } } loom { diff --git a/credits/Gates of Hell (Gate Slam 1) by magnuswaker.URL b/credits/Gates of Hell (Gate Slam 1) by magnuswaker.URL new file mode 100644 index 0000000000..9ccc37d930 --- /dev/null +++ b/credits/Gates of Hell (Gate Slam 1) by magnuswaker.URL @@ -0,0 +1,4 @@ +[InternetShortcut] +https://freesound.org/people/magnuswaker/sounds/528264/ + +Used for the Ground Slam \ No newline at end of file diff --git a/credits/Slamming.mp3 by payattention.URL b/credits/Slamming.mp3 by payattention.URL new file mode 100644 index 0000000000..c322ff530a --- /dev/null +++ b/credits/Slamming.mp3 by payattention.URL @@ -0,0 +1,4 @@ +[InternetShortcut] +https://freesound.org/people/payattention/sounds/81004/ + +Used for the Ground Slam Charge \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index cfd38030f8..233ec7553e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,41 +1,41 @@ # Done to increase the memory available to gradle. -org.gradle.jvmargs = -Xmx2G +org.gradle.jvmargs=-Xmx2G # Fabric Properties -minecraft_version=1.18.2 -yarn_mappings=1.18.2+build.3 -loader_version=0.14.9 - +minecraft_version=1.19.2 +yarn_mappings=1.19.2+build.28 +loader_version=0.14.11 # Mod Properties -mod_version = 1.6.0-1.18.2-leisure_time -maven_group = de.dafuqs.spectrum -archives_base_name = spectrum - +mod_version=1.7.0-deeper-down +maven_group=de.dafuqs.spectrum +archives_base_name=spectrum # Dependencies -# last updated 29.05.2022 - +# last updated 14.08.2022 # https://fabricmc.net/develop/ -fabric_version=0.57.0+1.18.2 -cloth_config_version=6.2.57 -modmenu_version=3.0.1 -rei_version=8.3.510 -patchouli_version=1.18.2-71.1-FABRIC +fabric_version=0.69.0+1.19.2 +cloth_config_version=8.2.88 +modmenu_version=4.0.6 +rei_version=9.1.572 +architectury_version=6.+ +# https://maven.blamejared.com/vazkii/patchouli/Patchouli/ +patchouli_version=1.19.2-77-FABRIC # https://maven.blamejared.com/net/darkhax/enchdesc/ -enchantment_descriptions_mc_version=1.18.2 -enchantment_descriptions_mod_version=10.0.3 -owo_version=0.7.2 +enchantment_descriptions_mc_version=1.19.1 +enchantment_descriptions_mod_version=12.0.2 +owo_version=0.7.3+1.19 # https://maven.terraformersmc.com/releases/dev/emi/trinkets/ -trinkets_version=3.3.1 +trinkets_version=3.4.0 +# https://github.com/emilyploszaj/step-height-entity-attribute step_height_attribute_version=1.0.1 # https://jitpack.io/#devs-immortal/Incubus-Core -incubus_core_version=1.8.0.indev-1 -sar_version=0.4.0-beta1 -divine_intervention_version=2.0.0 -cca_version=4.1.4 -additional_entity_attributes_version=1.18.2-SNAPSHOT -satin_version=1.7.2 -revelationary_version=1.0.0 -programmer_art_injector_version=1.2.1 -jello_version=3.2.2+1.18.2 -botania_version=1.18.2-435-FABRIC -arrowhead_version=9245e8beb4 \ No newline at end of file +incubus_core_version=1.9.4 +cca_version=5.0.1 +additional_entity_attributes_version=8d8c41489b +revelationary_version=1.3.1 +# https://github.com/JamiesWhiteShirt/reach-entity-attributes +reach_entity_attributes_version=2.3.0 +arrowhead_version=ad8ef53b00 +mixin_extras_version=0.1.1 +# https://github.com/Terrails/HealthOverlay +health_overlay_version=4293389 +dimensional_reverb_version=5f5509b468 \ No newline at end of file diff --git a/hs_err_pid12860.log b/hs_err_pid12860.log new file mode 100644 index 0000000000..69f9a59e5a --- /dev/null +++ b/hs_err_pid12860.log @@ -0,0 +1,1575 @@ +# +# A fatal error has been detected by the Java Runtime Environment: +# +# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff0b2dc261, pid=12860, tid=16780 +# +# JRE version: OpenJDK Runtime Environment (17.0.2+8) (build 17.0.2+8-86) +# Java VM: OpenJDK 64-Bit Server VM (17.0.2+8-86, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64) +# Problematic frame: +# V [jvm.dll+0x5fc261] +# +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# +# If you would like to submit a bug report, please visit: +# https://bugreport.java.com/bugreport/crash.jsp +# + +--------------- S U M M A R Y ------------ + +Command Line: --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2G -Dfile.encoding=windows-1252 -Duser.country=DE -Duser.language=de -Duser.variant org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.3 + +Host: AMD Ryzen 7 3700X 8-Core Processor , 16 cores, 47G, Windows 10 , 64 bit Build 19041 (10.0.19041.2546) +Time: Sun Mar 5 17:06:48 2023 Mitteleuropäische Zeit elapsed time: 52.358753 seconds (0d 0h 0m 52s) + +--------------- T H R E A D --------------- + +Current thread (0x0000000023f16b40): GCTaskThread "GC Thread#2" [stack: 0x0000000025500000,0x0000000025600000] [id=16780] + +Stack: [0x0000000025500000,0x0000000025600000], sp=0x00000000255ff970, free space=1022k +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x5fc261] +V [jvm.dll+0x302777] +V [jvm.dll+0x303840] +V [jvm.dll+0x30056e] +V [jvm.dll+0x30ebc3] +V [jvm.dll+0x310b6e] +V [jvm.dll+0x30f20d] +V [jvm.dll+0x31072a] +V [jvm.dll+0x2db4c3] +V [jvm.dll+0x2dceeb] +V [jvm.dll+0x7fd27b] +V [jvm.dll+0x7fd2c6] +V [jvm.dll+0x77ff7a] +V [jvm.dll+0x66fa35] +C [ucrtbase.dll+0x21bb2] +C [KERNEL32.DLL+0x17614] +C [ntdll.dll+0x526a1] + + +siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0xffffffffffffffff + + +Register to memory mapping: + +RIP=0x00007fff0b2dc261 jvm.dll +RAX=0x000000000000003a is an unknown value +RBX=0x00000000255ff9f0 points into unknown readable memory: 0x000000008dc5fffc | fc ff c5 8d 00 00 00 00 +RCX=0x00000000255ff9e0 points into unknown readable memory: 0x6f68537463617274 | 74 72 61 63 74 53 68 6f +RDX=0x00000000255ff9f0 points into unknown readable memory: 0x000000008dc5fffc | fc ff c5 8d 00 00 00 00 +RSP=0x00000000255ff970 points into unknown readable memory: 0x0000000092b439cc | cc 39 b4 92 00 00 00 00 +RBP=0x0 is NULL +RSI=0x0000000092b439cc is pointing into object: com.google.common.collect.HashBiMap$BiEntry +{0x0000000092b439c0} - klass: 'com/google/common/collect/HashBiMap$BiEntry' + - ---- fields (total size 6 words): + - final 'key' 'Ljava/lang/Object;' @12 +[error occurred during error reporting (printing register info), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff0b33d349] + +Registers: +RAX=0x000000000000003a, RBX=0x00000000255ff9f0, RCX=0x00000000255ff9e0, RDX=0x00000000255ff9f0 +RSP=0x00000000255ff970, RBP=0x0000000000000000, RSI=0x0000000092b439cc, RDI=0x00000000255ff9e0 +R8 =0x6f68537463617274, R9 =0x0000000801507472, R10=0x000000009d9677b0, R11=0x00007fff2c1b15c3 +R12=0x000000000001002a, R13=0x0000000000000000, R14=0x00000000265e1790, R15=0x0000000801507472 +RIP=0x00007fff0b2dc261, EFLAGS=0x0000000000010246 + +Top of Stack: (sp=0x00000000255ff970) +0x00000000255ff970: 0000000092b439cc 00000000265e1910 +0x00000000255ff980: 00000008014248e8 00000000265e1790 +0x00000000255ff990: 0000000801424698 00000000265e1790 +0x00000000255ff9a0: 000000009d9677b0 00007fff0afe2777 +0x00000000255ff9b0: 0000000000000001 000000009d96f7c0 +0x00000000255ff9c0: 0000000000000001 00000000852d8000 +0x00000000255ff9d0: 0000000000000000 00007fff00000000 +0x00000000255ff9e0: 6f68537463617274 00000000219dd5f0 +0x00000000255ff9f0: 000000008dc5fffc 00007fff0afe8d89 +0x00000000255ffa00: 0000000000000001 0000000000000000 +0x00000000255ffa10: 0000000000000040 0000000002b2f960 +0x00000000255ffa20: 00000000255ffcd0 00000000265e1790 +0x00000000255ffa30: 0000000092b439cc 000000000000a22d +0x00000000255ffa40: 0000000092b439cd 00007fff0afe3840 +0x00000000255ffa50: 0000000000060000 0000000000460001 +0x00000000255ffa60: 0000000000000008 6f68537463617274 + +Instructions: (pc=0x00007fff0b2dc261) +0x00007fff0b2dc161: 13 a5 49 00 48 03 0d 04 a5 49 00 48 8b 15 5d 56 +0x00007fff0b2dc171: 4f 00 48 03 d1 48 8d 0d e3 78 33 00 e8 ae 95 c4 +0x00007fff0b2dc181: ff 48 39 1d 47 56 4f 00 76 29 48 8b d3 66 90 48 +0x00007fff0b2dc191: 8b 05 49 56 4f 00 48 8d 52 10 48 ff c3 48 8b 4c +0x00007fff0b2dc1a1: 02 f8 48 8b 44 02 f0 48 89 08 48 3b 1d 1e 56 4f +0x00007fff0b2dc1b1: 00 72 dc 48 8b 0d cd a4 49 00 48 85 c9 74 68 48 +0x00007fff0b2dc1c1: 89 7c 24 30 48 8b 05 a4 a4 49 00 48 83 e8 01 48 +0x00007fff0b2dc1d1: 89 05 99 a4 49 00 48 8b 3c c1 75 0c 48 8d 0d 6c +0x00007fff0b2dc1e1: a4 49 00 e8 f7 e0 c4 ff 48 8b 05 30 a4 49 00 48 +0x00007fff0b2dc1f1: 8b 1d 41 a4 49 00 48 83 e8 01 48 89 05 1e a4 49 +0x00007fff0b2dc201: 00 48 8b 1c c3 75 0c 48 8d 0d f1 a3 49 00 e8 cc +0x00007fff0b2dc211: e0 c4 ff 48 89 1f 48 8b 0d 6a a4 49 00 48 85 c9 +0x00007fff0b2dc221: 75 a2 48 8b 7c 24 30 48 83 c4 20 5b c3 cc cc 48 +0x00007fff0b2dc231: 89 0d b1 55 4f 00 48 89 0d 72 a4 49 00 c3 cc 48 +0x00007fff0b2dc241: 89 5c 24 08 57 48 83 ec 30 4c 8b 01 48 8b da 41 +0x00007fff0b2dc251: 0f b6 c0 48 8b f9 d0 e8 a8 01 74 18 49 83 f0 02 +0x00007fff0b2dc261: 49 8b 00 48 89 02 48 8b c3 48 8b 5c 24 40 48 83 +0x00007fff0b2dc271: c4 30 5f c3 41 f6 c0 03 74 e6 4c 89 44 24 20 4c +0x00007fff0b2dc281: 8d 0d f1 77 33 00 41 b8 2b 00 00 00 48 8d 15 fc +0x00007fff0b2dc291: 77 33 00 b9 00 00 00 e0 e8 e2 65 c4 ff e8 7d 44 +0x00007fff0b2dc2a1: 07 00 48 8b 07 48 89 03 48 8b c3 48 8b 5c 24 40 +0x00007fff0b2dc2b1: 48 83 c4 30 5f c3 cc cc cc cc cc cc cc cc cc 48 +0x00007fff0b2dc2c1: 83 ec 38 4c 8b 01 41 0f b6 c0 d0 e8 a8 01 74 0c +0x00007fff0b2dc2d1: 49 83 f0 02 49 89 10 48 83 c4 38 c3 41 f6 c0 03 +0x00007fff0b2dc2e1: 74 f2 4c 89 44 24 20 4c 8d 0d 89 77 33 00 41 b8 +0x00007fff0b2dc2f1: 3d 00 00 00 48 8d 15 94 77 33 00 b9 00 00 00 e0 +0x00007fff0b2dc301: e8 7a 65 c4 ff 48 83 c4 38 e9 11 44 07 00 cc 48 +0x00007fff0b2dc311: 89 5c 24 08 48 89 6c 24 10 48 89 74 24 18 57 41 +0x00007fff0b2dc321: 56 41 57 48 83 ec 20 ba 06 00 00 00 48 8b f9 e8 +0x00007fff0b2dc331: 4b 80 09 00 48 8d 05 7c 7b 33 00 ba 06 00 00 00 +0x00007fff0b2dc341: 41 b8 d8 27 00 00 48 89 07 48 8d 8f 88 09 00 00 +0x00007fff0b2dc351: e8 6a df aa ff 48 8d 8f b8 09 00 00 48 8d 97 88 + + +Stack slot to memory mapping: +stack at sp + 0 slots: 0x0000000092b439cc is pointing into object: com.google.common.collect.HashBiMap$BiEntry +{0x0000000092b439c0} - klass: 'com/google/common/collect/HashBiMap$BiEntry' + - ---- fields (total size 6 words): + - final 'key' 'Ljava/lang/Object;' @12 +[error occurred during error reporting (inspecting top of stack), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007fff0b33d349] + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000000003548f330, length=245, elements={ +0x0000000002b41100, 0x0000000021e4f3b0, 0x0000000021e4fd70, 0x0000000021e59ff0, +0x0000000021e5a8b0, 0x0000000021e5b170, 0x0000000021e5ba30, 0x0000000021e5c620, +0x0000000021e6aa00, 0x0000000021e73ad0, 0x0000000021faa1e0, 0x0000000021faa8d0, +0x0000000024c393e0, 0x000000002681a3b0, 0x00000000246b8b50, 0x0000000024cf8e10, +0x0000000026177b70, 0x0000000024f3b2f0, 0x000000002467b050, 0x00000000251cc100, +0x00000000251cebd0, 0x00000000245b35b0, 0x00000000245b4420, 0x00000000245b2c10, +0x00000000245b1da0, 0x00000000245b48f0, 0x00000000245b2740, 0x00000000245b4dc0, +0x00000000245b3f50, 0x00000000245b5760, 0x000000002ae85400, 0x000000002ae86c10, +0x000000002ae840c0, 0x000000002ae86270, 0x000000002ae875b0, 0x0000000029bad780, +0x0000000029babaa0, 0x0000000029baf930, 0x0000000029bacde0, 0x0000000029bb2480, +0x0000000029baeac0, 0x0000000029babf70, 0x0000000029bafe00, 0x0000000029bae5f0, +0x0000000029bb1140, 0x0000000029bb2950, 0x0000000029bb1610, 0x0000000029bb02d0, +0x0000000029baef90, 0x0000000029bae120, 0x0000000029bb07a0, 0x0000000029baf460, +0x0000000029bb1ae0, 0x0000000029bab100, 0x0000000029bac910, 0x0000000029bad2b0, +0x0000000029badc50, 0x000000002b605550, 0x000000002b602060, 0x000000002b602530, +0x000000002b605a20, 0x000000002b602ed0, 0x000000002b604bb0, 0x000000002b607700, +0x000000002b605ef0, 0x000000002b606890, 0x000000002b602a00, 0x000000002b607230, +0x000000002b6033a0, 0x000000002b6063c0, 0x000000002b6016c0, 0x000000002b603d40, +0x000000002b5ffeb0, 0x000000002b606d60, 0x000000002b601b90, 0x000000002b605080, +0x000000002b600d20, 0x000000002b600380, 0x000000002b600850, 0x000000002b603870, +0x000000002b604210, 0x000000002b6011f0, 0x000000002b6046e0, 0x000000002c84f990, +0x000000002c84eff0, 0x000000002c84ce40, 0x000000002c853cf0, 0x000000002c84d310, +0x000000002c84d7e0, 0x000000002c84dcb0, 0x000000002c84e180, 0x0000000026a08c70, +0x0000000026a07e00, 0x0000000026a065f0, 0x0000000026a06f90, 0x0000000026a09140, +0x0000000026a082d0, 0x0000000026a07460, 0x0000000026a07930, 0x0000000026a087a0, +0x0000000026a09610, 0x000000002a03e2a0, 0x000000002a03bc20, 0x000000002a03c0f0, +0x000000002a03a410, 0x000000002a03c5c0, 0x000000002a03ec40, 0x000000002a03ca90, +0x000000002a03ff80, 0x000000002a039a70, 0x000000002a038c00, 0x000000002a039f40, +0x000000002a03cf60, 0x000000002a038730, 0x000000002a03a8e0, 0x000000002a03d430, +0x000000002a03adb0, 0x000000002a03b750, 0x000000002a03b280, 0x000000002a0390d0, +0x000000002a03f5e0, 0x000000002a03d900, 0x000000002a03fab0, 0x000000002a03ddd0, +0x000000002a0395a0, 0x000000002a03e770, 0x000000002a03f110, 0x00000000339da3c0, +0x00000000339dbbd0, 0x00000000339dca40, 0x00000000339df0c0, 0x00000000339de720, +0x00000000339dcf10, 0x00000000339dc0a0, 0x00000000339d9080, 0x00000000339dfa60, +0x00000000339db230, 0x00000000339dc570, 0x00000000339dff30, 0x00000000339d9550, +0x00000000339db700, 0x00000000339da890, 0x00000000339df590, 0x00000000339e0400, +0x00000000339dd3e0, 0x00000000339e08d0, 0x00000000339debf0, 0x00000000339d9a20, +0x00000000339dad60, 0x00000000339d9ef0, 0x00000000339dd8b0, 0x00000000339ddd80, +0x00000000339de250, 0x0000000035ca8c40, 0x0000000035cac600, 0x0000000035ca7430, +0x0000000035ca7900, 0x0000000035ca9f80, 0x0000000035cacad0, 0x0000000035ca9ab0, +0x0000000035ca60f0, 0x0000000035ca6f60, 0x0000000035ca6a90, 0x0000000035caa450, +0x0000000035ca7dd0, 0x0000000035ca65c0, 0x0000000035ca82a0, 0x0000000035cab790, +0x0000000035cabc60, 0x0000000035ca9110, 0x0000000035ca8770, 0x0000000035ca95e0, +0x0000000035caa920, 0x0000000035caadf0, 0x0000000035cab2c0, 0x0000000035cac130, +0x0000000035cacfa0, 0x0000000035ca5750, 0x0000000035ca5c20, 0x000000002c73d3f0, +0x000000002c739f00, 0x000000002c73dd90, 0x000000002c738220, 0x000000002c73e730, +0x000000002c737d50, 0x000000002c73b240, 0x000000002c73ca50, 0x000000002c73b710, +0x000000002c73bbe0, 0x000000002c7386f0, 0x000000002c73d8c0, 0x000000002c736ee0, +0x000000002c73c0b0, 0x000000002c738bc0, 0x000000002c739560, 0x000000002c73c580, +0x000000002c73e260, 0x000000002c7373b0, 0x000000002c73cf20, 0x000000002c739090, +0x000000002c737880, 0x000000002c739a30, 0x000000002c73a3d0, 0x000000002c73a8a0, +0x000000002c73ad70, 0x000000002ad8f540, 0x000000002ad90880, 0x000000002ad8eba0, +0x000000002ad92a30, 0x000000002ad92f00, 0x000000002ad8f070, 0x000000002ad916f0, +0x000000002ad8c520, 0x000000002ad94240, 0x000000002ad8e6d0, 0x000000002ad8e200, +0x000000002ad8fa10, 0x000000002ad91bc0, 0x000000002ad8fee0, 0x000000002ad8c9f0, +0x000000002ad903b0, 0x000000002ad90d50, 0x000000002ad91220, 0x000000002ad8d390, +0x000000002ad92090, 0x000000002ad92560, 0x000000002ad933d0, 0x000000002ad8d860, +0x000000002ad8cec0, 0x000000002ad94be0, 0x000000002ad950b0, 0x000000002ad95580, +0x000000002ad8dd30, 0x000000002ad9b5c0, 0x000000002ad97260, 0x000000002ad998e0, +0x000000002ad9b0f0, 0x000000002ad963f0, 0x000000002ad9ac20, 0x000000002ad97730, +0x000000002ad968c0, 0x000000002ad96d90, 0x000000002ad97c00, 0x000000002ad95a50, +0x000000002ad9a280 +} + +Java Threads: ( => current thread ) + 0x0000000002b41100 JavaThread "main" [_thread_blocked, id=5548, stack(0x0000000002220000,0x0000000002320000)] + 0x0000000021e4f3b0 JavaThread "Reference Handler" daemon [_thread_blocked, id=17880, stack(0x00000000221f0000,0x00000000222f0000)] + 0x0000000021e4fd70 JavaThread "Finalizer" daemon [_thread_blocked, id=15180, stack(0x00000000222f0000,0x00000000223f0000)] + 0x0000000021e59ff0 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=10568, stack(0x0000000022d30000,0x0000000022e30000)] + 0x0000000021e5a8b0 JavaThread "Attach Listener" daemon [_thread_blocked, id=16296, stack(0x0000000022e30000,0x0000000022f30000)] + 0x0000000021e5b170 JavaThread "Service Thread" daemon [_thread_blocked, id=3132, stack(0x0000000022f30000,0x0000000023030000)] + 0x0000000021e5ba30 JavaThread "Monitor Deflation Thread" daemon [_thread_blocked, id=18904, stack(0x0000000023030000,0x0000000023130000)] + 0x0000000021e5c620 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=12064, stack(0x0000000023130000,0x0000000023230000)] + 0x0000000021e6aa00 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=10236, stack(0x0000000023230000,0x0000000023330000)] + 0x0000000021e73ad0 JavaThread "Sweeper thread" daemon [_thread_blocked, id=14128, stack(0x0000000023330000,0x0000000023430000)] + 0x0000000021faa1e0 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=14556, stack(0x0000000023530000,0x0000000023630000)] + 0x0000000021faa8d0 JavaThread "Notification Thread" daemon [_thread_blocked, id=16416, stack(0x0000000023630000,0x0000000023730000)] + 0x0000000024c393e0 JavaThread "Daemon health stats" [_thread_blocked, id=17004, stack(0x0000000027490000,0x0000000027590000)] + 0x000000002681a3b0 JavaThread "Incoming local TCP Connector on port 50151" [_thread_in_native, id=12768, stack(0x00000000271d0000,0x00000000272d0000)] + 0x00000000246b8b50 JavaThread "Daemon periodic checks" [_thread_blocked, id=19388, stack(0x00000000278d0000,0x00000000279d0000)] + 0x0000000024cf8e10 JavaThread "Daemon" [_thread_blocked, id=13712, stack(0x00000000279d0000,0x0000000027ad0000)] + 0x0000000026177b70 JavaThread "Handler for socket connection from /127.0.0.1:50151 to /127.0.0.1:50152" [_thread_in_native, id=13656, stack(0x0000000027ad0000,0x0000000027bd0000)] + 0x0000000024f3b2f0 JavaThread "Cancel handler" [_thread_blocked, id=10092, stack(0x0000000028400000,0x0000000028500000)] + 0x000000002467b050 JavaThread "Daemon worker" [_thread_blocked, id=14524, stack(0x0000000028500000,0x0000000028600000)] + 0x00000000251cc100 JavaThread "Asynchronous log dispatcher for DefaultDaemonConnection: socket connection from /127.0.0.1:50151 to /127.0.0.1:50152" [_thread_blocked, id=8904, stack(0x0000000028600000,0x0000000028700000)] + 0x00000000251cebd0 JavaThread "Stdin handler" [_thread_blocked, id=5280, stack(0x0000000028700000,0x0000000028800000)] + 0x00000000245b35b0 JavaThread "Daemon client event forwarder" [_thread_blocked, id=4600, stack(0x0000000028800000,0x0000000028900000)] + 0x00000000245b4420 JavaThread "Cache worker for journal cache (C:\Users\domin\.gradle\caches\journal-1)" [_thread_blocked, id=8592, stack(0x0000000028900000,0x0000000028a00000)] + 0x00000000245b2c10 JavaThread "File lock request listener" [_thread_in_native, id=8536, stack(0x0000000028a00000,0x0000000028b00000)] + 0x00000000245b1da0 JavaThread "Cache worker for file hash cache (C:\Users\domin\.gradle\caches\7.3\fileHashes)" [_thread_blocked, id=7840, stack(0x0000000028b00000,0x0000000028c00000)] + 0x00000000245b48f0 JavaThread "Cache worker for file hash cache (I:\FabricModding\Spectrum\.gradle\7.3\fileHashes)" [_thread_blocked, id=18348, stack(0x000000002b1e0000,0x000000002b2e0000)] + 0x00000000245b2740 JavaThread "File watcher server" daemon [_thread_blocked, id=5260, stack(0x0000000024030000,0x0000000024130000)] + 0x00000000245b4dc0 JavaThread "File watcher consumer" daemon [_thread_blocked, id=2328, stack(0x0000000024130000,0x0000000024230000)] + 0x00000000245b3f50 JavaThread "Cache worker for checksums cache (I:\FabricModding\Spectrum\.gradle\7.3\checksums)" [_thread_blocked, id=17312, stack(0x00000000270d0000,0x00000000271d0000)] + 0x00000000245b5760 JavaThread "Cache worker for cache directory md-supplier (C:\Users\domin\.gradle\caches\7.3\md-supplier)" [_thread_blocked, id=14324, stack(0x0000000029bd0000,0x0000000029cd0000)] + 0x000000002ae85400 JavaThread "Cache worker for cache directory md-rule (C:\Users\domin\.gradle\caches\7.3\md-rule)" [_thread_blocked, id=17980, stack(0x0000000029dd0000,0x0000000029ed0000)] + 0x000000002ae86c10 JavaThread "Cache worker for execution history cache (C:\Users\domin\.gradle\caches\7.3\executionHistory)" [_thread_blocked, id=1880, stack(0x000000002b2e0000,0x000000002b3e0000)] + 0x000000002ae840c0 JavaThread "jar transforms" [_thread_blocked, id=11604, stack(0x000000002d470000,0x000000002d570000)] + 0x000000002ae86270 JavaThread "jar transforms Thread 2" [_thread_blocked, id=15052, stack(0x000000002d570000,0x000000002d670000)] + 0x000000002ae875b0 JavaThread "Cache worker for file content cache (C:\Users\domin\.gradle\caches\7.3\fileContent)" [_thread_blocked, id=11248, stack(0x000000002e100000,0x000000002e200000)] + 0x0000000029bad780 JavaThread "jar transforms Thread 3" [_thread_blocked, id=11728, stack(0x000000002e200000,0x000000002e300000)] + 0x0000000029babaa0 JavaThread "jar transforms Thread 4" [_thread_blocked, id=12332, stack(0x000000002e300000,0x000000002e400000)] + 0x0000000029baf930 JavaThread "jar transforms Thread 5" [_thread_blocked, id=13024, stack(0x000000002e400000,0x000000002e500000)] + 0x0000000029bacde0 JavaThread "jar transforms Thread 6" [_thread_blocked, id=9392, stack(0x000000002e500000,0x000000002e600000)] + 0x0000000029bb2480 JavaThread "jar transforms Thread 7" [_thread_blocked, id=2964, stack(0x000000002e600000,0x000000002e700000)] + 0x0000000029baeac0 JavaThread "jar transforms Thread 8" [_thread_blocked, id=2204, stack(0x000000002e700000,0x000000002e800000)] + 0x0000000029babf70 JavaThread "jar transforms Thread 9" [_thread_blocked, id=14560, stack(0x000000002f000000,0x000000002f100000)] + 0x0000000029bafe00 JavaThread "jar transforms Thread 10" [_thread_blocked, id=18532, stack(0x000000002f370000,0x000000002f470000)] + 0x0000000029bae5f0 JavaThread "Cache worker for dependencies-accessors (I:\FabricModding\Spectrum\.gradle\7.3\dependencies-accessors)" [_thread_blocked, id=11972, stack(0x000000002f100000,0x000000002f200000)] + 0x0000000029bb1140 JavaThread "jar transforms Thread 11" [_thread_blocked, id=6184, stack(0x000000002e000000,0x000000002e100000)] + 0x0000000029bb2950 JavaThread "Cache worker for Build Output Cleanup Cache (I:\FabricModding\Spectrum\.gradle\buildOutputCleanup)" [_thread_blocked, id=3432, stack(0x000000002d670000,0x000000002d770000)] + 0x0000000029bb1610 JavaThread "Unconstrained build operations" [_thread_blocked, id=13412, stack(0x000000002f6f0000,0x000000002f7f0000)] + 0x0000000029bb02d0 JavaThread "Unconstrained build operations Thread 2" [_thread_blocked, id=18464, stack(0x0000000030000000,0x0000000030100000)] + 0x0000000029baef90 JavaThread "Unconstrained build operations Thread 3" [_thread_blocked, id=16972, stack(0x0000000030100000,0x0000000030200000)] + 0x0000000029bae120 JavaThread "Unconstrained build operations Thread 4" [_thread_blocked, id=14228, stack(0x0000000030200000,0x0000000030300000)] + 0x0000000029bb07a0 JavaThread "Unconstrained build operations Thread 5" [_thread_blocked, id=16104, stack(0x0000000030300000,0x0000000030400000)] + 0x0000000029baf460 JavaThread "Unconstrained build operations Thread 6" [_thread_blocked, id=17220, stack(0x0000000030400000,0x0000000030500000)] + 0x0000000029bb1ae0 JavaThread "Unconstrained build operations Thread 7" [_thread_blocked, id=5592, stack(0x0000000030500000,0x0000000030600000)] + 0x0000000029bab100 JavaThread "Unconstrained build operations Thread 8" [_thread_blocked, id=18608, stack(0x0000000030600000,0x0000000030700000)] + 0x0000000029bac910 JavaThread "Unconstrained build operations Thread 9" [_thread_blocked, id=5840, stack(0x0000000030700000,0x0000000030800000)] + 0x0000000029bad2b0 JavaThread "Unconstrained build operations Thread 10" [_thread_blocked, id=19352, stack(0x0000000030800000,0x0000000030900000)] + 0x0000000029badc50 JavaThread "Unconstrained build operations Thread 11" [_thread_blocked, id=13080, stack(0x0000000030900000,0x0000000030a00000)] + 0x000000002b605550 JavaThread "Unconstrained build operations Thread 12" [_thread_blocked, id=6588, stack(0x0000000030a00000,0x0000000030b00000)] + 0x000000002b602060 JavaThread "Unconstrained build operations Thread 13" [_thread_blocked, id=13308, stack(0x0000000030b00000,0x0000000030c00000)] + 0x000000002b602530 JavaThread "Unconstrained build operations Thread 14" [_thread_blocked, id=14224, stack(0x0000000030c00000,0x0000000030d00000)] + 0x000000002b605a20 JavaThread "Unconstrained build operations Thread 15" [_thread_blocked, id=6968, stack(0x0000000030d00000,0x0000000030e00000)] + 0x000000002b602ed0 JavaThread "Unconstrained build operations Thread 16" [_thread_blocked, id=12088, stack(0x0000000030e00000,0x0000000030f00000)] + 0x000000002b604bb0 JavaThread "Unconstrained build operations Thread 17" [_thread_blocked, id=3500, stack(0x0000000030f00000,0x0000000031000000)] + 0x000000002b607700 JavaThread "Unconstrained build operations Thread 18" [_thread_blocked, id=5440, stack(0x0000000031000000,0x0000000031100000)] + 0x000000002b605ef0 JavaThread "Unconstrained build operations Thread 19" [_thread_blocked, id=9240, stack(0x0000000031100000,0x0000000031200000)] + 0x000000002b606890 JavaThread "Unconstrained build operations Thread 20" [_thread_blocked, id=18392, stack(0x0000000031200000,0x0000000031300000)] + 0x000000002b602a00 JavaThread "Unconstrained build operations Thread 21" [_thread_blocked, id=14272, stack(0x0000000031300000,0x0000000031400000)] + 0x000000002b607230 JavaThread "Unconstrained build operations Thread 22" [_thread_blocked, id=15156, stack(0x0000000031400000,0x0000000031500000)] + 0x000000002b6033a0 JavaThread "Unconstrained build operations Thread 23" [_thread_blocked, id=19040, stack(0x0000000031500000,0x0000000031600000)] + 0x000000002b6063c0 JavaThread "Unconstrained build operations Thread 24" [_thread_blocked, id=15328, stack(0x0000000031600000,0x0000000031700000)] + 0x000000002b6016c0 JavaThread "Unconstrained build operations Thread 25" [_thread_blocked, id=496, stack(0x0000000031700000,0x0000000031800000)] + 0x000000002b603d40 JavaThread "Unconstrained build operations Thread 26" [_thread_blocked, id=15064, stack(0x0000000031800000,0x0000000031900000)] + 0x000000002b5ffeb0 JavaThread "Unconstrained build operations Thread 27" [_thread_blocked, id=2076, stack(0x0000000031900000,0x0000000031a00000)] + 0x000000002b606d60 JavaThread "Unconstrained build operations Thread 28" [_thread_blocked, id=13420, stack(0x0000000031a00000,0x0000000031b00000)] + 0x000000002b601b90 JavaThread "Unconstrained build operations Thread 29" [_thread_blocked, id=8136, stack(0x0000000031b00000,0x0000000031c00000)] + 0x000000002b605080 JavaThread "Unconstrained build operations Thread 30" [_thread_blocked, id=15332, stack(0x0000000031c00000,0x0000000031d00000)] + 0x000000002b600d20 JavaThread "Unconstrained build operations Thread 31" [_thread_blocked, id=2640, stack(0x0000000031d00000,0x0000000031e00000)] + 0x000000002b600380 JavaThread "Unconstrained build operations Thread 32" [_thread_blocked, id=11452, stack(0x0000000031e00000,0x0000000031f00000)] + 0x000000002b600850 JavaThread "jar transforms Thread 12" [_thread_blocked, id=8676, stack(0x000000002f5e0000,0x000000002f6e0000)] + 0x000000002b603870 JavaThread "jar transforms Thread 13" [_thread_blocked, id=15048, stack(0x0000000032080000,0x0000000032180000)] + 0x000000002b604210 JavaThread "jar transforms Thread 14" [_thread_blocked, id=17172, stack(0x0000000032180000,0x0000000032280000)] + 0x000000002b6011f0 JavaThread "jar transforms Thread 15" [_thread_blocked, id=16940, stack(0x0000000032280000,0x0000000032380000)] + 0x000000002b6046e0 JavaThread "jar transforms Thread 16" [_thread_blocked, id=10612, stack(0x0000000032380000,0x0000000032480000)] + 0x000000002c84f990 JavaThread "Memory manager" [_thread_blocked, id=14980, stack(0x000000002f470000,0x000000002f570000)] + 0x000000002c84eff0 JavaThread "Unconstrained build operations Thread 33" [_thread_blocked, id=14388, stack(0x00000000327c0000,0x00000000328c0000)] + 0x000000002c84ce40 JavaThread "Execution worker for ':'" [_thread_blocked, id=13600, stack(0x0000000032480000,0x0000000032580000)] + 0x000000002c853cf0 JavaThread "Execution worker for ':' Thread 2" [_thread_blocked, id=12636, stack(0x0000000032580000,0x0000000032680000)] + 0x000000002c84d310 JavaThread "Execution worker for ':' Thread 3" [_thread_blocked, id=10704, stack(0x0000000032680000,0x0000000032780000)] + 0x000000002c84d7e0 JavaThread "Execution worker for ':' Thread 4" [_thread_blocked, id=5488, stack(0x00000000328c0000,0x00000000329c0000)] + 0x000000002c84dcb0 JavaThread "Execution worker for ':' Thread 5" [_thread_blocked, id=17304, stack(0x00000000329c0000,0x0000000032ac0000)] + 0x000000002c84e180 JavaThread "Execution worker for ':' Thread 6" [_thread_blocked, id=13764, stack(0x0000000032ac0000,0x0000000032bc0000)] + 0x0000000026a08c70 JavaThread "Execution worker for ':' Thread 7" [_thread_blocked, id=4748, stack(0x00000000343d0000,0x00000000344d0000)] + 0x0000000026a07e00 JavaThread "Execution worker for ':' Thread 8" [_thread_blocked, id=16292, stack(0x00000000344d0000,0x00000000345d0000)] + 0x0000000026a065f0 JavaThread "Execution worker for ':' Thread 9" [_thread_blocked, id=18592, stack(0x00000000345d0000,0x00000000346d0000)] + 0x0000000026a06f90 JavaThread "Execution worker for ':' Thread 10" [_thread_blocked, id=13368, stack(0x00000000346d0000,0x00000000347d0000)] + 0x0000000026a09140 JavaThread "Execution worker for ':' Thread 11" [_thread_blocked, id=3968, stack(0x00000000358b0000,0x00000000359b0000)] + 0x0000000026a082d0 JavaThread "Execution worker for ':' Thread 12" [_thread_blocked, id=6628, stack(0x0000000036a00000,0x0000000036b00000)] + 0x0000000026a07460 JavaThread "Execution worker for ':' Thread 13" [_thread_blocked, id=19284, stack(0x0000000036b00000,0x0000000036c00000)] + 0x0000000026a07930 JavaThread "Execution worker for ':' Thread 14" [_thread_blocked, id=5552, stack(0x0000000036c00000,0x0000000036d00000)] + 0x0000000026a087a0 JavaThread "Execution worker for ':' Thread 15" [_thread_blocked, id=13320, stack(0x0000000036d00000,0x0000000036e00000)] + 0x0000000026a09610 JavaThread "Cache worker for execution history cache (I:\FabricModding\Spectrum\.gradle\7.3\executionHistory)" [_thread_blocked, id=7312, stack(0x0000000036e00000,0x0000000036f00000)] + 0x000000002a03e2a0 JavaThread "Unconstrained build operations Thread 34" [_thread_blocked, id=11624, stack(0x0000000025300000,0x0000000025400000)] + 0x000000002a03bc20 JavaThread "Unconstrained build operations Thread 35" [_thread_blocked, id=16200, stack(0x0000000029cd0000,0x0000000029dd0000)] + 0x000000002a03c0f0 JavaThread "Unconstrained build operations Thread 36" [_thread_blocked, id=5412, stack(0x00000000357b0000,0x00000000358b0000)] + 0x000000002a03a410 JavaThread "Unconstrained build operations Thread 37" [_thread_blocked, id=13452, stack(0x0000000036f00000,0x0000000037000000)] + 0x000000002a03c5c0 JavaThread "Unconstrained build operations Thread 38" [_thread_blocked, id=3592, stack(0x0000000037800000,0x0000000037900000)] + 0x000000002a03ec40 JavaThread "Unconstrained build operations Thread 39" [_thread_blocked, id=17632, stack(0x0000000037900000,0x0000000037a00000)] + 0x000000002a03ca90 JavaThread "Unconstrained build operations Thread 40" [_thread_blocked, id=3856, stack(0x0000000037a00000,0x0000000037b00000)] + 0x000000002a03ff80 JavaThread "Unconstrained build operations Thread 41" [_thread_blocked, id=3304, stack(0x0000000037b00000,0x0000000037c00000)] + 0x000000002a039a70 JavaThread "Unconstrained build operations Thread 42" [_thread_blocked, id=10132, stack(0x0000000037c00000,0x0000000037d00000)] + 0x000000002a038c00 JavaThread "Unconstrained build operations Thread 43" [_thread_blocked, id=18420, stack(0x0000000037d00000,0x0000000037e00000)] + 0x000000002a039f40 JavaThread "Unconstrained build operations Thread 44" [_thread_blocked, id=16964, stack(0x0000000037e00000,0x0000000037f00000)] + 0x000000002a03cf60 JavaThread "Unconstrained build operations Thread 45" [_thread_blocked, id=3480, stack(0x0000000037f00000,0x0000000038000000)] + 0x000000002a038730 JavaThread "Unconstrained build operations Thread 46" [_thread_blocked, id=12368, stack(0x0000000038000000,0x0000000038100000)] + 0x000000002a03a8e0 JavaThread "Unconstrained build operations Thread 47" [_thread_blocked, id=11636, stack(0x0000000038100000,0x0000000038200000)] + 0x000000002a03d430 JavaThread "Unconstrained build operations Thread 48" [_thread_blocked, id=3816, stack(0x0000000038200000,0x0000000038300000)] + 0x000000002a03adb0 JavaThread "Unconstrained build operations Thread 49" [_thread_blocked, id=17844, stack(0x0000000038300000,0x0000000038400000)] + 0x000000002a03b750 JavaThread "Unconstrained build operations Thread 50" [_thread_blocked, id=17940, stack(0x0000000038400000,0x0000000038500000)] + 0x000000002a03b280 JavaThread "Unconstrained build operations Thread 51" [_thread_blocked, id=16776, stack(0x0000000038500000,0x0000000038600000)] + 0x000000002a0390d0 JavaThread "Unconstrained build operations Thread 52" [_thread_blocked, id=6044, stack(0x0000000038600000,0x0000000038700000)] + 0x000000002a03f5e0 JavaThread "Unconstrained build operations Thread 53" [_thread_blocked, id=4616, stack(0x0000000038700000,0x0000000038800000)] + 0x000000002a03d900 JavaThread "Unconstrained build operations Thread 54" [_thread_blocked, id=4676, stack(0x0000000038800000,0x0000000038900000)] + 0x000000002a03fab0 JavaThread "Unconstrained build operations Thread 55" [_thread_blocked, id=18640, stack(0x0000000038900000,0x0000000038a00000)] + 0x000000002a03ddd0 JavaThread "Unconstrained build operations Thread 56" [_thread_blocked, id=13204, stack(0x0000000038a00000,0x0000000038b00000)] + 0x000000002a0395a0 JavaThread "Unconstrained build operations Thread 57" [_thread_blocked, id=16556, stack(0x0000000038b00000,0x0000000038c00000)] + 0x000000002a03e770 JavaThread "Unconstrained build operations Thread 58" [_thread_blocked, id=17592, stack(0x0000000038c00000,0x0000000038d00000)] + 0x000000002a03f110 JavaThread "Unconstrained build operations Thread 59" [_thread_blocked, id=12404, stack(0x0000000038d00000,0x0000000038e00000)] + 0x00000000339da3c0 JavaThread "Unconstrained build operations Thread 60" [_thread_blocked, id=19440, stack(0x0000000038e00000,0x0000000038f00000)] + 0x00000000339dbbd0 JavaThread "Unconstrained build operations Thread 61" [_thread_blocked, id=17396, stack(0x0000000038f00000,0x0000000039000000)] + 0x00000000339dca40 JavaThread "Unconstrained build operations Thread 62" [_thread_blocked, id=8932, stack(0x0000000039000000,0x0000000039100000)] + 0x00000000339df0c0 JavaThread "Unconstrained build operations Thread 63" [_thread_blocked, id=13504, stack(0x0000000039100000,0x0000000039200000)] + 0x00000000339de720 JavaThread "Unconstrained build operations Thread 64" [_thread_blocked, id=12468, stack(0x0000000039200000,0x0000000039300000)] + 0x00000000339dcf10 JavaThread "Unconstrained build operations Thread 65" [_thread_blocked, id=8124, stack(0x0000000039300000,0x0000000039400000)] + 0x00000000339dc0a0 JavaThread "Unconstrained build operations Thread 66" [_thread_blocked, id=17760, stack(0x0000000039400000,0x0000000039500000)] + 0x00000000339d9080 JavaThread "Unconstrained build operations Thread 67" [_thread_blocked, id=5744, stack(0x0000000039500000,0x0000000039600000)] + 0x00000000339dfa60 JavaThread "Unconstrained build operations Thread 68" [_thread_blocked, id=14304, stack(0x0000000039600000,0x0000000039700000)] + 0x00000000339db230 JavaThread "Unconstrained build operations Thread 69" [_thread_blocked, id=2676, stack(0x0000000039700000,0x0000000039800000)] + 0x00000000339dc570 JavaThread "Unconstrained build operations Thread 70" [_thread_blocked, id=18748, stack(0x0000000039800000,0x0000000039900000)] + 0x00000000339dff30 JavaThread "Unconstrained build operations Thread 71" [_thread_blocked, id=15808, stack(0x0000000039900000,0x0000000039a00000)] + 0x00000000339d9550 JavaThread "Unconstrained build operations Thread 72" [_thread_blocked, id=9688, stack(0x0000000039a00000,0x0000000039b00000)] + 0x00000000339db700 JavaThread "Unconstrained build operations Thread 73" [_thread_blocked, id=18264, stack(0x0000000039b00000,0x0000000039c00000)] + 0x00000000339da890 JavaThread "Unconstrained build operations Thread 74" [_thread_blocked, id=15212, stack(0x0000000039c00000,0x0000000039d00000)] + 0x00000000339df590 JavaThread "Unconstrained build operations Thread 75" [_thread_blocked, id=18740, stack(0x0000000039d00000,0x0000000039e00000)] + 0x00000000339e0400 JavaThread "Unconstrained build operations Thread 76" [_thread_blocked, id=108, stack(0x0000000039e00000,0x0000000039f00000)] + 0x00000000339dd3e0 JavaThread "Unconstrained build operations Thread 77" [_thread_blocked, id=8800, stack(0x0000000039f00000,0x000000003a000000)] + 0x00000000339e08d0 JavaThread "Unconstrained build operations Thread 78" [_thread_blocked, id=6940, stack(0x000000003a000000,0x000000003a100000)] + 0x00000000339debf0 JavaThread "Unconstrained build operations Thread 79" [_thread_blocked, id=9844, stack(0x000000003a100000,0x000000003a200000)] + 0x00000000339d9a20 JavaThread "Unconstrained build operations Thread 80" [_thread_blocked, id=17032, stack(0x000000003a200000,0x000000003a300000)] + 0x00000000339dad60 JavaThread "Unconstrained build operations Thread 81" [_thread_blocked, id=13772, stack(0x000000003a300000,0x000000003a400000)] + 0x00000000339d9ef0 JavaThread "Unconstrained build operations Thread 82" [_thread_blocked, id=13884, stack(0x000000003a400000,0x000000003a500000)] + 0x00000000339dd8b0 JavaThread "Unconstrained build operations Thread 83" [_thread_blocked, id=12544, stack(0x000000003a500000,0x000000003a600000)] + 0x00000000339ddd80 JavaThread "Unconstrained build operations Thread 84" [_thread_blocked, id=15112, stack(0x000000003a600000,0x000000003a700000)] + 0x00000000339de250 JavaThread "Unconstrained build operations Thread 85" [_thread_blocked, id=13316, stack(0x000000003a700000,0x000000003a800000)] + 0x0000000035ca8c40 JavaThread "Unconstrained build operations Thread 86" [_thread_blocked, id=15172, stack(0x000000003a800000,0x000000003a900000)] + 0x0000000035cac600 JavaThread "Unconstrained build operations Thread 87" [_thread_blocked, id=12760, stack(0x000000003a900000,0x000000003aa00000)] + 0x0000000035ca7430 JavaThread "Unconstrained build operations Thread 88" [_thread_blocked, id=15396, stack(0x000000003aa00000,0x000000003ab00000)] + 0x0000000035ca7900 JavaThread "Unconstrained build operations Thread 89" [_thread_blocked, id=16724, stack(0x000000003ab00000,0x000000003ac00000)] + 0x0000000035ca9f80 JavaThread "Unconstrained build operations Thread 90" [_thread_blocked, id=13232, stack(0x000000003ac00000,0x000000003ad00000)] + 0x0000000035cacad0 JavaThread "Unconstrained build operations Thread 91" [_thread_blocked, id=10208, stack(0x000000003ad00000,0x000000003ae00000)] + 0x0000000035ca9ab0 JavaThread "Unconstrained build operations Thread 92" [_thread_blocked, id=14688, stack(0x000000003ae00000,0x000000003af00000)] + 0x0000000035ca60f0 JavaThread "Unconstrained build operations Thread 93" [_thread_blocked, id=12580, stack(0x000000003af00000,0x000000003b000000)] + 0x0000000035ca6f60 JavaThread "Unconstrained build operations Thread 94" [_thread_blocked, id=12240, stack(0x000000003b000000,0x000000003b100000)] + 0x0000000035ca6a90 JavaThread "Unconstrained build operations Thread 95" [_thread_blocked, id=10744, stack(0x000000003b100000,0x000000003b200000)] + 0x0000000035caa450 JavaThread "Unconstrained build operations Thread 96" [_thread_blocked, id=3840, stack(0x000000003b200000,0x000000003b300000)] + 0x0000000035ca7dd0 JavaThread "Unconstrained build operations Thread 97" [_thread_blocked, id=9524, stack(0x000000003b300000,0x000000003b400000)] + 0x0000000035ca65c0 JavaThread "Unconstrained build operations Thread 98" [_thread_blocked, id=6712, stack(0x000000003b400000,0x000000003b500000)] + 0x0000000035ca82a0 JavaThread "Unconstrained build operations Thread 99" [_thread_blocked, id=16004, stack(0x000000003b500000,0x000000003b600000)] + 0x0000000035cab790 JavaThread "Unconstrained build operations Thread 100" [_thread_blocked, id=18896, stack(0x000000003b600000,0x000000003b700000)] + 0x0000000035cabc60 JavaThread "Unconstrained build operations Thread 101" [_thread_blocked, id=2336, stack(0x000000003b700000,0x000000003b800000)] + 0x0000000035ca9110 JavaThread "Unconstrained build operations Thread 102" [_thread_blocked, id=18352, stack(0x000000003b800000,0x000000003b900000)] + 0x0000000035ca8770 JavaThread "Unconstrained build operations Thread 103" [_thread_blocked, id=12436, stack(0x000000003b900000,0x000000003ba00000)] + 0x0000000035ca95e0 JavaThread "Unconstrained build operations Thread 104" [_thread_blocked, id=17020, stack(0x000000003ba00000,0x000000003bb00000)] + 0x0000000035caa920 JavaThread "Unconstrained build operations Thread 105" [_thread_blocked, id=2908, stack(0x000000003bb00000,0x000000003bc00000)] + 0x0000000035caadf0 JavaThread "Unconstrained build operations Thread 106" [_thread_blocked, id=13404, stack(0x000000003bc00000,0x000000003bd00000)] + 0x0000000035cab2c0 JavaThread "Unconstrained build operations Thread 107" [_thread_blocked, id=14488, stack(0x000000003bd00000,0x000000003be00000)] + 0x0000000035cac130 JavaThread "Unconstrained build operations Thread 108" [_thread_blocked, id=10072, stack(0x000000003be00000,0x000000003bf00000)] + 0x0000000035cacfa0 JavaThread "Unconstrained build operations Thread 109" [_thread_blocked, id=16360, stack(0x000000003bf00000,0x000000003c000000)] + 0x0000000035ca5750 JavaThread "Unconstrained build operations Thread 110" [_thread_blocked, id=14920, stack(0x000000003c000000,0x000000003c100000)] + 0x0000000035ca5c20 JavaThread "Unconstrained build operations Thread 111" [_thread_blocked, id=12940, stack(0x000000003c100000,0x000000003c200000)] + 0x000000002c73d3f0 JavaThread "Unconstrained build operations Thread 112" [_thread_blocked, id=9360, stack(0x000000003c200000,0x000000003c300000)] + 0x000000002c739f00 JavaThread "Unconstrained build operations Thread 113" [_thread_blocked, id=5248, stack(0x000000003c300000,0x000000003c400000)] + 0x000000002c73dd90 JavaThread "Unconstrained build operations Thread 114" [_thread_blocked, id=17704, stack(0x000000003c400000,0x000000003c500000)] + 0x000000002c738220 JavaThread "Unconstrained build operations Thread 115" [_thread_blocked, id=8528, stack(0x000000003c500000,0x000000003c600000)] + 0x000000002c73e730 JavaThread "Unconstrained build operations Thread 116" [_thread_blocked, id=19428, stack(0x000000003c600000,0x000000003c700000)] + 0x000000002c737d50 JavaThread "Unconstrained build operations Thread 117" [_thread_blocked, id=18584, stack(0x000000003c700000,0x000000003c800000)] + 0x000000002c73b240 JavaThread "Unconstrained build operations Thread 118" [_thread_blocked, id=14456, stack(0x000000003c800000,0x000000003c900000)] + 0x000000002c73ca50 JavaThread "Unconstrained build operations Thread 119" [_thread_blocked, id=16608, stack(0x000000003c900000,0x000000003ca00000)] + 0x000000002c73b710 JavaThread "Unconstrained build operations Thread 120" [_thread_blocked, id=6656, stack(0x000000003ca00000,0x000000003cb00000)] + 0x000000002c73bbe0 JavaThread "Unconstrained build operations Thread 121" [_thread_blocked, id=16580, stack(0x000000003cb00000,0x000000003cc00000)] + 0x000000002c7386f0 JavaThread "Unconstrained build operations Thread 122" [_thread_blocked, id=14132, stack(0x000000003cc00000,0x000000003cd00000)] + 0x000000002c73d8c0 JavaThread "Unconstrained build operations Thread 123" [_thread_blocked, id=14408, stack(0x000000003cd00000,0x000000003ce00000)] + 0x000000002c736ee0 JavaThread "Unconstrained build operations Thread 124" [_thread_blocked, id=2552, stack(0x000000003ce00000,0x000000003cf00000)] + 0x000000002c73c0b0 JavaThread "Unconstrained build operations Thread 125" [_thread_blocked, id=14720, stack(0x000000003cf00000,0x000000003d000000)] + 0x000000002c738bc0 JavaThread "Unconstrained build operations Thread 126" [_thread_blocked, id=5520, stack(0x000000003d000000,0x000000003d100000)] + 0x000000002c739560 JavaThread "Unconstrained build operations Thread 127" [_thread_blocked, id=14772, stack(0x000000003d100000,0x000000003d200000)] + 0x000000002c73c580 JavaThread "Unconstrained build operations Thread 128" [_thread_blocked, id=11640, stack(0x000000003d200000,0x000000003d300000)] + 0x000000002c73e260 JavaThread "Unconstrained build operations Thread 129" [_thread_blocked, id=18844, stack(0x000000003d300000,0x000000003d400000)] + 0x000000002c7373b0 JavaThread "Unconstrained build operations Thread 130" [_thread_blocked, id=10012, stack(0x000000003d400000,0x000000003d500000)] + 0x000000002c73cf20 JavaThread "Unconstrained build operations Thread 131" [_thread_blocked, id=1804, stack(0x000000003d500000,0x000000003d600000)] + 0x000000002c739090 JavaThread "Unconstrained build operations Thread 132" [_thread_blocked, id=14572, stack(0x000000003d600000,0x000000003d700000)] + 0x000000002c737880 JavaThread "Unconstrained build operations Thread 133" [_thread_blocked, id=19360, stack(0x000000003d700000,0x000000003d800000)] + 0x000000002c739a30 JavaThread "Unconstrained build operations Thread 134" [_thread_blocked, id=12012, stack(0x000000003d800000,0x000000003d900000)] + 0x000000002c73a3d0 JavaThread "Unconstrained build operations Thread 135" [_thread_blocked, id=3552, stack(0x000000003d900000,0x000000003da00000)] + 0x000000002c73a8a0 JavaThread "Unconstrained build operations Thread 136" [_thread_blocked, id=16304, stack(0x000000003da00000,0x000000003db00000)] + 0x000000002c73ad70 JavaThread "Unconstrained build operations Thread 137" [_thread_blocked, id=1420, stack(0x000000003db00000,0x000000003dc00000)] + 0x000000002ad8f540 JavaThread "Unconstrained build operations Thread 138" [_thread_blocked, id=3212, stack(0x000000003dc00000,0x000000003dd00000)] + 0x000000002ad90880 JavaThread "Unconstrained build operations Thread 139" [_thread_blocked, id=5600, stack(0x000000003dd00000,0x000000003de00000)] + 0x000000002ad8eba0 JavaThread "Unconstrained build operations Thread 140" [_thread_blocked, id=18784, stack(0x000000003de00000,0x000000003df00000)] + 0x000000002ad92a30 JavaThread "Unconstrained build operations Thread 141" [_thread_blocked, id=12400, stack(0x000000003df00000,0x000000003e000000)] + 0x000000002ad92f00 JavaThread "Unconstrained build operations Thread 142" [_thread_blocked, id=10372, stack(0x000000003e000000,0x000000003e100000)] + 0x000000002ad8f070 JavaThread "Unconstrained build operations Thread 143" [_thread_blocked, id=3752, stack(0x000000003e100000,0x000000003e200000)] + 0x000000002ad916f0 JavaThread "Unconstrained build operations Thread 144" [_thread_blocked, id=12192, stack(0x000000003e200000,0x000000003e300000)] + 0x000000002ad8c520 JavaThread "Unconstrained build operations Thread 145" [_thread_blocked, id=18728, stack(0x000000003e300000,0x000000003e400000)] + 0x000000002ad94240 JavaThread "Unconstrained build operations Thread 146" [_thread_blocked, id=15560, stack(0x000000003e400000,0x000000003e500000)] + 0x000000002ad8e6d0 JavaThread "Unconstrained build operations Thread 147" [_thread_blocked, id=18132, stack(0x000000003e500000,0x000000003e600000)] + 0x000000002ad8e200 JavaThread "Unconstrained build operations Thread 148" [_thread_blocked, id=7348, stack(0x000000003e600000,0x000000003e700000)] + 0x000000002ad8fa10 JavaThread "Unconstrained build operations Thread 149" [_thread_blocked, id=17108, stack(0x000000003e700000,0x000000003e800000)] + 0x000000002ad91bc0 JavaThread "Unconstrained build operations Thread 150" [_thread_blocked, id=12588, stack(0x000000003e800000,0x000000003e900000)] + 0x000000002ad8fee0 JavaThread "Unconstrained build operations Thread 151" [_thread_blocked, id=2556, stack(0x000000003e900000,0x000000003ea00000)] + 0x000000002ad8c9f0 JavaThread "Unconstrained build operations Thread 152" [_thread_blocked, id=7740, stack(0x000000003ea00000,0x000000003eb00000)] + 0x000000002ad903b0 JavaThread "Unconstrained build operations Thread 153" [_thread_blocked, id=5348, stack(0x000000003eb00000,0x000000003ec00000)] + 0x000000002ad90d50 JavaThread "Unconstrained build operations Thread 154" [_thread_blocked, id=12680, stack(0x000000003ec00000,0x000000003ed00000)] + 0x000000002ad91220 JavaThread "Unconstrained build operations Thread 155" [_thread_blocked, id=3792, stack(0x000000003ed00000,0x000000003ee00000)] + 0x000000002ad8d390 JavaThread "Unconstrained build operations Thread 156" [_thread_blocked, id=16812, stack(0x000000003ee00000,0x000000003ef00000)] + 0x000000002ad92090 JavaThread "Unconstrained build operations Thread 157" [_thread_blocked, id=16284, stack(0x000000003ef00000,0x000000003f000000)] + 0x000000002ad92560 JavaThread "Unconstrained build operations Thread 158" [_thread_blocked, id=18444, stack(0x000000003f000000,0x000000003f100000)] + 0x000000002ad933d0 JavaThread "Unconstrained build operations Thread 159" [_thread_blocked, id=14520, stack(0x000000003f100000,0x000000003f200000)] + 0x000000002ad8d860 JavaThread "Unconstrained build operations Thread 160" [_thread_blocked, id=17512, stack(0x000000003f400000,0x000000003f500000)] + 0x000000002ad8cec0 JavaThread "Cache worker for Java compile cache (C:\Users\domin\.gradle\caches\7.3\javaCompile)" [_thread_blocked, id=14792, stack(0x000000003fb00000,0x000000003fc00000)] + 0x000000002ad94be0 JavaThread "Build operations" [_thread_blocked, id=4228, stack(0x000000003fc00000,0x000000003fd00000)] + 0x000000002ad950b0 JavaThread "Build operations Thread 2" [_thread_blocked, id=9684, stack(0x000000003fd00000,0x000000003fe00000)] + 0x000000002ad95580 JavaThread "Build operations Thread 3" [_thread_blocked, id=1900, stack(0x000000003fe00000,0x000000003ff00000)] + 0x000000002ad8dd30 JavaThread "Build operations Thread 4" [_thread_blocked, id=19244, stack(0x000000003ff00000,0x0000000040000000)] + 0x000000002ad9b5c0 JavaThread "Build operations Thread 5" [_thread_blocked, id=17532, stack(0x0000000040000000,0x0000000040100000)] + 0x000000002ad97260 JavaThread "Build operations Thread 6" [_thread_blocked, id=19444, stack(0x0000000040100000,0x0000000040200000)] + 0x000000002ad998e0 JavaThread "Build operations Thread 7" [_thread_blocked, id=18724, stack(0x0000000040200000,0x0000000040300000)] + 0x000000002ad9b0f0 JavaThread "Build operations Thread 8" [_thread_blocked, id=18416, stack(0x0000000040300000,0x0000000040400000)] + 0x000000002ad963f0 JavaThread "Build operations Thread 9" [_thread_blocked, id=17792, stack(0x0000000040400000,0x0000000040500000)] + 0x000000002ad9ac20 JavaThread "Build operations Thread 10" [_thread_blocked, id=2984, stack(0x0000000040500000,0x0000000040600000)] + 0x000000002ad97730 JavaThread "Build operations Thread 11" [_thread_blocked, id=5828, stack(0x0000000040600000,0x0000000040700000)] + 0x000000002ad968c0 JavaThread "Build operations Thread 12" [_thread_blocked, id=16952, stack(0x0000000040700000,0x0000000040800000)] + 0x000000002ad96d90 JavaThread "Build operations Thread 13" [_thread_blocked, id=6316, stack(0x0000000040800000,0x0000000040900000)] + 0x000000002ad97c00 JavaThread "Build operations Thread 14" [_thread_blocked, id=18636, stack(0x0000000040900000,0x0000000040a00000)] + 0x000000002ad95a50 JavaThread "Build operations Thread 15" [_thread_blocked, id=13708, stack(0x0000000040a00000,0x0000000040b00000)] + 0x000000002ad9a280 JavaThread "Build operations Thread 16" [_thread_blocked, id=32, stack(0x0000000040b00000,0x0000000040c00000)] + +Other Threads: + 0x0000000021e4f010 VMThread "VM Thread" [stack: 0x00000000220f0000,0x00000000221f0000] [id=5820] + 0x0000000021fad200 WatcherThread [stack: 0x0000000023730000,0x0000000023830000] [id=10672] + 0x0000000002b81de0 GCTaskThread "GC Thread#0" [stack: 0x000000001e820000,0x000000001e920000] [id=15424] + 0x00000000245b5d60 GCTaskThread "GC Thread#1" [stack: 0x0000000025400000,0x0000000025500000] [id=4120] +=>0x0000000023f16b40 GCTaskThread "GC Thread#2" [stack: 0x0000000025500000,0x0000000025600000] [id=16780] + 0x0000000024880920 GCTaskThread "GC Thread#3" [stack: 0x0000000025600000,0x0000000025700000] [id=12164] + 0x0000000024880bd0 GCTaskThread "GC Thread#4" [stack: 0x0000000025700000,0x0000000025800000] [id=15036] + 0x00000000245de550 GCTaskThread "GC Thread#5" [stack: 0x0000000025800000,0x0000000025900000] [id=14344] + 0x00000000245debd0 GCTaskThread "GC Thread#6" [stack: 0x0000000025900000,0x0000000025a00000] [id=2196] + 0x0000000023f0c7e0 GCTaskThread "GC Thread#7" [stack: 0x0000000025a00000,0x0000000025b00000] [id=336] + 0x00000000247302c0 GCTaskThread "GC Thread#8" [stack: 0x0000000025c00000,0x0000000025d00000] [id=10936] + 0x000000002479cac0 GCTaskThread "GC Thread#9" [stack: 0x0000000025d00000,0x0000000025e00000] [id=8880] + 0x000000002479d580 GCTaskThread "GC Thread#10" [stack: 0x0000000025e00000,0x0000000025f00000] [id=3524] + 0x000000002479d830 GCTaskThread "GC Thread#11" [stack: 0x0000000025f00000,0x0000000026000000] [id=16888] + 0x000000002466cd70 GCTaskThread "GC Thread#12" [stack: 0x0000000026000000,0x0000000026100000] [id=5704] + 0x0000000002b93ae0 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000001e920000,0x000000001ea20000] [id=10036] + 0x0000000002b94a40 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000001ea20000,0x000000001eb20000] [id=4016] + 0x000000002508d520 ConcurrentGCThread "G1 Conc#1" [stack: 0x000000002af10000,0x000000002b010000] [id=3612] + 0x0000000026fee780 ConcurrentGCThread "G1 Conc#2" [stack: 0x000000002b010000,0x000000002b110000] [id=16548] + 0x0000000002c1e3c0 ConcurrentGCThread "G1 Refine#0" [stack: 0x0000000021af0000,0x0000000021bf0000] [id=16788] + 0x000000002bae2ad0 ConcurrentGCThread "G1 Refine#1" [stack: 0x000000003f900000,0x000000003fa00000] [id=11720] + 0x000000002bae1990 ConcurrentGCThread "G1 Refine#2" [stack: 0x000000003fa00000,0x000000003fb00000] [id=16796] + 0x000000002bae3650 ConcurrentGCThread "G1 Refine#3" [stack: 0x0000000041780000,0x0000000041880000] [id=17216] + 0x000000002bae41d0 ConcurrentGCThread "G1 Refine#4" [stack: 0x0000000041880000,0x0000000041980000] [id=17960] + 0x000000002bae0850 ConcurrentGCThread "G1 Refine#5" [stack: 0x0000000041980000,0x0000000041a80000] [id=12756] + 0x000000002bae1f50 ConcurrentGCThread "G1 Refine#6" [stack: 0x0000000041a80000,0x0000000041b80000] [id=8668] + 0x000000002bae0570 ConcurrentGCThread "G1 Refine#7" [stack: 0x0000000041b80000,0x0000000041c80000] [id=12116] + 0x000000002bae27f0 ConcurrentGCThread "G1 Refine#8" [stack: 0x0000000041c80000,0x0000000041d80000] [id=7328] + 0x000000002bae13d0 ConcurrentGCThread "G1 Refine#9" [stack: 0x0000000041d80000,0x0000000041e80000] [id=14136] + 0x000000002bae2230 ConcurrentGCThread "G1 Refine#10" [stack: 0x0000000041e80000,0x0000000041f80000] [id=16160] + 0x000000002bae3930 ConcurrentGCThread "G1 Refine#11" [stack: 0x0000000041f80000,0x0000000042080000] [id=18968] + 0x0000000029f77180 ConcurrentGCThread "G1 Refine#12" [stack: 0x0000000023430000,0x0000000023530000] [id=16008] + 0x0000000002c1eb90 ConcurrentGCThread "G1 Service" [stack: 0x0000000021bf0000,0x0000000021cf0000] [id=3084] + +Threads with active compile tasks: + +VM state: at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x0000000002b3d3c0] Threads_lock - owner thread: 0x0000000021e4f010 +[0x0000000002b3c130] Heap_lock - owner thread: 0x00000000245b48f0 + +Heap address: 0x0000000080000000, size: 2048 MB, Compressed Oops mode: 32-bit + +CDS archive(s) mapped at: [0x0000000800000000-0x0000000800bc0000-0x0000000800bc0000), size 12320768, SharedBaseAddress: 0x0000000800000000, ArchiveRelocationMode: 0. +Compressed class space mapped at: 0x0000000800c00000-0x0000000840c00000, reserved size: 1073741824 +Narrow klass base: 0x0000000800000000, Narrow klass shift: 0, Narrow klass range: 0x100000000 + +GC Precious Log: + CPUs: 16 total, 16 available + Memory: 49073M + Large Page Support: Disabled + NUMA Support: Disabled + Compressed Oops: Enabled (32-bit) + Heap Region Size: 1M + Heap Min Capacity: 8M + Heap Initial Capacity: 768M + Heap Max Capacity: 2G + Pre-touch: Disabled + Parallel Workers: 13 + Concurrent Workers: 3 + Concurrent Refinement Workers: 13 + Periodic GC: Disabled + +Heap: + garbage-first heap total 588800K, used 517400K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 258 young (264192K), 31 survivors (31744K) + Metaspace used 75829K, committed 76544K, reserved 1122304K + class space used 9800K, committed 10112K, reserved 1048576K + +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, OA=open archive, CA=closed archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000080000000, 0x0000000080100000, 0x0000000080100000|100%| O| |TAMS 0x0000000080100000, 0x0000000080000000| Untracked +| 1|0x0000000080100000, 0x0000000080200000, 0x0000000080200000|100%| O| |TAMS 0x0000000080200000, 0x0000000080100000| Untracked +| 2|0x0000000080200000, 0x0000000080300000, 0x0000000080300000|100%| O| |TAMS 0x0000000080300000, 0x0000000080200000| Untracked +| 3|0x0000000080300000, 0x0000000080400000, 0x0000000080400000|100%|HS| |TAMS 0x0000000080400000, 0x0000000080300000| Complete +| 4|0x0000000080400000, 0x0000000080500000, 0x0000000080500000|100%|HC| |TAMS 0x0000000080500000, 0x0000000080400000| Complete +| 5|0x0000000080500000, 0x0000000080600000, 0x0000000080600000|100%|HC| |TAMS 0x0000000080600000, 0x0000000080500000| Complete +| 6|0x0000000080600000, 0x0000000080700000, 0x0000000080700000|100%| O| |TAMS 0x0000000080700000, 0x0000000080600000| Untracked +| 7|0x0000000080700000, 0x0000000080800000, 0x0000000080800000|100%| O| |TAMS 0x0000000080800000, 0x0000000080700000| Untracked +| 8|0x0000000080800000, 0x0000000080900000, 0x0000000080900000|100%| O| |TAMS 0x0000000080900000, 0x0000000080800000| Untracked +| 9|0x0000000080900000, 0x0000000080a00000, 0x0000000080a00000|100%| O| |TAMS 0x0000000080a00000, 0x0000000080900000| Untracked +| 10|0x0000000080a00000, 0x0000000080b00000, 0x0000000080b00000|100%| O| |TAMS 0x0000000080b00000, 0x0000000080a00000| Untracked +| 11|0x0000000080b00000, 0x0000000080c00000, 0x0000000080c00000|100%| O| |TAMS 0x0000000080c00000, 0x0000000080b00000| Untracked +| 12|0x0000000080c00000, 0x0000000080d00000, 0x0000000080d00000|100%| O| |TAMS 0x0000000080d00000, 0x0000000080c00000| Untracked +| 13|0x0000000080d00000, 0x0000000080e00000, 0x0000000080e00000|100%| O| |TAMS 0x0000000080e00000, 0x0000000080d00000| Untracked +| 14|0x0000000080e00000, 0x0000000080f00000, 0x0000000080f00000|100%| O| |TAMS 0x0000000080f00000, 0x0000000080e00000| Untracked +| 15|0x0000000080f00000, 0x0000000081000000, 0x0000000081000000|100%| O| |TAMS 0x0000000081000000, 0x0000000080f00000| Untracked +| 16|0x0000000081000000, 0x0000000081100000, 0x0000000081100000|100%| O| |TAMS 0x0000000081100000, 0x0000000081000000| Untracked +| 17|0x0000000081100000, 0x0000000081200000, 0x0000000081200000|100%| O| |TAMS 0x0000000081200000, 0x0000000081100000| Untracked +| 18|0x0000000081200000, 0x0000000081300000, 0x0000000081300000|100%| O| |TAMS 0x0000000081300000, 0x0000000081200000| Untracked +| 19|0x0000000081300000, 0x0000000081400000, 0x0000000081400000|100%| O| |TAMS 0x0000000081400000, 0x0000000081300000| Untracked +| 20|0x0000000081400000, 0x0000000081500000, 0x0000000081500000|100%| O| |TAMS 0x0000000081500000, 0x0000000081400000| Untracked +| 21|0x0000000081500000, 0x0000000081600000, 0x0000000081600000|100%| O| |TAMS 0x0000000081600000, 0x0000000081500000| Untracked +| 22|0x0000000081600000, 0x0000000081700000, 0x0000000081700000|100%| O| |TAMS 0x0000000081700000, 0x0000000081600000| Untracked +| 23|0x0000000081700000, 0x0000000081800000, 0x0000000081800000|100%| O| |TAMS 0x0000000081800000, 0x0000000081700000| Untracked +| 24|0x0000000081800000, 0x0000000081900000, 0x0000000081900000|100%| O| |TAMS 0x0000000081900000, 0x0000000081800000| Untracked +| 25|0x0000000081900000, 0x0000000081a00000, 0x0000000081a00000|100%| O| |TAMS 0x0000000081a00000, 0x0000000081900000| Untracked +| 26|0x0000000081a00000, 0x0000000081b00000, 0x0000000081b00000|100%|HS| |TAMS 0x0000000081b00000, 0x0000000081a00000| Complete +| 27|0x0000000081b00000, 0x0000000081c00000, 0x0000000081c00000|100%| O| |TAMS 0x0000000081c00000, 0x0000000081b00000| Untracked +| 28|0x0000000081c00000, 0x0000000081d00000, 0x0000000081d00000|100%| O| |TAMS 0x0000000081d00000, 0x0000000081c00000| Untracked +| 29|0x0000000081d00000, 0x0000000081e00000, 0x0000000081e00000|100%| O| |TAMS 0x0000000081e00000, 0x0000000081d00000| Untracked +| 30|0x0000000081e00000, 0x0000000081f00000, 0x0000000081f00000|100%| O| |TAMS 0x0000000081f00000, 0x0000000081e00000| Untracked +| 31|0x0000000081f00000, 0x0000000082000000, 0x0000000082000000|100%| O| |TAMS 0x0000000082000000, 0x0000000081f00000| Untracked +| 32|0x0000000082000000, 0x0000000082100000, 0x0000000082100000|100%| O| |TAMS 0x0000000082100000, 0x0000000082000000| Untracked +| 33|0x0000000082100000, 0x0000000082200000, 0x0000000082200000|100%| O| |TAMS 0x0000000082200000, 0x0000000082100000| Untracked +| 34|0x0000000082200000, 0x0000000082300000, 0x0000000082300000|100%| O| |TAMS 0x0000000082300000, 0x0000000082200000| Untracked +| 35|0x0000000082300000, 0x0000000082400000, 0x0000000082400000|100%| O| |TAMS 0x0000000082400000, 0x0000000082300000| Untracked +| 36|0x0000000082400000, 0x0000000082500000, 0x0000000082500000|100%| O| |TAMS 0x0000000082500000, 0x0000000082400000| Untracked +| 37|0x0000000082500000, 0x0000000082600000, 0x0000000082600000|100%| O| |TAMS 0x0000000082600000, 0x0000000082500000| Untracked +| 38|0x0000000082600000, 0x0000000082700000, 0x0000000082700000|100%| O| |TAMS 0x0000000082700000, 0x0000000082600000| Untracked +| 39|0x0000000082700000, 0x0000000082800000, 0x0000000082800000|100%| O| |TAMS 0x0000000082800000, 0x0000000082700000| Untracked +| 40|0x0000000082800000, 0x0000000082900000, 0x0000000082900000|100%| O| |TAMS 0x0000000082900000, 0x0000000082800000| Untracked +| 41|0x0000000082900000, 0x0000000082a00000, 0x0000000082a00000|100%| O| |TAMS 0x0000000082a00000, 0x0000000082900000| Untracked +| 42|0x0000000082a00000, 0x0000000082b00000, 0x0000000082b00000|100%| O| |TAMS 0x0000000082b00000, 0x0000000082a00000| Untracked +| 43|0x0000000082b00000, 0x0000000082c00000, 0x0000000082c00000|100%| O| |TAMS 0x0000000082c00000, 0x0000000082b00000| Untracked +| 44|0x0000000082c00000, 0x0000000082d00000, 0x0000000082d00000|100%| O| |TAMS 0x0000000082d00000, 0x0000000082c00000| Untracked +| 45|0x0000000082d00000, 0x0000000082e00000, 0x0000000082e00000|100%| O| |TAMS 0x0000000082e00000, 0x0000000082d00000| Untracked +| 46|0x0000000082e00000, 0x0000000082f00000, 0x0000000082f00000|100%| O| |TAMS 0x0000000082f00000, 0x0000000082e00000| Untracked +| 47|0x0000000082f00000, 0x0000000083000000, 0x0000000083000000|100%| O| |TAMS 0x0000000083000000, 0x0000000082f00000| Untracked +| 48|0x0000000083000000, 0x0000000083100000, 0x0000000083100000|100%| O| |TAMS 0x0000000083100000, 0x0000000083000000| Untracked +| 49|0x0000000083100000, 0x0000000083200000, 0x0000000083200000|100%| O| |TAMS 0x0000000083200000, 0x0000000083100000| Untracked +| 50|0x0000000083200000, 0x0000000083300000, 0x0000000083300000|100%| O| |TAMS 0x0000000083300000, 0x0000000083200000| Untracked +| 51|0x0000000083300000, 0x0000000083400000, 0x0000000083400000|100%| O| |TAMS 0x0000000083400000, 0x0000000083300000| Untracked +| 52|0x0000000083400000, 0x0000000083500000, 0x0000000083500000|100%| O| |TAMS 0x0000000083500000, 0x0000000083400000| Untracked +| 53|0x0000000083500000, 0x0000000083600000, 0x0000000083600000|100%| O| |TAMS 0x0000000083600000, 0x0000000083500000| Untracked +| 54|0x0000000083600000, 0x0000000083700000, 0x0000000083700000|100%| O| |TAMS 0x0000000083700000, 0x0000000083600000| Untracked +| 55|0x0000000083700000, 0x0000000083800000, 0x0000000083800000|100%| O| |TAMS 0x0000000083800000, 0x0000000083700000| Untracked +| 56|0x0000000083800000, 0x0000000083900000, 0x0000000083900000|100%| O| |TAMS 0x0000000083900000, 0x0000000083800000| Untracked +| 57|0x0000000083900000, 0x0000000083a00000, 0x0000000083a00000|100%| O| |TAMS 0x0000000083a00000, 0x0000000083900000| Untracked +| 58|0x0000000083a00000, 0x0000000083b00000, 0x0000000083b00000|100%| O| |TAMS 0x0000000083b00000, 0x0000000083a00000| Untracked +| 59|0x0000000083b00000, 0x0000000083c00000, 0x0000000083c00000|100%| O| |TAMS 0x0000000083c00000, 0x0000000083b00000| Untracked +| 60|0x0000000083c00000, 0x0000000083d00000, 0x0000000083d00000|100%| O| |TAMS 0x0000000083d00000, 0x0000000083c00000| Untracked +| 61|0x0000000083d00000, 0x0000000083e00000, 0x0000000083e00000|100%| O| |TAMS 0x0000000083e00000, 0x0000000083d00000| Untracked +| 62|0x0000000083e00000, 0x0000000083f00000, 0x0000000083f00000|100%| O| |TAMS 0x0000000083f00000, 0x0000000083e00000| Untracked +| 63|0x0000000083f00000, 0x0000000084000000, 0x0000000084000000|100%| O| |TAMS 0x0000000084000000, 0x0000000083f00000| Untracked +| 64|0x0000000084000000, 0x0000000084100000, 0x0000000084100000|100%|HS| |TAMS 0x0000000084100000, 0x0000000084000000| Complete +| 65|0x0000000084100000, 0x0000000084200000, 0x0000000084200000|100%|HC| |TAMS 0x0000000084200000, 0x0000000084100000| Complete +| 66|0x0000000084200000, 0x0000000084300000, 0x0000000084300000|100%| O| |TAMS 0x0000000084300000, 0x0000000084200000| Untracked +| 67|0x0000000084300000, 0x0000000084400000, 0x0000000084400000|100%| O| |TAMS 0x0000000084400000, 0x0000000084300000| Untracked +| 68|0x0000000084400000, 0x0000000084500000, 0x0000000084500000|100%| O| |TAMS 0x0000000084500000, 0x0000000084400000| Untracked +| 69|0x0000000084500000, 0x0000000084600000, 0x0000000084600000|100%| O| |TAMS 0x0000000084600000, 0x0000000084500000| Untracked +| 70|0x0000000084600000, 0x0000000084700000, 0x0000000084700000|100%|HS| |TAMS 0x0000000084700000, 0x0000000084600000| Complete +| 71|0x0000000084700000, 0x0000000084800000, 0x0000000084800000|100%|HC| |TAMS 0x0000000084800000, 0x0000000084700000| Complete +| 72|0x0000000084800000, 0x0000000084900000, 0x0000000084900000|100%|HS| |TAMS 0x0000000084900000, 0x0000000084800000| Complete +| 73|0x0000000084900000, 0x0000000084a00000, 0x0000000084a00000|100%|HC| |TAMS 0x0000000084a00000, 0x0000000084900000| Complete +| 74|0x0000000084a00000, 0x0000000084b00000, 0x0000000084b00000|100%|HS| |TAMS 0x0000000084b00000, 0x0000000084a00000| Complete +| 75|0x0000000084b00000, 0x0000000084c00000, 0x0000000084c00000|100%|HC| |TAMS 0x0000000084c00000, 0x0000000084b00000| Complete +| 76|0x0000000084c00000, 0x0000000084d00000, 0x0000000084d00000|100%|HC| |TAMS 0x0000000084d00000, 0x0000000084c00000| Complete +| 77|0x0000000084d00000, 0x0000000084e00000, 0x0000000084e00000|100%| O| |TAMS 0x0000000084e00000, 0x0000000084d00000| Untracked +| 78|0x0000000084e00000, 0x0000000084f00000, 0x0000000084f00000|100%| O| |TAMS 0x0000000084f00000, 0x0000000084e00000| Untracked +| 79|0x0000000084f00000, 0x0000000085000000, 0x0000000085000000|100%| O| |TAMS 0x0000000085000000, 0x0000000084f00000| Untracked +| 80|0x0000000085000000, 0x0000000085100000, 0x0000000085100000|100%| O| |TAMS 0x0000000085100000, 0x0000000085000000| Untracked +| 81|0x0000000085100000, 0x0000000085200000, 0x0000000085200000|100%| O| |TAMS 0x0000000085200000, 0x0000000085100000| Untracked +| 82|0x0000000085200000, 0x0000000085300000, 0x0000000085300000|100%| O| |TAMS 0x0000000085300000, 0x0000000085200000| Untracked +| 83|0x0000000085300000, 0x0000000085400000, 0x0000000085400000|100%| O| |TAMS 0x0000000085400000, 0x0000000085300000| Untracked +| 84|0x0000000085400000, 0x0000000085500000, 0x0000000085500000|100%| O| |TAMS 0x0000000085500000, 0x0000000085400000| Untracked +| 85|0x0000000085500000, 0x0000000085600000, 0x0000000085600000|100%| O| |TAMS 0x0000000085600000, 0x0000000085500000| Untracked +| 86|0x0000000085600000, 0x0000000085700000, 0x0000000085700000|100%| O| |TAMS 0x0000000085700000, 0x0000000085600000| Untracked +| 87|0x0000000085700000, 0x0000000085800000, 0x0000000085800000|100%| O| |TAMS 0x0000000085800000, 0x0000000085700000| Untracked +| 88|0x0000000085800000, 0x0000000085900000, 0x0000000085900000|100%| O| |TAMS 0x0000000085900000, 0x0000000085800000| Untracked +| 89|0x0000000085900000, 0x0000000085a00000, 0x0000000085a00000|100%| O| |TAMS 0x0000000085a00000, 0x0000000085900000| Untracked +| 90|0x0000000085a00000, 0x0000000085b00000, 0x0000000085b00000|100%| O| |TAMS 0x0000000085b00000, 0x0000000085a00000| Untracked +| 91|0x0000000085b00000, 0x0000000085c00000, 0x0000000085c00000|100%| O| |TAMS 0x0000000085c00000, 0x0000000085b00000| Untracked +| 92|0x0000000085c00000, 0x0000000085d00000, 0x0000000085d00000|100%| O| |TAMS 0x0000000085c00000, 0x0000000085c00000| Untracked +| 93|0x0000000085d00000, 0x0000000085e00000, 0x0000000085e00000|100%| O| |TAMS 0x0000000085d00000, 0x0000000085d00000| Untracked +| 94|0x0000000085e00000, 0x0000000085f00000, 0x0000000085f00000|100%| O| |TAMS 0x0000000085e00000, 0x0000000085e00000| Untracked +| 95|0x0000000085f00000, 0x0000000086000000, 0x0000000086000000|100%| O| |TAMS 0x0000000085f00000, 0x0000000085f00000| Untracked +| 96|0x0000000086000000, 0x0000000086100000, 0x0000000086100000|100%| O| |TAMS 0x0000000086000000, 0x0000000086000000| Untracked +| 97|0x0000000086100000, 0x0000000086200000, 0x0000000086200000|100%| O| |TAMS 0x0000000086200000, 0x0000000086100000| Untracked +| 98|0x0000000086200000, 0x0000000086300000, 0x0000000086300000|100%| O| |TAMS 0x0000000086300000, 0x0000000086200000| Untracked +| 99|0x0000000086300000, 0x0000000086400000, 0x0000000086400000|100%| O| |TAMS 0x0000000086400000, 0x0000000086300000| Untracked +| 100|0x0000000086400000, 0x0000000086500000, 0x0000000086500000|100%| O| |TAMS 0x0000000086500000, 0x0000000086400000| Untracked +| 101|0x0000000086500000, 0x0000000086600000, 0x0000000086600000|100%| O| |TAMS 0x0000000086600000, 0x0000000086500000| Untracked +| 102|0x0000000086600000, 0x0000000086700000, 0x0000000086700000|100%| O| |TAMS 0x0000000086700000, 0x0000000086600000| Untracked +| 103|0x0000000086700000, 0x0000000086800000, 0x0000000086800000|100%| O| |TAMS 0x0000000086800000, 0x0000000086700000| Untracked +| 104|0x0000000086800000, 0x0000000086900000, 0x0000000086900000|100%| O| |TAMS 0x0000000086900000, 0x0000000086800000| Untracked +| 105|0x0000000086900000, 0x0000000086a00000, 0x0000000086a00000|100%| O| |TAMS 0x0000000086a00000, 0x0000000086900000| Untracked +| 106|0x0000000086a00000, 0x0000000086b00000, 0x0000000086b00000|100%| O| |TAMS 0x0000000086b00000, 0x0000000086a00000| Untracked +| 107|0x0000000086b00000, 0x0000000086c00000, 0x0000000086c00000|100%| O| |TAMS 0x0000000086c00000, 0x0000000086b00000| Untracked +| 108|0x0000000086c00000, 0x0000000086d00000, 0x0000000086d00000|100%| O| |TAMS 0x0000000086d00000, 0x0000000086c00000| Untracked +| 109|0x0000000086d00000, 0x0000000086e00000, 0x0000000086e00000|100%| O| |TAMS 0x0000000086e00000, 0x0000000086d00000| Untracked +| 110|0x0000000086e00000, 0x0000000086f00000, 0x0000000086f00000|100%| O| |TAMS 0x0000000086f00000, 0x0000000086e00000| Untracked +| 111|0x0000000086f00000, 0x0000000087000000, 0x0000000087000000|100%| O| |TAMS 0x0000000087000000, 0x0000000086f00000| Untracked +| 112|0x0000000087000000, 0x0000000087100000, 0x0000000087100000|100%| O| |TAMS 0x0000000087100000, 0x0000000087000000| Untracked +| 113|0x0000000087100000, 0x0000000087200000, 0x0000000087200000|100%| O| |TAMS 0x0000000087200000, 0x0000000087100000| Untracked +| 114|0x0000000087200000, 0x0000000087300000, 0x0000000087300000|100%| O| |TAMS 0x0000000087300000, 0x0000000087200000| Untracked +| 115|0x0000000087300000, 0x0000000087400000, 0x0000000087400000|100%| O| |TAMS 0x0000000087400000, 0x0000000087300000| Untracked +| 116|0x0000000087400000, 0x0000000087500000, 0x0000000087500000|100%| O| |TAMS 0x0000000087500000, 0x0000000087400000| Untracked +| 117|0x0000000087500000, 0x0000000087600000, 0x0000000087600000|100%| O| |TAMS 0x0000000087500000, 0x0000000087500000| Untracked +| 118|0x0000000087600000, 0x0000000087700000, 0x0000000087700000|100%| O| |TAMS 0x0000000087700000, 0x0000000087600000| Untracked +| 119|0x0000000087700000, 0x0000000087800000, 0x0000000087800000|100%|HS| |TAMS 0x0000000087800000, 0x0000000087700000| Complete +| 120|0x0000000087800000, 0x0000000087900000, 0x0000000087900000|100%|HC| |TAMS 0x0000000087900000, 0x0000000087800000| Complete +| 121|0x0000000087900000, 0x0000000087a00000, 0x0000000087a00000|100%|HC| |TAMS 0x0000000087a00000, 0x0000000087900000| Complete +| 122|0x0000000087a00000, 0x0000000087b00000, 0x0000000087b00000|100%| O| |TAMS 0x0000000087b00000, 0x0000000087a00000| Untracked +| 123|0x0000000087b00000, 0x0000000087c00000, 0x0000000087c00000|100%| O| |TAMS 0x0000000087c00000, 0x0000000087b00000| Untracked +| 124|0x0000000087c00000, 0x0000000087d00000, 0x0000000087d00000|100%| O| |TAMS 0x0000000087d00000, 0x0000000087c00000| Untracked +| 125|0x0000000087d00000, 0x0000000087e00000, 0x0000000087e00000|100%| O| |TAMS 0x0000000087e00000, 0x0000000087d00000| Untracked +| 126|0x0000000087e00000, 0x0000000087f00000, 0x0000000087f00000|100%| O| |TAMS 0x0000000087f00000, 0x0000000087e00000| Untracked +| 127|0x0000000087f00000, 0x0000000088000000, 0x0000000088000000|100%| O| |TAMS 0x0000000088000000, 0x0000000087f00000| Untracked +| 128|0x0000000088000000, 0x0000000088100000, 0x0000000088100000|100%| O| |TAMS 0x0000000088100000, 0x0000000088000000| Untracked +| 129|0x0000000088100000, 0x0000000088200000, 0x0000000088200000|100%| O| |TAMS 0x0000000088200000, 0x0000000088100000| Untracked +| 130|0x0000000088200000, 0x0000000088300000, 0x0000000088300000|100%| O| |TAMS 0x0000000088300000, 0x0000000088200000| Untracked +| 131|0x0000000088300000, 0x0000000088400000, 0x0000000088400000|100%| O| |TAMS 0x0000000088400000, 0x0000000088300000| Untracked +| 132|0x0000000088400000, 0x0000000088500000, 0x0000000088500000|100%| O| |TAMS 0x0000000088500000, 0x0000000088400000| Untracked +| 133|0x0000000088500000, 0x0000000088600000, 0x0000000088600000|100%| O| |TAMS 0x0000000088600000, 0x0000000088500000| Untracked +| 134|0x0000000088600000, 0x0000000088700000, 0x0000000088700000|100%| O| |TAMS 0x0000000088700000, 0x0000000088600000| Untracked +| 135|0x0000000088700000, 0x0000000088800000, 0x0000000088800000|100%| O| |TAMS 0x0000000088800000, 0x0000000088700000| Untracked +| 136|0x0000000088800000, 0x0000000088900000, 0x0000000088900000|100%| O| |TAMS 0x0000000088900000, 0x0000000088800000| Untracked +| 137|0x0000000088900000, 0x0000000088a00000, 0x0000000088a00000|100%| O| |TAMS 0x0000000088a00000, 0x0000000088900000| Untracked +| 138|0x0000000088a00000, 0x0000000088b00000, 0x0000000088b00000|100%| O| |TAMS 0x0000000088b00000, 0x0000000088a00000| Untracked +| 139|0x0000000088b00000, 0x0000000088c00000, 0x0000000088c00000|100%| O| |TAMS 0x0000000088c00000, 0x0000000088b00000| Untracked +| 140|0x0000000088c00000, 0x0000000088d00000, 0x0000000088d00000|100%| O| |TAMS 0x0000000088d00000, 0x0000000088c00000| Untracked +| 141|0x0000000088d00000, 0x0000000088e00000, 0x0000000088e00000|100%| O| |TAMS 0x0000000088e00000, 0x0000000088d00000| Untracked +| 142|0x0000000088e00000, 0x0000000088f00000, 0x0000000088f00000|100%| O| |TAMS 0x0000000088f00000, 0x0000000088e00000| Untracked +| 143|0x0000000088f00000, 0x0000000089000000, 0x0000000089000000|100%| O| |TAMS 0x0000000089000000, 0x0000000088f00000| Untracked +| 144|0x0000000089000000, 0x0000000089100000, 0x0000000089100000|100%| O| |TAMS 0x0000000089100000, 0x0000000089000000| Untracked +| 145|0x0000000089100000, 0x0000000089200000, 0x0000000089200000|100%| O| |TAMS 0x0000000089200000, 0x0000000089100000| Untracked +| 146|0x0000000089200000, 0x0000000089300000, 0x0000000089300000|100%| O| |TAMS 0x0000000089300000, 0x0000000089200000| Untracked +| 147|0x0000000089300000, 0x0000000089400000, 0x0000000089400000|100%| O| |TAMS 0x0000000089400000, 0x0000000089300000| Untracked +| 148|0x0000000089400000, 0x0000000089500000, 0x0000000089500000|100%| O| |TAMS 0x0000000089500000, 0x0000000089400000| Untracked +| 149|0x0000000089500000, 0x0000000089600000, 0x0000000089600000|100%| O| |TAMS 0x0000000089600000, 0x0000000089500000| Untracked +| 150|0x0000000089600000, 0x0000000089700000, 0x0000000089700000|100%| O| |TAMS 0x0000000089700000, 0x0000000089600000| Untracked +| 151|0x0000000089700000, 0x0000000089800000, 0x0000000089800000|100%| O| |TAMS 0x0000000089800000, 0x0000000089700000| Untracked +| 152|0x0000000089800000, 0x0000000089900000, 0x0000000089900000|100%| O| |TAMS 0x0000000089900000, 0x0000000089800000| Untracked +| 153|0x0000000089900000, 0x0000000089a00000, 0x0000000089a00000|100%| O| |TAMS 0x0000000089a00000, 0x0000000089900000| Untracked +| 154|0x0000000089a00000, 0x0000000089b00000, 0x0000000089b00000|100%| O| |TAMS 0x0000000089b00000, 0x0000000089a00000| Untracked +| 155|0x0000000089b00000, 0x0000000089c00000, 0x0000000089c00000|100%| O| |TAMS 0x0000000089c00000, 0x0000000089b00000| Untracked +| 156|0x0000000089c00000, 0x0000000089d00000, 0x0000000089d00000|100%| O| |TAMS 0x0000000089d00000, 0x0000000089c00000| Untracked +| 157|0x0000000089d00000, 0x0000000089e00000, 0x0000000089e00000|100%| O| |TAMS 0x0000000089e00000, 0x0000000089d00000| Untracked +| 158|0x0000000089e00000, 0x0000000089f00000, 0x0000000089f00000|100%| O| |TAMS 0x0000000089f00000, 0x0000000089e00000| Untracked +| 159|0x0000000089f00000, 0x000000008a000000, 0x000000008a000000|100%| O| |TAMS 0x0000000089f00000, 0x0000000089f00000| Untracked +| 160|0x000000008a000000, 0x000000008a100000, 0x000000008a100000|100%| O| |TAMS 0x000000008a000000, 0x000000008a000000| Untracked +| 161|0x000000008a100000, 0x000000008a200000, 0x000000008a200000|100%| O| |TAMS 0x000000008a200000, 0x000000008a100000| Untracked +| 162|0x000000008a200000, 0x000000008a300000, 0x000000008a300000|100%| O| |TAMS 0x000000008a300000, 0x000000008a200000| Untracked +| 163|0x000000008a300000, 0x000000008a400000, 0x000000008a400000|100%| O| |TAMS 0x000000008a400000, 0x000000008a300000| Untracked +| 164|0x000000008a400000, 0x000000008a500000, 0x000000008a500000|100%| O| |TAMS 0x000000008a500000, 0x000000008a400000| Untracked +| 165|0x000000008a500000, 0x000000008a600000, 0x000000008a600000|100%| O| |TAMS 0x000000008a600000, 0x000000008a500000| Untracked +| 166|0x000000008a600000, 0x000000008a700000, 0x000000008a700000|100%| O| |TAMS 0x000000008a700000, 0x000000008a600000| Untracked +| 167|0x000000008a700000, 0x000000008a800000, 0x000000008a800000|100%| O| |TAMS 0x000000008a800000, 0x000000008a700000| Untracked +| 168|0x000000008a800000, 0x000000008a900000, 0x000000008a900000|100%| O| |TAMS 0x000000008a900000, 0x000000008a800000| Untracked +| 169|0x000000008a900000, 0x000000008aa00000, 0x000000008aa00000|100%| O| |TAMS 0x000000008aa00000, 0x000000008a900000| Untracked +| 170|0x000000008aa00000, 0x000000008ab00000, 0x000000008ab00000|100%| O| |TAMS 0x000000008ab00000, 0x000000008aa00000| Untracked +| 171|0x000000008ab00000, 0x000000008ac00000, 0x000000008ac00000|100%| O| |TAMS 0x000000008ac00000, 0x000000008ab00000| Untracked +| 172|0x000000008ac00000, 0x000000008ad00000, 0x000000008ad00000|100%| O| |TAMS 0x000000008ad00000, 0x000000008ac00000| Untracked +| 173|0x000000008ad00000, 0x000000008ae00000, 0x000000008ae00000|100%| O| |TAMS 0x000000008ae00000, 0x000000008ad00000| Untracked +| 174|0x000000008ae00000, 0x000000008af00000, 0x000000008af00000|100%| O| |TAMS 0x000000008af00000, 0x000000008ae00000| Untracked +| 175|0x000000008af00000, 0x000000008b000000, 0x000000008b000000|100%| O| |TAMS 0x000000008b000000, 0x000000008af00000| Untracked +| 176|0x000000008b000000, 0x000000008b100000, 0x000000008b100000|100%| O| |TAMS 0x000000008b100000, 0x000000008b000000| Untracked +| 177|0x000000008b100000, 0x000000008b200000, 0x000000008b200000|100%| O| |TAMS 0x000000008b200000, 0x000000008b100000| Untracked +| 178|0x000000008b200000, 0x000000008b300000, 0x000000008b300000|100%| O| |TAMS 0x000000008b300000, 0x000000008b200000| Untracked +| 179|0x000000008b300000, 0x000000008b400000, 0x000000008b400000|100%| O| |TAMS 0x000000008b400000, 0x000000008b300000| Untracked +| 180|0x000000008b400000, 0x000000008b500000, 0x000000008b500000|100%| O| |TAMS 0x000000008b500000, 0x000000008b400000| Untracked +| 181|0x000000008b500000, 0x000000008b600000, 0x000000008b600000|100%| O| |TAMS 0x000000008b600000, 0x000000008b500000| Untracked +| 182|0x000000008b600000, 0x000000008b700000, 0x000000008b700000|100%| O| |TAMS 0x000000008b700000, 0x000000008b600000| Untracked +| 183|0x000000008b700000, 0x000000008b800000, 0x000000008b800000|100%| O| |TAMS 0x000000008b800000, 0x000000008b700000| Untracked +| 184|0x000000008b800000, 0x000000008b900000, 0x000000008b900000|100%| O| |TAMS 0x000000008b900000, 0x000000008b800000| Untracked +| 185|0x000000008b900000, 0x000000008ba00000, 0x000000008ba00000|100%| O| |TAMS 0x000000008ba00000, 0x000000008b900000| Untracked +| 186|0x000000008ba00000, 0x000000008bb00000, 0x000000008bb00000|100%| O| |TAMS 0x000000008bb00000, 0x000000008ba00000| Untracked +| 187|0x000000008bb00000, 0x000000008bc00000, 0x000000008bc00000|100%| O| |TAMS 0x000000008bb00000, 0x000000008bb00000| Untracked +| 188|0x000000008bc00000, 0x000000008bd00000, 0x000000008bd00000|100%| O| |TAMS 0x000000008bd00000, 0x000000008bc00000| Untracked +| 189|0x000000008bd00000, 0x000000008be00000, 0x000000008be00000|100%| O| |TAMS 0x000000008be00000, 0x000000008bd00000| Untracked +| 190|0x000000008be00000, 0x000000008bf00000, 0x000000008bf00000|100%| O| |TAMS 0x000000008be00000, 0x000000008be00000| Untracked +| 191|0x000000008bf00000, 0x000000008c000000, 0x000000008c000000|100%| O| |TAMS 0x000000008c000000, 0x000000008bf00000| Untracked +| 192|0x000000008c000000, 0x000000008c100000, 0x000000008c100000|100%| O| |TAMS 0x000000008c000000, 0x000000008c000000| Untracked +| 193|0x000000008c100000, 0x000000008c200000, 0x000000008c200000|100%| O| |TAMS 0x000000008c100000, 0x000000008c100000| Untracked +| 194|0x000000008c200000, 0x000000008c300000, 0x000000008c300000|100%| O| |TAMS 0x000000008c200000, 0x000000008c200000| Untracked +| 195|0x000000008c300000, 0x000000008c400000, 0x000000008c400000|100%| O| |TAMS 0x000000008c300000, 0x000000008c300000| Untracked +| 196|0x000000008c400000, 0x000000008c500000, 0x000000008c500000|100%| O| |TAMS 0x000000008c400000, 0x000000008c400000| Untracked +| 197|0x000000008c500000, 0x000000008c600000, 0x000000008c600000|100%| O| |TAMS 0x000000008c600000, 0x000000008c500000| Untracked +| 198|0x000000008c600000, 0x000000008c700000, 0x000000008c700000|100%| O| |TAMS 0x000000008c600000, 0x000000008c600000| Untracked +| 199|0x000000008c700000, 0x000000008c800000, 0x000000008c800000|100%| O| |TAMS 0x000000008c700000, 0x000000008c700000| Untracked +| 200|0x000000008c800000, 0x000000008c900000, 0x000000008c900000|100%| O| |TAMS 0x000000008c800000, 0x000000008c800000| Untracked +| 201|0x000000008c900000, 0x000000008ca00000, 0x000000008ca00000|100%| O| |TAMS 0x000000008c900000, 0x000000008c900000| Untracked +| 202|0x000000008ca00000, 0x000000008cb00000, 0x000000008cb00000|100%| O| |TAMS 0x000000008cb00000, 0x000000008ca00000| Untracked +| 203|0x000000008cb00000, 0x000000008cc00000, 0x000000008cc00000|100%| O| |TAMS 0x000000008cc00000, 0x000000008cb00000| Untracked +| 204|0x000000008cc00000, 0x000000008cd00000, 0x000000008cd00000|100%| O| |TAMS 0x000000008cd00000, 0x000000008cc00000| Untracked +| 205|0x000000008cd00000, 0x000000008ce00000, 0x000000008ce00000|100%| O| |TAMS 0x000000008ce00000, 0x000000008cd00000| Untracked +| 206|0x000000008ce00000, 0x000000008cf00000, 0x000000008cf00000|100%| O| |TAMS 0x000000008cf00000, 0x000000008ce00000| Untracked +| 207|0x000000008cf00000, 0x000000008d000000, 0x000000008d000000|100%| O| |TAMS 0x000000008cf00000, 0x000000008cf00000| Untracked +| 208|0x000000008d000000, 0x000000008d100000, 0x000000008d100000|100%| O| |TAMS 0x000000008d000000, 0x000000008d000000| Untracked +| 209|0x000000008d100000, 0x000000008d200000, 0x000000008d200000|100%| O| |TAMS 0x000000008d100000, 0x000000008d100000| Untracked +| 210|0x000000008d200000, 0x000000008d300000, 0x000000008d300000|100%| O| |TAMS 0x000000008d200000, 0x000000008d200000| Untracked +| 211|0x000000008d300000, 0x000000008d400000, 0x000000008d400000|100%| O| |TAMS 0x000000008d300000, 0x000000008d300000| Untracked +| 212|0x000000008d400000, 0x000000008d500000, 0x000000008d500000|100%| O| |TAMS 0x000000008d400000, 0x000000008d400000| Untracked +| 213|0x000000008d500000, 0x000000008d600000, 0x000000008d600000|100%| O| |TAMS 0x000000008d500000, 0x000000008d500000| Untracked +| 214|0x000000008d600000, 0x000000008d700000, 0x000000008d700000|100%| O| |TAMS 0x000000008d600000, 0x000000008d600000| Untracked +| 215|0x000000008d700000, 0x000000008d800000, 0x000000008d800000|100%| O| |TAMS 0x000000008d700000, 0x000000008d700000| Untracked +| 216|0x000000008d800000, 0x000000008d900000, 0x000000008d900000|100%| O| |TAMS 0x000000008d800000, 0x000000008d800000| Untracked +| 217|0x000000008d900000, 0x000000008da00000, 0x000000008da00000|100%| O| |TAMS 0x000000008d900000, 0x000000008d900000| Untracked +| 218|0x000000008da00000, 0x000000008db00000, 0x000000008db00000|100%| O| |TAMS 0x000000008da00000, 0x000000008da00000| Untracked +| 219|0x000000008db00000, 0x000000008dc00000, 0x000000008dc00000|100%|HS| |TAMS 0x000000008db00000, 0x000000008db00000| Complete +| 220|0x000000008dc00000, 0x000000008dd00000, 0x000000008dd00000|100%|HS| |TAMS 0x000000008dc00000, 0x000000008dc00000| Complete +| 221|0x000000008dd00000, 0x000000008de00000, 0x000000008de00000|100%|HS| |TAMS 0x000000008dd00000, 0x000000008dd00000| Complete +| 222|0x000000008de00000, 0x000000008df00000, 0x000000008df00000|100%|HC| |TAMS 0x000000008de00000, 0x000000008de00000| Complete +| 223|0x000000008df00000, 0x000000008e000000, 0x000000008e000000|100%|HS| |TAMS 0x000000008df00000, 0x000000008df00000| Complete +| 224|0x000000008e000000, 0x000000008e100000, 0x000000008e100000|100%|HC| |TAMS 0x000000008e000000, 0x000000008e000000| Complete +| 225|0x000000008e100000, 0x000000008e200000, 0x000000008e200000|100%|HS| |TAMS 0x000000008e100000, 0x000000008e100000| Complete +| 226|0x000000008e200000, 0x000000008e300000, 0x000000008e300000|100%|HC| |TAMS 0x000000008e200000, 0x000000008e200000| Complete +| 227|0x000000008e300000, 0x000000008e400000, 0x000000008e400000|100%| O| |TAMS 0x000000008e300000, 0x000000008e300000| Untracked +| 228|0x000000008e400000, 0x000000008e500000, 0x000000008e500000|100%| O| |TAMS 0x000000008e400000, 0x000000008e400000| Untracked +| 229|0x000000008e500000, 0x000000008e600000, 0x000000008e600000|100%| O| |TAMS 0x000000008e500000, 0x000000008e500000| Untracked +| 230|0x000000008e600000, 0x000000008e700000, 0x000000008e700000|100%| O| |TAMS 0x000000008e600000, 0x000000008e600000| Untracked +| 231|0x000000008e700000, 0x000000008e800000, 0x000000008e800000|100%| O| |TAMS 0x000000008e700000, 0x000000008e700000| Untracked +| 232|0x000000008e800000, 0x000000008e900000, 0x000000008e900000|100%| O| |TAMS 0x000000008e800000, 0x000000008e800000| Untracked +| 233|0x000000008e900000, 0x000000008ea00000, 0x000000008ea00000|100%| O| |TAMS 0x000000008e900000, 0x000000008e900000| Untracked +| 234|0x000000008ea00000, 0x000000008eb00000, 0x000000008eb00000|100%| O| |TAMS 0x000000008ea00000, 0x000000008ea00000| Untracked +| 235|0x000000008eb00000, 0x000000008ec00000, 0x000000008ec00000|100%| O| |TAMS 0x000000008eb00000, 0x000000008eb00000| Untracked +| 236|0x000000008ec00000, 0x000000008ed00000, 0x000000008ed00000|100%| O| |TAMS 0x000000008ec00000, 0x000000008ec00000| Untracked +| 237|0x000000008ed00000, 0x000000008ee00000, 0x000000008ee00000|100%| O| |TAMS 0x000000008ee00000, 0x000000008ed00000| Untracked +| 238|0x000000008ee00000, 0x000000008ef00000, 0x000000008ef00000|100%| O| |TAMS 0x000000008ef00000, 0x000000008ee00000| Untracked +| 239|0x000000008ef00000, 0x000000008f000000, 0x000000008f000000|100%| O| |TAMS 0x000000008f000000, 0x000000008ef00000| Untracked +| 240|0x000000008f000000, 0x000000008f100000, 0x000000008f100000|100%| O| |TAMS 0x000000008f100000, 0x000000008f000000| Untracked +| 241|0x000000008f100000, 0x000000008f200000, 0x000000008f200000|100%| O| |TAMS 0x000000008f200000, 0x000000008f100000| Untracked +| 242|0x000000008f200000, 0x000000008f300000, 0x000000008f300000|100%| O| |TAMS 0x000000008f300000, 0x000000008f200000| Untracked +| 243|0x000000008f300000, 0x000000008f400000, 0x000000008f400000|100%| O| |TAMS 0x000000008f400000, 0x000000008f300000| Untracked +| 244|0x000000008f400000, 0x000000008f500000, 0x000000008f500000|100%| O| |TAMS 0x000000008f500000, 0x000000008f400000| Untracked +| 245|0x000000008f500000, 0x000000008f600000, 0x000000008f600000|100%| O| |TAMS 0x000000008f600000, 0x000000008f500000| Untracked +| 246|0x000000008f600000, 0x000000008f700000, 0x000000008f700000|100%| O| |TAMS 0x000000008f700000, 0x000000008f600000| Untracked +| 247|0x000000008f700000, 0x000000008f800000, 0x000000008f800000|100%| O| |TAMS 0x000000008f800000, 0x000000008f700000| Untracked +| 248|0x000000008f800000, 0x000000008f900000, 0x000000008f900000|100%| O| |TAMS 0x000000008f800000, 0x000000008f800000| Untracked +| 249|0x000000008f900000, 0x000000008fa00000, 0x000000008fa00000|100%| O| |TAMS 0x000000008fa00000, 0x000000008f900000| Untracked +| 250|0x000000008fa00000, 0x000000008fb00000, 0x000000008fb00000|100%| O| |TAMS 0x000000008fb00000, 0x000000008fa00000| Untracked +| 251|0x000000008fb00000, 0x000000008fc00000, 0x000000008fc00000|100%| O| |TAMS 0x000000008fc00000, 0x000000008fb00000| Untracked +| 252|0x000000008fc00000, 0x000000008fd00000, 0x000000008fd00000|100%| O| |TAMS 0x000000008fd00000, 0x000000008fc00000| Untracked +| 253|0x000000008fd00000, 0x000000008fe00000, 0x000000008fe00000|100%| O| |TAMS 0x000000008fe00000, 0x000000008fd00000| Untracked +| 254|0x000000008fe00000, 0x000000008ff00000, 0x000000008ff00000|100%| O| |TAMS 0x000000008ff00000, 0x000000008fe00000| Untracked +| 255|0x000000008ff00000, 0x0000000090000000, 0x0000000090000000|100%| O| |TAMS 0x0000000090000000, 0x000000008ff00000| Untracked +| 256|0x0000000090000000, 0x0000000090100000, 0x0000000090100000|100%| O| |TAMS 0x0000000090100000, 0x0000000090000000| Untracked +| 257|0x0000000090100000, 0x0000000090200000, 0x0000000090200000|100%| O| |TAMS 0x0000000090200000, 0x0000000090100000| Untracked +| 258|0x0000000090200000, 0x0000000090300000, 0x0000000090300000|100%| O| |TAMS 0x0000000090300000, 0x0000000090200000| Untracked +| 259|0x0000000090300000, 0x0000000090400000, 0x0000000090400000|100%| O| |TAMS 0x0000000090300000, 0x0000000090300000| Untracked +| 260|0x0000000090400000, 0x0000000090500000, 0x0000000090500000|100%| O| |TAMS 0x0000000090500000, 0x0000000090400000| Untracked +| 261|0x0000000090500000, 0x0000000090600000, 0x0000000090600000|100%| O| |TAMS 0x0000000090600000, 0x0000000090500000| Untracked +| 262|0x0000000090600000, 0x0000000090700000, 0x0000000090700000|100%| O| |TAMS 0x00000000906ba000, 0x0000000090600000| Untracked +| 263|0x0000000090700000, 0x0000000090800000, 0x0000000090800000|100%| O| |TAMS 0x0000000090700000, 0x0000000090700000| Untracked +| 264|0x0000000090800000, 0x0000000090900000, 0x0000000090900000|100%| O| |TAMS 0x0000000090800000, 0x0000000090800000| Untracked +| 265|0x0000000090900000, 0x0000000090a00000, 0x0000000090a00000|100%| O| |TAMS 0x0000000090900000, 0x0000000090900000| Untracked +| 266|0x0000000090a00000, 0x0000000090b00000, 0x0000000090b00000|100%| O| |TAMS 0x0000000090a00000, 0x0000000090a00000| Untracked +| 267|0x0000000090b00000, 0x0000000090c00000, 0x0000000090c00000|100%| O| |TAMS 0x0000000090b00000, 0x0000000090b00000| Untracked +| 268|0x0000000090c00000, 0x0000000090d00000, 0x0000000090d00000|100%| O| |TAMS 0x0000000090c00000, 0x0000000090c00000| Untracked +| 269|0x0000000090d00000, 0x0000000090e00000, 0x0000000090e00000|100%| O| |TAMS 0x0000000090d00000, 0x0000000090d00000| Untracked +| 270|0x0000000090e00000, 0x0000000090f00000, 0x0000000090f00000|100%| O| |TAMS 0x0000000090e00000, 0x0000000090e00000| Untracked +| 271|0x0000000090f00000, 0x0000000091000000, 0x0000000091000000|100%| O| |TAMS 0x0000000090f00000, 0x0000000090f00000| Untracked +| 272|0x0000000091000000, 0x0000000091100000, 0x0000000091100000|100%| O| |TAMS 0x0000000091000000, 0x0000000091000000| Untracked +| 273|0x0000000091100000, 0x0000000091200000, 0x0000000091200000|100%| O| |TAMS 0x0000000091100000, 0x0000000091100000| Untracked +| 274|0x0000000091200000, 0x0000000091300000, 0x0000000091300000|100%| O| |TAMS 0x0000000091200000, 0x0000000091200000| Untracked +| 275|0x0000000091300000, 0x00000000913a8700, 0x0000000091400000| 65%| O| |TAMS 0x0000000091300000, 0x0000000091300000| Untracked +| 276|0x0000000091400000, 0x0000000091400000, 0x0000000091500000| 0%| F| |TAMS 0x0000000091400000, 0x0000000091400000| Untracked +| 277|0x0000000091500000, 0x0000000091500000, 0x0000000091600000| 0%| F| |TAMS 0x0000000091500000, 0x0000000091500000| Untracked +| 278|0x0000000091600000, 0x0000000091600000, 0x0000000091700000| 0%| F| |TAMS 0x0000000091600000, 0x0000000091600000| Untracked +| 279|0x0000000091700000, 0x0000000091700000, 0x0000000091800000| 0%| F| |TAMS 0x0000000091700000, 0x0000000091700000| Untracked +| 280|0x0000000091800000, 0x0000000091800000, 0x0000000091900000| 0%| F| |TAMS 0x0000000091800000, 0x0000000091800000| Untracked +| 281|0x0000000091900000, 0x0000000091900000, 0x0000000091a00000| 0%| F| |TAMS 0x0000000091900000, 0x0000000091900000| Untracked +| 282|0x0000000091a00000, 0x0000000091a00000, 0x0000000091b00000| 0%| F| |TAMS 0x0000000091a00000, 0x0000000091a00000| Untracked +| 283|0x0000000091b00000, 0x0000000091b00000, 0x0000000091c00000| 0%| F| |TAMS 0x0000000091b00000, 0x0000000091b00000| Untracked +| 284|0x0000000091c00000, 0x0000000091c00000, 0x0000000091d00000| 0%| F| |TAMS 0x0000000091c00000, 0x0000000091c00000| Untracked +| 285|0x0000000091d00000, 0x0000000091d00000, 0x0000000091e00000| 0%| F| |TAMS 0x0000000091d00000, 0x0000000091d00000| Untracked +| 286|0x0000000091e00000, 0x0000000091e00000, 0x0000000091f00000| 0%| F| |TAMS 0x0000000091e00000, 0x0000000091e00000| Untracked +| 287|0x0000000091f00000, 0x0000000091f00000, 0x0000000092000000| 0%| F| |TAMS 0x0000000091f00000, 0x0000000091f00000| Untracked +| 288|0x0000000092000000, 0x0000000092000000, 0x0000000092100000| 0%| F| |TAMS 0x0000000092000000, 0x0000000092000000| Untracked +| 289|0x0000000092100000, 0x0000000092100000, 0x0000000092200000| 0%| F| |TAMS 0x0000000092100000, 0x0000000092100000| Untracked +| 290|0x0000000092200000, 0x0000000092200000, 0x0000000092300000| 0%| F| |TAMS 0x0000000092200000, 0x0000000092200000| Untracked +| 291|0x0000000092300000, 0x0000000092300000, 0x0000000092400000| 0%| F| |TAMS 0x0000000092300000, 0x0000000092300000| Untracked +| 292|0x0000000092400000, 0x0000000092400000, 0x0000000092500000| 0%| F| |TAMS 0x0000000092400000, 0x0000000092400000| Untracked +| 293|0x0000000092500000, 0x0000000092500000, 0x0000000092600000| 0%| F| |TAMS 0x0000000092500000, 0x0000000092500000| Untracked +| 294|0x0000000092600000, 0x0000000092600000, 0x0000000092700000| 0%| F| |TAMS 0x0000000092600000, 0x0000000092600000| Untracked +| 295|0x0000000092700000, 0x0000000092700000, 0x0000000092800000| 0%| F| |TAMS 0x0000000092700000, 0x0000000092700000| Untracked +| 296|0x0000000092800000, 0x0000000092800000, 0x0000000092900000| 0%| F| |TAMS 0x0000000092800000, 0x0000000092800000| Untracked +| 297|0x0000000092900000, 0x0000000092900000, 0x0000000092a00000| 0%| F| |TAMS 0x0000000092900000, 0x0000000092900000| Untracked +| 298|0x0000000092a00000, 0x0000000092a00000, 0x0000000092b00000| 0%| F| |TAMS 0x0000000092a00000, 0x0000000092a00000| Untracked +| 299|0x0000000092b00000, 0x0000000092c00000, 0x0000000092c00000|100%| S| |TAMS 0x0000000092b00000, 0x0000000092b00000| Complete +| 300|0x0000000092c00000, 0x0000000092d00000, 0x0000000092d00000|100%| S| |TAMS 0x0000000092c00000, 0x0000000092c00000| Complete +| 301|0x0000000092d00000, 0x0000000092e00000, 0x0000000092e00000|100%| S| |TAMS 0x0000000092d00000, 0x0000000092d00000| Complete +| 302|0x0000000092e00000, 0x0000000092f00000, 0x0000000092f00000|100%| S| |TAMS 0x0000000092e00000, 0x0000000092e00000| Complete +| 303|0x0000000092f00000, 0x0000000093000000, 0x0000000093000000|100%| S| |TAMS 0x0000000092f00000, 0x0000000092f00000| Complete +| 304|0x0000000093000000, 0x0000000093100000, 0x0000000093100000|100%| S| |TAMS 0x0000000093000000, 0x0000000093000000| Complete +| 305|0x0000000093100000, 0x0000000093200000, 0x0000000093200000|100%| S| |TAMS 0x0000000093100000, 0x0000000093100000| Complete +| 306|0x0000000093200000, 0x0000000093300000, 0x0000000093300000|100%| S| |TAMS 0x0000000093200000, 0x0000000093200000| Complete +| 307|0x0000000093300000, 0x0000000093400000, 0x0000000093400000|100%| S| |TAMS 0x0000000093300000, 0x0000000093300000| Complete +| 308|0x0000000093400000, 0x0000000093500000, 0x0000000093500000|100%| S| |TAMS 0x0000000093400000, 0x0000000093400000| Complete +| 309|0x0000000093500000, 0x0000000093600000, 0x0000000093600000|100%| S| |TAMS 0x0000000093500000, 0x0000000093500000| Complete +| 310|0x0000000093600000, 0x0000000093700000, 0x0000000093700000|100%| S| |TAMS 0x0000000093600000, 0x0000000093600000| Complete +| 311|0x0000000093700000, 0x0000000093800000, 0x0000000093800000|100%| S| |TAMS 0x0000000093700000, 0x0000000093700000| Complete +| 312|0x0000000093800000, 0x0000000093900000, 0x0000000093900000|100%| S| |TAMS 0x0000000093800000, 0x0000000093800000| Complete +| 313|0x0000000093900000, 0x0000000093a00000, 0x0000000093a00000|100%| S| |TAMS 0x0000000093900000, 0x0000000093900000| Complete +| 314|0x0000000093a00000, 0x0000000093b00000, 0x0000000093b00000|100%| S| |TAMS 0x0000000093a00000, 0x0000000093a00000| Complete +| 315|0x0000000093b00000, 0x0000000093c00000, 0x0000000093c00000|100%| S| |TAMS 0x0000000093b00000, 0x0000000093b00000| Complete +| 316|0x0000000093c00000, 0x0000000093c6f7a0, 0x0000000093d00000| 43%| E|CS|TAMS 0x0000000093c00000, 0x0000000093c00000| Complete +| 317|0x0000000093d00000, 0x0000000093e00000, 0x0000000093e00000|100%| E|CS|TAMS 0x0000000093d00000, 0x0000000093d00000| Complete +| 318|0x0000000093e00000, 0x0000000093f00000, 0x0000000093f00000|100%| E|CS|TAMS 0x0000000093e00000, 0x0000000093e00000| Complete +| 319|0x0000000093f00000, 0x0000000094000000, 0x0000000094000000|100%| E|CS|TAMS 0x0000000093f00000, 0x0000000093f00000| Complete +| 320|0x0000000094000000, 0x0000000094100000, 0x0000000094100000|100%| E|CS|TAMS 0x0000000094000000, 0x0000000094000000| Complete +| 321|0x0000000094100000, 0x0000000094200000, 0x0000000094200000|100%| E|CS|TAMS 0x0000000094100000, 0x0000000094100000| Complete +| 322|0x0000000094200000, 0x0000000094300000, 0x0000000094300000|100%| E|CS|TAMS 0x0000000094200000, 0x0000000094200000| Complete +| 323|0x0000000094300000, 0x0000000094400000, 0x0000000094400000|100%| S| |TAMS 0x0000000094300000, 0x0000000094300000| Complete +| 324|0x0000000094400000, 0x0000000094500000, 0x0000000094500000|100%| S| |TAMS 0x0000000094400000, 0x0000000094400000| Complete +| 325|0x0000000094500000, 0x0000000094600000, 0x0000000094600000|100%| S| |TAMS 0x0000000094500000, 0x0000000094500000| Complete +| 326|0x0000000094600000, 0x0000000094700000, 0x0000000094700000|100%| S| |TAMS 0x0000000094600000, 0x0000000094600000| Complete +| 327|0x0000000094700000, 0x0000000094800000, 0x0000000094800000|100%| S| |TAMS 0x0000000094700000, 0x0000000094700000| Complete +| 328|0x0000000094800000, 0x0000000094900000, 0x0000000094900000|100%| S| |TAMS 0x0000000094800000, 0x0000000094800000| Complete +| 329|0x0000000094900000, 0x0000000094a00000, 0x0000000094a00000|100%| S| |TAMS 0x0000000094900000, 0x0000000094900000| Complete +| 330|0x0000000094a00000, 0x0000000094b00000, 0x0000000094b00000|100%| S| |TAMS 0x0000000094a00000, 0x0000000094a00000| Complete +| 331|0x0000000094b00000, 0x0000000094c00000, 0x0000000094c00000|100%| E|CS|TAMS 0x0000000094b00000, 0x0000000094b00000| Complete +| 332|0x0000000094c00000, 0x0000000094d00000, 0x0000000094d00000|100%| E|CS|TAMS 0x0000000094c00000, 0x0000000094c00000| Complete +| 333|0x0000000094d00000, 0x0000000094e00000, 0x0000000094e00000|100%| E|CS|TAMS 0x0000000094d00000, 0x0000000094d00000| Complete +| 334|0x0000000094e00000, 0x0000000094f00000, 0x0000000094f00000|100%| E|CS|TAMS 0x0000000094e00000, 0x0000000094e00000| Complete +| 335|0x0000000094f00000, 0x0000000095000000, 0x0000000095000000|100%| E|CS|TAMS 0x0000000094f00000, 0x0000000094f00000| Complete +| 336|0x0000000095000000, 0x0000000095100000, 0x0000000095100000|100%| E|CS|TAMS 0x0000000095000000, 0x0000000095000000| Complete +| 337|0x0000000095100000, 0x0000000095200000, 0x0000000095200000|100%| E|CS|TAMS 0x0000000095100000, 0x0000000095100000| Complete +| 338|0x0000000095200000, 0x0000000095300000, 0x0000000095300000|100%| E|CS|TAMS 0x0000000095200000, 0x0000000095200000| Complete +| 339|0x0000000095300000, 0x0000000095400000, 0x0000000095400000|100%| E|CS|TAMS 0x0000000095300000, 0x0000000095300000| Complete +| 340|0x0000000095400000, 0x0000000095500000, 0x0000000095500000|100%| E|CS|TAMS 0x0000000095400000, 0x0000000095400000| Complete +| 341|0x0000000095500000, 0x0000000095600000, 0x0000000095600000|100%| S| |TAMS 0x0000000095500000, 0x0000000095500000| Complete +| 342|0x0000000095600000, 0x0000000095700000, 0x0000000095700000|100%| S| |TAMS 0x0000000095600000, 0x0000000095600000| Complete +| 343|0x0000000095700000, 0x0000000095800000, 0x0000000095800000|100%| S| |TAMS 0x0000000095700000, 0x0000000095700000| Complete +| 344|0x0000000095800000, 0x0000000095900000, 0x0000000095900000|100%| S| |TAMS 0x0000000095800000, 0x0000000095800000| Complete +| 345|0x0000000095900000, 0x0000000095a00000, 0x0000000095a00000|100%| S| |TAMS 0x0000000095900000, 0x0000000095900000| Complete +| 346|0x0000000095a00000, 0x0000000095b00000, 0x0000000095b00000|100%| S| |TAMS 0x0000000095a00000, 0x0000000095a00000| Complete +| 347|0x0000000095b00000, 0x0000000095c00000, 0x0000000095c00000|100%| E|CS|TAMS 0x0000000095b00000, 0x0000000095b00000| Complete +| 348|0x0000000095c00000, 0x0000000095d00000, 0x0000000095d00000|100%| E|CS|TAMS 0x0000000095c00000, 0x0000000095c00000| Complete +| 349|0x0000000095d00000, 0x0000000095e00000, 0x0000000095e00000|100%| E|CS|TAMS 0x0000000095d00000, 0x0000000095d00000| Complete +| 350|0x0000000095e00000, 0x0000000095f00000, 0x0000000095f00000|100%| E|CS|TAMS 0x0000000095e00000, 0x0000000095e00000| Complete +| 351|0x0000000095f00000, 0x0000000096000000, 0x0000000096000000|100%| E|CS|TAMS 0x0000000095f00000, 0x0000000095f00000| Complete +| 352|0x0000000096000000, 0x0000000096100000, 0x0000000096100000|100%| E|CS|TAMS 0x0000000096000000, 0x0000000096000000| Complete +| 353|0x0000000096100000, 0x0000000096200000, 0x0000000096200000|100%| E|CS|TAMS 0x0000000096100000, 0x0000000096100000| Complete +| 354|0x0000000096200000, 0x0000000096300000, 0x0000000096300000|100%| E|CS|TAMS 0x0000000096200000, 0x0000000096200000| Complete +| 355|0x0000000096300000, 0x0000000096400000, 0x0000000096400000|100%| E|CS|TAMS 0x0000000096300000, 0x0000000096300000| Complete +| 356|0x0000000096400000, 0x0000000096500000, 0x0000000096500000|100%| E|CS|TAMS 0x0000000096400000, 0x0000000096400000| Complete +| 357|0x0000000096500000, 0x0000000096600000, 0x0000000096600000|100%| E|CS|TAMS 0x0000000096500000, 0x0000000096500000| Complete +| 358|0x0000000096600000, 0x0000000096700000, 0x0000000096700000|100%| E|CS|TAMS 0x0000000096600000, 0x0000000096600000| Complete +| 359|0x0000000096700000, 0x0000000096800000, 0x0000000096800000|100%| E|CS|TAMS 0x0000000096700000, 0x0000000096700000| Complete +| 360|0x0000000096800000, 0x0000000096900000, 0x0000000096900000|100%| E|CS|TAMS 0x0000000096800000, 0x0000000096800000| Complete +| 361|0x0000000096900000, 0x0000000096a00000, 0x0000000096a00000|100%| E|CS|TAMS 0x0000000096900000, 0x0000000096900000| Complete +| 362|0x0000000096a00000, 0x0000000096b00000, 0x0000000096b00000|100%| E|CS|TAMS 0x0000000096a00000, 0x0000000096a00000| Complete +| 363|0x0000000096b00000, 0x0000000096c00000, 0x0000000096c00000|100%| E|CS|TAMS 0x0000000096b00000, 0x0000000096b00000| Complete +| 364|0x0000000096c00000, 0x0000000096d00000, 0x0000000096d00000|100%| E|CS|TAMS 0x0000000096c00000, 0x0000000096c00000| Complete +| 365|0x0000000096d00000, 0x0000000096e00000, 0x0000000096e00000|100%| E|CS|TAMS 0x0000000096d00000, 0x0000000096d00000| Complete +| 366|0x0000000096e00000, 0x0000000096f00000, 0x0000000096f00000|100%| E|CS|TAMS 0x0000000096e00000, 0x0000000096e00000| Complete +| 367|0x0000000096f00000, 0x0000000097000000, 0x0000000097000000|100%| E|CS|TAMS 0x0000000096f00000, 0x0000000096f00000| Complete +| 368|0x0000000097000000, 0x0000000097100000, 0x0000000097100000|100%| E|CS|TAMS 0x0000000097000000, 0x0000000097000000| Complete +| 369|0x0000000097100000, 0x0000000097200000, 0x0000000097200000|100%| E|CS|TAMS 0x0000000097100000, 0x0000000097100000| Complete +| 370|0x0000000097200000, 0x0000000097300000, 0x0000000097300000|100%| E|CS|TAMS 0x0000000097200000, 0x0000000097200000| Complete +| 371|0x0000000097300000, 0x0000000097400000, 0x0000000097400000|100%| E|CS|TAMS 0x0000000097300000, 0x0000000097300000| Complete +| 372|0x0000000097400000, 0x0000000097500000, 0x0000000097500000|100%| E|CS|TAMS 0x0000000097400000, 0x0000000097400000| Complete +| 373|0x0000000097500000, 0x0000000097600000, 0x0000000097600000|100%| E|CS|TAMS 0x0000000097500000, 0x0000000097500000| Complete +| 374|0x0000000097600000, 0x0000000097700000, 0x0000000097700000|100%| E|CS|TAMS 0x0000000097600000, 0x0000000097600000| Complete +| 375|0x0000000097700000, 0x0000000097800000, 0x0000000097800000|100%| E|CS|TAMS 0x0000000097700000, 0x0000000097700000| Complete +| 376|0x0000000097800000, 0x0000000097900000, 0x0000000097900000|100%| E|CS|TAMS 0x0000000097800000, 0x0000000097800000| Complete +| 377|0x0000000097900000, 0x0000000097a00000, 0x0000000097a00000|100%| E|CS|TAMS 0x0000000097900000, 0x0000000097900000| Complete +| 378|0x0000000097a00000, 0x0000000097b00000, 0x0000000097b00000|100%| E|CS|TAMS 0x0000000097a00000, 0x0000000097a00000| Complete +| 379|0x0000000097b00000, 0x0000000097c00000, 0x0000000097c00000|100%| E|CS|TAMS 0x0000000097b00000, 0x0000000097b00000| Complete +| 380|0x0000000097c00000, 0x0000000097d00000, 0x0000000097d00000|100%| E|CS|TAMS 0x0000000097c00000, 0x0000000097c00000| Complete +| 381|0x0000000097d00000, 0x0000000097e00000, 0x0000000097e00000|100%| E|CS|TAMS 0x0000000097d00000, 0x0000000097d00000| Complete +| 382|0x0000000097e00000, 0x0000000097f00000, 0x0000000097f00000|100%| E|CS|TAMS 0x0000000097e00000, 0x0000000097e00000| Complete +| 383|0x0000000097f00000, 0x0000000098000000, 0x0000000098000000|100%| E|CS|TAMS 0x0000000097f00000, 0x0000000097f00000| Complete +| 384|0x0000000098000000, 0x0000000098100000, 0x0000000098100000|100%| E|CS|TAMS 0x0000000098000000, 0x0000000098000000| Complete +| 385|0x0000000098100000, 0x0000000098200000, 0x0000000098200000|100%| E|CS|TAMS 0x0000000098100000, 0x0000000098100000| Complete +| 386|0x0000000098200000, 0x0000000098300000, 0x0000000098300000|100%| E|CS|TAMS 0x0000000098200000, 0x0000000098200000| Complete +| 387|0x0000000098300000, 0x0000000098400000, 0x0000000098400000|100%| E|CS|TAMS 0x0000000098300000, 0x0000000098300000| Complete +| 388|0x0000000098400000, 0x0000000098500000, 0x0000000098500000|100%| E|CS|TAMS 0x0000000098400000, 0x0000000098400000| Complete +| 389|0x0000000098500000, 0x0000000098600000, 0x0000000098600000|100%| E|CS|TAMS 0x0000000098500000, 0x0000000098500000| Complete +| 390|0x0000000098600000, 0x0000000098700000, 0x0000000098700000|100%| E|CS|TAMS 0x0000000098600000, 0x0000000098600000| Complete +| 391|0x0000000098700000, 0x0000000098800000, 0x0000000098800000|100%| E|CS|TAMS 0x0000000098700000, 0x0000000098700000| Complete +| 392|0x0000000098800000, 0x0000000098900000, 0x0000000098900000|100%| E|CS|TAMS 0x0000000098800000, 0x0000000098800000| Complete +| 393|0x0000000098900000, 0x0000000098a00000, 0x0000000098a00000|100%| E|CS|TAMS 0x0000000098900000, 0x0000000098900000| Complete +| 394|0x0000000098a00000, 0x0000000098b00000, 0x0000000098b00000|100%| E|CS|TAMS 0x0000000098a00000, 0x0000000098a00000| Complete +| 395|0x0000000098b00000, 0x0000000098c00000, 0x0000000098c00000|100%| E|CS|TAMS 0x0000000098b00000, 0x0000000098b00000| Complete +| 396|0x0000000098c00000, 0x0000000098d00000, 0x0000000098d00000|100%| E|CS|TAMS 0x0000000098c00000, 0x0000000098c00000| Complete +| 397|0x0000000098d00000, 0x0000000098e00000, 0x0000000098e00000|100%| E|CS|TAMS 0x0000000098d00000, 0x0000000098d00000| Complete +| 398|0x0000000098e00000, 0x0000000098f00000, 0x0000000098f00000|100%| E|CS|TAMS 0x0000000098e00000, 0x0000000098e00000| Complete +| 399|0x0000000098f00000, 0x0000000099000000, 0x0000000099000000|100%| E|CS|TAMS 0x0000000098f00000, 0x0000000098f00000| Complete +| 400|0x0000000099000000, 0x0000000099100000, 0x0000000099100000|100%| E|CS|TAMS 0x0000000099000000, 0x0000000099000000| Complete +| 401|0x0000000099100000, 0x0000000099200000, 0x0000000099200000|100%| E|CS|TAMS 0x0000000099100000, 0x0000000099100000| Complete +| 402|0x0000000099200000, 0x0000000099300000, 0x0000000099300000|100%| E|CS|TAMS 0x0000000099200000, 0x0000000099200000| Complete +| 403|0x0000000099300000, 0x0000000099400000, 0x0000000099400000|100%| E|CS|TAMS 0x0000000099300000, 0x0000000099300000| Complete +| 404|0x0000000099400000, 0x0000000099500000, 0x0000000099500000|100%| E|CS|TAMS 0x0000000099400000, 0x0000000099400000| Complete +| 405|0x0000000099500000, 0x0000000099600000, 0x0000000099600000|100%| E|CS|TAMS 0x0000000099500000, 0x0000000099500000| Complete +| 406|0x0000000099600000, 0x0000000099700000, 0x0000000099700000|100%| E|CS|TAMS 0x0000000099600000, 0x0000000099600000| Complete +| 407|0x0000000099700000, 0x0000000099800000, 0x0000000099800000|100%| E|CS|TAMS 0x0000000099700000, 0x0000000099700000| Complete +| 408|0x0000000099800000, 0x0000000099900000, 0x0000000099900000|100%| E|CS|TAMS 0x0000000099800000, 0x0000000099800000| Complete +| 409|0x0000000099900000, 0x0000000099a00000, 0x0000000099a00000|100%| E|CS|TAMS 0x0000000099900000, 0x0000000099900000| Complete +| 410|0x0000000099a00000, 0x0000000099b00000, 0x0000000099b00000|100%| E|CS|TAMS 0x0000000099a00000, 0x0000000099a00000| Complete +| 411|0x0000000099b00000, 0x0000000099c00000, 0x0000000099c00000|100%| E|CS|TAMS 0x0000000099b00000, 0x0000000099b00000| Complete +| 412|0x0000000099c00000, 0x0000000099d00000, 0x0000000099d00000|100%| E|CS|TAMS 0x0000000099c00000, 0x0000000099c00000| Complete +| 413|0x0000000099d00000, 0x0000000099e00000, 0x0000000099e00000|100%| E|CS|TAMS 0x0000000099d00000, 0x0000000099d00000| Complete +| 414|0x0000000099e00000, 0x0000000099f00000, 0x0000000099f00000|100%| E|CS|TAMS 0x0000000099e00000, 0x0000000099e00000| Complete +| 415|0x0000000099f00000, 0x000000009a000000, 0x000000009a000000|100%| E|CS|TAMS 0x0000000099f00000, 0x0000000099f00000| Complete +| 416|0x000000009a000000, 0x000000009a100000, 0x000000009a100000|100%| E|CS|TAMS 0x000000009a000000, 0x000000009a000000| Complete +| 417|0x000000009a100000, 0x000000009a200000, 0x000000009a200000|100%| E|CS|TAMS 0x000000009a100000, 0x000000009a100000| Complete +| 418|0x000000009a200000, 0x000000009a300000, 0x000000009a300000|100%| E|CS|TAMS 0x000000009a200000, 0x000000009a200000| Complete +| 419|0x000000009a300000, 0x000000009a400000, 0x000000009a400000|100%| E|CS|TAMS 0x000000009a300000, 0x000000009a300000| Complete +| 420|0x000000009a400000, 0x000000009a500000, 0x000000009a500000|100%| E|CS|TAMS 0x000000009a400000, 0x000000009a400000| Complete +| 421|0x000000009a500000, 0x000000009a600000, 0x000000009a600000|100%| E|CS|TAMS 0x000000009a500000, 0x000000009a500000| Complete +| 422|0x000000009a600000, 0x000000009a700000, 0x000000009a700000|100%| E|CS|TAMS 0x000000009a600000, 0x000000009a600000| Complete +| 423|0x000000009a700000, 0x000000009a800000, 0x000000009a800000|100%| E|CS|TAMS 0x000000009a700000, 0x000000009a700000| Complete +| 424|0x000000009a800000, 0x000000009a900000, 0x000000009a900000|100%| E|CS|TAMS 0x000000009a800000, 0x000000009a800000| Complete +| 425|0x000000009a900000, 0x000000009aa00000, 0x000000009aa00000|100%| E|CS|TAMS 0x000000009a900000, 0x000000009a900000| Complete +| 426|0x000000009aa00000, 0x000000009ab00000, 0x000000009ab00000|100%| E|CS|TAMS 0x000000009aa00000, 0x000000009aa00000| Complete +| 427|0x000000009ab00000, 0x000000009ac00000, 0x000000009ac00000|100%| E|CS|TAMS 0x000000009ab00000, 0x000000009ab00000| Complete +| 428|0x000000009ac00000, 0x000000009ad00000, 0x000000009ad00000|100%| E|CS|TAMS 0x000000009ac00000, 0x000000009ac00000| Complete +| 429|0x000000009ad00000, 0x000000009ae00000, 0x000000009ae00000|100%| E|CS|TAMS 0x000000009ad00000, 0x000000009ad00000| Complete +| 430|0x000000009ae00000, 0x000000009af00000, 0x000000009af00000|100%| E|CS|TAMS 0x000000009ae00000, 0x000000009ae00000| Complete +| 431|0x000000009af00000, 0x000000009b000000, 0x000000009b000000|100%| E|CS|TAMS 0x000000009af00000, 0x000000009af00000| Complete +| 432|0x000000009b000000, 0x000000009b100000, 0x000000009b100000|100%| E|CS|TAMS 0x000000009b000000, 0x000000009b000000| Complete +| 433|0x000000009b100000, 0x000000009b200000, 0x000000009b200000|100%| E|CS|TAMS 0x000000009b100000, 0x000000009b100000| Complete +| 434|0x000000009b200000, 0x000000009b300000, 0x000000009b300000|100%| E|CS|TAMS 0x000000009b200000, 0x000000009b200000| Complete +| 435|0x000000009b300000, 0x000000009b400000, 0x000000009b400000|100%| E|CS|TAMS 0x000000009b300000, 0x000000009b300000| Complete +| 436|0x000000009b400000, 0x000000009b500000, 0x000000009b500000|100%| E|CS|TAMS 0x000000009b400000, 0x000000009b400000| Complete +| 437|0x000000009b500000, 0x000000009b600000, 0x000000009b600000|100%| E|CS|TAMS 0x000000009b500000, 0x000000009b500000| Complete +| 438|0x000000009b600000, 0x000000009b700000, 0x000000009b700000|100%| E|CS|TAMS 0x000000009b600000, 0x000000009b600000| Complete +| 439|0x000000009b700000, 0x000000009b800000, 0x000000009b800000|100%| E|CS|TAMS 0x000000009b700000, 0x000000009b700000| Complete +| 440|0x000000009b800000, 0x000000009b900000, 0x000000009b900000|100%| E|CS|TAMS 0x000000009b800000, 0x000000009b800000| Complete +| 441|0x000000009b900000, 0x000000009ba00000, 0x000000009ba00000|100%| E|CS|TAMS 0x000000009b900000, 0x000000009b900000| Complete +| 442|0x000000009ba00000, 0x000000009bb00000, 0x000000009bb00000|100%| E|CS|TAMS 0x000000009ba00000, 0x000000009ba00000| Complete +| 443|0x000000009bb00000, 0x000000009bc00000, 0x000000009bc00000|100%| E|CS|TAMS 0x000000009bb00000, 0x000000009bb00000| Complete +| 444|0x000000009bc00000, 0x000000009bd00000, 0x000000009bd00000|100%| E|CS|TAMS 0x000000009bc00000, 0x000000009bc00000| Complete +| 445|0x000000009bd00000, 0x000000009be00000, 0x000000009be00000|100%| E|CS|TAMS 0x000000009bd00000, 0x000000009bd00000| Complete +| 446|0x000000009be00000, 0x000000009bf00000, 0x000000009bf00000|100%| E|CS|TAMS 0x000000009be00000, 0x000000009be00000| Complete +| 447|0x000000009bf00000, 0x000000009c000000, 0x000000009c000000|100%| E|CS|TAMS 0x000000009bf00000, 0x000000009bf00000| Complete +| 448|0x000000009c000000, 0x000000009c100000, 0x000000009c100000|100%| E|CS|TAMS 0x000000009c000000, 0x000000009c000000| Complete +| 449|0x000000009c100000, 0x000000009c200000, 0x000000009c200000|100%| E|CS|TAMS 0x000000009c100000, 0x000000009c100000| Complete +| 450|0x000000009c200000, 0x000000009c300000, 0x000000009c300000|100%| E|CS|TAMS 0x000000009c200000, 0x000000009c200000| Complete +| 451|0x000000009c300000, 0x000000009c400000, 0x000000009c400000|100%| E|CS|TAMS 0x000000009c300000, 0x000000009c300000| Complete +| 452|0x000000009c400000, 0x000000009c500000, 0x000000009c500000|100%| E|CS|TAMS 0x000000009c400000, 0x000000009c400000| Complete +| 453|0x000000009c500000, 0x000000009c600000, 0x000000009c600000|100%| E|CS|TAMS 0x000000009c500000, 0x000000009c500000| Complete +| 454|0x000000009c600000, 0x000000009c700000, 0x000000009c700000|100%| E|CS|TAMS 0x000000009c600000, 0x000000009c600000| Complete +| 455|0x000000009c700000, 0x000000009c800000, 0x000000009c800000|100%| E|CS|TAMS 0x000000009c700000, 0x000000009c700000| Complete +| 456|0x000000009c800000, 0x000000009c900000, 0x000000009c900000|100%| E|CS|TAMS 0x000000009c800000, 0x000000009c800000| Complete +| 457|0x000000009c900000, 0x000000009ca00000, 0x000000009ca00000|100%| E|CS|TAMS 0x000000009c900000, 0x000000009c900000| Complete +| 458|0x000000009ca00000, 0x000000009cb00000, 0x000000009cb00000|100%| E|CS|TAMS 0x000000009ca00000, 0x000000009ca00000| Complete +| 459|0x000000009cb00000, 0x000000009cc00000, 0x000000009cc00000|100%| E|CS|TAMS 0x000000009cb00000, 0x000000009cb00000| Complete +| 460|0x000000009cc00000, 0x000000009cd00000, 0x000000009cd00000|100%| E|CS|TAMS 0x000000009cc00000, 0x000000009cc00000| Complete +| 461|0x000000009cd00000, 0x000000009ce00000, 0x000000009ce00000|100%| E|CS|TAMS 0x000000009cd00000, 0x000000009cd00000| Complete +| 462|0x000000009ce00000, 0x000000009cf00000, 0x000000009cf00000|100%| E|CS|TAMS 0x000000009ce00000, 0x000000009ce00000| Complete +| 463|0x000000009cf00000, 0x000000009d000000, 0x000000009d000000|100%| E|CS|TAMS 0x000000009cf00000, 0x000000009cf00000| Complete +| 464|0x000000009d000000, 0x000000009d100000, 0x000000009d100000|100%| E|CS|TAMS 0x000000009d000000, 0x000000009d000000| Complete +| 465|0x000000009d100000, 0x000000009d200000, 0x000000009d200000|100%| E|CS|TAMS 0x000000009d100000, 0x000000009d100000| Complete +| 466|0x000000009d200000, 0x000000009d300000, 0x000000009d300000|100%| E|CS|TAMS 0x000000009d200000, 0x000000009d200000| Complete +| 467|0x000000009d300000, 0x000000009d400000, 0x000000009d400000|100%| E|CS|TAMS 0x000000009d300000, 0x000000009d300000| Complete +| 468|0x000000009d400000, 0x000000009d500000, 0x000000009d500000|100%| E|CS|TAMS 0x000000009d400000, 0x000000009d400000| Complete +| 469|0x000000009d500000, 0x000000009d600000, 0x000000009d600000|100%| E|CS|TAMS 0x000000009d500000, 0x000000009d500000| Complete +| 470|0x000000009d600000, 0x000000009d700000, 0x000000009d700000|100%| E|CS|TAMS 0x000000009d600000, 0x000000009d600000| Complete +| 471|0x000000009d700000, 0x000000009d800000, 0x000000009d800000|100%| E|CS|TAMS 0x000000009d700000, 0x000000009d700000| Complete +| 472|0x000000009d800000, 0x000000009d900000, 0x000000009d900000|100%| E|CS|TAMS 0x000000009d800000, 0x000000009d800000| Complete +| 473|0x000000009d900000, 0x000000009da00000, 0x000000009da00000|100%| E|CS|TAMS 0x000000009d900000, 0x000000009d900000| Complete +| 474|0x000000009da00000, 0x000000009db00000, 0x000000009db00000|100%| E|CS|TAMS 0x000000009da00000, 0x000000009da00000| Complete +| 475|0x000000009db00000, 0x000000009dc00000, 0x000000009dc00000|100%| E|CS|TAMS 0x000000009db00000, 0x000000009db00000| Complete +| 476|0x000000009dc00000, 0x000000009dd00000, 0x000000009dd00000|100%| E|CS|TAMS 0x000000009dc00000, 0x000000009dc00000| Complete +| 477|0x000000009dd00000, 0x000000009de00000, 0x000000009de00000|100%| E|CS|TAMS 0x000000009dd00000, 0x000000009dd00000| Complete +| 478|0x000000009de00000, 0x000000009df00000, 0x000000009df00000|100%| E|CS|TAMS 0x000000009de00000, 0x000000009de00000| Complete +| 479|0x000000009df00000, 0x000000009e000000, 0x000000009e000000|100%| E|CS|TAMS 0x000000009df00000, 0x000000009df00000| Complete +| 480|0x000000009e000000, 0x000000009e100000, 0x000000009e100000|100%| E|CS|TAMS 0x000000009e000000, 0x000000009e000000| Complete +| 481|0x000000009e100000, 0x000000009e200000, 0x000000009e200000|100%| E|CS|TAMS 0x000000009e100000, 0x000000009e100000| Complete +| 482|0x000000009e200000, 0x000000009e300000, 0x000000009e300000|100%| E|CS|TAMS 0x000000009e200000, 0x000000009e200000| Complete +| 483|0x000000009e300000, 0x000000009e400000, 0x000000009e400000|100%| E|CS|TAMS 0x000000009e300000, 0x000000009e300000| Complete +| 484|0x000000009e400000, 0x000000009e500000, 0x000000009e500000|100%| E|CS|TAMS 0x000000009e400000, 0x000000009e400000| Complete +| 485|0x000000009e500000, 0x000000009e600000, 0x000000009e600000|100%| E|CS|TAMS 0x000000009e500000, 0x000000009e500000| Complete +| 486|0x000000009e600000, 0x000000009e700000, 0x000000009e700000|100%| E|CS|TAMS 0x000000009e600000, 0x000000009e600000| Complete +| 487|0x000000009e700000, 0x000000009e800000, 0x000000009e800000|100%| E|CS|TAMS 0x000000009e700000, 0x000000009e700000| Complete +| 488|0x000000009e800000, 0x000000009e900000, 0x000000009e900000|100%| E|CS|TAMS 0x000000009e800000, 0x000000009e800000| Complete +| 489|0x000000009e900000, 0x000000009ea00000, 0x000000009ea00000|100%| E|CS|TAMS 0x000000009e900000, 0x000000009e900000| Complete +| 490|0x000000009ea00000, 0x000000009eb00000, 0x000000009eb00000|100%| E|CS|TAMS 0x000000009ea00000, 0x000000009ea00000| Complete +| 491|0x000000009eb00000, 0x000000009ec00000, 0x000000009ec00000|100%| E|CS|TAMS 0x000000009eb00000, 0x000000009eb00000| Complete +| 492|0x000000009ec00000, 0x000000009ed00000, 0x000000009ed00000|100%| E|CS|TAMS 0x000000009ec00000, 0x000000009ec00000| Complete +| 493|0x000000009ed00000, 0x000000009ee00000, 0x000000009ee00000|100%| E|CS|TAMS 0x000000009ed00000, 0x000000009ed00000| Complete +| 494|0x000000009ee00000, 0x000000009ef00000, 0x000000009ef00000|100%| E|CS|TAMS 0x000000009ee00000, 0x000000009ee00000| Complete +| 495|0x000000009ef00000, 0x000000009f000000, 0x000000009f000000|100%| E|CS|TAMS 0x000000009ef00000, 0x000000009ef00000| Complete +| 496|0x000000009f000000, 0x000000009f100000, 0x000000009f100000|100%| E|CS|TAMS 0x000000009f000000, 0x000000009f000000| Complete +| 497|0x000000009f100000, 0x000000009f200000, 0x000000009f200000|100%| E|CS|TAMS 0x000000009f100000, 0x000000009f100000| Complete +| 498|0x000000009f200000, 0x000000009f300000, 0x000000009f300000|100%| E|CS|TAMS 0x000000009f200000, 0x000000009f200000| Complete +| 499|0x000000009f300000, 0x000000009f400000, 0x000000009f400000|100%| E|CS|TAMS 0x000000009f300000, 0x000000009f300000| Complete +| 500|0x000000009f400000, 0x000000009f500000, 0x000000009f500000|100%| E|CS|TAMS 0x000000009f400000, 0x000000009f400000| Complete +| 501|0x000000009f500000, 0x000000009f600000, 0x000000009f600000|100%| E|CS|TAMS 0x000000009f500000, 0x000000009f500000| Complete +| 502|0x000000009f600000, 0x000000009f700000, 0x000000009f700000|100%| E|CS|TAMS 0x000000009f600000, 0x000000009f600000| Complete +| 503|0x000000009f700000, 0x000000009f800000, 0x000000009f800000|100%| E|CS|TAMS 0x000000009f700000, 0x000000009f700000| Complete +| 504|0x000000009f800000, 0x000000009f900000, 0x000000009f900000|100%| E|CS|TAMS 0x000000009f800000, 0x000000009f800000| Complete +| 505|0x000000009f900000, 0x000000009fa00000, 0x000000009fa00000|100%| E|CS|TAMS 0x000000009f900000, 0x000000009f900000| Complete +| 506|0x000000009fa00000, 0x000000009fb00000, 0x000000009fb00000|100%| E|CS|TAMS 0x000000009fa00000, 0x000000009fa00000| Complete +| 507|0x000000009fb00000, 0x000000009fc00000, 0x000000009fc00000|100%| E|CS|TAMS 0x000000009fb00000, 0x000000009fb00000| Complete +| 508|0x000000009fc00000, 0x000000009fd00000, 0x000000009fd00000|100%| E|CS|TAMS 0x000000009fc00000, 0x000000009fc00000| Complete +| 509|0x000000009fd00000, 0x000000009fe00000, 0x000000009fe00000|100%| E|CS|TAMS 0x000000009fd00000, 0x000000009fd00000| Complete +| 510|0x000000009fe00000, 0x000000009ff00000, 0x000000009ff00000|100%| E|CS|TAMS 0x000000009fe00000, 0x000000009fe00000| Complete +| 511|0x000000009ff00000, 0x00000000a0000000, 0x00000000a0000000|100%| E|CS|TAMS 0x000000009ff00000, 0x000000009ff00000| Complete +| 512|0x00000000a0000000, 0x00000000a0100000, 0x00000000a0100000|100%| E|CS|TAMS 0x00000000a0000000, 0x00000000a0000000| Complete +| 513|0x00000000a0100000, 0x00000000a0200000, 0x00000000a0200000|100%| E|CS|TAMS 0x00000000a0100000, 0x00000000a0100000| Complete +| 514|0x00000000a0200000, 0x00000000a0300000, 0x00000000a0300000|100%| E|CS|TAMS 0x00000000a0200000, 0x00000000a0200000| Complete +| 515|0x00000000a0300000, 0x00000000a0400000, 0x00000000a0400000|100%| E|CS|TAMS 0x00000000a0300000, 0x00000000a0300000| Complete +| 516|0x00000000a0400000, 0x00000000a0500000, 0x00000000a0500000|100%| E|CS|TAMS 0x00000000a0400000, 0x00000000a0400000| Complete +| 517|0x00000000a0500000, 0x00000000a0600000, 0x00000000a0600000|100%| E|CS|TAMS 0x00000000a0500000, 0x00000000a0500000| Complete +| 518|0x00000000a0600000, 0x00000000a0700000, 0x00000000a0700000|100%| E|CS|TAMS 0x00000000a0600000, 0x00000000a0600000| Complete +| 519|0x00000000a0700000, 0x00000000a0800000, 0x00000000a0800000|100%| E|CS|TAMS 0x00000000a0700000, 0x00000000a0700000| Complete +| 520|0x00000000a0800000, 0x00000000a0900000, 0x00000000a0900000|100%| E|CS|TAMS 0x00000000a0800000, 0x00000000a0800000| Complete +| 521|0x00000000a0900000, 0x00000000a0a00000, 0x00000000a0a00000|100%| E|CS|TAMS 0x00000000a0900000, 0x00000000a0900000| Complete +| 522|0x00000000a0a00000, 0x00000000a0b00000, 0x00000000a0b00000|100%| E|CS|TAMS 0x00000000a0a00000, 0x00000000a0a00000| Complete +| 523|0x00000000a0b00000, 0x00000000a0c00000, 0x00000000a0c00000|100%| E|CS|TAMS 0x00000000a0b00000, 0x00000000a0b00000| Complete +| 524|0x00000000a0c00000, 0x00000000a0d00000, 0x00000000a0d00000|100%| E|CS|TAMS 0x00000000a0c00000, 0x00000000a0c00000| Complete +| 525|0x00000000a0d00000, 0x00000000a0e00000, 0x00000000a0e00000|100%| E|CS|TAMS 0x00000000a0d00000, 0x00000000a0d00000| Complete +| 526|0x00000000a0e00000, 0x00000000a0f00000, 0x00000000a0f00000|100%| E|CS|TAMS 0x00000000a0e00000, 0x00000000a0e00000| Complete +| 527|0x00000000a0f00000, 0x00000000a1000000, 0x00000000a1000000|100%| E|CS|TAMS 0x00000000a0f00000, 0x00000000a0f00000| Complete +| 528|0x00000000a1000000, 0x00000000a1100000, 0x00000000a1100000|100%| E|CS|TAMS 0x00000000a1000000, 0x00000000a1000000| Complete +| 529|0x00000000a1100000, 0x00000000a1200000, 0x00000000a1200000|100%| E|CS|TAMS 0x00000000a1100000, 0x00000000a1100000| Complete +| 530|0x00000000a1200000, 0x00000000a1300000, 0x00000000a1300000|100%| E|CS|TAMS 0x00000000a1200000, 0x00000000a1200000| Complete +| 531|0x00000000a1300000, 0x00000000a1400000, 0x00000000a1400000|100%| E|CS|TAMS 0x00000000a1300000, 0x00000000a1300000| Complete +| 532|0x00000000a1400000, 0x00000000a1500000, 0x00000000a1500000|100%| E|CS|TAMS 0x00000000a1400000, 0x00000000a1400000| Complete +| 533|0x00000000a1500000, 0x00000000a1600000, 0x00000000a1600000|100%| E|CS|TAMS 0x00000000a1500000, 0x00000000a1500000| Complete +| 534|0x00000000a1600000, 0x00000000a1700000, 0x00000000a1700000|100%| E|CS|TAMS 0x00000000a1600000, 0x00000000a1600000| Complete +| 535|0x00000000a1700000, 0x00000000a1800000, 0x00000000a1800000|100%| E|CS|TAMS 0x00000000a1700000, 0x00000000a1700000| Complete +| 536|0x00000000a1800000, 0x00000000a1900000, 0x00000000a1900000|100%| E|CS|TAMS 0x00000000a1800000, 0x00000000a1800000| Complete +| 537|0x00000000a1900000, 0x00000000a1a00000, 0x00000000a1a00000|100%| E|CS|TAMS 0x00000000a1900000, 0x00000000a1900000| Complete +| 538|0x00000000a1a00000, 0x00000000a1b00000, 0x00000000a1b00000|100%| E|CS|TAMS 0x00000000a1a00000, 0x00000000a1a00000| Complete +| 539|0x00000000a1b00000, 0x00000000a1c00000, 0x00000000a1c00000|100%| E|CS|TAMS 0x00000000a1b00000, 0x00000000a1b00000| Complete +| 540|0x00000000a1c00000, 0x00000000a1d00000, 0x00000000a1d00000|100%| E|CS|TAMS 0x00000000a1c00000, 0x00000000a1c00000| Complete +| 541|0x00000000a1d00000, 0x00000000a1e00000, 0x00000000a1e00000|100%| E|CS|TAMS 0x00000000a1d00000, 0x00000000a1d00000| Complete +| 542|0x00000000a1e00000, 0x00000000a1f00000, 0x00000000a1f00000|100%| E|CS|TAMS 0x00000000a1e00000, 0x00000000a1e00000| Complete +| 543|0x00000000a1f00000, 0x00000000a2000000, 0x00000000a2000000|100%| E|CS|TAMS 0x00000000a1f00000, 0x00000000a1f00000| Complete +| 544|0x00000000a2000000, 0x00000000a2100000, 0x00000000a2100000|100%| E|CS|TAMS 0x00000000a2000000, 0x00000000a2000000| Complete +| 545|0x00000000a2100000, 0x00000000a2200000, 0x00000000a2200000|100%| E|CS|TAMS 0x00000000a2100000, 0x00000000a2100000| Complete +| 546|0x00000000a2200000, 0x00000000a2300000, 0x00000000a2300000|100%| E|CS|TAMS 0x00000000a2200000, 0x00000000a2200000| Complete +| 547|0x00000000a2300000, 0x00000000a2400000, 0x00000000a2400000|100%| E|CS|TAMS 0x00000000a2300000, 0x00000000a2300000| Complete +| 548|0x00000000a2400000, 0x00000000a2500000, 0x00000000a2500000|100%| E|CS|TAMS 0x00000000a2400000, 0x00000000a2400000| Complete +| 549|0x00000000a2500000, 0x00000000a2600000, 0x00000000a2600000|100%| E|CS|TAMS 0x00000000a2500000, 0x00000000a2500000| Complete +| 550|0x00000000a2600000, 0x00000000a2700000, 0x00000000a2700000|100%| E|CS|TAMS 0x00000000a2600000, 0x00000000a2600000| Complete +| 551|0x00000000a2700000, 0x00000000a2800000, 0x00000000a2800000|100%| E|CS|TAMS 0x00000000a2700000, 0x00000000a2700000| Complete +| 552|0x00000000a2800000, 0x00000000a2900000, 0x00000000a2900000|100%| E|CS|TAMS 0x00000000a2800000, 0x00000000a2800000| Complete +| 553|0x00000000a2900000, 0x00000000a2a00000, 0x00000000a2a00000|100%| E|CS|TAMS 0x00000000a2900000, 0x00000000a2900000| Complete +| 554|0x00000000a2a00000, 0x00000000a2b00000, 0x00000000a2b00000|100%| E|CS|TAMS 0x00000000a2a00000, 0x00000000a2a00000| Complete +| 555|0x00000000a2b00000, 0x00000000a2c00000, 0x00000000a2c00000|100%| E|CS|TAMS 0x00000000a2b00000, 0x00000000a2b00000| Complete +| 556|0x00000000a2c00000, 0x00000000a2d00000, 0x00000000a2d00000|100%| E|CS|TAMS 0x00000000a2c00000, 0x00000000a2c00000| Complete +| 557|0x00000000a2d00000, 0x00000000a2e00000, 0x00000000a2e00000|100%| E|CS|TAMS 0x00000000a2d00000, 0x00000000a2d00000| Complete +| 558|0x00000000a2e00000, 0x00000000a2f00000, 0x00000000a2f00000|100%| E|CS|TAMS 0x00000000a2e00000, 0x00000000a2e00000| Complete +| 559|0x00000000a2f00000, 0x00000000a3000000, 0x00000000a3000000|100%| E|CS|TAMS 0x00000000a2f00000, 0x00000000a2f00000| Complete +| 560|0x00000000a3000000, 0x00000000a3100000, 0x00000000a3100000|100%| E|CS|TAMS 0x00000000a3000000, 0x00000000a3000000| Complete +| 561|0x00000000a3100000, 0x00000000a3200000, 0x00000000a3200000|100%| E|CS|TAMS 0x00000000a3100000, 0x00000000a3100000| Complete +| 562|0x00000000a3200000, 0x00000000a3300000, 0x00000000a3300000|100%| E|CS|TAMS 0x00000000a3200000, 0x00000000a3200000| Complete +| 563|0x00000000a3300000, 0x00000000a3400000, 0x00000000a3400000|100%| E|CS|TAMS 0x00000000a3300000, 0x00000000a3300000| Complete +| 681|0x00000000aa900000, 0x00000000aaa00000, 0x00000000aaa00000|100%| E|CS|TAMS 0x00000000aa900000, 0x00000000aa900000| Complete +| 682|0x00000000aaa00000, 0x00000000aab00000, 0x00000000aab00000|100%| E|CS|TAMS 0x00000000aaa00000, 0x00000000aaa00000| Complete +| 683|0x00000000aab00000, 0x00000000aac00000, 0x00000000aac00000|100%| E|CS|TAMS 0x00000000aab00000, 0x00000000aab00000| Complete +| 684|0x00000000aac00000, 0x00000000aad00000, 0x00000000aad00000|100%| E|CS|TAMS 0x00000000aac00000, 0x00000000aac00000| Complete +| 685|0x00000000aad00000, 0x00000000aae00000, 0x00000000aae00000|100%| E|CS|TAMS 0x00000000aad00000, 0x00000000aad00000| Complete +| 686|0x00000000aae00000, 0x00000000aaf00000, 0x00000000aaf00000|100%| E|CS|TAMS 0x00000000aae00000, 0x00000000aae00000| Complete +| 687|0x00000000aaf00000, 0x00000000ab000000, 0x00000000ab000000|100%| E|CS|TAMS 0x00000000aaf00000, 0x00000000aaf00000| Complete +| 688|0x00000000ab000000, 0x00000000ab100000, 0x00000000ab100000|100%| E|CS|TAMS 0x00000000ab000000, 0x00000000ab000000| Complete +| 689|0x00000000ab100000, 0x00000000ab200000, 0x00000000ab200000|100%| E|CS|TAMS 0x00000000ab100000, 0x00000000ab100000| Complete +| 690|0x00000000ab200000, 0x00000000ab300000, 0x00000000ab300000|100%| E|CS|TAMS 0x00000000ab200000, 0x00000000ab200000| Complete +| 767|0x00000000aff00000, 0x00000000b0000000, 0x00000000b0000000|100%| E|CS|TAMS 0x00000000aff00000, 0x00000000aff00000| Complete + +Card table byte_map: [0x000000001a020000,0x000000001a420000] _byte_map_base: 0x0000000019c20000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x0000000002b821a0, (CMBitMap*) 0x0000000002b821e0 + Prev Bits: [0x000000001a820000, 0x000000001c820000) + Next Bits: [0x000000001c820000, 0x000000001e820000) + +Polling page: 0x00000000001d0000 + +Metaspace: + +Usage: + Non-class: 64.48 MB used. + Class: 9.57 MB used. + Both: 74.05 MB used. + +Virtual space: + Non-class space: 72.00 MB reserved, 64.88 MB ( 90%) committed, 9 nodes. + Class space: 1.00 GB reserved, 9.88 MB ( <1%) committed, 1 nodes. + Both: 1.07 GB reserved, 74.75 MB ( 7%) committed. + +Chunk freelists: + Non-Class: 2.48 MB + Class: 2.18 MB + Both: 4.66 MB + +MaxMetaspaceSize: unlimited +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 21.00 MB +Current GC threshold: 117.50 MB +CDS: on +MetaspaceReclaimPolicy: balanced + - commit_granule_bytes: 65536. + - commit_granule_words: 8192. + - virtual_space_node_default_size: 1048576. + - enlarge_chunks_in_place: 1. + - new_chunks_are_fully_committed: 0. + - uncommit_free_chunks: 1. + - use_allocation_guard: 0. + - handle_deallocations: 1. + + +Internal statistics: + +num_allocs_failed_limit: 6. +num_arena_births: 686. +num_arena_deaths: 0. +num_vsnodes_births: 10. +num_vsnodes_deaths: 0. +num_space_committed: 1196. +num_space_uncommitted: 0. +num_chunks_returned_to_freelist: 6. +num_chunks_taken_from_freelist: 3621. +num_chunk_merges: 6. +num_chunk_splits: 2438. +num_chunks_enlarged: 1685. +num_purges: 0. +num_inconsistent_stats: 0. + +CodeHeap 'non-profiled nmethods': size=119168Kb used=16414Kb max_used=17051Kb free=102753Kb + bounds [0x0000000011f30000, 0x0000000012fe0000, 0x0000000019390000] +CodeHeap 'profiled nmethods': size=119104Kb used=27047Kb max_used=28880Kb free=92056Kb + bounds [0x000000000aae0000, 0x000000000c740000, 0x0000000011f30000] +CodeHeap 'non-nmethods': size=7488Kb used=2368Kb max_used=4188Kb free=5119Kb + bounds [0x000000000a390000, 0x000000000a7b0000, 0x000000000aae0000] + total_blobs=15091 nmethods=14204 adapters=797 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 49.618 Thread 0x0000000035785750 19180 3 java.math.BigInteger:: (93 bytes) +Event: 49.618 Thread 0x0000000035785750 nmethod 19180 0x000000000ae8e390 code [0x000000000ae8e5e0, 0x000000000ae8ef08] +Event: 49.677 Thread 0x0000000021e5c620 19181 4 org.gradle.api.internal.changedetection.state.CachingFileHasher$FileInfoSerializer::read (6 bytes) +Event: 49.691 Thread 0x0000000021e5c620 nmethod 19181 0x000000001288b110 code [0x000000001288b380, 0x000000001288c900] +Event: 49.830 Thread 0x0000000021e5c620 19182 4 java.lang.String::encode (48 bytes) +Event: 49.837 Thread 0x0000000021e5c620 nmethod 19182 0x000000001240e910 code [0x000000001240ebe0, 0x000000001240fb08] +Event: 49.962 Thread 0x0000000021e5c620 19183 4 java.util.ArrayList$ArrayListSpliterator::forEachRemaining (127 bytes) +Event: 49.964 Thread 0x0000000021e5c620 nmethod 19183 0x000000001240df90 code [0x000000001240e120, 0x000000001240e3f8] +Event: 50.148 Thread 0x0000000021e5c620 19184 4 org.gradle.internal.io.StreamByteBuffer$StreamByteBufferInputStream::read (8 bytes) +Event: 50.161 Thread 0x0000000021e5c620 nmethod 19184 0x00000000120a7310 code [0x00000000120a74c0, 0x00000000120a83f8] +Event: 50.289 Thread 0x0000000021e5c620 19185 4 org.gradle.internal.time.DefaultCountdownTimer::hasExpired (15 bytes) +Event: 50.290 Thread 0x0000000021e5c620 nmethod 19185 0x0000000012617c10 code [0x0000000012617da0, 0x0000000012617f58] +Event: 50.844 Thread 0x0000000021e6aa00 19186 3 org.gradle.internal.serialize.InputStreamBackedDecoder::readString (8 bytes) +Event: 50.844 Thread 0x0000000021e6aa00 nmethod 19186 0x000000000af99790 code [0x000000000af99940, 0x000000000af99ae8] +Event: 51.063 Thread 0x0000000021e6aa00 19187 3 java.util.TimSort::gallopRight (335 bytes) +Event: 51.063 Thread 0x0000000021e6aa00 nmethod 19187 0x000000000c1dc290 code [0x000000000c1dc4c0, 0x000000000c1dcff8] +Event: 51.811 Thread 0x0000000021e5c620 19188 4 java.math.BigInteger:: (93 bytes) +Event: 51.822 Thread 0x0000000021e5c620 nmethod 19188 0x0000000012ecfa90 code [0x0000000012ecfc60, 0x0000000012ed0bb8] +Event: 52.251 Thread 0x0000000021e6aa00 19189 3 java.util.TimSort::mergeCollapse (134 bytes) +Event: 52.251 Thread 0x0000000021e6aa00 nmethod 19189 0x000000000aee0190 code [0x000000000aee0360, 0x000000000aee0888] + +GC Heap History (20 events): +Event: 35.133 GC heap after +{Heap after GC invocations=32 (full 0): + garbage-first heap total 588800K, used 267023K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 8 young (8192K), 8 survivors (8192K) + Metaspace used 71600K, committed 72192K, reserved 1114112K + class space used 9415K, committed 9664K, reserved 1048576K +} +Event: 35.161 GC heap before +{Heap before GC invocations=32 (full 0): + garbage-first heap total 588800K, used 287503K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 28 young (28672K), 8 survivors (8192K) + Metaspace used 71601K, committed 72192K, reserved 1114112K + class space used 9415K, committed 9664K, reserved 1048576K +} +Event: 35.168 GC heap after +{Heap after GC invocations=33 (full 0): + garbage-first heap total 588800K, used 236175K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 3 young (3072K), 3 survivors (3072K) + Metaspace used 71601K, committed 72192K, reserved 1114112K + class space used 9415K, committed 9664K, reserved 1048576K +} +Event: 35.822 GC heap before +{Heap before GC invocations=33 (full 0): + garbage-first heap total 588800K, used 456335K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 218 young (223232K), 3 survivors (3072K) + Metaspace used 73183K, committed 73792K, reserved 1114112K + class space used 9614K, committed 9856K, reserved 1048576K +} +Event: 35.840 GC heap after +{Heap after GC invocations=34 (full 0): + garbage-first heap total 588800K, used 249546K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 16 young (16384K), 16 survivors (16384K) + Metaspace used 73183K, committed 73792K, reserved 1114112K + class space used 9614K, committed 9856K, reserved 1048576K +} +Event: 37.329 GC heap before +{Heap before GC invocations=34 (full 0): + garbage-first heap total 588800K, used 465610K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 227 young (232448K), 16 survivors (16384K) + Metaspace used 74382K, committed 75008K, reserved 1122304K + class space used 9665K, committed 9920K, reserved 1048576K +} +Event: 37.343 GC heap after +{Heap after GC invocations=35 (full 0): + garbage-first heap total 588800K, used 255022K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 19 young (19456K), 19 survivors (19456K) + Metaspace used 74382K, committed 75008K, reserved 1122304K + class space used 9665K, committed 9920K, reserved 1048576K +} +Event: 38.572 GC heap before +{Heap before GC invocations=35 (full 0): + garbage-first heap total 588800K, used 476206K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 235 young (240640K), 19 survivors (19456K) + Metaspace used 74681K, committed 75328K, reserved 1122304K + class space used 9687K, committed 9984K, reserved 1048576K +} +Event: 38.584 GC heap after +{Heap after GC invocations=36 (full 0): + garbage-first heap total 588800K, used 260722K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 11 young (11264K), 11 survivors (11264K) + Metaspace used 74681K, committed 75328K, reserved 1122304K + class space used 9687K, committed 9984K, reserved 1048576K +} +Event: 40.023 GC heap before +{Heap before GC invocations=36 (full 0): + garbage-first heap total 588800K, used 483954K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 229 young (234496K), 11 survivors (11264K) + Metaspace used 74939K, committed 75584K, reserved 1122304K + class space used 9700K, committed 9984K, reserved 1048576K +} +Event: 40.030 GC heap after +{Heap after GC invocations=37 (full 0): + garbage-first heap total 588800K, used 265703K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 16 young (16384K), 16 survivors (16384K) + Metaspace used 74939K, committed 75584K, reserved 1122304K + class space used 9700K, committed 9984K, reserved 1048576K +} +Event: 41.108 GC heap before +{Heap before GC invocations=37 (full 0): + garbage-first heap total 588800K, used 489959K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 235 young (240640K), 16 survivors (16384K) + Metaspace used 75065K, committed 75712K, reserved 1122304K + class space used 9706K, committed 9984K, reserved 1048576K +} +Event: 41.116 GC heap after +{Heap after GC invocations=38 (full 0): + garbage-first heap total 588800K, used 271401K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 22 young (22528K), 22 survivors (22528K) + Metaspace used 75065K, committed 75712K, reserved 1122304K + class space used 9706K, committed 9984K, reserved 1048576K +} +Event: 43.164 GC heap before +{Heap before GC invocations=38 (full 0): + garbage-first heap total 588800K, used 494633K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 240 young (245760K), 22 survivors (22528K) + Metaspace used 75163K, committed 75776K, reserved 1122304K + class space used 9708K, committed 9984K, reserved 1048576K +} +Event: 43.172 GC heap after +{Heap after GC invocations=39 (full 0): + garbage-first heap total 588800K, used 274555K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 16 young (16384K), 16 survivors (16384K) + Metaspace used 75163K, committed 75776K, reserved 1122304K + class space used 9708K, committed 9984K, reserved 1048576K +} +Event: 43.271 GC heap before +{Heap before GC invocations=39 (full 0): + garbage-first heap total 588800K, used 499835K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 236 young (241664K), 16 survivors (16384K) + Metaspace used 75168K, committed 75776K, reserved 1122304K + class space used 9708K, committed 9984K, reserved 1048576K +} +Event: 43.277 GC heap after +{Heap after GC invocations=40 (full 0): + garbage-first heap total 588800K, used 274733K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 16 young (16384K), 16 survivors (16384K) + Metaspace used 75168K, committed 75776K, reserved 1122304K + class space used 9708K, committed 9984K, reserved 1048576K +} +Event: 43.564 GC heap before +{Heap before GC invocations=40 (full 0): + garbage-first heap total 588800K, used 505133K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 241 young (246784K), 16 survivors (16384K) + Metaspace used 75199K, committed 75840K, reserved 1122304K + class space used 9708K, committed 9984K, reserved 1048576K +} +Event: 43.570 GC heap after +{Heap after GC invocations=41 (full 0): + garbage-first heap total 588800K, used 276760K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 18 young (18432K), 18 survivors (18432K) + Metaspace used 75199K, committed 75840K, reserved 1122304K + class space used 9708K, committed 9984K, reserved 1048576K +} +Event: 52.345 GC heap before +{Heap before GC invocations=41 (full 0): + garbage-first heap total 588800K, used 516376K [0x0000000080000000, 0x0000000100000000) + region size 1024K, 245 young (250880K), 18 survivors (18432K) + Metaspace used 75829K, committed 76544K, reserved 1122304K + class space used 9800K, committed 10112K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 48.936 Thread 0x0000000026a07930 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000000012f9f1f4 relative=0x0000000000000194 +Event: 48.936 Thread 0x0000000026a07930 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000012f9f1f4 method=org.gradle.api.specs.NotSpec.isSatisfiedBy(Ljava/lang/Object;)Z @ 5 c2 +Event: 48.936 Thread 0x0000000026a07930 DEOPT PACKING pc=0x0000000012f9f1f4 sp=0x0000000036cfd620 +Event: 48.936 Thread 0x0000000026a07930 DEOPT UNPACKING pc=0x000000000a3e23a3 sp=0x0000000036cfd5b8 mode 2 +Event: 48.937 Thread 0x0000000026a07930 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000000012f9f1f4 relative=0x0000000000000194 +Event: 48.937 Thread 0x0000000026a07930 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000012f9f1f4 method=org.gradle.api.specs.NotSpec.isSatisfiedBy(Ljava/lang/Object;)Z @ 5 c2 +Event: 48.937 Thread 0x0000000026a07930 DEOPT PACKING pc=0x0000000012f9f1f4 sp=0x0000000036cfd620 +Event: 48.937 Thread 0x0000000026a07930 DEOPT UNPACKING pc=0x000000000a3e23a3 sp=0x0000000036cfd5b8 mode 2 +Event: 48.937 Thread 0x0000000026a07930 Uncommon trap: trap_request=0xffffffde fr.pc=0x0000000012f9f1f4 relative=0x0000000000000194 +Event: 48.937 Thread 0x0000000026a07930 Uncommon trap: reason=class_check action=maybe_recompile pc=0x0000000012f9f1f4 method=org.gradle.api.specs.NotSpec.isSatisfiedBy(Ljava/lang/Object;)Z @ 5 c2 +Event: 48.937 Thread 0x0000000026a07930 DEOPT PACKING pc=0x0000000012f9f1f4 sp=0x0000000036cfd570 +Event: 48.937 Thread 0x0000000026a07930 DEOPT UNPACKING pc=0x000000000a3e23a3 sp=0x0000000036cfd508 mode 2 +Event: 48.937 Thread 0x0000000026a07930 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000000001271dacc relative=0x000000000000088c +Event: 48.937 Thread 0x0000000026a07930 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000001271dacc method=java.nio.file.Files.walkFileTree(Ljava/nio/file/Path;Ljava/util/Set;ILjava/nio/file/FileVisitor;)Ljava/nio/file/Path; @ 234 c2 +Event: 48.937 Thread 0x0000000026a07930 DEOPT PACKING pc=0x000000001271dacc sp=0x0000000036cfd770 +Event: 48.937 Thread 0x0000000026a07930 DEOPT UNPACKING pc=0x000000000a3e23a3 sp=0x0000000036cfd738 mode 2 +Event: 49.617 Thread 0x00000000245b48f0 Uncommon trap: trap_request=0xffffff45 fr.pc=0x000000001211a0a4 relative=0x0000000000000dc4 +Event: 49.617 Thread 0x00000000245b48f0 Uncommon trap: reason=unstable_if action=reinterpret pc=0x000000001211a0a4 method=java.math.BigInteger.makePositive([BII)[I @ 40 c2 +Event: 49.617 Thread 0x00000000245b48f0 DEOPT PACKING pc=0x000000001211a0a4 sp=0x000000002b2df050 +Event: 49.617 Thread 0x00000000245b48f0 DEOPT UNPACKING pc=0x000000000a3e23a3 sp=0x000000002b2def68 mode 2 + +Classes unloaded (0 events): +No events + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 43.530 Thread 0x0000000026a07930 Exception (0x0000000096d51070) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.531 Thread 0x0000000026a07930 Exception (0x0000000096da7d40) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.539 Thread 0x0000000026a07930 Exception (0x00000000969d9bd0) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.542 Thread 0x0000000026a07930 Exception (0x00000000968e4420) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.549 Thread 0x0000000026a07930 Exception (0x00000000964b3010) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.551 Thread 0x0000000026a07930 Exception (0x00000000964f2280) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.552 Thread 0x0000000026a07930 Exception (0x000000009633ab80) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.555 Thread 0x0000000026a07930 Exception (0x0000000096248400) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.556 Thread 0x0000000026a07930 Exception (0x0000000096284928) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.560 Thread 0x0000000026a07930 Exception (0x000000009607b888) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.585 Thread 0x0000000026a07930 Exception (0x00000000a300bde8) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.635 Thread 0x0000000026a07930 Exception (0x00000000a30562b0) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 43.637 Thread 0x0000000026a07930 Exception (0x00000000a2f2c588) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 516] +Event: 48.794 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d3c9008) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] +Event: 48.795 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d183990) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] +Event: 48.795 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d185590) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] +Event: 48.795 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d186ba8) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] +Event: 48.795 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d188580) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] +Event: 48.797 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d1a5460) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] +Event: 48.798 Thread 0x00000000245b35b0 Exception ()V> (0x000000009d1ba1e8) +thrown [t:\workspace\open\src\hotspot\share\prims\jni.cpp, line 1107] + +VM Operations (20 events): +Event: 47.010 Executing VM operation: Cleanup done +Event: 48.010 Executing VM operation: Cleanup +Event: 48.010 Executing VM operation: Cleanup done +Event: 48.765 Executing VM operation: HandshakeAllThreads +Event: 48.765 Executing VM operation: HandshakeAllThreads done +Event: 48.765 Executing VM operation: HandshakeAllThreads +Event: 48.783 Executing VM operation: HandshakeAllThreads done +Event: 48.783 Executing VM operation: HandshakeAllThreads +Event: 48.784 Executing VM operation: HandshakeAllThreads done +Event: 48.803 Executing VM operation: ICBufferFull +Event: 48.803 Executing VM operation: ICBufferFull done +Event: 48.856 Executing VM operation: HandshakeAllThreads +Event: 48.857 Executing VM operation: HandshakeAllThreads done +Event: 48.910 Executing VM operation: HandshakeAllThreads +Event: 48.910 Executing VM operation: HandshakeAllThreads done +Event: 49.923 Executing VM operation: Cleanup +Event: 49.923 Executing VM operation: Cleanup done +Event: 50.935 Executing VM operation: Cleanup +Event: 50.935 Executing VM operation: Cleanup done +Event: 52.344 Executing VM operation: G1CollectForAllocation + +Events (20 events): +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c694710 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c694e90 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c695310 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c696c10 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c697510 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c698190 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c698690 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c698f90 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c699590 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c6a8690 +Event: 48.944 Thread 0x0000000021e73ad0 flushing nmethod 0x000000000c724190 +Event: 49.171 Thread 0x000000003579d870 Thread exited: 0x000000003579d870 +Event: 49.172 Thread 0x000000003579d360 Thread exited: 0x000000003579d360 +Event: 49.339 Thread 0x000000003579e290 Thread exited: 0x000000003579e290 +Event: 49.340 Thread 0x000000002ceb61d0 Thread exited: 0x000000002ceb61d0 +Event: 49.618 Thread 0x000000002cbf2ee0 Thread exited: 0x000000002cbf2ee0 +Event: 49.618 Thread 0x0000000035785240 Thread exited: 0x0000000035785240 +Event: 49.677 Thread 0x0000000035785c60 Thread exited: 0x0000000035785c60 +Event: 50.148 Thread 0x000000002bfcd680 Thread exited: 0x000000002bfcd680 +Event: 50.148 Thread 0x0000000035785750 Thread exited: 0x0000000035785750 + + +Dynamic libraries: +0x00007ff77b1b0000 - 0x00007ff77b1be000 D:\Java\jdk-17.0.2\bin\java.exe +0x00007fff85c90000 - 0x00007fff85e88000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007fff84340000 - 0x00007fff843ff000 C:\WINDOWS\System32\KERNEL32.DLL +0x00007fff833f0000 - 0x00007fff836c2000 C:\WINDOWS\System32\KERNELBASE.dll +0x00007fff83700000 - 0x00007fff83800000 C:\WINDOWS\System32\ucrtbase.dll +0x00007fff2c1b0000 - 0x00007fff2c1ca000 D:\Java\jdk-17.0.2\bin\VCRUNTIME140.dll +0x00007fff2c1d0000 - 0x00007fff2c1e8000 D:\Java\jdk-17.0.2\bin\jli.dll +0x00007fff85030000 - 0x00007fff851d1000 C:\WINDOWS\System32\USER32.dll +0x00007fff75d00000 - 0x00007fff75f9a000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e\COMCTL32.dll +0x00007fff838f0000 - 0x00007fff83912000 C:\WINDOWS\System32\win32u.dll +0x00007fff848b0000 - 0x00007fff848db000 C:\WINDOWS\System32\GDI32.dll +0x00007fff85240000 - 0x00007fff852de000 C:\WINDOWS\System32\msvcrt.dll +0x00007fff83920000 - 0x00007fff83a2f000 C:\WINDOWS\System32\gdi32full.dll +0x00007fff83850000 - 0x00007fff838ed000 C:\WINDOWS\System32\msvcp_win.dll +0x00007fff85ab0000 - 0x00007fff85ae2000 C:\WINDOWS\System32\IMM32.DLL +0x00007fff2c0e0000 - 0x00007fff2c0ec000 D:\Java\jdk-17.0.2\bin\vcruntime140_1.dll +0x00007fff2c050000 - 0x00007fff2c0dd000 D:\Java\jdk-17.0.2\bin\msvcp140.dll +0x00007fff0ace0000 - 0x00007fff0b8a1000 D:\Java\jdk-17.0.2\bin\server\jvm.dll +0x00007fff84280000 - 0x00007fff8432e000 C:\WINDOWS\System32\ADVAPI32.dll +0x00007fff85340000 - 0x00007fff853dc000 C:\WINDOWS\System32\sechost.dll +0x00007fff84650000 - 0x00007fff84775000 C:\WINDOWS\System32\RPCRT4.dll +0x00007fff84030000 - 0x00007fff84038000 C:\WINDOWS\System32\PSAPI.DLL +0x00007fff79230000 - 0x00007fff79257000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007fff3e7e0000 - 0x00007fff3e7e9000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007fff79260000 - 0x00007fff7926a000 C:\WINDOWS\SYSTEM32\VERSION.dll +0x00007fff847e0000 - 0x00007fff8484b000 C:\WINDOWS\System32\WS2_32.dll +0x00007fff81220000 - 0x00007fff81232000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll +0x00007fff2c040000 - 0x00007fff2c04a000 D:\Java\jdk-17.0.2\bin\jimage.dll +0x00007fff73220000 - 0x00007fff73404000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL +0x00007fff75fe0000 - 0x00007fff76015000 C:\WINDOWS\SYSTEM32\dbgcore.DLL +0x00007fff83c40000 - 0x00007fff83cc2000 C:\WINDOWS\System32\bcryptPrimitives.dll +0x00007fff0c450000 - 0x00007fff0c475000 D:\Java\jdk-17.0.2\bin\java.dll +0x00007fff0c370000 - 0x00007fff0c446000 D:\Java\jdk-17.0.2\bin\jsvml.dll +0x00007fff848e0000 - 0x00007fff85025000 C:\WINDOWS\System32\SHELL32.dll +0x00007fff81420000 - 0x00007fff81bb2000 C:\WINDOWS\SYSTEM32\windows.storage.dll +0x00007fff83cd0000 - 0x00007fff84025000 C:\WINDOWS\System32\combase.dll +0x00007fff82cf0000 - 0x00007fff82d20000 C:\WINDOWS\SYSTEM32\Wldp.dll +0x00007fff85af0000 - 0x00007fff85b9d000 C:\WINDOWS\System32\SHCORE.dll +0x00007fff84850000 - 0x00007fff848a5000 C:\WINDOWS\System32\shlwapi.dll +0x00007fff832c0000 - 0x00007fff832df000 C:\WINDOWS\SYSTEM32\profapi.dll +0x00007fff0c350000 - 0x00007fff0c369000 D:\Java\jdk-17.0.2\bin\net.dll +0x00007fff7a0f0000 - 0x00007fff7a1fc000 C:\WINDOWS\SYSTEM32\WINHTTP.dll +0x00007fff82ae0000 - 0x00007fff82b4a000 C:\WINDOWS\system32\mswsock.dll +0x00007fff0c330000 - 0x00007fff0c346000 D:\Java\jdk-17.0.2\bin\nio.dll +0x00007fff0c310000 - 0x00007fff0c328000 D:\Java\jdk-17.0.2\bin\zip.dll +0x00007fff2b410000 - 0x00007fff2b420000 D:\Java\jdk-17.0.2\bin\verify.dll +0x00007fff7e860000 - 0x00007fff7e887000 C:\Users\domin\.gradle\native\e1d6ef7f7dcc3fd88c89a11ec53ec762bb8ba0a96d01ffa2cd45eb1d1d8dd5c5\windows-amd64\native-platform.dll +0x00007fff591b0000 - 0x00007fff592f4000 C:\Users\domin\.gradle\native\5664cfc778a61ccfe75a443a1ab52a65af34e5dc3c78e0209fed803814484fcb\windows-amd64\native-platform-file-events.dll +0x00007fff7f1e0000 - 0x00007fff7f1e9000 D:\Java\jdk-17.0.2\bin\management.dll +0x00007fff7ed10000 - 0x00007fff7ed1b000 D:\Java\jdk-17.0.2\bin\management_ext.dll +0x00007fff82d40000 - 0x00007fff82d58000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll +0x00007fff823b0000 - 0x00007fff823e4000 C:\WINDOWS\system32\rsaenh.dll +0x00007fff836d0000 - 0x00007fff836f7000 C:\WINDOWS\System32\bcrypt.dll +0x00007fff83240000 - 0x00007fff8326e000 C:\WINDOWS\SYSTEM32\USERENV.dll +0x00007fff82d20000 - 0x00007fff82d2c000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll +0x00007fff827a0000 - 0x00007fff827db000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL +0x00007fff85a80000 - 0x00007fff85a88000 C:\WINDOWS\System32\NSI.dll +0x00007fff7cdd0000 - 0x00007fff7cde7000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL +0x00007fff7cd60000 - 0x00007fff7cd7d000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL +0x00007fff827f0000 - 0x00007fff828bb000 C:\WINDOWS\SYSTEM32\DNSAPI.dll +0x00007fff7ed00000 - 0x00007fff7ed0e000 D:\Java\jdk-17.0.2\bin\sunmscapi.dll +0x00007fff83a30000 - 0x00007fff83b86000 C:\WINDOWS\System32\CRYPT32.dll +0x00007fff82e50000 - 0x00007fff82e77000 C:\WINDOWS\SYSTEM32\ncrypt.dll +0x00007fff82e10000 - 0x00007fff82e4b000 C:\WINDOWS\SYSTEM32\NTASN1.dll +0x00007fff40960000 - 0x00007fff40967000 C:\WINDOWS\system32\wshunix.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;D:\Java\jdk-17.0.2\bin;C:\WINDOWS\SYSTEM32;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_60b5254171f9507e;D:\Java\jdk-17.0.2\bin\server;C:\Users\domin\.gradle\native\e1d6ef7f7dcc3fd88c89a11ec53ec762bb8ba0a96d01ffa2cd45eb1d1d8dd5c5\windows-amd64;C:\Users\domin\.gradle\native\5664cfc778a61ccfe75a443a1ab52a65af34e5dc3c78e0209fed803814484fcb\windows-amd64 + +VM Arguments: +jvm_args: --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx2G -Dfile.encoding=windows-1252 -Duser.country=DE -Duser.language=de -Duser.variant +java_command: org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.3 +java_class_path (initial): C:\Users\domin\.gradle\wrapper\dists\gradle-7.3-bin\ddwl0k7mt9g6ak16i1m905vyv\gradle-7.3\lib\gradle-launcher-7.3.jar +Launcher Type: SUN_STANDARD + +[Global flags] + intx CICompilerCount = 12 {product} {ergonomic} + uint ConcGCThreads = 3 {product} {ergonomic} + uint G1ConcRefinementThreads = 13 {product} {ergonomic} + size_t G1HeapRegionSize = 1048576 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 805306368 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 2147483648 {product} {command line} + size_t MaxNewSize = 1287651328 {product} {ergonomic} + size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} + size_t MinHeapSize = 8388608 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 7602480 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 122027880 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + size_t SoftMaxHeapSize = 2147483648 {manageable} {ergonomic} + bool UseCompressedClassPointers = true {product lp64_product} {ergonomic} + bool UseCompressedOops = true {product lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +JAVA_HOME=D:\Java\jdk-17.0.2\ +PATH=C:\Python310\Scripts\;C:\Python310\;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;C:\Users\domin\AppData\Local\Microsoft\WindowsApps;C:\Program Files\dotnet\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;D:\Java\jdk-17.0.2\bin;C:\Program Files\WireGuard\;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\PowerShell\7\;C:\Users\domin\AppData\Local\Microsoft\WindowsApps;D:\Android\Git\cmd +USERNAME=domin +OS=Windows_NT +PROCESSOR_IDENTIFIER=AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD + + + +--------------- S Y S T E M --------------- + +OS: + Windows 10 , 64 bit Build 19041 (10.0.19041.2546) +OS uptime: 0 days 2:49 hours +Hyper-V role detected + +CPU: total 16 (initial active 16) (16 cores per cpu, 2 threads per core) family 23 model 113 stepping 0 microcode 0x0, cx8, cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4a, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, clmul, bmi1, bmi2, adx, sha, fma, vzeroupper, clflush, clflushopt, hv + +Memory: 4k page, system-wide physical 49073M (36748M free) +TotalPageFile size 49073M (AvailPageFile size 32555M) +current process WorkingSet (physical memory assigned to process): 845M, peak: 964M +current process commit charge ("private bytes"): 899M, peak: 1017M + +vm_info: OpenJDK 64-Bit Server VM (17.0.2+8-86) for windows-amd64 JRE (17.0.2+8-86), built on Dec 7 2021 21:49:10 by "mach5one" with MS VC++ 16.8 / 16.9 (VS2019) + +END. diff --git a/images/unused_textures/altar_block/altar_bottom.png b/images/programmer_art/altar_block/altar_bottom.png similarity index 100% rename from images/unused_textures/altar_block/altar_bottom.png rename to images/programmer_art/altar_block/altar_bottom.png diff --git a/images/unused_textures/altar_block/altar_side1_gem.png b/images/programmer_art/altar_block/altar_side1_gem.png similarity index 100% rename from images/unused_textures/altar_block/altar_side1_gem.png rename to images/programmer_art/altar_block/altar_side1_gem.png diff --git a/images/unused_textures/altar_block/altar_side1_gem_alternate.png b/images/programmer_art/altar_block/altar_side1_gem_alternate.png similarity index 100% rename from images/unused_textures/altar_block/altar_side1_gem_alternate.png rename to images/programmer_art/altar_block/altar_side1_gem_alternate.png diff --git a/images/unused_textures/altar_block/altar_side2_gem.png b/images/programmer_art/altar_block/altar_side2_gem.png similarity index 100% rename from images/unused_textures/altar_block/altar_side2_gem.png rename to images/programmer_art/altar_block/altar_side2_gem.png diff --git a/images/unused_textures/altar_block/altar_side3_gem.png b/images/programmer_art/altar_block/altar_side3_gem.png similarity index 100% rename from images/unused_textures/altar_block/altar_side3_gem.png rename to images/programmer_art/altar_block/altar_side3_gem.png diff --git a/images/unused_textures/altar_block/altar_side4_gem.png b/images/programmer_art/altar_block/altar_side4_gem.png similarity index 100% rename from images/unused_textures/altar_block/altar_side4_gem.png rename to images/programmer_art/altar_block/altar_side4_gem.png diff --git a/images/unused_textures/altar_block/altar_top.png b/images/programmer_art/altar_block/altar_top.png similarity index 100% rename from images/unused_textures/altar_block/altar_top.png rename to images/programmer_art/altar_block/altar_top.png diff --git a/images/unused_textures/altar_block/side1.png b/images/programmer_art/altar_block/side1.png similarity index 100% rename from images/unused_textures/altar_block/side1.png rename to images/programmer_art/altar_block/side1.png diff --git a/images/unused_textures/altar_block/side2.png b/images/programmer_art/altar_block/side2.png similarity index 100% rename from images/unused_textures/altar_block/side2.png rename to images/programmer_art/altar_block/side2.png diff --git a/images/unused_textures/altar_block/side3.png b/images/programmer_art/altar_block/side3.png similarity index 100% rename from images/unused_textures/altar_block/side3.png rename to images/programmer_art/altar_block/side3.png diff --git a/images/unused_textures/altar_block/side4.png b/images/programmer_art/altar_block/side4.png similarity index 100% rename from images/unused_textures/altar_block/side4.png rename to images/programmer_art/altar_block/side4.png diff --git a/images/unused_textures/altar_gui/altar_calcite.png b/images/programmer_art/altar_gui/altar_calcite.png similarity index 100% rename from images/unused_textures/altar_gui/altar_calcite.png rename to images/programmer_art/altar_gui/altar_calcite.png diff --git a/images/unused_textures/altar_gui/altar_tuff.png b/images/programmer_art/altar_gui/altar_tuff.png similarity index 100% rename from images/unused_textures/altar_gui/altar_tuff.png rename to images/programmer_art/altar_gui/altar_tuff.png diff --git a/images/unused_textures/blue_topaz/budding_topaz.png b/images/programmer_art/blue_topaz/budding_topaz.png similarity index 100% rename from images/unused_textures/blue_topaz/budding_topaz.png rename to images/programmer_art/blue_topaz/budding_topaz.png diff --git a/images/unused_textures/blue_topaz/deepslate_topaz_ore.png b/images/programmer_art/blue_topaz/deepslate_topaz_ore.png similarity index 100% rename from images/unused_textures/blue_topaz/deepslate_topaz_ore.png rename to images/programmer_art/blue_topaz/deepslate_topaz_ore.png diff --git a/images/unused_textures/blue_topaz/large_topaz_bud.png b/images/programmer_art/blue_topaz/large_topaz_bud.png similarity index 100% rename from images/unused_textures/blue_topaz/large_topaz_bud.png rename to images/programmer_art/blue_topaz/large_topaz_bud.png diff --git a/images/unused_textures/blue_topaz/medium_topaz_bud.png b/images/programmer_art/blue_topaz/medium_topaz_bud.png similarity index 100% rename from images/unused_textures/blue_topaz/medium_topaz_bud.png rename to images/programmer_art/blue_topaz/medium_topaz_bud.png diff --git a/images/unused_textures/blue_topaz/small_topaz_bud.png b/images/programmer_art/blue_topaz/small_topaz_bud.png similarity index 100% rename from images/unused_textures/blue_topaz/small_topaz_bud.png rename to images/programmer_art/blue_topaz/small_topaz_bud.png diff --git a/images/unused_textures/blue_topaz/topaz_basalt_lamp.png b/images/programmer_art/blue_topaz/topaz_basalt_lamp.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_basalt_lamp.png rename to images/programmer_art/blue_topaz/topaz_basalt_lamp.png diff --git a/images/unused_textures/blue_topaz/topaz_block.png b/images/programmer_art/blue_topaz/topaz_block.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_block.png rename to images/programmer_art/blue_topaz/topaz_block.png diff --git a/images/unused_textures/blue_topaz/topaz_calcite_lamp.png b/images/programmer_art/blue_topaz/topaz_calcite_lamp.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_calcite_lamp.png rename to images/programmer_art/blue_topaz/topaz_calcite_lamp.png diff --git a/images/unused_textures/blue_topaz/topaz_chiseled_basalt.png b/images/programmer_art/blue_topaz/topaz_chiseled_basalt.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_chiseled_basalt.png rename to images/programmer_art/blue_topaz/topaz_chiseled_basalt.png diff --git a/images/unused_textures/blue_topaz/topaz_chiseled_calcite.png b/images/programmer_art/blue_topaz/topaz_chiseled_calcite.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_chiseled_calcite.png rename to images/programmer_art/blue_topaz/topaz_chiseled_calcite.png diff --git a/images/unused_textures/blue_topaz/topaz_cluster.png b/images/programmer_art/blue_topaz/topaz_cluster.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_cluster.png rename to images/programmer_art/blue_topaz/topaz_cluster.png diff --git a/images/unused_textures/blue_topaz/topaz_glass.png b/images/programmer_art/blue_topaz/topaz_glass.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_glass.png rename to images/programmer_art/blue_topaz/topaz_glass.png diff --git a/images/unused_textures/blue_topaz/topaz_ore.png b/images/programmer_art/blue_topaz/topaz_ore.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_ore.png rename to images/programmer_art/blue_topaz/topaz_ore.png diff --git a/images/unused_textures/blue_topaz/topaz_shard.png b/images/programmer_art/blue_topaz/topaz_shard.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_shard.png rename to images/programmer_art/blue_topaz/topaz_shard.png diff --git a/images/unused_textures/blue_topaz/topaz_storage_block.png b/images/programmer_art/blue_topaz/topaz_storage_block.png similarity index 100% rename from images/unused_textures/blue_topaz/topaz_storage_block.png rename to images/programmer_art/blue_topaz/topaz_storage_block.png diff --git a/images/unused_textures/cmy_base.png b/images/programmer_art/cmy_base.png similarity index 100% rename from images/unused_textures/cmy_base.png rename to images/programmer_art/cmy_base.png diff --git a/images/unused_textures/color_mixing.png b/images/programmer_art/color_mixing.png similarity index 100% rename from images/unused_textures/color_mixing.png rename to images/programmer_art/color_mixing.png diff --git a/images/unused_textures/color_mixing_pixelated.png b/images/programmer_art/color_mixing_pixelated.png similarity index 100% rename from images/unused_textures/color_mixing_pixelated.png rename to images/programmer_art/color_mixing_pixelated.png diff --git a/images/unused_textures/enchanted_leaves.xcf b/images/programmer_art/enchanted_leaves.xcf similarity index 100% rename from images/unused_textures/enchanted_leaves.xcf rename to images/programmer_art/enchanted_leaves.xcf diff --git a/images/unused_textures/altar_gui/altar_gui.png b/images/unused_textures/altar_gui/altar_gui.png deleted file mode 100644 index f2b6503dcf..0000000000 Binary files a/images/unused_textures/altar_gui/altar_gui.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_amethyst.png b/images/unused_textures/unpowered_pedestal/pedestal_all_basic_amethyst.png deleted file mode 100644 index 59b028c9df..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_amethyst.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_citrine.png b/images/unused_textures/unpowered_pedestal/pedestal_all_basic_citrine.png deleted file mode 100644 index d14bebf302..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_citrine.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_topaz.png b/images/unused_textures/unpowered_pedestal/pedestal_all_basic_topaz.png deleted file mode 100644 index 0f8545ff02..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_topaz.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_basic_amethyst.png b/images/unused_textures/unpowered_pedestal/pedestal_basic_amethyst.png deleted file mode 100644 index b7609a1ec3..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_basic_amethyst.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_basic_citrine.png b/images/unused_textures/unpowered_pedestal/pedestal_basic_citrine.png deleted file mode 100644 index e5ff8d020d..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_basic_citrine.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_basic_topaz.png b/images/unused_textures/unpowered_pedestal/pedestal_basic_topaz.png deleted file mode 100644 index ef9ed38194..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_basic_topaz.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_bottom.png b/images/unused_textures/unpowered_pedestal/pedestal_bottom.png deleted file mode 100644 index 71a56ae472..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_bottom.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_amethyst_side.png b/images/unused_textures/unpowered_pedestal/pedestal_moonstone_amethyst_side.png deleted file mode 100644 index eff357a77d..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_amethyst_side.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_citrine_side.png b/images/unused_textures/unpowered_pedestal/pedestal_moonstone_citrine_side.png deleted file mode 100644 index 2c6f9bffa7..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_citrine_side.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_topaz_side.png b/images/unused_textures/unpowered_pedestal/pedestal_moonstone_topaz_side.png deleted file mode 100644 index 244220dde6..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_topaz_side.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_onyx_amethyst_side.png b/images/unused_textures/unpowered_pedestal/pedestal_onyx_amethyst_side.png deleted file mode 100644 index d1a93200ae..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_onyx_amethyst_side.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_onyx_citrine_side.png b/images/unused_textures/unpowered_pedestal/pedestal_onyx_citrine_side.png deleted file mode 100644 index 44d360ed84..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_onyx_citrine_side.png and /dev/null differ diff --git a/images/unused_textures/unpowered_pedestal/pedestal_onyx_topaz_side.png b/images/unused_textures/unpowered_pedestal/pedestal_onyx_topaz_side.png deleted file mode 100644 index 12174bd864..0000000000 Binary files a/images/unused_textures/unpowered_pedestal/pedestal_onyx_topaz_side.png and /dev/null differ diff --git a/images/unused_textures/wood/enchanted_leaves.mcmeta b/images/unused_textures/wood/enchanted_leaves.mcmeta deleted file mode 100644 index 0645f48c62..0000000000 --- a/images/unused_textures/wood/enchanted_leaves.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/images/unused_textures/wood/enchanted_leaves.png b/images/unused_textures/wood/enchanted_leaves.png deleted file mode 100644 index dff2f5f079..0000000000 Binary files a/images/unused_textures/wood/enchanted_leaves.png and /dev/null differ diff --git a/images/unused_textures/wood/enchanted_log.png b/images/unused_textures/wood/enchanted_log.png deleted file mode 100644 index 550fac1609..0000000000 Binary files a/images/unused_textures/wood/enchanted_log.png and /dev/null differ diff --git a/images/unused_textures/wood/enchanted_log_fuzzy.png b/images/unused_textures/wood/enchanted_log_fuzzy.png deleted file mode 100644 index d19c89c2e3..0000000000 Binary files a/images/unused_textures/wood/enchanted_log_fuzzy.png and /dev/null differ diff --git a/images/unused_textures/wood/enchanted_planks.png b/images/unused_textures/wood/enchanted_planks.png deleted file mode 100644 index 519acdb602..0000000000 Binary files a/images/unused_textures/wood/enchanted_planks.png and /dev/null differ diff --git a/images/unused_textures/wood/enchanted_trapdoor.png b/images/unused_textures/wood/enchanted_trapdoor.png deleted file mode 100644 index 068e1c6cac..0000000000 Binary files a/images/unused_textures/wood/enchanted_trapdoor.png and /dev/null differ diff --git a/images/unused_textures/wood/enchantedl_log_top.png b/images/unused_textures/wood/enchantedl_log_top.png deleted file mode 100644 index 4d03c37985..0000000000 Binary files a/images/unused_textures/wood/enchantedl_log_top.png and /dev/null differ diff --git a/images/unused_textures/wood/wood_color.txt b/images/unused_textures/wood/wood_color.txt deleted file mode 100644 index f2334bf6eb..0000000000 --- a/images/unused_textures/wood/wood_color.txt +++ /dev/null @@ -1,13 +0,0 @@ -wood: -einfärben von grau aus: - -Blätter: -Farbton 267 -Sättigung: 50 -Helligkeit: -31 - - -Wood: -Farbton 267 -Sättigung: 27 -Helligkeit: -24 \ No newline at end of file diff --git a/raw/Generate-BlockFiles.ps1 b/raw/Generate-BlockFiles.ps1 index 69e2815cca..f4a9e09aac 100644 --- a/raw/Generate-BlockFiles.ps1 +++ b/raw/Generate-BlockFiles.ps1 @@ -1,12 +1,16 @@ $leaves = @("black_leaves", "blue_leaves", "brown_leaves", "cyan_leaves", "gray_leaves", "green_leaves", "light_blue_leaves", "light_gray_leaves", "lime_leaves", "magenta_leaves", "orange_leaves", "pink_leaves", "purple_leaves", "red_leaves", "white_leaves", "yellow_leaves") -$saplings = @("black_sapling", "blue_sapling", "brown_sapling", "cyan_sapling", "gray_sapling", "green_sapling", "light_blue_sapling", "light_gray_sapling", "lime_sapling", "magenta_sapling", "orange_sapling", "pink_sapling", "purple_sapling", "red_sapling", "white_sapling", "yellow_sapling") -$logs = @("black_log", "blue_log", "brown_log", "cyan_log", "gray_log", "green_log", "light_blue_log", "light_gray_log", "lime_log", "magenta_log", "orange_log", "pink_log", "purple_log", "red_log", "white_log", "yellow_log") -$flat = @("black_glowblock", "blue_glowblock", "brown_glowblock", "cyan_glowblock", "gray_glowblock", "green_glowblock", "light_blue_glowblock", "light_gray_glowblock", "lime_glowblock", "magenta_glowblock", "orange_glowblock", "pink_glowblock", "purple_glowblock", "red_glowblock", "white_glowblock", "yellow_glowblock") -$lamp = @("black_lamp", "blue_lamp", "brown_lamp", "cyan_lamp", "gray_lamp", "green_lamp", "light_blue_lamp", "light_gray_lamp", "lime_lamp", "magenta_lamp", "orange_lamp", "pink_lamp", "purple_lamp", "red_lamp", "white_lamp", "yellow_lamp") -$ores = @("sparklestone_block", "koenigsblau_ore", "koenigsblau_block") -$upgrades = @("upgrade_speed", "upgrade_speed2", "upgrade_speed3", "upgrade_efficiency", "upgrade_efficiency2", "upgrade_yield", "upgrade_yield2", "upgrade_experience", "upgrade_experience2") -$new = @("native_coal_block","native_iron_block","native_gold_block","native_diamond_block","native_emerald_block","native_redstone_block","native_lapis_block","native_copper_block","native_quartz_block","native_netherite_block","native_glowstone_block","native_prismarine_block","native_certus_quartz_block","native_fluix_block","native_globette_block","native_globette_nether_block","native_globette_end_block") +$new = @( +"shale_clay_brick_slab", +"polished_shale_clay_slab", +"shale_clay_tile_slab", +"exposed_polished_shale_clay_slab", +"exposed_shale_clay_brick_slab", +"exposed_shale_clay_tile_slab", +"weathered_polished_shale_clay_slab", +"weathered_shale_clay_brick_slab", +"weathered_shale_clay_tile_slab" +) enum BlockType { Default @@ -14,6 +18,11 @@ enum BlockType { Log Upgrade Crystallarieum + Stairs + Slab + Wall + Button + PressurePlate } Function Generate-BlockFiles { @@ -60,7 +69,13 @@ Function Generate-BlockFiles { function Get-LangEntries([string[]] $Names) { $Names | Foreach-Object { - "`"block.spectrum.$_`": `"$_`"," + $words = $_ -split "_" + $resultingWords = @() + foreach($word in $words) { + $resultingWords += ([string] $word[0]).ToUpper() + $word.Substring(1) + } + $translation = $resultingWords -join " " + "`"block.spectrum.$_`": `"$translation`"," } } @@ -141,6 +156,24 @@ Function Generate-BlockFiles { } +function Get-BlockStateSlab($Name) { + Write-Output @" + { + "variants": { + "type=bottom": { + "model": "spectrum:block/$Name`" + }, + "type=double": { + "model": "spectrum:block/$Name`" + }, + "type=top": { + "model": "spectrum:block/$Name`_top" + } + } + } +"@ +} + function Get-BlockStateCrystallarieum($Name) { Write-Output @" { @@ -153,6 +186,457 @@ Function Generate-BlockFiles { "@ } + + function Get-BlockStateStairs($Name) { + Write-Output @" +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/$Name`_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/$Name`_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/$Name" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/$Name", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/$Name", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/$Name", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/$Name`_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/$Name`_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/$Name", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/$Name", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/$Name", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/$Name`_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/$Name`_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/$Name", + "x": 180, + "y": 180, + "uvlock": true + } + } +} +"@ + } + + + function Get-BlockStateWall($Name) { + Write-Output @" +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/$Name`_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/$Name`_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/$Name`_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/$Name`_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/$Name`_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/$Name`_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/$Name`_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/$Name`_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/$Name`_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} +"@ + } + + + function Get-BlockStateButton($Name) { + Write-Output @" +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/$Name", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/$Name", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/$Name", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/$Name", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/$Name", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/$Name" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/$Name`_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/$Name", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/$Name", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/$Name", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/$Name`", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/$Name`", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/$Name`", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/$Name`_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} +"@ + } + + + function Get-BlockStatePressurePlate($Name) { + Write-Output @" +{ + "variants": { + "powered=false": { + "model": "spectrum:block/$Name" + }, + "powered=true": { + "model": "spectrum:block/$Name`_down" + } + } +} +"@ + } + #################################### #endregion BLOCK STATE # @@ -211,7 +695,6 @@ Function Generate-BlockFiles { "@ } - function Get-BlockModelLampOff($Name) { Write-Output @" { @@ -223,7 +706,6 @@ Function Generate-BlockFiles { "@ } - function Get-BlockModelUpgrade($Name) { $NameWithoutNumber = $Name -replace "[0-9]", "" Write-Output @" @@ -245,13 +727,176 @@ Function Generate-BlockFiles { { "parent": "minecraft:block/crop", "textures": { - "crop": "spectrum:block/$_" + "crop": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelSlab($Name) { + Write-Output @" +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/$Name", + "top": "spectrum:block/$Name", + "side": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelSlabTop($Name) { + Write-Output @" +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/$Name", + "top": "spectrum:block/$Name", + "side": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelStairs($Name) { + Write-Output @" +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/$Name", + "top": "spectrum:block/$Name", + "side": "spectrum:block/$Name" + } +} +"@ + } + + + function Get-BlockModelStairsInner($Name) { + Write-Output @" +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/$Name", + "top": "spectrum:block/$Name", + "side": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelStairsOuter($Name) { + Write-Output @" +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/$Name", + "top": "spectrum:block/$Name", + "side": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelWallInventory($Name) { + Write-Output @" +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelWallPost($Name) { + Write-Output @" +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelWallSide($Name) { + Write-Output @" +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelWallSideTall($Name) { + Write-Output @" +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/$Name" } } "@ + } + function Get-BlockModelButton($Name) { + Write-Output @" +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/$Name" + } +} +"@ } + function Get-BlockModelButtonInventory($Name) { + Write-Output @" +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelButtonPressed($Name) { + Write-Output @" +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelPressurePlate($Name) { + Write-Output @" +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/$Name" + } +} +"@ + } + + function Get-BlockModelPressurePlateDown($Name) { + Write-Output @" +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/$Name" + } +} +"@ + } #################################### @@ -299,6 +944,45 @@ Function Generate-BlockFiles { "@ } + function Get-LootTableSlab($Name) { + Write-Output @" +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:$Name", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:$Name" + } + ] + } + ] +} +"@ + } + #################################### #endregion LOOT TABLE # @@ -337,7 +1021,7 @@ Function Generate-BlockFiles { Get-LangEntries -Names $BlockNames Write-Output "" Write-Output "- Mineable Block tags" - Write-Output "- Manual Entry" + Write-Output "- Guidebook Entry" Write-Output "- Recipes" $BlockNames | ForEach-Object { @@ -353,31 +1037,61 @@ Function Generate-BlockFiles { $blockState = Get-BlockStateUpgrade -Name $_ } elseif ($blockType -eq [BlockType]::Crystallarieum) { $blockState = Get-BlockStateCrystallarieum -Name $_ - } + } elseif ($blockType -eq [BlockType]::Stairs) { + $blockState = Get-BlockStateStairs -Name $_ + } elseif ($blockType -eq [BlockType]::Wall) { + $blockState = Get-BlockStateWall -Name $_ + } elseif ($blockType -eq [BlockType]::Button) { + $blockState = Get-BlockStateButton -Name $_ + } elseif ($blockType -eq [BlockType]::PressurePlate) { + $blockState = Get-BlockStatePressurePlate -Name $_ + } elseif ($blockType -eq [BlockType]::Slab) { + $blockState = Get-BlockStateSlab -Name $_ + } New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\blockstates\") -Name "$_`.json" -ItemType File -Force -Value $blockState | Out-Null # BLOCK MODELS if($blockType -eq [BlockType]::Default) { - $blockModel = Get-BlockModel -Name $_ - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $blockModel | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModel -Name $_) | Out-Null } elseif ($blockType -eq [BlockType]::Log) { - $blockModelLog = Get-BlockModelLog -Name $_ - $blockModelLogHorizontal = Get-BlockModelLogHorizontal -Name $_ - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $blockModelLog | Out-Null - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_horizontal.json" -ItemType File -Force -Value $blockModelLogHorizontal | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelLog -Name $_) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_horizontal.json" -ItemType File -Force -Value $(Get-BlockModelLogHorizontal -Name $_) | Out-Null } elseif ($blockType -eq [BlockType]::Lamp) { $blockModelLampOn = Get-BlockModelLampOn -Name $_ $blockModelLampOff = Get-BlockModelLampOff -Name $_ - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $blockModelLampOff | Out-Null - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_on.json" -ItemType File -Force -Value $blockModelLampOn | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelLampOff -Name $_) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_on.json" -ItemType File -Force -Value $(Get-BlockModelLampOn -Name $_) | Out-Null } elseif ($blockType -eq [BlockType]::Upgrade) { $NameWithoutNumber = $_ -replace "[0-9]", "" - $blockModel = Get-BlockModelUpgrade -Name $NameWithoutNumber - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$NameWithoutNumber`.json" -ItemType File -Force -Value $blockModel | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$NameWithoutNumber`.json" -ItemType File -Force -Value $(Get-Get-BlockModelUpgrade -Name $NameWithoutNumber) | Out-Null } elseif ($blockType -eq [BlockType]::Crystallarieum) { $blockModel = Get-BlockModelCrystallarieum -Name $_ - New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $blockModel | Out-Null - } + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelCrystallarieum -Name $_) | Out-Null + } elseif ($blockType -eq [BlockType]::Stairs) { + $textureName = $_.Substring(0, $_.LastIndexOf("_")) + "s" + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelStairs -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_inner.json" -ItemType File -Force -Value $(Get-BlockModelStairsInner -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_outer.json" -ItemType File -Force -Value $(Get-BlockModelStairsOuter -Name $textureName) | Out-Null + } elseif ($blockType -eq [BlockType]::Wall) { + $textureName = $_.Substring(0, $_.LastIndexOf("_")) + "s" + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_inventory.json" -ItemType File -Force -Value $(Get-BlockModelWallInventory -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_post.json" -ItemType File -Force -Value $(Get-BlockModelWallPost -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_side.json" -ItemType File -Force -Value $(Get-BlockModelWallSide -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_side_tall.json" -ItemType File -Force -Value $(Get-BlockModelWallSideTall -Name $textureName) | Out-Null + } elseif ($blockType -eq [BlockType]::Button) { + $textureName = $_.Substring(0, $_.LastIndexOf("_")) + "s" + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelButton -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_inventory.json" -ItemType File -Force -Value $(Get-BlockModelButtonInventory -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_pressed.json" -ItemType File -Force -Value $(Get-BlockModelButtonPressed -Name $textureName) | Out-Null + } elseif ($blockType -eq [BlockType]::PressurePlate) { + $textureName = $_.Substring(0, $_.LastIndexOf("_")) + "s" + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelPressurePlate -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_down.json" -ItemType File -Force -Value $(Get-BlockModelPressurePlateDown -Name $textureName) | Out-Null + } elseif ($blockType -eq [BlockType]::Slab) { + $textureName = $_.Substring(0, $_.LastIndexOf("_")) + "s" + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`.json" -ItemType File -Force -Value $(Get-BlockModelSlab -Name $textureName) | Out-Null + New-Item -Path $(Join-Path -Path $destination -ChildPath "\resources\assets\spectrum\models\block\") -Name "$_`_top.json" -ItemType File -Force -Value $(Get-BlockModelSlabTop -Name $textureName) | Out-Null + } # ITEM MODEL if($blockType -eq [BlockType]::Upgrade) { @@ -422,8 +1136,13 @@ Function Generate-BlockFiles { # LOOT TABLE # To make your block drop items when broken, you will need a loot table. The following file will cause your block to drop its respective item form when broken - $lootTable = Get-LootTable -Name $_ + if($blockType -eq [BlockType]::Slab) { + $lootTable = Get-LootTableSlab -Name $_ + } else { + $lootTable = Get-LootTable -Name $_ + } New-Item -Path $(Join-Path -Path $destination -ChildPath "\data\spectrum\loot_tables\blocks\") -Name "$_`.json" -ItemType File -Force -Value $lootTable | Out-Null + } } @@ -433,4 +1152,4 @@ Function Generate-BlockFiles { } -Generate-BlockFiles -BlockNames $new -BlockType ([BlockType]::Default) \ No newline at end of file +Generate-BlockFiles -BlockNames $new -BlockType ([BlockType]::Slab) \ No newline at end of file diff --git a/raw/Generate-GemstoneOreSmeltingRecipes.ps1 b/raw/Generate-GemstoneOreSmeltingRecipes.ps1 index 923fd32eee..3896d5d6b0 100644 --- a/raw/Generate-GemstoneOreSmeltingRecipes.ps1 +++ b/raw/Generate-GemstoneOreSmeltingRecipes.ps1 @@ -1,4 +1,4 @@ -$gems = @("sparklestone", "azurite", "paletur", "scarlet") +$gems = @("sparklestone", "azurite", "paletur", "stratine") foreach($gem in $gems) { New-Item -Name "$gem`_shard_from_$gem`_ore_smelting.json" -ItemType File -Value @" diff --git a/raw/Generate-LangDif.ps1 b/raw/Generate-LangDif.ps1 new file mode 100644 index 0000000000..c4def69f38 --- /dev/null +++ b/raw/Generate-LangDif.ps1 @@ -0,0 +1,66 @@ +$en18 = Get-Content -Path "C:\Temp\Temp\l_18_en.json" -Encoding UTF8 | ConvertFrom-Json +$endd = Get-Content -Path "C:\Temp\Temp\l_dd_en.json" -Encoding UTF8 | ConvertFrom-Json + +$identical = [System.Collections.ArrayList]::new() +$changed = [System.Collections.ArrayList]::new() +$added = [System.Collections.ArrayList]::new() +$removed = [System.Collections.ArrayList]::new() + +foreach($element in $endd.PSObject.Members.Name) { + $edd = $endd.$element + $e18 = $en18.$element + + if($element -match "Amaranth") { + "!" + } + if($e18) { + if($e18 -eq $edd) { + $identical.Add($element) | Out-Null + } else { + $changed.Add($element) | Out-Null + } + } else { + $added.Add($element) | Out-Null + } +} + +foreach($element in $en18.PSObject.Members.Name) { + if(-not $endd.$element) { + $removed.Add($element) | Out-Null + } +} + + +$ench = Get-Content -Path "C:\Temp\Temp\l_ch.json" -Encoding UTF8 | ConvertFrom-Json +$new = "{`r`n" +foreach($element in $endd.PSObject.Members) { + if($element.TypeNameOfValue -ne "System.String") { + continue + } + $element = $element.Name + if($element -match "Amaranth") { + "!" + } + + $edd = $endd.$element + $e18 = $en18.$element + $ech = $ench.$element + if($changed.Contains($element)) { + $new += " `"$element`": `"$ech`", # changed from `"$($e18)`" to `"$($edd)`"`r`n" + } elseif($removed.Contains($element)) { + $new += "# `"$element`": `"$ech`", # deleted. Was `"$($ech)`"`r`n" + } elseif($added.Contains($element) -or -not $ech) { + $new += " `"$element`": `"$edd`", # new`r`n" + } else { + $new += " `"$element`": `"$ech`",`r`n" + } +} +$new += "}" +$new | Set-Clipboard + +Write-Host "Deleted:" +foreach($d in $removed) { + $ech = $ench.$d + Write-Host "$d : $ech" +} + diff --git a/raw/Generate-StoneCuttingRecipes.ps1 b/raw/Generate-StoneCuttingRecipes.ps1 new file mode 100644 index 0000000000..22ee634ed3 --- /dev/null +++ b/raw/Generate-StoneCuttingRecipes.ps1 @@ -0,0 +1,63 @@ +class Template { + + [string] $ingredient + [string] $output + [int] $amount + + Template([string] $ingredient, [string] $output, [int] $amount) { + $this.ingredient = $ingredient + $this.output = $output + $this.amount = $amount + } + +} + +$entries = @( + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_shale_clay_bricks", 1), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_shale_clay_tiles", 1), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_polished_shale_clay_stairs", 1), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_polished_shale_clay_slab", 2), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_shale_clay_brick_stairs", 1), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_shale_clay_brick_slab", 2), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_shale_clay_tile_stairs", 1), + [Template]::new("spectrum:weathered_polished_shale_clay", "spectrum:weathered_shale_clay_tile_slab", 2), + [Template]::new("spectrum:weathered_shale_clay_bricks", "spectrum:weathered_shale_clay_brick_slab", 2), + [Template]::new("spectrum:weathered_shale_clay_bricks", "spectrum:weathered_shale_clay_brick_stairs", 1), + [Template]::new("spectrum:weathered_shale_clay_tiles", "spectrum:weathered_shale_clay_tile_stairs", 1), + [Template]::new("spectrum:weathered_shale_clay_tiles", "spectrum:weathered_shale_clay_tile_slab", 2) +) + +$entries | ForEach-Object { + $inFull = $_.ingredient + if (!($inFull -match "spectrum:")) { + $inFull = "minecraft:" + $inFull + } + $outFull = $_.output + if (!($outFull -match "spectrum:")) { + $outFull = "minecraft:" + $outFull + } + + if($_.ingredient -match ":") { + $inPath = ($_.ingredient -split ":")[1] + } else { + $inPath = $_.ingredient + } + if($_.output -match ":") { + $outPath = ($_.output -split ":")[1] + } else { + $outPath = $_.output + } + + $name = "$outPath`_from_$inPath`_stonecutting.json" + New-Item -Path "E:\Downloads\new\recipes\" -Name $name -ItemType File -Force -Value @" +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "$inFull" + }, + "result": "$outFull", + "count": 2 +} +"@ + +} \ No newline at end of file diff --git a/raw/PotionFillableInkCosts.xlsx b/raw/PotionFillableInkCosts.xlsx new file mode 100644 index 0000000000..36f1e601cc Binary files /dev/null and b/raw/PotionFillableInkCosts.xlsx differ diff --git a/raw/StatusEffectCost.xlsx b/raw/StatusEffectCost.xlsx new file mode 100644 index 0000000000..0132a4148b Binary files /dev/null and b/raw/StatusEffectCost.xlsx differ diff --git a/raw/Test-PatchouliUnlocks.ps1 b/raw/Test-PatchouliUnlocks.ps1 new file mode 100644 index 0000000000..3a46872769 --- /dev/null +++ b/raw/Test-PatchouliUnlocks.ps1 @@ -0,0 +1,22 @@ +$dataFolder = "$PSScriptRoot\..\src\main\resources\data" +$advancementsFolder = $(Join-Path -Path $dataFolder -ChildPath "spectrum\advancements" -Resolve) +$advancements = ((Get-ChildItem -Path $advancementsFolder -File -Recurse).FullName -replace ($advancementsFolder -replace "\\", "\\"), "" -replace ".json", "" -replace "\\", "/").Substring(1).Trim() + +$guidebookFolder = $(Join-Path -Path $dataFolder -ChildPath "spectrum\patchouli_books\guidebook\en_us\entries" -Resolve) +$bookPages = (Get-ChildItem -Path $guidebookFolder -File -Recurse).FullName +$bookPages | ForEach-Object { + $json = Get-Content $_ | ConvertFrom-Json + + $adv = @() + $adv += $json.advancement + $adv += $json.pages.advancement + + foreach($ad in $adv) { + if($ad) { + $a, $b = $ad.Trim().Split(":") + if($advancements -notcontains $b) { + Write-Warning "$_ : $b" + } + } + } +} \ No newline at end of file diff --git a/raw/UpgradeableTrinketsData.xlsx b/raw/UpgradeableTrinketsData.xlsx index 5bbbc6c8d8..8cee5d09ea 100644 Binary files a/raw/UpgradeableTrinketsData.xlsx and b/raw/UpgradeableTrinketsData.xlsx differ diff --git a/raw/beverage_calculation.xlsx b/raw/beverage_calculation.xlsx index 4c4254236b..64ea782610 100644 Binary files a/raw/beverage_calculation.xlsx and b/raw/beverage_calculation.xlsx differ diff --git a/raw/gen_loot_tables_potted_saplings.ps1 b/raw/gen_loot_tables_potted_saplings.ps1 new file mode 100644 index 0000000000..0364f15755 --- /dev/null +++ b/raw/gen_loot_tables_potted_saplings.ps1 @@ -0,0 +1,42 @@ +$p = @("black", "blue", "brown", "cyan", "gray", "green", "light_blue", "light_gray", "lime", "magenta", "orange", "pink", "purple", "red", "white", "yellow") + +$p | Foreach-Object { + New-Item -Name "potted_$_`_sapling.json" -ItemType File -Force -Value @" +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:$_`_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} +"@ + +} diff --git a/src/main/java/de/dafuqs/spectrum/SpectrumClient.java b/src/main/java/de/dafuqs/spectrum/SpectrumClient.java index fab406456e..89b4ffc48b 100644 --- a/src/main/java/de/dafuqs/spectrum/SpectrumClient.java +++ b/src/main/java/de/dafuqs/spectrum/SpectrumClient.java @@ -1,105 +1,141 @@ package de.dafuqs.spectrum; -import de.dafuqs.revelationary.api.advancements.ClientAdvancementPacketCallback; -import de.dafuqs.revelationary.api.revelations.RevealingCallback; -import de.dafuqs.spectrum.compat.patchouli.PatchouliFlags; -import de.dafuqs.spectrum.compat.patchouli.PatchouliPages; -import de.dafuqs.spectrum.entity.SpectrumEntityRenderers; -import de.dafuqs.spectrum.helpers.TooltipHelper; -import de.dafuqs.spectrum.inventories.SpectrumContainers; -import de.dafuqs.spectrum.inventories.SpectrumScreenHandlerTypes; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketReceiver; -import de.dafuqs.spectrum.particle.SpectrumParticleFactories; -import de.dafuqs.spectrum.progression.UnlockToastManager; -import de.dafuqs.spectrum.progression.toast.RevelationToast; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.revelationary.api.revelations.*; +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import de.dafuqs.spectrum.compat.patchouli.*; +import de.dafuqs.spectrum.compat.reverb.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.particle.render.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.progression.toast.*; import de.dafuqs.spectrum.registries.*; -import de.dafuqs.spectrum.registries.client.SpectrumArmorRenderers; -import de.dafuqs.spectrum.registries.client.SpectrumColorProviders; -import de.dafuqs.spectrum.registries.client.SpectrumItemPredicates; -import de.dafuqs.spectrum.render.HudRenderers; -import de.dafuqs.spectrum.render.SkyLerper; -import net.fabricmc.api.ClientModInitializer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; -import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.block.Block; -import net.minecraft.client.MinecraftClient; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; - -import java.util.Set; - -import static de.dafuqs.spectrum.SpectrumCommon.logInfo; +import de.dafuqs.spectrum.registries.client.*; +import de.dafuqs.spectrum.render.*; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.client.event.lifecycle.v1.*; +import net.fabricmc.fabric.api.client.item.v1.*; +import net.fabricmc.fabric.api.client.networking.v1.*; +import net.fabricmc.fabric.api.client.rendering.v1.*; +import net.fabricmc.loader.api.*; +import net.minecraft.block.*; +import net.minecraft.client.*; +import net.minecraft.client.util.math.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import org.jgrapht.*; +import org.jgrapht.graph.*; + +import java.util.*; + +import static de.dafuqs.spectrum.SpectrumCommon.*; public class SpectrumClient implements ClientModInitializer, RevealingCallback, ClientAdvancementPacketCallback { - + @Environment(EnvType.CLIENT) public static final SkyLerper skyLerper = new SkyLerper(); - - @Environment(EnvType.CLIENT) - public static MinecraftClient minecraftClient; - public static boolean foodEffectsTooltipsModLoaded = FabricLoader.getInstance().isModLoaded("foodeffecttooltips"); - + public static boolean FORCE_TRANSLUCENT = false; + @Override public void onInitializeClient() { logInfo("Starting Client Startup"); - + logInfo("Registering Model Layers..."); SpectrumModelLayers.register(); - + logInfo("Setting up Block Rendering..."); SpectrumBlocks.registerClient(); logInfo("Setting up Fluid Rendering..."); SpectrumFluids.registerClient(); - + logInfo("Setting up GUIs..."); - SpectrumContainers.register(); + SpectrumScreenHandlerIDs.register(); SpectrumScreenHandlerTypes.registerClient(); - + logInfo("Setting up ItemPredicates..."); SpectrumItemPredicates.registerClient(); - + logInfo("Setting up Block Entity Renderers..."); SpectrumBlockEntities.registerClient(); logInfo("Setting up Entity Renderers..."); SpectrumEntityRenderers.registerClient(); - + logInfo("Registering Server to Client Package Receivers..."); SpectrumS2CPacketReceiver.registerS2CReceivers(); logInfo("Registering Particle Factories..."); SpectrumParticleFactories.register(); - + logInfo("Registering Overlays..."); HudRenderers.register(); - + logInfo("Registering Item Tooltips..."); SpectrumTooltipComponents.registerTooltipComponents(); - + logInfo("Registering custom Patchouli Pages & Flags..."); PatchouliPages.register(); PatchouliFlags.register(); - + DimensionReverb.setup(); + logInfo("Registering Event Listeners..."); ClientLifecycleEvents.CLIENT_STARTED.register(minecraftClient -> { - SpectrumClient.minecraftClient = minecraftClient; SpectrumColorProviders.registerClient(); }); - + ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> { + Pastel.clearClientInstance(); + }); + ItemTooltipCallback.EVENT.register((stack, context, lines) -> { - if(!foodEffectsTooltipsModLoaded && stack.isFood()) { - if(Registry.ITEM.getId(stack.getItem()).getNamespace().equals(SpectrumCommon.MOD_ID)) { + if (!foodEffectsTooltipsModLoaded && stack.isFood()) { + if (Registry.ITEM.getId(stack.getItem()).getNamespace().equals(SpectrumCommon.MOD_ID)) { TooltipHelper.addFoodComponentEffectTooltip(stack, lines); } } if (stack.isIn(SpectrumItemTags.COMING_SOON_TOOLTIP)) { - lines.add(new TranslatableText("spectrum.tooltip.coming_soon")); + lines.add(Text.translatable("spectrum.tooltip.coming_soon")); + } + }); + + WorldRenderEvents.AFTER_ENTITIES.register(context -> { + ((ExtendedParticleManager) MinecraftClient.getInstance().particleManager).render(context.matrixStack(), context.consumers(), context.camera(), context.tickDelta()); + }); + + WorldRenderEvents.AFTER_ENTITIES.register(context -> { + ClientPastelNetworkManager networkManager = Pastel.getClientInstance(); + for (PastelNetwork network : networkManager.getNetworks()) { + Graph graph = network.getGraph(); + int color = network.getColor(); + float[] colors = PastelRenderHelper.unpackNormalizedColor(color); + + for (DefaultEdge edge : graph.edgeSet()) { + PastelNodeBlockEntity source = graph.getEdgeSource(edge); + PastelNodeBlockEntity target = graph.getEdgeTarget(edge); + + final MatrixStack matrices = context.matrixStack(); + final Vec3d pos = context.camera().getPos(); + matrices.push(); + matrices.translate(-pos.x, -pos.y, -pos.z); + PastelRenderHelper.renderLineTo(context.matrixStack(), context.consumers(), colors, source.getPos(), target.getPos()); + PastelRenderHelper.renderLineTo(context.matrixStack(), context.consumers(), colors, target.getPos(), source.getPos()); + + if (MinecraftClient.getInstance().options.debugEnabled) { + Vec3d offset = Vec3d.ofCenter(target.getPos()).subtract(Vec3d.of(source.getPos())); + Vec3d normalized = offset.normalize(); + Matrix4f positionMatrix = context.matrixStack().peek().getPositionMatrix(); + PastelRenderHelper.renderDebugLine(context.consumers(), color, offset, normalized, positionMatrix); + } + matrices.pop(); + } } }); @@ -108,13 +144,13 @@ public void onInitializeClient() { RevealingCallback.register(this); ClientAdvancementPacketCallback.registerCallback(this); - + logInfo("Client startup completed!"); } - + @Override public void trigger(Set advancements, Set blocks, Set items, boolean isJoinPacket) { - if(!isJoinPacket) { + if (!isJoinPacket) { for (Block block : blocks) { if (Registry.BLOCK.getId(block).getNamespace().equals(SpectrumCommon.MOD_ID)) { RevelationToast.showRevelationToast(MinecraftClient.getInstance(), new ItemStack(SpectrumBlocks.PEDESTAL_BASIC_AMETHYST.asItem()), SpectrumSoundEvents.NEW_REVELATION); diff --git a/src/main/java/de/dafuqs/spectrum/SpectrumCommon.java b/src/main/java/de/dafuqs/spectrum/SpectrumCommon.java index dd810d7262..a6b94fd4e5 100644 --- a/src/main/java/de/dafuqs/spectrum/SpectrumCommon.java +++ b/src/main/java/de/dafuqs/spectrum/SpectrumCommon.java @@ -1,69 +1,59 @@ package de.dafuqs.spectrum; -import com.google.common.collect.ImmutableMap; -import de.dafuqs.spectrum.blocks.chests.CompactingChestBlockEntity; -import de.dafuqs.spectrum.blocks.mob_blocks.FirestarterMobBlock; -import de.dafuqs.spectrum.blocks.shooting_star.ShootingStarBlock; -import de.dafuqs.spectrum.config.SpectrumConfig; -import de.dafuqs.spectrum.data_loaders.EntityFishingDataLoader; -import de.dafuqs.spectrum.data_loaders.ResonanceDropsDataLoader; -import de.dafuqs.spectrum.deeper_down.DDDimension; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.entity.entity.ShootingStarEntity; -import de.dafuqs.spectrum.events.SpectrumGameEvents; -import de.dafuqs.spectrum.inventories.SpectrumContainers; -import de.dafuqs.spectrum.inventories.SpectrumScreenHandlerTypes; -import de.dafuqs.spectrum.items.magic_items.BottomlessBundleItem; -import de.dafuqs.spectrum.items.magic_items.ExchangeStaffItem; -import de.dafuqs.spectrum.items.magic_items.RadianceStaffItem; -import de.dafuqs.spectrum.items.trinkets.SpectrumTrinketItem; -import de.dafuqs.spectrum.items.trinkets.WhispyCircletItem; -import de.dafuqs.spectrum.loot.SpectrumLootConditionTypes; -import de.dafuqs.spectrum.loot.SpectrumLootPoolModifiers; -import de.dafuqs.spectrum.mixin.accessors.RecipeManagerAccessor; -import de.dafuqs.spectrum.networking.SpectrumC2SPacketReceiver; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipe; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipeSerializer; +import com.google.common.collect.*; +import de.dafuqs.arrowhead.api.*; +import de.dafuqs.spectrum.blocks.chests.*; +import de.dafuqs.spectrum.blocks.mob_blocks.*; +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.config.*; +import de.dafuqs.spectrum.data_loaders.*; +import de.dafuqs.spectrum.deeper_down.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.items.magic_items.*; +import de.dafuqs.spectrum.items.tools.*; +import de.dafuqs.spectrum.items.trinkets.*; +import de.dafuqs.spectrum.loot.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.enchantment_upgrade.*; import de.dafuqs.spectrum.registries.*; -import de.dafuqs.spectrum.registries.color.ColorRegistry; -import de.dafuqs.spectrum.spells.InkSpellEffects; -import de.dafuqs.spectrum.worldgen.SpectrumConfiguredFeatures; -import de.dafuqs.spectrum.worldgen.SpectrumFeatures; -import de.dafuqs.spectrum.worldgen.structure_features.SpectrumStructureFeatures; -import me.shedaniel.autoconfig.AutoConfig; -import me.shedaniel.autoconfig.serializer.JanksonConfigSerializer; -import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.entity.event.v1.EntitySleepEvents; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; -import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; -import net.fabricmc.fabric.api.event.player.AttackBlockCallback; -import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; -import net.fabricmc.fabric.api.resource.ResourceManagerHelper; -import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener; -import net.minecraft.block.Block; -import net.minecraft.block.DispenserBlock; -import net.minecraft.block.FluidBlock; -import net.minecraft.fluid.Fluid; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Recipe; -import net.minecraft.recipe.RecipeType; -import net.minecraft.resource.ResourceManager; -import net.minecraft.resource.ResourceType; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.World; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import de.dafuqs.spectrum.registries.color.*; +import de.dafuqs.spectrum.spells.*; +import de.dafuqs.spectrum.worldgen.*; +import me.shedaniel.autoconfig.*; +import me.shedaniel.autoconfig.serializer.*; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.entity.event.v1.*; +import net.fabricmc.fabric.api.event.lifecycle.v1.*; +import net.fabricmc.fabric.api.event.player.*; +import net.fabricmc.fabric.api.resource.*; +import net.fabricmc.fabric.api.transfer.v1.fluid.*; +import net.fabricmc.fabric.api.transfer.v1.item.*; +import net.fabricmc.loader.api.*; +import net.minecraft.block.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.recipe.*; +import net.minecraft.resource.*; +import net.minecraft.server.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import org.slf4j.*; import java.util.*; @@ -96,7 +86,7 @@ public static void logWarning(String message) { public static void logError(String message) { LOGGER.error("[Spectrum] " + message); } - + public static Identifier locate(String name) { return new Identifier(MOD_ID, name); } @@ -141,14 +131,12 @@ public void onInitialize() { logInfo("Registering Items..."); SpectrumPotions.register(); SpectrumItems.register(); - //logInfo("Registering SAR Components..."); - //SpectrumComponents.register(); logInfo("Registering Block Entities..."); SpectrumBlockEntities.register(); + logInfo("Registering placement modifier types..."); + SpectrumPlacementModifiers.register(); // Worldgen - logInfo("Registering Structure Features..."); - SpectrumStructureFeatures.register(); logInfo("Registering Worldgen Features..."); SpectrumFeatures.register(); logInfo("Registering Configured and Placed Features..."); @@ -166,7 +154,7 @@ public void onInitialize() { // GUI logInfo("Registering Containers..."); - SpectrumContainers.register(); + SpectrumScreenHandlerIDs.register(); logInfo("Registering Screen Handler Types..."); SpectrumScreenHandlerTypes.register(); @@ -181,8 +169,11 @@ public void onInitialize() { SpectrumItems.registerFuelRegistry(); logInfo("Registering Enchantments..."); SpectrumEnchantments.register(); - logInfo("Registering Entity Types..."); + + logInfo("Registering Entities..."); + SpectrumTrackedDataHandlerRegistry.register(); SpectrumEntityTypes.register(); + logInfo("Registering Commands..."); SpectrumCommands.register(); @@ -193,40 +184,35 @@ public void onInitialize() { ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(ResonanceDropsDataLoader.INSTANCE); ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(EntityFishingDataLoader.INSTANCE); - logInfo("Registering MultiBlocks..."); - SpectrumMultiblocks.register(); - logInfo("Registering Flammable Blocks..."); + logInfo("Adding to Fabric's Registries..."); SpectrumFlammableBlocks.register(); - logInfo("Registering Compostable Blocks..."); - SpectrumComposting.register(); + SpectrumStrippableBlocks.register(); + SpectrumCompostableBlocks.register(); + logInfo("Registering Game Events..."); SpectrumGameEvents.register(); + SpectrumPositionSources.register(); logInfo("Registering Spell Effects..."); InkSpellEffects.register(); - + logInfo("Initializing Item Groups..."); SpectrumItemGroups.ITEM_GROUP_GENERAL.initialize(); SpectrumItemGroups.ITEM_GROUP_BLOCKS.initialize(); - + logInfo("Registering Special Recipes..."); SpectrumCustomRecipeSerializers.registerRecipeSerializers(); - + logInfo("Registering Dispenser Behaviors..."); - DispenserBlock.registerBehavior(SpectrumItems.BOTTOMLESS_BUNDLE, new BottomlessBundleItem.BottomlessBundlePlacementDispenserBehavior()); - DispenserBlock.registerBehavior(SpectrumBlocks.COLORFUL_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); - DispenserBlock.registerBehavior(SpectrumBlocks.FIERY_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); - DispenserBlock.registerBehavior(SpectrumBlocks.GEMSTONE_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); - DispenserBlock.registerBehavior(SpectrumBlocks.GLISTERING_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); - DispenserBlock.registerBehavior(SpectrumBlocks.PRISTINE_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); - + SpectrumDispenserBehaviors.register(); + logInfo("Registering Resource Conditions..."); SpectrumResourceConditions.register(); - + AttackBlockCallback.EVENT.register((player, world, hand, pos, direction) -> { if (!world.isClient && !player.isSpectator()) { ItemStack mainHandStack = player.getMainHandStack(); - if (mainHandStack.isOf(SpectrumItems.EXCHANGE_STAFF)) { + if (mainHandStack.isOf(SpectrumItems.EXCHANGING_STAFF)) { Optional blockTarget = ExchangeStaffItem.getBlockTarget(player.getMainHandStack()); blockTarget.ifPresent(block -> ExchangeStaffItem.exchange(world, pos, player, block, player.getMainHandStack(), true)); return ActionResult.SUCCESS; @@ -247,14 +233,28 @@ public void onInitialize() { }); PlayerBlockBreakEvents.AFTER.register((world, player, pos, state, blockEntity) -> { - SpectrumAdvancementCriteria.BLOCK_BROKEN.trigger((ServerPlayerEntity) player, state); + if (player instanceof ServerPlayerEntity serverPlayerEntity) { + SpectrumAdvancementCriteria.BLOCK_BROKEN.trigger(serverPlayerEntity, state); + } }); - + ServerLifecycleEvents.SERVER_STARTING.register(server -> { SpectrumCommon.logInfo("Fetching server instance..."); SpectrumCommon.minecraftServer = server; + + logInfo("Registering MultiBlocks..."); + SpectrumMultiblocks.register(); }); - + + ServerLifecycleEvents.SERVER_STOPPED.register(server -> { + Pastel.clearServerInstance(); + SpectrumCommon.minecraftServer = server; + }); + + ServerTickEvents.END_SERVER_TICK.register(server -> { + Pastel.getServerInstance().tick(); + }); + ServerTickEvents.END_WORLD_TICK.register(world -> { if (world.getTime() % 100 == 0) { long timeOfDay = world.getTimeOfDay() % 24000; @@ -266,8 +266,7 @@ public void onInitialize() { } }); - ServerLifecycleEvents.SERVER_STARTED.register((minecraftServer) -> { - SpectrumCommon.minecraftServer = minecraftServer; + ServerLifecycleEvents.SERVER_STARTED.register((server) -> { SpectrumCommon.logInfo("Querying fluid luminance..."); for (Iterator it = Registry.BLOCK.stream().iterator(); it.hasNext(); ) { Block block = it.next(); @@ -277,44 +276,94 @@ public void onInitialize() { } SpectrumCommon.logInfo("Injecting additional recipes..."); - FirestarterMobBlock.addBlockSmeltingRecipes(minecraftServer.getRecipeManager()); - injectEnchantmentUpgradeRecipes(minecraftServer); + FirestarterMobBlock.addBlockSmeltingRecipes(server.getRecipeManager()); + injectEnchantmentUpgradeRecipes(server); }); EntitySleepEvents.STOP_SLEEPING.register((entity, sleepingPos) -> { // If the player wears a Whispy Cirlcet and sleeps // it gets fully healed and all negative status effects removed - - // When the sleep timer reached 100 the player is fully asleep - if (entity instanceof ServerPlayerEntity serverPlayerEntity - && serverPlayerEntity.getSleepTimer() == 100 - && SpectrumTrinketItem.hasEquipped(entity, SpectrumItems.WHISPY_CIRCLET)) { - - entity.setHealth(entity.getMaxHealth()); - WhispyCircletItem.removeNegativeStatusEffects(entity); + + // When the sleep timer reached 100 the player is fully asleep + if (entity instanceof ServerPlayerEntity serverPlayerEntity + && serverPlayerEntity.getSleepTimer() == 100 + && SpectrumTrinketItem.hasEquipped(entity, SpectrumItems.WHISPY_CIRCLET)) { + + entity.setHealth(entity.getMaxHealth()); + WhispyCircletItem.removeNegativeStatusEffects(entity); + } + }); + + CrossbowShootingCallback.register((world, shooter, hand, crossbow, projectile, projectileEntity) -> { + if (crossbow.getItem() instanceof GlassCrestCrossbowItem && GlassCrestCrossbowItem.isOvercharged(crossbow)) { + if (!world.isClient) { // only fired on the client, but making sure mods aren't doing anything weird + Vec3d particleVelocity = projectileEntity.getVelocity().multiply(0.05); + + if (GlassCrestCrossbowItem.getOvercharge(crossbow) > 0.99F) { + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, + projectileEntity.getPos(), ParticleTypes.SCRAPE, 5, + Vec3d.ZERO, particleVelocity); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, + projectileEntity.getPos(), ParticleTypes.WAX_OFF, 5, + Vec3d.ZERO, particleVelocity); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, + projectileEntity.getPos(), ParticleTypes.WAX_ON, 5, + Vec3d.ZERO, particleVelocity); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, + projectileEntity.getPos(), ParticleTypes.GLOW, 5, + Vec3d.ZERO, particleVelocity); + + if (shooter instanceof ServerPlayerEntity serverPlayerEntity) { + Support.grantAdvancementCriterion(serverPlayerEntity, + SpectrumCommon.locate("lategame/shoot_fully_overcharged_crossbow"), + "shot_fully_overcharged_crossbow"); + } + if (projectileEntity instanceof PersistentProjectileEntity persistentProjectileEntity) { + persistentProjectileEntity.setDamage(persistentProjectileEntity.getDamage() * 1.5); + } + } + + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, + projectileEntity.getPos(), ParticleTypes.FIREWORK, 10, + Vec3d.ZERO, particleVelocity); + + GlassCrestCrossbowItem.unOvercharge(crossbow); + } } - }); - - logInfo("Registering RecipeCache reload listener"); - ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(new SimpleSynchronousResourceReloadListener() { - private final Identifier id = SpectrumCommon.locate("compacting_cache_clearer"); - - @Override - public void reload(ResourceManager manager) { - CompactingChestBlockEntity.clearCache(); - - if (minecraftServer != null) { + }); + + logInfo("Registering RecipeCache reload listener"); + ResourceManagerHelper.get(ResourceType.SERVER_DATA).registerReloadListener(new SimpleSynchronousResourceReloadListener() { + private final Identifier id = SpectrumCommon.locate("compacting_cache_clearer"); + + @Override + public void reload(ResourceManager manager) { + CompactingChestBlockEntity.clearCache(); + + if (minecraftServer != null) { injectEnchantmentUpgradeRecipes(minecraftServer); FirestarterMobBlock.addBlockSmeltingRecipes(minecraftServer.getRecipeManager()); } } - + @Override public Identifier getFabricId() { return id; } }); - + + ItemStorage.SIDED.registerForBlockEntity((blockEntity, direction) -> blockEntity.storage, SpectrumBlockEntities.BOTTOMLESS_BUNDLE); + FluidStorage.SIDED.registerForBlockEntity((blockEntity, direction) -> blockEntity.fluidStorage, SpectrumBlockEntities.FUSION_SHRINE); + FluidStorage.SIDED.registerForBlockEntity((blockEntity, direction) -> blockEntity.fluidStorage, SpectrumBlockEntities.TITRATION_BARREL); + + // Builtin Resource Packs + Optional modContainer = FabricLoader.getInstance().getModContainer(SpectrumCommon.MOD_ID); + if (modContainer.isPresent()) { + ResourceManagerHelper.registerBuiltinResourcePack(locate("jenny"), modContainer.get(), "Alternate Spectrum textures", ResourcePackActivationType.NORMAL); + ResourceManagerHelper.registerBuiltinResourcePack(locate("spectrum_programmer_art"), modContainer.get(), "Spectrum's Programmer Art", ResourcePackActivationType.NORMAL); + } + ; + logInfo("Common startup completed!"); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/BedrockAnvilBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/BedrockAnvilBlock.java index 9b285c2122..5dc3cab1bd 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/BedrockAnvilBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/BedrockAnvilBlock.java @@ -10,7 +10,6 @@ import net.minecraft.screen.ScreenHandlerContext; import net.minecraft.screen.SimpleNamedScreenHandlerFactory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; @@ -21,7 +20,7 @@ public class BedrockAnvilBlock extends AnvilBlock { - private static final Text TITLE = new TranslatableText("container.spectrum.bedrock_anvil"); + private static final Text TITLE = Text.translatable("container.spectrum.bedrock_anvil"); public BedrockAnvilBlock(Settings settings) { super(settings); @@ -42,8 +41,8 @@ public NamedScreenHandlerFactory createScreenHandlerFactory(BlockState state, Wo @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("container.spectrum.bedrock_anvil.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("container.spectrum.bedrock_anvil.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("container.spectrum.bedrock_anvil.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("container.spectrum.bedrock_anvil.tooltip2").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/BismuthClusterBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/BismuthClusterBlock.java index 6d70b78ce3..2dd52483dd 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/BismuthClusterBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/BismuthClusterBlock.java @@ -13,11 +13,10 @@ import net.minecraft.tag.TagKey; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class BismuthClusterBlock extends AmethystClusterBlock { public static final int GROWTH_CHECK_RADIUS = 3; @@ -44,7 +43,7 @@ public boolean hasRandomTicks(BlockState state) { @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { super.randomTick(state, world, pos, random); - if(!world.isClient && grownBlockState != null && searchAndConsumeBlock(world, pos, GROWTH_CHECK_RADIUS, CONSUMED_TAG_TO_GROW, CONSUMED_TARGET_STATE, GROWTH_CHECK_TRIES, random)) { + if (!world.isClient && grownBlockState != null && searchAndConsumeBlock(world, pos, GROWTH_CHECK_RADIUS, CONSUMED_TAG_TO_GROW, CONSUMED_TARGET_STATE, GROWTH_CHECK_TRIES, random)) { world.setBlockState(pos, grownBlockState); world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), SoundEvents.BLOCK_CHAIN_PLACE, SoundCategory.BLOCKS, 0.8F, 0.9F + random.nextFloat() * 0.2F); @@ -59,10 +58,10 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random } public static boolean searchAndConsumeBlock(World world, BlockPos pos, int radius, TagKey tagKey, BlockState targetState, int tries, Random random) { - for(int i = 0; i < tries; i++) { + for (int i = 0; i < tries; i++) { BlockPos offsetPos = pos.add(radius - random.nextInt(1 + radius + radius), radius - random.nextInt(1 + radius + radius), radius - random.nextInt(1 + radius + radius)); BlockState offsetState = world.getBlockState(offsetPos); - if(offsetState.isIn(tagKey)) { + if (offsetState.isIn(tagKey)) { world.setBlockState(offsetPos, targetState); world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), offsetState.getSoundGroup().getBreakSound(), SoundCategory.BLOCKS, 0.8F, 0.9F + random.nextFloat() * 0.2F); return true; @@ -71,5 +70,4 @@ public static boolean searchAndConsumeBlock(World world, BlockPos pos, int radiu return false; } - } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/BlackSludgePlantBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/BlackSludgePlantBlock.java index 3eaecfc82f..e4bfd496c2 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/BlackSludgePlantBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/BlackSludgePlantBlock.java @@ -1,29 +1,35 @@ package de.dafuqs.spectrum.blocks; import de.dafuqs.spectrum.registries.SpectrumBlockTags; +import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.PlantBlock; +import net.minecraft.block.ShapeContext; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; public class BlackSludgePlantBlock extends PlantBlock { - public BlackSludgePlantBlock(Settings settings) { - super(settings); - } + protected static final VoxelShape SHAPE = Block.createCuboidShape(4.0, 0.0, 4.0, 12.0, 6.0, 12.0); - @Override - protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { - return floor.isIn(SpectrumBlockTags.BLACK_SLUDGE_BLOCKS) || super.canPlantOnTop(floor, world, pos); - } + public BlackSludgePlantBlock(Settings settings) { + super(settings); + } - @Override - public OffsetType getOffsetType() { - return OffsetType.XZ; - } + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isIn(SpectrumBlockTags.BLACK_SLUDGE_BLOCKS) || super.canPlantOnTop(floor, world, pos); + } + + @Override + public float getMaxHorizontalModelOffset() { + return 0.08F; + } - @Override - public float getMaxHorizontalModelOffset() { - return 0.08F; - } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ColorableBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/ColorableBlock.java new file mode 100644 index 0000000000..7cf0ee5d95 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/ColorableBlock.java @@ -0,0 +1,44 @@ +package de.dafuqs.spectrum.blocks; + +import de.dafuqs.spectrum.helpers.ColorHelper; +import net.minecraft.block.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +import java.util.*; + +/** + * A block that can be colored by using dye, pigment, a paintbrush or other coloring actions on them + */ +public interface ColorableBlock { + + /** + * Color the block into the specified color + * + * @param color the color the block should be colored in + * @return True if coloring was successful, false if failed (like the block was this color already) + */ + boolean color(World world, BlockPos pos, DyeColor color); + + DyeColor getColor(BlockState state); + + default boolean isColor(BlockState state, DyeColor color) { + return getColor(state) == color; + } + + default boolean tryColorUsingStackInHand(World world, BlockPos pos, PlayerEntity player, Hand hand) { + ItemStack handStack = player.getStackInHand(hand); + Optional itemInHandColor = ColorHelper.getDyeColorOfItemStack(handStack); + if (itemInHandColor.isPresent()) { + if (color(world, pos, itemInHandColor.get()) && !player.isCreative()) { + handStack.decrement(1); + return true; + } + } + return false; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/CrackedEndPortalFrameBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/CrackedEndPortalFrameBlock.java index 1674ade75b..b7598b251f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/CrackedEndPortalFrameBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/CrackedEndPortalFrameBlock.java @@ -1,31 +1,22 @@ package de.dafuqs.spectrum.blocks; -import com.google.common.base.Predicates; -import de.dafuqs.spectrum.registries.SpectrumBlocks; +import com.google.common.base.*; +import de.dafuqs.spectrum.registries.*; import net.minecraft.block.*; -import net.minecraft.block.pattern.BlockPattern; -import net.minecraft.block.pattern.BlockPatternBuilder; -import net.minecraft.block.pattern.CachedBlockPosition; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.predicate.block.BlockStatePredicate; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.util.BlockMirror; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.StringIdentifiable; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.explosion.Explosion; - -import java.util.Random; +import net.minecraft.block.pattern.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.predicate.block.*; +import net.minecraft.server.world.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.explosion.*; public class CrackedEndPortalFrameBlock extends Block { @@ -36,7 +27,7 @@ public class CrackedEndPortalFrameBlock extends Block { protected static final VoxelShape FRAME_WITH_EYE_SHAPE; private static BlockPattern COMPLETED_FRAME; private static BlockPattern END_PORTAL; - + static { FACING_VERTICAL = BooleanProperty.of("facing_vertical"); EYE_TYPE = EnumProperty.of("eye_type", CrackedEndPortalFrameBlock.EndPortalFrameEye.class); @@ -206,7 +197,7 @@ public int getComparatorOutput(BlockState state, World world, BlockPos pos) { @Override @Deprecated public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify) { - // when placed via end portal cracker => fuse + // when placed via perturbed eye => fuse if (isVolatile(state)) { world.createAndScheduleBlockTick(pos, this, 40); } @@ -214,7 +205,7 @@ public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState public boolean isVolatile(BlockState blockState) { EndPortalFrameEye endPortalFrameEye = blockState.get(EYE_TYPE); - return endPortalFrameEye.equals(EndPortalFrameEye.VANILLA_WITH_END_PORTAL_CRACKER) || endPortalFrameEye.equals(EndPortalFrameEye.WITH_END_PORTAL_CRACKER); + return endPortalFrameEye.equals(EndPortalFrameEye.VANILLA_WITH_PERTURBED_EYE) || endPortalFrameEye.equals(EndPortalFrameEye.WITH_PERTURBED_EYE); } @Override @@ -233,11 +224,11 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran // 10% chance to break portal float randomFloat = random.nextFloat(); if (randomFloat < 0.05) { - world.createExplosion(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 2, Explosion.DestructionType.BREAK); + world.createExplosion(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 4, Explosion.DestructionType.DESTROY); destroyPortals(world, pos); world.breakBlock(pos, true); } else if (randomFloat < 0.2) { - world.createExplosion(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, Explosion.DestructionType.BREAK); + world.createExplosion(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, Explosion.DestructionType.DESTROY); } else { double d = (double) pos.getX() + random.nextDouble(); double e = (double) pos.getY() + 0.8D; @@ -247,19 +238,19 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran } world.createAndScheduleBlockTick(pos, this, 10); } - + public enum EndPortalFrameEye implements StringIdentifiable { - VANILLA_WITH_END_PORTAL_CRACKER("vanilla_cracker"), + VANILLA_WITH_PERTURBED_EYE("vanilla_cracker"), NONE("none"), WITH_EYE_OF_ENDER("ender"), - WITH_END_PORTAL_CRACKER("cracker"); - + WITH_PERTURBED_EYE("cracker"); + private final String name; - + EndPortalFrameEye(String name) { this.name = name; } - + public String toString() { return this.name; } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/DeeperDownPortalBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/DeeperDownPortalBlock.java new file mode 100644 index 0000000000..0dcad74831 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/DeeperDownPortalBlock.java @@ -0,0 +1,206 @@ +package de.dafuqs.spectrum.blocks; + +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.deeper_down.DDDimension; +import de.dafuqs.spectrum.helpers.Support; +import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import de.dafuqs.spectrum.registries.SpectrumBlocks; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.ShapeContext; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.Fluid; +import net.minecraft.item.ItemStack; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.Identifier; +import net.minecraft.util.function.BooleanBiFunction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.registry.RegistryKey; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.TeleportTarget; +import net.minecraft.world.World; + +public class DeeperDownPortalBlock extends Block { + + private final static Identifier CREATE_PORTAL_ADVANCEMENT_IDENTIFIER = SpectrumCommon.locate("midgame/open_deeper_down_portal"); + private final static String CREATE_PORTAL_ADVANCEMENT_CRITERION = "opened_deeper_down_portal"; + + public static final BooleanProperty FACING_UP = Properties.UP; + + protected static final VoxelShape SHAPE = Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 4D, 16.0D); + protected static final VoxelShape SHAPE_UP = Block.createCuboidShape(0.0D, 4D, 0.0D, 16.0D, 16.0D, 16.0D); + + public DeeperDownPortalBlock(Settings settings) { + super(settings); + this.setDefaultState((this.stateManager.getDefaultState()).with(FACING_UP, false)); + } + + @Override + public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify) { + super.onBlockAdded(state, world, pos, oldState, notify); + + if (!world.isClient) { // that should be a given, but in modded you never know + + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(pos), SpectrumParticleTypes.VOID_FOG, 30, new Vec3d(0.5, 0.0, 0.5), Vec3d.ZERO); + if (!hasNeighboringPortals(world, pos)) { + world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SpectrumSoundEvents.DEEPER_DOWN_PORTAL_OPEN, SoundCategory.BLOCKS, 0.75F, 0.75F); + + for (PlayerEntity nearbyPlayer : world.getEntitiesByType(EntityType.PLAYER, Box.of(Vec3d.ofCenter(pos), 16D, 16D, 16D), LivingEntity::isAlive)) { + Support.grantAdvancementCriterion((ServerPlayerEntity) nearbyPlayer, CREATE_PORTAL_ADVANCEMENT_IDENTIFIER, CREATE_PORTAL_ADVANCEMENT_CRITERION); + } + } + } + } + + private boolean hasNeighboringPortals(World world, BlockPos pos) { + for (Direction direction : Direction.Type.HORIZONTAL) { + if (world.getBlockState(pos.offset(direction)).isOf(this)) { + return true; + } + } + return false; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + if (state.get(FACING_UP)) { + return SHAPE_UP; + } else { + return SHAPE; + } + } + + public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state) { + return ItemStack.EMPTY; + } + + public boolean canBucketPlace(BlockState state, Fluid fluid) { + return false; + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING_UP); + } + + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + if (world instanceof ServerWorld + && !entity.hasVehicle() + && !entity.hasPassengers() + && entity.canUsePortals() + && VoxelShapes.matchesAnywhere(VoxelShapes.cuboid(entity.getBoundingBox().offset((-pos.getX()), (-pos.getY()), (-pos.getZ()))), state.getOutlineShape(world, pos), BooleanBiFunction.AND)) { + + RegistryKey currentWorldKey = world.getRegistryKey(); + if (currentWorldKey == World.OVERWORLD) { + if (!entity.hasPortalCooldown()) { + entity.resetPortalCooldown(); + + // => teleport to DD + ServerWorld targetWorld = ((ServerWorld) world).getServer().getWorld(DDDimension.DEEPER_DOWN_DIMENSION_KEY); + if (targetWorld != null) { + BlockPos portalPos = new BlockPos(pos.getX(), targetWorld.getTopY() - 1, pos.getZ()); + if (!targetWorld.getBlockState(portalPos).isOf(SpectrumBlocks.DEEPER_DOWN_PORTAL)) { + targetWorld.setBlockState(portalPos, SpectrumBlocks.DEEPER_DOWN_PORTAL.getDefaultState().with(FACING_UP, true)); + } + + BlockPos targetPos = portalPos.down(2); + makeRoomAround(targetWorld, targetPos, 2); + FabricDimensions.teleport(entity, targetWorld, new TeleportTarget(Vec3d.ofCenter(targetPos), Vec3d.ZERO, entity.getYaw(), entity.getPitch())); + teleportToSafePosition(targetWorld, entity, targetPos, 3); + } + } + } else { + if (!entity.hasPortalCooldown()) { + entity.resetPortalCooldown(); + + // => teleport to overworld + ServerWorld targetWorld = ((ServerWorld) world).getServer().getWorld(World.OVERWORLD); + if (targetWorld != null) { + BlockPos portalPos = new BlockPos(pos.getX(), targetWorld.getBottomY(), pos.getZ()); + if (!targetWorld.getBlockState(portalPos).isOf(SpectrumBlocks.DEEPER_DOWN_PORTAL)) { + targetWorld.setBlockState(portalPos, SpectrumBlocks.DEEPER_DOWN_PORTAL.getDefaultState().with(FACING_UP, false)); + } + + BlockPos targetPos = portalPos.up(2); + makeRoomAround(targetWorld, targetPos, 2); + FabricDimensions.teleport(entity, targetWorld, new TeleportTarget(Vec3d.ofCenter(targetPos), Vec3d.ZERO, entity.getYaw(), entity.getPitch())); + teleportToSafePosition(targetWorld, entity, targetPos, 3); + } + } + } + } + } + + public void makeRoomAround(World world, BlockPos blockPos, int radius) { + BlockState exactState = world.getBlockState(blockPos); + if (exactState.getCollisionShape(world, blockPos).isEmpty()) { + return; + } + + for (BlockPos bp : BlockPos.iterateOutwards(blockPos, radius, radius, radius)) { + if (world.getBlockEntity(bp) != null) { + continue; + } + + BlockState state = world.getBlockState(bp); + if(state.getBlock() instanceof DeeperDownPortalBlock) { + continue; + } + + float hardness = state.getHardness(world, bp); + if ((bp.getX() == blockPos.getX() && bp.getZ() == blockPos.getZ()) + || (hardness >= 0 && hardness < 30)) { + world.breakBlock(bp, true, null); + } + } + } + + public void teleportToSafePosition(World world, Entity entity, BlockPos blockPos, int maxRadius) { + for (BlockPos bp : BlockPos.iterateOutwards(blockPos, maxRadius, maxRadius, maxRadius)) { + entity.setPosition(Vec3d.ofCenter(bp)); + if (world.getBlockState(bp.down()).getCollisionShape(world, bp.down()) == VoxelShapes.fullCube() && world.isSpaceEmpty(entity) && entity.getY() < (double) world.getTopY() && entity.getY() > (double) world.getBottomY()) { + entity.teleport(bp.getX() + 0.5, bp.getY() + 0.5, bp.getZ() + 0.5); + return; + } + } + + world.setBlockState(blockPos.down(1), Blocks.COBBLED_DEEPSLATE.getDefaultState()); + entity.teleport(blockPos.getX() + 0.5, blockPos.getY() + 0.5, blockPos.getZ() + 0.5); + } + + @Environment(EnvType.CLIENT) + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + if (!state.get(DeeperDownPortalBlock.FACING_UP) || random.nextInt(8) == 0) { + spawnVoidFogParticle(world, pos, random); + } + } + + private static void spawnVoidFogParticle(World world, BlockPos pos, Random random) { + double d = (double) pos.getX() + random.nextDouble(); + double e = (double) pos.getY() + 0.3D; + double f = (double) pos.getZ() + random.nextDouble(); + world.addParticle(SpectrumParticleTypes.VOID_FOG, d, e, f, 0.0D, 0.1D, 0.0D); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ExtraTickFarmlandBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/ExtraTickFarmlandBlock.java index b66cfa3767..5961a10f0a 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/ExtraTickFarmlandBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/ExtraTickFarmlandBlock.java @@ -3,11 +3,10 @@ import net.minecraft.block.*; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import org.jetbrains.annotations.NotNull; -import java.util.Random; - public class ExtraTickFarmlandBlock extends FarmlandBlock { public ExtraTickFarmlandBlock(Settings settings) { @@ -23,7 +22,8 @@ private static boolean hasCrop(@NotNull BlockView world, @NotNull BlockPos pos) * If there is a crop block on top of this block: tick it, too * => the crop grows faster */ - public void randomTick(BlockState state, @NotNull ServerWorld world, @NotNull BlockPos pos, Random random) { + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { BlockPos topPos = pos.up(); BlockState topBlockState = world.getBlockState(topPos); if (hasCrop(world, pos)) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/FilterConfigurable.java b/src/main/java/de/dafuqs/spectrum/blocks/FilterConfigurable.java new file mode 100644 index 0000000000..de6f2c33cb --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/FilterConfigurable.java @@ -0,0 +1,65 @@ +package de.dafuqs.spectrum.blocks; + +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; + +import java.util.*; + +public interface FilterConfigurable { + + List getItemFilters(); + + void setFilterItem(int slot, Item item); + + default void writeFilterNbt(NbtCompound tag, List filterItems) { + for (int i = 0; i < filterItems.size(); i++) { + tag.putString("Filter" + i, Registry.ITEM.getId(filterItems.get(i)).toString()); + } + } + + default void readFilterNbt(NbtCompound tag, List filterItems) { + for (int i = 0; i < filterItems.size(); i++) { + if (tag.contains("Filter" + i, NbtElement.STRING_TYPE)) { + filterItems.set(i, Registry.ITEM.get(new Identifier(tag.getString("Filter" + i)))); + } + } + } + + static Inventory getFilterInventoryFromPacket(PacketByteBuf packetByteBuf) { + int size = packetByteBuf.readInt(); + Inventory inventory = new SimpleInventory(size); + for (int i = 0; i < size; i++) { + inventory.setStack(i, Registry.ITEM.get(packetByteBuf.readIdentifier()).getDefaultStack()); + } + return inventory; + } + + static Inventory getFilterInventoryFromItems(List items) { + Inventory inventory = new SimpleInventory(items.size()); + for (int i = 0; i < items.size(); i++) { + inventory.setStack(i, items.get(i).getDefaultStack()); + } + return inventory; + } + + static void writeScreenOpeningData(PacketByteBuf buf, List filterItems) { + buf.writeInt(filterItems.size()); + for (Item filterItem : filterItems) { + buf.writeIdentifier(Registry.ITEM.getId(filterItem)); + } + } + + default boolean hasEmptyFilter() { + for (Item item : getItemFilters()) { + if (item != Items.AIR) { + return false; + } + } + return true; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ImplementedInventory.java b/src/main/java/de/dafuqs/spectrum/blocks/ImplementedInventory.java index 15584df2c6..5f24d7d934 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/ImplementedInventory.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/ImplementedInventory.java @@ -8,136 +8,140 @@ /** * A simple {@code Inventory} implementation with only default methods + an item list getter. - * + *

* Originally by Juuz */ public interface ImplementedInventory extends Inventory { - - /** - * Retrieves the item list of this inventory. - * Must return the same instance every time it's called. - */ - DefaultedList getItems(); - - /** - * Creates an inventory from the item list. - */ - static ImplementedInventory of(DefaultedList items) { - return () -> items; - } - - /** - * Creates a new inventory with the specified size. - */ - static ImplementedInventory ofSize(int size) { - return of(DefaultedList.ofSize(size, ItemStack.EMPTY)); - } - - /** - * Returns the inventory size. - */ - @Override - default int size() { - return getItems().size(); - } - - /** - * Checks if the inventory is empty. - * @return true if this inventory has only empty stacks, false otherwise. - */ - @Override - default boolean isEmpty() { - for (int i = 0; i < size(); i++) { - ItemStack stack = getStack(i); - if (!stack.isEmpty()) { - return false; - } - } - return true; - } - - /** - * Retrieves the item in the slot. - */ - @Override - default ItemStack getStack(int slot) { - return getItems().get(slot); - } - - /** - * Removes items from an inventory slot. - * @param slot The slot to remove from. - * @param count How many items to remove. If there are less items in the slot than what are requested, - * takes all items in that slot. - */ - @Override - default ItemStack removeStack(int slot, int count) { - ItemStack result = Inventories.splitStack(getItems(), slot, count); - if (!result.isEmpty()) { - markDirty(); - } - inventoryChanged(); - return result; - } - - /** - * Removes all items from an inventory slot. - * @param slot The slot to remove from. - */ - @Override - default ItemStack removeStack(int slot) { - ItemStack stack = Inventories.removeStack(getItems(), slot); - if(!stack.isEmpty()) { - inventoryChanged(); - } - return stack; - } - - /** - * Replaces the current stack in an inventory slot with the provided stack. - * @param slot The inventory slot of which to replace the itemstack. - * @param stack The replacing itemstack. If the stack is too big for - * this inventory ({@link Inventory#getMaxCountPerStack()}), - * it gets resized to this inventory's maximum amount. - */ - @Override - default void setStack(int slot, ItemStack stack) { - getItems().set(slot, stack); - if (stack.getCount() > stack.getMaxCount()) { - stack.setCount(stack.getMaxCount()); - } - inventoryChanged(); - } - - /** - * Clears the inventory. - */ - @Override - default void clear() { - getItems().clear(); - inventoryChanged(); - } - - /** - * Marks the state as dirty. - * Must be called after changes in the inventory, so that the game can properly save - * the inventory contents and notify neighboring blocks of inventory changes. - */ - @Override - default void markDirty() { - inventoryChanged(); - } - - /** - * @return true if the player can use the inventory, false otherwise. - */ - @Override - default boolean canPlayerUse(PlayerEntity player) { - return true; - } - - default void inventoryChanged() { - - } - + + /** + * Retrieves the item list of this inventory. + * Must return the same instance every time it's called. + */ + DefaultedList getItems(); + + /** + * Creates an inventory from the item list. + */ + static ImplementedInventory of(DefaultedList items) { + return () -> items; + } + + /** + * Creates a new inventory with the specified size. + */ + static ImplementedInventory ofSize(int size) { + return of(DefaultedList.ofSize(size, ItemStack.EMPTY)); + } + + /** + * Returns the inventory size. + */ + @Override + default int size() { + return getItems().size(); + } + + /** + * Checks if the inventory is empty. + * + * @return true if this inventory has only empty stacks, false otherwise. + */ + @Override + default boolean isEmpty() { + for (int i = 0; i < size(); i++) { + ItemStack stack = getStack(i); + if (!stack.isEmpty()) { + return false; + } + } + return true; + } + + /** + * Retrieves the item in the slot. + */ + @Override + default ItemStack getStack(int slot) { + return getItems().get(slot); + } + + /** + * Removes items from an inventory slot. + * + * @param slot The slot to remove from. + * @param count How many items to remove. If there are less items in the slot than what are requested, + * takes all items in that slot. + */ + @Override + default ItemStack removeStack(int slot, int count) { + ItemStack result = Inventories.splitStack(getItems(), slot, count); + if (!result.isEmpty()) { + markDirty(); + } + inventoryChanged(); + return result; + } + + /** + * Removes all items from an inventory slot. + * + * @param slot The slot to remove from. + */ + @Override + default ItemStack removeStack(int slot) { + ItemStack stack = Inventories.removeStack(getItems(), slot); + if (!stack.isEmpty()) { + inventoryChanged(); + } + return stack; + } + + /** + * Replaces the current stack in an inventory slot with the provided stack. + * + * @param slot The inventory slot of which to replace the itemstack. + * @param stack The replacing itemstack. If the stack is too big for + * this inventory ({@link Inventory#getMaxCountPerStack()}), + * it gets resized to this inventory's maximum amount. + */ + @Override + default void setStack(int slot, ItemStack stack) { + getItems().set(slot, stack); + if (stack.getCount() > stack.getMaxCount()) { + stack.setCount(stack.getMaxCount()); + } + inventoryChanged(); + } + + /** + * Clears the inventory. + */ + @Override + default void clear() { + getItems().clear(); + inventoryChanged(); + } + + /** + * Marks the state as dirty. + * Must be called after changes in the inventory, so that the game can properly save + * the inventory contents and notify neighboring blocks of inventory changes. + */ + @Override + default void markDirty() { + inventoryChanged(); + } + + /** + * @return true if the player can use the inventory, false otherwise. + */ + @Override + default boolean canPlayerUse(PlayerEntity player) { + return true; + } + + default void inventoryChanged() { + + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlock.java index 8bdaad6f27..de656c11c7 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlock.java @@ -13,6 +13,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; +import net.minecraft.screen.ScreenHandler; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.util.Hand; @@ -20,6 +21,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.minecraft.world.World; +import org.jetbrains.annotations.NotNull; public abstract class InWorldInteractionBlock extends BlockWithEntity { @@ -74,7 +76,7 @@ public ItemStack inputStack(World world, BlockPos pos, ItemStack itemStack) { if (remainingStack.getCount() != previousCount) { inWorldInteractionBlockEntity.markDirty(); - inWorldInteractionBlockEntity.updateInClientWorld(world, pos); + inWorldInteractionBlockEntity.updateInClientWorld(); world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F); } return remainingStack; @@ -125,7 +127,7 @@ public boolean retrieveStack(World world, BlockPos pos, PlayerEntity player, Han if (retrievedStack.isEmpty()) { return false; } - if(player.getStackInHand(hand).isEmpty()) { + if (player.getStackInHand(hand).isEmpty()) { player.setStackInHand(hand, retrievedStack); } else { Support.givePlayer(player, retrievedStack); @@ -136,7 +138,7 @@ public boolean retrieveStack(World world, BlockPos pos, PlayerEntity player, Han public boolean retrieveLastStack(World world, BlockPos pos, PlayerEntity player, Hand hand, ItemStack handStack, InWorldInteractionBlockEntity blockEntity) { for (int i = blockEntity.size() - 1; i >= 0; i--) { - if(retrieveStack(world, pos, player, hand, handStack, blockEntity, i)) { + if (retrieveStack(world, pos, player, hand, handStack, blockEntity, i)) { return true; } } @@ -146,7 +148,7 @@ public boolean retrieveLastStack(World world, BlockPos pos, PlayerEntity player, public boolean inputHandStack(World world, PlayerEntity player, Hand hand, ItemStack handStack, InWorldInteractionBlockEntity blockEntity) { int previousCount = handStack.getCount(); ItemStack remainingStack = InventoryHelper.smartAddToInventory(handStack, blockEntity, null); - if(remainingStack.getCount() != previousCount) { + if (remainingStack.getCount() != previousCount) { player.setStackInHand(hand, remainingStack); world.playSound(null, player.getBlockPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F); return true; @@ -154,4 +156,14 @@ public boolean inputHandStack(World world, PlayerEntity player, Hand hand, ItemS return false; } + @Override + public boolean hasComparatorOutput(BlockState state) { + return true; + } + + @Override + public int getComparatorOutput(BlockState state, @NotNull World world, BlockPos pos) { + return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlockEntity.java index dd7f94a6a7..a499a86504 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/InWorldInteractionBlockEntity.java @@ -1,19 +1,17 @@ package de.dafuqs.spectrum.blocks; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.inventory.Inventories; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.network.Packet; -import net.minecraft.network.listener.ClientPlayPacketListener; -import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.network.listener.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.server.world.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import org.jetbrains.annotations.*; public abstract class InWorldInteractionBlockEntity extends BlockEntity implements ImplementedInventory { @@ -27,8 +25,8 @@ public InWorldInteractionBlockEntity(BlockEntityType type, BlockPos pos, Bloc } // interaction methods - public void updateInClientWorld(World world, BlockPos pos) { - world.updateListeners(pos, world.getBlockState(pos), world.getBlockState(pos), Block.NO_REDRAW); + public void updateInClientWorld() { + ((ServerWorld) world).getChunkManager().markForUpdate(pos); } // Called when the chunk is first loaded to initialize this be @@ -63,8 +61,8 @@ public DefaultedList getItems() { @Override public void inventoryChanged() { this.markDirty(); - if (!world.isClient) { - updateInClientWorld(world, pos); + if (world != null && !world.isClient) { + updateInClientWorld(); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/IncandescentAmalgamBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/IncandescentAmalgamBlock.java index 9499b4812b..7d30594337 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/IncandescentAmalgamBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/IncandescentAmalgamBlock.java @@ -24,6 +24,7 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -33,8 +34,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class IncandescentAmalgamBlock extends Block implements Waterloggable { public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/PaintbrushTriggered.java b/src/main/java/de/dafuqs/spectrum/blocks/PaintbrushTriggered.java index b0616fe348..760e7c1574 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/PaintbrushTriggered.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/PaintbrushTriggered.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.blocks; -import de.dafuqs.spectrum.items.magic_items.PaintBrushItem; +import de.dafuqs.spectrum.items.magic_items.PaintbrushItem; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; @@ -17,9 +17,9 @@ public interface PaintbrushTriggered { * Use as first entry of onUse() for a block */ default ActionResult checkAndDoPaintbrushTrigger(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if(player.getStackInHand(hand).getItem() instanceof PaintBrushItem) { + if (player.getStackInHand(hand).getItem() instanceof PaintbrushItem) { ActionResult actionResult = onPaintBrushTrigger(state, world, pos, player, hand, hit); - if(actionResult.isAccepted()) { + if (actionResult.isAccepted()) { world.playSound(null, pos, SpectrumSoundEvents.PAINTBRUSH_TRIGGER, SoundCategory.PLAYERS, 1.0F, 1.0F); } else { world.playSound(null, pos, SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/PrimordialFireBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/PrimordialFireBlock.java new file mode 100644 index 0000000000..cb3c9ae6f4 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/PrimordialFireBlock.java @@ -0,0 +1,230 @@ +package de.dafuqs.spectrum.blocks; + +import com.google.common.collect.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.registry.*; +import net.minecraft.block.*; +import net.minecraft.item.*; +import net.minecraft.server.world.*; +import net.minecraft.state.*; +import net.minecraft.state.property.Properties; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; + +import java.util.*; +import java.util.function.*; +import java.util.stream.*; + +public class PrimordialFireBlock extends AbstractFireBlock { + + public static boolean EXPLOSION_CAUSES_PRIMORDIAL_FIRE_FLAG = false; + + public static final BooleanProperty NORTH = ConnectingBlock.NORTH; + public static final BooleanProperty EAST = ConnectingBlock.EAST; + public static final BooleanProperty SOUTH = ConnectingBlock.SOUTH; + public static final BooleanProperty WEST = ConnectingBlock.WEST; + public static final BooleanProperty UP = ConnectingBlock.UP; + private static final Map DIRECTION_PROPERTIES = ConnectingBlock.FACING_PROPERTIES.entrySet().stream().filter((entry) -> entry.getKey() != Direction.DOWN).collect(Util.toMap()); + private static final VoxelShape UP_SHAPE = Block.createCuboidShape(0.0, 15.0, 0.0, 16.0, 16.0, 16.0); + private static final VoxelShape WEST_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 1.0, 16.0, 16.0); + private static final VoxelShape EAST_SHAPE = Block.createCuboidShape(15.0, 0.0, 0.0, 16.0, 16.0, 16.0); + private static final VoxelShape NORTH_SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 16.0, 1.0); + private static final VoxelShape SOUTH_SHAPE = Block.createCuboidShape(0.0, 0.0, 15.0, 16.0, 16.0, 16.0); + + private final Map shapesByState; + private static final float DAMAGE = 4.0F; + + public PrimordialFireBlock(Settings settings) { + super(settings, DAMAGE); + this.setDefaultState(this.stateManager.getDefaultState().with(NORTH, false).with(EAST, false).with(SOUTH, false).with(WEST, false).with(UP, false)); + this.shapesByState = ImmutableMap.copyOf(this.stateManager.getStates().stream().collect(Collectors.toMap(Function.identity(), PrimordialFireBlock::getShapeForState))); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(NORTH, EAST, SOUTH, WEST, UP); + } + + public static VoxelShape getShapeForState(BlockState state) { + VoxelShape voxelShape = VoxelShapes.empty(); + if (state.get(UP)) { + voxelShape = UP_SHAPE; + } + if (state.get(NORTH)) { + voxelShape = VoxelShapes.union(voxelShape, NORTH_SHAPE); + } + if (state.get(SOUTH)) { + voxelShape = VoxelShapes.union(voxelShape, SOUTH_SHAPE); + } + if (state.get(EAST)) { + voxelShape = VoxelShapes.union(voxelShape, EAST_SHAPE); + } + if (state.get(WEST)) { + voxelShape = VoxelShapes.union(voxelShape, WEST_SHAPE); + } + return voxelShape.isEmpty() ? BASE_SHAPE : voxelShape; + } + + @Override + public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { + return this.canPlaceAt(state, world, pos) ? getStateForPosition(world, pos) : Blocks.AIR.getDefaultState(); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return this.shapesByState.get(state); + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + return this.getStateForPosition(ctx.getWorld(), ctx.getBlockPos()); + } + + public BlockState getStateForPosition(BlockView world, BlockPos pos) { + BlockPos blockPos = pos.down(); + BlockState blockState = world.getBlockState(blockPos); + if (!this.isFlammable(blockState) && !blockState.isSideSolidFullSquare(world, blockPos, Direction.UP)) { + BlockState blockState2 = this.getDefaultState(); + for (Direction direction : Direction.values()) { + BooleanProperty booleanProperty = DIRECTION_PROPERTIES.get(direction); + if (booleanProperty != null) { + blockState2 = blockState2.with(booleanProperty, this.isFlammable(world.getBlockState(pos.offset(direction)))); + } + } + + return blockState2; + } else { + return this.getDefaultState(); + } + } + + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + BlockPos blockPos = pos.down(); + return world.getBlockState(blockPos).isSideSolidFullSquare(world, blockPos, Direction.UP) || this.areBlocksAroundFlammable(world, pos); + } + + @Override + public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, net.minecraft.util.math.random.Random random) { + world.createAndScheduleBlockTick(pos, this, getFireTickDelay(world.random)); + + if (world.getGameRules().getBoolean(GameRules.DO_FIRE_TICK)) { + if (!state.canPlaceAt(world, pos)) { + world.removeBlock(pos, false); + } + + BlockState blockState = world.getBlockState(pos.down()); + boolean isAboveInfiniburnBlock = blockState.isIn(world.getDimension().infiniburn()) || blockState.isIn(SpectrumBlockTags.PRIMORDIAL_FIRE_BASE_BLOCKS); + if (!isAboveInfiniburnBlock && random.nextFloat() < 0.005F) { + world.removeBlock(pos, false); + } else { + if (!isAboveInfiniburnBlock) { + if (!this.areBlocksAroundFlammable(world, pos)) { + BlockPos blockPos = pos.down(); + if (!world.getBlockState(blockPos).isSideSolidFullSquare(world, blockPos, Direction.UP)) { + world.removeBlock(pos, false); + } + if (random.nextInt(10) == 0 && !this.isFlammable(world.getBlockState(pos.down()))) { + world.removeBlock(pos, false); + return; + } + return; + } + } + + this.trySpreadingFire(world, pos.east(), 300, random); + this.trySpreadingFire(world, pos.west(), 300, random); + this.trySpreadingFire(world, pos.down(), 250, random); + this.trySpreadingFire(world, pos.up(), 250, random); + this.trySpreadingFire(world, pos.north(), 300, random); + this.trySpreadingFire(world, pos.south(), 300, random); + BlockPos.Mutable mutable = new BlockPos.Mutable(); + + for (int x = -1; x <= 1; ++x) { + for (int z = -1; z <= 1; ++z) { + for (int y = -1; y <= 4; ++y) { + if (x != 0 || y != 0 || z != 0) { + int o = 100; + if (y > 1) { + o += (y - 1) * 100; + } + mutable.set(pos, x, y, z); + int burnChance = this.getBurnChance(world, mutable); + if (burnChance > 0) { + int q = (burnChance + 40 + world.getDifficulty().getId() * 7) / 30; + if (q > 0 && random.nextInt(o) <= q) { + world.setBlockState(mutable, getStateForPosition(world, mutable), 3); + } + } + } + } + } + } + } + } + } + + private int getSpreadChance(BlockState state) { + return state.contains(Properties.WATERLOGGED) && state.get(Properties.WATERLOGGED) ? 0 : FlammableBlockRegistry.getDefaultInstance().get(state.getBlock()).getSpreadChance(); + } + + private int getBurnChance(BlockState state) { + return state.contains(Properties.WATERLOGGED) && state.get(Properties.WATERLOGGED) ? 0 : FlammableBlockRegistry.getDefaultInstance().get(state.getBlock()).getBurnChance(); + } + + private void trySpreadingFire(World world, BlockPos pos, int spreadFactor, Random random) { + int spreadChance = this.getSpreadChance(world.getBlockState(pos)); + if (random.nextInt(spreadFactor) < spreadChance) { + BlockState blockState = world.getBlockState(pos); + if (random.nextBoolean()) { + world.setBlockState(pos, getStateForPosition(world, pos), 3); + } + Block block = blockState.getBlock(); + if (block instanceof TntBlock) { + TntBlock.primeTnt(world, pos); + } + } + } + + private boolean areBlocksAroundFlammable(BlockView world, BlockPos pos) { + for (Direction direction : Direction.values()) { + if (this.isFlammable(world.getBlockState(pos.offset(direction)))) { + return true; + } + } + return false; + } + + private int getBurnChance(WorldView world, BlockPos pos) { + if (!world.isAir(pos)) { + return 0; + } else { + int i = 0; + for (Direction direction : Direction.values()) { + BlockState blockState = world.getBlockState(pos.offset(direction)); + i = Math.max(this.getBurnChance(blockState), i); + } + return i; + } + } + + @Override + protected boolean isFlammable(BlockState state) { + return this.getBurnChance(state) > 0; + } + + @Override + public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify) { + super.onBlockAdded(state, world, pos, oldState, notify); + world.createAndScheduleBlockTick(pos, this, getFireTickDelay(world.random)); + } + + private static int getFireTickDelay(Random random) { + return 20 + random.nextInt(10); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/amphora/AmphoraBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/amphora/AmphoraBlock.java new file mode 100644 index 0000000000..cd39c0cb91 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/amphora/AmphoraBlock.java @@ -0,0 +1,62 @@ +package de.dafuqs.spectrum.blocks.amphora; + +import net.minecraft.block.BarrelBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.mob.PiglinBrain; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.stat.Stats; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +public class AmphoraBlock extends BarrelBlock { + + public AmphoraBlock(Settings settings) { + super(settings); + } + + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (world.isClient) { + return ActionResult.SUCCESS; + } else { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof AmphoraBlockEntity amphoraBlockEntity) { + player.openHandledScreen(amphoraBlockEntity); + player.incrementStat(Stats.OPEN_BARREL); + PiglinBrain.onGuardedBlockInteracted(player, true); + } + + return ActionResult.CONSUME; + } + } + + @Nullable + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new AmphoraBlockEntity(pos, state); + } + + public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof AmphoraBlockEntity amphoraBlockEntity) { + amphoraBlockEntity.tick(); + } + } + + public void onPlaced(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) { + if (itemStack.hasCustomName()) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof AmphoraBlockEntity amphoraBlockEntity) { + amphoraBlockEntity.setCustomName(itemStack.getName()); + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/amphora/AmphoraBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/amphora/AmphoraBlockEntity.java new file mode 100644 index 0000000000..2c56e49427 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/amphora/AmphoraBlockEntity.java @@ -0,0 +1,126 @@ +package de.dafuqs.spectrum.blocks.amphora; + +import de.dafuqs.spectrum.enums.ProgressionStage; +import de.dafuqs.spectrum.inventories.GenericSpectrumContainerScreenHandler; +import de.dafuqs.spectrum.registries.SpectrumBlockEntities; +import net.minecraft.block.BarrelBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.LootableContainerBlockEntity; +import net.minecraft.block.entity.ViewerCountManager; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.inventory.Inventories; +import net.minecraft.inventory.Inventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.screen.GenericContainerScreenHandler; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; +import net.minecraft.text.Text; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3i; +import net.minecraft.world.World; + +public class AmphoraBlockEntity extends LootableContainerBlockEntity { + + private DefaultedList inventory; + private final ViewerCountManager stateManager; + + public AmphoraBlockEntity(BlockPos pos, BlockState state) { + super(SpectrumBlockEntities.AMPHORA, pos, state); + + this.inventory = DefaultedList.ofSize(size(), ItemStack.EMPTY); + this.stateManager = new ViewerCountManager() { + protected void onContainerOpen(World world, BlockPos pos, BlockState state) { + playSound(state, SoundEvents.BLOCK_BARREL_OPEN); + setOpen(state, true); + } + + protected void onContainerClose(World world, BlockPos pos, BlockState state) { + playSound(state, SoundEvents.BLOCK_BARREL_CLOSE); + setOpen(state, false); + } + + protected void onViewerCountUpdate(World world, BlockPos pos, BlockState state, int oldViewerCount, int newViewerCount) { + } + + protected boolean isPlayerViewing(PlayerEntity player) { + if (player.currentScreenHandler instanceof GenericContainerScreenHandler) { + Inventory inventory = ((GenericContainerScreenHandler)player.currentScreenHandler).getInventory(); + return inventory == AmphoraBlockEntity.this; + } else { + return false; + } + } + }; + } + + protected void writeNbt(NbtCompound nbt) { + super.writeNbt(nbt); + if (!this.serializeLootTable(nbt)) { + Inventories.writeNbt(nbt, this.inventory); + } + } + + public void readNbt(NbtCompound nbt) { + super.readNbt(nbt); + this.inventory = DefaultedList.ofSize(this.size(), ItemStack.EMPTY); + if (!this.deserializeLootTable(nbt)) { + Inventories.readNbt(nbt, this.inventory); + } + } + + public int size() { + return 54; + } + + protected DefaultedList getInvStackList() { + return this.inventory; + } + + protected void setInvStackList(DefaultedList list) { + this.inventory = list; + } + + protected Text getContainerName() { + return Text.translatable("block.spectrum.amphora"); + } + + protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { + return GenericSpectrumContainerScreenHandler.createGeneric9x6(syncId, playerInventory, this, ProgressionStage.EARLYGAME); + } + + public void onOpen(PlayerEntity player) { + if (!this.removed && !player.isSpectator()) { + this.stateManager.openContainer(player, this.getWorld(), this.getPos(), this.getCachedState()); + } + } + + public void onClose(PlayerEntity player) { + if (!this.removed && !player.isSpectator()) { + this.stateManager.closeContainer(player, this.getWorld(), this.getPos(), this.getCachedState()); + } + } + + public void tick() { + if (!this.removed) { + this.stateManager.updateViewerCount(this.getWorld(), this.getPos(), this.getCachedState()); + } + } + + void setOpen(BlockState state, boolean open) { + this.world.setBlockState(this.getPos(), state.with(BarrelBlock.OPEN, open), 3); + } + + void playSound(BlockState state, SoundEvent soundEvent) { + Vec3i vec3i = (state.get(BarrelBlock.FACING)).getVector(); + double d = (double)this.pos.getX() + 0.5 + (double)vec3i.getX() / 2.0; + double e = (double)this.pos.getY() + 0.5 + (double)vec3i.getY() / 2.0; + double f = (double)this.pos.getZ() + 0.5 + (double)vec3i.getZ() / 2.0; + this.world.playSound(null, d, e, f, soundEvent, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/block_flooder/BlockFlooderBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/block_flooder/BlockFlooderBlock.java index c250013231..e5e102f17c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/block_flooder/BlockFlooderBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/block_flooder/BlockFlooderBlock.java @@ -16,10 +16,14 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3i; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; public class BlockFlooderBlock extends BlockWithEntity { @@ -79,7 +83,7 @@ private boolean calculateTargetBlockAndPropagate(BlockState state, World world, return false; } - Hashtable neighboringBlockAmounts = new Hashtable<>(); + Map neighboringBlockAmounts = new HashMap<>(); for (Direction direction : Direction.values()) { BlockPos targetBlockPos = pos.offset(direction); BlockState currentBlockState = world.getBlockState(targetBlockPos); @@ -102,7 +106,7 @@ private boolean calculateTargetBlockAndPropagate(BlockState state, World world, Block currentBlock = currentBlockState.getBlock(); if (currentBlockState.isSolidBlock(world, targetBlockPos)) { - if (neighboringBlockAmounts.contains(currentBlock)) { + if (neighboringBlockAmounts.containsKey(currentBlock)) { neighboringBlockAmounts.put(currentBlock, neighboringBlockAmounts.get(currentBlock) + 1); } else { neighboringBlockAmounts.put(currentBlock, 1); @@ -170,7 +174,7 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran PlayerEntity owner = PlayerOwned.getPlayerEntityIfOnline(blockFlooderBlockEntity.getOwnerUUID()); if (!owner.isCreative()) { List remainders = InventoryHelper.removeFromInventoryWithRemainders(new ItemStack(targetState.getBlock().asItem()), owner.getInventory()); - for(ItemStack remainder : remainders) { + for (ItemStack remainder : remainders) { owner.giveItemStack(remainder); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlock.java index 314bcc7963..2675649f52 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlock.java @@ -1,29 +1,26 @@ package de.dafuqs.spectrum.blocks.bottomless_bundle; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumItems; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.transfer.v1.item.*; import net.minecraft.block.*; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.piston.PistonBehavior; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContext; -import net.minecraft.loot.context.LootContextParameters; -import net.minecraft.text.MutableText; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import net.minecraft.block.entity.*; +import net.minecraft.block.piston.*; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.loot.context.*; +import net.minecraft.server.network.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; public class BottomlessBundleBlock extends BlockWithEntity { @@ -60,18 +57,31 @@ public PistonBehavior getPistonBehavior(BlockState state) { @Override public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if (!world.isClient && player.isSneaking()) { - world.getBlockEntity(pos, SpectrumBlockEntities.BOTTOMLESS_BUNDLE).ifPresent((bottomlessBundleBlockEntity) -> { - ItemStack itemStack = bottomlessBundleBlockEntity.retrieveVoidBundle(); - - world.setBlockState(pos, Blocks.AIR.getDefaultState()); - - ItemEntity itemEntity = new ItemEntity(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, itemStack); - itemEntity.setToDefaultPickupDelay(); - world.spawnEntity(itemEntity); - - itemEntity.onPlayerCollision(player); // auto pickup - }); + if (!world.isClient) { + if (player.isSneaking()) { + world.getBlockEntity(pos, SpectrumBlockEntities.BOTTOMLESS_BUNDLE).ifPresent((bottomlessBundleBlockEntity) -> { + ItemStack itemStack = bottomlessBundleBlockEntity.retrieveBundle(); + + world.setBlockState(pos, Blocks.AIR.getDefaultState()); + + ItemEntity itemEntity = new ItemEntity(world, (double) pos.getX() + 0.5D, (double) pos.getY() + 0.5D, (double) pos.getZ() + 0.5D, itemStack); + itemEntity.setToDefaultPickupDelay(); + world.spawnEntity(itemEntity); + + itemEntity.onPlayerCollision(player); // auto pickup + }); + } else { + world.getBlockEntity(pos, SpectrumBlockEntities.BOTTOMLESS_BUNDLE).ifPresent((bottomlessBundleBlockEntity) -> { + long amount = bottomlessBundleBlockEntity.storage.amount; + if (amount == 0) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("item.spectrum.bottomless_bundle.tooltip.empty"), false); + } else { + ItemVariant variant = bottomlessBundleBlockEntity.storage.variant; + long maxStoredAmount = BottomlessBundleItem.getMaxStoredAmount(bottomlessBundleBlockEntity.bottomlessBundleStack); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("item.spectrum.bottomless_bundle.tooltip.count_of", amount, maxStoredAmount).append(variant.getItem().getName()), false); + } + }); + } return ActionResult.CONSUME; } return ActionResult.SUCCESS; @@ -85,7 +95,7 @@ public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state) { public List getDroppedStacks(BlockState state, LootContext.Builder builder) { BlockEntity blockEntity = builder.getNullable(LootContextParameters.BLOCK_ENTITY); if (blockEntity instanceof BottomlessBundleBlockEntity bottomlessBundleBlockEntity) { - return List.of(bottomlessBundleBlockEntity.retrieveVoidBundle()); + return List.of(bottomlessBundleBlockEntity.retrieveBundle()); } else { return super.getDroppedStacks(state, builder); } @@ -96,14 +106,14 @@ public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity p if (!world.isClient) { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof BottomlessBundleBlockEntity bottomlessBundleBlockEntity) { - bottomlessBundleBlockEntity.setVoidBundle(itemStack.copy()); + bottomlessBundleBlockEntity.setBundle(itemStack.copy()); } } } @Override public MutableText getName() { - return new TranslatableText("item.spectrum.void_bundle"); + return Text.translatable("item.spectrum.bottomless_bundle"); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlockEntity.java index 1b37292425..96e83e7709 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleBlockEntity.java @@ -1,186 +1,95 @@ package de.dafuqs.spectrum.blocks.bottomless_bundle; -import de.dafuqs.spectrum.items.magic_items.BottomlessBundleItem; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.SidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.transfer.v1.item.*; +import net.fabricmc.fabric.api.transfer.v1.storage.base.*; +import net.fabricmc.fabric.api.transfer.v1.transaction.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.enchantment.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.util.math.*; +import org.jetbrains.annotations.*; -import java.util.Optional; +public class BottomlessBundleBlockEntity extends BlockEntity { -public class BottomlessBundleBlockEntity extends BlockEntity implements SidedInventory { - - protected final static int INPUT_SLOT_ID = 0; - protected final static int OUTPUT_SLOT_ID = 1; protected ItemStack bottomlessBundleStack; - protected ItemStack acceptedItemStack; // caching for performance and to prevent the bundle being emptied - // and then filled with different item type - protected ItemStack currentOutputStack; - + + public final SingleVariantStorage storage = new SingleVariantStorage<>() { + @Override + protected boolean canInsert(ItemVariant variant) { + ItemStack bundledStack = BottomlessBundleItem.getFirstBundledStack(bottomlessBundleStack); + return bundledStack.isEmpty() || variant.matches(bundledStack); + } + + @Override + public long insert(ItemVariant insertedVariant, long maxAmount, TransactionContext transaction) { + long inserted = super.insert(insertedVariant, maxAmount, transaction); + if (EnchantmentHelper.getLevel(SpectrumEnchantments.VOIDING, bottomlessBundleStack) > 0) { + return maxAmount; + } + return inserted; + } + + @Override + protected ItemVariant getBlankVariant() { + return ItemVariant.blank(); + } + + @Override + protected long getCapacity(ItemVariant variant) { + return BottomlessBundleItem.getMaxStoredAmount(bottomlessBundleStack); + } + + @Override + protected void onFinalCommit() { + super.onFinalCommit(); + markDirty(); + } + }; + public BottomlessBundleBlockEntity(BlockPos pos, BlockState state) { super(SpectrumBlockEntities.BOTTOMLESS_BUNDLE, pos, state); this.bottomlessBundleStack = ItemStack.EMPTY; - this.acceptedItemStack = ItemStack.EMPTY; - this.currentOutputStack = ItemStack.EMPTY; } - + @Override public void readNbt(NbtCompound nbt) { super.readNbt(nbt); - - NbtList nbtList = nbt.getList("Items", 10); - for (int i = 0; i < nbtList.size(); ++i) { - NbtCompound nbtCompound = nbtList.getCompound(i); - int j = nbtCompound.getByte("Slot") & 255; - if (j == 0) { - this.bottomlessBundleStack = ItemStack.fromNbt(nbtCompound); - this.acceptedItemStack = BottomlessBundleItem.getFirstBundledStack(bottomlessBundleStack); - } else { - this.currentOutputStack = ItemStack.fromNbt(nbtCompound); - } - } + this.bottomlessBundleStack = ItemStack.fromNbt(nbt.getCompound("Bundle")); + + this.storage.variant = ItemVariant.fromNbt(nbt.getCompound("StorageVariant")); + this.storage.amount = nbt.getLong("StorageCount"); } @Override protected void writeNbt(NbtCompound nbt) { super.writeNbt(nbt); - bottomlessBundleStack.writeNbt(nbt); - currentOutputStack.writeNbt(nbt); - - NbtList nbtList = new NbtList(); - - NbtCompound nbtCompound = new NbtCompound(); - nbtCompound.putByte("Slot", (byte) 0); - bottomlessBundleStack.writeNbt(nbtCompound); - nbtList.add(nbtCompound); - - NbtCompound nbtCompound2 = new NbtCompound(); - nbtCompound2.putByte("Slot", (byte) 1); - currentOutputStack.writeNbt(nbtCompound2); - nbtList.add(nbtCompound2); - - nbt.put("Items", nbtList); + + NbtCompound bundleCompound = new NbtCompound(); + bottomlessBundleStack.writeNbt(bundleCompound); + nbt.put("Bundle", bundleCompound); + + nbt.put("StorageVariant", this.storage.variant.toNbt()); + nbt.putLong("StorageCount", this.storage.amount); } - - public void setVoidBundle(@NotNull ItemStack itemStack) { + + public void setBundle(@NotNull ItemStack itemStack) { if (itemStack.getItem() instanceof BottomlessBundleItem) { this.bottomlessBundleStack = itemStack; - this.acceptedItemStack = BottomlessBundleItem.getFirstBundledStack(itemStack); + this.storage.variant = ItemVariant.of(BottomlessBundleItem.getFirstBundledStack(itemStack)); + this.storage.amount = BottomlessBundleItem.getStoredAmount(itemStack); } } - - public ItemStack retrieveVoidBundle() { + + public ItemStack retrieveBundle() { if (this.bottomlessBundleStack.isEmpty()) { return SpectrumItems.BOTTOMLESS_BUNDLE.getDefaultStack(); } else { - BottomlessBundleItem.addToBundle(this.bottomlessBundleStack, this.currentOutputStack); + BottomlessBundleItem.setBundledStack(this.bottomlessBundleStack, this.storage.getResource().toStack(), (int) this.storage.amount); return this.bottomlessBundleStack; } } - @Override - public int[] getAvailableSlots(Direction side) { - if (side == Direction.DOWN) { - return new int[]{OUTPUT_SLOT_ID}; - } else { - return new int[]{INPUT_SLOT_ID}; - } - } - - @Override - public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { - return slot == 0 && stack.getItem().canBeNested() - && (this.acceptedItemStack.isEmpty() || ItemStack.canCombine(stack, this.acceptedItemStack)) - && BottomlessBundleItem.getStoredAmount(this.bottomlessBundleStack) + this.currentOutputStack.getCount() < BottomlessBundleItem.getMaxStoredAmount(this.bottomlessBundleStack); - } - - @Override - public boolean canExtract(int slot, ItemStack stack, Direction dir) { - return slot == 1; - } - - @Override - public int size() { - return 2; - } - - @Override - public boolean isEmpty() { - return BottomlessBundleItem.getStoredAmount(this.bottomlessBundleStack) == 0 && this.currentOutputStack.getCount() == 0; - } - - @Override - public ItemStack getStack(int slot) { - if (slot == 0) { - return ItemStack.EMPTY; - } else { - this.markDirty(); - if (currentOutputStack.isEmpty()) { - Optional newStack = BottomlessBundleItem.removeFirstBundledStack(this.bottomlessBundleStack); - if (newStack.isPresent()) { - currentOutputStack = newStack.get(); - } else { - currentOutputStack = ItemStack.EMPTY; - } - } - return currentOutputStack; - } - } - - @Override - public ItemStack removeStack(int slot, int amount) { - if (slot == 0) { - return ItemStack.EMPTY; - } else { - this.markDirty(); - return this.currentOutputStack.split(amount); - } - } - - @Override - public ItemStack removeStack(int slot) { - if (slot == 1) { - ItemStack removedStack = this.currentOutputStack; - this.currentOutputStack = ItemStack.EMPTY; - if (!removedStack.isEmpty()) { - this.markDirty(); - } - return removedStack; - } else { - return ItemStack.EMPTY; - } - } - - @Override - public void setStack(int slot, ItemStack stack) { - if (slot == 0) { - if (this.acceptedItemStack.isEmpty()) { - this.acceptedItemStack = stack; - } - BottomlessBundleItem.addToBundle(this.bottomlessBundleStack, stack); - this.markDirty(); - } else { - this.currentOutputStack = stack; - } - } - - @Override - public boolean canPlayerUse(PlayerEntity player) { - return false; - } - - @Override - public void clear() { - - } - } diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/BottomlessBundleItem.java b/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleItem.java similarity index 83% rename from src/main/java/de/dafuqs/spectrum/items/magic_items/BottomlessBundleItem.java rename to src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleItem.java index d2e78b7e41..e806bff061 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/BottomlessBundleItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/bottomless_bundle/BottomlessBundleItem.java @@ -1,50 +1,34 @@ -package de.dafuqs.spectrum.items.magic_items; +package de.dafuqs.spectrum.blocks.bottomless_bundle; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.enchanter.EnchanterEnchantable; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.InventoryInsertionAcceptor; -import de.dafuqs.spectrum.items.tooltip.VoidBundleTooltipData; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumEnchantments; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.advancement.criterion.Criteria; -import net.minecraft.block.BlockState; -import net.minecraft.block.DispenserBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.dispenser.FallibleItemDispenserBehavior; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.client.item.TooltipData; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.StackReference; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.enchanter.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.items.tooltip.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.block.*; +import net.minecraft.block.dispenser.*; +import net.minecraft.client.item.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; import net.minecraft.item.*; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.screen.slot.Slot; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.stat.Stats; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; +import net.minecraft.nbt.*; +import net.minecraft.screen.slot.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.stat.*; +import net.minecraft.text.*; import net.minecraft.util.*; -import net.minecraft.util.math.BlockPointer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import org.jetbrains.annotations.Nullable; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.Optional; +import java.util.*; public class BottomlessBundleItem extends BundleItem implements InventoryInsertionAcceptor, EnchanterEnchantable { @@ -141,7 +125,7 @@ private static ItemStack getFirstBundledStack(NbtCompound nbtCompound) { ItemStack itemStack = new ItemStack(Registry.ITEM.get(new Identifier(storedItemCompound.getString("ID")))); int stackAmount = Math.min(storedAmount, itemStack.getMaxCount()); itemStack.setCount(stackAmount); - + if (storedItemCompound.contains("Tag", 10)) { itemStack.setNbt(storedItemCompound.getCompound("Tag")); } @@ -150,33 +134,59 @@ private static ItemStack getFirstBundledStack(NbtCompound nbtCompound) { } return itemStack; } - - private static int bundleStack(ItemStack voidBundleStack, ItemStack storedItemStack) { - return bundleStack(voidBundleStack, storedItemStack, storedItemStack.getCount()); + + private static int bundleStack(ItemStack voidBundleStack, ItemStack stackToBundle) { + return bundleStack(voidBundleStack, stackToBundle, stackToBundle.getCount()); } - - private static int bundleStack(ItemStack voidBundleStack, ItemStack storedItemStack, int amount) { + + private static int bundleStack(ItemStack voidBundleStack, ItemStack stackToBundle, int amount) { NbtCompound voidBundleCompound = voidBundleStack.getOrCreateNbt(); NbtCompound storedItemCompound = new NbtCompound(); - + boolean hasVoiding = EnchantmentHelper.getLevel(SpectrumEnchantments.VOIDING, voidBundleStack) > 0; int maxStoredAmount = getMaxStoredAmount(voidBundleStack); int newAmount = Math.min(maxStoredAmount, storedItemCompound.getInt("Count") + amount); int overflowAmount = hasVoiding ? 0 : Math.max(0, amount - maxStoredAmount); - - Identifier identifier = Registry.ITEM.getId(storedItemStack.getItem()); + + Identifier identifier = Registry.ITEM.getId(stackToBundle.getItem()); storedItemCompound.putString("ID", identifier.toString()); storedItemCompound.putInt("Count", newAmount); - if (storedItemStack.getNbt() != null) { - storedItemCompound.put("Tag", storedItemStack.getNbt().copy()); + if (stackToBundle.getNbt() != null) { + storedItemCompound.put("Tag", stackToBundle.getNbt().copy()); } - + voidBundleCompound.put("StoredStack", storedItemCompound); voidBundleStack.setNbt(voidBundleCompound); - + return overflowAmount; } - + + protected static int setBundledStack(ItemStack voidBundleStack, ItemStack stackToBundle, int amount) { + if (stackToBundle.isEmpty() || amount <= 0) { + voidBundleStack.removeSubNbt("StoredStack"); + return 0; + } else { + NbtCompound voidBundleCompound = voidBundleStack.getOrCreateNbt(); + NbtCompound storedItemCompound = new NbtCompound(); + boolean hasVoiding = EnchantmentHelper.getLevel(SpectrumEnchantments.VOIDING, voidBundleStack) > 0; + int maxStoredAmount = getMaxStoredAmount(voidBundleStack); + int newAmount = Math.min(maxStoredAmount, amount); + int overflowAmount = hasVoiding ? 0 : Math.max(0, amount - maxStoredAmount); + + Identifier identifier = Registry.ITEM.getId(stackToBundle.getItem()); + storedItemCompound.putString("ID", identifier.toString()); + storedItemCompound.putInt("Count", newAmount); + if (stackToBundle.getNbt() != null) { + storedItemCompound.put("Tag", stackToBundle.getNbt().copy()); + } + + voidBundleCompound.put("StoredStack", storedItemCompound); + voidBundleStack.setNbt(voidBundleCompound); + + return overflowAmount; + } + } + public static int getStoredAmount(ItemStack voidBundleStack) { NbtCompound voidBundleCompound = voidBundleStack.getOrCreateNbt(); if (voidBundleCompound.contains("StoredStack")) { @@ -207,17 +217,17 @@ private static void removeBundledStackAmount(ItemStack voidBundleStack, int amou public TypedActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack itemStack = user.getStackInHand(hand); - if(user.isSneaking()) { + if (user.isSneaking()) { ItemStack handStack = user.getStackInHand(hand); NbtCompound compound = handStack.getOrCreateNbt(); if (compound.contains("Locked")) { compound.remove("Locked"); - if(world.isClient) { + if (world.isClient) { plaZipSound(user, 0.8F); } } else { compound.putBoolean("Locked", true); - if(world.isClient) { + if (world.isClient) { plaZipSound(user, 1.0F); } } @@ -322,22 +332,22 @@ public void appendTooltip(ItemStack stack, World world, List tooltip, Tool boolean locked = isLocked(stack); int storedAmount = getStoredAmount(stack); if (storedAmount == 0) { - tooltip.add(new TranslatableText("item.spectrum.void_bundle.tooltip.empty").formatted(Formatting.GRAY)); - if(locked) { - tooltip.add(new TranslatableText("item.spectrum.void_bundle.tooltip.locked").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.bottomless_bundle.tooltip.empty").formatted(Formatting.GRAY)); + if (locked) { + tooltip.add(Text.translatable("item.spectrum.bottomless_bundle.tooltip.locked").formatted(Formatting.GRAY)); } } else { ItemStack firstStack = getFirstBundledStack(stack); String totalStacks = Support.getShortenedNumberString(storedAmount / (float) firstStack.getMaxCount()); - tooltip.add(new TranslatableText("item.spectrum.void_bundle.tooltip.count", storedAmount, getMaxStoredAmount(stack), totalStacks).formatted(Formatting.GRAY)); - if(locked) { - tooltip.add(new TranslatableText("item.spectrum.void_bundle.tooltip.locked").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.bottomless_bundle.tooltip.count", storedAmount, getMaxStoredAmount(stack), totalStacks).formatted(Formatting.GRAY)); + if (locked) { + tooltip.add(Text.translatable("item.spectrum.bottomless_bundle.tooltip.locked").formatted(Formatting.GRAY)); } else { - tooltip.add(new TranslatableText("item.spectrum.void_bundle.tooltip.enter_inventory", firstStack.getName().getString()).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.bottomless_bundle.tooltip.enter_inventory", firstStack.getName().getString()).formatted(Formatting.GRAY)); } } if (EnchantmentHelper.getLevel(SpectrumEnchantments.VOIDING, stack) > 0) { - tooltip.add(new TranslatableText("item.spectrum.void_bundle.tooltip.voiding")); + tooltip.add(Text.translatable("item.spectrum.bottomless_bundle.tooltip.voiding")); } } @@ -440,7 +450,7 @@ public boolean acceptsItemStack(ItemStack inventoryInsertionAcceptorStack, ItemS @Override public int acceptItemStack(ItemStack inventoryInsertionAcceptorStack, ItemStack itemStackToAccept, PlayerEntity playerEntity) { - if(isLocked(inventoryInsertionAcceptorStack)) { + if (isLocked(inventoryInsertionAcceptorStack)) { return itemStackToAccept.getCount(); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlock.java new file mode 100644 index 0000000000..22df5a41c6 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlock.java @@ -0,0 +1,57 @@ +package de.dafuqs.spectrum.blocks.chests; + +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.screen.*; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.event.listener.*; +import org.jetbrains.annotations.*; + +public class BlackHoleChestBlock extends SpectrumChestBlock { + + protected static final VoxelShape SHAPE = Block.createCuboidShape(1.0D, 0.0D, 1.0D, 15.0D, 12.0D, 15.0D); + + public BlackHoleChestBlock(Settings settings) { + super(settings); + } + + @Nullable + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new BlackHoleChestBlockEntity(pos, state); + } + + @Override + @Nullable + public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { + return checkType(type, SpectrumBlockEntities.BLACK_HOLE_CHEST, BlackHoleChestBlockEntity::tick); + } + + public void openScreen(World world, BlockPos pos, PlayerEntity player) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof BlackHoleChestBlockEntity) { + if (!isChestBlocked(world, pos)) { + player.openHandledScreen((NamedScreenHandlerFactory) blockEntity); + } + } + } + + @Override + @Nullable + public GameEventListener getGameEventListener(ServerWorld world, T blockEntity) { + return blockEntity instanceof BlackHoleChestBlockEntity blackHoleChestBlockEntity ? blackHoleChestBlockEntity.getEventListener() : null; + } + + public BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.MODEL; + } + + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlockEntity.java new file mode 100644 index 0000000000..2df99d3b3b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlockEntity.java @@ -0,0 +1,239 @@ +package de.dafuqs.spectrum.blocks.chests; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.events.listeners.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.screenhandler.v1.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import net.minecraft.world.event.listener.*; +import org.jetbrains.annotations.*; + +import java.util.*; +import java.util.stream.*; + +public class BlackHoleChestBlockEntity extends SpectrumChestBlockEntity implements ExtendedScreenHandlerFactory, SidedInventory, EventQueue.Callback { + + public static final int INVENTORY_SIZE = 28; + public static final int ITEM_FILTER_SLOT_COUNT = 5; + public static final int EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT = 27; + private static final int RANGE = 12; + private final ItemAndExperienceEventQueue itemAndExperienceEventQueue; + private final List filterItems; + + public BlackHoleChestBlockEntity(BlockPos blockPos, BlockState blockState) { + super(SpectrumBlockEntities.BLACK_HOLE_CHEST, blockPos, blockState); + this.itemAndExperienceEventQueue = new ItemAndExperienceEventQueue(new BlockPositionSource(this.pos), RANGE, this); + this.filterItems = DefaultedList.ofSize(ITEM_FILTER_SLOT_COUNT, Items.AIR); + } + + public static void tick(@NotNull World world, BlockPos pos, BlockState state, BlackHoleChestBlockEntity blockEntity) { + if (world.isClient) { + blockEntity.lidAnimator.step(); + } else { + blockEntity.itemAndExperienceEventQueue.tick(world); + if (world.getTime() % 80 == 0 && !SpectrumChestBlock.isChestBlocked(world, pos)) { + searchForNearbyEntities(blockEntity); + } + } + } + + private static void searchForNearbyEntities(@NotNull BlackHoleChestBlockEntity blockEntity) { + List itemEntities = blockEntity.world.getEntitiesByType(EntityType.ITEM, getBoxWithRadius(blockEntity.pos, RANGE), Entity::isAlive); + for (ItemEntity itemEntity : itemEntities) { + if (itemEntity.isAlive() && !itemEntity.getStack().isEmpty()) { + itemEntity.emitGameEvent(SpectrumGameEvents.ENTITY_SPAWNED); + } + } + + List experienceOrbEntities = blockEntity.world.getEntitiesByType(EntityType.EXPERIENCE_ORB, getBoxWithRadius(blockEntity.pos, RANGE), Entity::isAlive); + for (ExperienceOrbEntity experienceOrbEntity : experienceOrbEntities) { + if (experienceOrbEntity.isAlive()) { + experienceOrbEntity.emitGameEvent(SpectrumGameEvents.ENTITY_SPAWNED); + } + } + } + + @Contract("_, _ -> new") + protected static @NotNull Box getBoxWithRadius(BlockPos blockPos, int radius) { + return Box.of(Vec3d.ofCenter(blockPos), radius, radius, radius); + } + + protected Text getContainerName() { + return Text.translatable("block.spectrum.black_hole_chest"); + } + + @Override + protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { + return new BlackHoleChestScreenHandler(syncId, playerInventory, this); + } + + public void writeNbt(NbtCompound tag) { + super.writeNbt(tag); + for (int i = 0; i < ITEM_FILTER_SLOT_COUNT; i++) { + tag.putString("Filter" + i, Registry.ITEM.getId(this.filterItems.get(i)).toString()); + } + } + + public void readNbt(NbtCompound tag) { + super.readNbt(tag); + for (int i = 0; i < ITEM_FILTER_SLOT_COUNT; i++) { + if (tag.contains("Filter" + i, NbtElement.STRING_TYPE)) { + this.filterItems.set(i, Registry.ITEM.get(new Identifier(tag.getString("Filter" + i)))); + } + } + } + + @Override + public int size() { + return 27 + 1; // 3 rows, 1 knowledge gem, 5 item filters (they are not real slots, though) + } + + public ItemAndExperienceEventQueue getEventListener() { + return this.itemAndExperienceEventQueue; + } + + @Override + public boolean canAcceptEvent(World world, GameEventListener listener, GameEvent.Message event, Vec3d sourcePos) { + if (SpectrumChestBlock.isChestBlocked(world, this.pos)) { + return false; + } + Entity entity = event.getEmitter().sourceEntity(); + if (entity instanceof ItemEntity) { + return true; + } + return entity instanceof ExperienceOrbEntity && hasExperienceStorageItem(); + } + + @Override + public void triggerEvent(World world, GameEventListener listener, Object entry) { + if (SpectrumChestBlock.isChestBlocked(world, pos)) { + return; + } + + if (entry instanceof ExperienceOrbEventQueue.EventEntry experienceEntry) { + ExperienceOrbEntity experienceOrbEntity = experienceEntry.experienceOrbEntity; + if (experienceOrbEntity != null && experienceOrbEntity.isAlive() && hasExperienceStorageItem()) { + ExperienceStorageItem.addStoredExperience(this.inventory.get(EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT), experienceOrbEntity.getExperienceAmount()); // overflow experience is void, to not lag the world on large farms + + sendPlayExperienceOrbEntityAbsorbedParticle((ServerWorld) world, experienceOrbEntity); + world.playSound(null, experienceOrbEntity.getBlockPos(), SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.BLOCKS, 0.9F + this.world.random.nextFloat() * 0.2F, 0.9F + this.world.random.nextFloat() * 0.2F); + experienceOrbEntity.remove(Entity.RemovalReason.DISCARDED); + } + } else if (entry instanceof ItemEntityEventQueue.EventEntry itemEntry) { + ItemEntity itemEntity = itemEntry.itemEntity; + if (itemEntity != null && itemEntity.isAlive() && acceptsItemStack(itemEntity.getStack())) { + int previousAmount = itemEntity.getStack().getCount(); + ItemStack remainingStack = InventoryHelper.smartAddToInventory(itemEntity.getStack(), this, Direction.UP); + + if (remainingStack.isEmpty()) { + sendPlayItemEntityAbsorbedParticle((ServerWorld) world, itemEntity); + world.playSound(null, itemEntity.getBlockPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.9F + this.world.random.nextFloat() * 0.2F, 0.9F + this.world.random.nextFloat() * 0.2F); + itemEntity.setStack(ItemStack.EMPTY); + itemEntity.discard(); + } else { + if (remainingStack.getCount() != previousAmount) { + sendPlayItemEntityAbsorbedParticle((ServerWorld) world, itemEntity); + world.playSound(null, itemEntity.getBlockPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.9F + this.world.random.nextFloat() * 0.2F, 0.9F + this.world.random.nextFloat() * 0.2F); + itemEntity.setStack(remainingStack); + } + } + } + } + } + + public static void sendPlayItemEntityAbsorbedParticle(ServerWorld world, @NotNull ItemEntity itemEntity) { + SpectrumS2CPacketSender.playParticleWithExactVelocity(world, itemEntity.getPos(), + SpectrumParticleTypes.BLUE_BUBBLE_POP, + 1, Vec3d.ZERO); + } + + public static void sendPlayExperienceOrbEntityAbsorbedParticle(ServerWorld world, @NotNull ExperienceOrbEntity experienceOrbEntity) { + SpectrumS2CPacketSender.playParticleWithExactVelocity(world, experienceOrbEntity.getPos(), + SpectrumParticleTypes.GREEN_BUBBLE_POP, + 1, Vec3d.ZERO); + } + + @Override + public SoundEvent getOpenSound() { + return SpectrumSoundEvents.BLACK_HOLE_CHEST_OPEN; + } + + @Override + public SoundEvent getCloseSound() { + return SpectrumSoundEvents.BLACK_HOLE_CHEST_CLOSE; + } + + @Override + public void writeScreenOpeningData(ServerPlayerEntity player, PacketByteBuf buf) { + buf.writeBlockPos(this.pos); + FilterConfigurable.writeScreenOpeningData(buf, filterItems); + } + + public List getItemFilters() { + return this.filterItems; + } + + public void setFilterItem(int slot, Item item) { + this.filterItems.set(slot, item); + this.markDirty(); + } + + public boolean acceptsItemStack(ItemStack itemStack) { + if (itemStack.isEmpty()) { + return false; + } + + boolean allAir = true; + for (int i = 0; i < ITEM_FILTER_SLOT_COUNT; i++) { + Item filterItem = this.filterItems.get(i); + if (filterItem.equals(itemStack.getItem())) { + return true; + } else if (!filterItem.equals(Items.AIR)) { + allAir = false; + } + } + return allAir; + } + + public boolean hasExperienceStorageItem() { + return this.inventory.get(EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT).getItem() instanceof ExperienceStorageItem; + } + + @Override + public int[] getAvailableSlots(Direction side) { + return IntStream.rangeClosed(0, EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT - 1).toArray(); + } + + @Override + public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { + return true; + } + + @Override + public boolean canExtract(int slot, ItemStack stack, Direction dir) { + return true; + } +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlockEntityRenderer.java new file mode 100644 index 0000000000..8efc7de731 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/BlackHoleChestBlockEntityRenderer.java @@ -0,0 +1,50 @@ +package de.dafuqs.spectrum.blocks.chests; + +import de.dafuqs.spectrum.*; +import net.fabricmc.api.*; +import net.minecraft.client.model.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.block.entity.*; +import net.minecraft.client.texture.*; +import net.minecraft.client.util.*; +import net.minecraft.client.util.math.*; +import org.jetbrains.annotations.*; + +@Environment(EnvType.CLIENT) +public class BlackHoleChestBlockEntityRenderer implements BlockEntityRenderer { + + private static final SpriteIdentifier spriteIdentifier = new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, SpectrumCommon.locate("block/black_block")); + private final ModelPart root; + + public BlackHoleChestBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { + TexturedModelData texturedModelData = getTexturedModelData(); + root = texturedModelData.createModel(); + } + + public static @NotNull TexturedModelData getTexturedModelData() { + ModelData modelData = new ModelData(); + ModelPartData modelPartData = modelData.getRoot(); + modelPartData.addChild("lid", ModelPartBuilder.create().uv(1, 1).cuboid(5.0F, 7.0F, 5.0F, 6.0F, 3.0F, 6.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + modelPartData.addChild("lid2", ModelPartBuilder.create().uv(1, 1).cuboid(7.0F, 4.0F, 7.0F, 2.0F, 3.0F, 2.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); + return TexturedModelData.of(modelData, 32, 32); + } + + @Override + public void render(BlackHoleChestBlockEntity entity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumers, int light, int overlay) { + matrixStack.push(); + matrixStack.translate(0.5D, 0.5D, 0.5D); + matrixStack.translate(-0.5D, -0.5D, -0.5D); + + float openFactor = entity.getAnimationProgress(tickDelta); + openFactor = 1.0F - openFactor; + openFactor = 1.0F - openFactor * openFactor * openFactor; + + root.pivotY = openFactor * 5; + + VertexConsumer vertexConsumer = spriteIdentifier.getVertexConsumer(vertexConsumers, RenderLayer::getEntityCutout); + root.render(matrixStack, vertexConsumer, light, overlay); + + matrixStack.pop(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/CompactingChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/CompactingChestBlockEntity.java index 1d29dffcf4..75d946135a 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/CompactingChestBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/CompactingChestBlockEntity.java @@ -19,7 +19,6 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Pair; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; @@ -127,7 +126,7 @@ public static void clearCache() { } protected Text getContainerName() { - return new TranslatableText("block.spectrum.compacting_chest"); + return Text.translatable("block.spectrum.compacting_chest"); } public void readNbt(NbtCompound tag) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlock.java index b699dc7356..a45d01abb5 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlock.java @@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable; public class PrivateChestBlock extends SpectrumChestBlock { - + public PrivateChestBlock(Settings settings) { super(settings); } @@ -97,7 +97,7 @@ public float calcBlockBreakingDelta(BlockState state, PlayerEntity player, Block if (privateChestBlockEntity.canBreak(player.getUuid())) { float hardness = 20.0F; int i = player.canHarvest(state) ? 30 : 100; - return player.getBlockBreakingSpeed(state) / hardness / (float)i; + return player.getBlockBreakingSpeed(state) / hardness / (float) i; } } return -1; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlockEntity.java index b2269fa56f..afccff3f82 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/PrivateChestBlockEntity.java @@ -1,26 +1,24 @@ package de.dafuqs.spectrum.blocks.chests; -import de.dafuqs.spectrum.enums.ProgressionStage; -import de.dafuqs.spectrum.interfaces.PlayerOwnedWithName; -import de.dafuqs.spectrum.inventories.GenericSpectrumContainerScreenHandler; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.SidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.text.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.UUID; +import java.util.*; public class PrivateChestBlockEntity extends SpectrumChestBlockEntity implements SidedInventory, PlayerOwnedWithName { @@ -37,8 +35,8 @@ public static int getPlayersLookingInChestCount(BlockView world, BlockPos pos) { BlockState blockState = world.getBlockState(pos); if (blockState.hasBlockEntity()) { BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof PrivateChestBlockEntity) { - return ((PrivateChestBlockEntity) blockEntity).stateManager.getViewerCount(); + if (blockEntity instanceof PrivateChestBlockEntity privateChestBlockEntity) { + return privateChestBlockEntity.stateManager.getViewerCount(); } } return 0; @@ -63,9 +61,9 @@ public void updateRedstone(BlockPos pos, BlockState state) { protected Text getContainerName() { if (hasOwner()) { - return new TranslatableText("block.spectrum.private_chest").append(new TranslatableText("container.spectrum.owned_by_player", this.ownerName)); + return Text.translatable("block.spectrum.private_chest").append(Text.translatable("container.spectrum.owned_by_player", this.ownerName)); } else { - return new TranslatableText("block.spectrum.private_chest"); + return Text.translatable("block.spectrum.private_chest"); } } @@ -131,7 +129,7 @@ public String getOwnerName() { @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); - this.ownerName = playerEntity.getName().asString(); + this.ownerName = playerEntity.getName().getString(); } @Override @@ -141,7 +139,7 @@ public boolean checkUnlocked(PlayerEntity player) { if (!isOwner && this.world != null) { this.lastNonOwnerOpenedTick = this.world.getTime(); updateRedstone(this.pos, this.world.getBlockState(pos)); - player.sendMessage(new TranslatableText("block.spectrum.private_chest.title_with_owner", this.getOwnerName()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.private_chest").append(Text.translatable("container.spectrum.owned_by_player", this.ownerName)), false); } return isOwner; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/RestockingChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/RestockingChestBlockEntity.java index 0f9ce0cb71..1c4abac1c4 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/RestockingChestBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/RestockingChestBlockEntity.java @@ -16,7 +16,6 @@ import net.minecraft.recipe.ShapelessRecipe; import net.minecraft.screen.ScreenHandler; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -69,7 +68,7 @@ private static boolean tickCooldown(RestockingChestBlockEntity restockingChestBl } protected Text getContainerName() { - return new TranslatableText("block.spectrum.restocking_chest"); + return Text.translatable("block.spectrum.restocking_chest"); } @Override @@ -98,7 +97,7 @@ private boolean tryCraft(RestockingChestBlockEntity restockingChestBlockEntity, currentItemStack.increment(outputItemStack.getCount()); } - for(ItemStack remainder : remainders) { + for (ItemStack remainder : remainders) { InventoryHelper.smartAddToInventory(remainder, restockingChestBlockEntity, null); } return true; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlock.java index 0b51850495..8c72397219 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlock.java @@ -16,13 +16,12 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -import java.util.Random; - import static net.minecraft.client.render.TexturedRenderLayers.CHEST_ATLAS_TEXTURE; public abstract class SpectrumChestBlock extends BlockWithEntity { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntity.java index ed83d134a6..de5908412b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntity.java @@ -1,38 +1,24 @@ package de.dafuqs.spectrum.blocks.chests; -import de.dafuqs.spectrum.inventories.CompactingChestScreenHandler; -import de.dafuqs.spectrum.inventories.RestockingChestScreenHandler; -import de.dafuqs.spectrum.inventories.SuckingChestScreenHandler; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.api.EnvironmentInterface; -import net.fabricmc.api.EnvironmentInterfaces; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.block.entity.ChestLidAnimator; -import net.minecraft.block.entity.LootableContainerBlockEntity; -import net.minecraft.block.entity.ViewerCountManager; -import net.minecraft.client.block.ChestAnimationProgress; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventories; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.screen.GenericContainerScreenHandler; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import de.dafuqs.spectrum.inventories.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.screen.*; +import net.minecraft.sound.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; @EnvironmentInterfaces({@EnvironmentInterface( value = EnvType.CLIENT, - itf = ChestAnimationProgress.class + itf = LidOpenable.class )}) -public abstract class SpectrumChestBlockEntity extends LootableContainerBlockEntity implements ChestAnimationProgress { +public abstract class SpectrumChestBlockEntity extends LootableContainerBlockEntity implements LidOpenable { public final ViewerCountManager stateManager; protected final ChestLidAnimator lidAnimator; @@ -66,8 +52,8 @@ protected boolean isPlayerViewing(PlayerEntity player) { inventory = ((GenericContainerScreenHandler) screenHandler).getInventory(); } else if (screenHandler instanceof RestockingChestScreenHandler restockingChestScreenHandler) { inventory = restockingChestScreenHandler.getInventory(); - } else if (screenHandler instanceof SuckingChestScreenHandler suckingChestScreenHandler) { - inventory = suckingChestScreenHandler.getInventory(); + } else if (screenHandler instanceof BlackHoleChestScreenHandler blackHoleChestScreenHandler) { + inventory = blackHoleChestScreenHandler.getInventory(); } else if (screenHandler instanceof CompactingChestScreenHandler compactingChestScreenHandler) { inventory = compactingChestScreenHandler.getInventory(); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntityRenderer.java index 9fadaeab89..6407782b4c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/chests/SpectrumChestBlockEntityRenderer.java @@ -7,7 +7,7 @@ import net.minecraft.block.BlockState; import net.minecraft.block.ChestBlock; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.block.ChestAnimationProgress; +import net.minecraft.block.entity.LidOpenable; import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; @@ -21,7 +21,7 @@ import net.minecraft.world.World; @Environment(EnvType.CLIENT) -public class SpectrumChestBlockEntityRenderer implements BlockEntityRenderer { +public class SpectrumChestBlockEntityRenderer implements BlockEntityRenderer { protected final ModelPart singleChestLid; protected final ModelPart singleChestBase; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlock.java deleted file mode 100644 index ba04c2de58..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlock.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.dafuqs.spectrum.blocks.chests; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.Block; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.Nullable; - -public class SuckingChestBlock extends SpectrumChestBlock { - - protected static final VoxelShape SHAPE = Block.createCuboidShape(1.0D, 0.0D, 1.0D, 15.0D, 12.0D, 15.0D); - - public SuckingChestBlock(Settings settings) { - super(settings); - } - - @Nullable - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new SuckingChestBlockEntity(pos, state); - } - - @Override - @Nullable - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return checkType(type, SpectrumBlockEntities.SUCKING_CHEST, SuckingChestBlockEntity::tick); - } - - public void openScreen(World world, BlockPos pos, PlayerEntity player) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof SuckingChestBlockEntity) { - if (!isChestBlocked(world, pos)) { - player.openHandledScreen((NamedScreenHandlerFactory) blockEntity); - } - } - } - - @Nullable - public GameEventListener getGameEventListener(World world, T blockEntity) { - return blockEntity instanceof SuckingChestBlockEntity suckingChestBlockEntity ? suckingChestBlockEntity.getEventListener() : null; - } - - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return SHAPE; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlockEntity.java deleted file mode 100644 index fa8da4844c..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlockEntity.java +++ /dev/null @@ -1,244 +0,0 @@ -package de.dafuqs.spectrum.blocks.chests; - -import de.dafuqs.spectrum.events.SpectrumGameEvents; -import de.dafuqs.spectrum.events.listeners.EventQueue; -import de.dafuqs.spectrum.events.listeners.ExperienceOrbEventQueue; -import de.dafuqs.spectrum.events.listeners.ItemAndExperienceEventQueue; -import de.dafuqs.spectrum.events.listeners.ItemEntityEventQueue; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.inventories.SuckingChestScreenHandler; -import de.dafuqs.spectrum.items.ExperienceStorageItem; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; -import net.minecraft.block.BlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.ExperienceOrbEntity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.SidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import net.minecraft.world.event.BlockPositionSource; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.stream.IntStream; - -public class SuckingChestBlockEntity extends SpectrumChestBlockEntity implements ExtendedScreenHandlerFactory, SidedInventory, EventQueue.Callback { - - public static final int INVENTORY_SIZE = 28; - public static final int ITEM_FILTER_SLOTS = 5; - public static final int EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT = 27; - private static final int RANGE = 12; - private final ItemAndExperienceEventQueue itemAndExperienceEventQueue; - private final List filterItems; - - public SuckingChestBlockEntity(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.SUCKING_CHEST, blockPos, blockState); - this.itemAndExperienceEventQueue = new ItemAndExperienceEventQueue(new BlockPositionSource(this.pos), RANGE, this); - this.filterItems = DefaultedList.ofSize(ITEM_FILTER_SLOTS, Items.AIR); - } - - public static void tick(@NotNull World world, BlockPos pos, BlockState state, SuckingChestBlockEntity blockEntity) { - if (world.isClient) { - blockEntity.lidAnimator.step(); - } else { - blockEntity.itemAndExperienceEventQueue.tick(world); - if (world.getTime() % 80 == 0 && !SpectrumChestBlock.isChestBlocked(world, pos)) { - searchForNearbyEntities(blockEntity); - } - } - } - - private static void searchForNearbyEntities(@NotNull SuckingChestBlockEntity blockEntity) { - List itemEntities = blockEntity.world.getEntitiesByType(EntityType.ITEM, getBoxWithRadius(blockEntity.pos, RANGE), Entity::isAlive); - for (ItemEntity itemEntity : itemEntities) { - if (itemEntity.isAlive() && !itemEntity.getStack().isEmpty()) { - itemEntity.emitGameEvent(SpectrumGameEvents.ENTITY_SPAWNED); - } - } - - List experienceOrbEntities = blockEntity.world.getEntitiesByType(EntityType.EXPERIENCE_ORB, getBoxWithRadius(blockEntity.pos, RANGE), Entity::isAlive); - for (ExperienceOrbEntity experienceOrbEntity : experienceOrbEntities) { - if (experienceOrbEntity.isAlive()) { - experienceOrbEntity.emitGameEvent(SpectrumGameEvents.ENTITY_SPAWNED); - } - } - } - - @Contract("_, _ -> new") - protected static @NotNull Box getBoxWithRadius(BlockPos blockPos, int radius) { - return Box.of(Vec3d.ofCenter(blockPos), radius, radius, radius); - } - - protected Text getContainerName() { - return new TranslatableText("block.spectrum.sucking_chest"); - } - - @Override - protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { - return new SuckingChestScreenHandler(syncId, playerInventory, this); - } - - public void writeNbt(NbtCompound tag) { - super.writeNbt(tag); - for (int i = 0; i < ITEM_FILTER_SLOTS; i++) { - tag.putString("Filter" + i, Registry.ITEM.getId(this.filterItems.get(i)).toString()); - } - } - - public void readNbt(NbtCompound tag) { - super.readNbt(tag); - for (int i = 0; i < ITEM_FILTER_SLOTS; i++) { - if (tag.contains("Filter" + i, NbtElement.STRING_TYPE)) { - this.filterItems.set(i, Registry.ITEM.get(new Identifier(tag.getString("Filter" + i)))); - } - } - } - - @Override - public int size() { - return 27 + 1; // 3 rows, 1 knowledge gem, 5 item filters (they are not real slots, though) - } - - public ItemAndExperienceEventQueue getEventListener() { - return this.itemAndExperienceEventQueue; - } - - @Override - public boolean canAcceptEvent(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity, BlockPos sourcePos) { - if (SpectrumChestBlock.isChestBlocked(world, this.pos)) { - return false; - } - if (entity instanceof ItemEntity) { - return true; - } - return entity instanceof ExperienceOrbEntity && hasExperienceStorageItem(); - } - - @Override - public void triggerEvent(World world, GameEventListener listener, Object entry) { - if (SpectrumChestBlock.isChestBlocked(world, pos)) { - return; - } - - if (entry instanceof ExperienceOrbEventQueue.EventEntry experienceEntry) { - ExperienceOrbEntity experienceOrbEntity = experienceEntry.experienceOrbEntity; - if (experienceOrbEntity != null && experienceOrbEntity.isAlive() && hasExperienceStorageItem()) { - ExperienceStorageItem.addStoredExperience(this.inventory.get(EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT), experienceOrbEntity.getExperienceAmount()); // overflow experience is void, to not lag the world on large farms - - SpectrumS2CPacketSender.sendPlayExperienceOrbEntityAbsorbedParticle(world, experienceOrbEntity); - world.playSound(null, experienceOrbEntity.getBlockPos(), SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.BLOCKS, 0.9F + this.world.random.nextFloat() * 0.2F, 0.9F + this.world.random.nextFloat() * 0.2F); - experienceOrbEntity.remove(Entity.RemovalReason.DISCARDED); - } - } else if (entry instanceof ItemEntityEventQueue.EventEntry itemEntry) { - ItemEntity itemEntity = itemEntry.itemEntity; - if (itemEntity != null && itemEntity.isAlive() && acceptsItemStack(itemEntity.getStack())) { - int previousAmount = itemEntity.getStack().getCount(); - ItemStack remainingStack = InventoryHelper.smartAddToInventory(itemEntity.getStack(), this, Direction.UP); - - if (remainingStack.isEmpty()) { - SpectrumS2CPacketSender.sendPlayItemEntityAbsorbedParticle(world, itemEntity); - world.playSound(null, itemEntity.getBlockPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.9F + this.world.random.nextFloat() * 0.2F, 0.9F + this.world.random.nextFloat() * 0.2F); - itemEntity.setStack(ItemStack.EMPTY); - itemEntity.discard(); - } else { - if (remainingStack.getCount() != previousAmount) { - SpectrumS2CPacketSender.sendPlayItemEntityAbsorbedParticle(world, itemEntity); - world.playSound(null, itemEntity.getBlockPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.9F + this.world.random.nextFloat() * 0.2F, 0.9F + this.world.random.nextFloat() * 0.2F); - itemEntity.setStack(remainingStack); - } - } - } - } - } - - @Override - public SoundEvent getOpenSound() { - return SpectrumSoundEvents.SUCKING_CHEST_OPEN; - } - - @Override - public SoundEvent getCloseSound() { - return SpectrumSoundEvents.SUCKING_CHEST_CLOSE; - } - - @Override - public void writeScreenOpeningData(ServerPlayerEntity player, PacketByteBuf buf) { - buf.writeBlockPos(this.pos); - for (Item filterItem : this.filterItems) { - buf.writeIdentifier(Registry.ITEM.getId(filterItem)); - } - } - - public List getItemFilters() { - return this.filterItems; - } - - public void setFilterItem(int slot, Item item) { - this.filterItems.set(slot, item); - this.markDirty(); - } - - public boolean acceptsItemStack(ItemStack itemStack) { - if (itemStack.isEmpty()) { - return false; - } - - boolean allAir = true; - for (int i = 0; i < ITEM_FILTER_SLOTS; i++) { - Item filterItem = this.filterItems.get(i); - if (filterItem.equals(itemStack.getItem())) { - return true; - } else if (!filterItem.equals(Items.AIR)) { - allAir = false; - } - } - return allAir; - } - - public boolean hasExperienceStorageItem() { - return this.inventory.get(EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT).getItem() instanceof ExperienceStorageItem; - } - - @Override - public int[] getAvailableSlots(Direction side) { - return IntStream.rangeClosed(0, EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT-1).toArray(); - } - - @Override - public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { - return true; - } - - @Override - public boolean canExtract(int slot, ItemStack stack, Direction dir) { - return true; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlockEntityRenderer.java deleted file mode 100644 index 665379b96a..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/chests/SuckingChestBlockEntityRenderer.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.dafuqs.spectrum.blocks.chests; - -import de.dafuqs.spectrum.SpectrumCommon; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.model.*; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; -import net.minecraft.client.texture.SpriteAtlasTexture; -import net.minecraft.client.util.SpriteIdentifier; -import net.minecraft.client.util.math.MatrixStack; -import org.jetbrains.annotations.NotNull; - -@Environment(EnvType.CLIENT) -public class SuckingChestBlockEntityRenderer implements BlockEntityRenderer { - - private static final SpriteIdentifier spriteIdentifier = new SpriteIdentifier(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE, SpectrumCommon.locate("block/black_block")); - private final ModelPart root; - - public SuckingChestBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { - TexturedModelData texturedModelData = getTexturedModelData(); - root = texturedModelData.createModel(); - } - - public static @NotNull TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - ModelPartData modelPartData = modelData.getRoot(); - modelPartData.addChild("lid", ModelPartBuilder.create().uv(1, 1).cuboid(5.0F, 7.0F, 5.0F, 6.0F, 3.0F, 6.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - modelPartData.addChild("lid2", ModelPartBuilder.create().uv(1, 1).cuboid(7.0F, 4.0F, 7.0F, 2.0F, 3.0F, 2.0F), ModelTransform.pivot(0.0F, 0.0F, 0.0F)); - return TexturedModelData.of(modelData, 32, 32); - } - - @Override - public void render(SuckingChestBlockEntity entity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumers, int light, int overlay) { - matrixStack.push(); - matrixStack.translate(0.5D, 0.5D, 0.5D); - matrixStack.translate(-0.5D, -0.5D, -0.5D); - - float openFactor = entity.getAnimationProgress(tickDelta); - openFactor = 1.0F - openFactor; - openFactor = 1.0F - openFactor * openFactor * openFactor; - - root.pivotY = openFactor * 5; - - VertexConsumer vertexConsumer = spriteIdentifier.getVertexConsumer(vertexConsumers, RenderLayer::getEntityCutout); - root.render(matrixStack, vertexConsumer, light, overlay); - - matrixStack.pop(); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlock.java index e2cf24aad0..447235ed31 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlock.java @@ -22,11 +22,12 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; import net.minecraft.state.property.DirectionProperty; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.*; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import org.jetbrains.annotations.NotNull; @@ -34,8 +35,6 @@ import vazkii.patchouli.api.IMultiblock; import vazkii.patchouli.api.PatchouliAPI; -import java.util.Random; - public class CinderhearthBlock extends BlockWithEntity { public static final DirectionProperty FACING = HorizontalFacingBlock.FACING; @@ -91,7 +90,7 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof CinderhearthBlockEntity cinderhearthBlockEntity) { - if(placer instanceof PlayerEntity player) { + if (placer instanceof PlayerEntity player) { cinderhearthBlockEntity.setOwner(player); } if (itemStack.hasCustomName()) { @@ -147,15 +146,15 @@ protected void appendProperties(StateManager.Builder builder) @Override public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { BlockEntity blockEntity = world.getBlockEntity(pos); - if(blockEntity instanceof CinderhearthBlockEntity cinderhearthBlockEntity) { + if (blockEntity instanceof CinderhearthBlockEntity cinderhearthBlockEntity) { Direction direction = state.get(FACING); Direction.Axis axis = direction.getAxis(); - double d = (double)pos.getX() + 0.5D; + double d = (double) pos.getX() + 0.5D; double e = pos.getY() + 0.4; - double f = (double)pos.getZ() + 0.5D; + double f = (double) pos.getZ() + 0.5D; Recipe recipe = cinderhearthBlockEntity.getCurrentRecipe(); - if(recipe != null) { + if (recipe != null) { if (random.nextDouble() < 0.1D) { world.playSound(d, e, f, SoundEvents.BLOCK_FURNACE_FIRE_CRACKLE, SoundCategory.BLOCKS, 1.0F, 0.8F, false); } @@ -176,7 +175,7 @@ public void randomDisplayTick(BlockState state, World world, BlockPos pos, Rando world.addParticle(ParticleTypes.CLOUD, d + i2, pos.getY() + 1.1, f + k2, 0.0D, 0.06D, 0.0D); } } - if(cinderhearthBlockEntity.structure == CinderhearthBlockEntity.CinderHearthStructureType.WITH_LAVA) { + if (cinderhearthBlockEntity.structure == CinderhearthBlockEntity.CinderHearthStructureType.WITH_LAVA) { for (int v = 0; v < 2; v++) { double g3 = 1.5 - random.nextDouble() * 2.0; double h3 = 1.5 - random.nextDouble() * 3.0; @@ -193,11 +192,11 @@ public static CinderhearthBlockEntity.CinderHearthStructureType verifyStructure( IMultiblock multiblockWithLava = SpectrumMultiblocks.MULTIBLOCKS.get(SpectrumMultiblocks.CINDERHEARTH_IDENTIFIER); IMultiblock multiblockWithoutLava = SpectrumMultiblocks.MULTIBLOCKS.get(SpectrumMultiblocks.CINDERHEARTH_WITHOUT_LAVA_IDENTIFIER); - if(world.isClient) { + if (world.isClient) { if (multiblockWithoutLava.validate(world, blockPos.down(3), rotation)) { return CinderhearthBlockEntity.CinderHearthStructureType.WITH_LAVA; } else { - PatchouliAPI.get().showMultiblock(multiblockWithLava, new TranslatableText("multiblock.spectrum.cinderhearth.structure"), blockPos.down(4), rotation); + PatchouliAPI.get().showMultiblock(multiblockWithLava, Text.translatable("multiblock.spectrum.cinderhearth.structure"), blockPos.down(4), rotation); return CinderhearthBlockEntity.CinderHearthStructureType.NONE; } } else { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlockEntity.java index 22bc6e47e1..96aa7fb5ac 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/cinderhearth/CinderhearthBlockEntity.java @@ -1,94 +1,115 @@ package de.dafuqs.spectrum.blocks.cinderhearth; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.energy.InkStorage; -import de.dafuqs.spectrum.energy.InkStorageBlockEntity; -import de.dafuqs.spectrum.energy.InkStorageItem; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.energy.storage.IndividualCappedInkStorage; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.inventories.CinderhearthScreenHandler; -import de.dafuqs.spectrum.items.ExperienceStorageItem; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.recipe.GatedRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.cinderhearth.CinderhearthRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumItemTags; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.LockableContainerBlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.Inventories; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.network.Packet; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.network.listener.ClientPlayPacketListener; -import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; -import net.minecraft.particle.ParticleTypes; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.energy.storage.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.cinderhearth.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.screenhandler.v1.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.network.listener.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.particle.*; import net.minecraft.recipe.*; -import net.minecraft.screen.PropertyDelegate; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; import java.util.*; -public class CinderhearthBlockEntity extends LockableContainerBlockEntity implements MultiblockCrafter, RecipeInputProvider, Inventory, ExtendedScreenHandlerFactory, InkStorageBlockEntity { - +public class CinderhearthBlockEntity extends LockableContainerBlockEntity implements MultiblockCrafter, SidedInventory, ExtendedScreenHandlerFactory, InkStorageBlockEntity { + public static final int INVENTORY_SIZE = 11; public static final int INPUT_SLOT_ID = 0; public static final int INK_PROVIDER_SLOT_ID = 1; public static final int EXPERIENCE_STORAGE_ITEM_SLOT_ID = 2; public static final int FIRST_OUTPUT_SLOT_ID = 3; - public static final int LAST_OUTPUT_SLOT_ID = 11; - + public static final int LAST_OUTPUT_SLOT_ID = 10; + public static final int[] OUTPUT_SLOT_IDS = new int[]{3, 4, 5, 6, 7, 8, 9, 10, 10}; + protected DefaultedList inventory; protected boolean inventoryChanged; - + public static final Set USED_INK_COLORS = Set.of(InkColors.ORANGE, InkColors.LIGHT_BLUE, InkColors.MAGENTA, InkColors.PURPLE, InkColors.BLACK); - public static final long INK_STORAGE_SIZE = 64*100; + public static final long INK_STORAGE_SIZE = 64 * 100; protected IndividualCappedInkStorage inkStorage; - + private UUID ownerUUID; - private Map upgrades; + private UpgradeHolder upgrades; private Recipe currentRecipe; // blasting & cinderhearth private int craftingTime; private int craftingTimeTotal; protected boolean canTransferInk; protected boolean inkDirty; - + protected CinderHearthStructureType structure = CinderHearthStructureType.NONE; - + protected final PropertyDelegate propertyDelegate; - + + @Override + public int[] getAvailableSlots(Direction side) { + switch (side) { + case UP -> { + return new int[]{INPUT_SLOT_ID}; + } + case DOWN -> { + return OUTPUT_SLOT_IDS; + } + default -> { + return new int[]{INK_PROVIDER_SLOT_ID, EXPERIENCE_STORAGE_ITEM_SLOT_ID}; + } + } + } + + @Override + public boolean canInsert(int slot, ItemStack stack, @Nullable Direction dir) { + switch (slot) { + case INK_PROVIDER_SLOT_ID -> { + return stack.getItem() instanceof InkStorageItem inkStorageItem && (inkStorageItem.getDrainability().canDrain(false)); + } + case EXPERIENCE_STORAGE_ITEM_SLOT_ID -> { + return stack.getItem() instanceof ExperienceStorageItem; + } + default -> { + return true; + } + } + } + + @Override + public boolean canExtract(int slot, ItemStack stack, Direction dir) { + return slot >= FIRST_OUTPUT_SLOT_ID; + } + enum CinderHearthStructureType { NONE, WITH_LAVA, WITHOUT_LAVA } - + public CinderhearthBlockEntity(BlockPos pos, BlockState state) { super(SpectrumBlockEntities.CINDERHEARTH, pos, state); this.inventory = DefaultedList.ofSize(INVENTORY_SIZE, ItemStack.EMPTY); @@ -128,11 +149,6 @@ public void calculateUpgrades() { this.markDirty(); } - @Override - public float getUpgradeValue(UpgradeType upgradeType) { - return this.upgrades.get(upgradeType); - } - public void updateInClientWorld() { ((ServerWorld) world).getChunkManager().markForUpdate(pos); } @@ -163,7 +179,7 @@ public void setOwner(PlayerEntity playerEntity) { @Override protected Text getContainerName() { - return new TranslatableText("block.spectrum.cinderhearth"); + return Text.translatable("block.spectrum.cinderhearth"); } @Override @@ -181,14 +197,14 @@ public void readNbt(NbtCompound nbt) { super.readNbt(nbt); Inventories.readNbt(nbt, this.inventory); - if(nbt.contains("InkStorage", NbtElement.COMPOUND_TYPE)) { + if (nbt.contains("InkStorage", NbtElement.COMPOUND_TYPE)) { this.inkStorage = IndividualCappedInkStorage.fromNbt(nbt.getCompound("InkStorage")); } this.craftingTime = nbt.getShort("CraftingTime"); this.craftingTimeTotal = nbt.getShort("CraftingTimeTotal"); this.canTransferInk = nbt.getBoolean("Paused"); this.inventoryChanged = nbt.getBoolean("InventoryChanged"); - if(nbt.contains("Structure", NbtElement.INT_TYPE)) { + if (nbt.contains("Structure", NbtElement.INT_TYPE)) { this.structure = CinderHearthStructureType.values()[nbt.getInt("Structure")]; } else { this.structure = CinderHearthStructureType.NONE; @@ -200,8 +216,8 @@ public void readNbt(NbtCompound nbt) { } if (nbt.contains("CurrentRecipe")) { String recipeString = nbt.getString("CurrentRecipe"); - if (!recipeString.isEmpty() && world != null) { - Optional optionalRecipe = world.getRecipeManager().get(new Identifier(recipeString)); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); this.currentRecipe = optionalRecipe.orElse(null); } else { this.currentRecipe = null; @@ -210,7 +226,9 @@ public void readNbt(NbtCompound nbt) { this.currentRecipe = null; } if (nbt.contains("Upgrades", NbtElement.LIST_TYPE)) { - this.upgrades = Upgradeable.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + this.upgrades = UpgradeHolder.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + } else { + this.upgrades = new UpgradeHolder(); } } @@ -225,7 +243,7 @@ public void writeNbt(NbtCompound nbt) { nbt.putBoolean("InventoryChanged", this.inventoryChanged); nbt.putInt("Structure", this.structure.ordinal()); if (this.upgrades != null) { - nbt.put("Upgrades", Upgradeable.toNbt(this.upgrades)); + nbt.put("Upgrades", this.upgrades.toNbt()); } if (this.ownerUUID != null) { nbt.putUuid("OwnerUUID", this.ownerUUID); @@ -274,9 +292,10 @@ public static void serverTick(World world, BlockPos blockPos, BlockState blockSt } if (cinderhearthBlockEntity.currentRecipe != null) { - if(world.getTime() % 20 == 0) { - int usedOrangeInk = (int) (4 / cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY), InkColors.BLACK)); - if(cinderhearthBlockEntity.inkStorage.drainEnergy(InkColors.ORANGE, usedOrangeInk) != usedOrangeInk) { + if (world.getTime() % 20 == 0) { + float effectiveEfficiencyMod = cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity, UpgradeType.EFFICIENCY, false); + int orangeInkToDrain = (int) (4 / effectiveEfficiencyMod); + if (cinderhearthBlockEntity.inkStorage.drainEnergy(InkColors.ORANGE, orangeInkToDrain) != orangeInkToDrain) { cinderhearthBlockEntity.currentRecipe = null; cinderhearthBlockEntity.craftingTime = 0; cinderhearthBlockEntity.craftingTimeTotal = 0; @@ -288,11 +307,10 @@ public static void serverTick(World world, BlockPos blockPos, BlockState blockSt cinderhearthBlockEntity.craftingTime++; - if (cinderhearthBlockEntity.craftingTime == cinderhearthBlockEntity.craftingTimeTotal) { - if(cinderhearthBlockEntity.currentRecipe instanceof CinderhearthRecipe cinderhearthRecipe) { + if (cinderhearthBlockEntity.currentRecipe instanceof CinderhearthRecipe cinderhearthRecipe) { craftCinderhearthRecipe(world, cinderhearthBlockEntity, cinderhearthRecipe); - } else if(cinderhearthBlockEntity.currentRecipe instanceof BlastingRecipe blastingRecipe) { + } else if (cinderhearthBlockEntity.currentRecipe instanceof BlastingRecipe blastingRecipe) { craftBlastingRecipe(world, cinderhearthBlockEntity, blastingRecipe); } } @@ -318,15 +336,17 @@ private static void calculateRecipe(@NotNull World world, @NotNull CinderhearthB ItemStack instillerStack = cinderhearthBlockEntity.getStack(0); if (!instillerStack.isEmpty()) { CinderhearthRecipe cinderhearthRecipe = world.getRecipeManager().getFirstMatch(SpectrumRecipeTypes.CINDERHEARTH, cinderhearthBlockEntity, world).orElse(null); - if(cinderhearthRecipe == null) { + if (cinderhearthRecipe == null) { BlastingRecipe blastingRecipe = world.getRecipeManager().getFirstMatch(RecipeType.BLASTING, cinderhearthBlockEntity, world).orElse(null); - if(blastingRecipe != null) { + if (blastingRecipe != null) { cinderhearthBlockEntity.currentRecipe = blastingRecipe; - cinderhearthBlockEntity.craftingTimeTotal = (int) Math.ceil(blastingRecipe.getCookTime() / cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(Upgradeable.UpgradeType.SPEED), InkColors.MAGENTA, cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY))); + float speedModifier = cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity, UpgradeType.SPEED, true); + cinderhearthBlockEntity.craftingTimeTotal = (int) Math.ceil(blastingRecipe.getCookTime() / speedModifier); } } else { cinderhearthBlockEntity.currentRecipe = cinderhearthRecipe; - cinderhearthBlockEntity.craftingTimeTotal = (int) Math.ceil(cinderhearthRecipe.getCraftingTime() / cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(Upgradeable.UpgradeType.SPEED), InkColors.MAGENTA, cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY))); + float speedModifier = cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity, UpgradeType.SPEED, true); + cinderhearthBlockEntity.craftingTimeTotal = (int) Math.ceil(cinderhearthRecipe.getCraftingTime() / speedModifier); } } } @@ -342,118 +362,113 @@ private static boolean checkRecipeRequirements(World world, BlockPos blockPos, @ world.playSound(null, cinderhearthBlockEntity.getPos(), SpectrumSoundEvents.CRAFTING_ABORTED, SoundCategory.BLOCKS, 0.9F + cinderhearthBlockEntity.world.random.nextFloat() * 0.2F, 0.9F + cinderhearthBlockEntity.world.random.nextFloat() * 0.2F); return false; } - - if(cinderhearthBlockEntity.currentRecipe instanceof GatedRecipe gatedRecipe) { + + if (cinderhearthBlockEntity.currentRecipe instanceof GatedRecipe gatedRecipe) { return gatedRecipe.canPlayerCraft(lastInteractedPlayer); } return true; } - - public static void craftBlastingRecipe(World world, @NotNull CinderhearthBlockEntity cinderhearthBlockEntity, @NotNull BlastingRecipe blastingRecipe) { - // output - ItemStack inputStack = cinderhearthBlockEntity.getStack(INPUT_SLOT_ID); + + public static void craftBlastingRecipe(World world, @NotNull CinderhearthBlockEntity cinderhearth, @NotNull BlastingRecipe blastingRecipe) { + // calculate outputs + ItemStack inputStack = cinderhearth.getStack(INPUT_SLOT_ID); + float yieldMod = inputStack.isIn(SpectrumItemTags.NO_CINDERHEARTH_DOUBLING) ? 1.0F : cinderhearth.drainInkForMod(cinderhearth, UpgradeType.YIELD, true); ItemStack output = blastingRecipe.getOutput().copy(); - float yieldMod = inputStack.isIn(SpectrumItemTags.NO_CINDERHEARTH_DOUBLING) ? 1.0F : cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.YIELD), InkColors.LIGHT_BLUE, cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY)); - if(yieldMod > 1) { - output.setCount(Math.min(output.getMaxCount(), Support.getIntFromDecimalWithChance(output.getCount() * yieldMod, world.random))); - } - - boolean couldAdd = InventoryHelper.addToInventory(cinderhearthBlockEntity, output, FIRST_OUTPUT_SLOT_ID, LAST_OUTPUT_SLOT_ID); - if(couldAdd) { - cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY), InkColors.BLACK); - - Item remainder = inputStack.getItem().getRecipeRemainder(); - - // use up input ingredient - inputStack.decrement(1); - - if (remainder != null) { - boolean remainderAdded = InventoryHelper.addToInventory(cinderhearthBlockEntity, remainder.getDefaultStack(), FIRST_OUTPUT_SLOT_ID, LAST_OUTPUT_SLOT_ID); - if(!remainderAdded) { - cinderhearthBlockEntity.setStack(CinderhearthBlockEntity.INPUT_SLOT_ID, remainder.getDefaultStack()); - } + List outputs = new ArrayList<>(); + if (yieldMod > 1) { + int outputCount = Support.getIntFromDecimalWithChance(output.getCount() * yieldMod, world.random); + while (outputCount > 0) { // if the rolled count exceeds the max stack size we need to split them (unstackable items, counts > 64, ...) + int count = Math.min(outputCount, output.getMaxCount()); + ItemStack outputStack = output.copy(); + outputStack.setCount(count); + outputs.add(outputStack); + outputCount -= count; } - - - // grant experience - float experienceMod = cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.EXPERIENCE), InkColors.PURPLE, cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY)); - ExperienceStorageItem.addStoredExperience(cinderhearthBlockEntity.getStack(EXPERIENCE_STORAGE_ITEM_SLOT_ID), blastingRecipe.getExperience() * experienceMod, world.random); - - // effects - playCraftingFinishedEffects(cinderhearthBlockEntity); - - // reset - cinderhearthBlockEntity.craftingTime = 0; - cinderhearthBlockEntity.inventoryChanged(); } else { - // prevents trying to craft more until the inventory is freed up - cinderhearthBlockEntity.craftingTime = 0; - cinderhearthBlockEntity.currentRecipe = null; + outputs.add(output.copy()); } + + // craft + craftRecipe(cinderhearth, inputStack, outputs, blastingRecipe.getExperience()); } - - public static void craftCinderhearthRecipe(World world, @NotNull CinderhearthBlockEntity cinderhearthBlockEntity, @NotNull CinderhearthRecipe cinderhearthRecipe) { - // output - ItemStack inputStack = cinderhearthBlockEntity.getStack(INPUT_SLOT_ID); - float yieldMod = inputStack.isIn(SpectrumItemTags.NO_CINDERHEARTH_DOUBLING) ? 1.0F : cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.YIELD), InkColors.LIGHT_BLUE, cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY)); + + public static void craftCinderhearthRecipe(World world, @NotNull CinderhearthBlockEntity cinderhearth, @NotNull CinderhearthRecipe cinderhearthRecipe) { + // calculate outputs + ItemStack inputStack = cinderhearth.getStack(INPUT_SLOT_ID); + float yieldMod = inputStack.isIn(SpectrumItemTags.NO_CINDERHEARTH_DOUBLING) ? 1.0F : cinderhearth.drainInkForMod(cinderhearth, UpgradeType.YIELD, true); List outputs = cinderhearthRecipe.getRolledOutputs(world.random, yieldMod); - + + // craft + craftRecipe(cinderhearth, inputStack, outputs, cinderhearthRecipe.getExperience()); + } + + private static boolean craftRecipe(@NotNull CinderhearthBlockEntity cinderhearth, ItemStack inputStack, List outputs, float experience) { DefaultedList backupInventory = DefaultedList.ofSize(INVENTORY_SIZE, ItemStack.EMPTY); - for(int i = 0; i < cinderhearthBlockEntity.inventory.size(); i++) { - backupInventory.set(i, cinderhearthBlockEntity.inventory.get(i)); + for (int i = 0; i < cinderhearth.inventory.size(); i++) { + backupInventory.set(i, cinderhearth.inventory.get(i)); } - - boolean couldAdd = InventoryHelper.addToInventory(cinderhearthBlockEntity, outputs, FIRST_OUTPUT_SLOT_ID, LAST_OUTPUT_SLOT_ID); - if(couldAdd) { - cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY), InkColors.BLACK); + + boolean couldAdd = InventoryHelper.addToInventory(cinderhearth, outputs, FIRST_OUTPUT_SLOT_ID, LAST_OUTPUT_SLOT_ID); + if (couldAdd) { Item remainder = inputStack.getItem().getRecipeRemainder(); - + // use up input ingredient + ItemStack inputStackCopy = inputStack.copy(); inputStack.decrement(1); - - if(remainder != null) { - boolean remainderAdded = InventoryHelper.addToInventory(cinderhearthBlockEntity, remainder.getDefaultStack(), FIRST_OUTPUT_SLOT_ID, LAST_OUTPUT_SLOT_ID); - if(!remainderAdded) { - cinderhearthBlockEntity.setStack(CinderhearthBlockEntity.INPUT_SLOT_ID, remainder.getDefaultStack()); + + if (remainder != null) { + boolean remainderAdded = InventoryHelper.addToInventory(cinderhearth, remainder.getDefaultStack(), FIRST_OUTPUT_SLOT_ID, LAST_OUTPUT_SLOT_ID); + if (!remainderAdded) { + cinderhearth.setStack(CinderhearthBlockEntity.INPUT_SLOT_ID, remainder.getDefaultStack()); } } - - // grant experience - float experienceMod = cinderhearthBlockEntity.drainInkForMod(cinderhearthBlockEntity.upgrades.get(UpgradeType.EXPERIENCE), InkColors.PURPLE, cinderhearthBlockEntity.upgrades.get(UpgradeType.EFFICIENCY)); - ExperienceStorageItem.addStoredExperience(cinderhearthBlockEntity.getStack(EXPERIENCE_STORAGE_ITEM_SLOT_ID), cinderhearthRecipe.getExperience() * experienceMod, cinderhearthBlockEntity.world.random); - + // effects - playCraftingFinishedEffects(cinderhearthBlockEntity); - + playCraftingFinishedEffects(cinderhearth); + // reset - cinderhearthBlockEntity.craftingTime = 0; - cinderhearthBlockEntity.inventoryChanged(); + cinderhearth.craftingTime = 0; + cinderhearth.inventoryChanged(); + + // grant experience & advancements + float experienceMod = cinderhearth.drainInkForMod(cinderhearth, UpgradeType.EXPERIENCE, true); + int finalExperience = Support.getIntFromDecimalWithChance(experience * experienceMod, cinderhearth.world.random); + ExperienceStorageItem.addStoredExperience(cinderhearth.getStack(EXPERIENCE_STORAGE_ITEM_SLOT_ID), finalExperience); + cinderhearth.grantPlayerCinderhearthSmeltingAdvancement(inputStackCopy, outputs, finalExperience); + + return true; } else { - cinderhearthBlockEntity.inventory = backupInventory; - + cinderhearth.inventory = backupInventory; + // prevents trying to craft more until the inventory is freed up - cinderhearthBlockEntity.craftingTimeTotal = 0; - cinderhearthBlockEntity.currentRecipe = null; - cinderhearthBlockEntity.inventoryChanged = false; + cinderhearth.craftingTimeTotal = 0; + cinderhearth.currentRecipe = null; + cinderhearth.inventoryChanged = false; + return false; } } - + + public void grantPlayerCinderhearthSmeltingAdvancement(ItemStack input, List outputs, int experience) { + ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) getOwnerIfOnline(); + if (serverPlayerEntity != null) { + SpectrumAdvancementCriteria.CINDERHEARTH_SMELTING.trigger(serverPlayerEntity, input, outputs, experience, this.upgrades); + } + } + public static void playCraftingFinishedEffects(@NotNull CinderhearthBlockEntity cinderhearthBlockEntity) { Direction.Axis axis = null; Direction direction = null; - - for(Map.Entry entry : cinderhearthBlockEntity.upgrades.entrySet()) { - float value = entry.getValue(); - if(value > 1.0) { - if(axis == null) { + + for (Map.Entry entry : cinderhearthBlockEntity.upgrades.entrySet()) { + if (entry.getValue() > 1) { + if (axis == null) { BlockState state = cinderhearthBlockEntity.world.getBlockState(cinderhearthBlockEntity.pos); direction = state.get(CinderhearthBlock.FACING); axis = direction.getAxis(); } - - double d = (double)cinderhearthBlockEntity.pos.getX() + 0.5D; - double e = cinderhearthBlockEntity.pos.getY() + 0.4; - double f = (double)cinderhearthBlockEntity.pos.getZ() + 0.5D; + + double d = (double) cinderhearthBlockEntity.pos.getX() + 0.5D; + double f = (double) cinderhearthBlockEntity.pos.getZ() + 0.5D; double g2 = -3D / 16D; double h2 = 4D / 16D; double i2 = axis == Direction.Axis.X ? (double) direction.getOffsetX() * g2 : h2; @@ -520,29 +535,23 @@ public void inventoryChanged() { this.canTransferInk = true; this.markDirty(); } - + @Override public void clear() { this.inventory.clear(); this.inventoryChanged(); } - - public Map getUpgrades() { - return this.upgrades; - } - + @Override - public void provideRecipeInputs(RecipeMatcher recipeMatcher) { - for (ItemStack itemStack : this.inventory) { - recipeMatcher.addInput(itemStack); - } + public UpgradeHolder getUpgradeHolder() { + return this.upgrades; } - + @Override public IndividualCappedInkStorage getEnergyStorage() { return this.inkStorage; } - + @Override public void setInkDirty() { this.inkDirty = true; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/BloodOrchidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/BloodOrchidBlock.java deleted file mode 100644 index 48fcd50ebf..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/BloodOrchidBlock.java +++ /dev/null @@ -1,101 +0,0 @@ -package de.dafuqs.spectrum.blocks.conditional; - -import de.dafuqs.revelationary.api.revelations.RevelationAware; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.FlowerBlock; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.IntProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Hashtable; -import java.util.Map; -import java.util.Random; - -public class BloodOrchidBlock extends FlowerBlock implements RevelationAware { - - public static final IntProperty AGE = Properties.AGE_5; - - public BloodOrchidBlock(StatusEffect suspiciousStewEffect, int effectDuration, Settings settings) { - super(suspiciousStewEffect, effectDuration, settings); - this.setDefaultState(this.stateManager.getDefaultState().with(AGE, 0)); - RevelationAware.register(this); - } - - @Override - protected void appendProperties(StateManager.Builder builder) { - builder.add(AGE); - } - - public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { - int age = state.get(AGE); - if (age < Properties.AGE_5_MAX) { - BlockState newState = state.with(AGE, age + 1); - world.setBlockState(pos, newState); - world.playSound(null, pos, state.getSoundGroup().getPlaceSound(), SoundCategory.BLOCKS, 1.0F, 1.0F); - } - } - - @Override - public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - int age = state.get(AGE); - if(age > 0) { - if (world.isClient) { - return ActionResult.SUCCESS; - } else { - world.setBlockState(pos, state.with(AGE, age - 1)); - Support.givePlayer(player, SpectrumItems.BLOOD_ORCHID_PETAL.getDefaultStack()); - world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 1.0F, 0.9F + world.random.nextFloat() * 0.2F); - if(player instanceof ServerPlayerEntity serverPlayerEntity) { - SpectrumAdvancementCriteria.BLOOD_ORCHID_PLUCKING.trigger(serverPlayerEntity); - } - return ActionResult.CONSUME; - } - } - return ActionResult.PASS; - } - - @Override - public OffsetType getOffsetType() { - return OffsetType.NONE; - } - - @Override - public Identifier getCloakAdvancementIdentifier() { - return SpectrumCommon.locate("midgame/collect_blood_orchid_petal"); - } - - @Override - public Map getBlockStateCloaks() { - Hashtable hashtable = new Hashtable<>(); - for(int i = 0; i <= Properties.AGE_5_MAX; i++) { - hashtable.put(this.getDefaultState().with(AGE, i), Blocks.RED_TULIP.getDefaultState()); - } - return hashtable; - } - - @Override - public Pair getItemCloak() { - return new Pair<>(this.asItem(), Blocks.RED_TULIP.asItem()); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/CloakedOreBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/CloakedOreBlock.java index cfc63c33b1..125c96a81e 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/CloakedOreBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/CloakedOreBlock.java @@ -58,10 +58,8 @@ public List getDroppedStacks(BlockState state, LootContext.Builder bu } @Override - public void onStacksDropped(BlockState state, ServerWorld world, BlockPos pos, ItemStack stack) { - if (dropXP) { - super.onStacksDropped(state, world, pos, stack); - } + public void onStacksDropped(BlockState state, ServerWorld world, BlockPos pos, ItemStack stack, boolean dropExperience) { + super.onStacksDropped(state, world, pos, stack, dropExperience && dropXP); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/EnderTreasureBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/EnderTreasureBlock.java index 442c9f8230..99a65a8ab4 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/EnderTreasureBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/EnderTreasureBlock.java @@ -21,7 +21,7 @@ public EnderTreasureBlock(Settings settings) { @Override public Identifier getCloakAdvancementIdentifier() { - return SpectrumCommon.locate("milestones/reveal_ender_treasure"); + return SpectrumCommon.locate("milestones/reveal_radiating_ender"); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/LightningStoneBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/LightningStoneBlock.java deleted file mode 100644 index 6ff5b35a17..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/LightningStoneBlock.java +++ /dev/null @@ -1,106 +0,0 @@ -package de.dafuqs.spectrum.blocks.conditional; - -import de.dafuqs.revelationary.api.revelations.RevelationAware; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.ShapeContext; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LightningEntity; -import net.minecraft.item.Item; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldView; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.explosion.Explosion; - -import java.util.Hashtable; -import java.util.Map; -import java.util.Random; - -public class LightningStoneBlock extends Block implements RevelationAware { - - protected static final VoxelShape SHAPE = Block.createCuboidShape(4.0D, 0.0D, 4.0D, 11.0D, 2.0D, 11.0D); - - public LightningStoneBlock(Settings settings) { - super(settings); - RevelationAware.register(this); - } - - @Override - public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { - return world.getBlockState(pos.down()).isSolidBlock(world, pos); - } - - @Override - public void onDestroyedByExplosion(World world, BlockPos pos, Explosion explosion) { - super.onDestroyedByExplosion(world, pos, explosion); - - if (world.isSkyVisible(pos)) { - LightningEntity lightningEntity = EntityType.LIGHTNING_BOLT.create(world); - if (lightningEntity != null) { - lightningEntity.refreshPositionAfterTeleport(Vec3d.ofBottomCenter(pos)); - world.spawnEntity(lightningEntity); - } - } - - int power = 2; - Biome biomeAtPos = world.getBiome(pos).value(); - if (!biomeAtPos.isHot(pos) && !biomeAtPos.isCold(pos)) { - // there is no rain in deserts or snow - power = world.isThundering() ? 4 : world.isRaining() ? 3 : 2; - } - world.createExplosion(null, pos.getX(), pos.getY(), pos.getZ(), power, Explosion.DestructionType.BREAK); - } - - @Override - public Identifier getCloakAdvancementIdentifier() { - return SpectrumCommon.locate("milestones/reveal_lightning_stones"); - } - - @Deprecated - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - if (this.isVisibleTo(context)) { - return SHAPE; - } - return VoxelShapes.empty(); - } - - @Override - public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - if (this.isVisibleTo(context)) { - return SHAPE; - } - return VoxelShapes.empty(); - } - - @Override - public Map getBlockStateCloaks() { - Hashtable hashtable = new Hashtable<>(); - hashtable.put(this.getDefaultState(), Blocks.AIR.getDefaultState()); - return hashtable; - } - - @Override - public Pair getItemCloak() { - return null; - } - - /** - * If it gets ticked there is a chance to vanish - */ - public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { - if (random.nextFloat() < 0.1) { - world.setBlockState(pos, Blocks.AIR.getDefaultState(), 3); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/MermaidsBrushBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/MermaidsBrushBlock.java index af981f9c5b..89422d550e 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/MermaidsBrushBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/MermaidsBrushBlock.java @@ -6,7 +6,12 @@ import de.dafuqs.spectrum.registries.SpectrumFluidTags; import de.dafuqs.spectrum.registries.SpectrumFluids; import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.block.*; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.block.BlockState; +import net.minecraft.block.Fertilizable; +import net.minecraft.block.FluidFillable; +import net.minecraft.block.PlantBlock; import net.minecraft.client.MinecraftClient; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.ItemEntity; @@ -29,6 +34,7 @@ import net.minecraft.util.Pair; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; @@ -37,9 +43,8 @@ import java.util.Hashtable; import java.util.Map; -import java.util.Random; -public class MermaidsBrushBlock extends PlantBlock implements RevelationAware, FluidFillable { +public class MermaidsBrushBlock extends PlantBlock implements Fertilizable, RevelationAware, FluidFillable { public static final BooleanProperty IN_LIQUID_CRYSTAL = BooleanProperty.of("in_liquid_crystal"); public static final IntProperty AGE = Properties.AGE_7; @@ -122,6 +127,7 @@ protected void appendProperties(StateManager.Builder builder) builder.add(AGE, IN_LIQUID_CRYSTAL); } + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { int age = state.get(AGE); if (age == 7) { @@ -131,7 +137,7 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random } else { float chance = state.get(IN_LIQUID_CRYSTAL) ? 1.0F : 0.5F; if (random.nextFloat() < chance) { - world.setBlockState(pos, state.with(AGE, age + 1), 3); + world.setBlockState(pos, state.with(AGE, age + 1), Block.NOTIFY_NEIGHBORS | Block.NOTIFY_LISTENERS); } } } @@ -150,4 +156,29 @@ public boolean tryFillWithFluid(WorldAccess world, BlockPos pos, BlockState stat return false; } + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return true; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + int age = state.get(AGE); + int attempts = 7; + float chance = state.get(IN_LIQUID_CRYSTAL) ? 1.0F : 0.5F; + int nextAge = age + random.nextBetween(1, (int)Math.ceil(attempts*chance)); + + if (nextAge >= 7) { + ItemEntity pearlEntity = new ItemEntity(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, new ItemStack(SpectrumItems.MERMAIDS_GEM, 1)); + world.spawnEntity(pearlEntity); + } + + world.setBlockState(pos, state.with(AGE, nextAge % 8), Block.NOTIFY_NEIGHBORS | Block.NOTIFY_LISTENERS); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/QuitoxicReedsBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/QuitoxicReedsBlock.java index 26996197e9..d535258fca 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/QuitoxicReedsBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/QuitoxicReedsBlock.java @@ -24,10 +24,13 @@ import net.minecraft.state.property.IntProperty; import net.minecraft.state.property.Properties; import net.minecraft.tag.FluidTags; +import net.minecraft.tag.TagKey; import net.minecraft.util.Identifier; import net.minecraft.util.Pair; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; @@ -37,7 +40,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Optional; public class QuitoxicReedsBlock extends Block implements RevelationAware, WaterOrLiquidCrystalLogged { @@ -139,6 +145,7 @@ protected void appendProperties(StateManager.Builder builder) builder.add(AGE, FLUIDLOGGED, ALWAYS_DROP); } + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { if (world.isAir(pos.up()) || (world.isWater(pos.up()) && world.isAir(pos.up(2)))) { @@ -152,17 +159,16 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random if (i < MAX_GROWTH_HEIGHT_WATER || (bottomLiquidCrystalLogged && i < MAX_GROWTH_HEIGHT_CRYSTAL)) { int j = state.get(AGE); if (j == 7) { - // consume 1 clay block close to the reed when growing. - // if the quitoxic reeds are growing in liquid crystal: - // consume 1/4 of clay + // consume 1 block close to the reed when growing. + // if the quitoxic reeds are growing in liquid crystal: 1/4 chance to consume if (!bottomLiquidCrystalLogged || random.nextInt(4) == 0) { - // search for clay. 1 clay => 1 quitoxic reed - Optional clayPos = searchClayPos(world, pos.down(i), Blocks.CLAY.getDefaultState(), random); - if (clayPos.isEmpty() || world.getBlockState(clayPos.get().up()).getBlock() instanceof QuitoxicReedsBlock) { + // search for block it could be planted on. 1 block => 1 quitoxic reed + Optional plantablePos = searchPlantablePos(world, pos.down(i), SpectrumBlockTags.QUITOXIC_REEDS_PLANTABLE, random); + if (plantablePos.isEmpty() || world.getBlockState(plantablePos.get().up()).getBlock() instanceof QuitoxicReedsBlock) { return; } - world.setBlockState(clayPos.get(), Blocks.DIRT.getDefaultState(), 3); - world.playSound(null, clayPos.get(), SoundEvents.BLOCK_GRAVEL_BREAK, SoundCategory.BLOCKS, 1.0F, 1.0F); + world.setBlockState(plantablePos.get(), Blocks.DIRT.getDefaultState(), 3); + world.playSound(null, plantablePos.get(), SoundEvents.BLOCK_GRAVEL_BREAK, SoundCategory.BLOCKS, 1.0F, 1.0F); } world.setBlockState(pos.up(), getStateForPos(world, pos.up())); @@ -179,15 +185,14 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random } } - private Optional searchClayPos(World world, @NotNull BlockPos searchPos, BlockState searchBlockState, Random random) { - List directions = new ArrayList<>(List.of(Direction.values())); - Collections.shuffle(directions, random); + private Optional searchPlantablePos(World world, @NotNull BlockPos searchPos, TagKey searchBlockState, Random random) { + List directions = Util.copyShuffled(Direction.values(), random); int i = 0; int range = 8; BlockPos currentPos = new BlockPos(searchPos.getX(), searchPos.getY(), searchPos.getZ()); while (i < 6) { - if (range < 8 && world.getBlockState(currentPos.offset(directions.get(i))).equals(searchBlockState)) { + if (range < 8 && world.getBlockState(currentPos.offset(directions.get(i))).isIn(searchBlockState)) { range++; currentPos = currentPos.offset(directions.get(i)); } else { @@ -223,7 +228,7 @@ public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos po /** * Can be placed in up to 2 blocks deep water / liquid crystal - * growing on clay only + * growing on SpectrumBlockTags.QUITOXIC_REEDS_PLANTABLE only */ @Override public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { @@ -250,8 +255,4 @@ public float getMaxHorizontalModelOffset() { return 0.15F; } - @Override - public OffsetType getOffsetType() { - return OffsetType.XYZ; - } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/StormStoneBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/StormStoneBlock.java new file mode 100644 index 0000000000..78f74eea83 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/StormStoneBlock.java @@ -0,0 +1,107 @@ +package de.dafuqs.spectrum.blocks.conditional; + +import de.dafuqs.revelationary.api.revelations.RevelationAware; +import de.dafuqs.spectrum.SpectrumCommon; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.ShapeContext; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LightningEntity; +import net.minecraft.item.Item; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.Identifier; +import net.minecraft.util.Pair; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldView; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.explosion.Explosion; + +import java.util.Hashtable; +import java.util.Map; + +public class StormStoneBlock extends Block implements RevelationAware { + + protected static final VoxelShape SHAPE = Block.createCuboidShape(4.0D, 0.0D, 4.0D, 11.0D, 2.0D, 11.0D); + + public StormStoneBlock(Settings settings) { + super(settings); + RevelationAware.register(this); + } + + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + return world.getBlockState(pos.down()).isSolidBlock(world, pos); + } + + @Override + public void onDestroyedByExplosion(World world, BlockPos pos, Explosion explosion) { + super.onDestroyedByExplosion(world, pos, explosion); + + if (world.isSkyVisible(pos)) { + LightningEntity lightningEntity = EntityType.LIGHTNING_BOLT.create(world); + if (lightningEntity != null) { + lightningEntity.refreshPositionAfterTeleport(Vec3d.ofBottomCenter(pos)); + world.spawnEntity(lightningEntity); + } + } + + int power = 2; + Biome biomeAtPos = world.getBiome(pos).value(); + if (!biomeAtPos.isHot(pos) && !biomeAtPos.isCold(pos)) { + // there is no rain in deserts or snow + power = world.isThundering() ? 4 : world.isRaining() ? 3 : 2; + } + world.createExplosion(null, pos.getX(), pos.getY(), pos.getZ(), power, Explosion.DestructionType.BREAK); + } + + @Override + public Identifier getCloakAdvancementIdentifier() { + return SpectrumCommon.locate("milestones/reveal_storm_stones"); + } + + @Deprecated + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + if (this.isVisibleTo(context)) { + return SHAPE; + } + return VoxelShapes.empty(); + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + if (this.isVisibleTo(context)) { + return SHAPE; + } + return VoxelShapes.empty(); + } + + @Override + public Map getBlockStateCloaks() { + Hashtable hashtable = new Hashtable<>(); + hashtable.put(this.getDefaultState(), Blocks.AIR.getDefaultState()); + return hashtable; + } + + @Override + public Pair getItemCloak() { + return null; + } + + /** + * If it gets ticked there is a chance to vanish + */ + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (random.nextFloat() < 0.1) { + world.setBlockState(pos, Blocks.AIR.getDefaultState(), 3); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/amaranth/AmaranthCropBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/amaranth/AmaranthCropBlock.java index 5d27598f7d..38b59159ab 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/amaranth/AmaranthCropBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/amaranth/AmaranthCropBlock.java @@ -5,7 +5,11 @@ import de.dafuqs.spectrum.registries.SpectrumItems; import de.dafuqs.spectrum.registries.client.SpectrumColorProviders; import net.id.incubus_core.block.TallCropBlock; -import net.minecraft.block.*; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.block.BlockState; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.TallPlantBlock; import net.minecraft.block.enums.DoubleBlockHalf; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/blood_orchid/BloodOrchidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/blood_orchid/BloodOrchidBlock.java new file mode 100644 index 0000000000..6bc9a9e0a0 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/blood_orchid/BloodOrchidBlock.java @@ -0,0 +1,118 @@ +package de.dafuqs.spectrum.blocks.conditional.blood_orchid; + +import java.util.Hashtable; +import java.util.Map; + +import de.dafuqs.revelationary.api.revelations.RevelationAware; +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.helpers.Support; +import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; +import de.dafuqs.spectrum.registries.SpectrumItems; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; +import net.minecraft.block.BlockState; +import net.minecraft.block.Fertilizable; +import net.minecraft.block.FlowerBlock; +import net.minecraft.entity.effect.StatusEffect; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.IntProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.Identifier; +import net.minecraft.util.Pair; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; + +public class BloodOrchidBlock extends FlowerBlock implements Fertilizable, RevelationAware { + + public static final Identifier ADVANCEMENT_IDENTIFIER = SpectrumCommon.locate("midgame/collect_blood_orchid_petal"); + public static final IntProperty AGE = Properties.AGE_5; + + public BloodOrchidBlock(StatusEffect suspiciousStewEffect, int effectDuration, Settings settings) { + super(suspiciousStewEffect, effectDuration, settings); + this.setDefaultState(this.stateManager.getDefaultState().with(AGE, 0)); + RevelationAware.register(this); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(AGE); + } + + private void growOnce(BlockState state, ServerWorld world, BlockPos pos) { + BlockState newState = state.with(AGE, state.get(AGE) + 1); + world.setBlockState(pos, newState); + world.playSound(null, pos, state.getSoundGroup().getPlaceSound(), SoundCategory.BLOCKS, 1.0F, 1.0F); + } + + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (state.get(AGE) < Properties.AGE_5_MAX && random.nextFloat() <= 0.25) { + growOnce(state, world, pos); + } + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + int age = state.get(AGE); + if (age > 0) { + if (world.isClient) { + return ActionResult.SUCCESS; + } else { + world.setBlockState(pos, state.with(AGE, age - 1)); + Support.givePlayer(player, SpectrumItems.BLOOD_ORCHID_PETAL.getDefaultStack()); + world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 1.0F, 0.9F + world.random.nextFloat() * 0.2F); + if (player instanceof ServerPlayerEntity serverPlayerEntity) { + SpectrumAdvancementCriteria.BLOOD_ORCHID_PLUCKING.trigger(serverPlayerEntity); + } + return ActionResult.CONSUME; + } + } + return ActionResult.PASS; + } + + @Override + public Identifier getCloakAdvancementIdentifier() { + return ADVANCEMENT_IDENTIFIER; + } + + @Override + public Map getBlockStateCloaks() { + Hashtable hashtable = new Hashtable<>(); + for (int i = 0; i <= Properties.AGE_5_MAX; i++) { + hashtable.put(this.getDefaultState().with(AGE, i), Blocks.RED_TULIP.getDefaultState()); + } + return hashtable; + } + + @Override + public Pair getItemCloak() { + return new Pair<>(this.asItem(), Blocks.RED_TULIP.asItem()); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return state.get(AGE) < Properties.AGE_5_MAX; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + growOnce(state, world, pos); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/blood_orchid/PottedBloodOrchidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/blood_orchid/PottedBloodOrchidBlock.java new file mode 100644 index 0000000000..02d80bf2c9 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/blood_orchid/PottedBloodOrchidBlock.java @@ -0,0 +1,40 @@ +package de.dafuqs.spectrum.blocks.conditional.blood_orchid; + +import de.dafuqs.revelationary.api.revelations.RevelationAware; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FlowerPotBlock; +import net.minecraft.item.Item; +import net.minecraft.util.Identifier; +import net.minecraft.util.Pair; +import org.jetbrains.annotations.Nullable; + +import java.util.Hashtable; +import java.util.Map; + +public class PottedBloodOrchidBlock extends FlowerPotBlock implements RevelationAware { + + public PottedBloodOrchidBlock(Block content, Settings settings) { + super(content, settings); + RevelationAware.register(this); + } + + @Override + public Identifier getCloakAdvancementIdentifier() { + return BloodOrchidBlock.ADVANCEMENT_IDENTIFIER; + } + + @Override + public Map getBlockStateCloaks() { + Map map = new Hashtable<>(); + map.put(this.getDefaultState(), Blocks.POTTED_RED_TULIP.getDefaultState()); + return map; + } + + @Override + public @Nullable Pair getItemCloak() { + return new Pair<>(this.asItem(), Blocks.POTTED_RED_TULIP.asItem()); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredLeavesBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredLeavesBlock.java similarity index 97% rename from src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredLeavesBlock.java rename to src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredLeavesBlock.java index 8018dc512b..eb6cbc9374 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredLeavesBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredLeavesBlock.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.blocks.conditional; +package de.dafuqs.spectrum.blocks.conditional.colored_tree; import com.google.common.collect.Maps; import de.dafuqs.revelationary.api.revelations.RevelationAware; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredLogBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredLogBlock.java similarity index 96% rename from src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredLogBlock.java rename to src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredLogBlock.java index d556400c58..27e1e523a7 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredLogBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredLogBlock.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.blocks.conditional; +package de.dafuqs.spectrum.blocks.conditional.colored_tree; import com.google.common.collect.Maps; import de.dafuqs.revelationary.api.revelations.RevelationAware; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredSaplingBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredSaplingBlock.java similarity index 88% rename from src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredSaplingBlock.java rename to src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredSaplingBlock.java index a0804d9762..aaced69264 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/conditional/ColoredSaplingBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/ColoredSaplingBlock.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.blocks.conditional; +package de.dafuqs.spectrum.blocks.conditional.colored_tree; import com.google.common.collect.Maps; import de.dafuqs.revelationary.api.revelations.RevelationAware; @@ -17,6 +17,7 @@ public class ColoredSaplingBlock extends SaplingBlock implements RevelationAware { + public static final Identifier ADVANCEMENT_IDENTIFIER = SpectrumCommon.locate("milestones/reveal_colored_saplings"); private static final Map SAPLINGS = Maps.newEnumMap(DyeColor.class); protected final DyeColor color; @@ -29,7 +30,7 @@ public ColoredSaplingBlock(Settings settings, DyeColor color) { @Override public Identifier getCloakAdvancementIdentifier() { - return SpectrumCommon.locate("milestones/reveal_colored_saplings"); + return ADVANCEMENT_IDENTIFIER; } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/PottedColoredSaplingBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/PottedColoredSaplingBlock.java new file mode 100644 index 0000000000..0b86b49f14 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/conditional/colored_tree/PottedColoredSaplingBlock.java @@ -0,0 +1,40 @@ +package de.dafuqs.spectrum.blocks.conditional.colored_tree; + +import de.dafuqs.revelationary.api.revelations.RevelationAware; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FlowerPotBlock; +import net.minecraft.item.Item; +import net.minecraft.util.Identifier; +import net.minecraft.util.Pair; +import org.jetbrains.annotations.Nullable; + +import java.util.Hashtable; +import java.util.Map; + +public class PottedColoredSaplingBlock extends FlowerPotBlock implements RevelationAware { + + public PottedColoredSaplingBlock(Block content, Settings settings) { + super(content, settings); + RevelationAware.register(this); + } + + @Override + public Identifier getCloakAdvancementIdentifier() { + return ColoredSaplingBlock.ADVANCEMENT_IDENTIFIER; + } + + @Override + public Map getBlockStateCloaks() { + Map map = new Hashtable<>(); + map.put(this.getDefaultState(), Blocks.POTTED_OAK_SAPLING.getDefaultState()); + return map; + } + + @Override + public @Nullable Pair getItemCloak() { + return new Pair<>(this.asItem(), Blocks.POTTED_OAK_SAPLING.asItem()); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlock.java index 83b7eff040..8977253a14 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlock.java @@ -1,33 +1,27 @@ package de.dafuqs.spectrum.blocks.crystallarieum; -import de.dafuqs.spectrum.helpers.Support; +import de.dafuqs.spectrum.blocks.InWorldInteractionBlock; +import de.dafuqs.spectrum.blocks.enchanter.EnchanterBlockEntity; +import de.dafuqs.spectrum.energy.InkStorageItem; import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.Block; -import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityTicker; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.Entity; import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.ai.pathing.NavigationType; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; -import net.minecraft.screen.ScreenHandler; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; -import net.minecraft.util.ItemScatterer; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class CrystallarieumBlock extends BlockWithEntity { +public class CrystallarieumBlock extends InWorldInteractionBlock { public CrystallarieumBlock(Settings settings) { super(settings); @@ -42,17 +36,7 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { @Nullable @Override public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return !world.isClient ? checkType(type, SpectrumBlockEntities.CRYSTALLARIEUM, CrystallarieumBlockEntity::serverTick) : checkType(type, SpectrumBlockEntities.CRYSTALLARIEUM, CrystallarieumBlockEntity::clientTick); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) { - return false; + return checkType(type, SpectrumBlockEntities.CRYSTALLARIEUM, world.isClient ? CrystallarieumBlockEntity::clientTick : CrystallarieumBlockEntity::serverTick); } @Override @@ -86,50 +70,31 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (world.isClient) { return ActionResult.SUCCESS; } else { - if (world.getBlockEntity(pos) instanceof CrystallarieumBlockEntity crystallarieumBlockEntity) { - if (player.isSneaking()) { - ItemStack stack = crystallarieumBlockEntity.popCatalyst(); - Support.givePlayer(player, stack); + // if the structure is valid the player can put / retrieve blocks into the shrine + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof CrystallarieumBlockEntity crystallarieumBlockEntity) { + + ItemStack handStack = player.getStackInHand(hand); + if (player.isSneaking() || handStack.isEmpty()) { + // sneaking or empty hand: remove items + for (int i = 0; i < EnchanterBlockEntity.INVENTORY_SIZE; i++) { + if (retrieveStack(world, pos, player, hand, handStack, crystallarieumBlockEntity, i)) { + crystallarieumBlockEntity.setOwner(player); + break; + } + } + return ActionResult.CONSUME; } else { - crystallarieumBlockEntity.acceptStack(player.getStackInHand(hand), player.isCreative()); + // hand is full and inventory is empty: add + // hand is full and inventory already contains item: exchange them + int inputInventorySlotIndex = handStack.getItem() instanceof InkStorageItem ? CrystallarieumBlockEntity.INK_STORAGE_STACK_SLOT_ID : CrystallarieumBlockEntity.CATALYST_SLOT_ID; + if (exchangeStack(world, pos, player, hand, handStack, crystallarieumBlockEntity, inputInventorySlotIndex)) { + crystallarieumBlockEntity.setOwner(player); + } } } return ActionResult.CONSUME; } } - protected void openScreen(World world, BlockPos pos, PlayerEntity player) { - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof CrystallarieumBlockEntity crystallarieumBlockEntity) { - crystallarieumBlockEntity.setOwner(player); - player.openHandledScreen(crystallarieumBlockEntity); - } - } - - // drop all currently stored items - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - scatterContents(world, pos); - super.onStateReplaced(state, world, pos, newState, moved); - } - - public static void scatterContents(World world, BlockPos pos) { - Block block = world.getBlockState(pos).getBlock(); - BlockEntity blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof CrystallarieumBlockEntity crystallarieumBlockEntity) { - ItemScatterer.spawn(world, pos, crystallarieumBlockEntity.getInvStackList()); - world.updateComparators(pos, block); - } - } - - @Override - public boolean hasComparatorOutput(BlockState state) { - return true; - } - - @Override - public int getComparatorOutput(BlockState state, @NotNull World world, BlockPos pos) { - return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); - } - } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntity.java index e658aad1c5..3dd53a10b6 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntity.java @@ -1,6 +1,10 @@ package de.dafuqs.spectrum.blocks.crystallarieum; +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.blocks.InWorldInteractionBlockEntity; +import de.dafuqs.spectrum.energy.InkStorage; import de.dafuqs.spectrum.energy.InkStorageBlockEntity; +import de.dafuqs.spectrum.energy.InkStorageItem; import de.dafuqs.spectrum.energy.storage.IndividualCappedInkStorage; import de.dafuqs.spectrum.events.SpectrumGameEvents; import de.dafuqs.spectrum.helpers.InventoryHelper; @@ -12,27 +16,16 @@ import de.dafuqs.spectrum.registries.SpectrumBlockEntities; import de.dafuqs.spectrum.registries.SpectrumBlockTags; import net.minecraft.block.BlockState; -import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.Inventories; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; -import net.minecraft.network.Packet; -import net.minecraft.network.listener.ClientPlayPacketListener; -import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; import net.minecraft.particle.ParticleEffect; import net.minecraft.recipe.Recipe; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; @@ -42,39 +35,38 @@ import java.util.Optional; import java.util.UUID; -public class CrystallarieumBlockEntity extends LootableContainerBlockEntity implements PlayerOwned, InkStorageBlockEntity { +public class CrystallarieumBlockEntity extends InWorldInteractionBlockEntity implements PlayerOwned, InkStorageBlockEntity { protected final static int INVENTORY_SIZE = 2; - protected final static int INK_PROVIDER_STACK_SLOT_ID = 0; - protected final static int CATALYST_SLOT_ID = 1; + protected final static int CATALYST_SLOT_ID = 0; + protected final static int INK_STORAGE_STACK_SLOT_ID = 1; - protected DefaultedList inventory; - - public static final long INK_STORAGE_SIZE = 64*64*100; + public static final long INK_STORAGE_SIZE = 64 * 64 * 100; protected IndividualCappedInkStorage inkStorage; protected boolean inkDirty; - @Nullable protected UUID ownerUUID; + @Nullable + protected UUID ownerUUID; - @Nullable protected CrystallarieumRecipe currentRecipe; + @Nullable + protected CrystallarieumRecipe currentRecipe; protected CrystallarieumCatalyst currentCatalyst; protected int currentGrowthStageDuration; protected boolean canWork; public CrystallarieumBlockEntity(BlockPos pos, BlockState state) { - super(SpectrumBlockEntities.CRYSTALLARIEUM, pos, state); - this.inventory = DefaultedList.ofSize(INVENTORY_SIZE, ItemStack.EMPTY); + super(SpectrumBlockEntities.CRYSTALLARIEUM, pos, state, INVENTORY_SIZE); this.inkStorage = new IndividualCappedInkStorage(INK_STORAGE_SIZE); this.canWork = true; } public static void clientTick(@NotNull World world, BlockPos blockPos, BlockState blockState, CrystallarieumBlockEntity crystallarieum) { - if(crystallarieum.canWork && crystallarieum.currentRecipe != null) { + if (crystallarieum.canWork && crystallarieum.currentRecipe != null) { int amount = crystallarieum.currentRecipe.getInkPerSecond(); if (amount > 0) { ParticleEffect particleEffect = SpectrumParticleTypes.getSparkleRisingParticle(crystallarieum.currentRecipe.getInkColor().getDyeColor()); - if(amount > 199 || Support.getIntFromDecimalWithChance(amount / 200.0, world.random) > 0) { + if (amount > 199 || Support.getIntFromDecimalWithChance(amount / 200.0, world.random) > 0) { double randomX = world.getRandom().nextDouble() * 0.8; double randomZ = world.getRandom().nextDouble() * 0.8; world.addParticle(particleEffect, blockPos.getX() + 0.1 + randomX, blockPos.getY() + 1, blockPos.getZ() + 0.1 + randomZ, 0.0D, 0.03D, 0.0D); @@ -84,16 +76,26 @@ public static void clientTick(@NotNull World world, BlockPos blockPos, BlockStat } public static void serverTick(@NotNull World world, BlockPos blockPos, BlockState blockState, CrystallarieumBlockEntity crystallarieum) { - if(world.getTime() % 20 == 0 && crystallarieum.canWork && crystallarieum.currentRecipe != null) { + if (world.getTime() % 20 == 0 && crystallarieum.canWork && crystallarieum.currentRecipe != null) { + // transfer ink + ItemStack inkStorageStack = crystallarieum.getStack(INK_STORAGE_STACK_SLOT_ID); + if(inkStorageStack.getItem() instanceof InkStorageItem inkStorageItem) { + InkStorage itemInkStorage = inkStorageItem.getEnergyStorage(inkStorageStack); + long transferredAmount = InkStorage.transferInk(itemInkStorage, crystallarieum.inkStorage); + if (transferredAmount > 0) { + inkStorageItem.setEnergyStorage(inkStorageStack, itemInkStorage); + } + } + // advance growing - if(crystallarieum.currentCatalyst == null) { - if(!crystallarieum.currentRecipe.growsWithoutCatalyst()) { + if (crystallarieum.currentCatalyst == null) { + if (!crystallarieum.currentRecipe.growsWithoutCatalyst()) { return; } // running without catalyst int consumedInk = crystallarieum.currentRecipe.getInkPerSecond(); - if(crystallarieum.inkStorage.drainEnergy(crystallarieum.currentRecipe.getInkColor(), consumedInk) < consumedInk) { + if (crystallarieum.inkStorage.drainEnergy(crystallarieum.currentRecipe.getInkColor(), consumedInk) < consumedInk) { crystallarieum.canWork = false; crystallarieum.setInkDirty(); crystallarieum.updateInClientWorld(); @@ -105,7 +107,7 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat } else { // running with catalyst int consumedInk = (int) Math.ceil(crystallarieum.currentRecipe.getInkPerSecond() * crystallarieum.currentCatalyst.inkConsumptionMod); - if(crystallarieum.inkStorage.drainEnergy(crystallarieum.currentRecipe.getInkColor(), consumedInk) < consumedInk) { + if (crystallarieum.inkStorage.drainEnergy(crystallarieum.currentRecipe.getInkColor(), consumedInk) < consumedInk) { crystallarieum.canWork = false; crystallarieum.setInkDirty(); crystallarieum.updateInClientWorld(); @@ -116,12 +118,12 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat crystallarieum.currentGrowthStageDuration += 20 * crystallarieum.currentCatalyst.growthAccelerationMod; // check if a catalyst should get used up - if(world.random.nextFloat() < crystallarieum.currentCatalyst.consumeChancePerSecond) { + if (world.random.nextFloat() < crystallarieum.currentCatalyst.consumeChancePerSecond) { ItemStack catalystStack = crystallarieum.getStack(CATALYST_SLOT_ID); catalystStack.decrement(1); - if(catalystStack.isEmpty()) { + if (catalystStack.isEmpty()) { crystallarieum.currentCatalyst = null; - if(!crystallarieum.currentRecipe.growsWithoutCatalyst()) { + if (!crystallarieum.currentRecipe.growsWithoutCatalyst()) { crystallarieum.canWork = false; } } @@ -129,21 +131,21 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat } // advanced enough? grow! - if(crystallarieum.currentGrowthStageDuration >= crystallarieum.currentRecipe.getSecondsPerGrowthStage() * 20) { + if (crystallarieum.currentGrowthStageDuration >= crystallarieum.currentRecipe.getSecondsPerGrowthStage() * 20) { BlockPos topPos = blockPos.up(); BlockState topState = world.getBlockState(topPos); for (Iterator it = crystallarieum.currentRecipe.getGrowthStages().iterator(); it.hasNext(); ) { BlockState state = it.next(); - if(state.equals(topState)) { - if(it.hasNext()) { + if (state.equals(topState)) { + if (it.hasNext()) { BlockState targetState = it.next(); world.setBlockState(topPos, targetState); if (targetState.isIn(SpectrumBlockTags.CRYSTAL_APOTHECARY_HARVESTABLE)) { - world.emitGameEvent(SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, topPos); + world.emitGameEvent(null, SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, topPos); } // if the stone on top can not grow any further: pause - if(!it.hasNext()) { + if (!it.hasNext()) { crystallarieum.canWork = false; crystallarieum.updateInClientWorld(); } @@ -156,12 +158,21 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat } } + public void inventoryChanged() { + if(this.currentRecipe != null) { + Optional optionalCatalyst = this.currentRecipe.getCatalyst(getStack(CATALYST_SLOT_ID)); + optionalCatalyst.ifPresent(crystallarieumCatalyst -> this.currentCatalyst = crystallarieumCatalyst); + } + + this.canWork = true; + super.inventoryChanged(); + } + @Override public void readNbt(NbtCompound nbt) { super.readNbt(nbt); - Inventories.readNbt(nbt, this.inventory); - if(nbt.contains("InkStorage", NbtElement.COMPOUND_TYPE)) { + if (nbt.contains("InkStorage", NbtElement.COMPOUND_TYPE)) { this.inkStorage = IndividualCappedInkStorage.fromNbt(nbt.getCompound("InkStorage")); } this.currentGrowthStageDuration = nbt.getShort("CraftingTime"); @@ -175,20 +186,26 @@ public void readNbt(NbtCompound nbt) { this.currentRecipe = null; if (nbt.contains("CurrentRecipe")) { + this.currentGrowthStageDuration = nbt.getInt("CurrentGrowthStageDuration"); String recipeString = nbt.getString("CurrentRecipe"); - if (!recipeString.isEmpty() && world != null) { - Optional optionalRecipe = world.getRecipeManager().get(new Identifier(recipeString)); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); if (optionalRecipe.isPresent() && (optionalRecipe.get() instanceof CrystallarieumRecipe crystallarieumRecipe)) { this.currentRecipe = crystallarieumRecipe; + Optional oc = this.currentRecipe.getCatalyst(getStack(CATALYST_SLOT_ID)); + oc.ifPresent(crystallarieumCatalyst -> this.currentCatalyst = crystallarieumCatalyst); } } + } else { + this.currentGrowthStageDuration = 0; + this.currentRecipe = null; + this.currentCatalyst = null; } } @Override public void writeNbt(NbtCompound nbt) { super.writeNbt(nbt); - Inventories.writeNbt(nbt, this.inventory); nbt.put("InkStorage", this.inkStorage.toNbt()); nbt.putShort("CraftingTime", (short) this.currentGrowthStageDuration); nbt.putBoolean("CanWork", this.canWork); @@ -197,11 +214,12 @@ public void writeNbt(NbtCompound nbt) { } if (this.currentRecipe != null) { nbt.putString("CurrentRecipe", this.currentRecipe.getId().toString()); + nbt.putInt("CurrentGrowthStageDuration", this.currentGrowthStageDuration); } } @Override - public UUID getOwnerUUID() { + public @Nullable UUID getOwnerUUID() { return this.ownerUUID; } @@ -210,31 +228,6 @@ public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); } - @Override - protected Text getContainerName() { - return new TranslatableText("block.spectrum.crystallarieum"); - } - - @Override - protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { - return null; - } - - @Override - public int size() { - return INVENTORY_SIZE; - } - - @Override - protected DefaultedList getInvStackList() { - return this.inventory; - } - - @Override - protected void setInvStackList(DefaultedList list) { - this.inventory = list; - } - @Nullable public CrystallarieumRecipe getCurrentRecipe() { return this.currentRecipe; @@ -242,13 +235,26 @@ public CrystallarieumRecipe getCurrentRecipe() { /** * Searches recipes for a valid one using itemStack and plants the first block of that recipe on top + * * @param itemStack stack that is tried to plant on top, if a valid recipe */ public void acceptStack(ItemStack itemStack, boolean creative) { - if(world.getBlockState(pos.up()).isAir()) { + if (itemStack.getItem() instanceof InkStorageItem) { + ItemStack currentInkStorageStack = getStack(INK_STORAGE_STACK_SLOT_ID); + if (currentInkStorageStack.isEmpty()) { + setStack(INK_STORAGE_STACK_SLOT_ID, currentInkStorageStack.copy()); + if (!creative) { + itemStack.setCount(0); + } + world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F); + } + return; + } + + if (world.getBlockState(pos.up()).isAir()) { CrystallarieumRecipe recipe = CrystallarieumRecipe.getRecipeForStack(itemStack); if (recipe != null) { - if(!creative) { + if (!creative) { itemStack.decrement(1); } BlockState placedState = recipe.getGrowthStages().get(0); @@ -258,63 +264,35 @@ public void acceptStack(ItemStack itemStack, boolean creative) { return; } } - if(this.currentRecipe != null) { + if (this.currentRecipe != null) { ItemStack currentCatalystStack = getStack(CATALYST_SLOT_ID); - if(currentCatalystStack.isEmpty()) { + if (currentCatalystStack.isEmpty()) { Optional optionalCatalyst = this.currentRecipe.getCatalyst(itemStack); - if(optionalCatalyst.isPresent()) { + if (optionalCatalyst.isPresent()) { setStack(CATALYST_SLOT_ID, itemStack.copy()); - if(!creative) { + if (!creative) { itemStack.setCount(0); } this.currentCatalyst = optionalCatalyst.get(); - this.canWork = true; - updateInClientWorld(); - markDirty(); + inventoryChanged(); } - } else if(ItemStack.canCombine(currentCatalystStack, itemStack)) { + } else if (ItemStack.canCombine(currentCatalystStack, itemStack)) { InventoryHelper.combineStacks(currentCatalystStack, itemStack); world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F); - this.canWork = true; - updateInClientWorld(); - markDirty(); + inventoryChanged(); } } } - public ItemStack popCatalyst() { - ItemStack catalystStack = getStack(CATALYST_SLOT_ID); - setStack(CATALYST_SLOT_ID, ItemStack.EMPTY); - this.currentCatalyst = null; - updateInClientWorld(); - return catalystStack; - } - - // Called when the chunk is first loaded to initialize this be - public NbtCompound toInitialChunkDataNbt() { - NbtCompound nbtCompound = new NbtCompound(); - this.writeNbt(nbtCompound); - return nbtCompound; - } - - @Nullable - @Override - public Packet toUpdatePacket() { - return BlockEntityUpdateS2CPacket.create(this); - } - - public void updateInClientWorld() { - ((ServerWorld) world).getChunkManager().markForUpdate(pos); - } - /** * Triggered when the block on top of the crystallarieum has changed * Sets the new recipe matching that block state + * * @param newState the new block state on top - * @param recipe optionally the matching CrystallarieumRecipe. If null is passed it will be calculated + * @param recipe optionally the matching CrystallarieumRecipe. If null is passed it will be calculated */ public void onTopBlockChange(BlockState newState, @Nullable CrystallarieumRecipe recipe) { - if(newState.isAir()) { // fast fail + if (newState.isAir()) { // fast fail this.currentRecipe = null; this.canWork = false; markDirty(); @@ -323,9 +301,9 @@ public void onTopBlockChange(BlockState newState, @Nullable CrystallarieumRecipe this.currentRecipe = recipe == null ? CrystallarieumRecipe.getRecipeForState(newState) : recipe; ItemStack catalystStack = getStack(CATALYST_SLOT_ID); - if(!catalystStack.isEmpty()) { + if (!catalystStack.isEmpty()) { Optional newCatalyst = this.currentRecipe.getCatalyst(catalystStack); - if(newCatalyst.isPresent()) { + if (newCatalyst.isPresent()) { this.currentCatalyst = newCatalyst.get(); } else { this.currentCatalyst = null; @@ -335,8 +313,7 @@ public void onTopBlockChange(BlockState newState, @Nullable CrystallarieumRecipe } } this.canWork = true; - markDirty(); - updateInClientWorld(); + inventoryChanged(); } } @@ -355,4 +332,14 @@ public boolean getInkDirty() { return this.inkDirty; } + @Override + public boolean isValid(int slot, ItemStack stack) { + if (slot == INK_STORAGE_STACK_SLOT_ID) { + return stack.getItem() instanceof InkStorageItem; + } else if (this.currentRecipe != null) { + return this.currentRecipe.getCatalyst(stack).isPresent(); + } + return false; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntityRenderer.java index db192ba23a..79ffb723ee 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/crystallarieum/CrystallarieumBlockEntityRenderer.java @@ -34,43 +34,56 @@ public CrystallarieumBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) @Override public void render(CrystallarieumBlockEntity entity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - ItemStack catalystStack = entity.getStack(CrystallarieumBlockEntity.CATALYST_SLOT_ID); - CrystallarieumRecipe recipe = entity.getCurrentRecipe(); - if(recipe != null) { + if (recipe != null) { InkColor inkColor = recipe.getInkColor(); VertexConsumer vertexConsumer = SPRITE_IDENTIFIER.getVertexConsumer(vertexConsumers, RenderLayer::getEntityCutout); body.render(matrices, vertexConsumer, light, overlay, inkColor.getColor().getX(), inkColor.getColor().getY(), inkColor.getColor().getZ(), 1.0F); } - if(!catalystStack.isEmpty()) { + ItemStack inkStorageStack = entity.getStack(CrystallarieumBlockEntity.INK_STORAGE_STACK_SLOT_ID); + if(!inkStorageStack.isEmpty()) { + matrices.push(); + + float time = entity.getWorld().getTime() % 50000 + tickDelta; + double height = 1 + Math.sin((time) / 8.0) / 6.0; // item height + + matrices.translate(0.5, 1.0 + height, 0.5); + matrices.multiply(MinecraftClient.getInstance().getBlockEntityRenderDispatcher().camera.getRotation()); + matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180.0F)); + MinecraftClient.getInstance().getItemRenderer().renderItem(inkStorageStack, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); + matrices.pop(); + } + + ItemStack catalystStack = entity.getStack(CrystallarieumBlockEntity.CATALYST_SLOT_ID); + if (!catalystStack.isEmpty()) { matrices.push(); int count = catalystStack.getCount(); - if(count > 0) { + if (count > 0) { matrices.translate(0.65, 0.95, 0.65); matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(270)); matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180)); matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(70)); MinecraftClient.getInstance().getItemRenderer().renderItem(catalystStack, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); - if(count > 4) { + if (count > 4) { matrices.translate(0.45, 0.0, 0.01); matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(140)); MinecraftClient.getInstance().getItemRenderer().renderItem(catalystStack, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); - if(count > 16) { + if (count > 16) { matrices.translate(0.2, 0.5, 0.01); matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(100)); MinecraftClient.getInstance().getItemRenderer().renderItem(catalystStack, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); - if(count > 32) { + if (count > 32) { matrices.translate(-0.55, 0.0, 0.01); matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(40)); MinecraftClient.getInstance().getItemRenderer().renderItem(catalystStack, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); - if(count > 48) { + if (count > 48) { matrices.translate(0.6, 0.0, 0.01); matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(170)); MinecraftClient.getInstance().getItemRenderer().renderItem(catalystStack, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/AloeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/AloeBlock.java new file mode 100644 index 0000000000..15ea0457cc --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/AloeBlock.java @@ -0,0 +1,97 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.entity.player.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; + +public class AloeBlock extends PlantBlock implements Fertilizable { + + protected static final IntProperty AGE = Properties.AGE_4; + protected static final VoxelShape SHAPE = Block.createCuboidShape(4.0, 0.0, 4.0, 12.0, 9.0, 12.0); + protected static final double GROW_CHANCE = 0.4; + protected static final int MAX_LIGHT_LEVEL = 10; + + public AloeBlock(Settings settings) { + super(settings); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(AGE); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + return world.getBaseLightLevel(pos, 0) <= MAX_LIGHT_LEVEL && super.canPlaceAt(state, world, pos); + } + + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isIn(SpectrumBlockTags.ALOE_PLANTABLE); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return state.get(AGE) < Properties.AGE_4_MAX; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return world.getBaseLightLevel(pos, 0) <= MAX_LIGHT_LEVEL && random.nextFloat() > GROW_CHANCE; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + if (canPlaceAt(state, world, pos)) { + int age = state.get(AGE); + if (age < Properties.AGE_4_MAX) { + world.setBlockState(pos, state.with(AGE, age + 1)); + world.playSound(null, pos, state.getSoundGroup().getPlaceSound(), SoundCategory.BLOCKS, 1.0F, 1.0F); + + if (world.getBlockState(pos.down()).isIn(SpectrumBlockTags.ALOE_CONVERTED)) { + world.setBlockState(pos.down(), Blocks.SAND.getDefaultState()); + } + } + } else { + Block.replace(state, Blocks.AIR.getDefaultState(), world, pos, 10, 512); + } + } + + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + grow(world, random, pos, state); + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + int age = state.get(AGE); + if (age > 1) { + if (world.isClient) { + return ActionResult.SUCCESS; + } else { + world.setBlockState(pos, state.with(AGE, age - 1)); + Support.givePlayer(player, this.asItem().getDefaultStack()); + world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 1.0F, 0.9F + world.random.nextFloat() * 0.2F); + return ActionResult.CONSUME; + } + } + return ActionResult.PASS; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/BristleSproutsBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/BristleSproutsBlock.java new file mode 100644 index 0000000000..83d5063acc --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/BristleSproutsBlock.java @@ -0,0 +1,54 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.deeper_down.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; + +public class BristleSproutsBlock extends PlantBlock implements Fertilizable { + + protected static final VoxelShape SHAPE = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 3.0, 14.0); + + public BristleSproutsBlock(AbstractBlock.Settings settings) { + super(settings); + } + + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + if (entity instanceof LivingEntity && entity.getType() != EntityType.FOX && entity.getType() != EntityType.BEE) { + entity.slowMovement(state, new Vec3d(0.8, 0.75, 0.8)); + if (!world.isClient && (entity.lastRenderX != entity.getX() || entity.lastRenderZ != entity.getZ())) { + double difX = Math.abs(entity.getX() - entity.lastRenderX); + double difZ = Math.abs(entity.getZ() - entity.lastRenderZ); + if (difX >= 0.003 || difZ >= 0.003) { + entity.damage(DamageSource.SWEET_BERRY_BUSH, 1.0F); + } + } + } + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return true; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + DDConfiguredFeatures.BRISTLE_SPROUTS.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/DoomBloomBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/DoomBloomBlock.java new file mode 100644 index 0000000000..72b1664f8c --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/DoomBloomBlock.java @@ -0,0 +1,171 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.explosion.*; +import org.jetbrains.annotations.*; + +public class DoomBloomBlock extends PlantBlock implements Fertilizable { + + protected static final IntProperty AGE = Properties.AGE_4; + protected static final int AGE_MAX = Properties.AGE_4_MAX; + protected static final VoxelShape SHAPE = Block.createCuboidShape(4.0, 0.0, 4.0, 12.0, 9.0, 12.0); + protected static final double GROW_CHANCE = 0.2; + + public DoomBloomBlock(Settings settings) { + super(settings); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(AGE); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isIn(SpectrumBlockTags.DOOMBLOOM_PLANTABLE); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return state.get(AGE) < Properties.AGE_4_MAX; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return random.nextFloat() > GROW_CHANCE; + } + + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + grow(world, random, pos, state); + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + if (canPlaceAt(state, world, pos)) { + int age = state.get(AGE); + if (age < Properties.AGE_4_MAX) { + world.setBlockState(pos, state.with(AGE, age + 1)); + world.playSound(null, pos, state.getSoundGroup().getPlaceSound(), SoundCategory.BLOCKS, 1.0F, 1.0F); + } + } else { + Block.replace(state, Blocks.AIR.getDefaultState(), world, pos, 10, 512); + } + } + + @Override + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + super.randomDisplayTick(state, world, pos, random); + if (state.get(AGE) == AGE_MAX) { + int r = random.nextInt(100); + if (r < 10) { + double posX = (double) pos.getX() + 0.25D + random.nextDouble() * 0.5D; + double posY = (double) pos.getY() + random.nextDouble() * 0.5D; + double posZ = (double) pos.getZ() + 0.25D + random.nextDouble() * 0.5D; + world.addParticle(ParticleTypes.LAVA, posX, posY, posZ, 0.0D, 0.0D, 0.0D); + if (r == 0) { + world.playSound(posX, posY, posZ, SoundEvents.BLOCK_LAVA_POP, SoundCategory.BLOCKS, 0.2F + random.nextFloat() * 0.2F, 0.9F + random.nextFloat() * 0.15F, false); + } + } + if (random.nextInt(100) == 0) { + world.playSound(pos.getX(), pos.getY(), pos.getZ(), SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.2F + random.nextFloat() * 0.2F, 0.9F + random.nextFloat() * 0.15F, false); + } + } + } + + @Override + public void onDestroyedByExplosion(World world, BlockPos pos, Explosion explosion) { + super.onDestroyedByExplosion(world, pos, explosion); + BlockState state = world.getBlockState(pos); + if (state.getBlock() instanceof DoomBloomBlock) { + explode(world, pos, state); + } + } + + @Override + public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) { + super.onSteppedOn(world, pos, state, entity); + explode(world, pos, state); + } + + @Override + public void onLandedUpon(World world, BlockState state, BlockPos pos, Entity entity, float fallDistance) { + super.onLandedUpon(world, state, pos, entity, fallDistance); + explode(world, pos, state); + } + + @Override + public void onProjectileHit(World world, BlockState state, BlockHitResult hit, ProjectileEntity projectile) { + super.onProjectileHit(world, state, hit, projectile); + explode(world, hit.getBlockPos(), state); + } + + @Override + public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean notify) { + super.neighborUpdate(state, world, pos, block, fromPos, notify); + if (world.random.nextInt(10) == 0) { + explode(world, pos, state); + } + } + + // does not run in creative + // => creative players can easily break it without causing an explosion + @Override + public void afterBreak(World world, PlayerEntity player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { + if (EnchantmentHelper.getLevel(SpectrumEnchantments.RESONANCE, stack) > 0) { + super.afterBreak(world, player, pos, state, blockEntity, stack); + } else { + explode(world, pos, state); + } + } + + protected static void explode(World world, BlockPos pos, BlockState state) { + if (!world.isClient && state.get(AGE) == AGE_MAX) { + world.createExplosion(null, SpectrumDamageSources.INCANDESCENCE, new ExplosionBehavior(), pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3.0F, true, Explosion.DestructionType.DESTROY); + dropStack(world, pos, new ItemStack(SpectrumItems.DOOMBLOOM_SEED, world.random.nextBetween(2, 4))); + } + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + int age = state.get(AGE); + if (age == AGE_MAX) { + if (world.isClient) { + return ActionResult.SUCCESS; + } else { + world.setBlockState(pos, state.with(AGE, 0)); + int randomCount = world.random.nextBetween(2, 3); + Support.givePlayer(player, new ItemStack(Items.GUNPOWDER, randomCount)); + world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 1.0F, 0.9F + world.random.nextFloat() * 0.2F); + return ActionResult.CONSUME; + } + } + return ActionResult.PASS; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/Dragonjag.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/Dragonjag.java new file mode 100644 index 0000000000..3f72570f64 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/Dragonjag.java @@ -0,0 +1,23 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +public interface Dragonjag { + + enum Variant { + GREEN, + RED, + PINK, + PURPLE, + BLACK + } + + Dragonjag.Variant getVariant(); + + static boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isOpaqueFullCube(world, pos); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/GilledFungusBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/GilledFungusBlock.java new file mode 100644 index 0000000000..bc927d8841 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/GilledFungusBlock.java @@ -0,0 +1,54 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.worldgen.features.*; +import net.minecraft.block.*; +import net.minecraft.server.world.*; +import net.minecraft.tag.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.registry.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; + +import java.util.function.*; + +public class GilledFungusBlock extends PlantBlock implements Fertilizable { + + protected static final VoxelShape SHAPE = Block.createCuboidShape(4.0, 0.0, 4.0, 12.0, 9.0, 12.0); + private static final double GROW_CHANCE = 0.4; + private final Supplier>> feature; + + public GilledFungusBlock(AbstractBlock.Settings settings, Supplier>> feature) { + super(settings); + this.feature = feature; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isIn(BlockTags.NYLIUM) || floor.isOf(Blocks.MYCELIUM) || floor.isOf(Blocks.SOUL_SOIL) || super.canPlantOnTop(floor, world, pos); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + Block validBaseBlock = ((GilledFungusFeatureConfig) this.feature.get().value().config()).validBaseBlock().getBlock(); + BlockState baseBlock = world.getBlockState(pos.down()); + return baseBlock.isOf(validBaseBlock); + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return random.nextFloat() < GROW_CHANCE; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + this.feature.get().value().generate(world, world.getChunkManager().getChunkGenerator(), random, pos); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingEventQueue.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingEventQueue.java new file mode 100644 index 0000000000..80fee1ccf1 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingEventQueue.java @@ -0,0 +1,44 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.events.listeners.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.effect.*; +import net.minecraft.server.world.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; + +class HummingEventQueue extends EventQueue { + + public HummingEventQueue(PositionSource positionSource, int range, Callback listener) { + super(positionSource, range, listener); + } + + @Override + public void acceptEvent(World world, GameEvent.Message message, Vec3d sourcePos) { + Vec3d pos = message.getEmitterPos(); + EventEntry eventEntry = new EventEntry(message, MathHelper.floor(pos.distanceTo(sourcePos))); + int delay = eventEntry.distance * 2; + this.schedule(eventEntry, delay); + + if (message.getEvent() == SpectrumGameEvents.HUMMINGSTONE_HUMMING) { + SpectrumS2CPacketSender.playColorTransmission((ServerWorld) world, new ColoredTransmission(pos, this.positionSource, delay, DyeColor.LIME)); // TODO: customize + if (getQueuedEventCount() > 20) { + world.emitGameEvent(message.getEmitter().sourceEntity(), SpectrumGameEvents.HUMMINGSTONE_HYMN, pos); + } + } + } + + protected static class EventEntry { + public GameEvent.Message message; + public int distance; + + public EventEntry(GameEvent.Message message, int distance) { + this.message = message; + this.distance = distance; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingstoneBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingstoneBlock.java new file mode 100644 index 0000000000..92334f619b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingstoneBlock.java @@ -0,0 +1,156 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.particle.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; +import net.minecraft.world.event.listener.*; +import org.jetbrains.annotations.*; + +public class HummingstoneBlock extends BlockWithEntity { + + public static final float CHANCE_TO_ECHO_HUM_EVENT = 0.08F; + public static final BooleanProperty HUMMING = BooleanProperty.of("humming"); + + public HummingstoneBlock(Settings settings) { + super(settings); + setDefaultState(this.stateManager.getDefaultState().with(HUMMING, false)); + } + + @Override + public BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.MODEL; + } + + @Environment(EnvType.CLIENT) + @Override + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + super.randomDisplayTick(state, world, pos, random); + if (state.get(HUMMING) && random.nextFloat() < 0.3F) { + Direction direction = Direction.random(random); + if (direction != Direction.DOWN) { + BlockPos blockPos = pos.offset(direction); + BlockState blockState = world.getBlockState(blockPos); + if (!state.isOpaque() || !blockState.isSideSolidFullSquare(world, blockPos, direction.getOpposite())) { + double d = direction.getOffsetX() == 0 ? random.nextDouble() : 0.5D + (double) direction.getOffsetX() * 0.6D; + double e = direction.getOffsetY() == 0 ? random.nextDouble() : 0.5D + (double) direction.getOffsetY() * 0.6D; + double f = direction.getOffsetZ() == 0 ? random.nextDouble() : 0.5D + (double) direction.getOffsetZ() * 0.6D; + world.addParticle(ParticleTypes.NOTE, (double) pos.getX() + d, (double) pos.getY() + e, (double) pos.getZ() + f, 0.0D, 0.05D, 0.0D); + } + float pitch = 0.4F + 0.4F * pos.getX() % 8 + 0.4F * pos.getY() % 8 + 0.4F * pos.getZ() % 8; + world.playSound(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SoundEvents.BLOCK_NOTE_BLOCK_HARP, SoundCategory.BLOCKS, 0.2F + random.nextFloat() * 0.1F, pitch, false); // TODO: customize + } + } + } + + protected void appendProperties(StateManager.Builder builder) { + builder.add(HUMMING); + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + return super.onUse(state, world, pos, player, hand, hit); + } + + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + super.randomTick(state, world, pos, random); + if (state.get(HUMMING)) { + stopHumming(world, pos, state); + } + } + + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + super.onEntityCollision(state, world, pos, entity); + startHumming(world, pos, state, entity, false); + } + + @Override + public void onLandedUpon(World world, BlockState state, BlockPos pos, Entity entity, float fallDistance) { + super.onLandedUpon(world, state, pos, entity, fallDistance); + startHumming(world, pos, state, entity, false); + } + + @Override + public void onProjectileHit(World world, BlockState state, BlockHitResult hit, ProjectileEntity projectile) { + if (!world.isClient) { + startHumming(world, hit.getBlockPos(), state, projectile.getOwner(), false); + } + } + + @Override + @Nullable + public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { + if (!world.isClient) { + return checkType(type, SpectrumBlockEntities.HUMMINGSTONE, HummingstoneBlockEntity::serverTick); + } + return null; + } + + public static void startHumming(World world, BlockPos pos, BlockState state, @Nullable Entity entity, boolean causedByOtherHum) { + if (!(state.getBlock() instanceof HummingstoneBlock)) { + return; + } + + world.playSound(null, pos, SoundEvents.BLOCK_NOTE_BLOCK_PLING, SoundCategory.BLOCKS, 1.0F, 1.0F); + if (!state.get(HUMMING)) { + world.setBlockState(pos, state.with(HUMMING, true)); + } + if (!causedByOtherHum || world.random.nextFloat() < CHANCE_TO_ECHO_HUM_EVENT) { + world.emitGameEvent(entity, SpectrumGameEvents.HUMMINGSTONE_HUMMING, pos); + } + } + + public static void stopHumming(World world, BlockPos pos, BlockState state) { + world.setBlockState(pos, state.with(HUMMING, false)); + world.playSound(null, pos, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SoundCategory.BLOCKS, 0.5F, 0.5F + world.random.nextFloat() * 1.2F); + } + + public static void onHymn(World world, BlockPos pos, @Nullable Entity entity) { + if (!(world.getBlockState(pos).getBlock() instanceof HummingstoneBlock)) { + return; + } + + world.emitGameEvent(entity, SpectrumGameEvents.HUMMINGSTONE_HYMN, pos); + world.playSound(null, pos, SoundEvents.BLOCK_AMETHYST_BLOCK_BREAK, SoundCategory.BLOCKS, 1.0F, 0.5F + world.random.nextFloat() * 1.2F); + world.breakBlock(pos, false); + dropStack(world, pos, SpectrumItems.RESONANCE_SHARD.getDefaultStack()); + + if (entity instanceof ServerPlayerEntity serverPlayerEntity) { + SpectrumAdvancementCriteria.CREATE_HUMMINGSTONE_HYMN.trigger(serverPlayerEntity, (ServerWorld) world, pos); + } + } + + @Nullable + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new HummingstoneBlockEntity(pos, state); + } + + @Override + @Nullable + public GameEventListener getGameEventListener(ServerWorld world, T blockEntity) { + if (blockEntity instanceof HummingstoneBlockEntity hummingstoneBlockEntity) { + return hummingstoneBlockEntity.listener; + } + return null; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingstoneBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingstoneBlockEntity.java new file mode 100644 index 0000000000..52dc0d8f10 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/HummingstoneBlockEntity.java @@ -0,0 +1,44 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import net.minecraft.world.event.listener.*; +import org.jetbrains.annotations.*; + +public class HummingstoneBlockEntity extends BlockEntity implements HummingEventQueue.Callback { + + private static final int RANGE = 8; + protected final HummingEventQueue listener; + + public HummingstoneBlockEntity(BlockPos pos, BlockState state) { + super(SpectrumBlockEntities.HUMMINGSTONE, pos, state); + this.listener = new HummingEventQueue(new BlockPositionSource(this.pos), RANGE, this); + } + + public static void serverTick(@NotNull World world, BlockPos pos, BlockState state, @NotNull HummingstoneBlockEntity blockEntity) { + blockEntity.listener.tick(world); + } + + @Override + public boolean canAcceptEvent(World world, GameEventListener listener, GameEvent.Message message, Vec3d sourcePos) { + return !this.isRemoved() && (message.getEvent() == SpectrumGameEvents.HUMMINGSTONE_HYMN || message.getEvent() == SpectrumGameEvents.HUMMINGSTONE_HUMMING); + } + + @Override + public void triggerEvent(World world, GameEventListener listener, HummingEventQueue.EventEntry entry) { + GameEvent.Message message = entry.message; + GameEvent.Emitter emitter = message.getEmitter(); + + if (message.getEvent() == SpectrumGameEvents.HUMMINGSTONE_HUMMING) { + HummingstoneBlock.startHumming(world, this.pos, world.getBlockState(this.pos), emitter.sourceEntity(), true); + } else if (message.getEvent() == SpectrumGameEvents.HUMMINGSTONE_HYMN) { + HummingstoneBlock.onHymn(world, this.pos, emitter.sourceEntity()); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SawbladeHollyBushBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SawbladeHollyBushBlock.java new file mode 100644 index 0000000000..318daf54ca --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SawbladeHollyBushBlock.java @@ -0,0 +1,127 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.jade_vines.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.tag.convention.v1.*; +import net.id.incubus_core.block.*; +import net.minecraft.block.*; +import net.minecraft.block.enums.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; + +public class SawbladeHollyBushBlock extends TallCropBlock { + + public static final Identifier SAWBLADE_HOLLY_HARVESTING_IDENTIFIER = SpectrumCommon.locate("gameplay/sawblade_holly_harvesting"); + public static final Identifier SAWBLADE_HOLLY_SHEARING_IDENTIFIER = SpectrumCommon.locate("gameplay/sawblade_holly_shearing"); + + protected static final int LAST_SINGLE_BLOCK_AGE = 2; + protected static final int MAX_AGE = 7; + protected static final VoxelShape[] AGE_TO_SHAPE = new VoxelShape[]{ + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 2.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 10.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 10.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 2.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 2.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 8.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 8.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 14.0D, 16.0D) + }; + + public SawbladeHollyBushBlock(Settings settings) { + super(settings, LAST_SINGLE_BLOCK_AGE); + } + + @Override + public int getMaxAge() { + return MAX_AGE; + } + + @Override + protected ItemConvertible getSeedsItem() { + return SpectrumItems.SAWBLADE_HOLLY_BERRY; + } + + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isOf(SpectrumBlocks.SAWBLADE_GRASS) || floor.isOf(Blocks.PODZOL); + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + int age = state.get(AGE); + + ItemStack handStack = player.getStackInHand(hand); + if (canBeSheared(age) && handStack.isIn(ConventionalItemTags.SHEARS)) { + if (!world.isClient) { + for (ItemStack stack : JadeVinePlantBlock.getHarvestedStacks(state, (ServerWorld) world, pos, world.getBlockEntity(pos), player, player.getMainHandStack(), SAWBLADE_HOLLY_SHEARING_IDENTIFIER)) { + dropStack(world, pos, stack); + } + handStack.damage(1, player, (p) -> { + p.sendToolBreakStatus(hand); + }); + } + world.playSound(null, pos, SoundEvents.BLOCK_BEEHIVE_SHEAR, SoundCategory.BLOCKS, 1.0F, 0.8F + world.random.nextFloat() * 0.4F); + setAge(state, world, pos, age - 1); + world.emitGameEvent(null, GameEvent.SHEAR, pos); + return ActionResult.success(world.isClient); + } else if (age == MAX_AGE) { + if (!world.isClient) { + for (ItemStack stack : JadeVinePlantBlock.getHarvestedStacks(state, (ServerWorld) world, pos, world.getBlockEntity(pos), player, player.getMainHandStack(), SAWBLADE_HOLLY_HARVESTING_IDENTIFIER)) { + dropStack(world, pos, stack); + } + } + world.playSound(null, pos, SoundEvents.BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES, SoundCategory.BLOCKS, 1.0F, 0.8F + world.random.nextFloat() * 0.4F); + BlockState newState = setAge(state, world, pos, LAST_SINGLE_BLOCK_AGE + 1); + world.emitGameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Emitter.of(player, newState)); + return ActionResult.success(world.isClient); + } else { + return super.onUse(state, world, pos, player, hand, hit); + } + } + + public static boolean canBeSheared(int age) { + return age > LAST_SINGLE_BLOCK_AGE + 1; + } + + public static BlockState setAge(BlockState state, World world, BlockPos pos, int newAge) { + BlockState newState = state.with(AGE, newAge); + if (state.get(HALF) == DoubleBlockHalf.LOWER) { + world.setBlockState(pos, newState, 2); + BlockState upState = world.getBlockState(pos.up()); + if (upState.isOf(state.getBlock())) { + world.setBlockState(pos.up(), upState.with(AGE, newAge), 2); + } + } else { + world.setBlockState(pos, newState, 2); + BlockState downState = world.getBlockState(pos.down()); + if (downState.isOf(state.getBlock())) { + world.setBlockState(pos.down(), downState.with(AGE, newAge), 2); + } + } + return newState; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + if (state.get(HALF) == DoubleBlockHalf.LOWER) { + if (state.get(AGE) <= this.lastSingleBlockAge) { + return AGE_TO_SHAPE[state.get(this.getAgeProperty())]; + } else { + // Fill in the bottom block if the plant is two-tall + return VoxelShapes.fullCube(); + } + } else { + return AGE_TO_SHAPE[state.get(this.getAgeProperty())]; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SmallDragonjagBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SmallDragonjagBlock.java new file mode 100644 index 0000000000..1e5134cca7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SmallDragonjagBlock.java @@ -0,0 +1,60 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import net.minecraft.block.*; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; + +import java.util.*; + +public class SmallDragonjagBlock extends PlantBlock implements Dragonjag, Fertilizable { + + protected static final VoxelShape SHAPE = Block.createCuboidShape(2.0, 0.0, 2.0, 12.0, 13.0, 14.0); + protected static final Map VARIANTS = new HashMap<>(); + protected final Dragonjag.Variant variant; + + public SmallDragonjagBlock(Settings settings, Dragonjag.Variant variant) { + super(settings); + this.variant = variant; + VARIANTS.put(variant, this); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return Dragonjag.canPlantOnTop(floor, world, pos); + } + + @Override + public Variant getVariant() { + return variant; + } + + public static Block getBlockForVariant(Variant variant) { + return VARIANTS.get(variant); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return true; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + TallDragonjagBlock tallVariant = TallDragonjagBlock.getBlockForVariant(variant); + if (tallVariant.getDefaultState().canPlaceAt(world, pos) && world.isAir(pos.up())) { + TallDragonjagBlock.placeAt(world, tallVariant.getDefaultState(), pos, 2); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SnappingIvyBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SnappingIvyBlock.java new file mode 100644 index 0000000000..93dc295b5b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/SnappingIvyBlock.java @@ -0,0 +1,107 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.deeper_down.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.effect.*; +import net.minecraft.item.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; + +public class SnappingIvyBlock extends PlantBlock implements Fertilizable { + + public static final EnumProperty AXIS = Properties.HORIZONTAL_AXIS; + public static final BooleanProperty SNAPPED = BooleanProperty.of("snapped"); + + protected static final VoxelShape SHAPE = Block.createCuboidShape(0.0, 0.0, 0.0, 16.0, 2.0, 16.0); + protected static final Vec3d MOVEMENT_SLOWDOWN_VECTOR = new Vec3d(0.5, 0.75, 0.5); + + public SnappingIvyBlock(Settings settings) { + super(settings); + this.setDefaultState(this.stateManager.getDefaultState().with(AXIS, Direction.Axis.X).with(SNAPPED, false)); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(AXIS, SNAPPED); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isIn(SpectrumBlockTags.SNAPPING_IVY_PLANTABLE); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return true; + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return true; + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + DDConfiguredFeatures.SNAPPING_IVY_PATCH.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + + @Override + public BlockState rotate(BlockState state, BlockRotation rotation) { + return state.with(AXIS, state.get(AXIS) == Direction.Axis.X ? Direction.Axis.Z : Direction.Axis.X); + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + return this.getDefaultState().with(AXIS, ctx.getPlayerFacing().getAxis()); + } + + @Override + public boolean hasRandomTicks(BlockState state) { + return state.get(SNAPPED); + } + + @Override + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (state.get(SNAPPED)) { + BlockState newState = state.with(SNAPPED, false); + world.setBlockState(pos, newState, Block.NOTIFY_LISTENERS); + world.emitGameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Emitter.of(newState)); + world.playSound(null, pos, SoundEvents.BLOCK_BIG_DRIPLEAF_TILT_UP, SoundCategory.BLOCKS, 1.0F, MathHelper.nextBetween(world.random, 0.8F, 1.2F)); + } + } + + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + boolean snapped = state.get(SNAPPED); + + if (entity instanceof LivingEntity livingEntity && entity.getType() != EntityType.FOX && entity.getType() != EntityType.BEE) { + entity.slowMovement(state, MOVEMENT_SLOWDOWN_VECTOR); + if (!snapped) { + entity.damage(DamageSource.SWEET_BERRY_BUSH, 5.0F); + livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.SLOWNESS, 120, 1)); + + BlockState newState = state.with(SNAPPED, true); + world.setBlockState(pos, newState, Block.NOTIFY_LISTENERS); + world.emitGameEvent(GameEvent.BLOCK_CHANGE, pos, GameEvent.Emitter.of(newState)); + world.playSound(null, pos, SoundEvents.BLOCK_BIG_DRIPLEAF_TILT_DOWN, SoundCategory.BLOCKS, 1.0F, MathHelper.nextBetween(world.random, 0.8F, 1.2F)); + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/StrippingLootPillarBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/StrippingLootPillarBlock.java new file mode 100644 index 0000000000..8f62e6dd2f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/StrippingLootPillarBlock.java @@ -0,0 +1,52 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.item.*; +import net.minecraft.loot.*; +import net.minecraft.loot.context.*; +import net.minecraft.server.world.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class StrippingLootPillarBlock extends PillarBlock { + + private final Block sourceBlock; + private final Identifier strippingLootTableIdentifier; + + public StrippingLootPillarBlock(Settings settings, Block sourceBlock, Identifier strippingLootTableIdentifier) { + super(settings); + this.sourceBlock = sourceBlock; + this.strippingLootTableIdentifier = strippingLootTableIdentifier; + } + + @Override + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { + if (!moved && newState.isOf(sourceBlock)) { + // we sadly don't have the entity or hand stack here, but oh well + List harvestedStacks = getHarvestedStacks(state, (ServerWorld) world, pos, world.getBlockEntity(pos), null, ItemStack.EMPTY, strippingLootTableIdentifier); + for (ItemStack harvestedStack : harvestedStacks) { + ItemScatterer.spawn(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, harvestedStack); + } + } + super.onStateReplaced(state, world, pos, newState, moved); + } + + public static List getHarvestedStacks(BlockState state, ServerWorld world, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack stack, Identifier lootTableIdentifier) { + LootContext.Builder builder = (new LootContext.Builder(world)).random(world.random) + .parameter(LootContextParameters.BLOCK_STATE, state) + .parameter(LootContextParameters.ORIGIN, Vec3d.ofCenter(pos)) + .parameter(LootContextParameters.TOOL, stack) + .optionalParameter(LootContextParameters.THIS_ENTITY, entity) + .optionalParameter(LootContextParameters.BLOCK_ENTITY, blockEntity); + + LootTable lootTable = world.getServer().getLootManager().getTable(lootTableIdentifier); + return lootTable.generateLoot(builder.build(LootContextTypes.BLOCK)); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/TallDragonjagBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/TallDragonjagBlock.java new file mode 100644 index 0000000000..8f6263c9df --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/dd_deco/TallDragonjagBlock.java @@ -0,0 +1,106 @@ +package de.dafuqs.spectrum.blocks.dd_deco; + +import de.dafuqs.spectrum.deeper_down.*; +import net.minecraft.block.*; +import net.minecraft.block.enums.*; +import net.minecraft.server.world.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; + +import java.util.*; + +public class TallDragonjagBlock extends TallPlantBlock implements Dragonjag, Fertilizable { + + protected static final VoxelShape SHAPE = Block.createCuboidShape(2.0, 0.0, 2.0, 14.0, 16.0, 14.0); + public static final BooleanProperty DEAD = BooleanProperty.of("dead"); + protected static final Map VARIANTS = new HashMap<>(); + protected final Dragonjag.Variant variant; + + public TallDragonjagBlock(Settings settings, Dragonjag.Variant variant) { + super(settings); + this.variant = variant; + VARIANTS.put(variant, this); + this.setDefaultState(this.stateManager.getDefaultState().with(HALF, DoubleBlockHalf.LOWER).with(DEAD, false)); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return Dragonjag.canPlantOnTop(floor, world, pos); + } + + protected void appendProperties(StateManager.Builder builder) { + builder.add(HALF, DEAD); + } + + @Override + public Dragonjag.Variant getVariant() { + return variant; + } + + public static TallDragonjagBlock getBlockForVariant(Variant variant) { + return VARIANTS.get(variant); + } + + @Override + public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { + return !state.get(DEAD); + } + + @Override + public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { + return !state.get(DEAD); + } + + @Override + public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { + boolean success = false; + switch (variant) { + case RED -> { + success = DDConfiguredFeatures.RED_DRAGONJAGS.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + case PINK -> { + success = DDConfiguredFeatures.PINK_DRAGONJAGS.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + case BLACK -> { + success = DDConfiguredFeatures.BLACK_DRAGONJAGS.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + case GREEN -> { + success = DDConfiguredFeatures.GREEN_DRAGONJAGS.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + case PURPLE -> { + success = DDConfiguredFeatures.PURPLE_DRAGONJAGS.generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); + } + } + + if (success) { + setDead(world, pos, state); + } + } + + private void setDead(World world, BlockPos pos, BlockState state) { + BlockState posState = world.getBlockState(pos); + if (posState.isOf(this)) { + world.setBlockState(pos, posState.with(DEAD, true)); + } + if (state.get(HALF) == DoubleBlockHalf.LOWER) { + posState = world.getBlockState(pos.up()); + if (posState.isOf(this)) { + world.setBlockState(pos.up(), posState.with(DEAD, true)); + } + } else { + posState = world.getBlockState(pos.down()); + if (posState.isOf(this)) { + world.setBlockState(pos.down(), posState.with(DEAD, true)); + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/BlackMateriaBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/BlackMateriaBlock.java similarity index 91% rename from src/main/java/de/dafuqs/spectrum/blocks/BlackMateriaBlock.java rename to src/main/java/de/dafuqs/spectrum/blocks/decay/BlackMateriaBlock.java index 915ed8a9f7..a93efc83ca 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/BlackMateriaBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/BlackMateriaBlock.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.blocks; +package de.dafuqs.spectrum.blocks.decay; import de.dafuqs.spectrum.registries.SpectrumBlockTags; import net.minecraft.block.Block; @@ -8,19 +8,18 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; -import net.minecraft.state.property.IntProperty; import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; +import net.minecraft.state.property.IntProperty; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; -import java.util.Random; - public class BlackMateriaBlock extends FallingBlock { public static final int PROPAGATION_TRIES = 3; - - public static final int MAX_AGE = 3; + + public static final int MAX_AGE = Properties.AGE_3_MAX; public static final IntProperty AGE = Properties.AGE_3; public BlackMateriaBlock(Settings settings) { @@ -45,9 +44,10 @@ public static boolean spreadBlackMateria(World world, BlockPos pos, Random rando @Override public boolean hasRandomTicks(BlockState state) { - return state.get(AGE) != Properties.AGE_3_MAX; + return state.get(AGE) != MAX_AGE; } + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { int age = state.get(AGE); if (age < MAX_AGE) { @@ -57,6 +57,7 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random } } + @Override protected void appendProperties(StateManager.Builder builder) { builder.add(AGE); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayAwayBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayAwayBlock.java index bbafd6aa59..37f484d554 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayAwayBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayAwayBlock.java @@ -14,13 +14,12 @@ import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; -import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.dimension.DimensionTypes; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class DecayAwayBlock extends Block { private static final EnumProperty TARGET_CONVERSION = EnumProperty.of("target_conversion", TargetConversion.class); @@ -65,7 +64,7 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran public BlockState getTargetStateForCurable(BlockState blockState) { if (blockState.getBlock() instanceof DecayBlock) { if (blockState.isOf(SpectrumBlocks.RUIN)) { - if (blockState.get(TerrorBlock.DECAY_STATE) == TerrorBlock.DecayConversion.BEDROCK) { + if (blockState.get(ForfeitureBlock.DECAY_STATE) == ForfeitureBlock.DecayConversion.BEDROCK) { return this.getDefaultState().with(TARGET_CONVERSION, TargetConversion.BEDROCK); } } else if (blockState.isOf(SpectrumBlocks.FAILING)) { @@ -102,11 +101,11 @@ public String asString() { } public BlockState getTargetState(World world) { - if(this == DEFAULT) { - Identifier identifier = world.getDimension().getEffects(); - if (DimensionType.THE_NETHER_ID.equals(identifier)) { + if (this == DEFAULT) { + Identifier identifier = world.getDimension().effects(); + if (DimensionTypes.THE_NETHER_ID.equals(identifier)) { return Blocks.NETHERRACK.getDefaultState(); - } else if (DimensionType.THE_END_ID.equals(identifier)) { + } else if (DimensionTypes.THE_END_ID.equals(identifier)) { return Blocks.END_STONE.getDefaultState(); } return Blocks.DIRT.getDefaultState(); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayBlock.java index 18204869c1..3a5e9c4d27 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/DecayBlock.java @@ -13,15 +13,21 @@ import net.minecraft.tag.TagKey; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.TickPriority; import net.minecraft.world.World; import net.minecraft.world.WorldView; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; public abstract class DecayBlock extends Block { + private static final boolean CREATE_DD_PORTALS = true; + /** * Since Tag is not comparable we can not use a SortedMap for decayConversions * here and therefore have to use an additional list for check order @@ -67,12 +73,8 @@ public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity enti super.onSteppedOn(world, pos, state, entity); } - @Override - public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { - return super.canPlaceAt(state, world, pos) && pos.getY() > world.getBottomY(); - } - // jump to neighboring blocks + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { if (canSpread(state)) { float spreadChance = getSpreadChance(); @@ -94,7 +96,8 @@ protected boolean tryConvert(@NotNull World world, BlockState state, @NotNull Bl if (canPlaceAt(targetBlockState, world, targetBlockPos)) { BlockEntity blockEntity = world.getBlockEntity(targetBlockPos); - if (blockEntity == null && !targetBlockState.isIn(SpectrumBlockTags.DECAY) // decay doesn't jump to other decay. Maybe: if tier is smaller it should still be converted? + if ((canSpreadToBlockEntities() || blockEntity == null) + && !targetBlockState.isIn(SpectrumBlockTags.DECAY) // decay doesn't jump to other decay. Maybe: if tier is smaller it should still be converted? && (whiteListBlockTag == null || targetBlockState.isIn(whiteListBlockTag)) && (blackListBlockTag == null || !targetBlockState.isIn(blackListBlockTag)) // bedrock is ok, but not other modded unbreakable blocks @@ -116,6 +119,15 @@ protected boolean tryConvert(@NotNull World world, BlockState state, @NotNull Bl return false; } + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + return super.canPlaceAt(state, world, pos) && (pos.getY() != world.getBottomY() || CREATE_DD_PORTALS) && !isSpawnArea(pos); + } + + public static boolean isSpawnArea(BlockPos pos) { + return Math.abs(pos.getX()) < 16 && Math.abs(pos.getZ()) < 16; + } + /** * If a neighboring block is updated (placed by a player?), and that can be converted * schedule a tick to convert it faster. => User gets quick reaction @@ -123,9 +135,11 @@ protected boolean tryConvert(@NotNull World world, BlockState state, @NotNull Bl @Override public void neighborUpdate(BlockState state, World world, BlockPos pos, Block previousBlock, BlockPos fromPos, boolean notify) { super.neighborUpdate(state, world, pos, previousBlock, fromPos, notify); + if (previousBlock == Blocks.AIR) { BlockState updatedBlockState = world.getBlockState(fromPos); Block updatedBlock = updatedBlockState.getBlock(); + if (!(updatedBlock instanceof DecayBlock) && !(updatedBlock instanceof DecayAwayBlock) && canSpread(state)) { for (TagKey blockTag : decayConversionsList) { if (updatedBlockState.isIn(blockTag)) { @@ -157,6 +171,8 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran protected abstract boolean canSpread(BlockState blockState); + protected abstract boolean canSpreadToBlockEntities(); + protected abstract BlockState getSpreadState(BlockState previousState); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/FadingBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/FadingBlock.java index ad919fff46..e63d45384d 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decay/FadingBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/FadingBlock.java @@ -18,11 +18,10 @@ import net.minecraft.tag.TagKey; import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class FadingBlock extends DecayBlock { public static final EnumProperty DECAY_STATE = EnumProperty.of("decay_state", DecayConversion.class); @@ -58,6 +57,11 @@ protected float getSpreadChance() { return SpectrumCommon.CONFIG.FadingDecayTickRate; } + @Override + protected boolean canSpreadToBlockEntities() { + return SpectrumCommon.CONFIG.FadingCanDestroyBlockEntities; + } + @Override protected boolean canSpread(BlockState blockState) { return true; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/FailingBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/FailingBlock.java index d35533b8a7..62137321ed 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decay/FailingBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/FailingBlock.java @@ -20,11 +20,10 @@ import net.minecraft.tag.TagKey; import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class FailingBlock extends DecayBlock { public static final IntProperty AGE = Properties.AGE_15; // failing may spread 15 blocks max. It consuming obsidian resets that value @@ -77,6 +76,11 @@ protected boolean canSpread(BlockState blockState) { return blockState.get(AGE) < Properties.AGE_15_MAX; } + @Override + protected boolean canSpreadToBlockEntities() { + return SpectrumCommon.CONFIG.FailingCanDestroyBlockEntities; + } + @Override protected BlockState getSpreadState(BlockState previousState) { return this.getDefaultState().with(AGE, previousState.get(AGE) + 1); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/ForfeitureBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/ForfeitureBlock.java new file mode 100644 index 0000000000..6d46a79752 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/ForfeitureBlock.java @@ -0,0 +1,24 @@ +package de.dafuqs.spectrum.blocks.decay; + +import de.dafuqs.spectrum.SpectrumCommon; +import net.minecraft.block.Block; +import net.minecraft.tag.TagKey; + +public class ForfeitureBlock extends RuinBlock { + + // A special version of ruin that spreads indefinitely, even through air. + // There are no brakes on the Forfeiture train + public ForfeitureBlock(Settings settings, TagKey whiteListBlockTag, TagKey blackListBlockTag, int tier, float damageOnTouching) { + super(settings, whiteListBlockTag, blackListBlockTag, tier, damageOnTouching); + } + + @Override + protected float getSpreadChance() { + return SpectrumCommon.CONFIG.ForfeitureDecayTickRate; + } + + @Override + protected boolean canSpreadToBlockEntities() { + return SpectrumCommon.CONFIG.ForfeitureCanDestroyBlockEntities; + } +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/RuinBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/RuinBlock.java index 998e819087..24cf48b753 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decay/RuinBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decay/RuinBlock.java @@ -1,8 +1,11 @@ package de.dafuqs.spectrum.blocks.decay; import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.blocks.DeeperDownPortalBlock; +import de.dafuqs.spectrum.deeper_down.DDDimension; import de.dafuqs.spectrum.particle.SpectrumParticleTypes; import de.dafuqs.spectrum.registries.SpectrumBlockTags; +import de.dafuqs.spectrum.registries.SpectrumBlocks; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -18,11 +21,10 @@ import net.minecraft.tag.TagKey; import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class RuinBlock extends DecayBlock { // spreads indefinitely. Though not through air @@ -67,6 +69,11 @@ protected boolean canSpread(BlockState blockState) { return true; } + @Override + protected boolean canSpreadToBlockEntities() { + return SpectrumCommon.CONFIG.RuinCanDestroyBlockEntities; + } + @Override protected BlockState getSpreadState(BlockState previousState) { return this.getDefaultState(); @@ -74,13 +81,26 @@ protected BlockState getSpreadState(BlockState previousState) { @Environment(EnvType.CLIENT) public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - if (state.get(TerrorBlock.DECAY_STATE).equals(DecayConversion.BEDROCK)) { + if (state.get(RuinBlock.DECAY_STATE).equals(DecayConversion.BEDROCK)) { float xOffset = random.nextFloat(); float zOffset = random.nextFloat(); world.addParticle(new BlockStateParticleEffect(ParticleTypes.BLOCK, state), pos.getX() + xOffset, pos.getY() + 1, pos.getZ() + zOffset, 0.0D, 0.0D, 0.0D); } } + @Override + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { + super.onStateReplaced(state, world, pos, newState, moved); + + if (state.get(RuinBlock.DECAY_STATE).equals(DecayConversion.BEDROCK)) { + if (world.getRegistryKey() == World.OVERWORLD && pos.getY() == world.getBottomY()) { + world.setBlockState(pos, SpectrumBlocks.DEEPER_DOWN_PORTAL.getDefaultState().with(DeeperDownPortalBlock.FACING_UP, false), 3); + } else if (world.getRegistryKey() == DDDimension.DEEPER_DOWN_DIMENSION_KEY && pos.getY() == world.getTopY() - 1) { // highest layer cannot be built on + world.setBlockState(pos, SpectrumBlocks.DEEPER_DOWN_PORTAL.getDefaultState().with(DeeperDownPortalBlock.FACING_UP, true), 3); + } + } + } + public enum DecayConversion implements StringIdentifiable { DEFAULT("default"), BEDROCK("bedrock"); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decay/TerrorBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decay/TerrorBlock.java deleted file mode 100644 index c3014d8061..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/decay/TerrorBlock.java +++ /dev/null @@ -1,21 +0,0 @@ -package de.dafuqs.spectrum.blocks.decay; - -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.block.Block; -import net.minecraft.tag.TagKey; - -public class TerrorBlock extends RuinBlock { - - // A special version of ruin that spreads indefinitely, even through air. - // There are no brakes on the Terror train - public TerrorBlock(Settings settings, TagKey whiteListBlockTag, TagKey blackListBlockTag, int tier, float damageOnTouching) { - super(settings, whiteListBlockTag, blackListBlockTag, tier, damageOnTouching); - } - - @Override - protected float getSpreadChance() { - return SpectrumCommon.CONFIG.TerrorDecayTickRate; - } - - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/CloverBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/CloverBlock.java index ad5349faae..a1b19be8dd 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/CloverBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/CloverBlock.java @@ -1,43 +1,34 @@ package de.dafuqs.spectrum.blocks.decoration; -import de.dafuqs.spectrum.worldgen.SpectrumConfiguredFeatures; +import de.dafuqs.spectrum.worldgen.*; import net.minecraft.block.*; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; - -import java.util.Random; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; public class CloverBlock extends FernBlock { - + protected static final VoxelShape SHAPE = Block.createCuboidShape(2.0D, 0.0D, 1.0D, 14.0D, 2.0D, 14.0D); - + public CloverBlock(Settings settings) { super(settings); } - + @Deprecated public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return SHAPE; } - - public AbstractBlock.OffsetType getOffsetType() { - return OffsetType.XZ; - } - + @Override - public boolean isFertilizable(BlockView world, BlockPos pos, BlockState state, boolean isClient) { - return super.isFertilizable(world, pos, state, isClient); - } - public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) { return true; } - + + @Override public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) { SpectrumConfiguredFeatures.CLOVER_PATCH.value().generate(world, world.getChunkManager().getChunkGenerator(), random, pos.up()); } - + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/ColoredSporeBlossomBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/ColoredSporeBlossomBlock.java index efc5642f1f..3939862464 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/ColoredSporeBlossomBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/ColoredSporeBlossomBlock.java @@ -8,11 +8,11 @@ import net.minecraft.util.DyeColor; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import java.util.Map; -import java.util.Random; public class ColoredSporeBlossomBlock extends SporeBlossomBlock { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/DecayingLightBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/DecayingLightBlock.java index 5eccd36bee..f3fc9f56da 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/DecayingLightBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/DecayingLightBlock.java @@ -6,10 +6,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; -import java.util.Random; - public class DecayingLightBlock extends WandLightBlock { public DecayingLightBlock(Settings settings) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/EtherealGlassBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/EtherealGlassBlock.java index 8a7b47856c..5d31be85f3 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/EtherealGlassBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/EtherealGlassBlock.java @@ -15,13 +15,12 @@ import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import java.util.Random; - public class EtherealGlassBlock extends AbstractGlassBlock { public static final int MAX_AGE = 5; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/GemstoneChimeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/GemstoneChimeBlock.java index f38209804e..1fc2896684 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/GemstoneChimeBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/GemstoneChimeBlock.java @@ -11,6 +11,7 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; @@ -18,8 +19,6 @@ import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import java.util.Random; - public class GemstoneChimeBlock extends Block { protected static final VoxelShape SHAPE = VoxelShapes.union( diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/RadiantGlassBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/RadiantGlassBlock.java index 4b8dbe5a98..0b390804db 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/RadiantGlassBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/RadiantGlassBlock.java @@ -17,7 +17,7 @@ public RadiantGlassBlock(Settings settings) { @Environment(EnvType.CLIENT) public boolean isSideInvisible(BlockState state, BlockState stateFrom, Direction direction) { - if (stateFrom.isOf(this) || stateFrom.isOf(SpectrumBlocks.RADIANT_PLAYER_ONLY_GLASS)) { + if (stateFrom.isOf(this) || stateFrom.isOf(SpectrumBlocks.RADIANT_SEMI_PERMEABLE_GLASS)) { return true; } return super.isSideInvisible(state, stateFrom, direction); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/ShimmerstoneLightBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/ShimmerstoneLightBlock.java new file mode 100644 index 0000000000..d9bb149e4b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/ShimmerstoneLightBlock.java @@ -0,0 +1,88 @@ +package de.dafuqs.spectrum.blocks.decoration; + +import de.dafuqs.spectrum.particle.*; +import net.minecraft.block.*; +import net.minecraft.item.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +public class ShimmerstoneLightBlock extends Block { + + public static final DirectionProperty FACING = Properties.FACING; + + protected static final VoxelShape SHAPE_UP = Block.createCuboidShape(5.0D, 0.0D, 4.0D, 11.0D, 2.0D, 12.0D); + protected static final VoxelShape SHAPE_DOWN = Block.createCuboidShape(5.0D, 14.0D, 4.0D, 11.0D, 16.0D, 12.0D); + protected static final VoxelShape SHAPE_NORTH = Block.createCuboidShape(5.0D, 4.0D, 14.0D, 11.0D, 12.0D, 16.0D); + protected static final VoxelShape SHAPE_SOUTH = Block.createCuboidShape(5.0D, 4.0D, 0.0D, 11.0D, 12.0D, 2.0D); + protected static final VoxelShape SHAPE_EAST = Block.createCuboidShape(0.0D, 4.0D, 5.0D, 2.0D, 12.0D, 11.0D); + protected static final VoxelShape SHAPE_WEST = Block.createCuboidShape(14.0D, 4.0D, 5.0D, 16.0D, 12.0D, 11.0D); + + public ShimmerstoneLightBlock(Settings settings) { + super(settings); + this.setDefaultState(((this.stateManager.getDefaultState()).with(FACING, Direction.UP))); + } + + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + switch (state.get(FACING)) { + case UP -> { + return SHAPE_UP; + } + case DOWN -> { + return SHAPE_DOWN; + } + case NORTH -> { + return SHAPE_NORTH; + } + case EAST -> { + return SHAPE_EAST; + } + case SOUTH -> { + return SHAPE_SOUTH; + } + default -> { + return SHAPE_WEST; + } + } + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return VoxelShapes.empty(); + } + + public BlockState getPlacementState(@NotNull ItemPlacementContext ctx) { + return this.getDefaultState().with(FACING, ctx.getSide()); + } + + public BlockState rotate(BlockState state, BlockRotation rotation) { + return state.with(FACING, rotation.rotate(state.get(FACING))); + } + + public BlockState mirror(BlockState state, BlockMirror mirror) { + return state.rotate(mirror.getRotation(state.get(FACING))); + } + + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + } + + @Override + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + super.randomDisplayTick(state, world, pos, random); + + if (random.nextFloat() < 0.3) { + Direction direction = state.get(FACING); + double d = direction.getOffsetX() == 0 ? 0.3D + random.nextFloat() * 0.4F : direction.getOffsetX() == 1 ? 0.15 : 0.85; + double e = direction.getOffsetY() == 0 ? 0.3D + random.nextFloat() * 0.4F : direction.getOffsetY() == 1 ? 0.15 : 0.85; + double f = direction.getOffsetZ() == 0 ? 0.3D + random.nextFloat() * 0.4F : direction.getOffsetZ() == 1 ? 0.15 : 0.85; + world.addParticle(SpectrumParticleTypes.SHIMMERSTONE_SPARKLE_SMALL, (double) pos.getX() + d, (double) pos.getY() + e, (double) pos.getZ() + f, 0.0D, 0.02D, 0.0D); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneBlock.java index 11318a4f30..9a0ad4687e 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneBlock.java @@ -6,10 +6,9 @@ import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; -import java.util.Random; - public class SparklestoneBlock extends Block { public SparklestoneBlock(AbstractBlock.Settings settings) { @@ -25,7 +24,7 @@ public void randomDisplayTick(BlockState state, World world, BlockPos pos, Rando double d = direction.getOffsetX() == 0 ? random.nextDouble() : 0.5D + (double) direction.getOffsetX() * 0.6D; double e = direction.getOffsetY() == 0 ? random.nextDouble() : 0.5D + (double) direction.getOffsetY() * 0.6D; double f = direction.getOffsetZ() == 0 ? random.nextDouble() : 0.5D + (double) direction.getOffsetZ() * 0.6D; - world.addParticle(SpectrumParticleTypes.SPARKLESTONE_SPARKLE, (double) pos.getX() + d, (double) pos.getY() + e, (double) pos.getZ() + f, 0.0D, 0.05D, 0.0D); + world.addParticle(SpectrumParticleTypes.SHIMMERSTONE_SPARKLE, (double) pos.getX() + d, (double) pos.getY() + e, (double) pos.getZ() + f, 0.0D, 0.05D, 0.0D); } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneLightBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneLightBlock.java deleted file mode 100644 index ea2f4ce5c2..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/SparklestoneLightBlock.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.dafuqs.spectrum.blocks.decoration; - -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.DirectionProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.util.BlockMirror; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; - -import java.util.Random; - -public class SparklestoneLightBlock extends Block { - - public static final DirectionProperty FACING = Properties.FACING; - - protected static final VoxelShape SHAPE_UP = Block.createCuboidShape(5.0D, 0.0D, 4.0D, 11.0D, 2.0D, 12.0D); - protected static final VoxelShape SHAPE_DOWN = Block.createCuboidShape(5.0D, 14.0D, 4.0D, 11.0D, 16.0D, 12.0D); - protected static final VoxelShape SHAPE_NORTH = Block.createCuboidShape(5.0D, 4.0D, 14.0D, 11.0D, 12.0D, 16.0D); - protected static final VoxelShape SHAPE_SOUTH = Block.createCuboidShape(5.0D, 4.0D, 0.0D, 11.0D, 12.0D, 2.0D); - protected static final VoxelShape SHAPE_EAST = Block.createCuboidShape(0.0D, 4.0D, 5.0D, 2.0D, 12.0D, 11.0D); - protected static final VoxelShape SHAPE_WEST = Block.createCuboidShape(14.0D, 4.0D, 5.0D, 16.0D, 12.0D, 11.0D); - - public SparklestoneLightBlock(Settings settings) { - super(settings); - this.setDefaultState(((this.stateManager.getDefaultState()).with(FACING, Direction.UP))); - } - - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - switch (state.get(FACING)) { - case UP -> { - return SHAPE_UP; - } - case DOWN -> { - return SHAPE_DOWN; - } - case NORTH -> { - return SHAPE_NORTH; - } - case EAST -> { - return SHAPE_EAST; - } - case SOUTH -> { - return SHAPE_SOUTH; - } - default -> { - return SHAPE_WEST; - } - } - } - - @Override - public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return VoxelShapes.empty(); - } - - public BlockState getPlacementState(@NotNull ItemPlacementContext ctx) { - return this.getDefaultState().with(FACING, ctx.getSide()); - } - - public BlockState rotate(BlockState state, BlockRotation rotation) { - return state.with(FACING, rotation.rotate(state.get(FACING))); - } - - public BlockState mirror(BlockState state, BlockMirror mirror) { - return state.rotate(mirror.getRotation(state.get(FACING))); - } - - protected void appendProperties(StateManager.Builder builder) { - builder.add(FACING); - } - - @Override - public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - super.randomDisplayTick(state, world, pos, random); - - if (random.nextFloat() < 0.3) { - Direction direction = state.get(FACING); - double d = direction.getOffsetX() == 0 ? 0.3D + random.nextFloat() * 0.4F : direction.getOffsetX() == 1 ? 0.15 : 0.85; - double e = direction.getOffsetY() == 0 ? 0.3D + random.nextFloat() * 0.4F : direction.getOffsetY() == 1 ? 0.15 : 0.85; - double f = direction.getOffsetZ() == 0 ? 0.3D + random.nextFloat() * 0.4F : direction.getOffsetZ() == 1 ? 0.15 : 0.85; - world.addParticle(SpectrumParticleTypes.SPARKLESTONE_SPARKLE_SMALL, (double) pos.getX() + d, (double) pos.getY() + e, (double) pos.getZ() + f, 0.0D, 0.02D, 0.0D); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/decoration/WandLightBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/decoration/WandLightBlock.java index 2f478f6498..1b9987867e 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/decoration/WandLightBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/decoration/WandLightBlock.java @@ -15,13 +15,12 @@ import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import java.util.Random; - public class WandLightBlock extends LightBlock { public WandLightBlock(Settings settings) { @@ -36,7 +35,7 @@ public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos po public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { super.randomDisplayTick(state, world, pos, random); if (world.isClient && MinecraftClient.getInstance().player.getMainHandStack().isOf(SpectrumItems.RADIANCE_STAFF)) { - world.addImportantParticle(SpectrumParticleTypes.SPARKLESTONE_SPARKLE_SMALL, (double) pos.getX() + 0.2 + random.nextFloat() * 0.6, (double) pos.getY() + 0.1 + random.nextFloat() * 0.6, (double) pos.getZ() + 0.2 + random.nextFloat() * 0.6, 0.0D, 0.03D, 0.0D); + world.addImportantParticle(SpectrumParticleTypes.SHIMMERSTONE_SPARKLE_SMALL, (double) pos.getX() + 0.2 + random.nextFloat() * 0.6, (double) pos.getY() + 0.1 + random.nextFloat() * 0.6, (double) pos.getZ() + 0.2 + random.nextFloat() * 0.6, 0.0D, 0.03D, 0.0D); } } @@ -50,7 +49,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (newState.get(LEVEL_15) == 0) { // lights with a level of 0 are absolutely newState = newState.cycle(LEVEL_15); } - world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SpectrumSoundEvents.LIGHT_STAFF_PLACE, SoundCategory.PLAYERS, 1.0F, (float) (0.75 + 0.05 * newState.get(LEVEL_15))); + world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SpectrumSoundEvents.RADIANCE_STAFF_PLACE, SoundCategory.PLAYERS, 1.0F, (float) (0.75 + 0.05 * newState.get(LEVEL_15))); world.setBlockState(pos, newState, Block.NOTIFY_LISTENERS); return ActionResult.SUCCESS; } else { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlock.java deleted file mode 100644 index 04555049e1..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlock.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.dafuqs.spectrum.blocks.deeper_down_portal; - -import de.dafuqs.spectrum.deeper_down.DDDimension; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.EndPortalBlock; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.Entity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.function.BooleanBiFunction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; - -import java.util.Random; - -public class DeeperDownPortalBlock extends EndPortalBlock { - - protected static final VoxelShape SHAPE = Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 2.5D, 16.0D); - - public DeeperDownPortalBlock(Settings settings) { - super(settings); - } - - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new DeeperDownPortalBlockEntity(pos, state); - } - - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return SHAPE; - } - - public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { - if (world instanceof ServerWorld - && !entity.hasVehicle() - && !entity.hasPassengers() - && entity.canUsePortals() - && VoxelShapes.matchesAnywhere(VoxelShapes.cuboid(entity.getBoundingBox().offset((-pos.getX()), (-pos.getY()), (-pos.getZ()))), state.getOutlineShape(world, pos), BooleanBiFunction.AND)) { - - RegistryKey registryKey = world.getRegistryKey() == World.OVERWORLD ? DDDimension.DEEPER_DOWN_DIMENSION_KEY : World.OVERWORLD; - - ServerWorld serverWorld = ((ServerWorld) world).getServer().getWorld(registryKey); - if (serverWorld != null) { - entity.moveToWorld(serverWorld); - } - } - } - - @Environment(EnvType.CLIENT) - public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - double d = (double) pos.getX() + random.nextDouble(); - double e = (double) pos.getY() + 0.3D; - double f = (double) pos.getZ() + random.nextDouble(); - world.addParticle(SpectrumParticleTypes.VOID_FOG, d, e, f, 0.0D, 0.1D, 0.0D); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlockEntity.java deleted file mode 100644 index d3e53cf66c..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlockEntity.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.dafuqs.spectrum.blocks.deeper_down_portal; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; - -public class DeeperDownPortalBlockEntity extends BlockEntity { - - protected DeeperDownPortalBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { - super(blockEntityType, blockPos, blockState); - } - - public DeeperDownPortalBlockEntity(BlockPos pos, BlockState state) { - this(SpectrumBlockEntities.DEEPER_DOWN_PORTAL, pos, state); - } - - @Environment(EnvType.CLIENT) - public boolean shouldDrawSide(Direction direction) { - return direction == Direction.UP; - } -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlockEntityRenderer.java deleted file mode 100644 index 4a2d2f396c..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/deeper_down_portal/DeeperDownPortalBlockEntityRenderer.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.dafuqs.spectrum.blocks.deeper_down_portal; - -import de.dafuqs.spectrum.registries.SpectrumRenderLayers; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory.Context; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Matrix4f; - -@Environment(EnvType.CLIENT) -public class DeeperDownPortalBlockEntityRenderer implements BlockEntityRenderer { - - public DeeperDownPortalBlockEntityRenderer(Context ctx) { - - } - - public void render(T deeperDownPortalBlockEntity, float f, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, int j) { - float topYOffset = this.getTopYOffset(); - Matrix4f matrix4f = matrixStack.peek().getPositionMatrix(); - this.renderSides(deeperDownPortalBlockEntity, topYOffset, matrix4f, vertexConsumerProvider.getBuffer(getLayer())); - } - - private void renderSides(T entity, float topYOffset, Matrix4f matrix4f, VertexConsumer vertexConsumer) { - this.renderSide(entity, matrix4f, vertexConsumer, 0.0F, 1.0F, 0.0F, 1.0F, 1.0F, 1.0F, 1.0F, 1.0F, Direction.SOUTH); - this.renderSide(entity, matrix4f, vertexConsumer, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, Direction.NORTH); - this.renderSide(entity, matrix4f, vertexConsumer, 1.0F, 1.0F, 1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0F, Direction.EAST); - this.renderSide(entity, matrix4f, vertexConsumer, 0.0F, 0.0F, 0.0F, 1.0F, 0.0F, 1.0F, 1.0F, 0.0F, Direction.WEST); - this.renderSide(entity, matrix4f, vertexConsumer, 0.0F, 1.0F, 0.0F, 0.0F, 0.0F, 0.0F, 1.0F, 1.0F, Direction.DOWN); - this.renderSide(entity, matrix4f, vertexConsumer, 0.0F, 1.0F, topYOffset, topYOffset, 1.0F, 1.0F, 0.0F, 0.0F, Direction.UP); - } - - private void renderSide(T entity, Matrix4f model, VertexConsumer vertices, float x1, float x2, float y1, float y2, float z1, float z2, float z3, float z4, Direction direction) { - if (entity.shouldDrawSide(direction)) { - vertices.vertex(model, x1, y1, z1).next(); - vertices.vertex(model, x2, y1, z2).next(); - vertices.vertex(model, x2, y2, z3).next(); - vertices.vertex(model, x1, y2, z4).next(); - } - } - - protected float getTopYOffset() { - return 0.15F; - } - - protected RenderLayer getLayer() { - return SpectrumRenderLayers.DeeperDownPortalRenderLayer.get(); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlock.java index 73884297bd..93ca052f29 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlock.java @@ -13,7 +13,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.BlockRotation; import net.minecraft.util.Hand; @@ -57,7 +57,7 @@ public static boolean verifyStructure(World world, BlockPos blockPos, @Nullable if (currentMultiBlock == multiblock) { PatchouliAPI.get().clearMultiblock(); } else { - PatchouliAPI.get().showMultiblock(multiblock, new TranslatableText("multiblock.spectrum.enchanter.structure"), blockPos.down(4), BlockRotation.NONE); + PatchouliAPI.get().showMultiblock(multiblock, Text.translatable("multiblock.spectrum.enchanter.structure"), blockPos.down(4), BlockRotation.NONE); } } } @@ -104,7 +104,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (player.isSneaking() || handStack.isEmpty()) { // sneaking or empty hand: remove items for (int i = 0; i < EnchanterBlockEntity.INVENTORY_SIZE; i++) { - if(retrieveStack(world, pos, player, hand, handStack, enchanterBlockEntity, i)) { + if (retrieveStack(world, pos, player, hand, handStack, enchanterBlockEntity, i)) { enchanterBlockEntity.setItemFacingDirection(player.getHorizontalFacing()); enchanterBlockEntity.setOwner(player); break; @@ -115,12 +115,11 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt // hand is full and inventory is empty: add // hand is full and inventory already contains item: exchange them int inputInventorySlotIndex = handStack.getItem() instanceof ExperienceStorageItem ? enchanterBlockEntity.getStack(1).isEmpty() ? 1 : 0 : 0; - if(exchangeStack(world, pos, player, hand, handStack, enchanterBlockEntity, inputInventorySlotIndex)) { + if (exchangeStack(world, pos, player, hand, handStack, enchanterBlockEntity, inputInventorySlotIndex)) { enchanterBlockEntity.setItemFacingDirection(player.getHorizontalFacing()); enchanterBlockEntity.setOwner(player); } } - } } return ActionResult.CONSUME; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlockEntity.java index 6de4fb404c..e3b626126c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/enchanter/EnchanterBlockEntity.java @@ -1,66 +1,50 @@ package de.dafuqs.spectrum.blocks.enchanter; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.InWorldInteractionBlockEntity; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.item_bowl.ItemBowlBlockEntity; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.enchantments.SpectrumEnchantment; -import de.dafuqs.spectrum.helpers.ExperienceHelper; -import de.dafuqs.spectrum.helpers.SpectrumEnchantmentHelper; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.items.ExperienceStorageItem; -import de.dafuqs.spectrum.items.magic_items.KnowledgeGemItem; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.ParticlePattern; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.enchanter.EnchanterRecipe; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.advancement.criterion.Criteria; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.item.BookItem; -import net.minecraft.item.EnchantedBookItem; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.network.Packet; -import net.minecraft.network.listener.ClientPlayPacketListener; -import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; -import net.minecraft.recipe.Recipe; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.stat.Stats; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3i; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.item_bowl.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.enchantments.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.items.magic_items.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.enchanter.*; +import de.dafuqs.spectrum.recipe.enchantment_upgrade.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.client.world.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.network.listener.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.recipe.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.stat.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; import java.util.*; public class EnchanterBlockEntity extends InWorldInteractionBlockEntity implements MultiblockCrafter { - - public static final List itemBowlOffsets = new ArrayList<>() {{ + + public static final List ITEM_BOWL_OFFSETS = new ArrayList<>() {{ add(new Vec3i(5, 0, -3)); add(new Vec3i(5, 0, 3)); add(new Vec3i(3, 0, 5)); @@ -88,7 +72,7 @@ public class EnchanterBlockEntity extends InWorldInteractionBlockEntity implemen protected int virtualInventoryRecipeOrientation; protected boolean inventoryChanged; - private Map upgrades; + private UpgradeHolder upgrades; private Recipe currentRecipe; private int craftingTime; @@ -188,16 +172,20 @@ public static void serverTick(World world, BlockPos blockPos, BlockState blockSt enchanterBlockEntity.currentItemProcessingTime = 0; int consumedItems = tickEnchantmentUpgradeRecipe(world, enchanterBlockEntity, enchantmentUpgradeRecipe, enchanterBlockEntity.craftingTimeTotal - enchanterBlockEntity.craftingTime); - enchanterBlockEntity.craftingTime += consumedItems; - if (enchanterBlockEntity.craftingTime >= enchanterBlockEntity.craftingTimeTotal) { - playCraftingFinishedEffects(enchanterBlockEntity); - craftEnchantmentUpgradeRecipe(world, enchanterBlockEntity, enchantmentUpgradeRecipe); - craftingSuccess = true; + if(consumedItems == 0) { + enchanterBlockEntity.inventoryChanged(); + } else { + enchanterBlockEntity.craftingTime += consumedItems; + if (enchanterBlockEntity.craftingTime >= enchanterBlockEntity.craftingTimeTotal) { + playCraftingFinishedEffects(enchanterBlockEntity); + craftEnchantmentUpgradeRecipe(world, enchanterBlockEntity, enchantmentUpgradeRecipe); + craftingSuccess = true; + } } } enchanterBlockEntity.markDirty(); } else if (enchanterBlockEntity.currentItemProcessingTime > -1) { - int speedTicks = Support.getIntFromDecimalWithChance(enchanterBlockEntity.upgrades.get(UpgradeType.SPEED), world.random); + int speedTicks = Support.getIntFromDecimalWithChance(enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.SPEED), world.random); enchanterBlockEntity.craftingTime += speedTicks; if (world.getTime() % REQUIRED_TICKS_FOR_EACH_EXPERIENCE_POINT == 0) { // in-code recipe for item + books => enchanted item @@ -310,11 +298,12 @@ public static void enchantCenterItem(@NotNull EnchanterBlockEntity enchanterBloc ItemStack centerStack = enchanterBlockEntity.getStack(0); ItemStack centerStackCopy = centerStack.copy(); Map highestEnchantments = getHighestEnchantmentsInItemBowls(enchanterBlockEntity); - + for (Enchantment enchantment : highestEnchantments.keySet()) { centerStackCopy = SpectrumEnchantmentHelper.addOrExchangeEnchantment(centerStackCopy, enchantment, highestEnchantments.get(enchantment), false, enchanterBlockEntity.canOwnerApplyConflictingEnchantments); } - + + int spentExperience = enchanterBlockEntity.currentItemProcessingTime / EnchanterBlockEntity.REQUIRED_TICKS_FOR_EACH_EXPERIENCE_POINT; if (centerStack.getCount() > 1) { centerStackCopy.setCount(1); MultiblockCrafter.spawnOutputAsItemEntity(enchanterBlockEntity.world, enchanterBlockEntity.pos, centerStackCopy); @@ -322,9 +311,8 @@ public static void enchantCenterItem(@NotNull EnchanterBlockEntity enchanterBloc } else { enchanterBlockEntity.setStack(0, centerStackCopy); } - + // vanilla - int spentExperience = enchanterBlockEntity.currentItemProcessingTime / EnchanterBlockEntity.REQUIRED_TICKS_FOR_EACH_EXPERIENCE_POINT; grantPlayerEnchantingAdvancementCriterion(enchanterBlockEntity.ownerUUID, centerStackCopy, spentExperience); // enchanter enchanting criterion @@ -447,32 +435,32 @@ public static void craftEnchanterRecipe(World world, @NotNull EnchanterBlockEnti // decrement stacks in item bowls for (int i = 0; i < 8; i++) { int resultAmountAfterEfficiencyMod = 1; - if (!enchanterRecipe.areYieldAndEfficiencyUpgradesDisabled() && enchanterBlockEntity.upgrades.get(UpgradeType.EFFICIENCY) != 1.0) { - double efficiencyModifier = 1.0 / enchanterBlockEntity.upgrades.get(UpgradeType.EFFICIENCY); + if (!enchanterRecipe.areYieldAndEfficiencyUpgradesDisabled() && enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.EFFICIENCY) != 1.0) { + double efficiencyModifier = 1.0 / enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.EFFICIENCY); resultAmountAfterEfficiencyMod = Support.getIntFromDecimalWithChance(efficiencyModifier, enchanterBlockEntity.world.random); } - + if (resultAmountAfterEfficiencyMod > 0) { // since this recipe uses 1 item in each slot we can just iterate them all and decrement with 1 BlockPos itemBowlPos = enchanterBlockEntity.pos.add(getItemBowlPositionOffset(i, enchanterBlockEntity.virtualInventoryRecipeOrientation)); BlockEntity blockEntity = world.getBlockEntity(itemBowlPos); if (blockEntity instanceof ItemBowlBlockEntity itemBowlBlockEntity) { - itemBowlBlockEntity.decrementBowlStack(enchanterBlockEntity.pos, resultAmountAfterEfficiencyMod, false); - itemBowlBlockEntity.updateInClientWorld(world, itemBowlPos); + itemBowlBlockEntity.decrementBowlStack(new Vec3d(enchanterBlockEntity.pos.getX(), enchanterBlockEntity.pos.getY() + 1, enchanterBlockEntity.pos.getX() + 0.5), resultAmountAfterEfficiencyMod, false); + itemBowlBlockEntity.updateInClientWorld(); } } } - + // if there is room: place the output on the table // otherwise: pop it off ItemStack resultStack = enchanterRecipe.getOutput().copy(); ItemStack existingCenterStack = enchanterBlockEntity.getStack(0); - - if (!enchanterRecipe.areYieldAndEfficiencyUpgradesDisabled() && enchanterBlockEntity.upgrades.get(UpgradeType.YIELD) != 1.0) { - int resultCountMod = Support.getIntFromDecimalWithChance(resultStack.getCount() * enchanterBlockEntity.upgrades.get(UpgradeType.YIELD), world.random); + + if (!enchanterRecipe.areYieldAndEfficiencyUpgradesDisabled() && enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.YIELD) != 1.0) { + int resultCountMod = Support.getIntFromDecimalWithChance(resultStack.getCount() * enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.YIELD), world.random); resultStack.setCount(resultCountMod); } - + if (existingCenterStack.getCount() > 1) { existingCenterStack.decrement(1); MultiblockCrafter.spawnItemStackAsEntitySplitViaMaxCount(world, enchanterBlockEntity.pos, resultStack, resultStack.getCount(), MultiblockCrafter.RECIPE_STACK_VELOCITY); @@ -491,28 +479,28 @@ public static void craftEnchanterRecipe(World world, @NotNull EnchanterBlockEnti } public static int tickEnchantmentUpgradeRecipe(World world, @NotNull EnchanterBlockEntity enchanterBlockEntity, @NotNull EnchantmentUpgradeRecipe enchantmentUpgradeRecipe, int itemsToConsumeLeft) { - int itemCountToConsume = Math.min(itemsToConsumeLeft, Support.getIntFromDecimalWithChance(enchanterBlockEntity.upgrades.get(UpgradeType.SPEED), world.random)); - + int itemCountToConsume = Math.min(itemsToConsumeLeft, Support.getIntFromDecimalWithChance(enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.SPEED), world.random)); + int consumedAmount = 0; int bowlsChecked = 0; int randomBowlPosition = world.random.nextInt(8); - + int itemCountToConsumeAfterMod = itemCountToConsume; - if (enchanterBlockEntity.upgrades.get(UpgradeType.EFFICIENCY) != 1.0) { - itemCountToConsumeAfterMod = Support.getIntFromDecimalWithChance(itemCountToConsume / enchanterBlockEntity.upgrades.get(UpgradeType.EFFICIENCY), world.random); + if (enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.EFFICIENCY) != 1.0) { + itemCountToConsumeAfterMod = Support.getIntFromDecimalWithChance(itemCountToConsume / enchanterBlockEntity.upgrades.getEffectiveValue(UpgradeType.EFFICIENCY), world.random); } - + // cycle at least once for fancy particles while ((consumedAmount < itemCountToConsumeAfterMod && bowlsChecked < 8) || (itemCountToConsumeAfterMod == 0 & consumedAmount == 0)) { Vec3i bowlOffset = getItemBowlPositionOffset(randomBowlPosition + bowlsChecked, enchanterBlockEntity.virtualInventoryRecipeOrientation); - + BlockEntity blockEntity = world.getBlockEntity(enchanterBlockEntity.pos.add(bowlOffset)); if (blockEntity instanceof ItemBowlBlockEntity itemBowlBlockEntity) { if (itemCountToConsumeAfterMod == 0) { - itemBowlBlockEntity.spawnSphereParticlesTo(enchanterBlockEntity.pos); + itemBowlBlockEntity.spawnOrbParticles(new Vec3d(enchanterBlockEntity.pos.getX() + 0.5, enchanterBlockEntity.pos.getY() + 1.0, enchanterBlockEntity.pos.getZ() + 0.5)); consumedAmount += itemCountToConsume; } else { - int decrementedAmount = itemBowlBlockEntity.decrementBowlStack(enchanterBlockEntity.pos, itemCountToConsumeAfterMod, true); + int decrementedAmount = itemBowlBlockEntity.decrementBowlStack(new Vec3d(enchanterBlockEntity.pos.getX() + 0.5, enchanterBlockEntity.pos.getY() + 1.0, enchanterBlockEntity.pos.getZ() + 0.5), itemCountToConsumeAfterMod, true); consumedAmount += decrementedAmount; } } @@ -541,7 +529,7 @@ public static void craftEnchantmentUpgradeRecipe(World world, @NotNull Enchanter public static Vec3i getItemBowlPositionOffset(int index, int orientation) { int offset = (orientation * 2 + index) % 8; - return itemBowlOffsets.get(offset); + return ITEM_BOWL_OFFSETS.get(offset); } /** @@ -566,11 +554,12 @@ private static boolean calculateCurrentRecipe(@NotNull World world, @NotNull Enc SimpleInventory recipeTestInventory = new SimpleInventory(enchanterBlockEntity.virtualInventoryIncludingBowlStacks.size()); recipeTestInventory.setStack(0, enchanterBlockEntity.virtualInventoryIncludingBowlStacks.getStack(0)); recipeTestInventory.setStack(1, enchanterBlockEntity.virtualInventoryIncludingBowlStacks.getStack(1)); - // Cycle through 4 phases of recipe orientations - // This way the player can arrange the ingredients in the item bowls as he likes - // without resorting to specifying a fixed orientation + EnchantmentUpgradeRecipe enchantmentUpgradeRecipe = world.getRecipeManager().getFirstMatch(SpectrumRecipeTypes.ENCHANTMENT_UPGRADE, enchanterBlockEntity.virtualInventoryIncludingBowlStacks, world).orElse(null); if (enchantmentUpgradeRecipe == null) { + // Cycle through 4 phases of recipe orientations + // This way the player can arrange the ingredients in the item bowls as they like + // without resorting to specifying a fixed orientation for (int orientation = 0; orientation < 4; orientation++) { int offset = orientation * 2; recipeTestInventory.setStack(2, enchanterBlockEntity.virtualInventoryIncludingBowlStacks.getStack((offset + 8) % 8 + 2)); @@ -587,7 +576,7 @@ private static boolean calculateCurrentRecipe(@NotNull World world, @NotNull Enc enchanterBlockEntity.currentRecipe = enchanterRecipe; enchanterBlockEntity.virtualInventoryRecipeOrientation = orientation; enchanterBlockEntity.virtualInventoryIncludingBowlStacks = recipeTestInventory; - enchanterBlockEntity.craftingTimeTotal = (int) Math.ceil(enchanterRecipe.getCraftingTime() / enchanterBlockEntity.upgrades.get(Upgradeable.UpgradeType.SPEED)); + enchanterBlockEntity.craftingTimeTotal = (int) Math.ceil(enchanterRecipe.getCraftingTime() / enchanterBlockEntity.upgrades.getEffectiveValue(Upgradeable.UpgradeType.SPEED)); break; } } @@ -641,16 +630,18 @@ public void readNbt(NbtCompound nbt) { this.currentRecipe = null; if (nbt.contains("CurrentRecipe")) { String recipeString = nbt.getString("CurrentRecipe"); - if (!recipeString.isEmpty() && world != null) { - Optional optionalRecipe = world.getRecipeManager().get(new Identifier(recipeString)); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); if (optionalRecipe.isPresent() && (optionalRecipe.get() instanceof EnchanterRecipe || optionalRecipe.get() instanceof EnchantmentUpgradeRecipe)) { this.currentRecipe = optionalRecipe.get(); } } } - + if (nbt.contains("Upgrades", NbtElement.LIST_TYPE)) { - this.upgrades = Upgradeable.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + this.upgrades = UpgradeHolder.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + } else { + this.upgrades = new UpgradeHolder(); } } @@ -668,7 +659,7 @@ public void writeNbt(NbtCompound nbt) { nbt.putString("item_facing", this.itemFacing.toString().toUpperCase(Locale.ROOT)); } if (this.upgrades != null) { - nbt.put("Upgrades", Upgradeable.toNbt(this.upgrades)); + nbt.put("Upgrades", this.upgrades.toNbt()); } if (this.ownerUUID != null) { nbt.putUuid("OwnerUUID", this.ownerUUID); @@ -702,7 +693,7 @@ private void doItemBowlOrbs(World world) { BlockPos itemBowlPos = pos.add(getItemBowlPositionOffset(i, 0)); BlockEntity blockEntity = world.getBlockEntity(itemBowlPos); if (blockEntity instanceof ItemBowlBlockEntity itemBowlBlockEntity) { - itemBowlBlockEntity.spawnSphereParticlesTo(pos); + itemBowlBlockEntity.spawnOrbParticles(new Vec3d(this.pos.getX() + 0.5, this.pos.getY() + 1.0, this.pos.getZ() + 0.5)); } } } @@ -712,7 +703,7 @@ public boolean drainExperience(int amount) { if (experienceProviderStack.getItem() instanceof ExperienceStorageItem experienceStorageItem) { int currentStoredExperience = ExperienceStorageItem.getStoredExperience(experienceProviderStack); if (currentStoredExperience > 0) { - int amountAfterExperienceMod = getExperienceWithMod(amount, this.upgrades.get(UpgradeType.EXPERIENCE), world.random); + int amountAfterExperienceMod = getExperienceWithMod(amount, this.upgrades.getEffectiveValue(UpgradeType.EXPERIENCE), world.random); int drainedExperience = Math.min(currentStoredExperience, amountAfterExperienceMod); if (experienceStorageItem instanceof KnowledgeGemItem knowledgeGemItem) { @@ -750,7 +741,6 @@ public void inventoryChanged() { currentItemProcessingTime = -1; super.inventoryChanged(); - this.markDirty(); } public ItemStack getItemBowlStack(World world, BlockPos blockPos) { @@ -792,10 +782,10 @@ public void calculateUpgrades() { this.upgrades = Upgradeable.calculateUpgradeMods4(world, pos, 3, 0, this.ownerUUID); this.markDirty(); } - + @Override - public float getUpgradeValue(Upgradeable.UpgradeType upgradeType) { - return this.upgrades.get(upgradeType); + public UpgradeHolder getUpgradeHolder() { + return this.upgrades; } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlock.java index 97d58764d4..94bc41ebcf 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlock.java @@ -1,29 +1,25 @@ package de.dafuqs.spectrum.blocks.ender; -import de.dafuqs.spectrum.enums.ProgressionStage; -import de.dafuqs.spectrum.inventories.GenericSpectrumContainerScreenHandler; -import net.minecraft.block.BlockState; -import net.minecraft.block.DispenserBlock; -import net.minecraft.block.dispenser.DispenserBehavior; -import net.minecraft.block.dispenser.ItemDispenserBehavior; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.mob.PiglinBrain; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.EnderChestInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.SimpleNamedScreenHandlerFactory; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPointerImpl; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.networking.*; +import net.minecraft.block.*; +import net.minecraft.block.dispenser.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.mob.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; public class EnderDropperBlock extends DispenserBlock { @@ -72,7 +68,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt PiglinBrain.onGuardedBlockInteracted(player, true); } else { - player.sendMessage(new TranslatableText("block.spectrum.ender_dropper_with_owner", enderDropperBlockEntity.getOwnerName()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.ender_dropper_with_owner", enderDropperBlockEntity.getOwnerName()), false); } } return ActionResult.CONSUME; @@ -99,4 +95,9 @@ protected void dispense(ServerWorld world, BlockPos pos) { } } } + + public DispenserBehavior getDefaultBehaviorForItem(ItemStack stack) { + return super.getBehaviorForItem(stack); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlockEntity.java index f36e42ecb9..9b5deb75ae 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderDropperBlockEntity.java @@ -9,7 +9,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import java.util.UUID; @@ -25,9 +24,9 @@ public EnderDropperBlockEntity(BlockPos blockPos, BlockState blockState) { protected Text getContainerName() { if (hasOwner()) { - return new TranslatableText("block.spectrum.ender_dropper").append(new TranslatableText("container.spectrum.owned_by_player", this.ownerName)); + return Text.translatable("block.spectrum.ender_dropper").append(Text.translatable("container.spectrum.owned_by_player", this.ownerName)); } else { - return new TranslatableText("block.spectrum.ender_dropper"); + return Text.translatable("block.spectrum.ender_dropper"); } } @@ -56,7 +55,7 @@ public int chooseNonEmptySlot() { public ItemStack getStack(int slot) { PlayerEntity playerEntity = getOwnerIfOnline(); - if(playerEntity != null) { + if (playerEntity != null) { EnderChestInventory enderInventory = playerEntity.getEnderChestInventory(); return enderInventory.getStack(slot); } @@ -65,7 +64,7 @@ public ItemStack getStack(int slot) { public void setStack(int slot, ItemStack itemStack) { PlayerEntity playerEntity = getOwnerIfOnline(); - if(playerEntity != null) { + if (playerEntity != null) { EnderChestInventory enderInventory = playerEntity.getEnderChestInventory(); enderInventory.setStack(slot, itemStack); } @@ -84,7 +83,7 @@ public String getOwnerName() { @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); - this.ownerName = playerEntity.getName().asString(); + this.ownerName = playerEntity.getName().getString(); } public void readNbt(NbtCompound nbt) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlock.java index 9cfec930a3..07d6bdb3d5 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlock.java @@ -1,35 +1,31 @@ package de.dafuqs.spectrum.blocks.ender; -import de.dafuqs.spectrum.enums.ProgressionStage; -import de.dafuqs.spectrum.inventories.GenericSpectrumContainerScreenHandler; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; import net.minecraft.block.*; import net.minecraft.block.entity.*; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.entity.mob.PiglinBrain; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.EnderChestInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.SimpleNamedScreenHandlerFactory; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.stat.Stats; -import net.minecraft.state.StateManager; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.function.BooleanBiFunction; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.entity.mob.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.stat.*; +import net.minecraft.state.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.function.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import static net.minecraft.block.HopperBlock.ENABLED; +import static net.minecraft.block.HopperBlock.*; public class EnderHopperBlock extends BlockWithEntity { @@ -139,7 +135,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt player.incrementStat(Stats.OPEN_ENDERCHEST); PiglinBrain.onGuardedBlockInteracted(player, true); } else { - player.sendMessage(new TranslatableText("block.spectrum.ender_hopper_with_owner", enderHopperBlockEntity.getOwnerName()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.ender_hopper_with_owner", enderHopperBlockEntity.getOwnerName()), false); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlockEntity.java index 2c1ae4cb57..5e5265dcbb 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/ender/EnderHopperBlockEntity.java @@ -15,7 +15,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.predicate.entity.EntityPredicates; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.function.BooleanBiFunction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -171,9 +170,9 @@ private static Inventory getInputInventory(World world, EnderHopperBlockEntity e protected Text getContainerName() { if (hasOwner()) { - return new TranslatableText("block.spectrum.ender_hopper").append(new TranslatableText("container.spectrum.owned_by_player", this.ownerName)); + return Text.translatable("block.spectrum.ender_hopper").append(Text.translatable("container.spectrum.owned_by_player", this.ownerName)); } else { - return new TranslatableText("block.spectrum.ender_hopper"); + return Text.translatable("block.spectrum.ender_hopper"); } } @@ -220,7 +219,7 @@ public String getOwnerName() { @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); - this.ownerName = playerEntity.getName().asString(); + this.ownerName = playerEntity.getName().getString(); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlock.java index cd6b1dfb6e..ed745faf55 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlock.java @@ -10,7 +10,6 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; @@ -39,7 +38,7 @@ public BlockRenderType getRenderType(BlockState state) { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.color_picker.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("block.spectrum.color_picker.tooltip").formatted(Formatting.GRAY)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntity.java index 18f86b5f78..d47d7c0a29 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntity.java @@ -34,7 +34,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; @@ -84,7 +83,7 @@ public static void tick(World world, BlockPos pos, BlockState state, ColorPicker blockEntity.updateInClientWorld(); blockEntity.setInkDirty(); blockEntity.markDirty(); - } else if(shouldPause) { + } else if (shouldPause) { blockEntity.paused = true; } } @@ -127,7 +126,7 @@ protected void writeNbt(NbtCompound nbt) { @Override protected Text getContainerName() { - return new TranslatableText("block.spectrum.color_picker"); + return Text.translatable("block.spectrum.color_picker"); } @Override @@ -200,7 +199,7 @@ public int size() { @Override public void writeScreenOpeningData(ServerPlayerEntity player, PacketByteBuf buf) { buf.writeBlockPos(pos); - if(this.selectedColor == null) { + if (this.selectedColor == null) { buf.writeBoolean(false); } else { buf.writeBoolean(true); @@ -217,7 +216,7 @@ protected boolean tryConvertPigmentToEnergy(ServerWorld world) { inventory.get(INPUT_SLOT_ID).decrement(1); this.inkStorage.addEnergy(color, amount); - if(SpectrumCommon.CONFIG.BlockSoundVolume > 0) { + if (SpectrumCommon.CONFIG.BlockSoundVolume > 0) { world.playSound(null, pos, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, SpectrumCommon.CONFIG.BlockSoundVolume / 2, 1.0F); } SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(world, diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntityRenderer.java index fd4ba73d3a..22efcee355 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/ColorPickerBlockEntityRenderer.java @@ -15,7 +15,7 @@ public class ColorPickerBlockEntityRenderer implements BlockEntityRenderer { public ColorPickerBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { - + } @Override @@ -46,5 +46,5 @@ public void render(ColorPickerBlockEntity blockEntity, float tickDelta, MatrixSt matrixStack.pop(); } } - + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlock.java index d1df2515a1..25ff1212f9 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlock.java @@ -13,8 +13,8 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; @@ -43,7 +43,7 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.crystal_apothecary.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("block.spectrum.crystal_apothecary.tooltip").formatted(Formatting.GRAY)); } @Override @@ -102,8 +102,9 @@ public BlockEntityTicker getTicker(World world, Block return checkType(type, SpectrumBlockEntities.CRYSTAL_APOTHECARY, CrystalApothecaryBlockEntity::tick); } + @Override @Nullable - public GameEventListener getGameEventListener(World world, T blockEntity) { + public GameEventListener getGameEventListener(ServerWorld world, T blockEntity) { return blockEntity instanceof CrystalApothecaryBlockEntity crystalApothecaryBlockEntity ? crystalApothecaryBlockEntity.getEventListener() : null; } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlockEntity.java index 8368db9899..13b1ee0529 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/CrystalApothecaryBlockEntity.java @@ -17,7 +17,6 @@ import net.minecraft.block.Waterloggable; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.LootableContainerBlockEntity; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.Inventories; @@ -32,7 +31,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.state.property.Properties; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Pair; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; @@ -160,9 +158,9 @@ public static int countValidGemstoneClusterBlocksAroundBlockPos(World world, Blo protected Text getContainerName() { if (hasOwner()) { - return new TranslatableText("block.spectrum.crystal_apothecary").append(new TranslatableText("container.spectrum.owned_by_player", this.ownerName)); + return Text.translatable("block.spectrum.crystal_apothecary").append(Text.translatable("container.spectrum.owned_by_player", this.ownerName)); } else { - return new TranslatableText("block.spectrum.crystal_apothecary"); + return Text.translatable("block.spectrum.crystal_apothecary"); } } @@ -243,8 +241,8 @@ protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerIn } @Override - public boolean canAcceptEvent(World world, GameEventListener listener, BlockPos pos, GameEvent event, Entity entity, BlockPos sourcePos) { - return event == SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN && !this.listenerPaused; + public boolean canAcceptEvent(World world, GameEventListener listener, GameEvent.Message message, Vec3d sourcePos) { + return message.getEvent() == SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN && !this.listenerPaused; } @Override @@ -304,14 +302,14 @@ public String getOwnerName() { @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); - this.ownerName = playerEntity.getName().asString(); + this.ownerName = playerEntity.getName().getString(); } public void harvestExistingClusters() { - if (world instanceof ServerWorld) { + if (world instanceof ServerWorld serverWorld) { for (BlockPos currPos : BlockPos.iterateOutwards(this.pos, RANGE, RANGE, RANGE)) { if (world.getBlockState(currPos).isIn(SpectrumBlockTags.CRYSTAL_APOTHECARY_HARVESTABLE)) { - this.blockPosEventTransferListener.acceptEvent(world, currPos, SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, null, this.pos); + this.blockPosEventTransferListener.acceptEvent(serverWorld, new GameEvent.Message(SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, Vec3d.ofCenter(currPos), GameEvent.Emitter.of(world.getBlockState(currPos)), this.blockPosEventTransferListener, Vec3d.ofCenter(this.pos)), Vec3d.ofCenter(this.pos)); } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlock.java index ddd77ff52f..41b7cfd632 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlock.java @@ -8,7 +8,6 @@ import net.minecraft.state.property.DirectionProperty; import net.minecraft.state.property.Properties; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -52,7 +51,7 @@ protected void appendProperties(StateManager.Builder builder) @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.ink_duct.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("block.spectrum.ink_duct.tooltip").formatted(Formatting.GRAY)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlockEntity.java index 3bc6a977d8..af46f45b93 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkDuctBlockEntity.java @@ -6,20 +6,22 @@ import net.minecraft.util.math.BlockPos; public class InkDuctBlockEntity extends BlockEntity { - - public static int RANGE=64; - - public InkDuctBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { - super(blockEntityType, blockPos, blockState); - } - - public boolean canSee(InkDuctBlockEntity duct){return duct.pos.isWithinDistance(pos, RANGE);} - - private boolean canTransferTo(BlockEntity blockEntity) { - return blockEntity instanceof InkDuctBlockEntity; - } - - public int getRange(){ - return RANGE; - } + + public static int RANGE = 64; + + public InkDuctBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { + super(blockEntityType, blockPos, blockState); + } + + public boolean canSee(InkDuctBlockEntity duct) { + return duct.pos.isWithinDistance(pos, RANGE); + } + + private boolean canTransferTo(BlockEntity blockEntity) { + return blockEntity instanceof InkDuctBlockEntity; + } + + public int getRange() { + return RANGE; + } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkNetwork.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkNetwork.java index faf4397d1a..9051ce7441 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkNetwork.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkNetwork.java @@ -5,14 +5,14 @@ import java.util.List; public class InkNetwork { - protected static List networks = new ArrayList<>(); - - protected HashSet inkDucts = new HashSet<>(); - - public boolean canConnect(InkDuctBlockEntity newDuct){ - for (InkDuctBlockEntity currentDuct: inkDucts){ - currentDuct.canSee(newDuct); - } - return false; - } + protected static List networks = new ArrayList<>(); + + protected HashSet inkDucts = new HashSet<>(); + + public boolean canConnect(InkDuctBlockEntity newDuct) { + for (InkDuctBlockEntity currentDuct : inkDucts) { + currentDuct.canSee(newDuct); + } + return false; + } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkwellBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkwellBlock.java index f718581b86..0ff811c23c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/energy/InkwellBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/energy/InkwellBlock.java @@ -8,7 +8,6 @@ import net.minecraft.state.property.DirectionProperty; import net.minecraft.state.property.Properties; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -52,7 +51,7 @@ protected void appendProperties(StateManager.Builder builder) @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.inkwell.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("block.spectrum.inkwell.tooltip").formatted(Formatting.GRAY)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/DragonrotFluid.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/DragonrotFluid.java new file mode 100644 index 0000000000..5dd3f3dfcc --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/DragonrotFluid.java @@ -0,0 +1,109 @@ +package de.dafuqs.spectrum.blocks.fluid; + +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; + +public abstract class DragonrotFluid extends SpectrumFluid { + + @Override + public Fluid getStill() { + return SpectrumFluids.DRAGONROT; + } + + @Override + public Fluid getFlowing() { + return SpectrumFluids.FLOWING_DRAGONROT; + } + + @Override + public Item getBucketItem() { + return SpectrumItems.DRAGONROT_BUCKET; + } + + @Override + protected BlockState toBlockState(FluidState fluidState) { + return SpectrumBlocks.DRAGONROT.getDefaultState().with(Properties.LEVEL_15, getBlockStateLevel(fluidState)); + } + + @Override + public boolean matchesType(Fluid fluid) { + return fluid == SpectrumFluids.DRAGONROT || fluid == SpectrumFluids.FLOWING_DRAGONROT; + } + + @Environment(EnvType.CLIENT) + public void randomDisplayTick(World world, BlockPos pos, FluidState state, Random random) { + if (random.nextInt(1000) == 0) { + world.playSound(pos.getX(), pos.getY(), pos.getZ(), SpectrumSoundEvents.DRAGONROT_AMBIENT, SoundCategory.BLOCKS, 0.2F + random.nextFloat() * 0.2F, 0.9F + random.nextFloat() * 0.15F, false); + } + } + + @Override + protected int getFlowSpeed(WorldView worldView) { + return 3; + } + + @Override + protected int getLevelDecreasePerBlock(WorldView worldView) { + return 3; + } + + @Override + public int getTickRate(WorldView worldView) { + return 40; + } + + @Override + public ParticleEffect getParticle() { + return SpectrumParticleTypes.DRIPPING_DRAGONROT; + } + + @Override + public ParticleEffect getSplashParticle() { + return SpectrumParticleTypes.DRAGONROT_SPLASH; + } + + public static class FlowingDragonrot extends DragonrotFluid { + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(LEVEL); + } + + @Override + public int getLevel(FluidState fluidState) { + return fluidState.get(LEVEL); + } + + @Override + public boolean isStill(FluidState fluidState) { + return false; + } + + } + + public static class StillDragonrot extends DragonrotFluid { + + @Override + public int getLevel(FluidState fluidState) { + return 8; + } + + @Override + public boolean isStill(FluidState fluidState) { + return true; + } + + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/DragonrotFluidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/DragonrotFluidBlock.java new file mode 100644 index 0000000000..9e97f088dc --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/DragonrotFluidBlock.java @@ -0,0 +1,128 @@ +package de.dafuqs.spectrum.blocks.fluid; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.entity.effect.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; + +public class DragonrotFluidBlock extends SpectrumFluidBlock { + + public DragonrotFluidBlock(FlowableFluid fluid, Settings settings) { + super(fluid, settings); + } + + @Override + public DefaultParticleType getSplashParticle() { + return SpectrumParticleTypes.DRAGONROT; + } + + @Override + public Pair getFishingParticles() { + return new Pair<>(SpectrumParticleTypes.DRAGONROT, SpectrumParticleTypes.DRAGONROT_FISHING); + } + + @Override + public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify) { + if (this.receiveNeighborFluids(world, pos, state)) { + world.createAndScheduleFluidTick(pos, state.getFluidState().getFluid(), this.fluid.getTickRate(world)); + } + } + + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + super.onEntityCollision(state, world, pos, entity); + + if (entity instanceof LivingEntity livingEntity) { + // just check every 20 ticks for performance + if (world.getTime() % 20 == 0) { + StatusEffectInstance milleniaDisease = livingEntity.getStatusEffect(SpectrumStatusEffects.MILLENIA_DISEASE); + if (milleniaDisease == null || milleniaDisease.getDuration() < 200) { + livingEntity.addStatusEffect(new StatusEffectInstance(SpectrumStatusEffects.MILLENIA_DISEASE, 220, 0)); + } + } + } else if (entity instanceof ItemEntity itemEntity && !itemEntity.cannotPickup()) { + if (world.random.nextInt(200) == 0) { + ItemStack itemStack = itemEntity.getStack(); + DragonrotConvertingRecipe recipe = getConversionRecipeFor(SpectrumRecipeTypes.DRAGONROT_CONVERTING, world, itemStack); + if (recipe != null) { + world.playSound(null, itemEntity.getBlockPos(), SoundEvents.BLOCK_WOOL_BREAK, SoundCategory.NEUTRAL, 1.0F, 0.9F + world.getRandom().nextFloat() * 0.2F); + MultiblockCrafter.spawnItemStackAsEntitySplitViaMaxCount(world, itemEntity.getPos(), recipe.getOutput(), recipe.getOutput().getCount() * itemStack.getCount(), Vec3d.ZERO); + itemEntity.discard(); + } + } + } + } + + @Override + public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { + super.randomDisplayTick(state, world, pos, random); + if (!world.getBlockState(pos.up()).isSolidBlock(world, pos.up()) && random.nextFloat() < 0.03F) { + world.addParticle(SpectrumParticleTypes.DRAGONROT, pos.getX() + random.nextDouble(), pos.getY() + 1, pos.getZ() + random.nextDouble(), 0, random.nextDouble() * 0.1, 0); + } + } + + @Override + public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean notify) { + if (this.receiveNeighborFluids(world, pos, state)) { + world.createAndScheduleFluidTick(pos, state.getFluidState().getFluid(), this.fluid.getTickRate(world)); + } + } + + @Override + public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) { + return false; + } + + /** + * @param world The world + * @param pos The position in the world + * @param state BlockState of the mud. Included the height/fluid level + * @return Dunno, actually. I just mod things. + */ + private boolean receiveNeighborFluids(World world, BlockPos pos, BlockState state) { + for (Direction direction : Direction.values()) { + BlockPos blockPos = pos.offset(direction); + if (world.getFluidState(blockPos).isIn(FluidTags.WATER)) { + world.setBlockState(pos, Blocks.ANDESITE.getDefaultState()); + this.playExtinguishSound(world, pos); + return false; + } else if (world.getFluidState(blockPos).isIn(FluidTags.LAVA)) { + world.setBlockState(pos, Blocks.BLACKSTONE.getDefaultState()); + this.playExtinguishSound(world, pos); + return false; + } else if (world.getFluidState(blockPos).isIn(SpectrumFluidTags.MUD)) { + world.setBlockState(pos, Blocks.MUD.getDefaultState()); + this.playExtinguishSound(world, pos); + return false; + } else if (world.getFluidState(blockPos).isIn(SpectrumFluidTags.LIQUID_CRYSTAL)) { + world.setBlockState(pos, Blocks.DIORITE.getDefaultState()); + this.playExtinguishSound(world, pos); + return false; + } else if (world.getFluidState(blockPos).isIn(SpectrumFluidTags.MIDNIGHT_SOLUTION)) { + world.setBlockState(pos, SpectrumBlocks.BLACK_MATERIA.getDefaultState()); + this.playExtinguishSound(world, pos); + return false; + } + } + return true; + } + + private void playExtinguishSound(WorldAccess world, BlockPos pos) { + world.syncWorldEvent(1501, pos, 0); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluid.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluid.java index 0250552967..c1ecdb4795 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluid.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluid.java @@ -1,28 +1,20 @@ package de.dafuqs.spectrum.blocks.fluid; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumFluids; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.item.Item; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.sound.SoundCategory; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.Properties; -import net.minecraft.tag.BlockTags; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; - -import java.util.Random; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.tag.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; public abstract class LiquidCrystalFluid extends SpectrumFluid { @@ -53,7 +45,8 @@ public boolean matchesType(Fluid fluid) { @Environment(EnvType.CLIENT) public void randomDisplayTick(World world, BlockPos pos, FluidState state, Random random) { - if (random.nextInt(1000) == 0) { + BlockPos topPos = pos.up(); + if (world.getBlockState(topPos).isAir() && !world.getBlockState(topPos).isOpaqueFullCube(world, topPos) && random.nextInt(1000) == 0) { world.playSound(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, SpectrumSoundEvents.LIQUID_CRYSTAL_AMBIENT, SoundCategory.BLOCKS, 0.2F + random.nextFloat() * 0.2F, 0.9F + random.nextFloat() * 0.15F, false); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluidBlock.java index 2bb6a483bf..ddf7d2ccda 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluidBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/LiquidCrystalFluidBlock.java @@ -1,35 +1,23 @@ package de.dafuqs.spectrum.blocks.fluid; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.fluid_converting.LiquidCrystalConvertingRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumFluidTags; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.fluid.FlowableFluid; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.DefaultParticleType; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.tag.FluidTags; -import net.minecraft.util.Pair; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; - -import java.util.Random; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.entity.effect.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; public class LiquidCrystalFluidBlock extends SpectrumFluidBlock { @@ -84,10 +72,8 @@ public void onEntityCollision(BlockState state, World world, BlockPos pos, Entit } } } else if (entity instanceof ItemEntity itemEntity && !itemEntity.cannotPickup()) { - ItemStack itemStack = itemEntity.getStack(); - // do not try to search conversion recipes for items that are recipe outputs already - // => better performance - if (!LiquidCrystalConvertingRecipe.isExistingOutputItem(itemStack)) { + if (world.random.nextInt(200) == 0) { + ItemStack itemStack = itemEntity.getStack(); LiquidCrystalConvertingRecipe recipe = getConversionRecipeFor(SpectrumRecipeTypes.LIQUID_CRYSTAL_CONVERTING, world, itemStack); if (recipe != null) { world.playSound(null, itemEntity.getBlockPos(), SoundEvents.BLOCK_WOOL_BREAK, SoundCategory.NEUTRAL, 1.0F, 0.9F + world.getRandom().nextFloat() * 0.2F); @@ -128,7 +114,7 @@ private boolean receiveNeighborFluids(World world, BlockPos pos, BlockState stat block = SpectrumBlocks.BLAZING_CRYSTAL; } else { // blackstone in the nether, deepslate everywhere else - if (world.getDimension().isUltrawarm()) { + if (world.getDimension().ultrawarm()) { block = Blocks.BLACKSTONE; } else { block = Blocks.COBBLED_DEEPSLATE; @@ -139,8 +125,7 @@ private boolean receiveNeighborFluids(World world, BlockPos pos, BlockState stat return false; } if (world.getFluidState(blockPos).isIn(SpectrumFluidTags.MUD)) { - Block block = Blocks.CLAY; - world.setBlockState(pos, block.getDefaultState()); + world.setBlockState(pos, Blocks.CLAY.getDefaultState()); this.playExtinguishSound(world, pos); return false; } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluid.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluid.java index 2a5c2e1ca7..1d37f565ac 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluid.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluid.java @@ -1,27 +1,19 @@ package de.dafuqs.spectrum.blocks.fluid; -import de.dafuqs.spectrum.blocks.BlackMateriaBlock; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumFluids; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.BlockState; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.item.Item; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.sound.SoundCategory; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.Properties; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; -import net.minecraft.world.WorldView; - -import java.util.Random; +import de.dafuqs.spectrum.blocks.decay.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; public abstract class MidnightSolutionFluid extends SpectrumFluid { @@ -52,7 +44,8 @@ public boolean matchesType(Fluid fluid) { @Environment(EnvType.CLIENT) public void randomDisplayTick(World world, BlockPos pos, FluidState state, Random random) { - if (random.nextInt(1000) == 0) { + BlockPos topPos = pos.up(); + if (world.getBlockState(topPos).isAir() && !world.getBlockState(topPos).isOpaqueFullCube(world, topPos) && random.nextInt(2000) == 0) { world.playSound(pos.getX(), pos.getY(), pos.getZ(), SpectrumSoundEvents.MIDNIGHT_SOLUTION_AMBIENT, SoundCategory.BLOCKS, 0.2F + random.nextFloat() * 0.2F, 0.9F + random.nextFloat() * 0.15F, false); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluidBlock.java index ed87e3d02f..a96c522d00 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluidBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MidnightSolutionFluidBlock.java @@ -1,49 +1,32 @@ package de.dafuqs.spectrum.blocks.fluid; -import de.dafuqs.spectrum.blocks.BlackMateriaBlock; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.enchanter.EnchanterBlockEntity; -import de.dafuqs.spectrum.helpers.SpectrumEnchantmentHelper; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.fluid_converting.MidnightSolutionConvertingRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumDamageSources; -import de.dafuqs.spectrum.registries.SpectrumFluidTags; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ExperienceOrbEntity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.fluid.FlowableFluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.particle.DefaultParticleType; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.tag.FluidTags; -import net.minecraft.util.Pair; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.decay.*; +import de.dafuqs.spectrum.blocks.enchanter.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.entity.effect.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Map; -import java.util.Random; +import java.util.*; public class MidnightSolutionFluidBlock extends SpectrumFluidBlock { @@ -110,34 +93,31 @@ public void onEntityCollision(BlockState state, World world, BlockPos pos, Entit } } } else if (entity instanceof ItemEntity itemEntity && !itemEntity.cannotPickup()) { - ItemStack itemStack = itemEntity.getStack(); - - // if the item is enchanted: remove enchantments and spawn XP - // basically disenchanting the item - if (itemStack.hasEnchantments() || itemStack.isOf(Items.ENCHANTED_BOOK)) { - Map enchantments = EnchantmentHelper.get(itemStack); - if (enchantments.size() > 0) { - int randomEnchantmentIndex = world.random.nextInt(enchantments.size()); - Enchantment enchantmentToRemove = (Enchantment) enchantments.keySet().toArray()[randomEnchantmentIndex]; - - int experience = EnchanterBlockEntity.getEnchantingPrice(itemStack, enchantmentToRemove, enchantments.get(enchantmentToRemove)); - experience /= EXPERIENCE_DISENCHANT_RETURN_DIV; - - if (experience > 0) { - ExperienceOrbEntity experienceOrbEntity = new ExperienceOrbEntity(world, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), experience); - world.spawnEntity(experienceOrbEntity); + if (world.random.nextInt(120) == 0) { + ItemStack itemStack = itemEntity.getStack(); + // if the item is enchanted: remove enchantments and spawn XP + // basically disenchanting the item + if (itemStack.hasEnchantments() || itemStack.isOf(Items.ENCHANTED_BOOK)) { + Map enchantments = EnchantmentHelper.get(itemStack); + if (enchantments.size() > 0) { + int randomEnchantmentIndex = world.random.nextInt(enchantments.size()); + Enchantment enchantmentToRemove = (Enchantment) enchantments.keySet().toArray()[randomEnchantmentIndex]; + + int experience = EnchanterBlockEntity.getEnchantingPrice(itemStack, enchantmentToRemove, enchantments.get(enchantmentToRemove)); + experience /= EXPERIENCE_DISENCHANT_RETURN_DIV; + + if (experience > 0) { + ExperienceOrbEntity experienceOrbEntity = new ExperienceOrbEntity(world, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), experience); + world.spawnEntity(experienceOrbEntity); + } + world.playSound(null, itemEntity.getBlockPos(), SoundEvents.BLOCK_GRINDSTONE_USE, SoundCategory.NEUTRAL, 1.0F, 0.9F + world.getRandom().nextFloat() * 0.2F); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, itemEntity.getPos(), SpectrumParticleTypes.GRAY_SPARKLE_RISING, 10, Vec3d.ZERO, new Vec3d(0.2, 0.4, 0.2)); + SpectrumEnchantmentHelper.removeEnchantment(itemStack, enchantmentToRemove); + itemEntity.setToDefaultPickupDelay(); + return; } - world.playSound(null, itemEntity.getBlockPos(), SoundEvents.BLOCK_GRINDSTONE_USE, SoundCategory.NEUTRAL, 1.0F, 0.9F + world.getRandom().nextFloat() * 0.2F); - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, itemEntity.getPos(), SpectrumParticleTypes.GRAY_SPARKLE_RISING, 10, Vec3d.ZERO, new Vec3d(0.2, 0.4, 0.2)); - itemEntity.setStack(SpectrumEnchantmentHelper.removeEnchantment(itemStack, enchantmentToRemove)); - itemEntity.setToDefaultPickupDelay(); - return; } - } - - // do not try to search conversion recipes for items that are recipe outputs already - // => better performance - if (!MidnightSolutionConvertingRecipe.isExistingOutputItem(itemStack)) { + MidnightSolutionConvertingRecipe recipe = getConversionRecipeFor(SpectrumRecipeTypes.MIDNIGHT_SOLUTION_CONVERTING, world, itemStack); if (recipe != null) { world.playSound(null, itemEntity.getBlockPos(), SoundEvents.BLOCK_WOOL_BREAK, SoundCategory.NEUTRAL, 1.0F, 0.9F + world.getRandom().nextFloat() * 0.2F); @@ -171,18 +151,24 @@ public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos po private boolean receiveNeighborFluids(World world, BlockPos pos, BlockState state) { for (Direction direction : Direction.values()) { BlockPos neighborPos = pos.offset(direction); - if (world.getFluidState(neighborPos).isIn(FluidTags.LAVA)) { + FluidState neighborFluidState = world.getFluidState(neighborPos); + if (neighborFluidState.isIn(FluidTags.LAVA)) { world.setBlockState(pos, Blocks.TERRACOTTA.getDefaultState()); playExtinguishSound(world, pos); return false; } - - FluidState neighborFluidState = world.getFluidState(neighborPos); - boolean neighborIsOtherFluid = !neighborFluidState.isEmpty() && !neighborFluidState.isOf(this.fluid); - if (neighborIsOtherFluid && !neighborFluidState.isIn(SpectrumFluidTags.MIDNIGHT_SOLUTION_CONVERTED)) { - if (!world.getBlockState(neighborPos).isOf(this)) { - world.setBlockState(neighborPos, SPREAD_BLOCKSTATE); - playExtinguishSound(world, neighborPos); + + boolean isNeighborFluidBlock = world.getBlockState(neighborPos).getBlock() instanceof FluidBlock; + // spread to the fluid + if (!neighborFluidState.isEmpty()) { + if (!isNeighborFluidBlock) { + world.setBlockState(pos, SPREAD_BLOCKSTATE); + playExtinguishSound(world, pos); + } else { + if (!neighborFluidState.isOf(this.fluid) && !neighborFluidState.isIn(SpectrumFluidTags.MIDNIGHT_SOLUTION_CONVERTED) && !world.getBlockState(neighborPos).isOf(this)) { + world.setBlockState(neighborPos, SPREAD_BLOCKSTATE); + playExtinguishSound(world, neighborPos); + } } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluid.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluid.java index 4e4fd5a371..613ee5d239 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluid.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluid.java @@ -1,25 +1,18 @@ package de.dafuqs.spectrum.blocks.fluid; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumFluids; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.BlockState; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.item.Item; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.sound.SoundCategory; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.Properties; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.WorldView; - -import java.util.Random; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; public abstract class MudFluid extends SpectrumFluid { @@ -77,7 +70,7 @@ public ParticleEffect getParticle() { @Override public ParticleEffect getSplashParticle() { - return SpectrumParticleTypes.MIDNIGHT_SOLUTION_SPLASH; + return SpectrumParticleTypes.MUD_SPLASH; } public static class FlowingMud extends MudFluid { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluidBlock.java index 9668502d69..faafd1b2e3 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluidBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/MudFluidBlock.java @@ -16,12 +16,11 @@ import net.minecraft.util.Pair; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; -import java.util.Random; - public class MudFluidBlock extends SpectrumFluidBlock { public MudFluidBlock(FlowableFluid fluid, Settings settings) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluid.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluid.java index 6194fc8294..be875fb0e4 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluid.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluid.java @@ -1,21 +1,14 @@ package de.dafuqs.spectrum.blocks.fluid; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.fluid.FlowableFluid; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.BlockView; -import net.minecraft.world.WorldAccess; -import net.minecraft.world.WorldView; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.fluid.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; -import java.util.Optional; +import java.util.*; public abstract class SpectrumFluid extends FlowableFluid { @@ -41,6 +34,7 @@ protected void beforeBreakingBlock(WorldAccess world, BlockPos pos, BlockState s /** * Lava returns true if its FluidState is above a certain height and the Fluid is Water. + * * @return if the given Fluid can flow into this FluidState? */ @Override @@ -86,5 +80,5 @@ public Optional getBucketFillSound() { } public abstract ParticleEffect getSplashParticle(); - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluidBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluidBlock.java index a8cd2c8e39..ffc7783e3b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluidBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fluid/SpectrumFluidBlock.java @@ -22,6 +22,7 @@ public SpectrumFluidBlock(FlowableFluid fluid, Settings settings) { } public abstract DefaultParticleType getSplashParticle(); + public abstract Pair getFishingParticles(); public R getConversionRecipeFor(RecipeType recipeType, @NotNull World world, ItemStack itemStack) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/furniture/DiagonalBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/furniture/DiagonalBlock.java new file mode 100644 index 0000000000..b1a7b8a6db --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/furniture/DiagonalBlock.java @@ -0,0 +1,40 @@ +package de.dafuqs.spectrum.blocks.furniture; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import org.jetbrains.annotations.Nullable; + +public class DiagonalBlock extends Block { + + public static final BooleanProperty DIAGONAL = BooleanProperty.of("diagonal"); + + public DiagonalBlock(Settings settings) { + super(settings); + setDefaultState(getDefaultState().with(DIAGONAL, false)); + } + + @Nullable + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + var state = super.getPlacementState(ctx); + var player = ctx.getPlayer(); + + if (player != null && state != null) { + var yaw = player.getYaw() + 180 + 360; + var arc = yaw % 90; + + return state.with(DIAGONAL, arc > 25 && arc < 65); + } + + return super.getPlacementState(ctx); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(DIAGONAL); + } +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/furniture/FlexLanternBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/furniture/FlexLanternBlock.java new file mode 100644 index 0000000000..037b4d6e30 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/furniture/FlexLanternBlock.java @@ -0,0 +1,89 @@ +package de.dafuqs.spectrum.blocks.furniture; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.ShapeContext; +import net.minecraft.block.Waterloggable; +import net.minecraft.block.piston.PistonBehavior; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.BlockView; +import net.minecraft.world.WorldView; +import org.jetbrains.annotations.Nullable; + +public class FlexLanternBlock extends DiagonalBlock implements Waterloggable { + + public static final BooleanProperty HANGING = Properties.HANGING; + public static final BooleanProperty ALT = BooleanProperty.of("alt"); + public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; + public static final VoxelShape SHAPE_STANDING, SHAPE_STANDING_ALT, SHAPE_HANGING, SHAPE_HANGING_ALT; + + public FlexLanternBlock(Settings settings) { + super(settings); + setDefaultState(getDefaultState().with(HANGING, false).with(ALT, false).with(WATERLOGGED, false)); + } + + @Override + public @Nullable BlockState getPlacementState(ItemPlacementContext ctx) { + var player = ctx.getPlayer(); + var state = super.getPlacementState(ctx); + + if (state != null) { + if (player != null) { + state = state.with(ALT, player.isSneaking()); + } + if (ctx.getWorld().getFluidState(ctx.getBlockPos()).getFluid() == Fluids.WATER) { + state = state.with(WATERLOGGED, true); + } + + state = state.with(HANGING, ctx.getSide() == Direction.DOWN); + } + + return state; + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + var alt = state.get(ALT); + + if (state.get(HANGING)) { + return alt ? SHAPE_HANGING_ALT : SHAPE_HANGING; + } else { + return alt ? SHAPE_STANDING_ALT : SHAPE_STANDING; + } + } + + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + Direction direction = state.get(HANGING) ? Direction.UP : Direction.DOWN; + return Block.sideCoversSmallSquare(world, pos.offset(direction), direction.getOpposite()); + } + + @Override + public PistonBehavior getPistonBehavior(BlockState state) { + return PistonBehavior.DESTROY; + } + + public FluidState getFluidState(BlockState state) { + return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + super.appendProperties(builder); + builder.add(HANGING, ALT, WATERLOGGED); + } + + static { + SHAPE_STANDING = Block.createCuboidShape(4, 0, 4, 12, 13, 12); + SHAPE_STANDING_ALT = Block.createCuboidShape(4, 0, 4, 12, 16, 12); + SHAPE_HANGING = Block.createCuboidShape(4, 4, 4, 12, 16, 12); + SHAPE_HANGING_ALT = Block.createCuboidShape(4, 7, 4, 12, 16, 12); + } +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlock.java index 7e39cafbd1..2d7ed39670 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlock.java @@ -1,46 +1,29 @@ package de.dafuqs.spectrum.blocks.fusion_shrine; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.InWorldInteractionBlock; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumMultiblocks; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.fabric.mixin.transfer.BucketItemAccessor; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.client.MinecraftClient; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.BucketItem; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.IntProperty; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; -import org.jetbrains.annotations.Nullable; -import vazkii.patchouli.api.IMultiblock; -import vazkii.patchouli.api.PatchouliAPI; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.transfer.v1.fluid.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.client.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; +import vazkii.patchouli.api.*; public class FusionShrineBlock extends InWorldInteractionBlock { @@ -69,7 +52,7 @@ public static boolean verifyStructureWithSkyAccess(World world, BlockPos blockPo } if (!world.isSkyVisible(blockPos)) { if (world.isClient) { - world.addParticle(SpectrumParticleTypes.WHITE_SPARKLE_RISING, blockPos.getX() + 0.5, blockPos.getY() + 1, blockPos.getZ() + 0.5, 0, 0.5, 0); + world.addParticle(SpectrumParticleTypes.RED_SPARKLE_RISING, blockPos.getX() + 0.5, blockPos.getY() + 1, blockPos.getZ() + 0.5, 0, 0.5, 0); MinecraftClient.getInstance().player.playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.NEUTRAL, 1.0F, 1.0F); } return false; @@ -91,7 +74,7 @@ private static boolean verifyStructure(World world, BlockPos blockPos, @Nullable if (currentMultiBlock == multiblock) { PatchouliAPI.get().clearMultiblock(); } else { - PatchouliAPI.get().showMultiblock(multiblock, new TranslatableText("multiblock.spectrum.fusion_shrine.structure"), blockPos.down(2), BlockRotation.NONE); + PatchouliAPI.get().showMultiblock(multiblock, Text.translatable("multiblock.spectrum.fusion_shrine.structure"), blockPos.down(2), BlockRotation.NONE); } } else { scatterContents(world, blockPos); @@ -135,49 +118,16 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt } else { BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof FusionShrineBlockEntity fusionShrineBlockEntity) { - ItemStack handStack = player.getStackInHand(hand); - if (handStack.getItem() instanceof BucketItem) { - fusionShrineBlockEntity.setOwner(player); - - Fluid storedFluid = fusionShrineBlockEntity.getFluid(); - Fluid bucketFluid = ((BucketItemAccessor) handStack.getItem()).fabric_getFluid(); - if (storedFluid == Fluids.EMPTY && bucketFluid != Fluids.EMPTY) { - fusionShrineBlockEntity.setFluid(bucketFluid); - if (!player.isCreative()) { - handStack.decrement(1); - player.setStackInHand(hand, handStack); - - player.giveItemStack(Items.BUCKET.getDefaultStack()); - } - - fusionShrineBlockEntity.inventoryChanged(); - if(bucketFluid.getBucketFillSound().isPresent()) { - world.playSound(null, player.getBlockPos(), bucketFluid.getBucketFillSound().get(), SoundCategory.PLAYERS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F); - } - } else if (storedFluid != Fluids.EMPTY && bucketFluid == Fluids.EMPTY) { - fusionShrineBlockEntity.setFluid(Fluids.EMPTY); - if (!player.isCreative()) { - handStack.decrement(1); - player.setStackInHand(hand, handStack); - - player.giveItemStack(new ItemStack(storedFluid.getBucketItem())); - } - - fusionShrineBlockEntity.inventoryChanged(); - if(storedFluid.getBucketFillSound().isPresent()) { - world.playSound(null, player.getBlockPos(), storedFluid.getBucketFillSound().get(), SoundCategory.PLAYERS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F); - } - } - } else { + if (!FluidStorageUtil.interactWithFluidStorage(fusionShrineBlockEntity.fluidStorage, player, hand)) { // if the structure is valid the player can put / retrieve blocks into the shrine if (player.isSneaking() || handStack.isEmpty()) { // sneaking or empty hand: remove items - if(retrieveLastStack(world, pos, player, hand, handStack, fusionShrineBlockEntity)) { + if (retrieveLastStack(world, pos, player, hand, handStack, fusionShrineBlockEntity)) { fusionShrineBlockEntity.setOwner(player); } } else if (verifyStructure(world, pos, (ServerPlayerEntity) player) && !handStack.isEmpty()) { - if(inputHandStack(world, player, hand, handStack, fusionShrineBlockEntity)) { + if (inputHandStack(world, player, hand, handStack, fusionShrineBlockEntity)) { fusionShrineBlockEntity.setOwner(player); } } @@ -210,7 +160,7 @@ public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockSt super.onStateReplaced(state, world, pos, newState, moved); } } - + static { VoxelShape neck = Block.createCuboidShape(2, 0, 2, 14, 12, 14); VoxelShape head = Block.createCuboidShape(1, 12, 1, 15, 15, 15); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntity.java index 0138fe1b95..c6d6609fcf 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntity.java @@ -1,71 +1,77 @@ package de.dafuqs.spectrum.blocks.fusion_shrine; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.InWorldInteractionBlockEntity; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipe; -import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipeWorldEffect; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import de.dafuqs.spectrum.registries.color.ColorRegistry; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.recipe.Recipe; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.fusion_shrine.*; +import de.dafuqs.spectrum.registries.*; +import de.dafuqs.spectrum.registries.color.*; +import net.fabricmc.fabric.api.transfer.v1.fluid.*; +import net.fabricmc.fabric.api.transfer.v1.storage.base.*; +import net.minecraft.block.*; +import net.minecraft.entity.player.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.particle.*; +import net.minecraft.recipe.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Map; -import java.util.Optional; -import java.util.Random; -import java.util.UUID; +import java.util.*; public class FusionShrineBlockEntity extends InWorldInteractionBlockEntity implements PlayerOwned, Upgradeable { - - protected static final int INVENTORY_SIZE = 7; - - protected @NotNull Fluid storedFluid; - private UUID ownerUUID; - private Map upgrades; - private FusionShrineRecipe currentRecipe; - private int craftingTime; - private int craftingTimeTotal; - - private boolean inventoryChanged = true; - - public FusionShrineBlockEntity(BlockPos pos, BlockState state) { - super(SpectrumBlockEntities.FUSION_SHRINE, pos, state, INVENTORY_SIZE); - this.storedFluid = Fluids.EMPTY; - } - - public static void clientTick(@NotNull World world, BlockPos blockPos, BlockState blockState, FusionShrineBlockEntity fusionShrineBlockEntity) { - if (!fusionShrineBlockEntity.isEmpty()) { - int randomSlot = world.getRandom().nextInt(fusionShrineBlockEntity.size()); - ItemStack randomStack = fusionShrineBlockEntity.getStack(randomSlot); - if (!randomStack.isEmpty()) { + + protected static final int INVENTORY_SIZE = 7; + + private UUID ownerUUID; + private UpgradeHolder upgrades; + private FusionShrineRecipe currentRecipe; + private int craftingTime; + private int craftingTimeTotal; + + private boolean inventoryChanged = true; + + public SingleVariantStorage fluidStorage = new SingleVariantStorage<>() { + @Override + protected FluidVariant getBlankVariant() { + return FluidVariant.blank(); + } + + @Override + protected long getCapacity(FluidVariant variant) { + return FluidConstants.BUCKET; + } + + @Override + protected void onFinalCommit() { + super.onFinalCommit(); + setLightForFluid(world, pos, this.variant.getFluid()); + inventoryChanged(); + markDirty(); + } + }; + + public FusionShrineBlockEntity(BlockPos pos, BlockState state) { + super(SpectrumBlockEntities.FUSION_SHRINE, pos, state, INVENTORY_SIZE); + } + + public static void clientTick(@NotNull World world, BlockPos blockPos, BlockState blockState, FusionShrineBlockEntity fusionShrineBlockEntity) { + if (!fusionShrineBlockEntity.isEmpty()) { + int randomSlot = world.getRandom().nextInt(fusionShrineBlockEntity.size()); + ItemStack randomStack = fusionShrineBlockEntity.getStack(randomSlot); + if (!randomStack.isEmpty()) { Optional optionalItemColor = ColorRegistry.ITEM_COLORS.getMapping(randomStack.getItem()); if (optionalItemColor.isPresent()) { ParticleEffect particleEffect = SpectrumParticleTypes.getCraftingParticle(optionalItemColor.get()); @@ -81,7 +87,7 @@ public static void clientTick(@NotNull World world, BlockPos blockPos, BlockStat } FusionShrineRecipe recipe = fusionShrineBlockEntity.currentRecipe; if (recipe != null) { - Fluid fluid = fusionShrineBlockEntity.getFluid(); + Fluid fluid = fusionShrineBlockEntity.getFluidVariant().getFluid(); if (recipe.getFluidInput().equals(fluid) && recipe.areConditionMetCurrently(world)) { Optional optionalFluidColor = ColorRegistry.FLUID_COLORS.getMapping(fluid); if (optionalFluidColor.isPresent()) { @@ -109,30 +115,32 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat if (fusionShrineBlockEntity.currentRecipe == null) { SpectrumS2CPacketSender.sendCancelBlockBoundSoundInstance((ServerWorld) world, fusionShrineBlockEntity.pos); } else { - fusionShrineBlockEntity.craftingTimeTotal = (int) Math.ceil(fusionShrineBlockEntity.currentRecipe.getCraftingTime() / fusionShrineBlockEntity.upgrades.get(Upgradeable.UpgradeType.SPEED)); + fusionShrineBlockEntity.craftingTimeTotal = (int) Math.ceil(fusionShrineBlockEntity.currentRecipe.getCraftingTime() / fusionShrineBlockEntity.upgrades.getEffectiveValue(Upgradeable.UpgradeType.SPEED)); } - fusionShrineBlockEntity.updateInClientWorld(world, blockPos); + fusionShrineBlockEntity.updateInClientWorld(); } fusionShrineBlockEntity.inventoryChanged = false; } FusionShrineRecipe recipe = fusionShrineBlockEntity.currentRecipe; - if (recipe != null && recipe.getFluidInput().equals(fusionShrineBlockEntity.storedFluid)) { - // check the crafting conditions from time to time - // good for performance because of the many checks - if (fusionShrineBlockEntity.craftingTime % 60 == 0) { - PlayerEntity lastInteractedPlayer = fusionShrineBlockEntity.getOwnerIfOnline(); - - boolean recipeConditionsMet = recipe.canPlayerCraft(lastInteractedPlayer) && recipe.areConditionMetCurrently(world); - boolean structureCompleteWithSky = FusionShrineBlock.verifyStructureWithSkyAccess(world, blockPos, null); - - if (!recipeConditionsMet || !structureCompleteWithSky) { - if (!structureCompleteWithSky) { + if (recipe != null && recipe.getFluidInput().equals(fusionShrineBlockEntity.fluidStorage.variant.getFluid())) { + // check the crafting conditions from time to time + // good for performance because of the many checks + if (fusionShrineBlockEntity.craftingTime % 60 == 0) { + PlayerEntity lastInteractedPlayer = fusionShrineBlockEntity.getOwnerIfOnline(); + + boolean recipeConditionsMet = recipe.canPlayerCraft(lastInteractedPlayer) && recipe.areConditionMetCurrently(world); + boolean structureCompleteWithSky = FusionShrineBlock.verifyStructureWithSkyAccess(world, blockPos, null); + + if (!recipeConditionsMet || !structureCompleteWithSky) { + if (!structureCompleteWithSky) { + SpectrumS2CPacketSender.playParticleWithExactVelocity((ServerWorld) world, Vec3d.ofCenter(blockPos), SpectrumParticleTypes.RED_CRAFTING, 1, new Vec3d(0, -0.5, 0)); world.playSound(null, fusionShrineBlockEntity.getPos(), SpectrumSoundEvents.CRAFTING_ABORTED, SoundCategory.BLOCKS, 0.9F + world.random.nextFloat() * 0.2F, 0.9F + world.random.nextFloat() * 0.2F); world.playSound(null, fusionShrineBlockEntity.getPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 0.9F + world.random.nextFloat() * 0.2F, 0.5F + world.random.nextFloat() * 0.2F); FusionShrineBlock.scatterContents(world, blockPos); + fusionShrineBlockEntity.inventoryChanged(); } fusionShrineBlockEntity.craftingTime = 0; return; @@ -177,115 +185,109 @@ private static FusionShrineRecipe calculateRecipe(@NotNull World world, FusionSh // at once, since we can not rely on positions in a grid like vanilla does // in its crafting table private static void craft(World world, BlockPos blockPos, FusionShrineBlockEntity fusionShrineBlockEntity, FusionShrineRecipe recipe) { - recipe.craft(world, fusionShrineBlockEntity); - scatterContents(world, blockPos.up(), fusionShrineBlockEntity); // drop remaining items - - SpectrumS2CPacketSender.sendPlayFusionCraftingFinishedParticles(world, blockPos, recipe.getOutput()); - fusionShrineBlockEntity.playSound(SpectrumSoundEvents.FUSION_SHRINE_CRAFTING_FINISHED, 1.4F); - } - - public Map getUpgrades() { - return this.upgrades; - } - - public static void spawnCraftingResultAndXP(World world, FusionShrineBlockEntity blockEntity, FusionShrineRecipe recipe, int amount) { - int resultAmountBeforeMod = amount * recipe.getOutput().getCount(); - double yieldModifier = recipe.areYieldUpgradesDisabled() ? 1.0 : blockEntity.upgrades.get(UpgradeType.YIELD); - int resultAmountAfterMod = Support.getIntFromDecimalWithChance(resultAmountBeforeMod * yieldModifier, world.random); - - MultiblockCrafter.spawnItemStackAsEntitySplitViaMaxCount(world, blockEntity.pos.up(2), recipe.getOutput(), resultAmountAfterMod, MultiblockCrafter.RECIPE_STACK_VELOCITY); - - int spawnedXPAmount = 0; - if (recipe.getExperience() > 0) { - spawnedXPAmount = Support.getIntFromDecimalWithChance(recipe.getExperience() * amount * blockEntity.upgrades.get(UpgradeType.EXPERIENCE), world.random); - MultiblockCrafter.spawnExperience(world, blockEntity.pos, spawnedXPAmount); - } - - //only triggered on server side. Therefore, has to be sent to client via S2C packet - blockEntity.grantPlayerFusionCraftingAdvancement(recipe, spawnedXPAmount); + recipe.craft(world, fusionShrineBlockEntity); + + scatterContents(world, blockPos.up(), fusionShrineBlockEntity); // drop remaining items + + fusionShrineBlockEntity.fluidStorage.variant = FluidVariant.blank(); + fusionShrineBlockEntity.fluidStorage.amount = 0; + world.setBlockState(blockPos, world.getBlockState(blockPos).with(FusionShrineBlock.LIGHT_LEVEL, 0), 3); + + SpectrumS2CPacketSender.sendPlayFusionCraftingFinishedParticles(world, blockPos, recipe.getOutput()); + fusionShrineBlockEntity.playSound(SpectrumSoundEvents.FUSION_SHRINE_CRAFTING_FINISHED, 1.4F); + } + + @Override + public UpgradeHolder getUpgradeHolder() { + return upgrades; } - + public static void scatterContents(World world, BlockPos pos, FusionShrineBlockEntity blockEntity) { ItemScatterer.spawn(world, pos, blockEntity.getItems()); world.updateComparators(pos, world.getBlockState(pos).getBlock()); } - + @Override public void readNbt(NbtCompound nbt) { - super.readNbt(nbt); - this.storedFluid = Registry.FLUID.get(Identifier.tryParse(nbt.getString("fluid"))); - this.craftingTime = nbt.getShort("CraftingTime"); - this.craftingTimeTotal = nbt.getShort("CraftingTimeTotal"); - if (nbt.contains("OwnerUUID")) { - this.ownerUUID = nbt.getUuid("OwnerUUID"); - } else { - this.ownerUUID = null; - } - - this.currentRecipe = null; + super.readNbt(nbt); + this.fluidStorage.variant = FluidVariant.fromNbt(nbt.getCompound("FluidVariant")); + this.fluidStorage.amount = nbt.getLong("FluidAmount"); + + this.craftingTime = nbt.getShort("CraftingTime"); + this.craftingTimeTotal = nbt.getShort("CraftingTimeTotal"); + if (nbt.contains("OwnerUUID")) { + this.ownerUUID = nbt.getUuid("OwnerUUID"); + } else { + this.ownerUUID = null; + } + + this.currentRecipe = null; if (nbt.contains("CurrentRecipe")) { String recipeString = nbt.getString("CurrentRecipe"); - if (!recipeString.isEmpty() && world != null) { - Optional optionalRecipe = world.getRecipeManager().get(new Identifier(recipeString)); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); if (optionalRecipe.isPresent() && optionalRecipe.get() instanceof FusionShrineRecipe optionalFusionRecipe) { this.currentRecipe = optionalFusionRecipe; } } } - + if (nbt.contains("Upgrades", NbtElement.LIST_TYPE)) { - this.upgrades = Upgradeable.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + this.upgrades = UpgradeHolder.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + } else { + this.upgrades = new UpgradeHolder(); } } @Override public void writeNbt(NbtCompound nbt) { - super.writeNbt(nbt); - nbt.putString("fluid", Registry.FLUID.getId(this.storedFluid).toString()); - nbt.putShort("CraftingTime", (short) this.craftingTime); - nbt.putShort("CraftingTimeTotal", (short) this.craftingTimeTotal); - if (this.upgrades != null) { - nbt.put("Upgrades", Upgradeable.toNbt(this.upgrades)); - } - if (this.ownerUUID != null) { - nbt.putUuid("OwnerUUID", this.ownerUUID); - } - if (this.currentRecipe != null) { - nbt.putString("CurrentRecipe", this.currentRecipe.getId().toString()); + super.writeNbt(nbt); + nbt.put("FluidVariant", this.fluidStorage.variant.toNbt()); + nbt.putLong("FluidAmount", this.fluidStorage.amount); + nbt.putShort("CraftingTime", (short) this.craftingTime); + nbt.putShort("CraftingTimeTotal", (short) this.craftingTimeTotal); + if (this.upgrades != null) { + nbt.put("Upgrades", this.upgrades.toNbt()); + } + if (this.ownerUUID != null) { + nbt.putUuid("OwnerUUID", this.ownerUUID); + } + if (this.currentRecipe != null) { + nbt.putString("CurrentRecipe", this.currentRecipe.getId().toString()); } } public void playSound(SoundEvent soundEvent, float volume) { Random random = world.random; - world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), soundEvent, SoundCategory.BLOCKS, volume, 0.9F + random.nextFloat() * 0.15F); - } - - private void grantPlayerFusionCraftingAdvancement(FusionShrineRecipe recipe, int experience) { - ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) getOwnerIfOnline(); - if (serverPlayerEntity != null) { - SpectrumAdvancementCriteria.FUSION_SHRINE_CRAFTING.trigger(serverPlayerEntity, recipe.getOutput(), experience); - } - } - - public @NotNull Fluid getFluid() { - return this.storedFluid; - } - - public void setFluid(@NotNull Fluid fluid) { - this.storedFluid = fluid; - setLightForFluid(world, pos, fluid); - inventoryChanged(); - } - - public void setLightForFluid(World world, BlockPos blockPos, Fluid fluid) { - if (SpectrumCommon.fluidLuminance.containsKey(fluid)) { - int light = SpectrumCommon.fluidLuminance.get(fluid); - world.setBlockState(blockPos, world.getBlockState(blockPos).with(FusionShrineBlock.LIGHT_LEVEL, light), 3); - } - } - - // PLAYER OWNED - // "owned" is not to be taken literally here. The owner + world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), soundEvent, SoundCategory.BLOCKS, volume, 0.9F + random.nextFloat() * 0.15F); + } + + public void grantPlayerFusionCraftingAdvancement(FusionShrineRecipe recipe, int experience) { + ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) getOwnerIfOnline(); + if (serverPlayerEntity != null) { + SpectrumAdvancementCriteria.FUSION_SHRINE_CRAFTING.trigger(serverPlayerEntity, recipe.getOutput(), experience); + } + } + + public @NotNull FluidVariant getFluidVariant() { + if (this.fluidStorage.amount > 0) { + return this.fluidStorage.variant; + } else { + return FluidVariant.blank(); + } + } + + private void setLightForFluid(World world, BlockPos blockPos, Fluid fluid) { + if (SpectrumCommon.fluidLuminance.containsKey(fluid)) { + int light = SpectrumCommon.fluidLuminance.get(fluid); + world.setBlockState(blockPos, world.getBlockState(blockPos).with(FusionShrineBlock.LIGHT_LEVEL, light), 3); + } else { + world.setBlockState(blockPos, world.getBlockState(blockPos).with(FusionShrineBlock.LIGHT_LEVEL, 0), 3); + } + } + + // PLAYER OWNED + // "owned" is not to be taken literally here. The owner // is always set to the last player interacted with to trigger advancements @Override public UUID getOwnerUUID() { @@ -308,11 +310,6 @@ public void calculateUpgrades() { this.markDirty(); } - @Override - public float getUpgradeValue(UpgradeType upgradeType) { - return this.upgrades.get(upgradeType); - } - public void inventoryChanged() { super.inventoryChanged(); this.inventoryChanged = true; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntityRenderer.java index a441628c82..92ee1d4df4 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/fusion_shrine/FusionShrineBlockEntityRenderer.java @@ -1,26 +1,19 @@ package de.dafuqs.spectrum.blocks.fusion_shrine; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.transfer.v1.client.fluid.FluidVariantRendering; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory.Context; -import net.minecraft.client.render.model.json.ModelTransformation; -import net.minecraft.client.texture.Sprite; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.Matrix4f; -import net.minecraft.util.math.Vec3f; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.transfer.v1.client.fluid.*; +import net.fabricmc.fabric.api.transfer.v1.fluid.*; +import net.minecraft.client.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.block.entity.*; +import net.minecraft.client.render.block.entity.BlockEntityRendererFactory.*; +import net.minecraft.client.render.model.json.*; +import net.minecraft.client.texture.*; +import net.minecraft.client.util.math.*; +import net.minecraft.item.*; +import net.minecraft.util.math.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; @Environment(EnvType.CLIENT) public class FusionShrineBlockEntityRenderer implements BlockEntityRenderer { @@ -57,18 +50,17 @@ public static int[] unpackColor(int color) { public void render(FusionShrineBlockEntity fusionShrineBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay) { // the fluid in the shrine - Fluid fluid = fusionShrineBlockEntity.getFluid(); - if (fluid != Fluids.EMPTY) { + FluidVariant fluidVariant = fusionShrineBlockEntity.getFluidVariant(); + if (!fluidVariant.isBlank()) { matrixStack.push(); - FluidVariant fluidVariant = FluidVariant.of(fluid); Sprite sprite = FluidVariantRendering.getSprite(fluidVariant); int color = FluidVariantRendering.getColor(fluidVariant, fusionShrineBlockEntity.getWorld(), fusionShrineBlockEntity.getPos()); int[] colors = unpackColor(color); - + renderFluid(vertexConsumerProvider.getBuffer(RenderLayer.getTranslucent()), matrixStack.peek().getPositionMatrix(), sprite, light, overlay, 0.125F, 0.875F, 0.9F, 0.125F, 0.875F, colors); matrixStack.pop(); } - + if (!fusionShrineBlockEntity.isEmpty()) { // the floating item stacks List inventoryStacks = new ArrayList<>(); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/gemstone/SpectrumBuddingBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/gemstone/SpectrumBuddingBlock.java index f71be706c6..a4698b6252 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/gemstone/SpectrumBuddingBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/gemstone/SpectrumBuddingBlock.java @@ -1,41 +1,36 @@ package de.dafuqs.spectrum.blocks.gemstone; -import de.dafuqs.spectrum.events.SpectrumGameEvents; -import de.dafuqs.spectrum.registries.SpectrumBlockTags; -import net.minecraft.block.AmethystClusterBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.BuddingAmethystBlock; -import net.minecraft.fluid.Fluids; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.piston.*; +import net.minecraft.fluid.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; -import java.util.Random; +public class SpectrumBuddingBlock extends SpectrumGemstoneBlock { -public class SpectrumBuddingBlock extends BuddingAmethystBlock { - private static final Direction[] DIRECTIONS = Direction.values(); private final Block smallBlock; private final Block mediumBlock; private final Block largeBlock; private final Block clusterBlock; - private final SoundEvent hitSoundEvent; - private final SoundEvent chimeSoundEvent; - + public SpectrumBuddingBlock(Settings settings, Block smallBlock, Block mediumBlock, Block largeBlock, Block clusterBlock, SoundEvent hitSoundEvent, SoundEvent chimeSoundEvent) { - super(settings); - + super(settings, hitSoundEvent, chimeSoundEvent); + this.smallBlock = smallBlock; this.mediumBlock = mediumBlock; this.largeBlock = largeBlock; this.clusterBlock = clusterBlock; - - this.hitSoundEvent = hitSoundEvent; - this.chimeSoundEvent = chimeSoundEvent; } - + + public PistonBehavior getPistonBehavior(BlockState state) { + return PistonBehavior.DESTROY; + } + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { if (random.nextInt(5) == 0) { @@ -54,10 +49,10 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random } if (block != null) { - BlockState blockState2 = (block.getDefaultState().with(AmethystClusterBlock.FACING, direction)).with(AmethystClusterBlock.WATERLOGGED, blockState.getFluidState().getFluid() == Fluids.WATER); - world.setBlockState(blockPos, blockState2); - if (blockState2.isIn(SpectrumBlockTags.CRYSTAL_APOTHECARY_HARVESTABLE)) { - world.emitGameEvent(SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, blockPos); + BlockState newBlockState = block.getDefaultState().with(AmethystClusterBlock.FACING, direction).with(AmethystClusterBlock.WATERLOGGED, blockState.getFluidState().getFluid() == Fluids.WATER); + world.setBlockState(blockPos, newBlockState); + if (newBlockState.isIn(SpectrumBlockTags.CRYSTAL_APOTHECARY_HARVESTABLE)) { + world.emitGameEvent(null, SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, blockPos); } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlock.java index 3241ae129f..99aeaec319 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlock.java @@ -1,15 +1,11 @@ package de.dafuqs.spectrum.blocks.gravity; -import de.dafuqs.spectrum.entity.entity.FloatBlockEntity; -import net.minecraft.block.BlockState; -import net.minecraft.block.FallingBlock; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; - -import java.util.Random; +import de.dafuqs.spectrum.entity.entity.*; +import net.minecraft.block.*; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; public class FloatBlock extends FallingBlock { @@ -42,23 +38,31 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran private void checkForLaunch(World world, BlockPos pos) { if (!world.isClient) { + if (gravityMod == 0) { + launch(world, pos); + } + BlockPos collisionBlockPos; if (gravityMod > 0) { collisionBlockPos = pos.up(); } else { collisionBlockPos = pos.down(); } - + if ((world.isAir(collisionBlockPos) || canFallThrough(world.getBlockState(collisionBlockPos)))) { - FloatBlockEntity blockEntity = new FloatBlockEntity(world, pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, world.getBlockState(pos)); - world.spawnEntity(blockEntity); + launch(world, pos); } } } - + + private static void launch(World world, BlockPos pos) { + FloatBlockEntity blockEntity = new FloatBlockEntity(world, pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, world.getBlockState(pos)); + world.spawnEntity(blockEntity); + } + @Override protected int getFallDelay() { return 2; } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlockItem.java b/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlockItem.java index 5c55209ae0..9c0bb5fe63 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlockItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatBlockItem.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.blocks.gravity; -import de.dafuqs.spectrum.interfaces.GravitableItem; +import de.dafuqs.spectrum.items.GravitableItem; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.item.BlockItem; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatItem.java b/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatItem.java index ad0049ca9b..9caef5075f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/gravity/FloatItem.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.blocks.gravity; -import de.dafuqs.spectrum.interfaces.GravitableItem; +import de.dafuqs.spectrum.items.GravitableItem; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlock.java index bf4411e823..67c075414f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlock.java @@ -111,7 +111,9 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt BlockEntity blockEntity = world.getBlockEntity(pos); if (blockEntity instanceof ItemBowlBlockEntity itemBowlBlockEntity) { ItemStack handStack = player.getStackInHand(hand); - exchangeStack(world, pos, player, hand, handStack, itemBowlBlockEntity); + if (exchangeStack(world, pos, player, hand, handStack, itemBowlBlockEntity)) { + updateConnectedMultiBlocks(world, pos); + } } return ActionResult.CONSUME; } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlockEntity.java index 09bb3e53fe..abb3246573 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/item_bowl/ItemBowlBlockEntity.java @@ -1,11 +1,13 @@ package de.dafuqs.spectrum.blocks.item_bowl; +import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.blocks.InWorldInteractionBlockEntity; +import de.dafuqs.spectrum.events.ExactPositionSource; import de.dafuqs.spectrum.helpers.Support; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.particle.effect.Transphere; -import de.dafuqs.spectrum.particle.effect.TransphereParticleEffect; +import de.dafuqs.spectrum.particle.effect.ColoredTransmission; +import de.dafuqs.spectrum.particle.effect.ColoredTransmissionParticleEffect; import de.dafuqs.spectrum.registries.SpectrumBlockEntities; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; import de.dafuqs.spectrum.registries.color.ColorRegistry; @@ -21,7 +23,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; -import net.minecraft.world.event.BlockPositionSource; import org.jetbrains.annotations.NotNull; import java.util.Optional; @@ -52,15 +53,15 @@ public static void spawnRisingParticles(World world, BlockPos blockPos, ItemStac ParticleEffect particleEffect = SpectrumParticleTypes.getSparkleRisingParticle(optionalItemColor.get()); for (int i = 0; i < amount; i++) { - float randomX = 0.1F + world.getRandom().nextFloat() * 0.8F; - float randomZ = 0.1F + world.getRandom().nextFloat() * 0.8F; + float randomX = 0.1F + world.random.nextFloat() * 0.8F; + float randomZ = 0.1F + world.random.nextFloat() * 0.8F; world.addParticle(particleEffect, blockPos.getX() + randomX, blockPos.getY() + 0.75, blockPos.getZ() + randomZ, 0.0D, 0.05D, 0.0D); } } } } - public int decrementBowlStack(BlockPos particleTargetBlockPos, int amount, boolean doEffects) { + public int decrementBowlStack(Vec3d orbTargetPos, int amount, boolean doEffects) { ItemStack storedStack = this.getStack(0); if (storedStack.isEmpty()) { return 0; @@ -87,16 +88,16 @@ public int decrementBowlStack(BlockPos particleTargetBlockPos, int amount, boole if (decrementAmount > 0) { if (doEffects) { - spawnSphereParticlesTo(particleTargetBlockPos); + spawnOrbParticles(orbTargetPos); } - updateInClientWorld(world, pos); + updateInClientWorld(); markDirty(); } return decrementAmount; } - public void spawnSphereParticlesTo(BlockPos blockPos) { + public void spawnOrbParticles(Vec3d orbTargetPos) { ItemStack storedStack = this.getStack(0); if (!storedStack.isEmpty()) { Optional optionalItemColor = ColorRegistry.ITEM_COLORS.getMapping(storedStack.getItem(), DyeColor.PURPLE); @@ -109,7 +110,7 @@ public void spawnSphereParticlesTo(BlockPos blockPos) { sparkleRisingParticleEffect, 50, new Vec3d(0.4, 0.2, 0.4), new Vec3d(0.06, 0.16, 0.06)); - SpectrumS2CPacketSender.playTransphereParticle(serverWorld, new Transphere(this.pos, new BlockPositionSource(blockPos), 20, optionalItemColor.get())); + SpectrumS2CPacketSender.playColorTransmission(serverWorld, new ColoredTransmission(new Vec3d(this.pos.getX() + 0.5D, this.pos.getY() + 1.0D, this.pos.getZ() + 0.5D), new ExactPositionSource(orbTargetPos), 20, optionalItemColor.get())); } else if (this.world instanceof ClientWorld clientWorld) { for (int i = 0; i < 50; i++) { float randomOffsetX = pos.getX() + 0.3F + world.random.nextFloat() * 0.6F; @@ -124,11 +125,11 @@ public void spawnSphereParticlesTo(BlockPos blockPos) { randomVelocityX, randomVelocityY, randomVelocityZ); } - ParticleEffect sphereParticleEffect = new TransphereParticleEffect(new Transphere(this.pos, new BlockPositionSource(blockPos), 20, optionalItemColor.get())); - clientWorld.addParticle(sphereParticleEffect, this.pos.getX() + 0.5D, this.pos.getY() + 0.5D, this.pos.getZ() + 0.5D, (blockPos.getX() - this.pos.getX()) * 0.045, 0, (blockPos.getZ() - this.pos.getZ()) * 0.045); + ParticleEffect sphereParticleEffect = new ColoredTransmissionParticleEffect(new ExactPositionSource(orbTargetPos), 20, optionalItemColor.get()); + clientWorld.addParticle(sphereParticleEffect, this.pos.getX() + 0.5D, this.pos.getY() + 1.0D, this.pos.getZ() + 0.5D, (orbTargetPos.getX() - this.pos.getX()) * 0.045, 0, (orbTargetPos.getZ() - this.pos.getZ()) * 0.045); } - world.playSound(null, this.pos, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 1.0F, 0.7F + this.world.random.nextFloat() * 0.6F); + world.playSound(null, this.pos, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, SpectrumCommon.CONFIG.BlockSoundVolume, 0.7F + this.world.random.nextFloat() * 0.6F); } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/item_roundel/ItemRoundelBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/item_roundel/ItemRoundelBlockEntityRenderer.java index 47c069c7a7..9211f1dc99 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/item_roundel/ItemRoundelBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/item_roundel/ItemRoundelBlockEntityRenderer.java @@ -30,7 +30,7 @@ public void render(ItemRoundelBlockEntity blockEntity, float tickDelta, MatrixSt for (int i = 0; i < blockEntity.size(); i++) { ItemStack stack = blockEntity.getStack(i); if (!stack.isEmpty()) { - if(blockEntity.renderStacksAsIndividualItems()) { + if (blockEntity.renderStacksAsIndividualItems()) { for (int j = 0; j < stack.getCount(); j++) { inventoryStacks.add(stack); } @@ -49,7 +49,7 @@ public void render(ItemRoundelBlockEntity blockEntity, float tickDelta, MatrixSt double currentRadiant = radiant * i + (radiant * (time / 16.0) / (8.0F / inventoryStacks.size())); matrixStack.translate(distance * Math.sin(currentRadiant) + 0.5, 0.6, distance * Math.cos(currentRadiant) + 0.5); // position offset matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion((float) (i * 360 / inventoryStacks.size()) + (time / 16 / 8 * 360))); // item stack rotation; takes 0..360 - + MinecraftClient.getInstance().getItemRenderer().renderItem(inventoryStacks.get(i), ModelTransformation.Mode.GROUND, light, overlay, matrixStack, vertexConsumerProvider, 0); matrixStack.pop(); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/GerminatedJadeVineSeedsItem.java b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/GerminatedJadeVineSeedsItem.java index 42444f7319..dd9e7a7c70 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/GerminatedJadeVineSeedsItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/GerminatedJadeVineSeedsItem.java @@ -13,7 +13,6 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; @@ -70,9 +69,9 @@ public ActionResult useOnBlock(ItemUsageContext context) { public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.germinated_jade_vine_seeds.tooltip")); - tooltip.add(new TranslatableText("item.spectrum.germinated_jade_vine_seeds.tooltip2")); - tooltip.add(new TranslatableText("item.spectrum.germinated_jade_vine_seeds.tooltip3")); + tooltip.add(Text.translatable("item.spectrum.germinated_jade_vine_seeds.tooltip")); + tooltip.add(Text.translatable("item.spectrum.germinated_jade_vine_seeds.tooltip2")); + tooltip.add(Text.translatable("item.spectrum.germinated_jade_vine_seeds.tooltip3")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVine.java b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVine.java index 5de0619b01..5427004d57 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVine.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVine.java @@ -11,13 +11,12 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.LightType; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; -import java.util.Random; - public interface JadeVine { BooleanProperty DEAD = BooleanProperty.of("dead"); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineBulbBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineBulbBlock.java index a2ffa57ead..64f21bb952 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineBulbBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineBulbBlock.java @@ -11,6 +11,7 @@ import net.minecraft.state.property.BooleanProperty; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -18,8 +19,6 @@ import net.minecraft.world.WorldView; import org.jetbrains.annotations.NotNull; -import java.util.Random; - public class JadeVineBulbBlock extends Block implements JadeVine { public static final BooleanProperty DEAD = JadeVine.DEAD; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVinePlantBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVinePlantBlock.java index 6c5e2cd318..94a027bdfa 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVinePlantBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVinePlantBlock.java @@ -1,51 +1,38 @@ package de.dafuqs.spectrum.blocks.jade_vines; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.advancement.criterion.Criteria; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.loot.LootTable; -import net.minecraft.loot.context.LootContext; -import net.minecraft.loot.context.LootContextParameters; -import net.minecraft.loot.context.LootContextTypes; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.state.property.IntProperty; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.client.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.loot.*; +import net.minecraft.loot.context.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.state.*; import net.minecraft.state.property.Properties; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; -import net.minecraft.util.StringIdentifiable; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldAccess; -import net.minecraft.world.WorldView; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Random; +import net.minecraft.state.property.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; public class JadeVinePlantBlock extends Block implements JadeVine { - + public static final EnumProperty PART = EnumProperty.of("part", JadeVinesPlantPart.class); public static final IntProperty AGE = Properties.AGE_7; - + public JadeVinePlantBlock(Settings settings) { super(settings); this.setDefaultState((this.stateManager.getDefaultState()).with(PART, JadeVinesPlantPart.BASE).with(AGE, 1)); @@ -58,22 +45,22 @@ public static List getHarvestedStacks(BlockState state, ServerWorld w .parameter(LootContextParameters.TOOL, stack) .optionalParameter(LootContextParameters.THIS_ENTITY, entity) .optionalParameter(LootContextParameters.BLOCK_ENTITY, blockEntity); - + LootTable lootTable = world.getServer().getLootManager().getTable(lootTableIdentifier); return lootTable.generateLoot(builder.build(LootContextTypes.BLOCK)); } - + static void setHarvested(@NotNull BlockState blockState, @NotNull ServerWorld world, @NotNull BlockPos blockPos) { BlockPos rootsPos = blockState.get(PART).getLowestRootsPos(blockPos); if (world.getBlockState(rootsPos).getBlock() instanceof JadeVineRootsBlock jadeVineRootsBlock) { jadeVineRootsBlock.setPlantToAge(world, rootsPos, 1); } } - + @Override public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { super.randomDisplayTick(state, world, pos, random); - + int age = state.get(AGE); if (age == Properties.AGE_7_MAX) { if (random.nextFloat() < 0.3) { @@ -83,7 +70,7 @@ public void randomDisplayTick(BlockState state, World world, BlockPos pos, Rando JadeVine.spawnParticlesClient(world, pos); } } - + @Override public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { if (!state.canPlaceAt(world, pos) || missingBottom(state, world.getBlockState(pos.down()))) { @@ -91,14 +78,14 @@ public BlockState getStateForNeighborUpdate(BlockState state, Direction directio } return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos); } - + @Override public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { if (!state.canPlaceAt(world, pos) || missingBottom(state, world.getBlockState(pos.down()))) { world.breakBlock(pos, false); } } - + private boolean missingBottom(BlockState state, BlockState belowState) { JadeVinesPlantPart part = state.get(PART); if (part == JadeVinesPlantPart.TIP) { @@ -107,61 +94,73 @@ private boolean missingBottom(BlockState state, BlockState belowState) { return !(belowState.getBlock() instanceof JadeVinePlantBlock); } } - + @Override public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { JadeVinesGrowthStage growthStage = JadeVinesGrowthStage.fromAge(state.get(AGE)); - + if (growthStage.isFullyGrown()) { - for (ItemStack handStack : player.getItemsHand()) { + for (ItemStack handStack : player.getHandItems()) { if (handStack.isOf(Items.GLASS_BOTTLE)) { if (world.isClient) { return ActionResult.SUCCESS; } else { - if(player instanceof ServerPlayerEntity serverPlayerEntity) { + if (player instanceof ServerPlayerEntity serverPlayerEntity) { Criteria.ITEM_USED_ON_BLOCK.trigger(serverPlayerEntity, pos, handStack); } - + handStack.decrement(1); setHarvested(state, (ServerWorld) world, pos); - + List harvestedStacks = getHarvestedStacks(state, (ServerWorld) world, pos, world.getBlockEntity(pos), player, handStack, NECTAR_HARVESTING_LOOT_IDENTIFIER); for (ItemStack harvestedStack : harvestedStacks) { Support.givePlayer(player, harvestedStack); } - + return ActionResult.CONSUME; } } } + + if (world.isClient) { + displayNeedBottleMessage(); + return ActionResult.SUCCESS; + } else { + return ActionResult.CONSUME; + } } else if (growthStage.canHarvestPetals()) { if (world.isClient) { return ActionResult.SUCCESS; } else { setHarvested(state, (ServerWorld) world, pos); - + List harvestedStacks = getHarvestedStacks(state, (ServerWorld) world, pos, world.getBlockEntity(pos), player, player.getMainHandStack(), PETAL_HARVESTING_LOOT_IDENTIFIER); for (ItemStack harvestedStack : harvestedStacks) { Support.givePlayer(player, harvestedStack); } - + return ActionResult.CONSUME; } } - + return super.onUse(state, world, pos, player, hand, hit); } - + + @Environment(EnvType.CLIENT) + public static void displayNeedBottleMessage() { + MinecraftClient.getInstance().inGameHud.setOverlayMessage(Text.translatable("message.spectrum.needs_item_to_harvest").append(Items.GLASS_BOTTLE.getName()), false); + } + @Override public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state) { return SpectrumItems.GERMINATED_JADE_VINE_SEEDS.getDefaultStack(); } - + @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return state.get(PART) == JadeVinesPlantPart.TIP ? TIP_SHAPE : SHAPE; } - + @Override public boolean canPlaceAt(@NotNull BlockState state, WorldView world, BlockPos pos) { BlockState upState = world.getBlockState(pos.up()); @@ -175,12 +174,12 @@ public boolean canPlaceAt(@NotNull BlockState state, WorldView world, BlockPos p return upBlock instanceof JadeVinePlantBlock && upState.get(PART) == JadeVinesPlantPart.MIDDLE; } } - + @Override protected void appendProperties(StateManager.@NotNull Builder builder) { builder.add(PART, AGE); } - + @Override public boolean setToAge(World world, BlockPos blockPos, int age) { BlockState currentState = world.getBlockState(blockPos); @@ -193,22 +192,36 @@ public boolean setToAge(World world, BlockPos blockPos, int age) { } return false; } - + + public void onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { + if (!world.isClient) { + if (!player.isCreative()) { + dropStacks(state, world, pos, null, player, player.getMainHandStack()); + } + } + + super.onBreak(world, pos, state, player); + } + + public void afterBreak(World world, PlayerEntity player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { + super.afterBreak(world, player, pos, Blocks.AIR.getDefaultState(), blockEntity, stack); + } + enum JadeVinesPlantPart implements StringIdentifiable { BASE, MIDDLE, TIP; - + @Contract(pure = true) public @NotNull String toString() { return this.asString(); } - + @Contract(pure = true) public @NotNull String asString() { return this == BASE ? "base" : this == MIDDLE ? "middle" : "tip"; } - + public BlockPos getLowestRootsPos(BlockPos blockPos) { if (this == BASE) { return blockPos.up(); @@ -218,15 +231,15 @@ public BlockPos getLowestRootsPos(BlockPos blockPos) { return blockPos.up(3); } } - + } - + enum JadeVinesGrowthStage { DEAD, LEAVES, PETALS, BLOOM; - + public static JadeVinesGrowthStage fromAge(int age) { if (age == 0) { return DEAD; @@ -238,19 +251,19 @@ public static JadeVinesGrowthStage fromAge(int age) { return LEAVES; } } - + public static boolean isFullyGrown(int age) { return age == Properties.AGE_7_MAX; } - + public boolean isFullyGrown() { return this == BLOOM; } - + public boolean canHarvestPetals() { return this == PETALS || this == BLOOM; } - + } - + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlock.java index a1fd8cf42e..3eef71fe7f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlock.java @@ -13,6 +13,7 @@ import net.minecraft.state.property.Properties; import net.minecraft.tag.BlockTags; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.LightType; @@ -21,8 +22,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class JadeVineRootsBlock extends BlockWithEntity implements JadeVine { public static final BooleanProperty DEAD = JadeVine.DEAD; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlockEntityRenderer.java index 16ccb6cc4c..54f271a922 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/jade_vines/JadeVineRootsBlockEntityRenderer.java @@ -13,8 +13,6 @@ import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; import net.minecraft.client.util.math.MatrixStack; -import java.util.Random; - @Environment(EnvType.CLIENT) public class JadeVineRootsBlockEntityRenderer implements BlockEntityRenderer { @@ -37,7 +35,7 @@ public void render(JadeVineRootsBlockEntity entity, float tickDelta, MatrixStack matrixStack, vertexConsumerProvider.getBuffer(RenderLayers.getMovingBlockLayer(fenceBlockState)), true, - new Random(), + entity.getWorld().random, fenceBlockState.getRenderingSeed(entity.getPos()), OverlayTexture.DEFAULT_UV ); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeBlock.java index 79c5865ada..781b503dfa 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeBlock.java @@ -9,11 +9,10 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.GameRules; import net.minecraft.world.World; -import java.util.Random; - public class WetLavaSpongeBlock extends WetSpongeBlock { public WetLavaSpongeBlock(Settings settings) { @@ -23,7 +22,7 @@ public WetLavaSpongeBlock(Settings settings) { // faster than fire (30+ 0-10) // even more in the nether private static int getRandomTickTime(World world) { - if (world.getDimension().isUltrawarm()) { + if (world.getDimension().ultrawarm()) { return 10 + world.random.nextInt(5); } else { return 20 + world.random.nextInt(10); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeItem.java b/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeItem.java index 1b34d82e3a..86a661a38b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/lava_sponge/WetLavaSpongeItem.java @@ -9,13 +9,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.GameRules; import net.minecraft.world.World; import java.util.List; -import java.util.Random; public class WetLavaSpongeItem extends BlockItem { @@ -56,7 +55,7 @@ public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.wet_lava_sponge.tooltip")); + tooltip.add(Text.translatable("item.spectrum.wet_lava_sponge.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlock.java index 4b5d0e0e01..9cf95d7c04 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlock.java @@ -15,6 +15,7 @@ import net.minecraft.state.property.Properties; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -23,7 +24,6 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.Random; public class MemoryBlock extends BlockWithEntity implements Waterloggable { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlockEntity.java index 39fa543a6d..d432c1fd0b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryBlockEntity.java @@ -1,41 +1,28 @@ package de.dafuqs.spectrum.blocks.memory; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.mixin.accessors.FoxEntityAccessor; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumBlockTags; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.Waterloggable; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.SpawnReason; -import net.minecraft.entity.mob.MobEntity; -import net.minecraft.entity.passive.AnimalEntity; -import net.minecraft.entity.passive.FoxEntity; -import net.minecraft.entity.passive.HorseBaseEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.SpawnEggItem; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.mob.*; +import net.minecraft.entity.passive.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; import net.minecraft.state.property.Properties; -import net.minecraft.util.Pair; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Optional; -import java.util.UUID; +import java.util.*; public class MemoryBlockEntity extends BlockEntity implements PlayerOwned { @@ -78,6 +65,7 @@ public void setData(LivingEntity livingEntity, @NotNull ItemStack creatureSpawnI } if (creatureSpawnItemStack.getItem() instanceof MemoryItem) { this.memoryItemStack = creatureSpawnItemStack.copy(); + this.memoryItemStack.setCount(1); } if (!livingEntity.world.isClient) { this.updateInClientWorld(); @@ -150,7 +138,7 @@ public void manifest(@NotNull ServerWorld world, BlockPos blockPos) { hatchedMobEntity.playSpawnEffects(); } if (this.ownerUUID != null) { - if (hatchedEntity.get() instanceof HorseBaseEntity horseBaseEntity) { + if (hatchedEntity.get() instanceof AbstractHorseEntity horseBaseEntity) { horseBaseEntity.setOwnerUuid(this.ownerUUID); } else if (hatchedEntity.get() instanceof FoxEntity foxEntity) { ((FoxEntityAccessor) foxEntity).invokeAddTrustedUuid(this.ownerUUID); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryItem.java b/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryItem.java index c4de6a3d49..0332754b56 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/memory/MemoryItem.java @@ -9,7 +9,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Pair; import net.minecraft.world.World; @@ -118,25 +117,25 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too if (entityType.isPresent()) { if (isEntityTypeUnrecognizable(nbt)) { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.unrecognizable_entity_type").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.unrecognizable_entity_type").formatted(Formatting.GRAY)); } else { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.entity_type", entityType.get().getName())); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.entity_type", entityType.get().getName())); } } else { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.unset_entity_type").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.unset_entity_type").formatted(Formatting.GRAY)); return; } if (ticksToHatch <= 0) { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.does_not_manifest").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.does_not_manifest").formatted(Formatting.GRAY)); } else if (ticksToHatch > 100) { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.extra_long_time_to_manifest").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.extra_long_time_to_manifest").formatted(Formatting.GRAY)); } else if (ticksToHatch > 20) { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.long_time_to_manifest").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.long_time_to_manifest").formatted(Formatting.GRAY)); } else if (ticksToHatch > 5) { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.medium_time_to_manifest").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.medium_time_to_manifest").formatted(Formatting.GRAY)); } else { - tooltip.add(new TranslatableText("item.spectrum.memory.tooltip.short_time_to_manifest").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.memory.tooltip.short_time_to_manifest").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/AoEStatusEffectMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/AoEStatusEffectMobBlock.java index 04b44ea61d..94519baee7 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/AoEStatusEffectMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/AoEStatusEffectMobBlock.java @@ -10,7 +10,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; @@ -38,7 +37,7 @@ public AoEStatusEffectMobBlock(Settings settings, ParticleEffect particleEffect, @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.echolocating_mob_block.tooltip", range)); + tooltip.add(Text.translatable("block.spectrum.echolocating_mob_block.tooltip", range)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/BonemealingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/BonemealingMobBlock.java index af669b6041..7ca98dc726 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/BonemealingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/BonemealingMobBlock.java @@ -8,7 +8,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -25,7 +24,7 @@ public BonemealingMobBlock(Settings settings, ParticleEffect particleEffect) { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.bonemealing_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.bonemealing_mob_block.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/EntitySummoningMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/EntitySummoningMobBlock.java index 2809a380fc..7b33ed76ff 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/EntitySummoningMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/EntitySummoningMobBlock.java @@ -10,7 +10,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -30,7 +29,7 @@ public EntitySummoningMobBlock(Settings settings, ParticleEffect particleEffect, @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.entity_summoning_mob_block.tooltip", entityType.getName())); + tooltip.add(Text.translatable("block.spectrum.entity_summoning_mob_block.tooltip", entityType.getName())); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ExplosionMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ExplosionMobBlock.java index 1832a803b4..4c7638965f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ExplosionMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ExplosionMobBlock.java @@ -8,7 +8,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -34,7 +33,7 @@ public ExplosionMobBlock(Settings settings, ParticleEffect particleEffect, float @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.explosion_mob_block.tooltip", power)); + tooltip.add(Text.translatable("block.spectrum.explosion_mob_block.tooltip", power)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FallDamageNegatingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FallDamageNegatingMobBlock.java index 22c7244f81..8b1541acf4 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FallDamageNegatingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FallDamageNegatingMobBlock.java @@ -8,7 +8,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -38,8 +37,8 @@ public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @ @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.fall_damage_negating_mob_block.tooltip")); - tooltip.add(new TranslatableText("block.spectrum.fall_damage_negating_mob_block.tooltip2")); + tooltip.add(Text.translatable("block.spectrum.fall_damage_negating_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.fall_damage_negating_mob_block.tooltip2")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FeedingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FeedingMobBlock.java index 7fa64464ce..15095650ca 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FeedingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FeedingMobBlock.java @@ -9,7 +9,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; @@ -33,7 +32,7 @@ public FeedingMobBlock(Settings settings, ParticleEffect particleEffect, int ran @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.feeding_mob_block.tooltip", this.range)); + tooltip.add(Text.translatable("block.spectrum.feeding_mob_block.tooltip", this.range)); } @Override @@ -67,7 +66,7 @@ public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @ stack.decrement(1); int i = animalEntity.getBreedingAge(); animalEntity.growUp((int) ((float) (-i / 20) * 0.1F), true); - animalEntity.emitGameEvent(GameEvent.MOB_INTERACT, animalEntity.getCameraBlockPos()); + animalEntity.emitGameEvent(GameEvent.ENTITY_INTERACT); } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FirestarterMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FirestarterMobBlock.java index 6325d8a35d..cba44b7719 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FirestarterMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FirestarterMobBlock.java @@ -17,7 +17,6 @@ import net.minecraft.state.property.Properties; import net.minecraft.tag.BlockTags; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Pair; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; @@ -102,7 +101,7 @@ public static boolean causeFire(@NotNull ServerWorld world, BlockPos blockPos, D @Override public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @Nullable Entity entity, Direction side) { for (Direction direction : Direction.values()) { - if(causeFire(world, blockPos.offset(direction), direction)) { + if (causeFire(world, blockPos.offset(direction), direction)) { world.playSound(null, blockPos, SoundEvents.ITEM_FLINTANDSTEEL_USE, SoundCategory.BLOCKS, 1.0F, world.getRandom().nextFloat() * 0.4F + 0.8F); } } @@ -112,7 +111,7 @@ public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @ @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.firestarter_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.firestarter_mob_block.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FreezingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FreezingMobBlock.java index e31ab2460f..ac29c18ffe 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FreezingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/FreezingMobBlock.java @@ -10,7 +10,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Pair; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -81,7 +80,7 @@ public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @ @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.freezing_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.freezing_mob_block.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/InsomniaMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/InsomniaMobBlock.java index ec42547797..37e891242b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/InsomniaMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/InsomniaMobBlock.java @@ -15,15 +15,14 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.Random; public class InsomniaMobBlock extends MobBlock { @@ -75,7 +74,7 @@ public int getCooldownTicks() { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.insomnia_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.insomnia_mob_block.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/KnockbackMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/KnockbackMobBlock.java index 0a051ea269..f8f54cf92f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/KnockbackMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/KnockbackMobBlock.java @@ -7,7 +7,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -63,7 +62,7 @@ public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @ @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.knockback_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.knockback_mob_block.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/LineTeleportingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/LineTeleportingMobBlock.java index f4dcd2591d..c000a71501 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/LineTeleportingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/LineTeleportingMobBlock.java @@ -7,7 +7,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -52,8 +51,8 @@ public static Optional searchForBlock(World world, BlockPos pos, Block @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.line_teleporting_mob_block.tooltip", range)); - tooltip.add(new TranslatableText("block.spectrum.line_teleporting_mob_block.tooltip2", range)); + tooltip.add(Text.translatable("block.spectrum.line_teleporting_mob_block.tooltip", range)); + tooltip.add(Text.translatable("block.spectrum.line_teleporting_mob_block.tooltip2", range)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MilkingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MilkingMobBlock.java index b68c9c8644..58632c18be 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MilkingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MilkingMobBlock.java @@ -1,35 +1,23 @@ package de.dafuqs.spectrum.blocks.mob_blocks; -import de.dafuqs.spectrum.mixin.accessors.MooshroomEntityAccessor; -import net.minecraft.block.BlockState; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.passive.CowEntity; -import net.minecraft.entity.passive.GoatEntity; -import net.minecraft.entity.passive.MooshroomEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.item.SuspiciousStewItem; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.BlockView; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import net.minecraft.block.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.passive.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; -import static de.dafuqs.spectrum.helpers.InWorldInteractionHelper.findAndDecreaseClosestItemEntityOfItem; +import static de.dafuqs.spectrum.helpers.InWorldInteractionHelper.*; public class MilkingMobBlock extends MobBlock { @@ -57,8 +45,8 @@ public boolean trigger(@NotNull ServerWorld world, BlockPos blockPos, BlockState } } } - - // Cows + + // Cows (includes Mooshrooms) List cowEntities = world.getNonSpectatingEntities(CowEntity.class, Box.of(Vec3d.ofCenter(blockPos), boxSize, boxSize, boxSize)); for (CowEntity cowEntity : cowEntities) { if (!cowEntity.isBaby()) { @@ -70,6 +58,18 @@ public boolean trigger(@NotNull ServerWorld world, BlockPos blockPos, BlockState } } + // Egg Laying Wooly Pigs + List eggLayingWoolyPigEntities = world.getNonSpectatingEntities(EggLayingWoolyPigEntity.class, Box.of(Vec3d.ofCenter(blockPos), boxSize, boxSize, boxSize)); + for (EggLayingWoolyPigEntity eggLayingWoolyPigEntity : eggLayingWoolyPigEntities) { + if (!eggLayingWoolyPigEntity.isBaby()) { + boolean emptyBucketFound = findAndDecreaseClosestItemEntityOfItem(world, eggLayingWoolyPigEntity.getPos(), Items.BUCKET, BUCKET_SEARCH_RANGE); + if (emptyBucketFound) { + world.playSound(null, eggLayingWoolyPigEntity.getBlockPos(), SoundEvents.ENTITY_COW_MILK, SoundCategory.NEUTRAL, 1.0F, 1.0F); + spawnItemStackAtEntity(world, eggLayingWoolyPigEntity, Items.MILK_BUCKET.getDefaultStack()); + } + } + } + // Mooshrooms (Mooshroom Stew / Suspicious Stew) List mooshroomEntities = world.getNonSpectatingEntities(MooshroomEntity.class, Box.of(Vec3d.ofCenter(blockPos), boxSize, boxSize, boxSize)); for (MooshroomEntity mooshroomEntity : mooshroomEntities) { @@ -108,8 +108,8 @@ private void spawnItemStackAtEntity(ServerWorld world, @NotNull LivingEntity liv @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.milking_mob_block.tooltip", this.milkingRange)); - tooltip.add(new TranslatableText("block.spectrum.milking_mob_block.tooltip2")); + tooltip.add(Text.translatable("block.spectrum.milking_mob_block.tooltip", this.milkingRange)); + tooltip.add(Text.translatable("block.spectrum.milking_mob_block.tooltip2")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MobBlock.java index b858637bf2..c4a30da10a 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/MobBlock.java @@ -14,18 +14,17 @@ import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.Random; public abstract class MobBlock extends Block { @@ -46,7 +45,7 @@ protected void appendProperties(StateManager.Builder builder) @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.mob_block.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("block.spectrum.mob_block.tooltip").formatted(Formatting.GRAY)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/PiglinTradeMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/PiglinTradeMobBlock.java index 1c23de5190..53429b9b40 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/PiglinTradeMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/PiglinTradeMobBlock.java @@ -17,7 +17,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPointerImpl; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -62,7 +61,7 @@ public boolean trigger(ServerWorld world, BlockPos blockPos, BlockState state, @ return true; } } else if (entity instanceof PlayerEntity player) { - for (ItemStack handStack : player.getItemsHand()) { + for (ItemStack handStack : player.getHandItems()) { if (handStack.isOf(PiglinBrain.BARTERING_ITEM)) { handStack.decrement(1); @@ -86,7 +85,7 @@ private void outputLoot(ServerWorld world, BlockPos blockPos, Direction side) { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.piglin_trade_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.piglin_trade_mob_block.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ProjectileMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ProjectileMobBlock.java index bdaf907c90..f314685edc 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ProjectileMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ProjectileMobBlock.java @@ -13,7 +13,6 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.*; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; @@ -41,7 +40,7 @@ public ProjectileMobBlock(Settings settings, ParticleEffect particleEffect, Enti @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.projectile_mob_block.tooltip", this.entityType.getName())); + tooltip.add(Text.translatable("block.spectrum.projectile_mob_block.tooltip", this.entityType.getName())); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/RandomTeleportingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/RandomTeleportingMobBlock.java index 9917a6e0e7..f2409966eb 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/RandomTeleportingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/RandomTeleportingMobBlock.java @@ -11,14 +11,13 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.Random; public class RandomTeleportingMobBlock extends MobBlock { @@ -74,7 +73,7 @@ public static boolean teleportTo(ServerWorld world, Entity entity, BlockPos bloc @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.random_teleporting_mob_block.tooltip", horizontalRange)); + tooltip.add(Text.translatable("block.spectrum.random_teleporting_mob_block.tooltip", horizontalRange)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ShearingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ShearingMobBlock.java index 2a65ee08d8..c68b1c80ed 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ShearingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/ShearingMobBlock.java @@ -10,7 +10,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; @@ -32,7 +31,7 @@ public ShearingMobBlock(Settings settings, ParticleEffect particleEffect, int ra @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.shearing_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.shearing_mob_block.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SilverfishInsertingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SilverfishInsertingMobBlock.java index 86170b228b..ec0cfe03bd 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SilverfishInsertingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SilverfishInsertingMobBlock.java @@ -9,7 +9,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -27,7 +26,7 @@ public SilverfishInsertingMobBlock(Settings settings, ParticleEffect particleEff @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.silverfish_inserting_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.silverfish_inserting_mob_block.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SlimeSizingMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SlimeSizingMobBlock.java index 95ccd1c48b..ca5e9d63a7 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SlimeSizingMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/SlimeSizingMobBlock.java @@ -12,7 +12,6 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; @@ -36,7 +35,7 @@ public SlimeSizingMobBlock(Settings settings, ParticleEffect particleEffect, int @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.slime_sizing_mob_block.tooltip")); + tooltip.add(Text.translatable("block.spectrum.slime_sizing_mob_block.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/StatusEffectMobBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/StatusEffectMobBlock.java index 4f9c931565..87febf63fa 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/StatusEffectMobBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_blocks/StatusEffectMobBlock.java @@ -11,7 +11,6 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -35,7 +34,7 @@ public StatusEffectMobBlock(Settings settings, ParticleEffect particleEffect, St @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.potion_effect_mob_block.tooltip", this.statusEffect.getName())); + tooltip.add(Text.translatable("block.spectrum.potion_effect_mob_block.tooltip", this.statusEffect.getName())); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/EggLayingWoolyPigHeadModel.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/EggLayingWoolyPigHeadModel.java index 6eeb3cf48a..fbcab4509f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/EggLayingWoolyPigHeadModel.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/EggLayingWoolyPigHeadModel.java @@ -9,38 +9,38 @@ @Environment(EnvType.CLIENT) public class EggLayingWoolyPigHeadModel extends SkullBlockEntityModel { - private final ModelPart head; - - public EggLayingWoolyPigHeadModel(ModelPart root) { - this.head = root.getChild("head"); - } - - public static TexturedModelData getTexturedModelData() { - ModelData modelData = new ModelData(); - ModelPartData modelPartData = modelData.getRoot(); - ModelPartData head = modelPartData.addChild("head", ModelPartBuilder.create().uv(56, 24).cuboid(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, new Dilation(0.0F)) - .uv(0, 44).cuboid(-2.5F, -4.0F, -5.0F, 5.0F, 3.0F, 1.0F, new Dilation(0.0F)) - .uv(45, 0).cuboid(-5.02F, -9.0F, -5.0F, 10.0F, 7.0F, 10.0F, new Dilation(0.0F)), ModelTransform.NONE); - - head.addChild("ear_r1", ModelPartBuilder.create() - .uv(0, 0).cuboid(7.0964F, -15.0939F, -8.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, -0.3927F)); - - head.addChild("ear_r2", ModelPartBuilder.create() - .uv(0, 32).cuboid(-10.0964F, -15.0939F, -8.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, 0.3927F)); - - return TexturedModelData.of(modelData, 128, 128); - } - - public void setHeadRotation(float animationProgress, float yaw, float pitch) { - this.head.yaw = yaw * 0.017453292F; - this.head.pitch = pitch * 0.017453292F; - } - - public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { - matrices.push(); - matrices.scale(0.75F, 0.75F, 0.75F); - this.head.render(matrices, vertices, light, overlay, red, green, blue, alpha); - matrices.pop(); - } - + private final ModelPart head; + + public EggLayingWoolyPigHeadModel(ModelPart root) { + this.head = root.getChild("head"); + } + + public static TexturedModelData getTexturedModelData() { + ModelData modelData = new ModelData(); + ModelPartData modelPartData = modelData.getRoot(); + ModelPartData head = modelPartData.addChild("head", ModelPartBuilder.create().uv(56, 24).cuboid(-4.0F, -8.0F, -4.0F, 8.0F, 8.0F, 8.0F, new Dilation(0.0F)) + .uv(0, 44).cuboid(-2.5F, -4.0F, -5.0F, 5.0F, 3.0F, 1.0F, new Dilation(0.0F)) + .uv(45, 0).cuboid(-5.02F, -9.0F, -5.0F, 10.0F, 7.0F, 10.0F, new Dilation(0.0F)), ModelTransform.NONE); + + head.addChild("ear_r1", ModelPartBuilder.create() + .uv(0, 0).cuboid(7.0964F, -15.0939F, -8.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, -0.3927F)); + + head.addChild("ear_r2", ModelPartBuilder.create() + .uv(0, 32).cuboid(-10.0964F, -15.0939F, -8.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, 0.3927F)); + + return TexturedModelData.of(modelData, 128, 128); + } + + public void setHeadRotation(float animationProgress, float yaw, float pitch) { + this.head.yaw = yaw * 0.017453292F; + this.head.pitch = pitch * 0.017453292F; + } + + public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { + matrices.push(); + matrices.scale(0.86F, 0.86F, 0.86F); + this.head.render(matrices, vertices, light, overlay, red, green, blue, alpha); + matrices.pop(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlock.java index baa75d7b59..de541b0c6d 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlock.java @@ -1,34 +1,26 @@ package de.dafuqs.spectrum.blocks.mob_head; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.entity.render.EggLayingWoolyPigEntityRenderer; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.BlockState; -import net.minecraft.block.Material; -import net.minecraft.block.SkullBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.block.pattern.BlockPattern; -import net.minecraft.block.pattern.BlockPatternBuilder; -import net.minecraft.block.pattern.CachedBlockPosition; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.predicate.block.BlockStatePredicate; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.tag.BlockTags; -import net.minecraft.util.Identifier; -import net.minecraft.util.function.MaterialPredicate; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.entity.render.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.block.pattern.*; +import net.minecraft.entity.*; +import net.minecraft.item.*; +import net.minecraft.predicate.block.*; +import net.minecraft.server.network.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.function.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Locale; +import java.util.*; public class SpectrumSkullBlock extends SkullBlock { @@ -64,7 +56,7 @@ public BlockEntityTicker getTicker(World world, Block public void onPlaced(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) { super.onPlaced(world, pos, state, placer, itemStack); - // Trigger advancement if player builds a wither structure with using wither skulls + // Trigger advancement if player builds a wither structure using wither skulls instead of wither skeleton skulls if (getSkullType().equals(SpectrumSkullBlockType.WITHER) && placer instanceof ServerPlayerEntity serverPlayerEntity) { if (pos.getY() >= world.getBottomY()) { BlockPattern blockPattern = getWitherSkullPattern(); @@ -143,6 +135,7 @@ public enum SpectrumSkullBlockType implements SkullBlock.SkullType { SHEEP_RED(EntityType.SHEEP), SHEEP_WHITE(EntityType.SHEEP), SHEEP_YELLOW(EntityType.SHEEP), + SHULKER(EntityType.SHULKER), SHULKER_BLACK(EntityType.SHULKER), SHULKER_BLUE(EntityType.SHULKER), SHULKER_BROWN(EntityType.SHULKER), @@ -178,18 +171,26 @@ public enum SpectrumSkullBlockType implements SkullBlock.SkullType { ZOGLIN(EntityType.ZOGLIN), ZOMBIE_VILLAGER(EntityType.ZOMBIE_VILLAGER), ZOMBIFIED_PIGLIN(EntityType.ZOMBIFIED_PIGLIN), - + FROG_TEMPERATE(EntityType.FROG), + FROG_WARM(EntityType.FROG), + FROG_COLD(EntityType.FROG), + TADPOLE(EntityType.TADPOLE), + WARDEN(EntityType.WARDEN), + ALLAY(EntityType.ALLAY), + EGG_LAYING_WOOLY_PIG(SpectrumEntityTypes.EGG_LAYING_WOOLY_PIG); - + public final EntityType entityType; - + SpectrumSkullBlockType(EntityType entityType) { this.entityType = entityType; } - + public SkullType getModelType() { - if(this == EGG_LAYING_WOOLY_PIG) { + if (this == EGG_LAYING_WOOLY_PIG) { return EGG_LAYING_WOOLY_PIG; + } else if (this == WARDEN) { + return WARDEN; } else { return Type.PLAYER; } @@ -197,8 +198,10 @@ public SkullType getModelType() { @Environment(EnvType.CLIENT) public Identifier getTextureIdentifier() { - if(this == EGG_LAYING_WOOLY_PIG) { + if (this == EGG_LAYING_WOOLY_PIG) { return EggLayingWoolyPigEntityRenderer.TEXTURE; + } else if (this == WARDEN) { + return new Identifier("textures/entity/warden/warden.png"); } else { return SpectrumCommon.locate("textures/entity/mob_head/" + this.toString().toLowerCase(Locale.ROOT) + ".png"); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockEntityRenderer.java index f4cca85dbc..8f696311c2 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockEntityRenderer.java @@ -1,7 +1,7 @@ package de.dafuqs.spectrum.blocks.mob_head; import com.google.common.collect.ImmutableMap; -import de.dafuqs.spectrum.registries.SpectrumModelLayers; +import de.dafuqs.spectrum.registries.client.SpectrumModelLayers; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.BlockState; @@ -38,11 +38,12 @@ public static Map getModels(EntityM ImmutableMap.Builder builder = ImmutableMap.builder(); builder.put(SkullBlock.Type.PLAYER, new SkullEntityModel(modelLoader.getModelPart(EntityModelLayers.PLAYER_HEAD))); builder.put(SpectrumSkullBlock.SpectrumSkullBlockType.EGG_LAYING_WOOLY_PIG, new EggLayingWoolyPigHeadModel(modelLoader.getModelPart(SpectrumModelLayers.EGG_LAYING_WOOLY_PIG_HEAD))); + builder.put(SpectrumSkullBlock.SpectrumSkullBlockType.WARDEN, new WardenHeadModel(modelLoader.getModelPart(SpectrumModelLayers.WARDEN_HEAD))); return builder.build(); } public static SkullBlockEntityModel getModel(SkullBlock.SkullType skullType) { - if(MODELS.containsKey(skullType)) { + if (MODELS.containsKey(skullType)) { return MODELS.get(skullType); } else { return MODELS.get(SkullBlock.Type.PLAYER); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockItem.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockItem.java index 62750ba4df..ffdc3dcac4 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/SpectrumSkullBlockItem.java @@ -1,19 +1,14 @@ package de.dafuqs.spectrum.blocks.mob_head; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.Block; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.EntityType; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.item.WallStandingBlockItem; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.world.World; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.world.*; -import java.util.List; -import java.util.Optional; +import java.util.*; public class SpectrumSkullBlockItem extends WallStandingBlockItem { @@ -53,7 +48,7 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, artistCached = getHeadArtist(SpectrumBlocks.getSkullType(this.getBlock())); } if (!artistCached.equals("")) { - tooltip.add(new TranslatableText("item.spectrum.mob_head.tooltip.designer", artistCached)); + tooltip.add(Text.translatable("item.spectrum.mob_head.tooltip.designer", artistCached)); } } } @@ -61,19 +56,24 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, // MANY thanks to the people at https://minecraft-heads.com/ ! private String getHeadArtist(SpectrumSkullBlock.SpectrumSkullBlockType type) { return switch (type) { - case FOX_ARCTIC, BEE, CAT, CLOWNFISH, FOX, PANDA, RAVAGER, SALMON, WITHER, PUFFERFISH -> "Pandaclod"; - case GHAST, CAVE_SPIDER, CHICKEN, COW, ENDERMAN, IRON_GOLEM, BLAZE, MAGMA_CUBE, MOOSHROOM_RED, MOOSHROOM_BROWN, OCELOT, PIG, SLIME, SPIDER, SQUID, VILLAGER, WITCH, ZOMBIFIED_PIGLIN -> "Mojang"; - case AXOLOTL_BLUE, AXOLOTL_CYAN, AXOLOTL_GOLD, AXOLOTL_LEUCISTIC, AXOLOTL_BROWN, HOGLIN -> "ML_Monster"; - case SHULKER_BLACK, SHULKER_BLUE, SHULKER_BROWN, SHULKER_CYAN, SHULKER_PURPLE, SHULKER_GRAY, SHULKER_GREEN, SHULKER_LIGHT_BLUE, SHULKER_LIGHT_GRAY, SHULKER_LIME, SHULKER_MAGENTA, SHULKER_ORANGE, SHULKER_PINK, SHULKER_RED, SHULKER_WHITE, SHULKER_YELLOW -> "ChimpD"; - case ZOMBIE_VILLAGER -> "Kiaria"; - case TRADER_LLAMA -> "miner_william_05"; - case ILLUSIONER, DONKEY -> "titigillette"; - case PIGLIN -> "pianoboy913"; - case WANDERING_TRADER -> "BBS_01"; - case ZOGLIN -> "GreenRumble4454"; - case STRIDER -> "Deadly_Golem"; - default -> ""; - }; + case FOX_ARCTIC, BEE, CAT, CLOWNFISH, FOX, PANDA, RAVAGER, SALMON, WITHER, PUFFERFISH -> "Pandaclod"; + case GHAST, CAVE_SPIDER, CHICKEN, COW, ENDERMAN, IRON_GOLEM, BLAZE, MAGMA_CUBE, MOOSHROOM_RED, MOOSHROOM_BROWN, OCELOT, PIG, SLIME, SPIDER, SQUID, VILLAGER, WITCH, ZOMBIFIED_PIGLIN, WARDEN -> + "Mojang"; + case AXOLOTL_BLUE, AXOLOTL_CYAN, AXOLOTL_GOLD, AXOLOTL_LEUCISTIC, AXOLOTL_BROWN, HOGLIN, TADPOLE -> + "ML_Monster"; + case SHULKER, SHULKER_BLACK, SHULKER_BLUE, SHULKER_BROWN, SHULKER_CYAN, SHULKER_PURPLE, SHULKER_GRAY, SHULKER_GREEN, SHULKER_LIGHT_BLUE, SHULKER_LIGHT_GRAY, SHULKER_LIME, SHULKER_MAGENTA, SHULKER_ORANGE, SHULKER_PINK, SHULKER_RED, SHULKER_WHITE, SHULKER_YELLOW -> + "ChimpD"; + case FROG_TEMPERATE, FROG_COLD, FROG_WARM -> "ofddshady"; + case ALLAY -> "Lerizo_"; + case ZOMBIE_VILLAGER -> "Kiaria"; + case TRADER_LLAMA -> "miner_william_05"; + case ILLUSIONER, DONKEY -> "titigillette"; + case PIGLIN -> "pianoboy913"; + case WANDERING_TRADER -> "BBS_01"; + case ZOGLIN -> "GreenRumble4454"; + case STRIDER -> "Deadly_Golem"; + default -> ""; + }; } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/mob_head/WardenHeadModel.java b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/WardenHeadModel.java new file mode 100644 index 0000000000..d6daa97bdf --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/mob_head/WardenHeadModel.java @@ -0,0 +1,43 @@ +package de.dafuqs.spectrum.blocks.mob_head; + +import net.fabricmc.api.*; +import net.minecraft.client.model.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.block.entity.*; +import net.minecraft.client.util.math.*; + +@Environment(EnvType.CLIENT) +public class WardenHeadModel extends SkullBlockEntityModel { + private final ModelPart head; + + public WardenHeadModel(ModelPart root) { + this.head = root.getChild("head"); + } + + public static TexturedModelData getTexturedModelData() { + ModelData modelData = new ModelData(); + ModelPartData root = modelData.getRoot(); + + root.addChild("head", ModelPartBuilder.create() + .uv(0, 32).cuboid(-8.0F, -16.0F, -5.0F, 16.0F, 16.0F, 10.0F, new Dilation(0.0F)) + .uv(58, 2).cuboid(8.0F, -21.0F, 0.0F, 10.0F, 16.0F, 0.0F, new Dilation(0.0F)) + .uv(58, 34).cuboid(-18.0F, -21.0F, 0.0F, 10.0F, 16.0F, 0.0F, new Dilation(0.0F)), + ModelTransform.pivot(0.0F, 0.0F, 0.0F) + ); + + return TexturedModelData.of(modelData, 128, 128); + } + + public void setHeadRotation(float animationProgress, float yaw, float pitch) { + this.head.yaw = yaw * 0.017453292F; + this.head.pitch = pitch * 0.017453292F; + } + + public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { + matrices.push(); + matrices.scale(0.7F, 0.7F, 0.7F); + this.head.render(matrices, vertices, light, overlay, red, green, blue, alpha); + matrices.pop(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/CreativeParticleSpawnerBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/CreativeParticleSpawnerBlock.java index 3ef277be2c..7c7d295ecc 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/CreativeParticleSpawnerBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/CreativeParticleSpawnerBlock.java @@ -9,7 +9,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -27,7 +26,7 @@ public CreativeParticleSpawnerBlock(Settings settings) { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); - tooltip.add(new TranslatableText("block.spectrum.creative_particle_spawner.tooltip")); + tooltip.add(Text.translatable("block.spectrum.creative_particle_spawner.tooltip")); } @Nullable diff --git a/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/ParticleSpawnerBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/ParticleSpawnerBlockEntity.java index 0e3e3158cf..400e1269ef 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/ParticleSpawnerBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/particle_spawner/ParticleSpawnerBlockEntity.java @@ -22,17 +22,16 @@ import net.minecraft.screen.ScreenHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3f; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; -import java.util.Random; public class ParticleSpawnerBlockEntity extends BlockEntity implements ExtendedScreenHandlerFactory { @@ -192,7 +191,7 @@ public ScreenHandler createMenu(int syncId, PlayerInventory inv, PlayerEntity pl @Override public Text getDisplayName() { - return new TranslatableText("block.spectrum.particle_spawner"); + return Text.translatable("block.spectrum.particle_spawner"); } public void writeSettings(@NotNull PacketByteBuf packetByteBuf) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/Pastel.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/Pastel.java new file mode 100644 index 0000000000..e80cbb91a8 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/Pastel.java @@ -0,0 +1,44 @@ +package de.dafuqs.spectrum.blocks.pastel_network; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import net.fabricmc.api.*; + +public class Pastel { + + @Environment(EnvType.CLIENT) + private static ClientPastelNetworkManager clientManager; + private static ServerPastelNetworkManager serverManager; + + @Environment(EnvType.CLIENT) + public static ClientPastelNetworkManager getClientInstance() { + if (clientManager == null) { + clientManager = new ClientPastelNetworkManager(); + } + return clientManager; + } + + public static ServerPastelNetworkManager getServerInstance() { + if (serverManager == null) { + serverManager = ServerPastelNetworkManager.get(SpectrumCommon.minecraftServer.getOverworld()); + } + return serverManager; + } + + public static PastelNetworkManager getInstance(boolean client) { + if (client) { + return getClientInstance(); + } else { + return getServerInstance(); + } + } + + public static void clearClientInstance() { + clientManager = null; + } + + public static void clearServerInstance() { + serverManager = null; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/PastelNetwork.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/PastelNetwork.java deleted file mode 100644 index 4180bceaf1..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/PastelNetwork.java +++ /dev/null @@ -1,140 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network; - -import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; -import net.minecraft.world.World; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; - -public class PastelNetwork { - - /** - * MOONSTONE - * Giant node. Getting close to it lets the player get items from the network - */ - //protected HashSet interactionNodes = new ArrayList<>(); - - protected static List networks = new ArrayList<>(); - /** - * Node network: - * - Need to be placed on inventories (sided?) - * - All components can be dyed (pigment, crafting or right-clicking) - * - A certain colored node can only interact with the nodes it composites into, but not vice-versa (blue => cyan, but not cyan => blue) - * - Connected on sight, like CC nodes - * - Use Mermaids gem on node to transform it into fluid node - *

- * CLEAR - * Basic connection node, not interacting actively ("connectors") - */ - protected HashSet pastelNetworkConnectionNodes = new HashSet<>(); - - /** - * TOPAZ - * Storage (everything that has no target gets put here) - */ - protected HashSet pastelNetworkStorageNodes = new HashSet<>(); - - /** - * AMETHYST - * Passive Provider (can be requested from) - */ - protected HashSet pastelNetworkProviderNodeBlockEntities = new HashSet<>(); - - /** - * CITRINE - * Active Provider (pushes items into network) - */ - protected HashSet pastelNetworkPusherNodes = new HashSet<>(); - - /** - * ONYX - * Requester Nodes, requests on redstone (active>passive>storage) - */ - protected HashSet pastelNetworkPullerNodes = new HashSet<>(); - protected String name; - List networkNames = List.of( - "Alpha", - "Beta", - "Gamma", - "Delta", - "Epsilon", - "Zeta", - "Eta", - "Theta", - "Iota", - "Kappa", - "Lambda", - "My", - "Ny", - "Xi", - "Omikron", - "Pi", - "Rho", - "Sigma", - "Tau", - "Ypsilon", - "Phi", - "Chi", - "Psi", - "Omeg" - ); - - public PastelNetwork(World world) { - this.name = networkNames.get(world.random.nextInt(networkNames.size())); - } - - public static PastelNetwork getNetworkForNewNode(PastelNetworkNodeBlockEntity pastelNetworkNodeBlockEntity) { - for (PastelNetwork network : networks) { - if (network.canConnect(pastelNetworkNodeBlockEntity)) { - return network; - } - } - return new PastelNetwork(pastelNetworkNodeBlockEntity.getWorld()); - } - - public void removeNode(PastelNetworkNodeBlockEntity pastelNetworkNodeBlockEntity) { - if (pastelNetworkNodeBlockEntity instanceof PastelNetworkConnectionNode) { - pastelNetworkConnectionNodes.remove(pastelNetworkNodeBlockEntity); - } else if (pastelNetworkNodeBlockEntity instanceof PastelNetworkProviderNodeBlockEntity) { - pastelNetworkProviderNodeBlockEntities.remove(pastelNetworkNodeBlockEntity); - } else if (pastelNetworkNodeBlockEntity instanceof PastelNetworkPullerNodeBlockEntity) { - pastelNetworkPullerNodes.remove(pastelNetworkNodeBlockEntity); - } else if (pastelNetworkNodeBlockEntity instanceof PastelNetworkPusherNodeBlockEntity) { - pastelNetworkPusherNodes.remove(pastelNetworkNodeBlockEntity); - } else if (pastelNetworkNodeBlockEntity instanceof PastelNetworkStorageNodeBlockEntity) { - pastelNetworkStorageNodes.remove(pastelNetworkNodeBlockEntity); - } - } - - public boolean canConnect(PastelNetworkNodeBlockEntity newNode) { - List allNodes = new ArrayList<>(); - allNodes.addAll(this.pastelNetworkConnectionNodes); - allNodes.addAll(this.pastelNetworkProviderNodeBlockEntities); - allNodes.addAll(this.pastelNetworkPullerNodes); - allNodes.addAll(this.pastelNetworkPusherNodes); - allNodes.addAll(this.pastelNetworkStorageNodes); - - for (PastelNetworkNodeBlockEntity currentNode : allNodes) { - if (currentNode.canSee(newNode)) { - return true; - } - } - return false; - } - - public void join(PastelNetwork network) { - this.pastelNetworkConnectionNodes.addAll(network.pastelNetworkConnectionNodes); - this.pastelNetworkProviderNodeBlockEntities.addAll(network.pastelNetworkProviderNodeBlockEntities); - this.pastelNetworkPullerNodes.addAll(network.pastelNetworkPullerNodes); - this.pastelNetworkPusherNodes.addAll(network.pastelNetworkPusherNodes); - this.pastelNetworkStorageNodes.addAll(network.pastelNetworkStorageNodes); - networks.remove(network); - } - - public void split() { - //TODO - } - - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/PastelRenderHelper.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/PastelRenderHelper.java new file mode 100644 index 0000000000..c43d54548f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/PastelRenderHelper.java @@ -0,0 +1,131 @@ +package de.dafuqs.spectrum.blocks.pastel_network; + +import de.dafuqs.spectrum.*; +import net.minecraft.client.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; + +public class PastelRenderHelper { + + public static final Identifier BEAM_TEXTURE_ID = SpectrumCommon.locate("textures/entity/pastel_line.png"); + public static final float BEAM_WIDTH = 0.05F; + + public static void renderLineTo(final MatrixStack matrices, final VertexConsumerProvider vertexConsumers, final float[] color, final BlockPos thisPos, final BlockPos pos) { + matrices.push(); + + final Vec3d vec = Vec3d.ofCenter(pos); + final Vec3d here = Vec3d.ofCenter(thisPos); + final Vec3d delta = vec.subtract(here); + final float dist = (float) vec.length(); + final Vec3d axis = delta.multiply(-1 / dist); + + final Camera camera = MinecraftClient.getInstance().gameRenderer.getCamera(); + final double[] billBoard = billboard((vec.x) * 1, (vec.y) * 1, (vec.z) * 1, camera.getPos().x, camera.getPos().y, camera.getPos().z, axis.x, axis.y, axis.z); + + final Matrix4f model = matrices.peek().getPositionMatrix(); + final Matrix3f normal = matrices.peek().getNormalMatrix(); + final VertexConsumer buffer = vertexConsumers.getBuffer(RenderLayer.getBeaconBeam(BEAM_TEXTURE_ID, true)); + renderBeamFace(billBoard, model, normal, buffer, color[1], color[2], color[3], color[0], dist, 0, 0, BEAM_WIDTH, -BEAM_WIDTH, 0, 0.5F, 0, 1); + renderBeamFace(billBoard, model, normal, buffer, color[1], color[2], color[3], color[0], dist, -BEAM_WIDTH, -BEAM_WIDTH, 0, 0, 0.5F, 1, 0, 1); + + matrices.pop(); + } + + private static void renderBeamFace(final double[] mat, final Matrix4f positionMatrix, final Matrix3f normalMatrix, final VertexConsumer vertices, final float red, final float green, final float blue, final float alpha, final float length, final float x1, final float z1, final float x2, final float z2, final float u1, final float u2, final float v1, final float v2) { + renderBeamVertex(mat, positionMatrix, normalMatrix, vertices, red, green, blue, alpha, x1, length, z1, u2, v1); + renderBeamVertex(mat, positionMatrix, normalMatrix, vertices, red, green, blue, alpha, x1, 0, z1, u2, v2); + renderBeamVertex(mat, positionMatrix, normalMatrix, vertices, red, green, blue, alpha, x2, 0, z2, u1, v2); + renderBeamVertex(mat, positionMatrix, normalMatrix, vertices, red, green, blue, alpha, x2, length, z2, u1, v1); + } + + private static void renderBeamVertex(final double[] mat, final Matrix4f positionMatrix, final Matrix3f normalMatrix, final VertexConsumer vertices, final float red, final float green, final float blue, final float alpha, final float x, final float y, final float z, final float u, final float v) { + final Vec3d transform = transform(new Vec3d(x, y, z), mat); + vertices.vertex(positionMatrix, (float) transform.x, (float) transform.y, (float) transform.z).color(red, green, blue, alpha).texture(u, v).overlay(OverlayTexture.DEFAULT_UV).light(15728880).normal(normalMatrix, 0.0F, 1.0F, 0.0F).next(); + } + + private static Vec3d transform(final Vec3d vec, final double[] mat) { + final double x = mat[matIndex(0, 0)] * vec.x + mat[matIndex(0, 1)] * vec.y + mat[matIndex(0, 2)] * vec.z + mat[matIndex(0, 3)]; + final double y = mat[matIndex(1, 0)] * vec.x + mat[matIndex(1, 1)] * vec.y + mat[matIndex(1, 2)] * vec.z + mat[matIndex(1, 3)]; + final double z = mat[matIndex(2, 0)] * vec.x + mat[matIndex(2, 1)] * vec.y + mat[matIndex(2, 2)] * vec.z + mat[matIndex(2, 3)]; + return new Vec3d(x, y, z); + } + + //treating an array like a matrix because minecraft's matrices aren't mutable + //also stolen from joml, which is in future versions of minecraft + private static double[] billboard(final double objX, final double objY, final double objZ, final double targetX, final double targetY, final double targetZ, final double upX, final double upY, final double upZ) { + double dirX = targetX - objX; + double dirY = targetY - objY; + double dirZ = targetZ - objZ; + // left = up x dir + double leftX = upY * dirZ - upZ * dirY; + double leftY = upZ * dirX - upX * dirZ; + double leftZ = upX * dirY - upY * dirX; + // normalize left + final double invLeftLen = 1 / Math.sqrt(leftX * leftX + leftY * leftY + leftZ * leftZ); + leftX *= invLeftLen; + leftY *= invLeftLen; + leftZ *= invLeftLen; + // recompute dir by constraining rotation around 'up' + // dir = left x up + dirX = leftY * upZ - leftZ * upY; + dirY = leftZ * upX - leftX * upZ; + dirZ = leftX * upY - leftY * upX; + // normalize dir + final double invDirLen = 1 / Math.sqrt(dirX * dirX + dirY * dirY + dirZ * dirZ); + dirX *= invDirLen; + dirY *= invDirLen; + dirZ *= invDirLen; + + final double[] mat = new double[16]; + mat[matIndex(0, 0)] = leftX; + mat[matIndex(1, 0)] = leftY; + mat[matIndex(2, 0)] = leftZ; + mat[matIndex(3, 0)] = 0; + + mat[matIndex(0, 1)] = upX; + mat[matIndex(1, 1)] = upY; + mat[matIndex(2, 1)] = upZ; + mat[matIndex(3, 1)] = 0; + + mat[matIndex(0, 2)] = dirX; + mat[matIndex(1, 2)] = dirY; + mat[matIndex(2, 2)] = dirZ; + mat[matIndex(3, 2)] = 0; + + mat[matIndex(0, 3)] = objX; + mat[matIndex(1, 3)] = objY; + mat[matIndex(2, 3)] = objZ; + mat[matIndex(3, 3)] = 1.0; + + return mat; + } + + private static int matIndex(final int x, final int y) { + return x * 4 + y; + } + + public static void renderDebugLine(VertexConsumerProvider vertexConsumerProvider, int color, Vec3d offset, Vec3d normalized, Matrix4f positionMatrix) { + vertexConsumerProvider.getBuffer(RenderLayer.getLines()) + .vertex(positionMatrix, 0.5F, 0.5F, 0.5F) + .color(color) + .normal((float) normalized.x, (float) normalized.y, (float) normalized.z) + .next(); + vertexConsumerProvider.getBuffer(RenderLayer.getLines()) + .vertex(positionMatrix, (float) offset.x, (float) offset.y, (float) offset.z) + .color(color) + .normal((float) normalized.x, (float) normalized.y, (float) normalized.z) + .next(); + } + + public static float[] unpackNormalizedColor(int color) { + final float[] colors = new float[4]; + colors[0] = (color >> 24 & 0xff) / 255F; // alpha + colors[1] = (color >> 16 & 0xff) / 255F; // red + colors[2] = (color >> 8 & 0xff) / 255F; // green + colors[3] = (color & 0xff) / 255F; // blue + return colors; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/SchedulerMap.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/SchedulerMap.java index 862c9a82b8..7665dd4c05 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/SchedulerMap.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/SchedulerMap.java @@ -1,77 +1,80 @@ package de.dafuqs.spectrum.blocks.pastel_network; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class SchedulerMap { - - private final Map map; - - public SchedulerMap() { - this(new HashMap<>()); - } - - public SchedulerMap(Map map) { - this.map = map; - } - - public void put(K val, int time) { - this.map.put(val, time); - } - - public void clear() { - map.clear(); - } - - public boolean containsKey(K val) { - return map.containsKey(val); - } - - public boolean isEmpty() { - return map.isEmpty(); - } - - public int get(K val) { - return map.get(val); - } - - public final String toString() { - return map.toString(); - } - - public final int size() { - return map.size(); - } - - public void tick() { - if (!map.isEmpty()) { - Iterator> iterator = map.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry next = iterator.next(); - K key = next.getKey(); - if (key instanceof Freezable freezableTimer && freezableTimer.isFrozen()) { - continue; - } - - if (next.getValue() >= 1) { - next.setValue(next.getValue() - 1); - } else { - if (key instanceof SchedulerMap.Callback) { - ((Callback) key).trigger(); - } - iterator.remove(); - } - } - } - } - - public interface Callback { - void trigger(); - } - - public interface Freezable extends Callback { - boolean isFrozen(); - } - +import java.util.*; + +public class SchedulerMap implements Iterable> { + + private final Map map; + + public SchedulerMap() { + this(new HashMap<>()); + } + + public SchedulerMap(Map map) { + this.map = map; + } + + public void put(K val, int ticks) { + this.map.put(val, ticks); + } + + public void clear() { + map.clear(); + } + + public boolean containsKey(K val) { + return map.containsKey(val); + } + + public boolean isEmpty() { + return map.isEmpty(); + } + + public int get(K val) { + return map.get(val); + } + + public final String toString() { + return map.toString(); + } + + public final int size() { + return map.size(); + } + + public void tick() { + if (!map.isEmpty()) { + Iterator> iterator = map.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry next = iterator.next(); + K key = next.getKey(); + if (key instanceof Freezable freezableTimer && freezableTimer.isFrozen()) { + continue; + } + + if (next.getValue() >= 1) { + next.setValue(next.getValue() - 1); + } else { + if (key instanceof SchedulerMap.Callback) { + ((Callback) key).trigger(); + } + iterator.remove(); + } + } + } + } + + @Override + public Iterator> iterator() { + return map.entrySet().iterator(); + } + + public interface Callback { + void trigger(); + } + + public interface Freezable extends Callback { + boolean isFrozen(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/TickLooper.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/TickLooper.java index 54abfc1db3..553a20e123 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/TickLooper.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/TickLooper.java @@ -1,61 +1,53 @@ package de.dafuqs.spectrum.blocks.pastel_network; -import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.*; public final class TickLooper { - - private int currentTick; - private int maxTick; - - public TickLooper(int maxTick) { - this.maxTick = maxTick; - } - - public void tick() { - currentTick++; - } - - public boolean reachedCap() { - return currentTick >= maxTick; - } - - public boolean checkCap() { - boolean cap = this.reachedCap(); - if (cap) { - this.reset(); - } - return cap; - } - - public void reset() { - currentTick = 0; - } - - public int getTick() { - return currentTick; - } - - public int getMaxTick() { - return maxTick; - } - - public float getProgress() { - return (float) currentTick / (float) maxTick; - } - - @Override - public String toString() { - return "TickLooper (" + currentTick + "/" + maxTick + ")"; - } - - public void readNbt(NbtCompound nbt) { - maxTick = nbt.getInt("max"); - currentTick = nbt.getInt("current"); - } - - public void writeNbt(NbtCompound nbt) { - nbt.putInt("max", maxTick); - nbt.putInt("current", currentTick); - } - + + private int currentTick; + private int maxTick; + + public TickLooper(int maxTick) { + this.maxTick = maxTick; + } + + public void tick() { + currentTick++; + } + + public boolean reachedCap() { + return currentTick >= maxTick; + } + + public void reset() { + currentTick = 0; + } + + public int getTick() { + return currentTick; + } + + public int getMaxTick() { + return maxTick; + } + + public float getProgress() { + return (float) currentTick / (float) maxTick; + } + + @Override + public String toString() { + return "TickLooper (" + currentTick + "/" + maxTick + ")"; + } + + public void readNbt(NbtCompound nbt) { + maxTick = nbt.getInt("max"); + currentTick = nbt.getInt("current"); + } + + public void writeNbt(NbtCompound nbt) { + nbt.putInt("max", maxTick); + nbt.putInt("current", currentTick); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ClientPastelNetworkManager.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ClientPastelNetworkManager.java new file mode 100644 index 0000000000..e48d40fcd7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ClientPastelNetworkManager.java @@ -0,0 +1,64 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class ClientPastelNetworkManager implements PastelNetworkManager { + + protected List networks = new ArrayList<>(); + + public void remove(PastelNetwork network) { + this.networks.remove(network); + } + + public @Nullable PastelNetwork getNetwork(UUID uuid) { + for (PastelNetwork network : this.networks) { + if (network.getUUID() == uuid) { + return network; + } + } + return null; + } + + public List getNetworks() { + return networks; + } + + public PastelNetwork joinNetwork(PastelNodeBlockEntity node, UUID uuid) { + PastelNetwork foundNetwork = null; + //noinspection ForLoopReplaceableByForEach + for (int i = 0; i < this.networks.size(); i++) { + PastelNetwork network = this.networks.get(i); + if (network.getUUID().equals(uuid)) { + network.addNode(node); + foundNetwork = network; + } else { + if (network.removeNode(node, NodeRemovalReason.MOVED)) { + i--; + } + // network empty => delete + if (!network.hasNodes()) { + remove(network); + } + } + } + if (foundNetwork != null) { + return foundNetwork; + } + + PastelNetwork network = createNetwork(node.getWorld(), uuid); + network.addNode(node); + return network; + } + + @Override + public PastelNetwork createNetwork(World world, UUID uuid) { + PastelNetwork network = new PastelNetwork(world, uuid); + this.networks.add(network); + return network; + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/NodeRemovalReason.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/NodeRemovalReason.java new file mode 100644 index 0000000000..f80f4bbcb7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/NodeRemovalReason.java @@ -0,0 +1,7 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +public enum NodeRemovalReason { + UNLOADED, + BROKEN, + MOVED +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetwork.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetwork.java new file mode 100644 index 0000000000..7aa54c82ed --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetwork.java @@ -0,0 +1,195 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import de.dafuqs.spectrum.helpers.ColorHelper; +import net.minecraft.block.entity.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; +import org.jgrapht.*; +import org.jgrapht.graph.*; + +import java.util.*; + +public class PastelNetwork { + + protected Map> nodes = new HashMap<>(); + protected @Nullable Graph graph; + protected World world; + protected UUID uuid; + protected SchedulerMap transmissions = new SchedulerMap<>(); + + + public PastelNetwork(World world, @Nullable UUID uuid) { + this.world = world; + this.uuid = uuid == null ? UUID.randomUUID() : uuid; + for (PastelNodeType type : PastelNodeType.values()) { + this.nodes.put(type, new HashSet<>()); + } + } + + public World getWorld() { + return this.world; + } + + public Graph getGraph() { + if (this.graph == null) { + this.graph = buildGraph(this); + } + return this.graph; + } + + private static @NotNull SimpleGraph buildGraph(@NotNull PastelNetwork network) { + SimpleGraph g = new SimpleGraph<>(DefaultEdge.class); + + for (PastelNodeBlockEntity node : network.getAllNodes()) { + g.addVertex(node); + } + + for (PastelNodeBlockEntity node : network.getAllNodes()) { + for (PastelNodeBlockEntity node2 : network.getAllNodes()) { + if (node == node2) { + continue; + } + if (node.canConnect(node2)) { + g.addEdge(node, node2); + } + } + } + + return g; + } + + public void addNode(PastelNodeBlockEntity node) { + if (!this.nodes.get(node.getNodeType()).add(node)) { + return; + } + + // calculate connections for new node + if (this.graph != null) { + this.graph.addVertex(node); + for (PastelNodeBlockEntity existingNode : this.getAllNodes()) { + if (node == existingNode) { + continue; + } + if (node.canConnect(existingNode)) { + this.graph.addEdge(node, existingNode); + } + } + } + } + + public boolean removeNode(PastelNodeBlockEntity node, NodeRemovalReason reason) { + boolean hadNode = this.nodes.get(node.getNodeType()).remove(node); + if (!hadNode) { + return false; + } + + if (this.graph != null) { + // delete the now removed node from this networks graph + this.graph.removeVertex(node); + } + + if (!this.hasNodes()) { + Pastel.getInstance(this.world.isClient).remove(this); + } + return true; + } + + public boolean hasNodes() { + for (Set nodeList : this.nodes.values()) { + if (!nodeList.isEmpty()) { + return true; + } + } + return false; + } + + public Set getNodes(PastelNodeType type) { + return this.nodes.get(type); + } + + public Map> getNodes() { + return this.nodes; + } + + public int getNodeCount() { + int nodes = 0; + for (Set nodeList : this.nodes.values()) { + nodes += nodeList.size(); + } + return nodes; + } + + public List getAllNodes() { + List nodes = new ArrayList<>(); + for (Map.Entry> nodeList : this.nodes.entrySet()) { + nodes.addAll(this.nodes.get(nodeList.getKey())); + } + return nodes; + } + + public boolean canConnect(PastelNodeBlockEntity newNode) { + if (newNode.getWorld() != this.world) { + return false; + } + + for (Set nodeList : this.nodes.values()) { + for (PastelNodeBlockEntity currentNode : nodeList) { + if (currentNode.canConnect(newNode)) { + return true; + } + } + } + return false; + } + + public void tick() { + transmissions.tick(); + } + + public UUID getUUID() { + return this.uuid; + } + + public void addTransmission(PastelTransmission transmission, int travelTime) { + transmission.setNetwork(this); + this.transmissions.put(transmission, travelTime); + } + + public int getColor() { + return ColorHelper.getColorFromInt(this.uuid.hashCode()); + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(this.uuid.toString()); + for (PastelNodeType type : PastelNodeType.values()) { + builder.append("-").append(getNodes(type).size()); + } + return builder.toString(); + } + + public String getNodeDebugText() { + return "Prov: " + + getNodes(PastelNodeType.PROVIDER).size() + + " - Send: " + + getNodes(PastelNodeType.SENDER).size() + + " - Gath: " + + getNodes(PastelNodeType.GATHER).size() + + " - Stor: " + + getNodes(PastelNodeType.STORAGE).size() + + " - Conn: " + + getNodes(PastelNodeType.CONNECTION).size(); + } + + public PastelNodeBlockEntity getNodeAt(BlockPos blockPos) { + BlockEntity blockEntity = this.world.getBlockEntity(blockPos); + if (blockEntity instanceof PastelNodeBlockEntity pastelNodeBlockEntity) { + return pastelNodeBlockEntity; + } + return null; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetworkManager.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetworkManager.java new file mode 100644 index 0000000000..537f66763b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelNetworkManager.java @@ -0,0 +1,19 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public interface PastelNetworkManager { + + PastelNetwork createNetwork(World world, UUID uuid); + + PastelNetwork joinNetwork(PastelNodeBlockEntity node, @Nullable UUID uuid); + + void remove(PastelNetwork network); + + @Nullable PastelNetwork getNetwork(UUID uuid); + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelTransmission.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelTransmission.java new file mode 100644 index 0000000000..ef41d88e63 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/PastelTransmission.java @@ -0,0 +1,137 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import net.fabricmc.fabric.api.transfer.v1.item.*; +import net.fabricmc.fabric.api.transfer.v1.storage.*; +import net.fabricmc.fabric.api.transfer.v1.transaction.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class PastelTransmission implements SchedulerMap.Callback { + + private @Nullable PastelNetwork network; + private final List nodePositions; + private final ItemVariant variant; + private final int amount; + + public PastelTransmission(List nodePositions, ItemVariant variant, int amount) { + this.nodePositions = nodePositions; + this.variant = variant; + this.amount = amount; + } + + public void setNetwork(@NotNull PastelNetwork network) { + this.network = network; + } + + public @Nullable PastelNetwork getNetwork() { + return this.network; + } + + public List getNodePositions() { + return nodePositions; + } + + public ItemVariant getVariant() { + return this.variant; + } + + public long getAmount() { + return this.amount; + } + + public BlockPos getStartPos() { + return this.nodePositions.get(0); + } + + @Override + public void trigger() { + arriveAtDestination(); + } + + private void arriveAtDestination() { + if (nodePositions.size() == 0) { + return; + } + + BlockPos destinationPos = nodePositions.get(nodePositions.size() - 1); + PastelNodeBlockEntity destinationNode = this.network.getNodeAt(destinationPos); + World world = this.network.getWorld(); + if (!world.isClient) { + int inserted = 0; + if (destinationNode != null) { + Storage destinationStorage = destinationNode.getConnectedStorage(); + if (destinationStorage != null) { + try (Transaction transaction = Transaction.openOuter()) { + if (destinationStorage.supportsInsertion()) { + inserted = (int) destinationStorage.insert(variant, amount, transaction); + destinationNode.addItemCountUnderway(-inserted); + transaction.commit(); + } + } + } + } + if (inserted != amount) { + ItemScatterer.spawn(world, destinationPos.getX() + 0.5, destinationPos.getY() + 0.5, destinationPos.getZ() + 0.5, variant.toStack(amount - inserted)); + } + } + } + + public NbtCompound toNbt() { + NbtCompound compound = new NbtCompound(); + compound.put("Variant", this.variant.toNbt()); + compound.putInt("Amount", this.amount); + NbtList posList = new NbtList(); + for (BlockPos pos : nodePositions) { + NbtCompound posCompound = new NbtCompound(); + posCompound.putInt("X", pos.getX()); + posCompound.putInt("Y", pos.getY()); + posCompound.putInt("Z", pos.getZ()); + posList.add(posCompound); + } + compound.put("NodePositions", posList); + return compound; + } + + public static PastelTransmission fromNbt(NbtCompound nbt) { + ItemVariant variant = ItemVariant.fromNbt(nbt.getCompound("Variant")); + int amount = nbt.getInt("Amount"); + + List posList = new ArrayList<>(); + for (NbtElement e : nbt.getList("NodePositions", NbtElement.COMPOUND_TYPE)) { + NbtCompound compound = (NbtCompound) e; + BlockPos blockPos = new BlockPos(compound.getInt("X"), compound.getInt("Y"), compound.getInt("Z")); + posList.add(blockPos); + } + + return new PastelTransmission(posList, variant, amount); + } + + public static void writeToBuf(PacketByteBuf buf, PastelTransmission transfer) { + buf.writeInt(transfer.nodePositions.size()); + for (BlockPos pos : transfer.nodePositions) { + buf.writeBlockPos(pos); + } + transfer.variant.toPacket(buf); + buf.writeInt(transfer.amount); + } + + public static PastelTransmission fromPacket(PacketByteBuf buf) { + int posCount = buf.readInt(); + List posList = new ArrayList<>(); + for (int i = 0; i < posCount; i++) { + posList.add(buf.readBlockPos()); + } + ItemVariant variant = ItemVariant.fromPacket(buf); + int amount = buf.readInt(); + return new PastelTransmission(posList, variant, amount); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetwork.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetwork.java new file mode 100644 index 0000000000..71641ad25f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetwork.java @@ -0,0 +1,152 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import net.minecraft.nbt.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; +import org.jgrapht.*; +import org.jgrapht.alg.connectivity.*; +import org.jgrapht.graph.*; + +import java.util.*; + +public class ServerPastelNetwork extends PastelNetwork { + + protected SchedulerMap transmissions = new SchedulerMap<>(); + protected final ServerPastelTransmissionLogic serverPastelTransmissionLogic; + + public ServerPastelNetwork(World world, @Nullable UUID uuid) { + super(world, uuid); + this.serverPastelTransmissionLogic = new ServerPastelTransmissionLogic(this); + } + + public void checkNetworkMergesForNewNode(PastelNodeBlockEntity newNode) { + int biggestNetworkNodeCount = this.getNodeCount(); + PastelNetwork biggestNetwork = this; + List networksToMerge = new ArrayList<>(); + + for (PastelNetwork currentNetwork : Pastel.getServerInstance().networks) { + if (currentNetwork == this) { + continue; + } + if (currentNetwork.canConnect(newNode)) { + if (currentNetwork.getNodeCount() > biggestNetworkNodeCount) { + networksToMerge.add(biggestNetwork); + biggestNetwork = currentNetwork; + } else { + networksToMerge.add(currentNetwork); + } + break; + } + } + + if (networksToMerge.size() == 0) { + return; + } + + for (PastelNetwork networkToMerge : networksToMerge) { + ((ServerPastelNetwork) biggestNetwork).incorporate(networkToMerge); + } + } + + public void incorporate(PastelNetwork networkToIncorporate) { + for (Map.Entry> nodesToIncorporate : networkToIncorporate.getNodes().entrySet()) { + PastelNodeType type = nodesToIncorporate.getKey(); + for (PastelNodeBlockEntity nodeToIncorporate : nodesToIncorporate.getValue()) { + this.nodes.get(type).add(nodeToIncorporate); + nodeToIncorporate.setNetwork(this); + } + } + this.graph = null; + serverPastelTransmissionLogic.invalidateCache(); + Pastel.getInstance(networkToIncorporate.world.isClient).remove(networkToIncorporate); + } + + @Override + public void addNode(PastelNodeBlockEntity node) { + super.addNode(node); + serverPastelTransmissionLogic.invalidateCache(); + } + + public boolean removeNode(PastelNodeBlockEntity node, NodeRemovalReason reason) { + boolean hadNode = this.nodes.get(node.getNodeType()).remove(node); + if (!hadNode) { + return false; + } + + if (hasNodes()) { + if (this.graph != null) { + // delete the now removed node from this networks graph + this.graph.removeVertex(node); + serverPastelTransmissionLogic.invalidateCache(); + } + Graph graph = getGraph(); + + // check if the removed node split the network into subnetworks + ConnectivityInspector connectivityInspector = new ConnectivityInspector<>(graph); + List> connectedSets = connectivityInspector.connectedSets(); + if (connectedSets.size() != 1) { + for (int i = 1; i < connectedSets.size(); i++) { + Set disconnectedNodes = connectedSets.get(i); + PastelNetwork newNetwork = Pastel.getServerInstance().createNetwork(this.world, null); + for (PastelNodeBlockEntity disconnectedNode : disconnectedNodes) { + this.nodes.get(disconnectedNode.getNodeType()).remove(disconnectedNode); + getGraph().removeVertex(disconnectedNode); + newNetwork.addNode(disconnectedNode); + disconnectedNode.setNetwork(newNetwork); + } + } + } + return true; + } else if (reason == NodeRemovalReason.BROKEN || reason == NodeRemovalReason.MOVED) { + Pastel.getServerInstance().remove(this); + } + return false; + } + + public void tick() { + this.transmissions.tick(); + this.serverPastelTransmissionLogic.tick(); + } + + public void addTransmission(PastelTransmission transmission, int travelTime) { + transmission.setNetwork(this); + this.transmissions.put(transmission, travelTime); + } + + public NbtCompound toNbt() { + NbtCompound compound = new NbtCompound(); + compound.putUuid("UUID", this.uuid); + compound.putString("World", this.world.getRegistryKey().getValue().toString()); + + NbtList transmissionList = new NbtList(); + for (Map.Entry transmission : this.transmissions) { + NbtCompound transmissionCompound = new NbtCompound(); + transmissionCompound.putInt("Delay", transmission.getValue()); + transmissionCompound.put("Transmission", transmission.getKey().toNbt()); + transmissionList.add(transmissionCompound); + } + compound.put("Transmissions", transmissionList); + + return compound; + } + + public static ServerPastelNetwork fromNbt(NbtCompound compound) { + World world = SpectrumCommon.minecraftServer.getWorld(RegistryKey.of(Registry.WORLD_KEY, Identifier.tryParse(compound.getString("World")))); + UUID uuid = compound.getUuid("UUID"); + ServerPastelNetwork network = new ServerPastelNetwork(world, uuid); + + for (NbtElement e : compound.getList("Transmissions", NbtElement.COMPOUND_TYPE)) { + NbtCompound t = (NbtCompound) e; + int delay = t.getInt("Delay"); + PastelTransmission transmission = PastelTransmission.fromNbt(t.getCompound("Transmission")); + network.addTransmission(transmission, delay); + } + return network; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetworkManager.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetworkManager.java new file mode 100644 index 0000000000..fe179cdc9f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelNetworkManager.java @@ -0,0 +1,103 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import net.minecraft.nbt.*; +import net.minecraft.server.world.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +// Persisted together with the overworld +// resetting the overworld will also reset all networks +public class ServerPastelNetworkManager extends PersistentState implements PastelNetworkManager { + + private static final String NAME = "spectrum_pastel_network_manager"; + + protected List networks = new ArrayList<>(); + + public ServerPastelNetworkManager() { + super(); + } + + @Override + public boolean isDirty() { + return true; + } + + public static ServerPastelNetworkManager get(ServerWorld world) { + return world.getPersistentStateManager().getOrCreate(ServerPastelNetworkManager::fromNbt, ServerPastelNetworkManager::new, NAME); + } + + @Override + public NbtCompound writeNbt(NbtCompound tag) { + NbtList networkList = new NbtList(); + for (ServerPastelNetwork network : this.networks) { + NbtCompound compound = network.toNbt(); + networkList.add(compound); + } + tag.put("Networks", networkList); + return tag; + } + + public static ServerPastelNetworkManager fromNbt(NbtCompound nbt) { + ServerPastelNetworkManager manager = new ServerPastelNetworkManager(); + for (NbtElement element : nbt.getList("Networks", NbtElement.COMPOUND_TYPE)) { + NbtCompound compound = (NbtCompound) element; + manager.networks.add(ServerPastelNetwork.fromNbt(compound)); + } + return manager; + } + + public void remove(PastelNetwork network) { + this.networks.remove(network); + } + + public void tick() { + for (ServerPastelNetwork network : this.networks) { + network.tick(); + } + } + + public @Nullable PastelNetwork getNetwork(UUID uuid) { + for (PastelNetwork network : this.networks) { + if (network.getUUID() == uuid) { + return network; + } + } + return null; + } + + public PastelNetwork joinNetwork(PastelNodeBlockEntity node, @Nullable UUID uuid) { + if (uuid == null) { + for (PastelNetwork network : this.networks) { + if (network.canConnect(node)) { + network.addNode(node); + ((ServerPastelNetwork) network).checkNetworkMergesForNewNode(node); + return network; + } + } + } else { + //noinspection ForLoopReplaceableByForEach + for (int i = 0; i < this.networks.size(); i++) { + PastelNetwork network = this.networks.get(i); + if (network.getUUID().equals(uuid)) { + network.addNode(node); + return network; + } + } + } + + PastelNetwork network = createNetwork(node.getWorld(), uuid); + network.addNode(node); + return network; + } + + @Override + public PastelNetwork createNetwork(World world, @Nullable UUID uuid) { + ServerPastelNetwork network = new ServerPastelNetwork(world, uuid); + this.networks.add(network); + return network; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelTransmissionLogic.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelTransmissionLogic.java new file mode 100644 index 0000000000..f43f3c156e --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/network/ServerPastelTransmissionLogic.java @@ -0,0 +1,165 @@ +package de.dafuqs.spectrum.blocks.pastel_network.network; + +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import de.dafuqs.spectrum.networking.*; +import net.fabricmc.fabric.api.transfer.v1.item.*; +import net.fabricmc.fabric.api.transfer.v1.storage.*; +import net.fabricmc.fabric.api.transfer.v1.storage.base.*; +import net.fabricmc.fabric.api.transfer.v1.transaction.*; +import net.minecraft.util.math.*; +import org.jetbrains.annotations.*; +import org.jgrapht.*; +import org.jgrapht.alg.interfaces.*; +import org.jgrapht.alg.shortestpath.*; +import org.jgrapht.graph.*; + +import java.util.*; + +public class ServerPastelTransmissionLogic { + + private enum TransferMode { + PUSH, + PULL, + PUSH_PULL + } + + public static final int MAX_TRANSFER_AMOUNT = 1; + public static final int START_TRANSFER_EVERY_X_TICKS = 10; + public static final int TRANSFER_TICKS_PER_NODE = 30; + + private final TickLooper tickLooper = new TickLooper(START_TRANSFER_EVERY_X_TICKS); + private final ServerPastelNetwork network; + private DijkstraShortestPath dijkstra; + private Map>> pathCache = new HashMap<>(); + + + public ServerPastelTransmissionLogic(ServerPastelNetwork network) { + this.network = network; + } + + public void invalidateCache() { + this.dijkstra = null; + this.pathCache = new HashMap<>(); + } + + public @Nullable GraphPath getPath(Graph graph, PastelNodeBlockEntity source, PastelNodeBlockEntity destination) { + if (this.dijkstra == null) { + this.dijkstra = new DijkstraShortestPath<>(graph); + } + + // cache hit? + Map> e = pathCache.getOrDefault(source, null); + if (e != null) { + if (e.containsKey(destination)) { + return e.get(destination); + } + } + + // calculate and cache + ShortestPathAlgorithm.SingleSourcePaths paths = dijkstra.getPaths(source); + GraphPath path = paths.getPath(destination); + if (pathCache.containsKey(source)) { + pathCache.get(source).put(destination, path); + } else { + Map> newMap = new HashMap<>(); + newMap.put(destination, path); + pathCache.put(source, newMap); + } + + return path; + } + + public boolean tick() { + tickLooper.tick(); + if (!tickLooper.reachedCap()) { + return false; + } + tickLooper.reset(); + + transferBetween(PastelNodeType.SENDER, PastelNodeType.GATHER, TransferMode.PUSH_PULL); + transferBetween(PastelNodeType.PROVIDER, PastelNodeType.GATHER, TransferMode.PULL); + transferBetween(PastelNodeType.STORAGE, PastelNodeType.GATHER, TransferMode.PULL); + transferBetween(PastelNodeType.SENDER, PastelNodeType.STORAGE, TransferMode.PUSH); + + return false; + } + + private void transferBetween(PastelNodeType sourceType, PastelNodeType destinationType, TransferMode transferMode) { + for (PastelNodeBlockEntity sourceNode : network.getNodes(sourceType)) { + if (!sourceNode.canTransfer()) { + continue; + } + + Storage sourceStorage = sourceNode.getConnectedStorage(); + if (sourceStorage != null && sourceStorage.supportsExtraction()) { + tryTransferToType(sourceNode, sourceStorage, destinationType, transferMode); + } + } + } + + private void tryTransferToType(PastelNodeBlockEntity sourceNode, Storage sourceStorage, PastelNodeType type, TransferMode transferMode) { + for (PastelNodeBlockEntity destinationNode : this.network.getNodes(type)) { + if (!destinationNode.canTransfer()) { + continue; + } + + Storage destinationStorage = destinationNode.getConnectedStorage(); + if (destinationStorage != null && destinationStorage.supportsInsertion()) { + boolean success = transferBetween(sourceNode, sourceStorage, destinationNode, destinationStorage, transferMode); + if (success && transferMode != TransferMode.PULL) { + return; + } + } + } + } + + private boolean transferBetween(PastelNodeBlockEntity sourceNode, Storage sourceStorage, PastelNodeBlockEntity destinationNode, Storage destinationStorage, TransferMode transferMode) { + try (Transaction transaction = Transaction.openOuter()) { + ResourceAmount resourceAmount = StorageUtil.findExtractableContent(sourceStorage, sourceNode.getTransferFilterTo(destinationNode), transaction); + if (resourceAmount != null) { + int validAmount = (int) Math.min(resourceAmount.amount(), MAX_TRANSFER_AMOUNT); + validAmount = (int) destinationStorage.simulateInsert(resourceAmount.resource(), validAmount + destinationNode.getItemCountUnderway(), transaction); + validAmount = validAmount - destinationNode.getItemCountUnderway(); // prevention to not overfill the container (send more transfers when the existing ones would fill it already) + if (validAmount > 0) { + sourceStorage.extract(resourceAmount.resource(), validAmount, transaction); + Optional optionalTransmission = buildTransfer(sourceNode, destinationNode, resourceAmount.resource(), validAmount); + if (optionalTransmission.isPresent()) { + PastelTransmission transmission = optionalTransmission.get(); + int verticesCount = transmission.getNodePositions().size() - 1; + int travelTime = TRANSFER_TICKS_PER_NODE * verticesCount; + this.network.addTransmission(transmission, travelTime); + SpectrumS2CPacketSender.sendPastelTransmission(network, travelTime, transmission); + if (transferMode == TransferMode.PULL) { + destinationNode.markTransferred(); + } else if (transferMode == TransferMode.PUSH) { + sourceNode.markTransferred(); + } else { + destinationNode.markTransferred(); + sourceNode.markTransferred(); + } + + destinationNode.addItemCountUnderway(validAmount); + transaction.commit(); + return true; + } + } + } + transaction.abort(); + } + return false; + } + + public Optional buildTransfer(PastelNodeBlockEntity source, PastelNodeBlockEntity destination, ItemVariant variant, int amount) { + GraphPath graphPath = getPath(network.getGraph(), source, destination); + if (graphPath != null) { + List vertexPositions = new ArrayList<>(); + for (PastelNodeBlockEntity vertex : graphPath.getVertexList()) { + vertexPositions.add(vertex.getPos()); + } + return Optional.of(new PastelTransmission(vertexPositions, variant, amount)); + } + return Optional.empty(); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkConnectionNode.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkConnectionNode.java deleted file mode 100644 index 09f29d95f7..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkConnectionNode.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - -public class PastelNetworkConnectionNode extends PastelNetworkNodeBlockEntity { - - public PastelNetworkConnectionNode(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.CONNECTION_NODE, blockPos, blockState); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkConnectionNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkConnectionNodeBlockEntity.java deleted file mode 100644 index bef44ed706..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkConnectionNodeBlockEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - -public class PastelNetworkConnectionNodeBlockEntity extends PastelNetworkNodeBlockEntity { - - public PastelNetworkConnectionNodeBlockEntity(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.CONNECTION_NODE, blockPos, blockState); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlock.java deleted file mode 100644 index 03b5c474bf..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlock.java +++ /dev/null @@ -1,155 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import net.minecraft.block.*; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.DirectionProperty; -import net.minecraft.state.property.Properties; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Random; - -public class PastelNetworkNodeBlock extends FacingBlock implements BlockEntityProvider { - - public static final DirectionProperty FACING = Properties.FACING; - - protected static final VoxelShape SHAPE_UP = Block.createCuboidShape(4.0D, 0.0D, 4.0D, 12.0D, 8.0D, 12.0D); - protected static final VoxelShape SHAPE_DOWN = Block.createCuboidShape(4.0D, 8.0D, 4.0D, 12.0D, 16.0D, 12.0D); - protected static final VoxelShape SHAPE_NORTH = Block.createCuboidShape(4.0D, 4.0D, 8.0D, 12.0D, 12.0D, 16.0D); - protected static final VoxelShape SHAPE_SOUTH = Block.createCuboidShape(4.0D, 4.0D, 0.0D, 12.0D, 12.0D, 8.0D); - protected static final VoxelShape SHAPE_EAST = Block.createCuboidShape(0.0D, 4.0D, 4.0D, 8.0D, 12.0D, 12.0D); - protected static final VoxelShape SHAPE_WEST = Block.createCuboidShape(8.0D, 4.0D, 4.0D, 16.0D, 12.0D, 12.0D); - protected static final Text rangeTooltipText = new TranslatableText("block.spectrum.pastel_network_nodes.tooltip.range").formatted(Formatting.GRAY); - protected final Text nodeTypeTooltipText; - - public PastelNetworkNodeBlock(Settings settings, String tooltipName) { - super(settings); - this.nodeTypeTooltipText = new TranslatableText(tooltipName); - } - - @Nullable - protected static BlockEntityTicker checkType(BlockEntityType givenType, BlockEntityType expectedType, BlockEntityTicker ticker) { - return expectedType == givenType ? (BlockEntityTicker) ticker : null; - } - - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - public boolean onSyncedBlockEvent(BlockState state, World world, BlockPos pos, int type, int data) { - super.onSyncedBlockEvent(state, world, pos, type, data); - BlockEntity blockEntity = world.getBlockEntity(pos); - return blockEntity != null && blockEntity.onSyncedBlockEvent(type, data); - } - - @Nullable - public NamedScreenHandlerFactory createScreenHandlerFactory(BlockState state, World world, BlockPos pos) { - BlockEntity blockEntity = world.getBlockEntity(pos); - return blockEntity instanceof NamedScreenHandlerFactory ? (NamedScreenHandlerFactory) blockEntity : null; - } - - @Override - public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { - super.randomDisplayTick(state, world, pos, random); - } - - @Override - public BlockState getPlacementState(ItemPlacementContext ctx) { - Direction direction = ctx.getSide(); - BlockState blockState = ctx.getWorld().getBlockState(ctx.getBlockPos().offset(direction.getOpposite())); - return blockState.isOf(this) && blockState.get(FACING) == direction ? this.getDefaultState().with(FACING, direction.getOpposite()) : this.getDefaultState().with(FACING, direction); - } - - @Override - protected void appendProperties(StateManager.Builder builder) { - builder.add(FACING); - } - - @Override - public void onPlaced(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) { - super.onPlaced(world, pos, state, placer, itemStack); - PastelNetworkNodeBlockEntity pastelNetworkNodeBlockEntity = getBlockEntity(world, pos); - if (pastelNetworkNodeBlockEntity != null) { - Direction facingDirection = state.get(FACING); - pastelNetworkNodeBlockEntity.initialize(world, pos, facingDirection); - } - } - - @Override - public void onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { - super.onBreak(world, pos, state, player); - PastelNetworkNodeBlockEntity pastelNetworkNodeBlockEntity = getBlockEntity(world, pos); - if (pastelNetworkNodeBlockEntity != null) { - pastelNetworkNodeBlockEntity.remove(); - } - } - - @Override - public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { - super.appendTooltip(stack, world, tooltip, options); - tooltip.add(nodeTypeTooltipText); - tooltip.add(rangeTooltipText); - } - - @Override - public void neighborUpdate(BlockState state, World world, BlockPos pos, Block block, BlockPos fromPos, boolean notify) { - super.neighborUpdate(state, world, pos, block, fromPos, notify); - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - switch (state.get(FACING)) { - case UP -> { - return SHAPE_UP; - } - case DOWN -> { - return SHAPE_DOWN; - } - case NORTH -> { - return SHAPE_NORTH; - } - case EAST -> { - return SHAPE_EAST; - } - case SOUTH -> { - return SHAPE_SOUTH; - } - default -> { - return SHAPE_WEST; - } - } - } - - public @Nullable PastelNetworkNodeBlockEntity getBlockEntity(World world, BlockPos blockPos) { - BlockEntity blockEntity = world.getBlockEntity(blockPos); - if (blockEntity instanceof PastelNetworkNodeBlockEntity pastelNetworkNodeBlockEntity) { - return pastelNetworkNodeBlockEntity; - } - return null; - } - - @Nullable - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - // TODO - return new PastelNetworkConnectionNodeBlockEntity(pos, state); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlockEntity.java deleted file mode 100644 index 37a23f1c35..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlockEntity.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.blocks.pastel_network.PastelNetwork; -import de.dafuqs.spectrum.blocks.pastel_network.SchedulerMap; -import de.dafuqs.spectrum.blocks.pastel_network.TickLooper; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -import java.util.HashSet; - -public abstract class PastelNetworkNodeBlockEntity extends BlockEntity { - - public static int RANGE = 16; - final HashSet receivers = new HashSet<>(); - private final TickLooper tickTimer = new TickLooper(40); - private final SchedulerMap particleCooldowns = new SchedulerMap<>(); - private final HashSet senders = new HashSet<>(); - protected PastelNetwork network; - protected Inventory connectedInventory; - - public PastelNetworkNodeBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { - super(blockEntityType, blockPos, blockState); - } - - public void tick() { - tickTimer.tick(); - if (world.isClient) { - particleCooldowns.tick(); - } - } - - public boolean canSee(PastelNetworkNodeBlockEntity node) { - return node.pos.isWithinDistance(this.pos, RANGE); - } - - public void transfer(ItemStack itemStack, PastelNetworkNodeBlockEntity node) { - - } - - public void updateConnectedInventory(World world, BlockPos blockPos, Direction facingDirection) { - BlockEntity connectedBlockEntity = world.getBlockEntity(blockPos.offset(facingDirection.getOpposite())); - if (connectedBlockEntity instanceof Inventory connectedInventory) { - this.connectedInventory = connectedInventory; - } - } - - public void initialize(World world, BlockPos pos, Direction facingDirection) { - tickTimer.checkCap(); - updateConnectedInventory(world, pos, facingDirection); - if (this.network != null) { - this.network = PastelNetwork.getNetworkForNewNode(this); - } - - int range = this.getRange(); - int range2 = range / 2; - for (int xOffset = -range; xOffset <= range; xOffset++) { - for (int yOffset = -range2; yOffset <= 0; yOffset++) { - for (int zOffset = -range; zOffset <= range; zOffset++) { - BlockEntity te = world.getBlockEntity(pos.add(xOffset, yOffset, zOffset)); - if (this.canTransferTo(te)) { - this.receivers.add(te.getPos()); - } - } - } - } - } - - private boolean canTransferTo(BlockEntity blockEntity) { - return blockEntity instanceof PastelNetworkNodeBlockEntity; - } - - public void remove() { - if (this.network != null) { - this.network.removeNode(this); - } - } - - public int getRange() { - return 16; - } - - protected final boolean queueParticle(BlockPos blockPos) { - if (!particleCooldowns.containsKey(blockPos)) { - particleCooldowns.put(blockPos, 3); - return true; - } - return false; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlockEntityRenderer.java deleted file mode 100644 index 9a5ca24212..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkNodeBlockEntityRenderer.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; - -@Environment(EnvType.CLIENT) -public class PastelNetworkNodeBlockEntityRenderer implements BlockEntityRenderer { - - public PastelNetworkNodeBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { - super(); - } - - @Override - public void render(PastelNetworkNodeBlockEntity entity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay) { - int startColor = 0xff00ffff; - int endColor = 0xffff00ff; - - for (BlockPos pos : entity.receivers) { - var offset = Vec3d.ofCenter(pos).subtract(Vec3d.of(entity.getPos())); - - vertexConsumerProvider.getBuffer(RenderLayer.LINES) - .vertex(matrixStack.peek().getPositionMatrix(), .5f, .5f, .5f) - .color(startColor) - .normal(1, 0, 1) - .next(); - - vertexConsumerProvider.getBuffer(RenderLayer.LINES) - .vertex(matrixStack.peek().getPositionMatrix(), (float) offset.x, (float) offset.y, (float) offset.z) - .color(endColor) - .normal(1, 0, 1) - .next(); - } - - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkProviderNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkProviderNodeBlockEntity.java deleted file mode 100644 index ae361ea107..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkProviderNodeBlockEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - -public class PastelNetworkProviderNodeBlockEntity extends PastelNetworkNodeBlockEntity { - - public PastelNetworkProviderNodeBlockEntity(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.PROVIDER_NODE, blockPos, blockState); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkPullerNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkPullerNodeBlockEntity.java deleted file mode 100644 index 25e0d02287..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkPullerNodeBlockEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - -public class PastelNetworkPullerNodeBlockEntity extends PastelNetworkNodeBlockEntity { - - public PastelNetworkPullerNodeBlockEntity(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.PULLER_NODE, blockPos, blockState); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkPusherNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkPusherNodeBlockEntity.java deleted file mode 100644 index 2549db0a2f..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkPusherNodeBlockEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - -public class PastelNetworkPusherNodeBlockEntity extends PastelNetworkNodeBlockEntity { - - public PastelNetworkPusherNodeBlockEntity(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.PUSHER_NODE, blockPos, blockState); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkStorageNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkStorageNodeBlockEntity.java deleted file mode 100644 index 9b208d8a87..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNetworkStorageNodeBlockEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package de.dafuqs.spectrum.blocks.pastel_network.nodes; - -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - -public class PastelNetworkStorageNodeBlockEntity extends PastelNetworkNodeBlockEntity { - - public PastelNetworkStorageNodeBlockEntity(BlockPos blockPos, BlockState blockState) { - super(SpectrumBlockEntities.STORAGE_NODE, blockPos, blockState); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java new file mode 100644 index 0000000000..47d131ca91 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlock.java @@ -0,0 +1,170 @@ +package de.dafuqs.spectrum.blocks.pastel_network.nodes; + +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.state.*; +import net.minecraft.state.property.Properties; +import net.minecraft.state.property.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class PastelNodeBlock extends FacingBlock implements BlockEntityProvider { + + public static final DirectionProperty FACING = Properties.FACING; + public static final Map SHAPES = new HashMap<>() {{ + put(Direction.UP, Block.createCuboidShape(4.0D, 0.0D, 4.0D, 12.0D, 8.0D, 12.0D)); + put(Direction.DOWN, Block.createCuboidShape(4.0D, 8.0D, 4.0D, 12.0D, 16.0D, 12.0D)); + put(Direction.NORTH, Block.createCuboidShape(4.0D, 4.0D, 8.0D, 12.0D, 12.0D, 16.0D)); + put(Direction.SOUTH, Block.createCuboidShape(4.0D, 4.0D, 0.0D, 12.0D, 12.0D, 8.0D)); + put(Direction.EAST, Block.createCuboidShape(0.0D, 4.0D, 4.0D, 8.0D, 12.0D, 12.0D)); + put(Direction.WEST, Block.createCuboidShape(8.0D, 4.0D, 4.0D, 16.0D, 12.0D, 12.0D)); + }}; + + protected final PastelNodeType pastelNodeType; + + public PastelNodeBlock(Settings settings, PastelNodeType pastelNodeType) { + super(settings); + this.pastelNodeType = pastelNodeType; + } + + @Nullable + protected static BlockEntityTicker checkType(BlockEntityType givenType, BlockEntityType expectedType, BlockEntityTicker ticker) { + return expectedType == givenType ? (BlockEntityTicker) ticker : null; + } + + public BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.MODEL; + } + + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + Direction targetDirection = state.get(FACING).getOpposite(); + return world.getBlockState(pos.offset(targetDirection)).getMaterial().isSolid(); + } + + + @Override + public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { + if (!newState.isOf(state.getBlock())) { + PastelNodeBlockEntity blockEntity = getBlockEntity(world, pos); + if (blockEntity != null) { + blockEntity.onBroken(); + } + } + super.onStateReplaced(state, world, pos, newState, moved); + } + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + Direction direction = ctx.getSide(); + BlockState blockState = ctx.getWorld().getBlockState(ctx.getBlockPos().offset(direction.getOpposite())); + return blockState.isOf(this) && blockState.get(FACING) == direction ? this.getDefaultState().with(FACING, direction.getOpposite()) : this.getDefaultState().with(FACING, direction); + } + + @Override + public void onPlaced(World world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) { + super.onPlaced(world, pos, state, placer, itemStack); + if (placer instanceof ServerPlayerEntity serverPlayerEntity) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof PastelNodeBlockEntity pastelNodeBlockEntity) { + SpectrumAdvancementCriteria.PASTEL_NETWORK_CREATING.trigger(serverPlayerEntity, (ServerPastelNetwork) pastelNodeBlockEntity.getNetwork()); + } + } + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { + super.appendTooltip(stack, world, tooltip, options); + tooltip.add(this.pastelNodeType.getTooltip().formatted(Formatting.WHITE)); + tooltip.add(Text.translatable("block.spectrum.pastel_network_nodes.tooltip.placing").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("block.spectrum.pastel_network_nodes.tooltip.range", PastelNodeBlockEntity.RANGE).formatted(Formatting.GRAY)); + } + + public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { + return !state.canPlaceAt(world, pos) ? Blocks.AIR.getDefaultState() : state; + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + PastelNodeBlockEntity blockEntity = getBlockEntity(world, pos); + if (player.getStackInHand(hand).isOf(SpectrumItems.PAINTBRUSH)) { + return sendDebugMessage(world, player, blockEntity); + } else if (this.pastelNodeType.usesFilters()) { + if (world.isClient) { + return ActionResult.SUCCESS; + } else { + player.openHandledScreen(blockEntity); + return ActionResult.CONSUME; + } + } + return super.onUse(state, world, pos, player, hand, hit); + } + + @NotNull + private static ActionResult sendDebugMessage(World world, PlayerEntity player, PastelNodeBlockEntity blockEntity) { + if (world.isClient) { + if (blockEntity != null) { + PastelNetwork network = blockEntity.network; + player.sendMessage(Text.translatable("block.spectrum.pastel_network_nodes.connection_debug")); + if (network == null) { + player.sendMessage(Text.literal("C: No connected network :(")); + } else { + player.sendMessage(Text.literal("C: " + network.getUUID().toString())); + player.sendMessage(Text.literal("C: " + network.getNodeDebugText())); + } + } + return ActionResult.SUCCESS; + } else { + if (blockEntity != null) { + PastelNetwork network = blockEntity.network; + if (network == null) { + player.sendMessage(Text.literal("S: No connected network :(")); + } else { + player.sendMessage(Text.literal("S: " + network.getUUID().toString())); + player.sendMessage(Text.literal("S: " + network.getNodeDebugText())); + } + } + return ActionResult.CONSUME; + } + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPES.get(state.get(FACING)); + } + + public @Nullable PastelNodeBlockEntity getBlockEntity(WorldAccess world, BlockPos blockPos) { + BlockEntity blockEntity = world.getBlockEntity(blockPos); + if (blockEntity instanceof PastelNodeBlockEntity pastelNodeBlockEntity) { + return pastelNodeBlockEntity; + } + return null; + } + + @Nullable + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new PastelNodeBlockEntity(pos, state); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java new file mode 100644 index 0000000000..29fdd1c4d9 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeBlockEntity.java @@ -0,0 +1,232 @@ +package de.dafuqs.spectrum.blocks.pastel_network.nodes; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.pastel_network.*; +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.lookup.v1.block.*; +import net.fabricmc.fabric.api.screenhandler.v1.*; +import net.fabricmc.fabric.api.transfer.v1.item.*; +import net.fabricmc.fabric.api.transfer.v1.storage.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.network.listener.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.text.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; +import java.util.function.*; + +public class PastelNodeBlockEntity extends BlockEntity implements FilterConfigurable, ExtendedScreenHandlerFactory { + + public static int ITEM_FILTER_COUNT = 5; + public static int RANGE = 12; + protected PastelNetwork network; + protected @Nullable UUID networkUUIDToMerge = null; + protected long lastTransferTick = 0; + protected long cachedRedstonePowerTick = 0; + protected boolean cachedNoRedstonePower = true; + + protected int itemCountUnderway = 0; + + protected BlockApiCache, Direction> connectedStorageCache = null; + protected Direction cachedDirection = null; + + private final List filterItems; + + public PastelNodeBlockEntity(BlockPos blockPos, BlockState blockState) { + super(SpectrumBlockEntities.PASTEL_NODE, blockPos, blockState); + this.filterItems = DefaultedList.ofSize(ITEM_FILTER_COUNT, Items.AIR); + } + + public @Nullable Storage getConnectedStorage() { + if (connectedStorageCache == null) { + BlockState state = this.getCachedState(); + if (!(state.getBlock() instanceof PastelNodeBlock)) { + return null; + } + cachedDirection = state.get(PastelNodeBlock.FACING); + connectedStorageCache = BlockApiCache.create(ItemStorage.SIDED, (ServerWorld) world, this.getPos().offset(cachedDirection.getOpposite())); + } + return connectedStorageCache.find(cachedDirection); + } + + @Override + public void setWorld(World world) { + super.setWorld(world); + if (!world.isClient) { + if (this.networkUUIDToMerge != null) { + this.network = Pastel.getServerInstance().joinNetwork(this, this.networkUUIDToMerge); + this.networkUUIDToMerge = null; + } else if (this.network == null) { + this.network = Pastel.getServerInstance().joinNetwork(this, null); + } + } + } + + public boolean canTransfer() { + long time = this.world.getTime(); + if (time > this.cachedRedstonePowerTick) { + this.cachedNoRedstonePower = world.getReceivedRedstonePower(this.pos) == 0; + } + return this.world.getTime() > lastTransferTick && this.cachedNoRedstonePower; + } + + public void markTransferred() { + this.lastTransferTick = world.getTime(); + this.markDirty(); + } + + @Override + public void readNbt(NbtCompound nbt) { + super.readNbt(nbt); + if (nbt.contains("Network")) { + UUID networkUUID = nbt.getUuid("Network"); + if (this.world == null) { + this.networkUUIDToMerge = networkUUID; + } else { + this.network = Pastel.getInstance(world.isClient).joinNetwork(this, networkUUID); + } + } + if (nbt.contains("LastTransferTick", NbtElement.LONG_TYPE)) { + this.lastTransferTick = nbt.getLong("LastTransferTick"); + } + if (this.getNodeType().usesFilters()) { + readFilterNbt(nbt, this.filterItems); + } + } + + @Override + protected void writeNbt(NbtCompound nbt) { + super.writeNbt(nbt); + if (this.network != null) { + nbt.putUuid("Network", this.network.getUUID()); + } + nbt.putLong("LastTransferTick", this.lastTransferTick); + if (this.getNodeType().usesFilters()) { + writeFilterNbt(nbt, this.filterItems); + } + } + + @Nullable + @Override + public Packet toUpdatePacket() { + return BlockEntityUpdateS2CPacket.create(this); + } + + @Override + public NbtCompound toInitialChunkDataNbt() { + NbtCompound nbtCompound = new NbtCompound(); + this.writeNbt(nbtCompound); + return nbtCompound; + } + + // triggered when the chunk is unloaded, or the world quit + @Override + public void markRemoved() { + super.markRemoved(); + if (this.network != null && this.world != null) { + this.network.removeNode(this, NodeRemovalReason.UNLOADED); + this.network = null; + } + } + + public void onBroken() { + if (this.network != null) { + this.network.removeNode(this, NodeRemovalReason.BROKEN); + this.network = null; + } + } + + public boolean canConnect(PastelNodeBlockEntity node) { + return this.pos.isWithinDistance(node.pos, RANGE); + } + + public PastelNetwork getNetwork() { + return this.network; + } + + public PastelNodeType getNodeType() { + if (this.getCachedState().getBlock() instanceof PastelNodeBlock pastelNodeBlock) { + return pastelNodeBlock.pastelNodeType; + } + return PastelNodeType.CONNECTION; + } + + public void setNetwork(PastelNetwork network) { + this.network = network; + if (this.world != null && !this.world.isClient) { + updateInClientWorld(); + this.markDirty(); + } + } + + public int getItemCountUnderway() { + return this.itemCountUnderway; + } + + public void addItemCountUnderway(int count) { + this.itemCountUnderway += count; + this.itemCountUnderway = Math.max(0, this.itemCountUnderway); + this.markDirty(); + } + + // interaction methods + public void updateInClientWorld() { + ((ServerWorld) world).getChunkManager().markForUpdate(pos); + } + + @Override + public List getItemFilters() { + return this.filterItems; + } + + @Override + public void setFilterItem(int slot, Item item) { + this.filterItems.set(slot, item); + } + + public Predicate getTransferFilterTo(PastelNodeBlockEntity other) { + if (this.getNodeType().usesFilters() && !this.hasEmptyFilter()) { + if (other.getNodeType().usesFilters() && !other.hasEmptyFilter()) { + // unionize both filters + return itemVariant -> filterItems.contains(itemVariant.getItem()) && other.filterItems.contains(itemVariant.getItem()); + } else { + return itemVariant -> filterItems.contains(itemVariant.getItem()); + } + } else if (other.getNodeType().usesFilters() && !other.hasEmptyFilter()) { + return itemVariant -> other.filterItems.contains(itemVariant.getItem()); + } else { + return itemVariant -> true; + } + } + + @Override + public Text getDisplayName() { + return Text.translatable("block.spectrum.pastel_node"); + } + + @Nullable + @Override + public ScreenHandler createMenu(int syncId, PlayerInventory inv, PlayerEntity player) { + return new FilteringScreenHandler(syncId, inv, this); + } + + @Override + public void writeScreenOpeningData(ServerPlayerEntity player, PacketByteBuf buf) { + FilterConfigurable.writeScreenOpeningData(buf, filterItems); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeType.java b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeType.java new file mode 100644 index 0000000000..1975ead699 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/pastel_network/nodes/PastelNodeType.java @@ -0,0 +1,28 @@ +package de.dafuqs.spectrum.blocks.pastel_network.nodes; + +import net.minecraft.text.*; + +public enum PastelNodeType { + CONNECTION("block.spectrum.connection_node.tooltip", false), + STORAGE("block.spectrum.storage_node.tooltip", true), + PROVIDER("block.spectrum.provider_node.tooltip", false), + SENDER("block.spectrum.sender_node.tooltip", false), + GATHER("block.spectrum.gather_node.tooltip", true); + + private final MutableText tooltip; + private final boolean usesFilters; + + PastelNodeType(String tooltip, boolean usesFilters) { + this.tooltip = Text.translatable(tooltip); + this.usesFilters = usesFilters; + } + + public MutableText getTooltip() { + return this.tooltip; + } + + public boolean usesFilters() { + return usesFilters; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlock.java index 00e4258eaf..1b26783499 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlock.java @@ -33,6 +33,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3f; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; @@ -43,8 +44,6 @@ import vazkii.patchouli.api.IMultiblock; import vazkii.patchouli.api.PatchouliAPI; -import java.util.Random; - public class PedestalBlock extends BlockWithEntity implements RedstonePoweredBlock, PaintbrushTriggered { public static final Identifier UNLOCK_IDENTIFIER = SpectrumCommon.locate("place_pedestal"); @@ -173,7 +172,7 @@ protected void appendProperties(StateManager.Builder stateMan public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { ActionResult actionResult = checkAndDoPaintbrushTrigger(state, world, pos, player, hand, hit); - if(actionResult.isAccepted()) { + if (actionResult.isAccepted()) { return actionResult; } @@ -231,12 +230,12 @@ public boolean hasComparatorOutput(BlockState state) { public int getComparatorOutput(BlockState state, @NotNull World world, BlockPos pos) { return ScreenHandler.calculateComparatorOutput(world.getBlockEntity(pos)); } - + @Override public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return SHAPE; } - + @Override @Nullable public BlockEntityTicker getTicker(@NotNull World world, BlockState state, BlockEntityType type) { @@ -288,7 +287,7 @@ public BlockState getPlacementState(@NotNull ItemPlacementContext ctx) { public PedestalVariant getVariant() { return this.variant; } - + static { var foot = Block.createCuboidShape(3, 0, 3, 13, 3, 13); var neck = Block.createCuboidShape(5, 3, 5, 11, 12, 11); @@ -300,18 +299,18 @@ public PedestalVariant getVariant() { @Override public ActionResult onPaintBrushTrigger(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { BlockEntity blockEntity = world.getBlockEntity(pos); - if(blockEntity instanceof PedestalBlockEntity pedestalBlockEntity) { - if(pedestalBlockEntity.craftingTime > 0) { + if (blockEntity instanceof PedestalBlockEntity pedestalBlockEntity) { + if (pedestalBlockEntity.craftingTime > 0) { return ActionResult.FAIL; } - if(pedestalBlockEntity.currentRecipe == null) { + if (pedestalBlockEntity.currentRecipe == null) { return ActionResult.FAIL; } - if(pedestalBlockEntity.currentRecipe instanceof GatedRecipe gatedRecipe && !gatedRecipe.canPlayerCraft(player)) { + if (pedestalBlockEntity.currentRecipe instanceof GatedRecipe gatedRecipe && !gatedRecipe.canPlayerCraft(player)) { return ActionResult.FAIL; } - if(!world.isClient) { + if (!world.isClient) { pedestalBlockEntity.shouldCraft = true; SpectrumS2CPacketSender.spawnPedestalStartCraftingParticles(pedestalBlockEntity); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntity.java index 7972da4c23..60ae34f630 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntity.java @@ -1,70 +1,48 @@ package de.dafuqs.spectrum.blocks.pedestal; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.enums.BuiltinGemstoneColor; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.inventories.AutoCraftingInventory; -import de.dafuqs.spectrum.inventories.PedestalScreenHandler; -import de.dafuqs.spectrum.items.CraftingTabletItem; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumMultiblocks; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.HopperBlockEntity; -import net.minecraft.block.entity.LockableContainerBlockEntity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.Inventories; -import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.SidedInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.network.Packet; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.network.listener.ClientPlayPacketListener; -import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; -import net.minecraft.particle.ParticleEffect; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.pedestal.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.screenhandler.v1.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.network.*; +import net.minecraft.network.listener.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.particle.*; import net.minecraft.recipe.*; -import net.minecraft.screen.PropertyDelegate; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import vazkii.patchouli.api.IMultiblock; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; +import vazkii.patchouli.api.*; import java.util.*; -public class PedestalBlockEntity extends LockableContainerBlockEntity implements MultiblockCrafter, RecipeInputProvider, SidedInventory, ExtendedScreenHandlerFactory, Upgradeable { - +public class PedestalBlockEntity extends LockableContainerBlockEntity implements MultiblockCrafter, RecipeInputProvider, SidedInventory, ExtendedScreenHandlerFactory { + public static final int INVENTORY_SIZE = 16; // 9 crafting, 5 gems, 1 craftingTablet, 1 output public static final int CRAFTING_TABLET_SLOT_ID = 14; public static final int OUTPUT_SLOT_ID = 15; @@ -80,7 +58,7 @@ public class PedestalBlockEntity extends LockableContainerBlockEntity implements protected @Nullable Recipe currentRecipe; protected PedestalRecipeTier cachedMaxPedestalTier; protected long cachedMaxPedestalTierTick; - protected Map upgrades; + protected UpgradeHolder upgrades; protected boolean inventoryChanged; public PedestalBlockEntity(BlockPos blockPos, BlockState blockState) { @@ -123,7 +101,7 @@ public static void updateInClientWorld(PedestalBlockEntity pedestalBlockEntity) } public static void clientTick(@NotNull World world, BlockPos blockPos, BlockState blockState, PedestalBlockEntity pedestalBlockEntity) { - Recipe currentRecipe = pedestalBlockEntity.getCurrentRecipe(); + Recipe currentRecipe = pedestalBlockEntity.getCurrentRecipe(); if (currentRecipe instanceof PedestalCraftingRecipe pedestalCraftingRecipe) { HashMap gemstonePowderInputs = pedestalCraftingRecipe.getGemstonePowderInputs(); @@ -145,8 +123,8 @@ public static void clientTick(@NotNull World world, BlockPos blockPos, BlockStat public static void spawnCraftingStartParticles(@NotNull World world, BlockPos blockPos) { BlockEntity blockEntity = world.getBlockEntity(blockPos); - if(blockEntity instanceof PedestalBlockEntity pedestalBlockEntity) { - Recipe currentRecipe = pedestalBlockEntity.getCurrentRecipe(); + if (blockEntity instanceof PedestalBlockEntity pedestalBlockEntity) { + Recipe currentRecipe = pedestalBlockEntity.getCurrentRecipe(); if (currentRecipe instanceof PedestalCraftingRecipe pedestalCraftingRecipe) { HashMap gemstonePowderInputs = pedestalCraftingRecipe.getGemstonePowderInputs(); @@ -183,17 +161,17 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat // check recipe crafted last tick => performance boolean shouldMarkDirty = false; - - Recipe calculatedRecipe = calculateRecipe(world, pedestalBlockEntity); + + Recipe calculatedRecipe = calculateRecipe(world, pedestalBlockEntity); pedestalBlockEntity.inventoryChanged = false; if (pedestalBlockEntity.currentRecipe != calculatedRecipe) { pedestalBlockEntity.shouldCraft = false; pedestalBlockEntity.currentRecipe = calculatedRecipe; pedestalBlockEntity.craftingTime = 0; if (calculatedRecipe instanceof PedestalCraftingRecipe calculatedPedestalCraftingRecipe) { - pedestalBlockEntity.craftingTimeTotal = (int) Math.ceil(calculatedPedestalCraftingRecipe.getCraftingTime() / pedestalBlockEntity.upgrades.get(UpgradeType.SPEED)); + pedestalBlockEntity.craftingTimeTotal = (int) Math.ceil(calculatedPedestalCraftingRecipe.getCraftingTime() / pedestalBlockEntity.upgrades.getEffectiveValue(UpgradeType.SPEED)); } else { - pedestalBlockEntity.craftingTimeTotal = (int) Math.ceil(SpectrumCommon.CONFIG.VanillaRecipeCraftingTimeTicks / pedestalBlockEntity.upgrades.get(UpgradeType.SPEED)); + pedestalBlockEntity.craftingTimeTotal = (int) Math.ceil(SpectrumCommon.CONFIG.VanillaRecipeCraftingTimeTicks / pedestalBlockEntity.upgrades.getEffectiveValue(UpgradeType.SPEED)); } pedestalBlockEntity.markDirty(); SpectrumS2CPacketSender.sendCancelBlockBoundSoundInstance((ServerWorld) pedestalBlockEntity.getWorld(), pedestalBlockEntity.getPos()); @@ -352,13 +330,13 @@ public static void playCraftingFinishedSoundEvent(PedestalBlockEntity pedestalBl return newRecipe; } - private static boolean canAcceptRecipeOutput(@Nullable Recipe recipe, DefaultedList defaultedList, int maxCountPerStack) { + private static boolean canAcceptRecipeOutput(@Nullable Recipe recipe, DefaultedList inventory, int maxCountPerStack) { if (recipe != null) { ItemStack output = recipe.getOutput(); if (output.isEmpty()) { return false; } else { - ItemStack existingOutput = defaultedList.get(OUTPUT_SLOT_ID); + ItemStack existingOutput = inventory.get(OUTPUT_SLOT_ID); if (existingOutput.isEmpty()) { return true; } else if (!existingOutput.isItemEqualIgnoreDamage(output)) { @@ -376,7 +354,7 @@ private static boolean canAcceptRecipeOutput(@Nullable Recipe recipe, Default private static boolean craftPedestalRecipe(PedestalBlockEntity pedestalBlockEntity, @Nullable PedestalCraftingRecipe recipe, DefaultedList inventory, int maxCountPerStack) { if (canAcceptRecipeOutput(recipe, inventory, maxCountPerStack)) { - ItemStack recipeOutput = recipe.craft(pedestalBlockEntity); + ItemStack recipeOutput = recipe.craftAndDecrement(pedestalBlockEntity); // if it was a recipe to upgrade the pedestal itself // => upgrade @@ -392,7 +370,7 @@ private static boolean craftPedestalRecipe(PedestalBlockEntity pedestalBlockEnti pedestalBlockEntity.currentRecipe = null; // reset the recipe, otherwise pedestal would remember crafting the update } else { int resultAmountBeforeMod = recipeOutput.getCount(); - double yieldModifier = recipe.areYieldUpgradesDisabled() ? 1.0 : pedestalBlockEntity.upgrades.get(UpgradeType.YIELD); + double yieldModifier = recipe.areYieldUpgradesDisabled() ? 1.0 : pedestalBlockEntity.upgrades.getEffectiveValue(UpgradeType.YIELD); int resultAmountAfterMod = Support.getIntFromDecimalWithChance(resultAmountBeforeMod * yieldModifier, pedestalBlockEntity.world.random); // Not an upgrade recipe => Add output to output slot @@ -409,7 +387,7 @@ private static boolean craftPedestalRecipe(PedestalBlockEntity pedestalBlockEnti } // Add recipe XP - double experienceModifier = pedestalBlockEntity.upgrades.get(UpgradeType.EXPERIENCE); + double experienceModifier = pedestalBlockEntity.upgrades.getEffectiveValue(UpgradeType.EXPERIENCE); float recipeExperienceBeforeMod = recipe.getExperience(); float experienceAfterMod = (float) (recipeExperienceBeforeMod * experienceModifier); pedestalBlockEntity.storedXP += experienceAfterMod; @@ -455,7 +433,7 @@ public void setVariant(PedestalVariant pedestalVariant) { @Override public Text getContainerName() { - return new TranslatableText("block.spectrum.pedestal"); + return Text.translatable("block.spectrum.pedestal"); } @Override @@ -559,7 +537,9 @@ public void readNbt(NbtCompound nbt) { this.craftingTimeTotal = nbt.getShort("CraftingTimeTotal"); } if (nbt.contains("Upgrades", NbtElement.LIST_TYPE)) { - this.upgrades = Upgradeable.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + this.upgrades = UpgradeHolder.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + } else { + this.upgrades = new UpgradeHolder(); } if (nbt.contains("inventory_changed")) { this.inventoryChanged = nbt.getBoolean("inventory_changed"); @@ -568,8 +548,8 @@ public void readNbt(NbtCompound nbt) { this.currentRecipe = null; if (nbt.contains("CurrentRecipe")) { String recipeString = nbt.getString("CurrentRecipe"); - if (!recipeString.isEmpty() && world != null) { - Optional optionalRecipe = world.getRecipeManager().get(new Identifier(recipeString)); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); this.currentRecipe = optionalRecipe.orElse(null); } } @@ -588,7 +568,7 @@ public void writeNbt(NbtCompound nbt) { nbt.putShort("CraftingTimeTotal", (short) this.craftingTimeTotal); nbt.putBoolean("inventory_changed", this.inventoryChanged); if (this.upgrades != null) { - nbt.put("Upgrades", Upgradeable.toNbt(this.upgrades)); + nbt.put("Upgrades", this.upgrades.toNbt()); } if (this.currentRecipe != null) { nbt.putString("CurrentRecipe", this.currentRecipe.getId().toString()); @@ -614,43 +594,24 @@ private void playSound(SoundEvent soundEvent) { world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), soundEvent, SoundCategory.BLOCKS, 0.9F + random.nextFloat() * 0.2F, 0.9F + random.nextFloat() * 0.15F); } - private boolean craftVanillaRecipe(@Nullable CraftingRecipe recipe, DefaultedList defaultedList, int maxCountPerStack) { - if (canAcceptRecipeOutput(recipe, defaultedList, maxCountPerStack)) { - + private boolean craftVanillaRecipe(@Nullable CraftingRecipe recipe, DefaultedList inventory, int maxCountPerStack) { + if (canAcceptRecipeOutput(recipe, inventory, maxCountPerStack)) { + autoCraftingInventory.setInputInventory(inventory.subList(0, 9)); // -1 for all crafting inputs - for (int i = 0; i < 9; i++) { - ItemStack itemStack = defaultedList.get(i); - if (!itemStack.isEmpty()) { - Item recipeReminderItem = itemStack.getItem().getRecipeRemainder(); - if (recipeReminderItem == null) { - itemStack.decrement(1); - } else { - if (inventory.get(i).getCount() == 1) { - inventory.set(i, new ItemStack(recipeReminderItem, 1)); - } else { - inventory.get(i).decrement(1); - - ItemStack remainderStack = recipeReminderItem.getDefaultStack(); - ItemEntity itemEntity = new ItemEntity(world, pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5, remainderStack); - itemEntity.addVelocity(0, 0.05, 0); - world.spawnEntity(itemEntity); - } - } - } - } + decrementInputStacks(inventory); - ItemStack recipeOutput = recipe.getOutput(); + ItemStack recipeOutput = recipe.craft(autoCraftingInventory); PlayerEntity player = getOwnerIfOnline(); - if(player != null) { + if (player != null) { recipeOutput.onCraft(this.world, player, recipeOutput.getCount()); } - ItemStack existingOutput = defaultedList.get(OUTPUT_SLOT_ID); + ItemStack existingOutput = inventory.get(OUTPUT_SLOT_ID); if (existingOutput.isEmpty()) { - defaultedList.set(OUTPUT_SLOT_ID, recipeOutput.copy()); + inventory.set(OUTPUT_SLOT_ID, recipeOutput.copy()); } else { existingOutput.increment(recipeOutput.getCount()); - defaultedList.set(OUTPUT_SLOT_ID, existingOutput); + inventory.set(OUTPUT_SLOT_ID, existingOutput); } return true; @@ -659,6 +620,29 @@ private boolean craftVanillaRecipe(@Nullable CraftingRecipe recipe, DefaultedLis } } + private void decrementInputStacks(DefaultedList defaultedList) { + for (int i = 0; i < 9; i++) { + ItemStack itemStack = defaultedList.get(i); + if (!itemStack.isEmpty()) { + Item recipeReminderItem = itemStack.getItem().getRecipeRemainder(); + if (recipeReminderItem == null) { + itemStack.decrement(1); + } else { + if (inventory.get(i).getCount() == 1) { + inventory.set(i, new ItemStack(recipeReminderItem, 1)); + } else { + inventory.get(i).decrement(1); + + ItemStack remainderStack = recipeReminderItem.getDefaultStack(); + ItemEntity itemEntity = new ItemEntity(world, pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5, remainderStack); + itemEntity.addVelocity(0, 0.05, 0); + world.spawnEntity(itemEntity); + } + } + } + } + } + private void grantPlayerPedestalCraftingAdvancement(PedestalCraftingRecipe recipe, int experience) { ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) getOwnerIfOnline(); if (serverPlayerEntity != null) { @@ -710,8 +694,8 @@ public boolean canInsert(int slot, @NotNull ItemStack stack, @Nullable Direction if (inventory.get(slot).getCount() > 0) { return false; } - - Recipe storedRecipe = CraftingTabletItem.getStoredRecipe(this.world, craftingTabletItem); + + Recipe storedRecipe = CraftingTabletItem.getStoredRecipe(this.world, craftingTabletItem); int width = 3; if (storedRecipe instanceof ShapedRecipe shapedRecipe) { @@ -766,7 +750,11 @@ public ItemStack getCurrentCraftingRecipeOutput() { if (this.currentRecipe == null) { return ItemStack.EMPTY; } else { - return this.currentRecipe.getOutput(); + if(currentRecipe instanceof PedestalCraftingRecipe pedestalCraftingRecipe) { + return pedestalCraftingRecipe.craft(this); + } else { + return this.currentRecipe.craft(autoCraftingInventory); + } } } @@ -815,31 +803,33 @@ public PedestalRecipeTier getHighestAvailableRecipeTierWithStructure() { SpectrumAdvancementCriteria.COMPLETED_MULTIBLOCK.trigger((ServerPlayerEntity) this.getOwnerIfOnline(), multiblock); } } - + this.cachedMaxPedestalTier = highestAvailableRecipeTier; this.cachedMaxPedestalTierTick = world.getTime(); return highestAvailableRecipeTier; } } - + + @Override public void resetUpgrades() { this.upgrades = null; this.markDirty(); } - + /** * Search for upgrades at valid positions and apply */ + @Override public void calculateUpgrades() { this.upgrades = Upgradeable.calculateUpgradeMods4(world, pos, 3, 2, this.ownerUUID); this.markDirty(); } - + @Override - public float getUpgradeValue(UpgradeType upgradeType) { - return this.upgrades.get(upgradeType); + public UpgradeHolder getUpgradeHolder() { + return this.upgrades; } - + @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntityRenderer.java index 5254800e12..cba11f5ea9 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockEntityRenderer.java @@ -2,7 +2,7 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipe; -import de.dafuqs.spectrum.registries.SpectrumRenderLayers; +import de.dafuqs.spectrum.registries.client.SpectrumRenderLayers; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockItem.java b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockItem.java index 19b2482258..2bf37246fe 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/pedestal/PedestalBlockItem.java @@ -5,7 +5,6 @@ import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import java.util.List; @@ -18,7 +17,7 @@ public class PedestalBlockItem extends BlockItem { public PedestalBlockItem(Block block, Settings settings, PedestalVariant pedestalVariant, String tooltipTextString) { super(block, settings); this.pedestalVariant = pedestalVariant; - this.tooltipText = new TranslatableText(tooltipTextString); + this.tooltipText = Text.translatable(tooltipTextString); } public PedestalVariant getVariant() { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/potion_workshop/PotionWorkshopBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/potion_workshop/PotionWorkshopBlockEntity.java index 2757a6a4dc..8ad3ea875d 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/potion_workshop/PotionWorkshopBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/potion_workshop/PotionWorkshopBlockEntity.java @@ -5,9 +5,9 @@ import de.dafuqs.spectrum.helpers.InventoryHelper; import de.dafuqs.spectrum.helpers.Support; import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.interfaces.PotionFillable; import de.dafuqs.spectrum.inventories.PotionWorkshopScreenHandler; import de.dafuqs.spectrum.items.ExperienceStorageItem; +import de.dafuqs.spectrum.items.PotionFillable; import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; import de.dafuqs.spectrum.recipe.potion_workshop.*; @@ -16,7 +16,6 @@ import net.minecraft.advancement.criterion.Criteria; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.Inventories; @@ -27,6 +26,7 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionUtil; +import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeInputProvider; import net.minecraft.recipe.RecipeMatcher; import net.minecraft.screen.NamedScreenHandlerFactory; @@ -37,12 +37,11 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.util.registry.Registry; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -65,8 +64,6 @@ public class PotionWorkshopBlockEntity extends BlockEntity implements NamedScree public static final int FIRST_REAGENT_SLOT = 5; public static final int FIRST_INVENTORY_SLOT = 9; public static final int[] REGENT_SLOTS = new int[]{5, 6, 7, 8}; - protected static final int BASE_POTION_COUNT_ON_BREWING = 3; - protected static final int BASE_ARROW_COUNT_ON_BREWING = 12; protected final PropertyDelegate propertyDelegate; protected DefaultedList inventory; protected boolean inventoryChanged; @@ -75,7 +72,7 @@ public class PotionWorkshopBlockEntity extends BlockEntity implements NamedScree protected int brewTimeTotal; protected int potionColor; protected UUID ownerUUID; - protected StatusEffect lastBrewedStatusEffect; + protected PotionWorkshopBrewingRecipe lastBrewedRecipe; public PotionWorkshopBlockEntity(BlockPos pos, BlockState state) { super(SpectrumBlockEntities.POTION_WORKSHOP, pos, state); @@ -109,7 +106,6 @@ public static void tick(World world, BlockPos blockPos, BlockState blockState, P boolean shouldMarkDirty = false; PotionWorkshopRecipe calculatedRecipe = calculateRecipe(world, potionWorkshopBlockEntity); - potionWorkshopBlockEntity.inventoryChanged = false; if (potionWorkshopBlockEntity.currentRecipe != calculatedRecipe) { potionWorkshopBlockEntity.currentRecipe = calculatedRecipe; potionWorkshopBlockEntity.brewTime = 0; @@ -119,7 +115,7 @@ public static void tick(World world, BlockPos blockPos, BlockState blockState, P } shouldMarkDirty = true; } - + potionWorkshopBlockEntity.inventoryChanged = false; if (calculatedRecipe != null) { // if crafting has not started: check if the inventory has enough room to start @@ -263,7 +259,7 @@ private static void craftRecipe(PotionWorkshopBlockEntity potionWorkshopBlockEnt private static void brewRecipe(PotionWorkshopBlockEntity potionWorkshopBlockEntity, PotionWorkshopBrewingRecipe brewingRecipe) { // process reagents PotionMod potionMod = getPotionModFromReagents(potionWorkshopBlockEntity); - int maxBrewedPotionsAmount = Support.getIntFromDecimalWithChance(BASE_POTION_COUNT_ON_BREWING + potionMod.flatYieldBonus, potionWorkshopBlockEntity.world.random); + int maxBrewedPotionsAmount = Support.getIntFromDecimalWithChance(PotionWorkshopBrewingRecipe.BASE_POTION_COUNT_ON_BREWING + potionMod.flatYieldBonus, potionWorkshopBlockEntity.world.random); int brewedAmount = Math.min(potionWorkshopBlockEntity.inventory.get(BASE_INPUT_SLOT_ID).getCount(), maxBrewedPotionsAmount); // consume ingredients @@ -274,7 +270,7 @@ private static void brewRecipe(PotionWorkshopBlockEntity potionWorkshopBlockEnti // calculate outputs List results = new ArrayList<>(); for (int i = 0; i < brewedAmount; i++) { - results.add(brewingRecipe.brewRandomPotion(potionMod, potionWorkshopBlockEntity.lastBrewedStatusEffect, potionWorkshopBlockEntity.world.random)); + results.add(brewingRecipe.brewRandomPotion(potionMod, potionWorkshopBlockEntity.lastBrewedRecipe, potionWorkshopBlockEntity.world.random)); } // trigger advancements for all brewed potions @@ -289,13 +285,13 @@ private static void brewRecipe(PotionWorkshopBlockEntity potionWorkshopBlockEnti } } - potionWorkshopBlockEntity.lastBrewedStatusEffect = brewingRecipe.getStatusEffect(); + potionWorkshopBlockEntity.lastBrewedRecipe = brewingRecipe; } private static void createTippedArrows(PotionWorkshopBlockEntity potionWorkshopBlockEntity, PotionWorkshopBrewingRecipe brewingRecipe) { // process reagents PotionMod potionMod = getPotionModFromReagents(potionWorkshopBlockEntity); - int maxTippedArrowsAmount = Support.getIntFromDecimalWithChance(BASE_ARROW_COUNT_ON_BREWING + potionMod.flatYieldBonus * 4, potionWorkshopBlockEntity.world.random); + int maxTippedArrowsAmount = Support.getIntFromDecimalWithChance(PotionWorkshopBrewingRecipe.BASE_ARROW_COUNT_ON_BREWING + potionMod.flatYieldBonus * 4, potionWorkshopBlockEntity.world.random); int tippedAmount = Math.min(potionWorkshopBlockEntity.inventory.get(BASE_INPUT_SLOT_ID).getCount(), maxTippedArrowsAmount); // consume ingredients @@ -304,7 +300,7 @@ private static void createTippedArrows(PotionWorkshopBlockEntity potionWorkshopB decreaseReagentSlots(potionWorkshopBlockEntity); // calculate outputs - ItemStack tippedArrows = brewingRecipe.getTippedArrows(potionMod, potionWorkshopBlockEntity.lastBrewedStatusEffect, tippedAmount, potionWorkshopBlockEntity.world.random); + ItemStack tippedArrows = brewingRecipe.getTippedArrows(potionMod, potionWorkshopBlockEntity.lastBrewedRecipe, tippedAmount, potionWorkshopBlockEntity.world.random); // trigger advancements for all brewed potions ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) potionWorkshopBlockEntity.getOwnerIfOnline(); @@ -313,7 +309,7 @@ private static void createTippedArrows(PotionWorkshopBlockEntity potionWorkshopB SpectrumAdvancementCriteria.POTION_WORKSHOP_BREWING.trigger(serverPlayerEntity, tippedArrows); } - potionWorkshopBlockEntity.lastBrewedStatusEffect = brewingRecipe.getStatusEffect(); + potionWorkshopBlockEntity.lastBrewedRecipe = brewingRecipe; } private static void fillPotionFillable(PotionWorkshopBlockEntity potionWorkshopBlockEntity, PotionWorkshopBrewingRecipe brewingRecipe) { @@ -327,7 +323,7 @@ private static void fillPotionFillable(PotionWorkshopBlockEntity potionWorkshopB decreaseReagentSlots(potionWorkshopBlockEntity); potionWorkshopBlockEntity.inventory.set(BASE_INPUT_SLOT_ID, ItemStack.EMPTY); - brewingRecipe.fillPotionFillable(potionFillableStack, potionMod, potionWorkshopBlockEntity.lastBrewedStatusEffect, potionWorkshopBlockEntity.world.random); + brewingRecipe.fillPotionFillable(potionFillableStack, potionMod, potionWorkshopBlockEntity.lastBrewedRecipe, potionWorkshopBlockEntity.world.random); // trigger advancements for all brewed potions ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) potionWorkshopBlockEntity.getOwnerIfOnline(); @@ -336,7 +332,7 @@ private static void fillPotionFillable(PotionWorkshopBlockEntity potionWorkshopB SpectrumAdvancementCriteria.POTION_WORKSHOP_BREWING.trigger(serverPlayerEntity, potionFillableStack); } - potionWorkshopBlockEntity.lastBrewedStatusEffect = brewingRecipe.getStatusEffect(); + potionWorkshopBlockEntity.lastBrewedRecipe = brewingRecipe; } } @@ -366,7 +362,7 @@ public static void decreaseIngredientSlots(@NotNull PotionWorkshopBlockEntity po } public static void decreaseReagentSlots(@NotNull PotionWorkshopBlockEntity potionWorkshopBlockEntity) { - for (int i : new int[]{5, 6, 7, 8}) { + for (int i : REGENT_SLOTS) { ItemStack currentStack = potionWorkshopBlockEntity.getStack(i); if (!currentStack.isEmpty()) { currentStack.decrement(1); @@ -383,10 +379,16 @@ public void readNbt(NbtCompound nbt) { } else { this.ownerUUID = null; } - if (nbt.contains("LastBrewedStatusEffect")) { - this.lastBrewedStatusEffect = Registry.STATUS_EFFECT.get(Identifier.tryParse(nbt.getString("LastBrewedStatusEffect"))); + if (nbt.contains("LastBrewedRecipe") && this.world != null) { + String recipeString = nbt.getString("LastBrewedRecipe"); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); + if (optionalRecipe.isPresent() && optionalRecipe.get() instanceof PotionWorkshopBrewingRecipe brewingRecipe) { + this.lastBrewedRecipe = brewingRecipe; + } + } } else { - this.lastBrewedStatusEffect = null; + this.lastBrewedRecipe = null; } } @@ -396,11 +398,8 @@ public void writeNbt(NbtCompound nbt) { if (this.ownerUUID != null) { nbt.putUuid("OwnerUUID", this.ownerUUID); } - if (this.lastBrewedStatusEffect != null) { - Identifier lastBrewedStatusEffectIdentifier = Registry.STATUS_EFFECT.getId(this.lastBrewedStatusEffect); - if (lastBrewedStatusEffectIdentifier != null) { - nbt.putString("LastBrewedStatusEffect", lastBrewedStatusEffectIdentifier.toString()); - } + if (this.lastBrewedRecipe != null) { + nbt.putString("LastBrewedRecipe", this.lastBrewedRecipe.getId().toString()); } } @@ -527,9 +526,9 @@ public int[] getAvailableSlots(Direction side) { return new int[]{0, 1, 2, 3, 4}; } else { if (this.hasFourthReagentSlotUnlocked()) { - return new int[]{5, 6, 7}; - } else { return new int[]{5, 6, 7, 8}; + } else { + return new int[]{5, 6, 7}; } } } @@ -561,7 +560,7 @@ public void inventoryChanged() { @Override public Text getDisplayName() { - return new TranslatableText("block.spectrum.potion_workshop"); + return Text.translatable("block.spectrum.potion_workshop"); } @Nullable diff --git a/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlock.java index 349bcaa892..b30ba72bae 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlock.java @@ -1,44 +1,33 @@ package de.dafuqs.spectrum.blocks.present; -import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.helpers.ColorHelper; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.ParticleSpawnerParticleEffect; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.effect.*; import net.minecraft.block.*; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.loot.context.LootContext; -import net.minecraft.loot.context.LootContextParameters; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.text.TranslatableText; +import net.minecraft.block.entity.*; +import net.minecraft.client.world.*; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.loot.context.*; +import net.minecraft.particle.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.text.*; import net.minecraft.util.*; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3f; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.WorldView; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Random; +import java.util.*; public class PresentBlock extends BlockWithEntity { @@ -115,9 +104,9 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt world.createAndScheduleBlockTick(pos, state.getBlock(), TICKS_PER_OPENING_STEP); } else { if (presentBlockEntity.getOwnerName() != null) { - player.sendMessage(new TranslatableText("block.spectrum.present.tooltip.wrapped_placed.giver", presentBlockEntity.getOwnerName()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.present.tooltip.wrapped_placed.giver", presentBlockEntity.getOwnerName()), false); } else { - player.sendMessage(new TranslatableText("block.spectrum.present.tooltip.wrapped_placed"), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.present.tooltip.wrapped_placed"), false); } } @@ -149,10 +138,10 @@ public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Ran presentBlockEntity.triggerAdvancement(); if (presentBlockEntity.isEmpty()) { world.playSound(null, posVec.x, posVec.y, posVec.z, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5F, 0.8F); - SpectrumS2CPacketSender.playParticleWithExactOffsetAndVelocity(world, posVec, ParticleTypes.SMOKE, 5); + SpectrumS2CPacketSender.playParticleWithExactVelocity(world, posVec, ParticleTypes.SMOKE, 5, Vec3d.ZERO); } else { world.playSound(null, posVec.x, posVec.y, posVec.z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 0.5F, 4.0F); - SpectrumS2CPacketSender.playParticleWithExactOffsetAndVelocity(world, posVec, ParticleTypes.EXPLOSION, 1); + SpectrumS2CPacketSender.playParticleWithExactVelocity(world, posVec, ParticleTypes.EXPLOSION, 1, Vec3d.ZERO); ItemScatterer.spawn(world, pos, presentBlockEntity.stacks); } world.setBlockState(pos, Blocks.AIR.getDefaultState()); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlockEntity.java index 6c6a70f4af..dfb7e4d19a 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/present/PresentBlockEntity.java @@ -134,7 +134,7 @@ public String getOwnerName() { @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); - this.ownerName = playerEntity.getName().asString(); + this.ownerName = playerEntity.getName().getString(); } public void setOpenerUUID(PlayerEntity opener) { @@ -156,8 +156,8 @@ public ItemStack retrievePresent(PresentBlock.Variant variant) { } public boolean isEmpty() { - for(int i = 0; i < PresentItem.MAX_STORAGE_STACKS; i++) { - if(!stacks.get(i).isEmpty()) { + for (int i = 0; i < PresentItem.MAX_STORAGE_STACKS; i++) { + if (!stacks.get(i).isEmpty()) { return false; } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/present/PresentItem.java b/src/main/java/de/dafuqs/spectrum/blocks/present/PresentItem.java index 1721c6c9c1..c8242cf468 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/present/PresentItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/present/PresentItem.java @@ -18,9 +18,7 @@ import net.minecraft.nbt.NbtList; import net.minecraft.screen.slot.Slot; import net.minecraft.sound.SoundEvents; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.*; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.MathHelper; @@ -69,7 +67,7 @@ public static Optional> getWrapper(ItemStack itemStack) { } public static Optional> getWrapper(NbtCompound compound) { - if(compound != null && compound.contains("GiverUUID") && compound.contains("Giver", NbtElement.STRING_TYPE)) { + if (compound != null && compound.contains("GiverUUID") && compound.contains("Giver", NbtElement.STRING_TYPE)) { return Optional.of(new Pair<>(compound.getUuid("GiverUUID"), compound.getString("Giver"))); } return Optional.empty(); @@ -81,8 +79,8 @@ public static Map getColors(ItemStack itemStack) { public static Map getColors(NbtCompound compound) { Map colors = new HashMap<>(); - if(compound != null && compound.contains("Colors", NbtElement.LIST_TYPE)) { - for(NbtElement e : compound.getList("Colors", NbtElement.COMPOUND_TYPE)) { + if (compound != null && compound.contains("Colors", NbtElement.LIST_TYPE)) { + for (NbtElement e : compound.getList("Colors", NbtElement.COMPOUND_TYPE)) { NbtCompound c = (NbtCompound) e; colors.put(DyeColor.valueOf(c.getString("Color").toUpperCase(Locale.ROOT)), c.getInt("Amount")); } @@ -103,9 +101,9 @@ public static void setWrapped(NbtCompound compound) { } public static void setColors(NbtCompound compound, Map colors) { - if(!colors.isEmpty()) { + if (!colors.isEmpty()) { NbtList colorList = new NbtList(); - for(Map.Entry colorEntry : colors.entrySet()) { + for (Map.Entry colorEntry : colors.entrySet()) { NbtCompound colorCompound = new NbtCompound(); colorCompound.putString("Color", colorEntry.getKey().getName()); colorCompound.putInt("Amount", colorEntry.getValue()); @@ -120,7 +118,7 @@ public static void setVariant(NbtCompound compound, PresentBlock.Variant variant } public static PresentBlock.Variant getVariant(NbtCompound compound) { - if(compound != null && compound.contains("Variant", NbtElement.STRING_TYPE)) { + if (compound != null && compound.contains("Variant", NbtElement.STRING_TYPE)) { return PresentBlock.Variant.valueOf(compound.getString("Variant").toUpperCase(Locale.ROOT)); } return PresentBlock.Variant.RED; @@ -140,7 +138,7 @@ public boolean onStackClicked(ItemStack present, Slot slot, ClickType clickType, ItemStack slotStack = slot.takeStackRange(itemStack.getCount(), 64, player); int acceptedStacks = addToPresent(present, slotStack); slotStack.decrement(acceptedStacks); - if(!slotStack.isEmpty()) { + if (!slotStack.isEmpty()) { slot.setStack(slotStack); } if (acceptedStacks > 0) { @@ -176,14 +174,14 @@ public boolean onClicked(ItemStack stack, ItemStack otherStack, Slot slot, Click @Override public void onCraft(ItemStack stack, World world, PlayerEntity player) { super.onCraft(stack, world, player); - if(player != null) { + if (player != null) { setWrapper(stack, player); } } public TypedActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack itemStack = user.getStackInHand(hand); - if(isWrapped(itemStack)) { + if (isWrapped(itemStack)) { super.use(world, user, hand); } return TypedActionResult.pass(itemStack); @@ -211,18 +209,18 @@ private static int addToPresent(ItemStack bundle, ItemStack stackToBundle) { NbtList nbtList = bundleCompound.getList(ITEMS_KEY, 10); int originalCount = stackToBundle.getCount(); - for(int i = 0; i < MAX_STORAGE_STACKS; i++) { + for (int i = 0; i < MAX_STORAGE_STACKS; i++) { ItemStack storedStack = ItemStack.fromNbt(nbtList.getCompound(i)); - if(storedStack.isEmpty()) { + if (storedStack.isEmpty()) { NbtCompound leftoverCompound = new NbtCompound(); stackToBundle.writeNbt(leftoverCompound); nbtList.add(leftoverCompound); bundle.setNbt(bundleCompound); return originalCount; } - if(ItemStack.canCombine(stackToBundle, storedStack)) { + if (ItemStack.canCombine(stackToBundle, storedStack)) { int additionalAmount = Math.min(stackToBundle.getCount(), storedStack.getMaxCount() - storedStack.getCount()); - if(additionalAmount > 0) { + if (additionalAmount > 0) { stackToBundle.decrement(additionalAmount); storedStack.increment(additionalAmount); @@ -281,7 +279,7 @@ public static Stream getBundledStacks(NbtCompound nbtCompound) { public Optional getTooltipData(ItemStack stack) { boolean wrapped = isWrapped(stack); - if(wrapped) { + if (wrapped) { return Optional.empty(); } @@ -295,24 +293,24 @@ public Optional getTooltipData(ItemStack stack) { public void appendTooltip(ItemStack stack, World world, List tooltip, TooltipContext context) { boolean wrapped = isWrapped(stack); - if(wrapped) { + if (wrapped) { Optional> giver = getWrapper(stack); - if(giver.isPresent()) { - tooltip.add((new TranslatableText("block.spectrum.present.tooltip.wrapped.giver", giver.get().getRight()).formatted(Formatting.GRAY))); - if(context.isAdvanced()) { - tooltip.add((new LiteralText("UUID: " + giver.get().getLeft().toString()).formatted(Formatting.GRAY))); + if (giver.isPresent()) { + tooltip.add((Text.translatable("block.spectrum.present.tooltip.wrapped.giver", giver.get().getRight()).formatted(Formatting.GRAY))); + if (context.isAdvanced()) { + tooltip.add((Text.literal("UUID: " + giver.get().getLeft().toString()).formatted(Formatting.GRAY))); } } else { - tooltip.add((new TranslatableText("block.spectrum.present.tooltip.wrapped").formatted(Formatting.GRAY))); + tooltip.add((Text.translatable("block.spectrum.present.tooltip.wrapped").formatted(Formatting.GRAY))); } } else { - tooltip.add((new TranslatableText("block.spectrum.present.tooltip.description").formatted(Formatting.GRAY))); - tooltip.add((new TranslatableText("block.spectrum.present.tooltip.description2").formatted(Formatting.GRAY))); + tooltip.add((Text.translatable("block.spectrum.present.tooltip.description").formatted(Formatting.GRAY))); + tooltip.add((Text.translatable("block.spectrum.present.tooltip.description2").formatted(Formatting.GRAY))); DefaultedList defaultedList = DefaultedList.of(); Stream bundledStacks = getBundledStacks(stack); bundledStacks.forEach(defaultedList::add); - tooltip.add((new TranslatableText("item.minecraft.bundle.fullness", defaultedList.size(), MAX_STORAGE_STACKS)).formatted(Formatting.GRAY)); + tooltip.add((Text.translatable("item.minecraft.bundle.fullness", defaultedList.size(), MAX_STORAGE_STACKS)).formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlockEntity.java index f69017b4fc..0ee6fa93c1 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/BlockPlacerBlockEntity.java @@ -7,7 +7,6 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.screen.ScreenHandler; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.BlockPos; public class BlockPlacerBlockEntity extends DispenserBlockEntity { @@ -17,7 +16,7 @@ public BlockPlacerBlockEntity(BlockPos pos, BlockState state) { } protected Text getContainerName() { - return new TranslatableText("block.spectrum.block_placer"); + return Text.translatable("block.spectrum.block_placer"); } protected ScreenHandler createScreenHandler(int syncId, PlayerInventory playerInventory) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/DetectorBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/DetectorBlock.java index e254a94020..d60cecb71b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/DetectorBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/DetectorBlock.java @@ -17,12 +17,11 @@ import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import java.util.Random; - public abstract class DetectorBlock extends Block { public static final IntProperty POWER = Properties.POWER; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlock.java index b063ffc8d2..c9338f9970 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlock.java @@ -1,22 +1,20 @@ package de.dafuqs.spectrum.blocks.redstone; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.networking.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.UUID; +import java.util.*; public class PlayerDetectorBlock extends DetectorBlock implements BlockEntityProvider { @@ -41,7 +39,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt String ownerName = getOwnerName(world, pos); if (ownerName != null && !ownerName.equals("")) { - player.sendMessage(new TranslatableText("block.spectrum.player_detector").append(new TranslatableText("container.spectrum.owned_by_player", ownerName)), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.player_detector").append(Text.translatable("container.spectrum.owned_by_player", ownerName)), false); } return ActionResult.CONSUME; } else { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlockEntity.java index 450b725676..14c48fa90f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/PlayerDetectorBlockEntity.java @@ -58,7 +58,7 @@ public String getOwnerName() { @Override public void setOwner(PlayerEntity playerEntity) { this.ownerUUID = playerEntity.getUuid(); - this.ownerName = playerEntity.getName().asString(); + this.ownerName = playerEntity.getName().getString(); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneCalculatorBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneCalculatorBlock.java index 291fd02270..043ed808d7 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneCalculatorBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneCalculatorBlock.java @@ -16,21 +16,20 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; import net.minecraft.state.property.EnumProperty; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.StringIdentifiable; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import net.minecraft.world.TickPriority; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class RedstoneCalculatorBlock extends AbstractRedstoneGateBlock implements BlockEntityProvider { public static EnumProperty CALCULATION_MODE = EnumProperty.of("calculation_mode", CalculationMode.class); @@ -66,7 +65,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (player instanceof ServerPlayerEntity serverPlayerEntity) { // since this triggers both on server and client side: just send the // message once, client side is enough, since it is pretty irrelevant on the server - serverPlayerEntity.sendMessage(new TranslatableText("block.spectrum.redstone_calculator.mode_set").append(new TranslatableText(newModeState.get(CALCULATION_MODE).localizationString)), false); + serverPlayerEntity.sendMessage(Text.translatable("block.spectrum.redstone_calculator.mode_set").append(Text.translatable(newModeState.get(CALCULATION_MODE).localizationString)), false); } this.updatePowered(world, pos, newModeState); return ActionResult.success(world.isClient); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneGravityBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneGravityBlock.java index d01ee7bf7f..6d352e4b21 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneGravityBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneGravityBlock.java @@ -9,10 +9,9 @@ import net.minecraft.state.property.BooleanProperty; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class RedstoneGravityBlock extends FallingBlock { public static final BooleanProperty UNSTABLE = BooleanProperty.of("unstable"); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneTimerBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneTimerBlock.java index 14a155aa1a..9c712c79af 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneTimerBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneTimerBlock.java @@ -12,7 +12,7 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; import net.minecraft.state.property.EnumProperty; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.StringIdentifiable; @@ -20,16 +20,16 @@ import net.minecraft.util.math.BlockBox; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.TickPriority; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; -import java.util.Random; - public class RedstoneTimerBlock extends AbstractRedstoneGateBlock { public static EnumProperty ACTIVE_TIME = EnumProperty.of("active_time", TimingStep.class); public static EnumProperty INACTIVE_TIME = EnumProperty.of("inactive_time", TimingStep.class); + public RedstoneTimerBlock(AbstractBlock.Settings settings) { super(settings); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(POWERED, false).with(ACTIVE_TIME, TimingStep.OneSecond).with(INACTIVE_TIME, TimingStep.OneSecond)); @@ -101,14 +101,14 @@ public void stepTiming(ServerWorld world, BlockPos pos, ServerPlayerEntity serve if (serverPlayerEntity.isSneaking()) { // toggle inactive time TimingStep newStep = blockState.get(INACTIVE_TIME).next(); - serverPlayerEntity.sendMessage(new TranslatableText("block.spectrum.redstone_timer.setting.inactive").append(new TranslatableText(newStep.localizationString)), false); + serverPlayerEntity.sendMessage(Text.translatable("block.spectrum.redstone_timer.setting.inactive").append(Text.translatable(newStep.localizationString)), false); float pitch = 0.5F + newStep.ordinal() * 0.05F; world.playSound(null, pos, SoundEvents.BLOCK_COMPARATOR_CLICK, SoundCategory.BLOCKS, 0.3F, pitch); world.setBlockState(pos, world.getBlockState(pos).with(INACTIVE_TIME, newStep)); } else { // toggle active time TimingStep newStep = blockState.get(ACTIVE_TIME).next(); - serverPlayerEntity.sendMessage(new TranslatableText("block.spectrum.redstone_timer.setting.active").append(new TranslatableText(newStep.localizationString)), false); + serverPlayerEntity.sendMessage(Text.translatable("block.spectrum.redstone_timer.setting.active").append(Text.translatable(newStep.localizationString)), false); float pitch = 0.5F + newStep.ordinal() * 0.05F; world.playSound(null, pos, SoundEvents.BLOCK_COMPARATOR_CLICK, SoundCategory.BLOCKS, 0.3F, pitch); world.setBlockState(pos, world.getBlockState(pos).with(ACTIVE_TIME, newStep)); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlock.java index b07d50f8f4..feed88db24 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlock.java @@ -1,48 +1,35 @@ package de.dafuqs.spectrum.blocks.redstone; -import de.dafuqs.spectrum.helpers.ColorHelper; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.AbstractRedstoneGateBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.DustParticleEffect; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.BooleanProperty; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.util.ActionResult; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; +import net.minecraft.world.event.listener.*; +import org.jetbrains.annotations.*; -import java.util.Optional; -import java.util.Random; +public class RedstoneWirelessBlock extends AbstractRedstoneGateBlock implements BlockEntityProvider, ColorableBlock { -public class RedstoneWirelessBlock extends AbstractRedstoneGateBlock implements BlockEntityProvider { - public static final BooleanProperty SENDER = BooleanProperty.of("sender"); public static final EnumProperty CHANNEL = EnumProperty.of("channel", DyeColor.class); - + public RedstoneWirelessBlock(Settings settings) { super(settings); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(SENDER, true).with(CHANNEL, DyeColor.RED)); } - + @Nullable protected static BlockEntityTicker checkType(BlockEntityType givenType, BlockEntityType expectedType, BlockEntityTicker ticker) { return expectedType == givenType ? (BlockEntityTicker) ticker : null; @@ -64,17 +51,7 @@ public ActionResult onUse(BlockState state, @NotNull World world, BlockPos pos, if (world.isClient) { return ActionResult.SUCCESS; } else { - ItemStack handStack = player.getStackInHand(hand); - Optional itemInHandColor = ColorHelper.getDyeColorOfItemStack(handStack); - if (itemInHandColor.isPresent()) { - DyeColor currentChannel = state.get(CHANNEL); - if (itemInHandColor.get() != currentChannel) { - world.setBlockState(pos, world.getBlockState(pos).with(CHANNEL, itemInHandColor.get())); - if (!player.isCreative()) { - handStack.decrement(1); - } - } - } else { + if (!tryColorUsingStackInHand(world, pos, player, hand)) { toggleSendingMode(world, pos, state); } return ActionResult.CONSUME; @@ -103,7 +80,7 @@ protected void appendProperties(StateManager.@NotNull Builder @Override @Nullable - public GameEventListener getGameEventListener(World world, T blockEntity) { + public GameEventListener getGameEventListener(ServerWorld world, T blockEntity) { return blockEntity instanceof RedstoneWirelessBlockEntity ? ((RedstoneWirelessBlockEntity) blockEntity).getEventListener() : null; } @@ -151,7 +128,7 @@ public BlockEntityTicker getTicker(World world, Block } return null; } - + @Override public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { if (state.get(POWERED)) { @@ -161,5 +138,20 @@ public void randomDisplayTick(BlockState state, World world, BlockPos pos, Rando world.addParticle(DustParticleEffect.DEFAULT, x, y, z, 0.0D, 0.0D, 0.0D); } } - + + @Override + public boolean color(World world, BlockPos pos, DyeColor color) { + BlockState currentState = world.getBlockState(pos); + if (getColor(currentState) == color) { + return false; + } + world.setBlockState(pos, currentState.with(CHANNEL, color)); + return true; + } + + @Override + public DyeColor getColor(BlockState state) { + return state.get(CHANNEL); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlockEntity.java index 21503a08a4..bf28f41c62 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/RedstoneWirelessBlockEntity.java @@ -1,23 +1,17 @@ package de.dafuqs.spectrum.blocks.redstone; -import de.dafuqs.spectrum.events.RedstoneTransferGameEvent; -import de.dafuqs.spectrum.events.SpectrumGameEvents; -import de.dafuqs.spectrum.events.listeners.WirelessRedstoneSignalEventQueue; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.util.DyeColor; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.event.BlockPositionSource; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.events.*; +import de.dafuqs.spectrum.events.listeners.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.nbt.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import net.minecraft.world.event.listener.*; +import org.jetbrains.annotations.*; public class RedstoneWirelessBlockEntity extends BlockEntity implements WirelessRedstoneSignalEventQueue.Callback { @@ -42,7 +36,7 @@ public static void serverTick(@NotNull World world, BlockPos pos, BlockState sta if (isSender(world, pos)) { if (blockEntity.currentSignal != blockEntity.cachedSignal) { blockEntity.currentSignal = blockEntity.cachedSignal; - blockEntity.world.emitGameEvent(SpectrumGameEvents.WIRELESS_REDSTONE_SIGNALS.get(state.get(RedstoneWirelessBlock.CHANNEL)).get(blockEntity.currentSignal), blockEntity.getPos()); + blockEntity.world.emitGameEvent(null, SpectrumGameEvents.WIRELESS_REDSTONE_SIGNALS.get(state.get(RedstoneWirelessBlock.CHANNEL)).get(blockEntity.currentSignal), blockEntity.getPos()); } } else { blockEntity.listener.tick(world); @@ -77,11 +71,11 @@ public int getRange() { } @Override - public boolean canAcceptEvent(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity, BlockPos sourcePos) { - if (event instanceof RedstoneTransferGameEvent redstoneTransferGameEvent) { - return !isSender(this.world, this.pos) && redstoneTransferGameEvent.getDyeColor() == getChannel(this.world, this.pos); - } - return false; + public boolean canAcceptEvent(World world, GameEventListener listener, GameEvent.Message message, Vec3d sourcePos) { + return !this.isRemoved() + && message.getEvent() instanceof RedstoneTransferGameEvent redstoneTransferGameEvent + && !isSender(this.world, this.pos) + && redstoneTransferGameEvent.getDyeColor() == getChannel(this.world, this.pos); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/redstone/WeatherDetectorBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/redstone/WeatherDetectorBlock.java index 718ce1a67c..8a545ecc05 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/redstone/WeatherDetectorBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/redstone/WeatherDetectorBlock.java @@ -3,6 +3,7 @@ import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; public class WeatherDetectorBlock extends DetectorBlock { @@ -13,11 +14,22 @@ public WeatherDetectorBlock(Settings settings) { protected void updateState(BlockState state, World world, BlockPos pos) { int power = 0; - if (world.hasRain(pos.up())) { - if (world.isThundering()) { - power = 15; - } else if (world.isRaining()) { - power = 8; + if (world.isThundering()) { + Biome.Precipitation precipitation = world.getBiome(pos).value().getPrecipitation(); + switch (precipitation) { + case RAIN -> { + power = 15; + } + case SNOW -> { + power = 8; + } + } + } else if (world.isRaining()) { + Biome.Precipitation precipitation = world.getBiome(pos).value().getPrecipitation(); + switch (precipitation) { + case RAIN, SNOW -> { + power = 8; + } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/RockCandy.java b/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/RockCandy.java index 83af0ac8db..78c79bcee5 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/RockCandy.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/RockCandy.java @@ -22,17 +22,17 @@ enum RockCandyVariant implements StringIdentifiable { public static @Nullable RockCandyVariant getFor(ItemStack itemStack) { Item item = itemStack.getItem(); - if(item == Items.SUGAR) { + if (item == Items.SUGAR) { return RockCandyVariant.SUGAR; - } else if(item == SpectrumItems.TOPAZ_POWDER) { + } else if (item == SpectrumItems.TOPAZ_POWDER) { return RockCandyVariant.TOPAZ; - } else if(item == SpectrumItems.AMETHYST_POWDER) { + } else if (item == SpectrumItems.AMETHYST_POWDER) { return RockCandyVariant.AMETHYST; - } else if(item == SpectrumItems.CITRINE_POWDER) { + } else if (item == SpectrumItems.CITRINE_POWDER) { return RockCandyVariant.CITRINE; - } else if(item == SpectrumItems.ONYX_POWDER) { + } else if (item == SpectrumItems.ONYX_POWDER) { return RockCandyVariant.ONYX; - } else if(item == SpectrumItems.MOONSTONE_POWDER) { + } else if (item == SpectrumItems.MOONSTONE_POWDER) { return RockCandyVariant.MOONSTONE; } return null; @@ -45,12 +45,24 @@ public String asString() { public DyeColor getDyeColor() { switch (this) { - case TOPAZ -> { return DyeColor.CYAN; } - case AMETHYST -> { return DyeColor.MAGENTA; } - case CITRINE -> { return DyeColor.YELLOW; } - case ONYX -> { return DyeColor.BLACK; } - case MOONSTONE -> { return DyeColor.WHITE; } - default -> { return DyeColor.LIGHT_GRAY; } + case TOPAZ -> { + return DyeColor.CYAN; + } + case AMETHYST -> { + return DyeColor.MAGENTA; + } + case CITRINE -> { + return DyeColor.YELLOW; + } + case ONYX -> { + return DyeColor.BLACK; + } + case MOONSTONE -> { + return DyeColor.WHITE; + } + default -> { + return DyeColor.LIGHT_GRAY; + } } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java index c91ba9493b..7112c2af7b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/rock_candy/SugarStickBlock.java @@ -25,12 +25,12 @@ import net.minecraft.state.property.IntProperty; import net.minecraft.state.property.Properties; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -38,7 +38,10 @@ import net.minecraft.world.WorldView; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.Collections; +import java.util.EnumMap; +import java.util.List; +import java.util.Map; public class SugarStickBlock extends Block implements RockCandy { @@ -51,7 +54,7 @@ public class SugarStickBlock extends Block implements RockCandy { public static final int REQUIRED_ITEM_COUNT_PER_STAGE = 4; public static final IntProperty AGE = Properties.AGE_2; - public static final BooleanProperty LIQUID_CRYSTAL_LOGGED = SpectrumCommon.LIQUID_CRYSTAL_LOGGED; + public static final BooleanProperty LIQUID_CRYSTAL_LOGGED = SpectrumCommon.LIQUID_CRYSTAL_LOGGED; protected static final VoxelShape SHAPE = Block.createCuboidShape(5.0D, 3.0D, 5.0D, 11.0D, 16.0D, 11.0D); @@ -94,10 +97,10 @@ public boolean hasRandomTicks(BlockState state) { @Override public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) { super.randomDisplayTick(state, world, pos, random); - if(!state.get(LIQUID_CRYSTAL_LOGGED)) { + if (!state.get(LIQUID_CRYSTAL_LOGGED)) { int age = state.get(AGE); - if(age == 2 || (age == 1 ? random.nextBoolean() : random.nextFloat() < 0.25)) { + if (age == 2 || (age == 1 ? random.nextBoolean() : random.nextFloat() < 0.25)) { world.addParticle(new ParticleSpawnerParticleEffect(PARTICLE_SPRITE_IDENTIFIER, 0.1F, ColorHelper.getVec(rockCandyVariant.getDyeColor()), 0.5F, 120, true, true), pos.getX() + 0.25 + random.nextFloat() * 0.5, pos.getY() + 0.25 + random.nextFloat() * 0.5, @@ -110,27 +113,28 @@ public void randomDisplayTick(BlockState state, World world, BlockPos pos, Rando } } + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { super.randomTick(state, world, pos, random); - if(state.get(LIQUID_CRYSTAL_LOGGED)) { + if (state.get(LIQUID_CRYSTAL_LOGGED)) { int age = state.get(AGE); - if(age < Properties.AGE_2_MAX) { + if (age < Properties.AGE_2_MAX) { List itemEntities = world.getNonSpectatingEntities(ItemEntity.class, Box.of(Vec3d.ofCenter(pos), ITEM_SEARCH_RANGE, ITEM_SEARCH_RANGE, ITEM_SEARCH_RANGE)); Collections.shuffle(itemEntities); for (ItemEntity itemEntity : itemEntities) { // is the item also submerged? // lazy, but mostly accurate and performant way to check if it's the same liquid pool - if(!itemEntity.isSubmergedIn(SpectrumFluidTags.LIQUID_CRYSTAL)) { + if (!itemEntity.isSubmergedIn(SpectrumFluidTags.LIQUID_CRYSTAL)) { continue; } ItemStack stack = itemEntity.getStack(); if (stack.getCount() >= REQUIRED_ITEM_COUNT_PER_STAGE) { @Nullable RockCandyVariant itemVariant = RockCandyVariant.getFor(stack); - if(itemVariant != null) { + if (itemVariant != null) { BlockState newState; - if(rockCandyVariant != RockCandyVariant.SUGAR) { + if (rockCandyVariant != RockCandyVariant.SUGAR) { newState = state; } else { newState = SUGAR_STICK_BLOCKS.get(itemVariant).getDefaultState(); @@ -172,16 +176,16 @@ public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos po public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); NbtCompound nbt = stack.getNbt(); - if(nbt != null && nbt.contains("BlockStateTag")) { + if (nbt != null && nbt.contains("BlockStateTag")) { NbtCompound blockStateTag = nbt.getCompound("BlockStateTag"); - if(blockStateTag.contains("age", NbtElement.STRING_TYPE)) { + if (blockStateTag.contains("age", NbtElement.STRING_TYPE)) { String age = blockStateTag.getString("age"); - if("1".equals(age)) { - tooltip.add(new TranslatableText("block.spectrum.sugar_stick.tooltip.medium")); - } else if("2".equals(age)) { - tooltip.add(new TranslatableText("block.spectrum.sugar_stick.tooltip.large")); + if ("1".equals(age)) { + tooltip.add(Text.translatable("block.spectrum.sugar_stick.tooltip.medium")); + } else if ("2".equals(age)) { + tooltip.add(Text.translatable("block.spectrum.sugar_stick.tooltip.large")); } - + } } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarBlock.java index 06dfee8ccb..a97977c641 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarBlock.java @@ -19,6 +19,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3f; +import net.minecraft.util.math.random.Random; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.BlockView; import net.minecraft.world.World; @@ -26,8 +27,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class ShootingStarBlock extends BlockWithEntity { protected static final VoxelShape SHAPE = Block.createCuboidShape(2.0D, 0.0D, 2.0D, 14.0D, 12.0D, 14.0D); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarItem.java b/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarItem.java index f73c85d370..56fe507198 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/shooting_star/ShootingStarItem.java @@ -10,7 +10,6 @@ import net.minecraft.nbt.NbtElement; import net.minecraft.stat.Stats; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Formatting; import net.minecraft.util.math.Vec3d; @@ -43,7 +42,7 @@ public static int getRemainingHits(@NotNull ItemStack itemStack) { ItemStack stack = shootingStarItem.getDefaultStack(); NbtCompound nbtCompound = new NbtCompound(); nbtCompound.putInt("remaining_hits", remainingHits); - if(hardened) { + if (hardened) { nbtCompound.putBoolean("Hardened", true); } stack.setNbt(nbtCompound); @@ -87,8 +86,8 @@ public ActionResult useOnBlock(@NotNull ItemUsageContext context) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - if(isHardened(stack)) { - tooltip.add(new TranslatableText("item.spectrum.shooting_star.tooltip.hardened").formatted(Formatting.GRAY)); + if (isHardened(stack)) { + tooltip.add(Text.translatable("item.spectrum.shooting_star.tooltip.hardened").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlock.java index 2f9974510a..ed874d7905 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlock.java @@ -15,7 +15,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.BlockRotation; import net.minecraft.util.Hand; @@ -82,7 +82,7 @@ public static boolean verifyStructure(World world, @NotNull BlockPos blockPos, @ } else { lastBlockRotation = BlockRotation.NONE; } - PatchouliAPI.get().showMultiblock(multiblock, new TranslatableText("multiblock.spectrum.spirit_instiller.structure"), blockPos.down(2).offset(Support.directionFromRotation(lastBlockRotation), 2), lastBlockRotation); + PatchouliAPI.get().showMultiblock(multiblock, Text.translatable("multiblock.spectrum.spirit_instiller.structure"), blockPos.down(2).offset(Support.directionFromRotation(lastBlockRotation), 2), lastBlockRotation); } else { scatterContents(world, blockPos); } @@ -131,7 +131,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (blockEntity instanceof SpiritInstillerBlockEntity spiritInstillerBlockEntity) { if (verifyStructure(world, pos, (ServerPlayerEntity) player, spiritInstillerBlockEntity)) { ItemStack handStack = player.getStackInHand(hand); - if(exchangeStack(world, pos, player, hand, handStack, spiritInstillerBlockEntity)) { + if (exchangeStack(world, pos, player, hand, handStack, spiritInstillerBlockEntity)) { spiritInstillerBlockEntity.setOwner(player); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlockEntity.java index 07a58795ca..8766bbd7fe 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_instiller/SpiritInstillerBlockEntity.java @@ -1,42 +1,35 @@ package de.dafuqs.spectrum.blocks.spirit_instiller; -import de.dafuqs.spectrum.blocks.InWorldInteractionBlockEntity; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.decoration.GemstoneChimeBlock; -import de.dafuqs.spectrum.blocks.item_bowl.ItemBowlBlockEntity; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.spirit_instiller.SpiritInstillerRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import de.dafuqs.spectrum.registries.color.ItemColors; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventories; -import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.recipe.Recipe; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3i; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.decoration.*; +import de.dafuqs.spectrum.blocks.item_bowl.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.spirit_instiller.*; +import de.dafuqs.spectrum.registries.*; +import de.dafuqs.spectrum.registries.color.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.particle.*; +import net.minecraft.recipe.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; import java.util.*; @@ -56,7 +49,7 @@ public class SpiritInstillerBlockEntity extends InWorldInteractionBlockEntity im private final Inventory autoCraftingInventory; // 0: instiller stack; 1-2: item bowl stacks private boolean inventoryChanged; private UUID ownerUUID; - private Map upgrades; + private UpgradeHolder upgrades; private BlockRotation multiblockRotation = BlockRotation.NONE; private SpiritInstillerRecipe currentRecipe; private int craftingTime; @@ -154,7 +147,7 @@ private static void calculateCurrentRecipe(@NotNull World world, @NotNull Spirit SpiritInstillerRecipe spiritInstillerRecipe = world.getRecipeManager().getFirstMatch(SpectrumRecipeTypes.SPIRIT_INSTILLING, spiritInstillerBlockEntity.autoCraftingInventory, world).orElse(null); if (spiritInstillerRecipe != null) { spiritInstillerBlockEntity.currentRecipe = spiritInstillerRecipe; - spiritInstillerBlockEntity.craftingTimeTotal = (int) Math.ceil(spiritInstillerRecipe.getCraftingTime() / spiritInstillerBlockEntity.upgrades.get(Upgradeable.UpgradeType.SPEED)); + spiritInstillerBlockEntity.craftingTimeTotal = (int) Math.ceil(spiritInstillerRecipe.getCraftingTime() / spiritInstillerBlockEntity.upgrades.getEffectiveValue(Upgradeable.UpgradeType.SPEED)); } } @@ -164,7 +157,7 @@ private static void calculateCurrentRecipe(@NotNull World world, @NotNull Spirit spiritInstillerBlockEntity.canCraft = spiritInstillerBlockEntity.currentRecipe.canCraftWithStacks(instillerStack, spiritInstillerBlockEntity.autoCraftingInventory.getStack(1), spiritInstillerBlockEntity.autoCraftingInventory.getStack(2)); } - spiritInstillerBlockEntity.updateInClientWorld(world, spiritInstillerBlockEntity.pos); + spiritInstillerBlockEntity.updateInClientWorld(); } public static BlockPos getItemBowlPos(@NotNull SpiritInstillerBlockEntity spiritInstillerBlockEntity, boolean right) { @@ -247,12 +240,12 @@ public static void craftSpiritInstillerRecipe(World world, @NotNull SpiritInstil public static void decrementItemsInInstillerAndBowls(@NotNull SpiritInstillerBlockEntity spiritInstillerBlockEntity) { SpiritInstillerRecipe recipe = spiritInstillerBlockEntity.currentRecipe; - + double efficiencyModifier = 1.0; - if (!recipe.areYieldAndEfficiencyUpgradesDisabled() && spiritInstillerBlockEntity.upgrades.get(UpgradeType.EFFICIENCY) != 1.0) { - efficiencyModifier = 1.0 / spiritInstillerBlockEntity.upgrades.get(UpgradeType.EFFICIENCY); + if (!recipe.areYieldAndEfficiencyUpgradesDisabled() && spiritInstillerBlockEntity.upgrades.getEffectiveValue(UpgradeType.EFFICIENCY) != 1.0) { + efficiencyModifier = 1.0 / spiritInstillerBlockEntity.upgrades.getEffectiveValue(UpgradeType.EFFICIENCY); } - + BlockEntity leftBowlBlockEntity = spiritInstillerBlockEntity.world.getBlockEntity(getItemBowlPos(spiritInstillerBlockEntity, false)); BlockEntity rightBowlBlockEntity = spiritInstillerBlockEntity.world.getBlockEntity(getItemBowlPos(spiritInstillerBlockEntity, true)); if (leftBowlBlockEntity instanceof ItemBowlBlockEntity leftBowl && rightBowlBlockEntity instanceof ItemBowlBlockEntity rightBowl) { @@ -268,19 +261,20 @@ public static void decrementItemsInInstillerAndBowls(@NotNull SpiritInstillerBlo int amountAfterEfficiencyModFirst = Support.getIntFromDecimalWithChance(ingredientStacks.get(SpiritInstillerRecipe.FIRST_INGREDIENT).getCount() * efficiencyModifier, spiritInstillerBlockEntity.world.random); int amountAfterEfficiencyModSecond = Support.getIntFromDecimalWithChance(ingredientStacks.get(SpiritInstillerRecipe.SECOND_INGREDIENT).getCount() * efficiencyModifier, spiritInstillerBlockEntity.world.random); boolean leftIsFirstIngredient = ingredientStacks.get(SpiritInstillerRecipe.FIRST_INGREDIENT).test(leftBowl.getStack(0)); + Vec3d particlePos = new Vec3d(spiritInstillerBlockEntity.pos.getX() + 0.5, spiritInstillerBlockEntity.pos.getY() + 1, spiritInstillerBlockEntity.pos.getZ() + 0.5); if (leftIsFirstIngredient) { if (amountAfterEfficiencyModFirst > 0) { - leftBowl.decrementBowlStack(spiritInstillerBlockEntity.pos, amountAfterEfficiencyModFirst, true); + leftBowl.decrementBowlStack(particlePos, amountAfterEfficiencyModFirst, true); } if (amountAfterEfficiencyModSecond > 0) { - rightBowl.decrementBowlStack(spiritInstillerBlockEntity.pos, amountAfterEfficiencyModSecond, true); + rightBowl.decrementBowlStack(particlePos, amountAfterEfficiencyModSecond, true); } } else { if (amountAfterEfficiencyModFirst > 0) { - rightBowl.decrementBowlStack(spiritInstillerBlockEntity.pos, amountAfterEfficiencyModFirst, true); + rightBowl.decrementBowlStack(particlePos, amountAfterEfficiencyModFirst, true); } if (amountAfterEfficiencyModSecond > 0) { - leftBowl.decrementBowlStack(spiritInstillerBlockEntity.pos, amountAfterEfficiencyModSecond, true); + leftBowl.decrementBowlStack(particlePos, amountAfterEfficiencyModSecond, true); } } } @@ -306,23 +300,29 @@ public void readNbt(NbtCompound nbt) { } else { this.ownerUUID = null; } - if (nbt.contains("MulitblockRotation")) { - this.multiblockRotation = BlockRotation.valueOf(nbt.getString("MulitblockRotation").toUpperCase(Locale.ROOT)); + if (nbt.contains("MultiblockRotation")) { + try { + this.multiblockRotation = BlockRotation.valueOf(nbt.getString("MultiblockRotation").toUpperCase(Locale.ROOT)); + } catch (Exception e) { + this.multiblockRotation = BlockRotation.NONE; + } } this.currentRecipe = null; if (nbt.contains("CurrentRecipe")) { String recipeString = nbt.getString("CurrentRecipe"); - if (!recipeString.isEmpty() && world != null) { - Optional optionalRecipe = world.getRecipeManager().get(new Identifier(recipeString)); + if (!recipeString.isEmpty() && SpectrumCommon.minecraftServer != null) { + Optional optionalRecipe = SpectrumCommon.minecraftServer.getRecipeManager().get(new Identifier(recipeString)); if (optionalRecipe.isPresent() && optionalRecipe.get() instanceof SpiritInstillerRecipe spiritInstillerRecipe) { this.currentRecipe = spiritInstillerRecipe; } } } - + if (nbt.contains("Upgrades", NbtElement.LIST_TYPE)) { - this.upgrades = Upgradeable.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + this.upgrades = UpgradeHolder.fromNbt(nbt.getList("Upgrades", NbtElement.COMPOUND_TYPE)); + } else { + this.upgrades = new UpgradeHolder(); } } @@ -333,9 +333,9 @@ public void writeNbt(NbtCompound nbt) { nbt.putShort("CraftingTimeTotal", (short) this.craftingTimeTotal); nbt.putBoolean("CanCraft", this.canCraft); nbt.putBoolean("InventoryChanged", this.inventoryChanged); - nbt.putString("MulitblockRotation", this.multiblockRotation.toString()); + nbt.putString("MultiblockRotation", this.multiblockRotation.toString()); if (this.upgrades != null) { - nbt.put("Upgrades", Upgradeable.toNbt(this.upgrades)); + nbt.put("Upgrades", this.upgrades.toNbt()); } if (this.ownerUUID != null) { nbt.putUuid("OwnerUUID", this.ownerUUID); @@ -345,11 +345,26 @@ public void writeNbt(NbtCompound nbt) { } } + + // Called when the chunk is first loaded to initialize this on the clients + @Override + public NbtCompound toInitialChunkDataNbt() { + NbtCompound nbtCompound = new NbtCompound(); + Inventories.writeNbt(nbtCompound, this.getItems()); + nbtCompound.putShort("CraftingTime", (short) this.craftingTime); + nbtCompound.putShort("CraftingTimeTotal", (short) this.craftingTimeTotal); + nbtCompound.putString("MultiblockRotation", this.multiblockRotation.toString()); + if (this.currentRecipe != null && canCraft) { + nbtCompound.putString("CurrentRecipe", this.currentRecipe.getId().toString()); + } + return nbtCompound; + } + private void doInstillerParticles(@NotNull World world) { - Random random = world.random; Optional stackColor = ItemColors.ITEM_COLORS.getMapping(this.getStack(0).getItem()); if (stackColor.isPresent()) { + Random random = world.random; ParticleEffect particleEffect = SpectrumParticleTypes.getSparkleRisingParticle(stackColor.get()); world.addParticle(particleEffect, pos.getX() + 0.25 + random.nextDouble() * 0.5, @@ -387,13 +402,13 @@ private void doItemBowlOrbs(@NotNull World world) { BlockPos itemBowlPos = pos.add(getItemBowlHorizontalPositionOffset(false).up()); BlockEntity blockEntity = world.getBlockEntity(itemBowlPos); if (blockEntity instanceof ItemBowlBlockEntity itemBowlBlockEntity) { - itemBowlBlockEntity.spawnSphereParticlesTo(pos); + itemBowlBlockEntity.spawnOrbParticles(new Vec3d(this.pos.getX() + 0.5, this.pos.getY() + 1.0, this.pos.getZ() + 0.5)); } itemBowlPos = pos.add(getItemBowlHorizontalPositionOffset(true).up()); blockEntity = world.getBlockEntity(itemBowlPos); if (blockEntity instanceof ItemBowlBlockEntity itemBowlBlockEntity) { - itemBowlBlockEntity.spawnSphereParticlesTo(pos); + itemBowlBlockEntity.spawnOrbParticles(new Vec3d(this.pos.getX() + 0.5, this.pos.getY() + 1.0, this.pos.getZ() + 0.5)); } } @@ -417,12 +432,12 @@ public void calculateUpgrades() { this.upgrades = Upgradeable.calculateUpgradeMods2(world, pos, multiblockRotation, 4, 1, this.ownerUUID); this.markDirty(); } - + @Override - public float getUpgradeValue(UpgradeType upgradeType) { - return this.upgrades.get(upgradeType); + public UpgradeHolder getUpgradeHolder() { + return this.upgrades; } - + // PLAYER OWNED // "owned" is not to be taken literally here. The owner // is always set to the last player interacted with to trigger advancements @@ -437,20 +452,6 @@ public void setOwner(PlayerEntity playerEntity) { this.markDirty(); } - // Called when the chunk is first loaded to initialize this - @Override - public NbtCompound toInitialChunkDataNbt() { - NbtCompound nbtCompound = new NbtCompound(); - Inventories.writeNbt(nbtCompound, this.getItems()); - nbtCompound.putShort("CraftingTime", (short) this.craftingTime); - nbtCompound.putShort("CraftingTimeTotal", (short) this.craftingTimeTotal); - nbtCompound.putString("MulitblockRotation", this.multiblockRotation.toString()); - if (this.currentRecipe != null && canCraft) { - nbtCompound.putString("CurrentRecipe", this.currentRecipe.getId().toString()); - } - return nbtCompound; - } - public BlockRotation getMultiblockRotation() { return multiblockRotation; } @@ -467,9 +468,5 @@ public void inventoryChanged() { this.autoCraftingInventory.clear(); markDirty(); } - - public Map getUpgrades() { - return this.upgrades; - } - + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/OminousSaplingBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/OminousSaplingBlock.java index 6ac8ca0711..aa5646c8d1 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/OminousSaplingBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/OminousSaplingBlock.java @@ -1,27 +1,23 @@ package de.dafuqs.spectrum.blocks.spirit_sallow; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.minecraft.block.BlockEntityProvider; -import net.minecraft.block.BlockState; -import net.minecraft.block.PlantBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.text.Text; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Random; -import java.util.UUID; +import java.util.*; public class OminousSaplingBlock extends PlantBlock implements BlockEntityProvider { @@ -34,14 +30,15 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt if (!world.isClient()) { OminousSaplingBlockEntity ominousSaplingBlockEntity = getBlockEntity(world, pos); if (ominousSaplingBlockEntity != null) { - player.sendMessage(Text.of("Sapling UUID: " + ominousSaplingBlockEntity.getOwnerUUID()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.of("Sapling owner UUID: " + ominousSaplingBlockEntity.getOwnerUUID()), false); } else { - player.sendMessage(Text.of("Sapling block entity putt :("), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.of("Sapling block entity putt :("), false); } } return ActionResult.SUCCESS; } + @Override public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { if (world.getLightLevel(pos.up()) >= 9 && random.nextInt(2) == 0) { this.generateOminousTree(world, pos, state, random); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritSallowLeavesBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritSallowLeavesBlock.java index 1d896914ef..8624c4c289 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritSallowLeavesBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritSallowLeavesBlock.java @@ -4,10 +4,9 @@ import net.minecraft.block.BlockState; import net.minecraft.block.LeavesBlock; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; -import java.util.Random; - public class SpiritSallowLeavesBlock extends LeavesBlock { public SpiritSallowLeavesBlock(Settings settings) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVines.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVines.java index d87187607b..a72a411136 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVines.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVines.java @@ -20,7 +20,7 @@ public interface SpiritVines { VoxelShape SHAPE = Block.createCuboidShape(1.0D, 0.0D, 1.0D, 15.0D, 16.0D, 15.0D); EnumProperty YIELD = EnumProperty.of("yield", YieldType.class); - + static ActionResult pick(BlockState blockState, World world, BlockPos blockPos) { if (canBeHarvested(blockState)) { Block.dropStack(world, blockPos, new ItemStack(getYieldItem(blockState, false), 1)); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesBodyBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesBodyBlock.java index 7db47a374e..835703484c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesBodyBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesBodyBlock.java @@ -17,11 +17,10 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import java.util.Random; - public class SpiritVinesBodyBlock extends AbstractPlantBlock implements SpiritVines { private final BuiltinGemstoneColor gemstoneColor; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesHeadBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesHeadBlock.java index 31bfab48f2..d8af56cf6b 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesHeadBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/SpiritVinesHeadBlock.java @@ -16,11 +16,10 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import java.util.Random; - public class SpiritVinesHeadBlock extends AbstractPlantStemBlock implements SpiritVines { private final BuiltinGemstoneColor gemstoneColor; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/WindStrength.java b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/WindStrength.java index c5774561ac..0000136b2c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/WindStrength.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/spirit_sallow/WindStrength.java @@ -1,32 +1,43 @@ package de.dafuqs.spectrum.blocks.spirit_sallow; +import com.google.common.collect.ImmutableList; +import it.unimi.dsi.fastutil.ints.IntRBTreeSet; +import it.unimi.dsi.fastutil.ints.IntSortedSet; import net.minecraft.client.MinecraftClient; import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.noise.SimplexNoiseSampler; -import net.minecraft.world.gen.random.SimpleRandom; +import net.minecraft.util.math.random.Random; public class WindStrength { - private static SimplexNoiseSampler samplerX; - private static SimplexNoiseSampler samplerY; - private static SimplexNoiseSampler samplerZ; + private SimplexNoiseSampler[] octaveSamplers = new SimplexNoiseSampler[1]; + private final IntSortedSet octaves = new IntRBTreeSet(ImmutableList.of(-2, -1, 0)); private static long cachedTick; - public Vec3d cachedValue; - public Vec3d getWindStrength(long tick) { - if (samplerX == null) { - samplerX = new SimplexNoiseSampler(new SimpleRandom(0)); - samplerY = new SimplexNoiseSampler(new SimpleRandom(1)); - samplerZ = new SimplexNoiseSampler(new SimpleRandom(2)); + public Vec3d getWindStrength(long tick, Random random) { + int i = -octaves.firstInt(); + int j = octaves.lastInt(); + int k = i + j + 1; + if (k < 1) { + throw new IllegalArgumentException("Total number of octaves needs to be >= 1"); + } else { + SimplexNoiseSampler simplexNoiseSampler = new SimplexNoiseSampler(random); + if (j >= 0 && j < k && octaves.contains(0)) { + this.octaveSamplers[j] = simplexNoiseSampler; + this.octaveSamplers = new SimplexNoiseSampler[k]; + if (octaves.contains(0)) { + this.octaveSamplers[j] = simplexNoiseSampler; + } + } } if (tick != cachedTick) { - cachedValue = new Vec3d( - samplerX.sample(0, 0, (tick + MinecraftClient.getInstance().getTickDelta()) / 512D), - samplerY.sample(0, 0, (tick + MinecraftClient.getInstance().getTickDelta()) / 512D), - samplerZ.sample(0, 0, (tick + MinecraftClient.getInstance().getTickDelta()) / 512D) + cachedValue = new Vec3d(octaveSamplers[0].sample(0, 0, (tick + MinecraftClient.getInstance().getTickDelta()) / 512D), + octaveSamplers[1].sample(0, 0, (tick + MinecraftClient.getInstance().getTickDelta()) / 512D), + octaveSamplers[2].sample(0, 0, (tick + MinecraftClient.getInstance().getTickDelta()) / 512D) + ); cachedTick = tick; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StoneSettingWorkshopBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StoneSettingWorkshopBlockEntityRenderer.java deleted file mode 100644 index 4503231fc6..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StoneSettingWorkshopBlockEntityRenderer.java +++ /dev/null @@ -1,93 +0,0 @@ -/*package de.dafuqs.spectrum.blocks.stonesetting_workshop; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory.Context; -import net.minecraft.client.render.model.json.ModelTransformation; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.Vec3f; - -import static de.dafuqs.spectrum.blocks.stonesetting_workshop.StonesettingWorkshopBlockEntity.INFUSEE_SLOT; -import static de.dafuqs.spectrum.blocks.stonesetting_workshop.StonesettingWorkshopBlockEntity.SHARD_SLOT; - -public class StoneSettingWorkshopBlockEntityRenderer implements BlockEntityRenderer { - - public StoneSettingWorkshopBlockEntityRenderer(Context ctx) { - - } - - @Override - public void render(StonesettingWorkshopBlockEntity entity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - - var world = entity.getWorld(); - - if (!entity.isEmpty() && world != null) { - var time = world.getTime() % 500000; - - tryRenderGraces(entity, time, tickDelta, matrices, vertexConsumers, light, overlay); - tryRenderInfusee(entity, time, tickDelta, matrices, vertexConsumers, light, overlay); - } - } - - /** - * Renders the crystal graces around the infusee - */ - /*private void tryRenderGraces(StonesettingWorkshopBlockEntity entity, float time, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - var inv = entity.getInventory(); - var rotation = 0f; - var filledSlots = entity.getFilledGraceSlots(); - - //Make sure to account for the crystal shard, that is a grace too. - if (!inv.get(SHARD_SLOT).isEmpty()) - filledSlots++; - - var offset = 360f / filledSlots; - - for (int i = 0; i <= SHARD_SLOT; i++) { - - //Skip rendering empty slots - if (inv.get(i).isEmpty()) - continue; - - matrices.push(); - - matrices.translate(0.5, 1.35, 0.5); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(rotation + time + tickDelta)); - rotation += offset; - - matrices.translate(1, 0 + (Math.sin((time + tickDelta) / 15) / 4), 0); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(90F)); - - renderItem(inv.get(i), matrices, vertexConsumers, light, overlay); - - matrices.pop(); - } - } - - /** - * Renders the infusee - */ - /*private void tryRenderInfusee(StonesettingWorkshopBlockEntity entity, float time, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - var infusee = entity.getInventory().get(INFUSEE_SLOT); - - if (infusee.isEmpty()) - return; - - matrices.push(); - - matrices.translate(0.5, 1.35, 0.5); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(time + tickDelta)); - matrices.translate(0, 0 + (Math.sin((time + tickDelta) / 15) / 4), 0); - - renderItem(infusee, matrices, vertexConsumers, light, overlay); - - matrices.pop(); - } - - private void renderItem(ItemStack item, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - MinecraftClient.getInstance().getItemRenderer().renderItem(item, ModelTransformation.Mode.GROUND, light, overlay, matrices, vertexConsumers, 0); - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StonesettingWorkshopBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StonesettingWorkshopBlock.java deleted file mode 100644 index 6dcfa236e5..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StonesettingWorkshopBlock.java +++ /dev/null @@ -1,90 +0,0 @@ -/*package de.dafuqs.spectrum.blocks.stonesetting_workshop; - -import net.minecraft.block.*; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; - -public class StonesettingWorkshopBlock extends BlockWithEntity { - - private static final VoxelShape SHAPE = Block.createCuboidShape(1, 0, 1, 15, 15, 15); - - public StonesettingWorkshopBlock(Settings settings) { - super(settings); - } - - @Override - public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - - if(hand == Hand.OFF_HAND) - return super.onUse(state, world, pos, player, hand, hit); - - var blockEntity = world.getBlockEntity(pos); - if (blockEntity instanceof StonesettingWorkshopBlockEntity workshop) { - - var stack = player.getStackInHand(hand); - if (stack.isEmpty()) { - var extracted = workshop.tryExtractItem(player, hand); - - if (extracted) - return ActionResult.success(true); - - } - else { - var inserted = workshop.tryInsertItem(stack, player, hand); - - if (inserted) - return ActionResult.success(true); - - } - } - - return super.onUse(state, world, pos, player, hand, hit); - } - - @Override - public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { - if (!newState.getBlock().equals(this) && world.getBlockEntity(pos) instanceof StonesettingWorkshopBlockEntity workshop) { // happens when filling with fluid - ItemScatterer.spawn(world, pos, workshop.getInventory()); - } - super.onStateReplaced(state, world, pos, newState, moved); - } - - @Override - public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - return SHAPE; - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Override - public boolean isTranslucent(BlockState state, BlockView world, BlockPos pos) { - return true; - } - - @Nullable - @Override - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return super.getTicker(world, state, type); - } - - @Nullable - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new StonesettingWorkshopBlockEntity(pos, state); - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StonesettingWorkshopBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StonesettingWorkshopBlockEntity.java deleted file mode 100644 index 7eb46eda31..0000000000 --- a/src/main/java/de/dafuqs/spectrum/blocks/stonesetting_workshop/StonesettingWorkshopBlockEntity.java +++ /dev/null @@ -1,191 +0,0 @@ -/*package de.dafuqs.spectrum.blocks.stonesetting_workshop; - -import de.dafuqs.spectrum.items.CrystalGraceItem; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import de.dafuqs.spectrum.registries.SpectrumItemTags; -import net.id.incubus_core.be.IncubusBaseBE; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventories; -import net.minecraft.item.ArmorItem; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ToolItem; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.util.Hand; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; - -public class StonesettingWorkshopBlockEntity extends IncubusBaseBE { - - private final DefaultedList inventory = DefaultedList.ofSize(11, ItemStack.EMPTY); - public static final int GRACE_SLOTS_END = 7, SHARD_SLOT = 8, INFUSEE_SLOT = 9, MIDNIGHT_SLOT = 10; - - private int filledGraceSlots; - - public StonesettingWorkshopBlockEntity(BlockPos pos, BlockState state) { - super(SpectrumBlockEntities.STONESETTING_WORKSHOP, pos, state); - } - - /** - * Attempts to insert an item, returns whether that insertion was successful. - */ - /*public boolean tryInsertItem(ItemStack stack, PlayerEntity player, Hand hand) { - - if (world == null) - return false; - - var item = stack.getItem(); - var success = false; - - // Try to insert crystal graces in one of the first 8 slots - if (item instanceof CrystalGraceItem) { - - success = tryInsertGrace(stack); - if (success) - clearHand(player, hand); - - } - - //Any crystal shards in the 9th slot? - if (stack.isIn(SpectrumItemTags.GEMSTONE_SHARDS) && inventory.get(SHARD_SLOT).isEmpty()) { - - inventory.set(SHARD_SLOT, new ItemStack(stack.getItem())); - stack.decrement(1); - - success = true; - } - - //If this is what we are infusing, try to put it in the last slot - if (item instanceof ToolItem || item instanceof ArmorItem && inventory.get(INFUSEE_SLOT).isEmpty()) { - - inventory.set(INFUSEE_SLOT, stack); - clearHand(player, hand); - - success = true; - } - - if(!world.isClient()) - sync(); - markDirty(); - - return success; - } - - /** - * Oppositely, tries to extract items - */ - - /*public boolean tryExtractItem(PlayerEntity player, Hand hand) { - - if (world == null) - return false; - - var swing = false; - - if (player.isSneaking() && !inventory.get(INFUSEE_SLOT).isEmpty()) { - player.setStackInHand(hand, inventory.get(INFUSEE_SLOT)); - inventory.set(INFUSEE_SLOT, ItemStack.EMPTY); - swing = true; - } - - graces: { - if (!player.isSneaking()) { - - if (!inventory.get(SHARD_SLOT).isEmpty()) { - - swing = true; - break graces; - } - - player.setStackInHand(hand, tryExtractGrace()); - if (player.getStackInHand(hand).isEmpty()) - swing = true; - } - } - - if (!world.isClient()) - sync(); - markDirty(); - - return swing; - } - - private void clearHand(PlayerEntity player, Hand hand) { - player.setStackInHand(hand, ItemStack.EMPTY); - } - - private boolean tryInsertGrace(ItemStack stack) { - filledGraceSlots = 0; - - for (int i = 0; i <= GRACE_SLOTS_END; i++) { - - if (!inventory.get(i).isEmpty()) { - filledGraceSlots++; - continue; - } - - inventory.set(i, stack); - filledGraceSlots++; - return true; - } - return false; - } - - private ItemStack tryExtractGrace() { - - if (filledGraceSlots == 0) - return ItemStack.EMPTY; - - var extractedGrace = ItemStack.EMPTY; - - for (int i = GRACE_SLOTS_END; i >= 0; i--) { - var slot = inventory.get(i); - - if (!slot.isEmpty()) { - extractedGrace = slot; - inventory.set(i, ItemStack.EMPTY); - filledGraceSlots--; - break; - } - } - - return extractedGrace; - } - - DefaultedList getInventory() { - return inventory; - } - - public boolean isEmpty() { - return inventory.isEmpty(); - } - - public int getFilledGraceSlots() { - return filledGraceSlots; - } - - @Override - public void save(NbtCompound nbt) { - super.save(nbt); - Inventories.writeNbt(nbt, inventory); - nbt.putInt("filledGraceSlots", filledGraceSlots); - } - - @Override - public void load(NbtCompound nbt) { - super.load(nbt); - Inventories.readNbt(nbt, inventory); - filledGraceSlots = nbt.getInt("filledGraceSlots"); - } - - @Override - public void saveClient(NbtCompound nbt) { - save(nbt); - } - - @Override - public void loadClient(NbtCompound nbt) { - load(nbt); - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/structure/DikeGateBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/structure/DikeGateBlock.java index 14a221144f..1032680cdb 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/structure/DikeGateBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/structure/DikeGateBlock.java @@ -45,7 +45,7 @@ public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos } public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - if(context.isHolding(this.asItem())) { + if (context.isHolding(this.asItem())) { return VoxelShapes.fullCube(); } else { return getCollisionShape(state, world, pos, context); @@ -75,7 +75,7 @@ public void punishEntityWithoutAzureDike(BlockView world, BlockPos pos, Entity e int charges = AzureDikeProvider.getAzureDikeCharges(livingEntity); if (charges == 0) { entity.damage(SpectrumDamageSources.DIKE_GATE, 1); - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(serverWorld, pos, SpectrumParticleTypes.BLUE_CRAFTING, 10); + SpectrumS2CPacketSender.playParticles(serverWorld, pos, SpectrumParticleTypes.BLUE_CRAFTING, 10); if (entity instanceof ServerPlayerEntity serverPlayerEntity && (!decreasedSounds || ((ServerWorld) world).getTime() % 10 == 0)) { serverPlayerEntity.playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 0.75F, 1.0F); } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/structure/InvisibleWallBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/structure/InvisibleWallBlock.java index 0ce2f85882..79d4719c9f 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/structure/InvisibleWallBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/structure/InvisibleWallBlock.java @@ -15,7 +15,7 @@ public InvisibleWallBlock(Settings settings) { } public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { - if(context.isHolding(this.asItem())) { + if (context.isHolding(this.asItem())) { return VoxelShapes.fullCube(); } else { return VoxelShapes.empty(); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationControllerBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationControllerBlockEntity.java index 2392b106fa..10e4b77a33 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationControllerBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationControllerBlockEntity.java @@ -63,9 +63,14 @@ public static void serverTick(@NotNull World world, BlockPos blockPos, BlockStat } private static void calculateLocationData(World world, BlockPos blockPos, @NotNull BlockState blockState, @NotNull PreservationControllerBlockEntity blockEntity) { - Direction facing = world.getBlockState(blockPos).get(PreservationControllerBlock.FACING); + BlockState state = world.getBlockState(blockPos); + if(!state.isOf(SpectrumBlocks.PRESERVATION_CONTROLLER)) { + return; + } + + Direction facing = state.get(PreservationControllerBlock.FACING); BlockPos centerPos = blockPos; - if(blockEntity.checkBoxOffset != null) { + if (blockEntity.checkBoxOffset != null) { centerPos = Support.directionalOffset(blockEntity.pos, blockEntity.checkBoxOffset, blockState.get(PreservationControllerBlock.FACING)); } if (facing == Direction.NORTH || facing == Direction.SOUTH) { @@ -138,24 +143,20 @@ public void readNbt(NbtCompound tag) { public void spawnParticles() { if (spawnParticles) { - if(checkBox != null) { - BlockPos centerPos = this.pos; - if(checkBoxOffset != null) { - centerPos = Support.directionalOffset(pos, checkBoxOffset, world.getBlockState(pos).get(PreservationControllerBlock.FACING)); - } - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(centerPos), ParticleTypes.FLAME, 1, - new Vec3d(0, 0, 0), - new Vec3d(0.1, 0.1, 0.1)); - - SpectrumS2CPacketSender.playParticleWithExactOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(centerPos), ParticleTypes.SMOKE, 250, + if (checkBox != null) { + BlockPos centerPos = this.pos; + if (checkBoxOffset != null) { + centerPos = Support.directionalOffset(pos, checkBoxOffset, world.getBlockState(pos).get(PreservationControllerBlock.FACING)); + } + SpectrumS2CPacketSender.playParticles((ServerWorld) world, centerPos, ParticleTypes.FLAME, 1); + + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(centerPos), ParticleTypes.SMOKE, 250, new Vec3d(checkBox.getXLength() / 2, checkBox.getYLength() / 2, checkBox.getZLength() / 2), - new Vec3d(0, 0, 0)); - } + Vec3d.ZERO); + } - if(destinationPos != null) { - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(destinationPos), ParticleTypes.END_ROD, 1, - new Vec3d(0, 0, 0), - new Vec3d(0.1, 0.1, 0.1)); + if (destinationPos != null) { + SpectrumS2CPacketSender.playParticles((ServerWorld) world, destinationPos, ParticleTypes.END_ROD, 1); } } } @@ -166,7 +167,12 @@ public void toggleParticles() { public void openExit() { boolean didSomething = false; - Direction facing = world.getBlockState(pos).get(PreservationControllerBlock.FACING); + BlockState state = world.getBlockState(pos); + if(!state.isOf(SpectrumBlocks.PRESERVATION_CONTROLLER)) { + return; + } + + Direction facing = state.get(PreservationControllerBlock.FACING); if (facing == Direction.NORTH || facing == Direction.SOUTH) { for (int x = -1; x < 2; x++) { for (int y = -3; y < 0; y++) { diff --git a/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationRoundelBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationRoundelBlockEntity.java index d510a4e4c3..a67e67a377 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationRoundelBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/structure/PreservationRoundelBlockEntity.java @@ -43,9 +43,9 @@ public void readNbt(NbtCompound nbt) { super.readNbt(nbt); this.requiredItems = new ArrayList<>(); if (nbt.contains("RequiredItems", NbtElement.LIST_TYPE)) { - for(NbtElement e : nbt.getList("RequiredItems", NbtElement.STRING_TYPE)) { + for (NbtElement e : nbt.getList("RequiredItems", NbtElement.STRING_TYPE)) { Item item = Registry.ITEM.get(Identifier.tryParse(e.asString())); - if(item != Items.AIR) { + if (item != Items.AIR) { this.requiredItems.add(item); } } @@ -57,7 +57,7 @@ public void readNbt(NbtCompound nbt) { } otherRoundelOffsets = new ArrayList<>(); if (nbt.contains("OtherRoundelOffsets", NbtElement.LIST_TYPE)) { - for(NbtElement e : nbt.getList("OtherRoundelOffsets", NbtElement.INT_ARRAY_TYPE)) { + for (NbtElement e : nbt.getList("OtherRoundelOffsets", NbtElement.INT_ARRAY_TYPE)) { int[] intArray = ((NbtIntArray) e).getIntArray(); otherRoundelOffsets.add(new Vec3i(intArray[0], intArray[1], intArray[2])); } @@ -66,9 +66,9 @@ public void readNbt(NbtCompound nbt) { public void writeNbt(NbtCompound nbt) { super.writeNbt(nbt); - if(!this.requiredItems.isEmpty()) { + if (!this.requiredItems.isEmpty()) { NbtList itemList = new NbtList(); - for(Item requiredItem : this.requiredItems) { + for (Item requiredItem : this.requiredItems) { itemList.add(NbtString.of(Registry.ITEM.getId(requiredItem).toString())); } nbt.put("RequiredItems", itemList); @@ -78,7 +78,7 @@ public void writeNbt(NbtCompound nbt) { } if (!this.otherRoundelOffsets.isEmpty()) { NbtList offsetList = new NbtList(); - for(Vec3i offset : this.otherRoundelOffsets) { + for (Vec3i offset : this.otherRoundelOffsets) { offsetList.add(new NbtIntArray(new int[]{offset.getX(), offset.getY(), offset.getZ()})); } nbt.put("OtherRoundelOffsets", offsetList); @@ -98,15 +98,15 @@ public void inventoryChanged() { } public boolean inventoryAndConnectedOnesMatchRequirement() { - if(!inventoryMatchesRequirement()) { + if (!inventoryMatchesRequirement()) { return false; } - - for(Vec3i otherRoundelOffset : this.otherRoundelOffsets) { + + for (Vec3i otherRoundelOffset : this.otherRoundelOffsets) { BlockPos otherRoundelPos = Support.directionalOffset(this.pos, otherRoundelOffset, world.getBlockState(this.pos).get(PreservationControllerBlock.FACING)); - if(world.getBlockEntity(otherRoundelPos) instanceof PreservationRoundelBlockEntity preservationRoundelBlockEntity) { - if(!preservationRoundelBlockEntity.inventoryMatchesRequirement()) { + if (world.getBlockEntity(otherRoundelPos) instanceof PreservationRoundelBlockEntity preservationRoundelBlockEntity) { + if (!preservationRoundelBlockEntity.inventoryMatchesRequirement()) { return false; } } @@ -116,7 +116,7 @@ public boolean inventoryAndConnectedOnesMatchRequirement() { } public boolean inventoryMatchesRequirement() { - if(this.requiredItems.isEmpty()) { + if (this.requiredItems.isEmpty()) { return false; } @@ -126,23 +126,23 @@ public boolean inventoryMatchesRequirement() { ItemStack slotStack = getStack(i); if (!slotStack.isEmpty()) { int usedCount = 0; - for(int j = 0; j < requirements.size(); j++) { - if(slotStack.getItem().equals(requirements.get(j))) { + for (int j = 0; j < requirements.size(); j++) { + if (slotStack.getItem().equals(requirements.get(j))) { requirements.remove(j); j--; usedCount++; - if(slotStack.getCount() == usedCount) { + if (slotStack.getCount() == usedCount) { break; } } } - if(usedCount != slotStack.getCount()) { + if (usedCount != slotStack.getCount()) { return false; } } } - if(requirements.isEmpty()) { + if (requirements.isEmpty()) { SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(pos), ParticleTypes.HAPPY_VILLAGER, 10, new Vec3d(0.25, 0.5, 0.25), new Vec3d(0.1, 0.1, 0.1)); world.playSound(null, pos, SpectrumSoundEvents.NEW_RECIPE, SoundCategory.BLOCKS, 1.0F, 1.0F); return true; diff --git a/src/main/java/de/dafuqs/spectrum/blocks/structure/TreasureChestBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/structure/TreasureChestBlockEntity.java index 9cf5ac82de..480a59d37c 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/structure/TreasureChestBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/structure/TreasureChestBlockEntity.java @@ -22,7 +22,6 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; @@ -71,7 +70,7 @@ public void writeNbt(NbtCompound tag) { @Override protected Text getContainerName() { - return new TranslatableText("block.spectrum.treasure_chest"); + return Text.translatable("block.spectrum.treasure_chest"); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlock.java index 3fb54c47a9..664c4b7a44 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlock.java @@ -1,36 +1,28 @@ package de.dafuqs.spectrum.blocks.titration_barrel; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.titration_barrel.ITitrationBarrelRecipe; -import de.dafuqs.spectrum.registries.SpectrumItemTags; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.transfer.v1.fluid.*; import net.minecraft.block.*; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BucketItem; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.item.ItemStack; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.state.StateManager; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.ItemScatterer; -import net.minecraft.util.StringIdentifiable; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.state.*; +import net.minecraft.state.property.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Locale; -import java.util.Optional; +import java.util.*; public class TitrationBarrelBlock extends HorizontalFacingBlock implements BlockEntityProvider { @@ -85,19 +77,42 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt ItemStack handStack = player.getStackInHand(hand); if (handStack.isEmpty()) { int itemCount = InventoryHelper.countItemsInInventory(barrelEntity.inventory); - if(itemCount == TitrationBarrelBlockEntity.MAX_ITEM_COUNT) { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.content_count_full", itemCount), false); + Fluid fluid = barrelEntity.fluidStorage.variant.getFluid(); + if (fluid == Fluids.EMPTY) { + if (itemCount == TitrationBarrelBlockEntity.MAX_ITEM_COUNT) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.content_count_without_fluid_full", itemCount), false); + } else { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.content_count_without_fluid", itemCount), false); + } } else { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.content_count", itemCount, TitrationBarrelBlockEntity.MAX_ITEM_COUNT), false); + String fluidName = fluid.getDefaultState().getBlockState().getBlock().getName().getString(); + if (itemCount == TitrationBarrelBlockEntity.MAX_ITEM_COUNT) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.content_count_with_fluid_full", fluidName, itemCount), false); + } else { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.content_count_with_fluid", fluidName, itemCount), false); + } } } else { if (handStack.isIn(SpectrumItemTags.COLORED_PLANKS)) { - if(!player.isCreative()) { + Optional optionalRecipe = barrelEntity.getRecipeForInventory(world); + if (optionalRecipe.isEmpty() || !optionalRecipe.get().canPlayerCraft(player)) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.invalid_recipe"), false); + return ActionResult.CONSUME; + } + if (!player.isCreative()) { handStack.decrement(1); } - sealBarrel(world, pos, state, barrelEntity); - } else if (handStack.getItem() instanceof BucketItem) { - barrelEntity.useBucket(world, pos, state, handStack, player, hand); + sealBarrel(world, pos, state, barrelEntity, player); + } else if (FluidStorageUtil.interactWithFluidStorage(barrelEntity.fluidStorage, player, hand)) { + if (barrelEntity.getFluidVariant().isBlank()) { + if (state.get(BARREL_STATE) == TitrationBarrelBlock.BarrelState.FILLED && barrelEntity.inventory.isEmpty()) { + world.setBlockState(pos, state.with(BARREL_STATE, TitrationBarrelBlock.BarrelState.EMPTY)); + } + } else { + if (state.get(BARREL_STATE) == TitrationBarrelBlock.BarrelState.EMPTY) { + world.setBlockState(pos, state.with(BARREL_STATE, TitrationBarrelBlock.BarrelState.FILLED)); + } + } } else { int countBefore = handStack.getCount(); ItemStack leftoverStack = InventoryHelper.addToInventoryUpToSingleStackWithMaxTotalCount(handStack, barrelEntity.getInventory(), TitrationBarrelBlockEntity.MAX_ITEM_COUNT); @@ -119,11 +134,11 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt unsealBarrel(world, pos, state, barrelEntity); } else { if (player.isCreative() && player.getMainHandStack().isOf(SpectrumItems.PAINTBRUSH)) { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.debug_added_day"), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.debug_added_day"), false); barrelEntity.addDayOfSealTime(); world.playSound(null, pos, SpectrumSoundEvents.NEW_RECIPE, SoundCategory.BLOCKS, 1.0F, 1.0F); } - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.days_of_sealing_before_opened", barrelEntity.getSealMinecraftDays()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.days_of_sealing_before_opened", barrelEntity.getSealMinecraftDays(), barrelEntity.getSealRealDays()), false); } } case TAPPED -> { @@ -131,10 +146,10 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt // reverting it to the empty state again if (player.isSneaking()) { Optional recipe = world.getRecipeManager().getFirstMatch(SpectrumRecipeTypes.TITRATION_BARREL, barrelEntity.inventory, world); - if(recipe.isPresent()) { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.days_of_sealing_after_opened_with_extractable_amount", recipe.get().getOutput().getName().asString(), barrelEntity.getSealMinecraftDays(), barrelEntity.getExtractableBottleCount(world, pos, recipe.get())), false); + if (recipe.isPresent()) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.days_of_sealing_after_opened_with_extractable_amount", recipe.get().getOutput().getName().getString(), barrelEntity.getSealMinecraftDays(), barrelEntity.getSealRealDays()), false); } else { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.invalid_recipe_after_opened"), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.invalid_recipe_after_opened", barrelEntity.getSealMinecraftDays(), barrelEntity.getSealRealDays()), false); } } else { ItemStack harvestedStack = barrelEntity.tryHarvest(world, pos, state, player.getStackInHand(hand), player); @@ -163,7 +178,11 @@ private void tryExtractLastStack(BlockState state, World world, BlockPos pos, Pl } } - private void sealBarrel(World world, BlockPos pos, BlockState state, TitrationBarrelBlockEntity barrelEntity) { + private void sealBarrel(World world, BlockPos pos, BlockState state, TitrationBarrelBlockEntity barrelEntity, PlayerEntity player) { + // give recipe remainders + barrelEntity.giveRecipeRemainders(player); + + // seal world.setBlockState(pos, state.with(BARREL_STATE, BarrelState.SEALED)); barrelEntity.seal(); world.playSound(null, pos, SoundEvents.BLOCK_BARREL_CLOSE, SoundCategory.BLOCKS, 1.0F, 1.0F); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlockEntity.java b/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlockEntity.java index f36fc3eb9a..2aae213f54 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/titration_barrel/TitrationBarrelBlockEntity.java @@ -1,55 +1,62 @@ package de.dafuqs.spectrum.blocks.titration_barrel; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.helpers.TimeHelper; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.titration_barrel.ITitrationBarrelRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlockEntities; -import net.fabricmc.fabric.mixin.transfer.BucketItemAccessor; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.SimpleInventory; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.transfer.v1.fluid.*; +import net.fabricmc.fabric.api.transfer.v1.storage.base.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; import net.minecraft.item.*; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Date; -import java.util.Optional; - -import static de.dafuqs.spectrum.blocks.titration_barrel.TitrationBarrelBlock.BARREL_STATE; +import net.minecraft.nbt.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.biome.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +import static de.dafuqs.spectrum.blocks.titration_barrel.TitrationBarrelBlock.*; public class TitrationBarrelBlockEntity extends BlockEntity { - + protected static final int INVENTORY_SIZE = 5; public static final int MAX_ITEM_COUNT = 64; protected SimpleInventory inventory = new SimpleInventory(INVENTORY_SIZE); - protected @NotNull Fluid storedFluid = Fluids.EMPTY; - + + public SingleVariantStorage fluidStorage = new SingleVariantStorage<>() { + @Override + protected FluidVariant getBlankVariant() { + return FluidVariant.blank(); + } + + @Override + protected long getCapacity(FluidVariant variant) { + return FluidConstants.BUCKET; + } + + @Override + protected void onFinalCommit() { + super.onFinalCommit(); + markDirty(); + } + }; + // Times in milliseconds using the Date class protected long sealTime = -1; protected long tapTime = -1; - + protected String recipe; protected int extractedBottles = 0; - + public TitrationBarrelBlockEntity(BlockPos pos, BlockState state) { super(SpectrumBlockEntities.TITRATION_BARREL, pos, state); } @@ -57,7 +64,8 @@ public TitrationBarrelBlockEntity(BlockPos pos, BlockState state) { protected void writeNbt(NbtCompound nbt) { super.writeNbt(nbt); nbt.put("Inventory", this.inventory.toNbtList()); - nbt.putString("Fluid", Registry.FLUID.getId(this.storedFluid).toString()); + nbt.put("FluidVariant", this.fluidStorage.variant.toNbt()); + nbt.putLong("FluidAmount", this.fluidStorage.amount); nbt.putLong("SealTime", this.sealTime); nbt.putLong("TapTime", this.tapTime); nbt.putInt("ExtractedBottles", this.extractedBottles); @@ -65,13 +73,14 @@ protected void writeNbt(NbtCompound nbt) { public void readNbt(NbtCompound nbt) { super.readNbt(nbt); - + this.inventory = new SimpleInventory(INVENTORY_SIZE); - if(nbt.contains("Inventory", NbtElement.LIST_TYPE)) { + if (nbt.contains("Inventory", NbtElement.LIST_TYPE)) { this.inventory.readNbtList(nbt.getList("Inventory", NbtElement.COMPOUND_TYPE)); } - - this.storedFluid = Registry.FLUID.get(Identifier.tryParse(nbt.getString("Fluid"))); + + this.fluidStorage.variant = FluidVariant.fromNbt(nbt.getCompound("FluidVariant")); + this.fluidStorage.amount = nbt.getLong("FluidAmount"); this.sealTime = nbt.contains("SealTime", NbtElement.LONG_TYPE) ? nbt.getLong("SealTime") : -1; this.tapTime = nbt.contains("TapTime", NbtElement.LONG_TYPE) ? nbt.getLong("TapTime") : -1; this.extractedBottles = nbt.contains("ExtractedBottles", NbtElement.INT_TYPE) ? nbt.getInt("ExtractedBottles") : 0; @@ -81,39 +90,6 @@ public Inventory getInventory() { return inventory; } - public boolean useBucket(World world, BlockPos pos, BlockState state, ItemStack bucketStack, PlayerEntity player, Hand hand) { - Fluid bucketFluid = ((BucketItemAccessor) bucketStack.getItem()).fabric_getFluid(); - if(this.storedFluid == Fluids.EMPTY && bucketFluid != Fluids.EMPTY) { - player.setStackInHand(hand, ItemUsage.exchangeStack(bucketStack, player, BucketItem.getEmptiedStack(bucketStack, player))); - - Optional soundEvent = bucketFluid.getBucketFillSound(); - soundEvent.ifPresent(event -> world.playSound(null, this.pos, event, SoundCategory.PLAYERS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F)); - - this.storedFluid = bucketFluid; - this.markDirty(); - - if (state.get(BARREL_STATE) == TitrationBarrelBlock.BarrelState.EMPTY) { - world.setBlockState(pos, state.with(BARREL_STATE, TitrationBarrelBlock.BarrelState.FILLED)); - } - - return true; - } else if(this.sealTime == -1 && this.storedFluid != Fluids.EMPTY && bucketFluid == Fluids.EMPTY) { - player.setStackInHand(hand, ItemUsage.exchangeStack(bucketStack, player, this.storedFluid.getBucketItem().getDefaultStack())); - - Optional soundEvent = storedFluid.getBucketFillSound(); - soundEvent.ifPresent(event -> world.playSound(null, this.pos, event, SoundCategory.PLAYERS, 0.8F, 0.8F + world.random.nextFloat() * 0.6F)); - - if (state.get(BARREL_STATE) == TitrationBarrelBlock.BarrelState.FILLED && inventory.isEmpty()) { - world.setBlockState(pos, state.with(BARREL_STATE, TitrationBarrelBlock.BarrelState.EMPTY)); - } - - this.storedFluid = Fluids.EMPTY; - this.markDirty(); - return true; - } - return false; - } - public void seal() { this.sealTime = new Date().getTime(); this.markDirty(); @@ -128,21 +104,22 @@ public void tap() { public void reset(World world, BlockPos blockPos, BlockState state) { this.sealTime = -1; this.tapTime = -1; - this.storedFluid = Fluids.EMPTY; + this.fluidStorage.amount = 0; this.extractedBottles = 0; this.inventory.clear(); world.setBlockState(pos, state.with(BARREL_STATE, TitrationBarrelBlock.BarrelState.EMPTY)); world.playSound(null, blockPos, SoundEvents.BLOCK_BARREL_OPEN, SoundCategory.BLOCKS, 1.0F, 1.0F); + markDirty(); } public long getSealMilliseconds() { - if(this.sealTime == -1) { + if (this.sealTime == -1) { return 0; } long tapTime; - if(this.tapTime == -1) { + if (this.tapTime == -1) { tapTime = new Date().getTime(); } else { tapTime = this.tapTime; @@ -158,18 +135,17 @@ public int getSealMinecraftDays() { return (int) getSealMilliseconds() / 1000 / 60 / 20; } + public String getSealRealDays() { + return Support.getWithOneDecimalAfterComma(getSealMilliseconds() / 1000 / 60 / 20 / 72); + } + private boolean isEmpty(float temperature, int extractedBottles, ITitrationBarrelRecipe recipe) { - if(recipe.isEmpty() || recipe.getFluid() != this.storedFluid) { + if (recipe.isEmpty() || !getFluidVariant().isOf(recipe.getFluid())) { return true; } return extractedBottles >= recipe.getOutputCountAfterAngelsShare(temperature, getSealSeconds()); } - public int getExtractableBottleCount(World world, BlockPos blockPos, ITitrationBarrelRecipe recipe) { - Biome biome = world.getBiome(blockPos).value(); - return recipe.getOutputCountAfterAngelsShare(biome.getTemperature(), getSealSeconds()); - } - public void addDayOfSealTime() { this.sealTime -= TimeHelper.EPOCH_DAY_MILLIS; this.markDirty(); @@ -179,27 +155,27 @@ public ItemStack tryHarvest(World world, BlockPos blockPos, BlockState blockStat ItemStack harvestedStack = ItemStack.EMPTY; Biome biome = world.getBiome(blockPos).value(); - Optional optionalRecipe = world.getRecipeManager().getFirstMatch(SpectrumRecipeTypes.TITRATION_BARREL, this.inventory, world); + Optional optionalRecipe = getRecipeForInventory(world); if (optionalRecipe.isEmpty()) { if (player != null) { - if(inventory.isEmpty() && storedFluid == Fluids.EMPTY) { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.empty_when_tapping"), false); + if (inventory.isEmpty() && getFluidVariant().isBlank()) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.empty_when_tapping"), false); } else { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.invalid_recipe_when_tapping"), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.invalid_recipe_when_tapping"), false); } } } else { ITitrationBarrelRecipe recipe = optionalRecipe.get(); - if (this.storedFluid == recipe.getFluid() && recipe.canPlayerCraft(player)) { + if (this.getFluidVariant().isOf(recipe.getFluid()) && recipe.canPlayerCraft(player)) { Item tappingItem = recipe.getTappingItem(); - + boolean canTap = tappingItem == Items.AIR; - if(!canTap) { - if(handStack.isOf(tappingItem)) { + if (!canTap) { + if (handStack.isOf(tappingItem)) { handStack.decrement(1); canTap = true; } else if (player != null) { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.tapping_item_required").append(tappingItem.getName()), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.tapping_item_required").append(tappingItem.getName()), false); } } if (canTap) { @@ -208,27 +184,51 @@ public ItemStack tryHarvest(World world, BlockPos blockPos, BlockState blockStat this.extractedBottles += 1; } } else if (player != null) { - if (this.storedFluid == Fluids.EMPTY) { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.missing_water_when_tapping"), false); + if (getFluidVariant().isBlank()) { + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.missing_liquid_when_tapping"), false); } else { - player.sendMessage(new TranslatableText("block.spectrum.titration_barrel.invalid_recipe_when_tapping"), false); + SpectrumS2CPacketSender.sendHudMessage((ServerPlayerEntity) player, Text.translatable("block.spectrum.titration_barrel.invalid_recipe_when_tapping"), false); } } } - if(player != null) { + if (player != null) { int daysSealed = getSealMinecraftDays(); int inventoryCount = InventoryHelper.countItemsInInventory(this.inventory); SpectrumAdvancementCriteria.TITRATION_BARREL_TAPPING.trigger((ServerPlayerEntity) player, harvestedStack, daysSealed, inventoryCount); } - if(optionalRecipe.isEmpty() || isEmpty(biome.getTemperature(), this.extractedBottles, optionalRecipe.get())) { + if (optionalRecipe.isEmpty() || isEmpty(biome.getTemperature(), this.extractedBottles, optionalRecipe.get()) || !optionalRecipe.get().canPlayerCraft(player)) { reset(world, blockPos, blockState); } - + this.markDirty(); return harvestedStack; } + public Optional getRecipeForInventory(World world) { + return world.getRecipeManager().getFirstMatch(SpectrumRecipeTypes.TITRATION_BARREL, this.inventory, world); + } + + public void giveRecipeRemainders(PlayerEntity player) { + for (ItemStack stack : this.inventory.stacks) { + Item item = stack.getItem(); + Item remainderItem = item.getRecipeRemainder(); + if (remainderItem != null) { + ItemStack remainderStack = remainderItem.getDefaultStack(); + remainderStack.setCount(stack.getCount()); + Support.givePlayer(player, remainderStack); + } + } + } + + public @NotNull FluidVariant getFluidVariant() { + if (this.fluidStorage.amount > 0) { + return this.fluidStorage.variant; + } else { + return FluidVariant.blank(); + } + } + } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlock.java index 8e77120c71..09403d983d 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlock.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlock.java @@ -1,23 +1,27 @@ package de.dafuqs.spectrum.blocks.upgrade; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.particle.effect.*; +import de.dafuqs.spectrum.registries.*; import net.minecraft.block.*; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.ai.pathing.NavigationType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3i; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.world.BlockView; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.List; +import net.minecraft.block.entity.*; +import net.minecraft.entity.ai.pathing.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import org.jetbrains.annotations.*; + +import java.util.*; public class UpgradeBlock extends BlockWithEntity { - + protected static final VoxelShape SHAPE_UP = Block.createCuboidShape(2.0D, 0.0D, 2.0D, 14.0D, 10.0D, 14.0D); - private static final List registeredUpgradeBlocks = new ArrayList<>(); + private static final List upgradeBlocks = new ArrayList<>(); // Positions to check on place / destroy to upgrade those blocks upgrade counts private final List possibleUpgradeBlockOffsets = new ArrayList<>() {{ // Pedestal @@ -25,7 +29,7 @@ public class UpgradeBlock extends BlockWithEntity { add(new Vec3i(-3, -2, 3)); add(new Vec3i(3, -2, -3)); add(new Vec3i(-3, -2, -3)); - + // Fusion Shrine add(new Vec3i(2, 0, 2)); add(new Vec3i(-2, 0, 2)); @@ -57,24 +61,26 @@ public class UpgradeBlock extends BlockWithEntity { // Like: The further the player progresses, // the higher are the chances for good mods? private final Upgradeable.UpgradeType upgradeType; - private final float upgradeMod; - - public UpgradeBlock(Settings settings, Upgradeable.UpgradeType upgradeType, float upgradeMod) { + private final int upgradeMod; + private final DyeColor effectColor; + + public UpgradeBlock(Settings settings, Upgradeable.UpgradeType upgradeType, int upgradeMod, DyeColor effectColor) { super(settings); this.upgradeType = upgradeType; this.upgradeMod = upgradeMod; - - registeredUpgradeBlocks.add(this); + this.effectColor = effectColor; + + upgradeBlocks.add(this); } - - public static List getRegisteredUpgradeBlocks() { - return registeredUpgradeBlocks; + + public static List getUpgradeBlocks() { + return upgradeBlocks; } - + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { return SHAPE_UP; } - + public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) { return false; } @@ -82,37 +88,63 @@ public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos po @Override public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean notify) { super.onBlockAdded(state, world, pos, oldState, notify); - updateConnectedUpgradeBlock(world, pos); + if (!world.isClient) { + updateConnectedUpgradeBlock((ServerWorld) world, pos); + } } @Override public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean moved) { super.onStateReplaced(state, world, pos, newState, moved); - updateConnectedUpgradeBlock(world, pos); + if (!world.isClient) { + updateConnectedUpgradeBlock((ServerWorld) world, pos); + } } - + /** * When placed or removed the upgrade block searches for a valid Upgradeable block * and triggers it to update its upgrades */ - private void updateConnectedUpgradeBlock(@NotNull World world, @NotNull BlockPos pos) { + private void updateConnectedUpgradeBlock(@NotNull ServerWorld world, @NotNull BlockPos pos) { for (Vec3i possibleUpgradeBlockOffset : possibleUpgradeBlockOffsets) { BlockPos currentPos = pos.add(possibleUpgradeBlockOffset); BlockEntity blockEntity = world.getBlockEntity(currentPos); if (blockEntity instanceof Upgradeable upgradeable) { upgradeable.resetUpgrades(); + playConnectedParticles(world, pos, currentPos); } } } - + + private void playConnectedParticles(@NotNull ServerWorld world, @NotNull BlockPos pos, BlockPos currentPos) { + DyeColor particleColor = getEffectColor(); + world.playSound(null, pos.getX() + 0.5D, pos.getY() + 1.0D, pos.getZ() + 0.5D, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 1.0F, 1.0F); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity( + world, Vec3d.ofCenter(pos), + SpectrumParticleTypes.getSparkleRisingParticle(particleColor), + 10, new Vec3d(0.5, 0.5, 0.5), + new Vec3d(0.1, 0.1, 0.1)); + SpectrumS2CPacketSender.playColorTransmission( + world, + new ColoredTransmission( + new Vec3d(pos.getX() + 0.5D, pos.getY() + 1.0D, pos.getZ() + 0.5D), + new BlockPositionSource(currentPos), 6, + particleColor) + ); + } + + private DyeColor getEffectColor() { + return this.effectColor; + } + public Upgradeable.UpgradeType getUpgradeType() { return this.upgradeType; } - - public float getUpgradeMod() { + + public int getUpgradeMod() { return this.upgradeMod; } - + public BlockRenderType getRenderType(BlockState state) { return BlockRenderType.MODEL; } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockBlockEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockBlockEntityRenderer.java index b442ba5472..67d904aa01 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockBlockEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockBlockEntityRenderer.java @@ -1,20 +1,16 @@ package de.dafuqs.spectrum.blocks.upgrade; -import de.dafuqs.spectrum.SpectrumCommon; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.entity.BlockEntity; +import de.dafuqs.spectrum.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; import net.minecraft.client.model.*; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; -import net.minecraft.client.texture.SpriteAtlasTexture; -import net.minecraft.client.util.SpriteIdentifier; -import net.minecraft.client.util.math.MatrixStack; -import org.jetbrains.annotations.NotNull; +import net.minecraft.client.render.*; +import net.minecraft.client.render.block.entity.*; +import net.minecraft.client.texture.*; +import net.minecraft.client.util.*; +import net.minecraft.client.util.math.*; +import org.jetbrains.annotations.*; @Environment(EnvType.CLIENT) public class UpgradeBlockBlockEntityRenderer implements BlockEntityRenderer { @@ -42,8 +38,8 @@ public void render(PedestalUpgradeBlockEntity entity, float tickDelta, MatrixSta float upgradeMod = upgradeBlock.getUpgradeMod(); VertexConsumer vertexConsumer = spriteIdentifier.getVertexConsumer(vertexConsumerProvider, RenderLayer::getEntityCutout); - - float newYaw = (entity.getWorld().getTime() + tickDelta % 24000) / 25.0F; + + float newYaw = (entity.getWorld().getTime() % 24000 + tickDelta) / 80.0F; root.pivotY = 16.0F + (float) (Math.sin(newYaw) * 0.5); disk.yaw = newYaw * upgradeMod * 4; root.render(matrixStack, vertexConsumer, light, overlay); diff --git a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockItem.java b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockItem.java index be0883187c..4db2791538 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockItem.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/UpgradeBlockItem.java @@ -5,7 +5,6 @@ import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; @@ -24,8 +23,8 @@ public UpgradeBlockItem(Block block, Settings settings, String tooltipString) { public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum." + this.tooltipString + ".tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.upgrade.tooltip_increase").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum." + this.tooltipString + ".tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.upgrade.tooltip_increase").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/Upgradeable.java b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/Upgradeable.java index 2a73520ebb..d03f7dd2bd 100644 --- a/src/main/java/de/dafuqs/spectrum/blocks/upgrade/Upgradeable.java +++ b/src/main/java/de/dafuqs/spectrum/blocks/upgrade/Upgradeable.java @@ -1,68 +1,124 @@ package de.dafuqs.spectrum.blocks.upgrade; -import com.google.common.collect.Maps; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import net.minecraft.block.Block; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.progression.*; +import net.minecraft.block.*; +import net.minecraft.nbt.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; import java.util.*; public interface Upgradeable { - + enum UpgradeType { - SPEED, // faster crafting - EFFICIENCY, // chance to not use input resources (like gemstone powder) - YIELD, // chance to increase output - EXPERIENCE // increases XP output + SPEED(1, InkColors.MAGENTA), // faster crafting + EFFICIENCY(16, InkColors.BLACK), // chance to not use input resources (like gemstone powder) + YIELD(16, InkColors.LIGHT_BLUE), // chance to increase output + EXPERIENCE(1, InkColors.PURPLE); // increases XP output + + private final int effectivityDivisor; // multiplied on top of crafting speed, chance to double output, ... + private final InkColor inkColor; + + UpgradeType(int effectivityDivisor, InkColor inkColor) { + this.effectivityDivisor = effectivityDivisor; + this.inkColor = inkColor; + } + + public int getEffectivityDivisor() { + return effectivityDivisor; + } + + public InkColor getInkColor() { + return inkColor; + } } - - static NbtList toNbt(@NotNull Map upgrades) { - NbtList nbtList = new NbtList(); - if (!upgrades.isEmpty()) { - for (Map.Entry upgrade : upgrades.entrySet()) { - NbtCompound upgradeCompound = new NbtCompound(); - upgradeCompound.putString("Type", upgrade.getKey().toString()); - upgradeCompound.putFloat("Power", upgrade.getValue()); - nbtList.add(upgradeCompound); + + class UpgradeHolder { + + private final Map upgrades; + + public UpgradeHolder() { + this.upgrades = new HashMap<>(); + for (UpgradeType upgradeType : UpgradeType.values()) { + this.upgrades.put(upgradeType, 0); } } - return nbtList; - } - - static Map fromNbt(@NotNull NbtList nbtList) { - Map map = Maps.newLinkedHashMap(); - - for (int i = 0; i < nbtList.size(); ++i) { - NbtCompound nbtCompound = nbtList.getCompound(i); - - UpgradeType upgradeType = UpgradeType.valueOf(nbtCompound.getString("Type")); - float upgradeMod = nbtCompound.getFloat("Power"); - map.put(upgradeType, upgradeMod); + + public UpgradeHolder(Map upgrades) { + this.upgrades = upgrades; } - - return map; + + public NbtList toNbt() { + NbtList nbtList = new NbtList(); + if (!upgrades.isEmpty()) { + for (Map.Entry upgrade : upgrades.entrySet()) { + if (upgrade.getValue() > 0) { + NbtCompound upgradeCompound = new NbtCompound(); + upgradeCompound.putString("Type", upgrade.getKey().toString()); + upgradeCompound.putFloat("Power", upgrade.getValue()); + nbtList.add(upgradeCompound); + } + } + } + return nbtList; + } + + public static UpgradeHolder fromNbt(@NotNull NbtList nbtList) { + Map map = new HashMap<>(); + for (UpgradeType upgradeType : UpgradeType.values()) { + map.put(upgradeType, 0); + } + + for (int i = 0; i < nbtList.size(); ++i) { + NbtCompound nbtCompound = nbtList.getCompound(i); + UpgradeType upgradeType = UpgradeType.valueOf(nbtCompound.getString("Type")); + int upgradeMod = nbtCompound.getInt("Power"); + map.put(upgradeType, upgradeMod); + } + + return new UpgradeHolder(map); + } + + public int getRawValue(UpgradeType upgradeType) { + return this.upgrades.get(upgradeType); + } + + public float getEffectiveValue(UpgradeType upgradeType) { + return 1 + (this.upgrades.get(upgradeType) / (float) upgradeType.getEffectivityDivisor()); + } + + public long getEffectiveCost(UpgradeType upgradeType) { + return 1L << this.upgrades.get(upgradeType); + } + + public long getEffectiveCostUsingEfficiency(UpgradeType upgradeType) { + int efficiencyMod = getRawValue(Upgradeable.UpgradeType.EFFICIENCY); + return 1L << Math.max(this.upgrades.get(upgradeType) - efficiencyMod, 0); + } + + public Iterable> entrySet() { + return this.upgrades.entrySet(); + } + } - - static @NotNull Map calculateUpgradeMods4(World world, @NotNull BlockPos blockPos, int horizontalOffset, int verticalOffset, @Nullable UUID advancementPlayerUUID) { + + static @NotNull UpgradeHolder calculateUpgradeMods4(World world, @NotNull BlockPos blockPos, int horizontalOffset, int verticalOffset, @Nullable UUID advancementPlayerUUID) { List posList = new ArrayList<>(); posList.add(blockPos.add(horizontalOffset, verticalOffset, horizontalOffset)); posList.add(blockPos.add(horizontalOffset, verticalOffset, -horizontalOffset)); posList.add(blockPos.add(-horizontalOffset, verticalOffset, horizontalOffset)); posList.add(blockPos.add(-horizontalOffset, verticalOffset, -horizontalOffset)); - + return calculateUpgrades(world, blockPos, posList, advancementPlayerUUID); } - - static @NotNull Map calculateUpgradeMods2(World world, BlockPos blockPos, @NotNull BlockRotation multiblockRotation, int horizontalOffset, int verticalOffset, @Nullable UUID advancementPlayerUUID) { + + static @NotNull UpgradeHolder calculateUpgradeMods2(World world, BlockPos blockPos, @NotNull BlockRotation multiblockRotation, int horizontalOffset, int verticalOffset, @Nullable UUID advancementPlayerUUID) { List positions = new ArrayList<>(); switch (multiblockRotation) { case NONE -> { @@ -85,8 +141,8 @@ static Map fromNbt(@NotNull NbtList nbtList) { return calculateUpgrades(world, blockPos, positions, advancementPlayerUUID); } - - static @NotNull Map calculateUpgradeMods2(World world, BlockPos blockPos, @NotNull BlockRotation multiblockRotation, int horizontalOffsetX, int horizontalOffsetZ, int verticalOffset, @Nullable UUID advancementPlayerUUID) { + + static @NotNull UpgradeHolder calculateUpgradeMods2(World world, BlockPos blockPos, @NotNull BlockRotation multiblockRotation, int horizontalOffsetX, int horizontalOffsetZ, int verticalOffset, @Nullable UUID advancementPlayerUUID) { List positions = new ArrayList<>(); switch (multiblockRotation) { case NONE -> { @@ -109,62 +165,39 @@ static Map fromNbt(@NotNull NbtList nbtList) { return calculateUpgrades(world, blockPos, positions, advancementPlayerUUID); } - - private static @NotNull Map calculateUpgrades(World world, BlockPos blockPos, @NotNull List positions, @Nullable UUID advancementPlayerUUID) { + + private static @NotNull UpgradeHolder calculateUpgrades(World world, BlockPos blockPos, @NotNull List positions, @Nullable UUID advancementPlayerUUID) { // create a hash map of upgrade types and mods - HashMap> upgradeMods = new HashMap<>(); + HashMap upgradeMods = new HashMap<>(); + for (UpgradeType upgradeType : UpgradeType.values()) { + upgradeMods.put(upgradeType, 0); + } + int upgradeCount = 0; for (BlockPos offsetPos : positions) { Block block = world.getBlockState(offsetPos).getBlock(); if (block instanceof UpgradeBlock upgradeBlock) { UpgradeType upgradeType = upgradeBlock.getUpgradeType(); - float upgradeMod = upgradeBlock.getUpgradeMod(); - - if (upgradeMods.containsKey(upgradeType)) { - upgradeMods.get(upgradeType).add(upgradeMod); - } else { - ArrayList arrayList = new ArrayList<>(); - arrayList.add(upgradeMod); - upgradeMods.put(upgradeType, arrayList); - } - + int upgradeMod = upgradeBlock.getUpgradeMod(); + upgradeMods.put(upgradeType, upgradeMods.get(upgradeType) + upgradeMod); upgradeCount++; } } - // iterate through that hash map, sort the mods descending by power and apply mali, if an upgrade type is used more than once - Map upgradeMap = Maps.newLinkedHashMap(); - for (UpgradeType upgradeType : UpgradeType.values()) { - if (upgradeMods.containsKey(upgradeType)) { - List upgradeModList = upgradeMods.get(upgradeType); - Collections.sort(upgradeModList); - Collections.reverse(upgradeModList); - - float resultingMod = 0.0F; - for (int i = 0; i < upgradeModList.size(); i++) { - // highest mod counts times 1.0, second: 0.75, third: 0.5, fourth: 0.25 - resultingMod += upgradeModList.get(i) * ((4.0F - i) / 4.0F); - } - upgradeMap.put(upgradeType, 1.0F + resultingMod); - } else { - upgradeMap.put(upgradeType, 1.0F); - } - } - - if(advancementPlayerUUID != null && !world.isClient) { + if (advancementPlayerUUID != null && !world.isClient) { ServerPlayerEntity player = (ServerPlayerEntity) PlayerOwned.getPlayerEntityIfOnline(advancementPlayerUUID); - if(player != null) { - SpectrumAdvancementCriteria.UPGRADE_PLACING.trigger(player, (ServerWorld) world, blockPos, upgradeCount, upgradeMap); + if (player != null) { + SpectrumAdvancementCriteria.UPGRADE_PLACING.trigger(player, (ServerWorld) world, blockPos, upgradeCount, upgradeMods); } } - - return upgradeMap; + + return new UpgradeHolder(upgradeMods); } void resetUpgrades(); void calculateUpgrades(); - - float getUpgradeValue(UpgradeType upgradeType); + + UpgradeHolder getUpgradeHolder(); } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/blocks/weathering/Weathering.java b/src/main/java/de/dafuqs/spectrum/blocks/weathering/Weathering.java new file mode 100644 index 0000000000..e61eface78 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/weathering/Weathering.java @@ -0,0 +1,86 @@ +package de.dafuqs.spectrum.blocks.weathering; + +import com.google.common.base.Suppliers; +import com.google.common.collect.BiMap; +import com.google.common.collect.ImmutableBiMap; +import de.dafuqs.spectrum.registries.SpectrumBlocks; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Degradable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; + +import java.util.Optional; +import java.util.function.Supplier; + +public interface Weathering extends Degradable { + + Supplier> WEATHERING_LEVEL_INCREASES = Suppliers.memoize(() -> ImmutableBiMap.builder() + .put(SpectrumBlocks.POLISHED_SHALE_CLAY, SpectrumBlocks.EXPOSED_POLISHED_SHALE_CLAY) + .put(SpectrumBlocks.EXPOSED_POLISHED_SHALE_CLAY, SpectrumBlocks.WEATHERED_POLISHED_SHALE_CLAY) + .put(SpectrumBlocks.POLISHED_SHALE_CLAY_STAIRS, SpectrumBlocks.EXPOSED_POLISHED_SHALE_CLAY_STAIRS) + .put(SpectrumBlocks.EXPOSED_POLISHED_SHALE_CLAY_STAIRS, SpectrumBlocks.WEATHERED_POLISHED_SHALE_CLAY_STAIRS) + .put(SpectrumBlocks.POLISHED_SHALE_CLAY_SLAB, SpectrumBlocks.EXPOSED_POLISHED_SHALE_CLAY_SLAB) + .put(SpectrumBlocks.EXPOSED_POLISHED_SHALE_CLAY_SLAB, SpectrumBlocks.WEATHERED_POLISHED_SHALE_CLAY_SLAB) + .put(SpectrumBlocks.SHALE_CLAY_BRICKS, SpectrumBlocks.EXPOSED_SHALE_CLAY_BRICKS) + .put(SpectrumBlocks.EXPOSED_SHALE_CLAY_BRICKS, SpectrumBlocks.WEATHERED_SHALE_CLAY_BRICKS) + .put(SpectrumBlocks.SHALE_CLAY_BRICK_STAIRS, SpectrumBlocks.EXPOSED_SHALE_CLAY_BRICK_STAIRS) + .put(SpectrumBlocks.EXPOSED_SHALE_CLAY_BRICK_STAIRS, SpectrumBlocks.WEATHERED_SHALE_CLAY_BRICK_STAIRS) + .put(SpectrumBlocks.SHALE_CLAY_BRICK_SLAB, SpectrumBlocks.EXPOSED_SHALE_CLAY_BRICK_SLAB) + .put(SpectrumBlocks.EXPOSED_SHALE_CLAY_BRICK_SLAB, SpectrumBlocks.WEATHERED_SHALE_CLAY_BRICK_SLAB) + .put(SpectrumBlocks.SHALE_CLAY_TILES, SpectrumBlocks.EXPOSED_SHALE_CLAY_TILES) + .put(SpectrumBlocks.EXPOSED_SHALE_CLAY_TILES, SpectrumBlocks.WEATHERED_SHALE_CLAY_TILES) + .put(SpectrumBlocks.SHALE_CLAY_TILE_STAIRS, SpectrumBlocks.EXPOSED_SHALE_CLAY_TILE_STAIRS) + .put(SpectrumBlocks.EXPOSED_SHALE_CLAY_TILE_STAIRS, SpectrumBlocks.WEATHERED_SHALE_CLAY_TILE_STAIRS) + .put(SpectrumBlocks.SHALE_CLAY_TILE_SLAB, SpectrumBlocks.EXPOSED_SHALE_CLAY_TILE_SLAB) + .put(SpectrumBlocks.EXPOSED_SHALE_CLAY_TILE_SLAB, SpectrumBlocks.WEATHERED_SHALE_CLAY_TILE_SLAB) + .build()); + Supplier> WEATHERING_LEVEL_DECREASES = Suppliers.memoize(() -> WEATHERING_LEVEL_INCREASES.get().inverse()); + + static Optional getDecreasedWeatheredBlock(Block block) { + return Optional.ofNullable(WEATHERING_LEVEL_DECREASES.get().get(block)); + } + + static Block getUnaffectedWeatheredBlock(Block block) { + Block returnBlock = block; + for (Block block3 = WEATHERING_LEVEL_DECREASES.get().get(block); block3 != null; block3 = WEATHERING_LEVEL_DECREASES.get().get(block3)) { + returnBlock = block3; + } + return returnBlock; + } + + static Optional getDecreasedWeatheredState(BlockState state) { + return getDecreasedWeatheredBlock(state.getBlock()).map((block) -> block.getStateWithProperties(state)); + } + + static Optional getIncreasedWeatheredBlock(Block block) { + return Optional.ofNullable(WEATHERING_LEVEL_INCREASES.get().get(block)); + } + + static BlockState getUnaffectedWeatheredState(BlockState state) { + return getUnaffectedWeatheredBlock(state.getBlock()).getStateWithProperties(state); + } + + default Optional getDegradationResult(BlockState state) { + return getIncreasedWeatheredBlock(state.getBlock()).map((block) -> block.getStateWithProperties(state)); + } + + default float getDegradationChanceMultiplier() { + return this.getDegradationLevel() == WeatheringLevel.UNAFFECTED ? 0.75F : 1.0F; + } + + default boolean shouldTryWeather(World world, BlockPos pos) { + float chance = world.isSkyVisible(pos) ? 0.5F : 0.0F; + if (world.isRaining() && world.getBiome(pos).value().getPrecipitation() != Biome.Precipitation.NONE) { + chance += 0.5; + } + return world.random.nextFloat() < chance; + } + + enum WeatheringLevel { + UNAFFECTED, + EXPOSED, + WEATHERED; + } +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringBlock.java new file mode 100644 index 0000000000..7e4664f83d --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringBlock.java @@ -0,0 +1,33 @@ +package de.dafuqs.spectrum.blocks.weathering; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; + +public class WeatheringBlock extends Block implements Weathering { + + private final Weathering.WeatheringLevel weatheringLevel; + + public WeatheringBlock(Weathering.WeatheringLevel weatheringLevel, AbstractBlock.Settings settings) { + super(settings); + this.weatheringLevel = weatheringLevel; + } + + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (shouldTryWeather(world, pos)) { + this.tickDegradation(state, world, pos, random); + } + } + + public boolean hasRandomTicks(BlockState state) { + return Weathering.getIncreasedWeatheredBlock(state.getBlock()).isPresent(); + } + + public Weathering.WeatheringLevel getDegradationLevel() { + return this.weatheringLevel; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringSlabBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringSlabBlock.java new file mode 100644 index 0000000000..89201a4689 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringSlabBlock.java @@ -0,0 +1,33 @@ +package de.dafuqs.spectrum.blocks.weathering; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.SlabBlock; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; + +public class WeatheringSlabBlock extends SlabBlock implements Weathering { + + private final Weathering.WeatheringLevel weatheringLevel; + + public WeatheringSlabBlock(Weathering.WeatheringLevel weatheringLevel, AbstractBlock.Settings settings) { + super(settings); + this.weatheringLevel = weatheringLevel; + } + + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (shouldTryWeather(world, pos)) { + this.tickDegradation(state, world, pos, random); + } + } + + public boolean hasRandomTicks(BlockState state) { + return Weathering.getIncreasedWeatheredBlock(state.getBlock()).isPresent(); + } + + public Weathering.WeatheringLevel getDegradationLevel() { + return this.weatheringLevel; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringStairsBlock.java b/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringStairsBlock.java new file mode 100644 index 0000000000..3f7475f471 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/blocks/weathering/WeatheringStairsBlock.java @@ -0,0 +1,33 @@ +package de.dafuqs.spectrum.blocks.weathering; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.StairsBlock; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; + +public class WeatheringStairsBlock extends StairsBlock implements Weathering { + + private final Weathering.WeatheringLevel weatheringLevel; + + public WeatheringStairsBlock(Weathering.WeatheringLevel weatheringLevel, BlockState baseBlockState, AbstractBlock.Settings settings) { + super(baseBlockState, settings); + this.weatheringLevel = weatheringLevel; + } + + public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) { + if (shouldTryWeather(world, pos)) { + this.tickDegradation(state, world, pos, random); + } + } + + public boolean hasRandomTicks(BlockState state) { + return Weathering.getIncreasedWeatheredBlock(state.getBlock()).isPresent(); + } + + public Weathering.WeatheringLevel getDegradationLevel() { + return this.weatheringLevel; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/cca/HardcoreDeathComponent.java b/src/main/java/de/dafuqs/spectrum/cca/HardcoreDeathComponent.java index 14d48fc14c..e33b756399 100644 --- a/src/main/java/de/dafuqs/spectrum/cca/HardcoreDeathComponent.java +++ b/src/main/java/de/dafuqs/spectrum/cca/HardcoreDeathComponent.java @@ -28,13 +28,13 @@ public class HardcoreDeathComponent implements Component, LevelComponentInitiali @Override public void registerLevelComponentFactories(LevelComponentFactoryRegistry registry) { - registry.register(HARDCORE_DEATHS_COMPONENT , e -> new HardcoreDeathComponent()); + registry.register(HARDCORE_DEATHS_COMPONENT, e -> new HardcoreDeathComponent()); } @Override public void writeToNbt(@NotNull NbtCompound tag) { NbtList uuidList = new NbtList(); - for(UUID playerThatDiedInHardcore : playersThatDiedInHardcore) { + for (UUID playerThatDiedInHardcore : playersThatDiedInHardcore) { uuidList.add(NbtHelper.fromUuid(playerThatDiedInHardcore)); } tag.put("HardcoreDeaths", uuidList); @@ -44,7 +44,7 @@ public void writeToNbt(@NotNull NbtCompound tag) { public void readFromNbt(NbtCompound tag) { playersThatDiedInHardcore.clear(); NbtList uuidList = tag.getList("HardcoreDeaths", NbtElement.INT_ARRAY_TYPE); - for(NbtElement listEntry : uuidList) { + for (NbtElement listEntry : uuidList) { playersThatDiedInHardcore.add(NbtHelper.toUuid(listEntry)); } } @@ -66,7 +66,7 @@ public static boolean hasHardcoreDeath(GameProfile profile) { } protected static void addHardcoreDeath(UUID uuid) { - if(!playersThatDiedInHardcore.contains(uuid)) { + if (!playersThatDiedInHardcore.contains(uuid)) { playersThatDiedInHardcore.add(uuid); } SpectrumCommon.minecraftServer.getPlayerManager().getPlayer(uuid).changeGameMode(GameMode.SPECTATOR); diff --git a/src/main/java/de/dafuqs/spectrum/cca/LastKillComponent.java b/src/main/java/de/dafuqs/spectrum/cca/LastKillComponent.java index 4d7671e6c0..277b2eeca9 100644 --- a/src/main/java/de/dafuqs/spectrum/cca/LastKillComponent.java +++ b/src/main/java/de/dafuqs/spectrum/cca/LastKillComponent.java @@ -36,14 +36,14 @@ public void registerEntityComponentFactories(EntityComponentFactoryRegistry regi @Override public void writeToNbt(@NotNull NbtCompound tag) { - if(this.lastKillTick >= 0) { + if (this.lastKillTick >= 0) { tag.putLong("last_kill_tick", this.lastKillTick); } } @Override public void readFromNbt(NbtCompound tag) { - if(tag.contains("last_kill_tick", NbtElement.LONG_TYPE)) { + if (tag.contains("last_kill_tick", NbtElement.LONG_TYPE)) { this.lastKillTick = tag.getLong("last_kill_tick"); } } diff --git a/src/main/java/de/dafuqs/spectrum/commands/PrintConfigCommand.java b/src/main/java/de/dafuqs/spectrum/commands/PrintConfigCommand.java index b0a9cf38fd..78f3ac2d98 100644 --- a/src/main/java/de/dafuqs/spectrum/commands/PrintConfigCommand.java +++ b/src/main/java/de/dafuqs/spectrum/commands/PrintConfigCommand.java @@ -1,10 +1,10 @@ package de.dafuqs.spectrum.commands; -import com.mojang.brigadier.CommandDispatcher; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.server.command.CommandManager; -import net.minecraft.server.command.ServerCommandSource; -import net.minecraft.text.LiteralText; +import com.mojang.brigadier.*; +import de.dafuqs.spectrum.*; +import net.minecraft.server.command.*; +import net.minecraft.text.*; + public class PrintConfigCommand { @@ -17,7 +17,7 @@ public static void register(CommandDispatcher dispatcher) { private static int execute(ServerCommandSource source) { send(source, "Citrine Geode AboveBottom: " + SpectrumCommon.CONFIG.CitrineGeodeMinAboveBottomGenerationHeight + " FixedMax: " + SpectrumCommon.CONFIG.CitrineGeodeFixedMaxGenerationHeight); send(source, "Topaz Geode MinFixed: " + SpectrumCommon.CONFIG.TopazGeodeMinFixedGenerationHeight + " MaxBelow: " + SpectrumCommon.CONFIG.TopazGeodeMaxBelowTopGenerationHeight); - send(source, "Geode Chunk Chances: Topaz: " + SpectrumCommon.CONFIG.TopazGeodeChunkChance + " Citrine: " + SpectrumCommon.CONFIG.CitrineGeodeChunkChance + " Moonstone: " + SpectrumCommon.CONFIG.MoonstoneGeodeChunkChance); + send(source, "Geode Chunk Chances: Topaz: " + SpectrumCommon.CONFIG.TopazGeodeChunkChance + " Citrine: " + SpectrumCommon.CONFIG.CitrineGeodeChunkChance); send(source, "ColoredTreePatchChanceChunk: " + SpectrumCommon.CONFIG.ColoredTreePatchChanceChunk); send(source, "EndermanHoldingEnderTreasureChance: " + SpectrumCommon.CONFIG.EndermanHoldingEnderTreasureChance + " (" + SpectrumCommon.CONFIG.EndermanHoldingEnderTreasureInEndChance + " in the End)"); @@ -28,56 +28,118 @@ private static int execute(ServerCommandSource source) { send(source, "ShootingStarChance: " + SpectrumCommon.CONFIG.ShootingStarChance); send(source, "VanillaRecipeCraftingTimeTicks: " + SpectrumCommon.CONFIG.VanillaRecipeCraftingTimeTicks); - send(source, "Decay tick rates: " + SpectrumCommon.CONFIG.FadingDecayTickRate + ", " + SpectrumCommon.CONFIG.FailingDecayTickRate + ", " + SpectrumCommon.CONFIG.RuinDecayTickRate + ", " + SpectrumCommon.CONFIG.TerrorDecayTickRate); + send(source, "Decay tick rates: " + SpectrumCommon.CONFIG.FadingDecayTickRate + ", " + SpectrumCommon.CONFIG.FailingDecayTickRate + ", " + SpectrumCommon.CONFIG.RuinDecayTickRate + ", " + SpectrumCommon.CONFIG.ForfeitureDecayTickRate); + send(source, "Decay pickup ability: " + SpectrumCommon.CONFIG.CanPickUpFading + ", " + SpectrumCommon.CONFIG.CanPickUpFailing + ", " + SpectrumCommon.CONFIG.CanPickUpRuin + ", " + SpectrumCommon.CONFIG.CanPickUpForfeiture); + send(source, "Decay can destroy block entities: " + SpectrumCommon.CONFIG.FadingCanDestroyBlockEntities + ", " + SpectrumCommon.CONFIG.FailingCanDestroyBlockEntities + ", " + SpectrumCommon.CONFIG.RuinCanDestroyBlockEntities + ", " + SpectrumCommon.CONFIG.ForfeitureCanDestroyBlockEntities); String disabledEnchantments = ""; - if(!SpectrumCommon.CONFIG.AutoSmeltEnchantmentEnabled) { disabledEnchantments += "Foundry "; } - if(!SpectrumCommon.CONFIG.ExuberanceEnchantmentEnabled) { disabledEnchantments += "Exuberance "; } - if(!SpectrumCommon.CONFIG.InventoryInsertionEnchantmentEnabled) { disabledEnchantments += "Inventory Insertion "; } - if(!SpectrumCommon.CONFIG.PestControlEnchantmentEnabled) { disabledEnchantments += "Pest Control "; } - if(!SpectrumCommon.CONFIG.TreasureHunterEnchantmentEnabled) { disabledEnchantments += "Treasure Hunter "; } - if(!SpectrumCommon.CONFIG.DisarmingEnchantmentEnabled) { disabledEnchantments += "Disarming "; } - if(!SpectrumCommon.CONFIG.FirstStrikeEnchantmentEnabled) { disabledEnchantments += "First Strike "; } - if(!SpectrumCommon.CONFIG.ImprovedCriticalEnchantmentEnabled) { disabledEnchantments += "Improved Critical "; } - if(!SpectrumCommon.CONFIG.InertiaEnchantmentEnabled) { disabledEnchantments += "Inertia "; } - if(!SpectrumCommon.CONFIG.CloversFavorEnchantmentEnabled) { disabledEnchantments += "Clovers Favor "; } - if(!SpectrumCommon.CONFIG.SniperEnchantmentEnabled) { disabledEnchantments += "Sniping "; } - if(!SpectrumCommon.CONFIG.TightGripEnchantmentEnabled) { disabledEnchantments += "Tight Grip "; } - if(!SpectrumCommon.CONFIG.SteadfastEnchantmentEnabled) { disabledEnchantments += "Steadfast "; } - if(!SpectrumCommon.CONFIG.IndestructibleEnchantmentEnabled) { disabledEnchantments += "Indestructible "; } - if(!SpectrumCommon.CONFIG.BigCatchEnchantmentEnabled) { disabledEnchantments += "BigCatch "; } - if(disabledEnchantments.length() > 0) { + if (!SpectrumCommon.CONFIG.AutoSmeltEnchantmentEnabled) { + disabledEnchantments += "Foundry "; + } + if (!SpectrumCommon.CONFIG.ExuberanceEnchantmentEnabled) { + disabledEnchantments += "Exuberance "; + } + if (!SpectrumCommon.CONFIG.InventoryInsertionEnchantmentEnabled) { + disabledEnchantments += "Inventory Insertion "; + } + if (!SpectrumCommon.CONFIG.PestControlEnchantmentEnabled) { + disabledEnchantments += "Pest Control "; + } + if (!SpectrumCommon.CONFIG.TreasureHunterEnchantmentEnabled) { + disabledEnchantments += "Treasure Hunter "; + } + if (!SpectrumCommon.CONFIG.DisarmingEnchantmentEnabled) { + disabledEnchantments += "Disarming "; + } + if (!SpectrumCommon.CONFIG.FirstStrikeEnchantmentEnabled) { + disabledEnchantments += "First Strike "; + } + if (!SpectrumCommon.CONFIG.ImprovedCriticalEnchantmentEnabled) { + disabledEnchantments += "Improved Critical "; + } + if (!SpectrumCommon.CONFIG.InertiaEnchantmentEnabled) { + disabledEnchantments += "Inertia "; + } + if (!SpectrumCommon.CONFIG.CloversFavorEnchantmentEnabled) { + disabledEnchantments += "Clovers Favor "; + } + if (!SpectrumCommon.CONFIG.SniperEnchantmentEnabled) { + disabledEnchantments += "Sniping "; + } + if (!SpectrumCommon.CONFIG.TightGripEnchantmentEnabled) { + disabledEnchantments += "Tight Grip "; + } + if (!SpectrumCommon.CONFIG.SteadfastEnchantmentEnabled) { + disabledEnchantments += "Steadfast "; + } + if (!SpectrumCommon.CONFIG.IndestructibleEnchantmentEnabled) { + disabledEnchantments += "Indestructible "; + } + if (!SpectrumCommon.CONFIG.BigCatchEnchantmentEnabled) { + disabledEnchantments += "BigCatch "; + } + if (disabledEnchantments.length() > 0) { send(source, "Disabled Enchantments: " + disabledEnchantments); } else { send(source, "Disabled Enchantments: none"); } boolean anyEnchantmentSettingsChanged = false; - if(SpectrumCommon.CONFIG.TreasureHunterMaxLevel != 3) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: TreasureHunter MaxLevel " + SpectrumCommon.CONFIG.TreasureHunterMaxLevel); } - if(SpectrumCommon.CONFIG.DisarmingMaxLevel != 2) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: Disarming MaxLevel " + SpectrumCommon.CONFIG.DisarmingMaxLevel + "(Mobs : " + SpectrumCommon.CONFIG.DisarmingChancePerLevelMobs + " Players: " + SpectrumCommon.CONFIG.DisarmingChancePerLevelMobs + ")"); } - if(SpectrumCommon.CONFIG.FirstStrikeMaxLevel != 2) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: FirstStrike MaxLevel " + SpectrumCommon.CONFIG.FirstStrikeMaxLevel + ("Damage per level: " + SpectrumCommon.CONFIG.FirstStrikeDamagePerLevel + ")")); } - if(SpectrumCommon.CONFIG.ImprovedCriticalMaxLevel != 2) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: ImprovedCritical MaxLevel " + SpectrumCommon.CONFIG.ImprovedCriticalMaxLevel + "(" + SpectrumCommon.CONFIG.ImprovedCriticalExtraDamageMultiplierPerLevel + " multiplier per level)"); } - if(SpectrumCommon.CONFIG.InertiaMaxLevel != 3) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: Inertia MaxLevel " + SpectrumCommon.CONFIG.InertiaMaxLevel); } - if(SpectrumCommon.CONFIG.CloversFavorMaxLevel != 3) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: CloversFavor MaxLevel " + SpectrumCommon.CONFIG.CloversFavorMaxLevel); } - if(SpectrumCommon.CONFIG.TightGripMaxLevel != 2) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: TightGrip MaxLevel " + SpectrumCommon.CONFIG.TightGripMaxLevel); } - if(SpectrumCommon.CONFIG.ExuberanceMaxLevel != 5) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: Exuberance MaxLevel " + SpectrumCommon.CONFIG.ExuberanceMaxLevel); } - if(SpectrumCommon.CONFIG.TreasureHunterMaxLevel != 3) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: TreasureHunterMaxLevel " + SpectrumCommon.CONFIG.TreasureHunterMaxLevel); } - if(SpectrumCommon.CONFIG.BigCatchMaxLevel != 3) { anyEnchantmentSettingsChanged = true; send(source, "Enchantment settings changed: BigCatchMaxLevel " + SpectrumCommon.CONFIG.BigCatchMaxLevel); } - if(!anyEnchantmentSettingsChanged) { + if (SpectrumCommon.CONFIG.TreasureHunterMaxLevel != 3) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: TreasureHunter MaxLevel " + SpectrumCommon.CONFIG.TreasureHunterMaxLevel); + } + if (SpectrumCommon.CONFIG.DisarmingMaxLevel != 2) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: Disarming MaxLevel " + SpectrumCommon.CONFIG.DisarmingMaxLevel + "(Mobs : " + SpectrumCommon.CONFIG.DisarmingChancePerLevelMobs + " Players: " + SpectrumCommon.CONFIG.DisarmingChancePerLevelMobs + ")"); + } + if (SpectrumCommon.CONFIG.FirstStrikeMaxLevel != 2) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: FirstStrike MaxLevel " + SpectrumCommon.CONFIG.FirstStrikeMaxLevel + ("Damage per level: " + SpectrumCommon.CONFIG.FirstStrikeDamagePerLevel + ")")); + } + if (SpectrumCommon.CONFIG.ImprovedCriticalMaxLevel != 2) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: ImprovedCritical MaxLevel " + SpectrumCommon.CONFIG.ImprovedCriticalMaxLevel + "(" + SpectrumCommon.CONFIG.ImprovedCriticalExtraDamageMultiplierPerLevel + " multiplier per level)"); + } + if (SpectrumCommon.CONFIG.InertiaMaxLevel != 3) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: Inertia MaxLevel " + SpectrumCommon.CONFIG.InertiaMaxLevel); + } + if (SpectrumCommon.CONFIG.CloversFavorMaxLevel != 3) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: CloversFavor MaxLevel " + SpectrumCommon.CONFIG.CloversFavorMaxLevel); + } + if (SpectrumCommon.CONFIG.TightGripMaxLevel != 2) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: TightGrip MaxLevel " + SpectrumCommon.CONFIG.TightGripMaxLevel); + } + if (SpectrumCommon.CONFIG.ExuberanceMaxLevel != 5) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: Exuberance MaxLevel " + SpectrumCommon.CONFIG.ExuberanceMaxLevel); + } + if (SpectrumCommon.CONFIG.TreasureHunterMaxLevel != 3) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: TreasureHunterMaxLevel " + SpectrumCommon.CONFIG.TreasureHunterMaxLevel); + } + if (SpectrumCommon.CONFIG.BigCatchMaxLevel != 3) { + anyEnchantmentSettingsChanged = true; + send(source, "Enchantment settings changed: BigCatchMaxLevel " + SpectrumCommon.CONFIG.BigCatchMaxLevel); + } + if (!anyEnchantmentSettingsChanged) { send(source, "Enchantment settings changed: none"); } send(source, "GlowVisionGogglesDuration: " + SpectrumCommon.CONFIG.GlowVisionGogglesDuration); - send(source, "Bedrock Armor Protection: " + SpectrumCommon.CONFIG.BedrockArmorHelmetProtection + ", " + SpectrumCommon.CONFIG.BedrockArmorLeggingsProtection + ", " + SpectrumCommon.CONFIG.BedrockArmorChestplateProtection + ", " + SpectrumCommon.CONFIG.BedrockArmorBootsProtection + " (Toughness: " + SpectrumCommon.CONFIG.BedrockArmorToughness + ", Knockback Resistance: " + SpectrumCommon.CONFIG.BedrockArmorKnockbackResistance + ")"); - send(source, "Gemstone Armor Protection: " + SpectrumCommon.CONFIG.GemstoneArmorHelmetProtection + ", " + SpectrumCommon.CONFIG.GemstoneArmorChestplateProtection + ", " + SpectrumCommon.CONFIG.GemstoneArmorLeggingsProtection + ", " + SpectrumCommon.CONFIG.GemstoneArmorBootsProtection + " (Toughness: " + SpectrumCommon.CONFIG.GemstoneArmorToughness + ", Knockback Resistance: " + SpectrumCommon.CONFIG.GemstoneArmorKnockbackResistance+ ")"); - send(source, "Bedrock Armor Effect Amplifiers: " + SpectrumCommon.CONFIG.GemstoneArmorWeaknessAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorSlownessAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorAbsorptionAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorResistanceAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorRegenerationAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorSpeedAmplifier+ ")"); + send(source, "Bedrock Armor Protection: " + SpectrumCommon.CONFIG.BedrockArmorHelmetProtection + ", " + SpectrumCommon.CONFIG.BedrockArmorLeggingsProtection + ", " + SpectrumCommon.CONFIG.BedrockArmorChestplateProtection + ", " + SpectrumCommon.CONFIG.BedrockArmorBootsProtection + " (Toughness: " + SpectrumCommon.CONFIG.BedrockArmorToughness + ", Knockback Resistance: " + SpectrumCommon.CONFIG.BedrockArmorKnockbackResistance + ")"); + send(source, "Gemstone Armor Protection: " + SpectrumCommon.CONFIG.GemstoneArmorHelmetProtection + ", " + SpectrumCommon.CONFIG.GemstoneArmorChestplateProtection + ", " + SpectrumCommon.CONFIG.GemstoneArmorLeggingsProtection + ", " + SpectrumCommon.CONFIG.GemstoneArmorBootsProtection + " (Toughness: " + SpectrumCommon.CONFIG.GemstoneArmorToughness + ", Knockback Resistance: " + SpectrumCommon.CONFIG.GemstoneArmorKnockbackResistance + ")"); + send(source, "Bedrock Armor Effect Amplifiers: " + SpectrumCommon.CONFIG.GemstoneArmorWeaknessAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorSlownessAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorAbsorptionAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorResistanceAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorRegenerationAmplifier + ", " + SpectrumCommon.CONFIG.GemstoneArmorSpeedAmplifier + ")"); return 0; } private static void send(ServerCommandSource source, String s) { - source.sendFeedback(new LiteralText(s), false); + source.sendFeedback(Text.literal(s), false); } diff --git a/src/main/java/de/dafuqs/spectrum/commands/SanityCommand.java b/src/main/java/de/dafuqs/spectrum/commands/SanityCommand.java index 1b2545b9c5..39243a5c03 100644 --- a/src/main/java/de/dafuqs/spectrum/commands/SanityCommand.java +++ b/src/main/java/de/dafuqs/spectrum/commands/SanityCommand.java @@ -37,7 +37,7 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.SoundEvent; import net.minecraft.tag.BlockTags; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; @@ -51,14 +51,22 @@ public class SanityCommand { private static final List advancementGatingWarningWhitelist = new ArrayList<>() {{ + add(SpectrumCommon.locate("collect_mysterious_locket")); add(SpectrumCommon.locate("find_ancient_ruins")); + add(SpectrumCommon.locate("enter_ancient_ruins")); + add(SpectrumCommon.locate("enter_wireless_redstone_puzzle_structure")); + add(SpectrumCommon.locate("enter_color_mixing_puzzle_structure")); + + add(SpectrumCommon.locate("enter_ancient_ruins")); + add(SpectrumCommon.locate("tap_aged_air")); add(SpectrumCommon.locate("hook_entity_with_molten_rod")); + add(SpectrumCommon.locate("midgame/take_off_belt_overcharged")); add(SpectrumCommon.locate("midgame/craft_blacklisted_memory_fail")); add(SpectrumCommon.locate("midgame/craft_blacklisted_memory_success")); add(SpectrumCommon.locate("midgame/build_cinderhearth_structure_without_lava")); - add(SpectrumCommon.locate("tap_aged_air")); add(SpectrumCommon.locate("midgame/tap_chrysocolla")); + add(SpectrumCommon.locate("midgame/tap_sweetened_jade_wine")); }}; public static void register(CommandDispatcher dispatcher) { @@ -78,8 +86,8 @@ private static int execute(ServerCommandSource source) { if (registryKey.getValue().getNamespace().equals(SpectrumCommon.MOD_ID)) { BlockState blockState = entry.getValue().getDefaultState(); - // unbreakable blocks do not need to have an entry - if(blockState.getBlock().getHardness() <= -1) { + // unbreakable or instabreak blocks do not need to have an entry + if (blockState.getBlock().getHardness() <= 0) { continue; } @@ -102,7 +110,7 @@ private static int execute(ServerCommandSource source) { Identifier lootTableID = block.getLootTableId(); // unbreakable blocks do not need to have a loot table - if(blockState.getBlock().getHardness() <= -1) { + if (blockState.getBlock().getHardness() <= -1) { continue; } @@ -232,18 +240,18 @@ private static int execute(ServerCommandSource source) { // Pedestal Recipes in wrong data folder for (PedestalCraftingRecipe recipe : recipeManager.listAllOfType(SpectrumRecipeTypes.PEDESTAL)) { Identifier id = recipe.getId(); - if(id.getPath().contains("/glass/") || id.getPath().contains("/saplings/") || id.getPath().contains("/detectors/") || id.getPath().contains("/gem_lamps/") || id.getPath().contains("/decostones/") - || id.getPath().contains("/runes/") || id.getPath().contains("/pastel_network/") || id.getPath().contains("/gemstone_chimes/")|| id.getPath().contains("/pastel_network/") || id.getPath().contains("/player_only_glass/")) { + if (id.getPath().contains("/glass/") || id.getPath().contains("/saplings/") || id.getPath().contains("/detectors/") || id.getPath().contains("/gem_lamps/") || id.getPath().contains("/decostones/") + || id.getPath().contains("/runes/") || id.getPath().contains("/pastel_network/") || id.getPath().contains("/gemstone_chimes/") || id.getPath().contains("/pastel_network/") || id.getPath().contains("/player_only_glass/")) { continue; } - if(recipe.getTier() == PedestalRecipeTier.BASIC && !id.getPath().contains("/tier1/")) { + if (recipe.getTier() == PedestalRecipeTier.BASIC && !id.getPath().contains("/tier1/")) { SpectrumCommon.logWarning("[SANITY: Pedestal Recipes] BASIC Recipe not in the correct tier folder: '" + id + "'"); - } else if(recipe.getTier() == PedestalRecipeTier.SIMPLE && !id.getPath().contains("/tier2/")) { + } else if (recipe.getTier() == PedestalRecipeTier.SIMPLE && !id.getPath().contains("/tier2/")) { SpectrumCommon.logWarning("[SANITY: Pedestal Recipes] SIMPLE Recipe not in the correct tier folder: '" + id + "'"); - } else if(recipe.getTier() == PedestalRecipeTier.ADVANCED && !id.getPath().contains("/tier3/")) { + } else if (recipe.getTier() == PedestalRecipeTier.ADVANCED && !id.getPath().contains("/tier3/")) { SpectrumCommon.logWarning("[SANITY: Pedestal Recipes] ADVANCED Recipe not in the correct tier folder: '" + id + "'"); - } else if(recipe.getTier() == PedestalRecipeTier.COMPLEX && !id.getPath().contains("/tier4/")) { + } else if (recipe.getTier() == PedestalRecipeTier.COMPLEX && !id.getPath().contains("/tier4/")) { SpectrumCommon.logWarning("[SANITY: Pedestal Recipes] COMPLEX Recipe not in the correct tier folder: '" + id + "'"); } } @@ -289,7 +297,7 @@ private static int execute(ServerCommandSource source) { } if (source.getEntity() instanceof ServerPlayerEntity serverPlayerEntity) { - serverPlayerEntity.sendMessage(new TranslatableText("commands.spectrum.progression_sanity.success"), false); + serverPlayerEntity.sendMessage(Text.translatable("commands.spectrum.progression_sanity.success"), false); } return 0; @@ -299,7 +307,7 @@ private static void testRecipeUnlocks(RecipeType reci for (GatedRecipe recipe : recipeManager.listAllOfType(recipeType)) { Identifier advancementIdentifier = recipe.getRequiredAdvancementIdentifier(); if (advancementIdentifier != null && advancementLoader.get(advancementIdentifier) == null) { - SpectrumCommon.logWarning("[SANITY: "+ name + " Recipe Unlocks] Advancement '" + recipe.getRequiredAdvancementIdentifier() + "' in recipe '" + recipe.getId() + "' does not exist"); + SpectrumCommon.logWarning("[SANITY: " + name + " Recipe Unlocks] Advancement '" + recipe.getRequiredAdvancementIdentifier() + "' in recipe '" + recipe.getId() + "' does not exist"); } } } diff --git a/src/main/java/de/dafuqs/spectrum/commands/ShootingStarCommand.java b/src/main/java/de/dafuqs/spectrum/commands/ShootingStarCommand.java index 3248341394..8dcb9a3ee7 100644 --- a/src/main/java/de/dafuqs/spectrum/commands/ShootingStarCommand.java +++ b/src/main/java/de/dafuqs/spectrum/commands/ShootingStarCommand.java @@ -8,7 +8,7 @@ import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import java.util.Collection; @@ -30,7 +30,7 @@ private static int execute(ServerCommandSource source, Collection 1 output + public GatedSpectrumDisplay(GatedRecipe recipe, Ingredient input, ItemStack output) { + this(recipe, Collections.singletonList(EntryIngredients.ofIngredient(input)), Collections.singletonList(EntryIngredients.of(output))); + } + + // n inputs => 1 output public GatedSpectrumDisplay(GatedRecipe recipe, List inputs, ItemStack output) { this(recipe, inputs, Collections.singletonList(EntryIngredients.of(output))); } - + + // n inputs => m outputs public GatedSpectrumDisplay(GatedRecipe recipe, List inputs, List outputs) { super(inputs, outputs); this.secret = recipe.isSecret(); this.requiredAdvancementIdentifier = recipe.getRequiredAdvancementIdentifier(); } - - public GatedSpectrumDisplay(Identifier requiredAdvancementIdentifier, boolean secret, List inputs, List outputs) { - super(inputs, outputs); - this.secret = secret; - this.requiredAdvancementIdentifier = requiredAdvancementIdentifier; - } - + @Override public List getInputEntries() { if (this.isUnlocked()) { return super.getInputEntries(); } else { - return new ArrayList<>(); + return List.of(); } } - + @Override public List getOutputEntries() { if (this.isUnlocked() || SpectrumCommon.CONFIG.REIListsRecipesAsNotUnlocked) { return super.getOutputEntries(); } else { - return new ArrayList<>(); + return List.of(); } } - + + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, this.requiredAdvancementIdentifier); } - + @Override public boolean isSecret() { return secret; } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/REIClientIntegration.java b/src/main/java/de/dafuqs/spectrum/compat/REI/REIClientIntegration.java index 999c49d435..8c64840c69 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/REIClientIntegration.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/REIClientIntegration.java @@ -1,43 +1,35 @@ package de.dafuqs.spectrum.compat.REI; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.mob_blocks.FirestarterMobBlock; -import de.dafuqs.spectrum.blocks.mob_blocks.FreezingMobBlock; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.mob_blocks.*; import de.dafuqs.spectrum.compat.REI.plugins.*; -import de.dafuqs.spectrum.inventories.CinderhearthScreen; -import de.dafuqs.spectrum.inventories.PedestalScreen; -import de.dafuqs.spectrum.inventories.PotionWorkshopScreen; -import de.dafuqs.spectrum.items.magic_items.NaturesStaffItem; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.anvil_crushing.AnvilCrushingRecipe; -import de.dafuqs.spectrum.recipe.cinderhearth.CinderhearthRecipe; -import de.dafuqs.spectrum.recipe.crystallarieum.CrystallarieumRecipe; -import de.dafuqs.spectrum.recipe.enchanter.EnchanterRecipe; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipe; -import de.dafuqs.spectrum.recipe.fluid_converting.LiquidCrystalConvertingRecipe; -import de.dafuqs.spectrum.recipe.fluid_converting.MidnightSolutionConvertingRecipe; -import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipe; -import de.dafuqs.spectrum.recipe.ink_converting.InkConvertingRecipe; -import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipe; -import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopBrewingRecipe; -import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopCraftingRecipe; -import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopReactingRecipe; -import de.dafuqs.spectrum.recipe.spirit_instiller.SpiritInstillerRecipe; -import de.dafuqs.spectrum.recipe.titration_barrel.ITitrationBarrelRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumItems; -import dev.architectury.event.EventResult; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.plugins.REIClientPlugin; -import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; -import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; -import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryStacks; -import me.shedaniel.rei.plugin.common.BuiltinPlugin; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Blocks; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.items.magic_items.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.anvil_crushing.*; +import de.dafuqs.spectrum.recipe.cinderhearth.*; +import de.dafuqs.spectrum.recipe.crystallarieum.*; +import de.dafuqs.spectrum.recipe.enchanter.*; +import de.dafuqs.spectrum.recipe.enchantment_upgrade.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import de.dafuqs.spectrum.recipe.fusion_shrine.*; +import de.dafuqs.spectrum.recipe.ink_converting.*; +import de.dafuqs.spectrum.recipe.pedestal.*; +import de.dafuqs.spectrum.recipe.potion_workshop.*; +import de.dafuqs.spectrum.recipe.spirit_instiller.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import de.dafuqs.spectrum.registries.*; +import dev.architectury.event.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.plugins.*; +import me.shedaniel.rei.api.client.registry.category.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.client.registry.screen.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import me.shedaniel.rei.plugin.common.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; @Environment(EnvType.CLIENT) public class REIClientIntegration implements REIClientPlugin { @@ -56,6 +48,7 @@ public void registerCategories(CategoryRegistry registry) { registry.add(new SpiritInstillingCategory()); registry.add(new LiquidCrystalConvertingCategory()); registry.add(new MidnightSolutionConvertingCategory()); + registry.add(new DragonrotConvertingCategory()); registry.add(new HeatingCategory()); registry.add(new FreezingCategory()); registry.add(new InkConvertingCategory()); @@ -76,7 +69,7 @@ public void registerCategories(CategoryRegistry registry) { registry.addWorkstations(BuiltinPlugin.CRAFTING, pedestals); registry.addWorkstations(SpectrumPlugins.PEDESTAL_CRAFTING, pedestals); - registry.addWorkstations(SpectrumPlugins.ANVIL_CRUSHING, EntryStacks.of(Blocks.ANVIL), EntryStacks.of(SpectrumBlocks.BEDROCK_ANVIL), EntryStacks.of(SpectrumBlocks.SCARLET_FRAGMENT_BLOCK), EntryStacks.of(SpectrumBlocks.PALETUR_FRAGMENT_BLOCK)); + registry.addWorkstations(SpectrumPlugins.ANVIL_CRUSHING, EntryStacks.of(Blocks.ANVIL), EntryStacks.of(SpectrumBlocks.BEDROCK_ANVIL), EntryStacks.of(SpectrumBlocks.STRATINE_FRAGMENT_BLOCK), EntryStacks.of(SpectrumBlocks.PALTAERIA_FRAGMENT_BLOCK)); registry.addWorkstations(SpectrumPlugins.FUSION_SHRINE, EntryIngredient.of(EntryStacks.of(SpectrumBlocks.FUSION_SHRINE_BASALT), EntryStacks.of(SpectrumBlocks.FUSION_SHRINE_CALCITE))); registry.addWorkstations(SpectrumPlugins.NATURES_STAFF, EntryStacks.of(SpectrumItems.NATURES_STAFF)); registry.addWorkstations(SpectrumPlugins.HEATING, EntryStacks.of(SpectrumBlocks.BLAZE_MOB_BLOCK)); @@ -85,6 +78,7 @@ public void registerCategories(CategoryRegistry registry) { registry.addWorkstations(SpectrumPlugins.ENCHANTMENT_UPGRADE, EntryStacks.of(SpectrumBlocks.ENCHANTER)); registry.addWorkstations(SpectrumPlugins.LIQUID_CRYSTAL_CONVERTING, EntryStacks.of(SpectrumItems.LIQUID_CRYSTAL_BUCKET)); registry.addWorkstations(SpectrumPlugins.MIDNIGHT_SOLUTION_CONVERTING, EntryStacks.of(SpectrumItems.MIDNIGHT_SOLUTION_BUCKET)); + registry.addWorkstations(SpectrumPlugins.DRAGONROT_CONVERTING, EntryStacks.of(SpectrumItems.DRAGONROT_BUCKET)); registry.addWorkstations(SpectrumPlugins.SPIRIT_INSTILLER, EntryStacks.of(SpectrumBlocks.SPIRIT_INSTILLER)); registry.addWorkstations(SpectrumPlugins.INK_CONVERTING, EntryStacks.of(SpectrumBlocks.COLOR_PICKER)); registry.addWorkstations(SpectrumPlugins.CRYSTALLARIEUM, EntryStacks.of(SpectrumBlocks.CRYSTALLARIEUM)); @@ -124,14 +118,15 @@ public void registerDisplays(DisplayRegistry registry) { registry.registerRecipeFiller(PotionWorkshopBrewingRecipe.class, SpectrumRecipeTypes.POTION_WORKSHOP_BREWING, PotionWorkshopBrewingDisplay::new); registry.registerRecipeFiller(PotionWorkshopCraftingRecipe.class, SpectrumRecipeTypes.POTION_WORKSHOP_CRAFTING, PotionWorkshopCraftingDisplay::new); registry.registerRecipeFiller(SpiritInstillerRecipe.class, SpectrumRecipeTypes.SPIRIT_INSTILLING, SpiritInstillingDisplay::new); - registry.registerRecipeFiller(MidnightSolutionConvertingRecipe.class, SpectrumRecipeTypes.MIDNIGHT_SOLUTION_CONVERTING, MidnightSolutionConvertingDisplay::new); registry.registerRecipeFiller(LiquidCrystalConvertingRecipe.class, SpectrumRecipeTypes.LIQUID_CRYSTAL_CONVERTING, LiquidCrystalConvertingDisplay::new); + registry.registerRecipeFiller(MidnightSolutionConvertingRecipe.class, SpectrumRecipeTypes.MIDNIGHT_SOLUTION_CONVERTING, MidnightSolutionConvertingDisplay::new); + registry.registerRecipeFiller(DragonrotConvertingRecipe.class, SpectrumRecipeTypes.DRAGONROT_CONVERTING, DragonrotConvertingDisplay::new); registry.registerRecipeFiller(InkConvertingRecipe.class, SpectrumRecipeTypes.INK_CONVERTING, InkConvertingDisplay::new); registry.registerRecipeFiller(PotionWorkshopReactingRecipe.class, SpectrumRecipeTypes.POTION_WORKSHOP_REACTING, PotionWorkshopReactingDisplay::new); registry.registerRecipeFiller(CrystallarieumRecipe.class, SpectrumRecipeTypes.CRYSTALLARIEUM, CrystallarieumDisplay::new); registry.registerRecipeFiller(CinderhearthRecipe.class, SpectrumRecipeTypes.CINDERHEARTH, CinderhearthDisplay::new); registry.registerRecipeFiller(ITitrationBarrelRecipe.class, SpectrumRecipeTypes.TITRATION_BARREL, TitrationBarrelDisplay::new); - + NaturesStaffItem.BLOCK_CONVERSIONS.forEach((key, value) -> registry.add(new NaturesStaffConversionsDisplay(EntryStacks.of(key), EntryStacks.of(value.getBlock())))); FreezingMobBlock.FREEZING_STATE_MAP.forEach((key, value) -> registry.add(new FreezingDisplay(BlockToBlockWithChanceDisplay.blockToEntryStack(key.getBlock()), BlockToBlockWithChanceDisplay.blockToEntryStack(value.getLeft().getBlock()), value.getRight()))); FreezingMobBlock.FREEZING_MAP.forEach((key, value) -> registry.add(new FreezingDisplay(BlockToBlockWithChanceDisplay.blockToEntryStack(key), BlockToBlockWithChanceDisplay.blockToEntryStack(value.getLeft().getBlock()), value.getRight()))); diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/REIOverlayDecider.java b/src/main/java/de/dafuqs/spectrum/compat/REI/REIOverlayDecider.java index 10a6b4495f..2e4ba31d81 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/REIOverlayDecider.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/REIOverlayDecider.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.compat.REI; -import de.dafuqs.spectrum.inventories.PaintbrushScreen; +import de.dafuqs.spectrum.inventories.QuickNavigationGridScreen; import me.shedaniel.rei.api.client.registry.screen.OverlayDecider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -19,9 +19,10 @@ public boolean isHandingScreen(Class screen) { @Override public ActionResult shouldScreenBeOverlaid(R screen) { - if(screen instanceof PaintbrushScreen) { + if (screen instanceof QuickNavigationGridScreen) { return ActionResult.FAIL; } return ActionResult.PASS; } + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/SpectrumPlugins.java b/src/main/java/de/dafuqs/spectrum/compat/REI/SpectrumPlugins.java index 7a129e27f1..d4cb4942af 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/SpectrumPlugins.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/SpectrumPlugins.java @@ -1,8 +1,8 @@ package de.dafuqs.spectrum.compat.REI; -import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.compat.REI.plugins.*; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.category.*; public class SpectrumPlugins { @@ -16,13 +16,14 @@ public class SpectrumPlugins { public static final CategoryIdentifier POTION_WORKSHOP_CRAFTING = CategoryIdentifier.of(SpectrumCommon.locate("potion_workshop_crafting")); public static final CategoryIdentifier POTION_WORKSHOP_REACTING = CategoryIdentifier.of(SpectrumCommon.locate("potion_workshop_reacting")); public static final CategoryIdentifier SPIRIT_INSTILLER = CategoryIdentifier.of(SpectrumCommon.locate("spirit_instiller")); - public static final CategoryIdentifier MIDNIGHT_SOLUTION_CONVERTING = CategoryIdentifier.of(SpectrumCommon.locate("midnight_solution_converting")); public static final CategoryIdentifier LIQUID_CRYSTAL_CONVERTING = CategoryIdentifier.of(SpectrumCommon.locate("liquid_crystal_converting")); + public static final CategoryIdentifier MIDNIGHT_SOLUTION_CONVERTING = CategoryIdentifier.of(SpectrumCommon.locate("midnight_solution_converting")); + public static final CategoryIdentifier DRAGONROT_CONVERTING = CategoryIdentifier.of(SpectrumCommon.locate("dragonrot_converting")); public static final CategoryIdentifier HEATING = CategoryIdentifier.of(SpectrumCommon.locate("heating")); public static final CategoryIdentifier FREEZING = CategoryIdentifier.of(SpectrumCommon.locate("freezing")); public static final CategoryIdentifier INK_CONVERTING = CategoryIdentifier.of(SpectrumCommon.locate("ink_converting")); public static final CategoryIdentifier CRYSTALLARIEUM = CategoryIdentifier.of(SpectrumCommon.locate("crystallarieum")); - public static final CategoryIdentifier CINDERHEARTH = CategoryIdentifier.of(SpectrumCommon.locate("cinderhearth")); + public static final CategoryIdentifier CINDERHEARTH = CategoryIdentifier.of(SpectrumCommon.locate("cinderhearth")); public static final CategoryIdentifier TITRATION_BARREL = CategoryIdentifier.of(SpectrumCommon.locate("titration_barrel")); - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/AnvilCrushingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/AnvilCrushingCategory.java index a8e3e80c65..9493c8d9ce 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/AnvilCrushingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/AnvilCrushingCategory.java @@ -1,97 +1,95 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.block.Blocks; -import net.minecraft.item.Items; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.compat.REI.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class AnvilCrushingCategory implements DisplayCategory { - + private final static Identifier WALL_TEXTURE = SpectrumCommon.locate("textures/gui/container/anvil_crushing.png"); private final static EntryIngredient ANVIL = EntryIngredients.of(Items.ANVIL); - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.ANVIL_CRUSHING; } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.anvil_crushing.title"); + return Text.translatable("container.spectrum.rei.anvil_crushing.title"); } - + @Override public Renderer getIcon() { return EntryStacks.of(Blocks.ANVIL); } - + @Override public List setupDisplay(AnvilCrushingDisplay display, Rectangle bounds) { - + Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 41); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 33), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 43), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 33), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 43), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { widgets.add(Widgets.createArrow(new Point(startPoint.x + 50, startPoint.y + 23))); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 95, startPoint.y + 24))); - + List input = display.getInputEntries(); List output = display.getOutputEntries(); - + // input and output slots widgets.add(Widgets.createSlot(new Point(startPoint.x + 20, startPoint.y + 18)).entries(ANVIL).disableBackground().notInteractable()); widgets.add(Widgets.createSlot(new Point(startPoint.x + 20, startPoint.y + 40)).markInput().entries(input.get(0))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 23)).markOutput().disableBackground().entries(output.get(0))); - + // dirt wall destinationX destinationY sourceX, sourceY, width, height widgets.add(Widgets.createTexturedWidget(WALL_TEXTURE, startPoint.x, startPoint.y + 9, 0, 0, 16, 48)); - + // falling stripes for anvil widgets.add(Widgets.createTexturedWidget(WALL_TEXTURE, startPoint.x + 20, startPoint.y + 8, 16, 0, 16, 16)); - + // xp text widgets.add(Widgets.createLabel(new Point(startPoint.x + 84, startPoint.y + 48), - new TranslatableText("container.spectrum.rei.anvil_crushing.plus_xp", display.experience) + Text.translatable("container.spectrum.rei.anvil_crushing.plus_xp", display.experience) ).leftAligned().color(0x3f3f3f).noShadow()); - + // the tooltip text - TranslatableText text; + Text text; if (display.crushedItemsPerPointOfDamage >= 1) { - text = new TranslatableText("container.spectrum.rei.anvil_crushing.low_force_required"); + text = Text.translatable("container.spectrum.rei.anvil_crushing.low_force_required"); } else if (display.crushedItemsPerPointOfDamage >= 0.5) { - text = new TranslatableText("container.spectrum.rei.anvil_crushing.medium_force_required"); + text = Text.translatable("container.spectrum.rei.anvil_crushing.medium_force_required"); } else { - text = new TranslatableText("container.spectrum.rei.anvil_crushing.high_force_required"); + text = Text.translatable("container.spectrum.rei.anvil_crushing.high_force_required"); } widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 68), text).leftAligned().color(0x3f3f3f).noShadow()); } - + return widgets; } - + @Override public int getDisplayHeight() { return 84; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceCategory.java index e8147a2da1..86d9ac17fe 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceCategory.java @@ -1,39 +1,39 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import net.minecraft.text.TranslatableText; +import com.google.common.collect.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; -import java.util.List; +import java.util.*; +@Environment(EnvType.CLIENT) public abstract class BlockToBlockWithChanceCategory implements DisplayCategory { - + @Override public List setupDisplay(BlockToBlockWithChanceDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 44, bounds.getCenterY() - 19); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 10), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 20), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 10), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 20), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { widgets.add(Widgets.createArrow(new Point(startPoint.x + 27, startPoint.y + 4))); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 5))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 4, startPoint.y + 5)).entries(display.getInputEntries().get(0)).markInput()); widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 5)).entries(display.getOutputEntries().get(0)).disableBackground().markInput()); - widgets.add(Widgets.createLabel(new Point(startPoint.x + 4, startPoint.y + 30), new TranslatableText("container.spectrum.rei.chance", display.getChance() * 100)).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x + 4, startPoint.y + 30), Text.translatable("container.spectrum.rei.chance", display.getChance() * 100)).leftAligned().color(0x3f3f3f).noShadow()); } return widgets; } - + @Override public int getDisplayHeight() { return 50; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceDisplay.java index 5b3e72d1a1..b54ac135b7 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/BlockToBlockWithChanceDisplay.java @@ -12,7 +12,7 @@ import java.util.List; public abstract class BlockToBlockWithChanceDisplay extends BasicDisplay implements GatedRecipeDisplay { - + public final float chance; public BlockToBlockWithChanceDisplay(List inputs, List outputs, float chance) { @@ -28,7 +28,7 @@ public static EntryStack blockToEntryStack(Block block) { } } - + public final float getChance() { return chance; } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthCategory.java index 4037dea576..126331310d 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthCategory.java @@ -1,93 +1,87 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.item.ItemStack; -import net.minecraft.text.LiteralText; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Pair; -import org.jetbrains.annotations.NotNull; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; +@Environment(EnvType.CLIENT) public class CinderhearthCategory implements DisplayCategory { - - private static final EntryIngredient CINDERHEARTH = EntryIngredients.of(SpectrumBlocks.CINDERHEARTH); - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.CINDERHEARTH; } - + @Override public Text getTitle() { - return new TranslatableText("block.spectrum.cinderhearth"); + return Text.translatable("block.spectrum.cinderhearth"); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.CINDERHEARTH); } - + @Override public List setupDisplay(@NotNull CinderhearthDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 62, bounds.y + 9); - + List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 33), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 43), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 33), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 43), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y)).markInput().entries(display.getInputEntries().get(0))); // input slot - + // output arrow and slot widgets.add(Widgets.createArrow(new Point(startPoint.x + 19, startPoint.y + 5)).animationDurationTicks(display.craftingTime)); widgets.add(Widgets.createBurningFire(new Point(startPoint.x + 1, startPoint.y + 20)).animationDurationMS(10000)); - + List> outputs = display.outputsWithChance; for (int i = 0; i < outputs.size(); i++) { Pair currentOutput = outputs.get(i); ItemStack outputStack = currentOutput.getLeft(); Float chance = currentOutput.getRight(); - + Point point = new Point(startPoint.x + 50 + i * 28, startPoint.y + 5); widgets.add(Widgets.createResultSlotBackground(point)); widgets.add(Widgets.createSlot(point).disableBackground().markOutput().entries(EntryIngredients.of(outputStack))); - if(chance < 1.0) { - widgets.add(Widgets.createLabel(new Point(point.x - 2, point.y + 23), new LiteralText((int) (chance * 100) + " %")).leftAligned().color(0x3f3f3f).noShadow()); + if (chance < 1.0) { + widgets.add(Widgets.createLabel(new Point(point.x - 2, point.y + 23), Text.literal((int) (chance * 100) + " %")).leftAligned().color(0x3f3f3f).noShadow()); } } - + // description text // special handling for "1 second". Looks nicer - TranslatableText text; + Text text; if (display.craftingTime == 20) { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); } else { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); } widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 43), text).leftAligned().color(0x3f3f3f).noShadow()); } return widgets; } - + @Override public int getDisplayHeight() { return 65; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthDisplay.java index 6019062904..dc3fa19e3f 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CinderhearthDisplay.java @@ -32,6 +32,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.CINDERHEARTH; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, CinderhearthRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumCategory.java index 2a639e77ab..4ccad9eb27 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumCategory.java @@ -1,119 +1,116 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.recipe.crystallarieum.CrystallarieumCatalyst; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import org.jetbrains.annotations.NotNull; - -import java.util.Iterator; -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.crystallarieum.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import org.jetbrains.annotations.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class CrystallarieumCategory implements DisplayCategory { - + public final static Identifier BACKGROUND_TEXTURE = SpectrumCommon.locate("textures/gui/patchouli/crystallarieum.png"); private static final EntryIngredient CRYSTALLARIEUM = EntryIngredients.of(SpectrumBlocks.CRYSTALLARIEUM); - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.CRYSTALLARIEUM; } - + @Override public Text getTitle() { - return new TranslatableText("block.spectrum.crystallarieum"); + return Text.translatable("block.spectrum.crystallarieum"); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.CRYSTALLARIEUM); } - + @Override public List setupDisplay(@NotNull CrystallarieumDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 68, bounds.getCenterY() - 49); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 33), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 43), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 33), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 43), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { // input EntryIngredient input = display.getInputEntries().get(0); widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 8)).markInput().entries(input)); - + // crystallarieum widgets.add(Widgets.createSlot(new Point(startPoint.x + 20, startPoint.y + 16)).entries(CRYSTALLARIEUM).disableBackground()); - + // output arrow widgets.add(Widgets.createArrow(new Point(startPoint.x + 39, startPoint.y + 8)).animationDurationTicks(display.secondsPerStage)); - + // growth stages Iterator it = display.growthStages.iterator(); widgets.add(Widgets.createSlot(new Point(startPoint.x + 20, startPoint.y)).markInput().entries(it.next())); int x = 0; - while(it.hasNext()) { + while (it.hasNext()) { widgets.add(Widgets.createSlot(new Point(startPoint.x + 66 + x * 20, startPoint.y + 8)).markInput().entries(it.next())); x++; } - + // catalysts - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 42), new TranslatableText("container.spectrum.rei.crystallarieum.catalyst")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 58), new TranslatableText("container.spectrum.rei.crystallarieum.accelerator")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 68), new TranslatableText("container.spectrum.rei.crystallarieum.ink_consumption")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 78), new TranslatableText("container.spectrum.rei.crystallarieum.used_up")).leftAligned().color(0x3f3f3f).noShadow()); - + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 42), Text.translatable("container.spectrum.rei.crystallarieum.catalyst")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 58), Text.translatable("container.spectrum.rei.crystallarieum.accelerator")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 68), Text.translatable("container.spectrum.rei.crystallarieum.ink_consumption")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 78), Text.translatable("container.spectrum.rei.crystallarieum.used_up")).leftAligned().color(0x3f3f3f).noShadow()); + int i = 0; int startX = 46; int offsetPerReagent = 18; - for(CrystallarieumCatalyst catalyst : display.catalysts) { + for (CrystallarieumCatalyst catalyst : display.catalysts) { int offsetX = startPoint.x + startX + offsetPerReagent * i; widgets.add(Widgets.createSlot(new Point(offsetX, startPoint.y + 38)).markInput().entries(EntryIngredients.ofIngredient(catalyst.ingredient))); - + float growthAcceleration = catalyst.growthAccelerationMod; int offsetU = growthAcceleration == 1 ? 97 : growthAcceleration >= 6 ? 85 : growthAcceleration > 1 ? 67 : growthAcceleration <= 0.25 ? 79 : 73; widgets.add(Widgets.createTexturedWidget(BACKGROUND_TEXTURE, offsetX + 5, startPoint.y + 59, offsetU, 0, 6, 6, 128, 128)); - + float inkConsumption = catalyst.inkConsumptionMod; offsetU = inkConsumption == 1 ? 97 : inkConsumption >= 8 ? 85 : inkConsumption > 1 ? 67 : inkConsumption <= 0.25 ? 79 : 73; widgets.add(Widgets.createTexturedWidget(BACKGROUND_TEXTURE, offsetX + 5, startPoint.y + 69, offsetU, 6, 6, 6, 128, 128)); - + float consumeChance = catalyst.consumeChancePerSecond; offsetU = consumeChance == 0 ? 97 : consumeChance >= 0.2 ? 85 : consumeChance >= 0.05 ? 67 : 91; widgets.add(Widgets.createTexturedWidget(BACKGROUND_TEXTURE, offsetX + 5, startPoint.y + 79, offsetU, 6, 6, 6, 128, 128)); - + i++; } - + // description texts if (display.growsWithoutCatalyst) { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 90), new TranslatableText("container.spectrum.rei.crystallarieum.crafting_time_per_stage_seconds", display.secondsPerStage)).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 90), Text.translatable("container.spectrum.rei.crystallarieum.crafting_time_per_stage_seconds", display.secondsPerStage)).leftAligned().color(0x3f3f3f).noShadow()); } else { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 90), new TranslatableText("container.spectrum.rei.crystallarieum.crafting_time_per_stage_seconds_catalyst_required", display.secondsPerStage)).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 90), Text.translatable("container.spectrum.rei.crystallarieum.crafting_time_per_stage_seconds_catalyst_required", display.secondsPerStage)).leftAligned().color(0x3f3f3f).noShadow()); } } return widgets; } - + @Override public int getDisplayHeight() { return 112; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumDisplay.java index 36ccb52117..7e2af3bbdd 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/CrystallarieumDisplay.java @@ -1,21 +1,18 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.compat.REI.GatedSpectrumDisplay; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.recipe.crystallarieum.CrystallarieumCatalyst; -import de.dafuqs.spectrum.recipe.crystallarieum.CrystallarieumRecipe; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import net.minecraft.block.BlockState; -import net.minecraft.client.MinecraftClient; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.recipe.crystallarieum.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.minecraft.block.*; +import net.minecraft.client.*; +import net.minecraft.item.*; +import org.jetbrains.annotations.*; + +import java.util.*; public class CrystallarieumDisplay extends GatedSpectrumDisplay { @@ -26,10 +23,10 @@ public class CrystallarieumDisplay extends GatedSpectrumDisplay { protected final int secondsPerStage; public CrystallarieumDisplay(@NotNull CrystallarieumRecipe recipe) { - super(recipe, Collections.singletonList(EntryIngredients.ofIngredient(recipe.getIngredientStack())), Collections.singletonList(EntryIngredients.of(recipe.getOutput()))); - + super(recipe, inputs(recipe), outputs(recipe)); + this.growthStages = new ArrayList<>(); - for(BlockState state : recipe.getGrowthStages()) { + for (BlockState state : recipe.getGrowthStages()) { growthStages.add(EntryIngredients.of(state.getBlock().asItem())); } this.catalysts = recipe.getCatalysts(); @@ -37,12 +34,40 @@ public CrystallarieumDisplay(@NotNull CrystallarieumRecipe recipe) { this.growsWithoutCatalyst = recipe.growsWithoutCatalyst(); this.secondsPerStage = recipe.getSecondsPerGrowthStage(); } - + + public static List inputs(CrystallarieumRecipe recipe) { + List inputs = new ArrayList<>(); + inputs.add(EntryIngredients.ofIngredient(recipe.getIngredientStack())); + + Item firstBlockStateItem = recipe.getGrowthStages().get(0).getBlock().asItem(); + if (firstBlockStateItem != Items.AIR) { + inputs.add(EntryIngredients.of(firstBlockStateItem)); + } + return inputs; + } + + public static List outputs(CrystallarieumRecipe recipe) { + List outputs = new ArrayList<>(); + outputs.add(EntryIngredients.of(recipe.getOutput())); + for (ItemStack additionalOutput : recipe.getAdditionalOutputs()) { + outputs.add(EntryIngredients.of(additionalOutput)); + } + + for (BlockState growthStageState : recipe.getGrowthStages()) { + Item blockStateItem = growthStageState.getBlock().asItem(); + if (blockStateItem != Items.AIR) { + outputs.add(EntryIngredients.of(blockStateItem)); + } + } + return outputs; + } + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.CRYSTALLARIEUM; } - + + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, CrystallarieumRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/DragonrotConvertingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/DragonrotConvertingCategory.java new file mode 100644 index 0000000000..ec1a43bde8 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/DragonrotConvertingCategory.java @@ -0,0 +1,29 @@ +package de.dafuqs.spectrum.compat.REI.plugins; + +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; + +@Environment(EnvType.CLIENT) +public class DragonrotConvertingCategory extends FluidConvertingCategory { + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SpectrumPlugins.DRAGONROT_CONVERTING; + } + + @Override + public Renderer getIcon() { + return EntryStacks.of(SpectrumItems.DRAGONROT_BUCKET); + } + + @Override + public Text getTitle() { + return Text.translatable("container.spectrum.rei.dragonrot_converting.title"); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/DragonrotConvertingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/DragonrotConvertingDisplay.java new file mode 100644 index 0000000000..e247257059 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/DragonrotConvertingDisplay.java @@ -0,0 +1,24 @@ +package de.dafuqs.spectrum.compat.REI.plugins; + +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import me.shedaniel.rei.api.common.category.*; +import net.minecraft.util.*; + +public class DragonrotConvertingDisplay extends FluidConvertingDisplay { + + public DragonrotConvertingDisplay(DragonrotConvertingRecipe recipe) { + super(recipe); + } + + @Override + public Identifier getUnlockIdentifier() { + return DragonrotConvertingRecipe.UNLOCK_IDENTIFIER; + } + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SpectrumPlugins.DRAGONROT_CONVERTING; + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterCategory.java index fd82ae2174..7b0307a973 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterCategory.java @@ -1,68 +1,66 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import org.jetbrains.annotations.NotNull; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import org.jetbrains.annotations.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class EnchanterCategory implements DisplayCategory { - + public final static Identifier BACKGROUND_TEXTURE = SpectrumCommon.locate("textures/gui/container/enchanter.png"); public static final EntryIngredient ENCHANTER = EntryIngredients.of(SpectrumBlocks.ENCHANTER); - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.ENCHANTER; } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.enchanting.title"); + return Text.translatable("container.spectrum.rei.enchanting.title"); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.ENCHANTER); } - + @Override public List setupDisplay(@NotNull EnchanterDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 58 - 7, bounds.getCenterY() - 49); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 38), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 48), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 38), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 48), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { // enchanter structure background destinationX destinationY sourceX, sourceY, width, height widgets.add(Widgets.createTexturedWidget(BACKGROUND_TEXTURE, startPoint.x + 12, startPoint.y + 21, 0, 0, 54, 54)); - + // Knowledge Gem and Enchanter List inputs = display.getInputEntries(); widgets.add(Widgets.createSlot(new Point(startPoint.x + 111, startPoint.y + 14)).markInput().entries(inputs.get(9))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 111, startPoint.y + 60)).entries(ENCHANTER).disableBackground()); - + // center input slot widgets.add(Widgets.createSlot(new Point(startPoint.x + 31, startPoint.y + 40)).markInput().entries(inputs.get(0))); - + // surrounding input slots widgets.add(Widgets.createSlot(new Point(startPoint.x + 18, startPoint.y + 9)).markInput().entries(inputs.get(1))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 44, startPoint.y + 9)).markInput().entries(inputs.get(2))); @@ -72,29 +70,29 @@ public List setupDisplay(@NotNull EnchanterDisplay display, @NotNull Rec widgets.add(Widgets.createSlot(new Point(startPoint.x + 18, startPoint.y + 71)).markInput().entries(inputs.get(6))); widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 53)).markInput().entries(inputs.get(7))); widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 27)).markInput().entries(inputs.get(8))); - + // output arrow and slot List output = display.getOutputEntries(); widgets.add(Widgets.createArrow(new Point(startPoint.x + 80, startPoint.y + 40)).animationDurationTicks(display.craftingTime)); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 111, startPoint.y + 40))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 111, startPoint.y + 40)).markOutput().disableBackground().entries(output.get(0))); - + // duration and XP requirements // special handling for "1 second". Looks nicer - TranslatableText text; + Text text; if (display.craftingTime == 20) { - text = new TranslatableText("container.spectrum.rei.enchanting.crafting_time_one_second", 1); + text = Text.translatable("container.spectrum.rei.enchanting.crafting_time_one_second", 1); } else { - text = new TranslatableText("container.spectrum.rei.enchanting.crafting_time", (display.craftingTime / 20)); + text = Text.translatable("container.spectrum.rei.enchanting.crafting_time", (display.craftingTime / 20)); } widgets.add(Widgets.createLabel(new Point(startPoint.x + 70, startPoint.y + 85), text).leftAligned().color(0x3f3f3f).noShadow()); } return widgets; } - + @Override public int getDisplayHeight() { return 100; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterDisplay.java index f53622a715..3cea041b2c 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchanterDisplay.java @@ -38,6 +38,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.ENCHANTER; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, EnchanterRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeCategory.java index 581492fa34..864196be99 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeCategory.java @@ -1,63 +1,62 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import org.jetbrains.annotations.NotNull; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import org.jetbrains.annotations.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class EnchantmentUpgradeCategory implements DisplayCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.ENCHANTMENT_UPGRADE; } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.enchantment_upgrading.title"); + return Text.translatable("container.spectrum.rei.enchantment_upgrading.title"); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.ENCHANTER); } - + @Override public List setupDisplay(@NotNull EnchantmentUpgradeDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 58 - 7, bounds.getCenterY() - 49); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 38), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 48), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 38), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 48), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { // enchanter structure background destinationX destinationY sourceX, sourceY, width, height widgets.add(Widgets.createTexturedWidget(EnchanterCategory.BACKGROUND_TEXTURE, startPoint.x + 12, startPoint.y + 21, 0, 0, 54, 54)); - + List inputs = display.getInputEntries(); - + // Knowledge Gem and Enchanter widgets.add(Widgets.createSlot(new Point(startPoint.x + 111, startPoint.y + 14)).markInput().entries(inputs.get(9))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 111, startPoint.y + 60)).entries(EnchanterCategory.ENCHANTER).disableBackground()); - + // center input slot widgets.add(Widgets.createSlot(new Point(startPoint.x + 31, startPoint.y + 40)).markInput().entries(inputs.get(0))); - + // surrounding input slots widgets.add(Widgets.createSlot(new Point(startPoint.x + 18, startPoint.y + 9)).markInput().entries(inputs.get(1))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 44, startPoint.y + 9)).markInput().entries(inputs.get(2))); @@ -67,25 +66,25 @@ public List setupDisplay(@NotNull EnchantmentUpgradeDisplay display, @No widgets.add(Widgets.createSlot(new Point(startPoint.x + 18, startPoint.y + 71)).markInput().entries(inputs.get(6))); widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 53)).markInput().entries(inputs.get(7))); widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 27)).markInput().entries(inputs.get(8))); - + // output arrow and slot widgets.add(Widgets.createArrow(new Point(startPoint.x + 80, startPoint.y + 40))); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 111, startPoint.y + 40))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 111, startPoint.y + 40)).markOutput().disableBackground().entries(display.getOutputEntries().get(0))); - + // required amount - TranslatableText text; + Text text; if (display.requiredItemCount > 0) { - text = new TranslatableText("container.spectrum.rei.enchantment_upgrade.required_item_count", display.requiredItemCount); + text = Text.translatable("container.spectrum.rei.enchantment_upgrade.required_item_count", display.requiredItemCount); widgets.add(Widgets.createLabel(new Point(startPoint.x + 67, startPoint.y + 78), text).leftAligned().color(0x3f3f3f).noShadow()); } } return widgets; } - + @Override public int getDisplayHeight() { return 100; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeDisplay.java index ad119fd317..d45a9de0d7 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/EnchantmentUpgradeDisplay.java @@ -53,8 +53,9 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.ENCHANTMENT_UPGRADE; } + @Override public boolean isUnlocked() { - if(!AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, EnchanterRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked()) { + if (!AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, EnchanterRecipe.UNLOCK_IDENTIFIER) || !super.isUnlocked()) { return false; } if (enchantmentDestinationLevel > enchantment.getMaxLevel()) { diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FluidConvertingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FluidConvertingCategory.java new file mode 100644 index 0000000000..6c89710e38 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FluidConvertingCategory.java @@ -0,0 +1,37 @@ +package de.dafuqs.spectrum.compat.REI.plugins; + +import com.google.common.collect.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; + +import java.util.*; + +@Environment(EnvType.CLIENT) +public abstract class FluidConvertingCategory implements DisplayCategory { + + public List setupDisplay(T display, Rectangle bounds) { + Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 13); + List widgets = Lists.newArrayList(); + widgets.add(Widgets.createRecipeBase(bounds)); + + if (!display.isUnlocked()) { + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + } else { + widgets.add(Widgets.createArrow(new Point(startPoint.x + 27, startPoint.y + 4))); + widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 5))); + widgets.add(Widgets.createSlot(new Point(startPoint.x + 4, startPoint.y + 5)).entries(display.getIn()).markInput()); + widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 5)).entries(display.getOut()).disableBackground().markInput()); + } + return widgets; + } + + @Override + public int getDisplayHeight() { + return 36; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FluidConvertingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FluidConvertingDisplay.java new file mode 100644 index 0000000000..91c0564613 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FluidConvertingDisplay.java @@ -0,0 +1,31 @@ +package de.dafuqs.spectrum.compat.REI.plugins; + +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import me.shedaniel.rei.api.common.entry.*; +import net.minecraft.client.*; +import net.minecraft.util.*; + +public abstract class FluidConvertingDisplay extends GatedSpectrumDisplay { + + public FluidConvertingDisplay(FluidConvertingRecipe recipe) { + super(recipe, recipe.getIngredients().get(0), recipe.getOutput()); + } + + public final EntryIngredient getIn() { + return getInputEntries().get(0); + } + + public final EntryIngredient getOut() { + return getOutputEntries().get(0); + } + + @Override + public boolean isUnlocked() { + return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, getUnlockIdentifier()) && super.isUnlocked(); + } + + public abstract Identifier getUnlockIdentifier(); + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingCategory.java index db2fc8b566..d06ccb5df2 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingCategory.java @@ -1,28 +1,29 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +@Environment(EnvType.CLIENT) public class FreezingCategory extends BlockToBlockWithChanceCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.FREEZING; } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.POLAR_BEAR_MOB_BLOCK); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.freezing.title"); + return Text.translatable("container.spectrum.rei.freezing.title"); } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingDisplay.java index 8974a0fb8c..1d789b1c6d 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FreezingDisplay.java @@ -24,6 +24,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.FREEZING; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, UNLOCK_ADVANCEMENT_IDENTIFIER); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineCategory.java index 189171c5d9..919a9b6bb3 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineCategory.java @@ -1,57 +1,55 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.fluid.Fluids; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import org.jetbrains.annotations.NotNull; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.fluid.*; +import net.minecraft.text.*; +import org.jetbrains.annotations.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class FusionShrineCategory implements DisplayCategory { - + private static final EntryIngredient FUSION_SHRINE_BASALT = EntryIngredients.of(SpectrumBlocks.FUSION_SHRINE_BASALT); - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.FUSION_SHRINE; } - + @Override public Text getTitle() { - return new TranslatableText("block.spectrum.fusion_shrine"); + return Text.translatable("block.spectrum.fusion_shrine"); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.FUSION_SHRINE_BASALT); } - + @Override public List setupDisplay(@NotNull FusionShrineDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 43); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 33), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 43), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 33), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 43), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { List inputs = display.getInputEntries(); - + // shrine + fluid if (!inputs.get(0).equals(EntryIngredients.of(Fluids.EMPTY))) { widgets.add(Widgets.createSlot(new Point(startPoint.x + 10, startPoint.y + 35)).entries(FUSION_SHRINE_BASALT).disableBackground()); @@ -59,43 +57,43 @@ public List setupDisplay(@NotNull FusionShrineDisplay display, @NotNull } else { widgets.add(Widgets.createSlot(new Point(startPoint.x + 20, startPoint.y + 35)).entries(FUSION_SHRINE_BASALT).disableBackground()); } - + // input slots int ingredientSize = inputs.size() - 1; int startX = Math.max(-10, 10 - ingredientSize * 10); for (int i = 0; i < ingredientSize; i++) { - EntryIngredient currentIngredient = inputs.get(i+1); + EntryIngredient currentIngredient = inputs.get(i + 1); widgets.add(Widgets.createSlot(new Point(startPoint.x + startX + i * 20, startPoint.y + 9)).markInput().entries(currentIngredient)); } - + // output arrow and slot widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 35))); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 95, startPoint.y + 35))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 35)).markOutput().disableBackground().entries(display.getOutputEntries().get(0))); - + if (display.getDescription().isPresent()) { Text description = display.getDescription().get(); widgets.add(Widgets.createLabel(new Point(startPoint.x - 10, startPoint.y + 65), description).leftAligned().color(0x3f3f3f).noShadow()); } - + // description text // special handling for "1 second". Looks nicer - TranslatableText text; + Text text; if (display.craftingTime == 20) { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); } else { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); } widgets.add(Widgets.createLabel(new Point(startPoint.x - 10, startPoint.y + 75), text).leftAligned().color(0x3f3f3f).noShadow()); - - + + } return widgets; } - + @Override public int getDisplayHeight() { return 100; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineDisplay.java index 2153bfdf87..ef77e3e6f2 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/FusionShrineDisplay.java @@ -39,6 +39,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.FUSION_SHRINE; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, FusionShrineRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationDisplay.java index 68f407d2a8..0baaaa27a5 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationDisplay.java @@ -5,14 +5,13 @@ import me.shedaniel.rei.api.common.util.EntryIngredients; import net.minecraft.item.Item; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import java.util.Collections; public abstract class GatedItemInformationDisplay extends GatedSpectrumDisplay { protected final Item item; - protected final TranslatableText description; + protected final Text description; public GatedItemInformationDisplay(DescriptiveGatedRecipe recipe) { super(recipe, Collections.singletonList(EntryIngredients.of(recipe.getItem())), Collections.emptyList()); diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationPageCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationPageCategory.java index d4d6bcae97..c27d8966fc 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationPageCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/GatedItemInformationPageCategory.java @@ -1,53 +1,52 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.entry.EntryStack; -import net.minecraft.client.MinecraftClient; -import net.minecraft.item.Item; -import net.minecraft.text.OrderedText; -import net.minecraft.text.TranslatableText; - -import java.util.List; +import com.google.common.collect.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.entry.*; +import net.fabricmc.api.*; +import net.minecraft.client.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public abstract class GatedItemInformationPageCategory implements DisplayCategory { - + @Override public List setupDisplay(GatedItemInformationDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 60, bounds.getCenterY() - 42); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { Item item = display.getItem(); widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y)).entries(display.getInputEntries().get(0)).markInput()); widgets.add(Widgets.createLabel(new Point(startPoint.x + 20, startPoint.y + 4), item.getName()).leftAligned().color(0x000000).noShadow()); - + Rectangle rectangle = new Rectangle(bounds.getCenterX() - (bounds.width / 2), bounds.y + 30, bounds.width, bounds.height - 30); widgets.add(Widgets.createSlotBase(rectangle)); - + List descriptionLines = MinecraftClient.getInstance().textRenderer.wrapLines(display.getDescription(), bounds.width - 11); widgets.add(new ScrollableTextWidget(rectangle, descriptionLines)); - + widgets.add(Widgets.createSlot(new Point(startPoint.x + 112, startPoint.y + 70)).entry(getBackgroundEntryStack()).disableBackground().notInteractable().disableHighlight().disableTooltips()); - + return widgets; } return widgets; } - + @Override public int getDisplayHeight() { return 100; } - + public abstract EntryStack getBackgroundEntryStack(); - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingCategory.java index d1ee95ed35..8cc75df257 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingCategory.java @@ -1,28 +1,29 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +@Environment(EnvType.CLIENT) public class HeatingCategory extends BlockToBlockWithChanceCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.HEATING; } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.BLAZE_MOB_BLOCK); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.heating.title"); + return Text.translatable("container.spectrum.rei.heating.title"); } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingDisplay.java index a277c245c8..acfa9ed85a 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/HeatingDisplay.java @@ -24,6 +24,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.HEATING; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, UNLOCK_ADVANCEMENT_IDENTIFIER); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingCategory.java index 12e43d7718..0321113c95 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingCategory.java @@ -1,69 +1,68 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import org.jetbrains.annotations.NotNull; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; +@Environment(EnvType.CLIENT) public class InkConvertingCategory implements DisplayCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.INK_CONVERTING; } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.COLOR_PICKER); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.ink_converting.title"); + return Text.translatable("container.spectrum.rei.ink_converting.title"); } - - + + @Override public List setupDisplay(@NotNull InkConvertingDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 74, bounds.getCenterY() - 48); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x + 8, startPoint.y + 38), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x + 8, startPoint.y + 48), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x + 8, startPoint.y + 38), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x + 8, startPoint.y + 48), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { // input slot widgets.add(Widgets.createSlot(new Point(startPoint.x + 8, startPoint.y + 40)).markInput().entries(display.getInputEntries().get(0))); - + // output arrow widgets.add(Widgets.createArrow(new Point(startPoint.x + 30, startPoint.y + 40))); - + // output amount & required time - TranslatableText colorText = new TranslatableText("container.spectrum.rei.ink_converting.color", display.color.getName()); - TranslatableText amountText = new TranslatableText("container.spectrum.rei.ink_converting.amount", display.amount); + Text colorText = Text.translatable("container.spectrum.rei.ink_converting.color", display.color.getName()); + Text amountText = Text.translatable("container.spectrum.rei.ink_converting.amount", display.amount); widgets.add(Widgets.createLabel(new Point(startPoint.x + 58, startPoint.y + 40), colorText).leftAligned().color(0x3f3f3f).noShadow()); widgets.add(Widgets.createLabel(new Point(startPoint.x + 58, startPoint.y + 50), amountText).leftAligned().color(0x3f3f3f).noShadow()); } return widgets; } - + @Override public int getDisplayHeight() { return 40; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingDisplay.java index 74bf39b194..50eac6b20f 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/InkConvertingDisplay.java @@ -28,6 +28,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.INK_CONVERTING; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, InkConvertingRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingCategory.java index aa443245c8..0d10423651 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingCategory.java @@ -1,59 +1,29 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumItems; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; -import java.util.List; +@Environment(EnvType.CLIENT) +public class LiquidCrystalConvertingCategory extends FluidConvertingCategory { -public class LiquidCrystalConvertingCategory implements DisplayCategory { - @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.LIQUID_CRYSTAL_CONVERTING; } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumItems.LIQUID_CRYSTAL_BUCKET); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.liquid_crystal_converting.title"); - } - - @Override - public List setupDisplay(LiquidCrystalConvertingDisplay display, Rectangle bounds) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 13); - List widgets = Lists.newArrayList(); - widgets.add(Widgets.createRecipeBase(bounds)); - - if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); - } else { - widgets.add(Widgets.createArrow(new Point(startPoint.x + 27, startPoint.y + 4))); - widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 5))); - widgets.add(Widgets.createSlot(new Point(startPoint.x + 4, startPoint.y + 5)).entries(display.getIn()).markInput()); - widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 5)).entries(display.getOut()).disableBackground().markInput()); - } - return widgets; + return Text.translatable("container.spectrum.rei.liquid_crystal_converting.title"); } - - @Override - public int getDisplayHeight() { - return 36; - } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingDisplay.java index 50a2fc401d..818bbd3fa5 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/LiquidCrystalConvertingDisplay.java @@ -1,37 +1,24 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.compat.REI.GatedSpectrumDisplay; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.recipe.fluid_converting.LiquidCrystalConvertingRecipe; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import net.minecraft.client.MinecraftClient; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import me.shedaniel.rei.api.common.category.*; +import net.minecraft.util.*; -import java.util.Collections; +public class LiquidCrystalConvertingDisplay extends FluidConvertingDisplay { -public class LiquidCrystalConvertingDisplay extends GatedSpectrumDisplay { - public LiquidCrystalConvertingDisplay(LiquidCrystalConvertingRecipe recipe) { - super(recipe, Collections.singletonList(EntryIngredients.ofIngredient(recipe.getIngredients().get(0))), recipe.getOutput()); + super(recipe); } - - public final EntryIngredient getIn() { - return getInputEntries().get(0); - } - - public final EntryIngredient getOut() { - return getOutputEntries().get(0); - } - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.LIQUID_CRYSTAL_CONVERTING; } - - public boolean isUnlocked() { - return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, LiquidCrystalConvertingRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); + + @Override + public Identifier getUnlockIdentifier() { + return LiquidCrystalConvertingRecipe.UNLOCK_IDENTIFIER; } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingCategory.java index a1a3dc84e5..0b2251210a 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingCategory.java @@ -1,59 +1,29 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumItems; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; -import java.util.List; +@Environment(EnvType.CLIENT) +public class MidnightSolutionConvertingCategory extends FluidConvertingCategory { -public class MidnightSolutionConvertingCategory implements DisplayCategory { - @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.MIDNIGHT_SOLUTION_CONVERTING; } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumItems.MIDNIGHT_SOLUTION_BUCKET); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.midnight_solution_converting.title"); - } - - @Override - public List setupDisplay(MidnightSolutionConvertingDisplay display, Rectangle bounds) { - Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 13); - List widgets = Lists.newArrayList(); - widgets.add(Widgets.createRecipeBase(bounds)); - - if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); - } else { - widgets.add(Widgets.createArrow(new Point(startPoint.x + 27, startPoint.y + 4))); - widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 5))); - widgets.add(Widgets.createSlot(new Point(startPoint.x + 4, startPoint.y + 5)).entries(display.getIn()).markInput()); - widgets.add(Widgets.createSlot(new Point(startPoint.x + 61, startPoint.y + 5)).entries(display.getOut()).disableBackground().markInput()); - } - return widgets; + return Text.translatable("container.spectrum.rei.midnight_solution_converting.title"); } - - @Override - public int getDisplayHeight() { - return 36; - } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingDisplay.java index 2dfb15666e..461a81cfe2 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/MidnightSolutionConvertingDisplay.java @@ -1,37 +1,24 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.compat.REI.GatedSpectrumDisplay; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.recipe.fluid_converting.MidnightSolutionConvertingRecipe; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import net.minecraft.client.MinecraftClient; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import me.shedaniel.rei.api.common.category.*; +import net.minecraft.util.*; -import java.util.Collections; +public class MidnightSolutionConvertingDisplay extends FluidConvertingDisplay { + + public MidnightSolutionConvertingDisplay(MidnightSolutionConvertingRecipe recipe) { + super(recipe); + } + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SpectrumPlugins.MIDNIGHT_SOLUTION_CONVERTING; + } + + @Override + public Identifier getUnlockIdentifier() { + return MidnightSolutionConvertingRecipe.UNLOCK_IDENTIFIER; + } -public class MidnightSolutionConvertingDisplay extends GatedSpectrumDisplay { - - public MidnightSolutionConvertingDisplay(MidnightSolutionConvertingRecipe recipe) { - super(recipe, Collections.singletonList(EntryIngredients.ofIngredient(recipe.getIngredients().get(0))), recipe.getOutput()); - } - - public final EntryIngredient getIn() { - return getInputEntries().get(0); - } - - public final EntryIngredient getOut() { - return getOutputEntries().get(0); - } - - @Override - public CategoryIdentifier getCategoryIdentifier() { - return SpectrumPlugins.MIDNIGHT_SOLUTION_CONVERTING; - } - - public boolean isUnlocked() { - return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, MidnightSolutionConvertingRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); - } - } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsCategory.java index 4c8d1eb917..446a1cfda0 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsCategory.java @@ -1,47 +1,46 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumItems; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class NaturesStaffConversionsCategory implements DisplayCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.NATURES_STAFF; } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumItems.NATURES_STAFF); } - + @Override public Text getTitle() { return SpectrumItems.NATURES_STAFF.getName(); } - + @Override public List setupDisplay(NaturesStaffConversionsDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 41, bounds.getCenterY() - 13); List widgets = Lists.newArrayList(); widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 4), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 23, startPoint.y + 14), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { widgets.add(Widgets.createArrow(new Point(startPoint.x + 27, startPoint.y + 4))); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 61, startPoint.y + 5))); @@ -50,10 +49,10 @@ public List setupDisplay(NaturesStaffConversionsDisplay display, Rectang } return widgets; } - + @Override public int getDisplayHeight() { return 36; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsDisplay.java index 8bd5393f2c..87220143ff 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/NaturesStaffConversionsDisplay.java @@ -8,8 +8,6 @@ import me.shedaniel.rei.api.common.display.basic.BasicDisplay; import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.entry.EntryStack; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.util.Identifier; @@ -27,13 +25,13 @@ public NaturesStaffConversionsDisplay(EntryStack in, EntryStack out) { public NaturesStaffConversionsDisplay(List inputs, List outputs) { super(inputs, outputs); } - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.NATURES_STAFF; } - @Environment(EnvType.CLIENT) + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, UNLOCK_ADVANCEMENT_IDENTIFIER); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingCategory.java index 121f6ab440..5e0391d8e6 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingCategory.java @@ -1,70 +1,68 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.inventories.PedestalScreen; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Slot; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class PedestalCraftingCategory implements DisplayCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.PEDESTAL_CRAFTING; } - + @Override public Identifier getIdentifier() { return SpectrumCommon.locate("pedestal_crafting"); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.pedestal_crafting.title"); + return Text.translatable("container.spectrum.rei.pedestal_crafting.title"); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.PEDESTAL_BASIC_AMETHYST); } - + @Override public List setupDisplay(PedestalCraftingDisplay display, Rectangle bounds) { Identifier backgroundTexture = PedestalScreen.getBackgroundTextureForTier(display.getTier()); - + Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 43); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked() || display.getInputEntries().isEmpty()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 9, startPoint.y + 33), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 9, startPoint.y + 43), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 9, startPoint.y + 33), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 9, startPoint.y + 43), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 18)).animationDurationTicks(display.craftingTime)); - + // crafting grid slots List slots = Lists.newArrayList(); for (int y = 0; y < 3; y++) for (int x = 0; x < 3; x++) slots.add(Widgets.createSlot(new Point(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18)).disableBackground().markInput()); - + // set crafting slot contents List input = display.getInputEntries(); int shownGemstoneSlotCount = display.getTier() == PedestalRecipeTier.COMPLEX ? 5 : display.getTier() == PedestalRecipeTier.ADVANCED ? 4 : 3; @@ -74,7 +72,7 @@ public List setupDisplay(PedestalCraftingDisplay display, Rectangle boun slots.get(i).disableBackground().entries(input.get(i)); } } - + // gemstone dust slots int gemstoneSlotStartX = shownGemstoneSlotCount == 5 ? -45 : shownGemstoneSlotCount == 4 ? -40 : -31; int gemstoneSlotTextureStartX = shownGemstoneSlotCount == 5 ? 43 : shownGemstoneSlotCount == 4 ? 52 : 61; @@ -85,12 +83,12 @@ public List setupDisplay(PedestalCraftingDisplay display, Rectangle boun } } widgets.addAll(slots); - + // output List results = display.getOutputEntries(); EntryIngredient result = EntryIngredient.of(results.get(0)); widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 19)).entries(result).disableBackground().markOutput()); - + // the gemstone slot background texture destinationX destinationY sourceX, sourceY, width, height widgets.add(Widgets.createTexturedWidget(backgroundTexture, bounds.getCenterX() + gemstoneSlotStartX - 1, startPoint.y + 59, gemstoneSlotTextureStartX, 76, 18 * shownGemstoneSlotCount, 18)); // crafting input texture @@ -99,23 +97,23 @@ public List setupDisplay(PedestalCraftingDisplay display, Rectangle boun widgets.add(Widgets.createTexturedWidget(backgroundTexture, startPoint.x + 94 - 4, startPoint.y + 18 - 4, 122, 32, 26, 26)); // miniature gemstones texture widgets.add(Widgets.createTexturedWidget(backgroundTexture, startPoint.x + 94 - 12, startPoint.y + 18 + 20, 200, 0, 40, 16)); - + // description text // special handling for "1 second". Looks nicer - TranslatableText text; + Text text; if (display.craftingTime == 20) { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); } else { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); } widgets.add(Widgets.createLabel(new Point(startPoint.x, startPoint.y + 82), text).leftAligned().color(0x3f3f3f).noShadow()); } return widgets; } - + @Override public int getDisplayHeight() { return 110; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingDisplay.java index a62529847d..d4811a7aa7 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PedestalCraftingDisplay.java @@ -27,6 +27,7 @@ public class PedestalCraftingDisplay extends GatedSpectrumDisplay { /** * When using the REI recipe functionality + * * @param recipe The recipe */ public PedestalCraftingDisplay(PedestalCraftingRecipe recipe) { @@ -50,29 +51,29 @@ private static List mapIngredients(PedestalCraftingRecipe recip } HashMap gemstonePowderInputs = recipe.getGemstonePowderInputs(); - int firstGemstoneSlotId = 3*3; - + int firstGemstoneSlotId = 3 * 3; + int cyan = gemstonePowderInputs.getOrDefault(BuiltinGemstoneColor.CYAN, 0); - if(cyan > 0) { + if (cyan > 0) { list.set(firstGemstoneSlotId, EntryIngredients.of(SpectrumItems.TOPAZ_POWDER, cyan)); } int magenta = gemstonePowderInputs.getOrDefault(BuiltinGemstoneColor.MAGENTA, 0); - if(magenta > 0) { - list.set(firstGemstoneSlotId+1, EntryIngredients.of(SpectrumItems.AMETHYST_POWDER, magenta)); + if (magenta > 0) { + list.set(firstGemstoneSlotId + 1, EntryIngredients.of(SpectrumItems.AMETHYST_POWDER, magenta)); } int yellow = gemstonePowderInputs.getOrDefault(BuiltinGemstoneColor.YELLOW, 0); - if(yellow > 0) { - list.set(firstGemstoneSlotId+2, EntryIngredients.of(SpectrumItems.CITRINE_POWDER, yellow)); + if (yellow > 0) { + list.set(firstGemstoneSlotId + 2, EntryIngredients.of(SpectrumItems.CITRINE_POWDER, yellow)); } - if(shownGemstoneSlotCount >= 4) { + if (shownGemstoneSlotCount >= 4) { int black = gemstonePowderInputs.getOrDefault(BuiltinGemstoneColor.BLACK, 0); - if(black > 0) { - list.set(firstGemstoneSlotId+3, EntryIngredients.of(SpectrumItems.ONYX_POWDER, black)); + if (black > 0) { + list.set(firstGemstoneSlotId + 3, EntryIngredients.of(SpectrumItems.ONYX_POWDER, black)); } - if(shownGemstoneSlotCount == 5) { + if (shownGemstoneSlotCount == 5) { int white = gemstonePowderInputs.getOrDefault(BuiltinGemstoneColor.WHITE, 0); - if(white > 0) { - list.set(firstGemstoneSlotId+4, EntryIngredients.of(SpectrumItems.MOONSTONE_POWDER, white)); + if (white > 0) { + list.set(firstGemstoneSlotId + 4, EntryIngredients.of(SpectrumItems.MOONSTONE_POWDER, white)); } } } @@ -97,12 +98,12 @@ public static int getSlotWithSize(int recipeWidth, int index) { this.experience = experience; this.craftingTime = craftingTime; }*/ - @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.PEDESTAL_CRAFTING; } + @Override public boolean isUnlocked() { return PedestalRecipeTier.hasUnlockedRequiredTier(MinecraftClient.getInstance().player, this.pedestalRecipeTier) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingCategory.java index 3e0d3f8fcc..7349cbabb4 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingCategory.java @@ -1,27 +1,28 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.compat.REI.*; +import me.shedaniel.rei.api.common.category.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +@Environment(EnvType.CLIENT) public class PotionWorkshopBrewingCategory extends PotionWorkshopCategory { - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.POTION_WORKSHOP_BREWING; } - + @Override public Identifier getIdentifier() { return SpectrumCommon.locate("potion_workshop_brewing"); } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.potion_workshop_brewing.title"); + return Text.translatable("container.spectrum.rei.potion_workshop_brewing.title"); } } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingDisplay.java index 90cde475bf..9610a3dc71 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopBrewingDisplay.java @@ -1,8 +1,11 @@ package de.dafuqs.spectrum.compat.REI.plugins; +import de.dafuqs.revelationary.api.advancements.AdvancementHelper; import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopBrewingRecipe; +import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopRecipe; import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import net.minecraft.client.MinecraftClient; import net.minecraft.entity.effect.StatusEffect; public class PotionWorkshopBrewingDisplay extends PotionWorkshopRecipeDisplay { @@ -24,4 +27,9 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.POTION_WORKSHOP_BREWING; } + @Override + public boolean isUnlocked() { + return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, PotionWorkshopRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCategory.java index 9379b90c35..51dab45bc5 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCategory.java @@ -1,45 +1,45 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import net.minecraft.util.*; -import java.util.List; +import java.util.*; +@Environment(EnvType.CLIENT) public abstract class PotionWorkshopCategory implements DisplayCategory { - + public final static Identifier BACKGROUND_TEXTURE = SpectrumCommon.locate("textures/gui/container/potion_workshop_3_slots.png"); - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.POTION_WORKSHOP); } - + @Override public List setupDisplay(PotionWorkshopRecipeDisplay display, Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 32); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 5, startPoint.y + 23), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 5, startPoint.y + 33), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 5, startPoint.y + 23), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 5, startPoint.y + 33), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { // bubbles widgets.add(Widgets.createTexturedWidget(BACKGROUND_TEXTURE, startPoint.x + 18, startPoint.y + 19, 197, 0, 10, 27)); widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 18)).animationDurationTicks(display.craftingTime)); - + // input slots List inputs = display.getInputEntries(); widgets.add(Widgets.createSlot(new Point(startPoint.x + 15, startPoint.y + 49)).entries(inputs.get(0)).markInput()); // mermaids gem @@ -47,23 +47,23 @@ public List setupDisplay(PotionWorkshopRecipeDisplay display, Rectangle widgets.add(Widgets.createSlot(new Point(startPoint.x + 15, startPoint.y)).entries(inputs.get(2)).markInput()); // input 1 widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 20)).entries(inputs.get(3)).markInput()); // input 2 widgets.add(Widgets.createSlot(new Point(startPoint.x + 30, startPoint.y + 20)).entries(inputs.get(4)).markInput()); // input 3 - + // output slot List results = display.getOutputEntries(); EntryIngredient result = EntryIngredient.of(results.get(0)); widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 19)).entries(result).markOutput()); - + // description text - TranslatableText text = new TranslatableText("container.spectrum.rei.potion_workshop.crafting_time", (display.craftingTime / 20)); + Text text = Text.translatable("container.spectrum.rei.potion_workshop.crafting_time", (display.craftingTime / 20)); widgets.add(Widgets.createLabel(new Point(startPoint.x + 40, startPoint.y + 54), text).leftAligned().color(0x3f3f3f).noShadow()); } - + return widgets; } - + @Override public int getDisplayHeight() { return 80; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingCategory.java index 7fea780f43..584173f88f 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingCategory.java @@ -4,7 +4,6 @@ import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; public class PotionWorkshopCraftingCategory extends PotionWorkshopCategory { @@ -21,7 +20,7 @@ public Identifier getIdentifier() { @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.potion_workshop_crafting.title"); + return Text.translatable("container.spectrum.rei.potion_workshop_crafting.title"); } } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingDisplay.java index 2057bcb487..7570c54a54 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopCraftingDisplay.java @@ -1,8 +1,11 @@ package de.dafuqs.spectrum.compat.REI.plugins; +import de.dafuqs.revelationary.api.advancements.AdvancementHelper; import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopCraftingRecipe; +import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopRecipe; import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import net.minecraft.client.MinecraftClient; import net.minecraft.recipe.Ingredient; public class PotionWorkshopCraftingDisplay extends PotionWorkshopRecipeDisplay { @@ -26,4 +29,9 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.POTION_WORKSHOP_CRAFTING; } + @Override + public boolean isUnlocked() { + return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, PotionWorkshopRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingCategory.java index f79bf990e2..86760f4d92 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingCategory.java @@ -1,36 +1,37 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryStack; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +@Environment(EnvType.CLIENT) public class PotionWorkshopReactingCategory extends GatedItemInformationPageCategory { - + public static final EntryStack POTION_WORKSHOP_ENTRY = EntryStacks.of(SpectrumBlocks.POTION_WORKSHOP); - + @Override public Renderer getIcon() { return POTION_WORKSHOP_ENTRY; } - + @Override public Text getTitle() { - return new TranslatableText("container.spectrum.rei.potion_workshop_reacting.title"); + return Text.translatable("container.spectrum.rei.potion_workshop_reacting.title"); } - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.POTION_WORKSHOP_REACTING; } - + @Override public EntryStack getBackgroundEntryStack() { return POTION_WORKSHOP_ENTRY; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingDisplay.java index 850f54a9af..761e3c3d9b 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/PotionWorkshopReactingDisplay.java @@ -1,8 +1,11 @@ package de.dafuqs.spectrum.compat.REI.plugins; +import de.dafuqs.revelationary.api.advancements.AdvancementHelper; import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopReactingRecipe; +import de.dafuqs.spectrum.recipe.potion_workshop.PotionWorkshopRecipe; import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import net.minecraft.client.MinecraftClient; public class PotionWorkshopReactingDisplay extends GatedItemInformationDisplay { @@ -15,4 +18,9 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.POTION_WORKSHOP_REACTING; } + @Override + public boolean isUnlocked() { + return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, PotionWorkshopRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/ScrollableTextWidget.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/ScrollableTextWidget.java index f17830c87f..5ec54adb7f 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/ScrollableTextWidget.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/ScrollableTextWidget.java @@ -20,80 +20,80 @@ * https://github.com/shedaniel/RoughlyEnoughItems/blob/7.x-1.18/default-plugin/src/main/java/me/shedaniel/rei/plugin/client/categories/DefaultInformationCategory.java */ public class ScrollableTextWidget extends WidgetWithBounds { - private final Rectangle bounds; - private final List texts; - - private final ScrollingContainer scrolling = new ScrollingContainer() { - @Override - public me.shedaniel.math.Rectangle getBounds() { - Rectangle bounds = ScrollableTextWidget.this.getBounds(); - return new Rectangle(bounds.x + 1, bounds.y + 1, bounds.width - 2, bounds.height - 2); - } - - @Override - public int getMaxScrollHeight() { - int i = 2; - for (OrderedText entry : texts) { - i += entry == null ? 4 : font.fontHeight; - } - return i; - } - }; - - public ScrollableTextWidget(Rectangle bounds, List texts) { - this.bounds = Objects.requireNonNull(bounds); - this.texts = texts; - } - - @Override - public boolean mouseScrolled(double double_1, double double_2, double double_3) { - if (containsMouse(double_1, double_2)) { - scrolling.offset(ClothConfigInitializer.getScrollStep() * -double_3, true); - return true; - } - return false; - } - - @Override - public List children() { - return Collections.emptyList(); - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (scrolling.updateDraggingState(mouseX, mouseY, button)) - return true; - return super.mouseClicked(mouseX, mouseY, button); - } - - @Override - public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { - if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) - return true; - return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); - } - - @Override - public Rectangle getBounds() { - return bounds; - } - - @Override - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - scrolling.updatePosition(delta); - Rectangle innerBounds = scrolling.getScissorBounds(); - ScissorsHandler.INSTANCE.scissor(innerBounds); - int currentY = -scrolling.scrollAmountInt() + innerBounds.y; - for (OrderedText text : texts) { - if (text != null && currentY + font.fontHeight >= innerBounds.y && currentY <= innerBounds.getMaxY()) { - font.draw(matrices, text, innerBounds.x + 2, currentY + 2, REIRuntime.getInstance().isDarkThemeEnabled() ? 0xFFBBBBBB : 0xFF090909); - } - currentY += text == null ? 4 : font.fontHeight; - } - ScissorsHandler.INSTANCE.removeLastScissor(); - ScissorsHandler.INSTANCE.scissor(scrolling.getBounds()); - scrolling.renderScrollBar(0xff000000, 1, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8f : 1f); - ScissorsHandler.INSTANCE.removeLastScissor(); - } - + private final Rectangle bounds; + private final List texts; + + private final ScrollingContainer scrolling = new ScrollingContainer() { + @Override + public me.shedaniel.math.Rectangle getBounds() { + Rectangle bounds = ScrollableTextWidget.this.getBounds(); + return new Rectangle(bounds.x + 1, bounds.y + 1, bounds.width - 2, bounds.height - 2); + } + + @Override + public int getMaxScrollHeight() { + int i = 2; + for (OrderedText entry : texts) { + i += entry == null ? 4 : font.fontHeight; + } + return i; + } + }; + + public ScrollableTextWidget(Rectangle bounds, List texts) { + this.bounds = Objects.requireNonNull(bounds); + this.texts = texts; + } + + @Override + public boolean mouseScrolled(double double_1, double double_2, double double_3) { + if (containsMouse(double_1, double_2)) { + scrolling.offset(ClothConfigInitializer.getScrollStep() * -double_3, true); + return true; + } + return false; + } + + @Override + public List children() { + return Collections.emptyList(); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (scrolling.updateDraggingState(mouseX, mouseY, button)) + return true; + return super.mouseClicked(mouseX, mouseY, button); + } + + @Override + public boolean mouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY) { + if (scrolling.mouseDragged(mouseX, mouseY, button, deltaX, deltaY)) + return true; + return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY); + } + + @Override + public Rectangle getBounds() { + return bounds; + } + + @Override + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + scrolling.updatePosition(delta); + Rectangle innerBounds = scrolling.getScissorBounds(); + ScissorsHandler.INSTANCE.scissor(innerBounds); + int currentY = -scrolling.scrollAmountInt() + innerBounds.y; + for (OrderedText text : texts) { + if (text != null && currentY + font.fontHeight >= innerBounds.y && currentY <= innerBounds.getMaxY()) { + font.draw(matrices, text, innerBounds.x + 2, currentY + 2, REIRuntime.getInstance().isDarkThemeEnabled() ? 0xFFBBBBBB : 0xFF090909); + } + currentY += text == null ? 4 : font.fontHeight; + } + ScissorsHandler.INSTANCE.removeLastScissor(); + ScissorsHandler.INSTANCE.scissor(scrolling.getBounds()); + scrolling.renderScrollBar(0xff000000, 1, REIRuntime.getInstance().isDarkThemeEnabled() ? 0.8f : 1f); + ScissorsHandler.INSTANCE.removeLastScissor(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingCategory.java index 9020baaae2..7b68bb1569 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingCategory.java @@ -1,89 +1,87 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import org.jetbrains.annotations.NotNull; - -import java.util.List; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import org.jetbrains.annotations.*; +import java.util.*; + +@Environment(EnvType.CLIENT) public class SpiritInstillingCategory implements DisplayCategory { - + private static final EntryIngredient SPIRIT_INSTILLER = EntryIngredients.of(SpectrumBlocks.SPIRIT_INSTILLER); private static final EntryIngredient ITEM_BOWL_CALCITE = EntryIngredients.of(SpectrumBlocks.ITEM_BOWL_CALCITE); - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.SPIRIT_INSTILLER; } - + @Override public Text getTitle() { return SpectrumBlocks.SPIRIT_INSTILLER.getName(); } - + @Override public Renderer getIcon() { return EntryStacks.of(SpectrumBlocks.SPIRIT_INSTILLER); } - + @Override public List setupDisplay(@NotNull SpiritInstillingDisplay display, @NotNull Rectangle bounds) { Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 23); List widgets = Lists.newArrayList(); - + widgets.add(Widgets.createRecipeBase(bounds)); - + if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 13), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 23), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 13), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 23), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); } else { List inputs = display.getInputEntries(); - + // input slots int ingredientSize = inputs.size(); int startX = Math.max(0, 10 - ingredientSize * 10); widgets.add(Widgets.createSlot(new Point(startPoint.x + startX, startPoint.y)).markInput().entries(inputs.get(1))); widgets.add(Widgets.createSlot(new Point(startPoint.x + startX + 20, startPoint.y)).markInput().entries(inputs.get(0))); widgets.add(Widgets.createSlot(new Point(startPoint.x + startX + 40, startPoint.y)).markInput().entries(inputs.get(2))); - + widgets.add(Widgets.createSlot(new Point(startPoint.x, startPoint.y + 17)).entries(ITEM_BOWL_CALCITE).disableBackground()); widgets.add(Widgets.createSlot(new Point(startPoint.x + 20, startPoint.y + 17)).entries(SPIRIT_INSTILLER).disableBackground()); widgets.add(Widgets.createSlot(new Point(startPoint.x + 40, startPoint.y + 17)).entries(ITEM_BOWL_CALCITE).disableBackground()); - + // output arrow and slot widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 9)).animationDurationTicks(display.craftingTime)); widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 95, startPoint.y + 9))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 9)).markOutput().disableBackground().entries(display.getOutputEntries().get(0))); - + // description text // special handling for "1 second". Looks nicer - TranslatableText text; + Text text; if (display.craftingTime == 20) { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp", 1, display.experience); } else { - text = new TranslatableText("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); + text = Text.translatable("container.spectrum.rei.pedestal_crafting.crafting_time_and_xp", (display.craftingTime / 20), display.experience); } widgets.add(Widgets.createLabel(new Point(startPoint.x - 10, startPoint.y + 39), text).leftAligned().color(0x3f3f3f).noShadow()); } return widgets; } - + @Override public int getDisplayHeight() { return 60; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingDisplay.java index f0c3f0a6c7..5261a6400b 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/SpiritInstillingDisplay.java @@ -42,6 +42,7 @@ public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.SPIRIT_INSTILLER; } + @Override public boolean isUnlocked() { return AdvancementHelper.hasAdvancement(MinecraftClient.getInstance().player, SpiritInstillerRecipe.UNLOCK_IDENTIFIER) && super.isUnlocked(); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelCategory.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelCategory.java index 7b6d5dd7ac..c89851f4ae 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelCategory.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelCategory.java @@ -1,97 +1,91 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.recipe.titration_barrel.TitrationBarrelRecipe; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import me.shedaniel.math.Point; -import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.gui.Renderer; -import me.shedaniel.rei.api.client.gui.widgets.Widget; -import me.shedaniel.rei.api.client.gui.widgets.Widgets; -import me.shedaniel.rei.api.client.registry.display.DisplayCategory; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.item.Items; -import net.minecraft.text.MutableText; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import org.jetbrains.annotations.NotNull; +import com.google.common.collect.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import de.dafuqs.spectrum.registries.*; +import me.shedaniel.math.*; +import me.shedaniel.rei.api.client.gui.*; +import me.shedaniel.rei.api.client.gui.widgets.*; +import me.shedaniel.rei.api.client.registry.display.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.fabricmc.api.*; +import net.minecraft.text.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; +@Environment(EnvType.CLIENT) public class TitrationBarrelCategory implements DisplayCategory { - - private static final EntryIngredient WATER_BUCKET = EntryIngredients.of(Items.WATER_BUCKET); - - @Override - public CategoryIdentifier getCategoryIdentifier() { - return SpectrumPlugins.TITRATION_BARREL; - } - - @Override - public Text getTitle() { - return SpectrumBlocks.TITRATION_BARREL.getName(); - } - - @Override - public Renderer getIcon() { - return EntryStacks.of(SpectrumBlocks.TITRATION_BARREL); - } - - @Override - public List setupDisplay(@NotNull TitrationBarrelDisplay display, @NotNull Rectangle bounds) { - Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 23); - List widgets = Lists.newArrayList(); - - widgets.add(Widgets.createRecipeBase(bounds)); - - if (!display.isUnlocked()) { - widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 13), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 23), new TranslatableText("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); - } else { - List inputs = display.getInputEntries(); - - // input slots - int ingredientSize = inputs.size(); - int startX = startPoint.x + Math.max(-5, 15 - ingredientSize * 10); - int startY = startPoint.y + (ingredientSize > 2 ? 0 : 10); - for (int i = 0; i < ingredientSize; i++) { - EntryIngredient currentIngredient = inputs.get(i); - int yOffset; - int xOffset; - if(i < 3) { - xOffset = i * 20; - yOffset = 0; - } else { - xOffset = (i - 3) * 20; - yOffset = 20; - } - widgets.add(Widgets.createSlot(new Point(startX + xOffset, startY + yOffset)).markInput().entries(currentIngredient)); - } - - // output arrow and slot - if(display.tappingIngredient.isEmpty()) { - widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 10)).animationDurationTicks(display.minFermentationTimeHours * 20)); - } else { - widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 2)).animationDurationTicks(display.minFermentationTimeHours * 20)); - widgets.add(Widgets.createSlot(new Point(startPoint.x + 64, startPoint.y + 20)).markInput().entries(display.tappingIngredient)); - } - widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 95, startPoint.y + 10))); - widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 10)).markOutput().disableBackground().entries(display.getOutputEntries().get(0))); - - // duration text - MutableText text = TitrationBarrelRecipe.getDurationText(display.minFermentationTimeHours, display.fermentationData); - widgets.add(Widgets.createLabel(new Point(startPoint.x - 10, startPoint.y + 40), text).leftAligned().color(0x3f3f3f).noShadow()); - } - return widgets; - } - - @Override - public int getDisplayHeight() { - return 60; - } - + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SpectrumPlugins.TITRATION_BARREL; + } + + @Override + public Text getTitle() { + return SpectrumBlocks.TITRATION_BARREL.getName(); + } + + @Override + public Renderer getIcon() { + return EntryStacks.of(SpectrumBlocks.TITRATION_BARREL); + } + + @Override + public List setupDisplay(@NotNull TitrationBarrelDisplay display, @NotNull Rectangle bounds) { + Point startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 23); + List widgets = Lists.newArrayList(); + + widgets.add(Widgets.createRecipeBase(bounds)); + + if (!display.isUnlocked()) { + widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 13), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1")).leftAligned().color(0x3f3f3f).noShadow()); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 6, startPoint.y + 23), Text.translatable("container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2")).leftAligned().color(0x3f3f3f).noShadow()); + } else { + List inputs = display.getInputEntries(); + + // input slots + int ingredientSize = inputs.size(); + int startX = startPoint.x + Math.max(-5, 15 - ingredientSize * 10); + int startY = startPoint.y + (ingredientSize > 2 ? 0 : 10); + for (int i = 0; i < ingredientSize; i++) { + EntryIngredient currentIngredient = inputs.get(i); + int yOffset; + int xOffset; + if (i < 3) { + xOffset = i * 20; + yOffset = 0; + } else { + xOffset = (i - 3) * 20; + yOffset = 20; + } + widgets.add(Widgets.createSlot(new Point(startX + xOffset, startY + yOffset)).markInput().entries(currentIngredient)); + } + + // output arrow and slot + if (display.tappingIngredient.isEmpty()) { + widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 10)).animationDurationTicks(display.minFermentationTimeHours * 20)); + } else { + widgets.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 2)).animationDurationTicks(display.minFermentationTimeHours * 20)); + widgets.add(Widgets.createSlot(new Point(startPoint.x + 64, startPoint.y + 20)).markInput().entries(display.tappingIngredient)); + } + widgets.add(Widgets.createResultSlotBackground(new Point(startPoint.x + 95, startPoint.y + 10))); + widgets.add(Widgets.createSlot(new Point(startPoint.x + 95, startPoint.y + 10)).markOutput().disableBackground().entries(display.getOutputEntries().get(0))); + + // duration text + MutableText text = TitrationBarrelRecipe.getDurationText(display.minFermentationTimeHours, display.fermentationData); + widgets.add(Widgets.createLabel(new Point(startPoint.x - 10, startPoint.y + 40), text).leftAligned().color(0x3f3f3f).noShadow()); + } + return widgets; + } + + @Override + public int getDisplayHeight() { + return 60; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelDisplay.java b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelDisplay.java index 61bc626a04..620fa96ee8 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelDisplay.java +++ b/src/main/java/de/dafuqs/spectrum/compat/REI/plugins/TitrationBarrelDisplay.java @@ -1,30 +1,33 @@ package de.dafuqs.spectrum.compat.REI.plugins; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.compat.REI.GatedSpectrumDisplay; -import de.dafuqs.spectrum.compat.REI.REIHelper; -import de.dafuqs.spectrum.compat.REI.SpectrumPlugins; -import de.dafuqs.spectrum.recipe.titration_barrel.ITitrationBarrelRecipe; -import de.dafuqs.spectrum.recipe.titration_barrel.TitrationBarrelRecipe; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.api.common.util.EntryIngredients; -import net.minecraft.client.MinecraftClient; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.Items; -import org.jetbrains.annotations.NotNull; - -import java.util.List; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.compat.REI.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import me.shedaniel.rei.api.common.category.*; +import me.shedaniel.rei.api.common.entry.*; +import me.shedaniel.rei.api.common.util.*; +import net.minecraft.client.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import org.jetbrains.annotations.*; + +import java.util.*; public class TitrationBarrelDisplay extends GatedSpectrumDisplay { - + + private static final List FERMENTATION_DURATION_DISPLAY_TIME_MULTIPLIERS = new ArrayList<>() {{ + add(1); + add(10); + add(100); + }}; + protected final EntryIngredient tappingIngredient; protected final int minFermentationTimeHours; protected final TitrationBarrelRecipe.FermentationData fermentationData; - + public TitrationBarrelDisplay(@NotNull ITitrationBarrelRecipe recipe) { - super(recipe, buildInputs(recipe), recipe.getOutput()); - if(recipe.getTappingItem() == Items.AIR) { + super(recipe, buildInputs(recipe), List.of(buildOutputs(recipe))); + if (recipe.getTappingItem() == Items.AIR) { this.tappingIngredient = EntryIngredient.empty(); } else { this.tappingIngredient = EntryIngredients.of(recipe.getTappingItem().getDefaultStack()); @@ -32,15 +35,23 @@ public TitrationBarrelDisplay(@NotNull ITitrationBarrelRecipe recipe) { this.minFermentationTimeHours = recipe.getMinFermentationTimeHours(); this.fermentationData = recipe.getFermentationData(); } - + + private static EntryIngredient buildOutputs(ITitrationBarrelRecipe recipe) { + if (recipe instanceof TitrationBarrelRecipe titrationBarrelRecipe && titrationBarrelRecipe.getFermentationData() != null) { + return EntryIngredients.ofItemStacks(titrationBarrelRecipe.getOutputVariations(FERMENTATION_DURATION_DISPLAY_TIME_MULTIPLIERS)); + } else { + return EntryIngredients.of(recipe.getOutput()); + } + } + public static List buildInputs(ITitrationBarrelRecipe recipe) { List inputs = REIHelper.toEntryIngredients(recipe.getIngredientStacks()); - if(recipe.getFluid() != Fluids.EMPTY) { + if (recipe.getFluid() != Fluids.EMPTY) { inputs.add(EntryIngredients.of(recipe.getFluid().getBucketItem())); } return inputs; } - + @Override public CategoryIdentifier getCategoryIdentifier() { return SpectrumPlugins.TITRATION_BARREL; diff --git a/src/main/java/de/dafuqs/spectrum/compat/gofish/GoFishCompat.java b/src/main/java/de/dafuqs/spectrum/compat/gofish/GoFishCompat.java index 673386c47d..6feef2a215 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/gofish/GoFishCompat.java +++ b/src/main/java/de/dafuqs/spectrum/compat/gofish/GoFishCompat.java @@ -24,13 +24,13 @@ public static boolean isLoaded() { } public static boolean hasDeepfry(ItemStack itemStack) { - if(!isLoaded()) { + if (!isLoaded()) { return false; } Map enchantments = EnchantmentHelper.get(itemStack); - for(Enchantment enchantment : enchantments.keySet()) { - if(isDeepfry(enchantment)) { + for (Enchantment enchantment : enchantments.keySet()) { + if (isDeepfry(enchantment)) { return true; } } diff --git a/src/main/java/de/dafuqs/spectrum/compat/liminal_library/LiminalDimensionReverb.java b/src/main/java/de/dafuqs/spectrum/compat/liminal_library/LiminalDimensionReverb.java deleted file mode 100644 index decd4a8dd1..0000000000 --- a/src/main/java/de/dafuqs/spectrum/compat/liminal_library/LiminalDimensionReverb.java +++ /dev/null @@ -1,23 +0,0 @@ -package de.dafuqs.spectrum.compat.liminal_library; - -import de.dafuqs.spectrum.deeper_down.DDDimension; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.ludocrypt.limlib.access.DimensionEffectsAccess; -import net.ludocrypt.limlib.api.LiminalEffects; -import net.ludocrypt.limlib.api.sound.ReverbSettings; -import net.minecraft.client.world.ClientWorld; - -import java.util.Optional; - -@Environment(EnvType.CLIENT) -public class LiminalDimensionReverb { - - public static void setReverbForClientDimension(ClientWorld clientWorld) { - LiminalEffects liminalEffects = new LiminalEffects(Optional.empty(), Optional.empty(), Optional.empty(), Optional.empty(), Optional.of(new ReverbSettings().setEnabled(true).setDecayTime(8).setDensity(0.5F))); - if(clientWorld.getDimension().getEffects().equals(DDDimension.DEEPER_DOWN_EFFECTS_ID)) { - ((DimensionEffectsAccess) clientWorld.getDimension()).setLiminalEffects(liminalEffects); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageChecklist.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageChecklist.java index 124d616273..77e7401c19 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageChecklist.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageChecklist.java @@ -3,7 +3,6 @@ import com.google.gson.annotations.SerializedName; import de.dafuqs.revelationary.api.advancements.AdvancementHelper; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import net.minecraft.util.Identifier; import vazkii.patchouli.api.IVariable; @@ -23,7 +22,8 @@ public class PageChecklist extends BookPage { protected IVariable text; transient BookTextRenderer textRender; - @SerializedName("checklist") Map checklist = new HashMap<>(); + @SerializedName("checklist") + Map checklist = new HashMap<>(); @Override public void onDisplayed(GuiBookEntry parent, int left, int top) { @@ -36,9 +36,9 @@ public void onDisplayed(GuiBookEntry parent, int left, int top) { stringBuilder.append(text.asString()); } - for(Map.Entry entry : checklist.entrySet()) { + for (Map.Entry entry : checklist.entrySet()) { String value = entry.getValue(); - if(AdvancementHelper.hasAdvancementClient(Identifier.tryParse(entry.getKey()))) { + if (AdvancementHelper.hasAdvancementClient(Identifier.tryParse(entry.getKey()))) { stringBuilder.append("$(li)"); stringBuilder.append("$(m)"); stringBuilder.append(value); @@ -55,7 +55,7 @@ public void onDisplayed(GuiBookEntry parent, int left, int top) { if (title == null) { title = ""; - titleText = new LiteralText(""); + titleText = Text.literal(""); } else { titleText = i18nText(title); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCinderhearthSmelting.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCinderhearthSmelting.java index f27cd7eccd..b2476658e0 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCinderhearthSmelting.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCinderhearthSmelting.java @@ -8,7 +8,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; -import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.Pair; import org.jetbrains.annotations.NotNull; @@ -60,14 +60,14 @@ protected void drawRecipe(MatrixStack ms, @NotNull CinderhearthRecipe recipe, in // outputs int chanceTextIndex = 0; - for(int i = 0; i < possibleOutputs.size(); i++) { + for (int i = 0; i < possibleOutputs.size(); i++) { Pair possibleOutput = possibleOutputs.get(i); int x = recipeX + 37 + i * 23; parent.renderItemStack(ms, x, recipeY + 6, mouseX, mouseY, possibleOutput.getLeft()); - if(possibleOutput.getRight() < 1.0F) { - if(chanceTextRenders.size() < chanceTextIndex + 1) { - chanceTextRenders.add(new BookTextRenderer(parent, new LiteralText((int) (possibleOutput.getRight() * 100) + "%"), x, recipeY + 24)); + if (possibleOutput.getRight() < 1.0F) { + if (chanceTextRenders.size() < chanceTextIndex + 1) { + chanceTextRenders.add(new BookTextRenderer(parent, Text.literal((int) (possibleOutput.getRight() * 100) + "%"), x, recipeY + 24)); } chanceTextRenders.get(chanceTextIndex).render(ms, mouseX, mouseY); chanceTextIndex++; diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCrystallarieumGrowing.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCrystallarieumGrowing.java index 47d6855b27..211b10a6df 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCrystallarieumGrowing.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageCrystallarieumGrowing.java @@ -10,7 +10,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import org.jetbrains.annotations.NotNull; import vazkii.patchouli.client.book.gui.BookTextRenderer; @@ -54,17 +54,17 @@ protected void drawRecipe(MatrixStack ms, @NotNull CrystallarieumRecipe recipe, BlockState growthState = it.next(); parent.renderItemStack(ms, recipeX + 23, recipeY - 2, mouseX, mouseY, growthState.getBlock().asItem().getDefaultStack()); int x = 0; - while(it.hasNext()) { + while (it.hasNext()) { parent.renderItemStack(ms, recipeX + 52 + 16 * x, recipeY + 4, mouseX, mouseY, it.next().getBlock().asItem().getDefaultStack()); x++; } // crystallarieum parent.renderItemStack(ms, recipeX + 23, recipeY + 8, mouseX, mouseY, recipe.createIcon()); - + // catalyst text - if(textRenderer == null) { - textRenderer = new BookTextRenderer(parent, new TranslatableText("container.spectrum.patchouli.crystallarieum.catalyst"), 0, 38); + if (textRenderer == null) { + textRenderer = new BookTextRenderer(parent, Text.translatable("container.spectrum.patchouli.crystallarieum.catalyst"), 0, 38); } textRenderer.render(ms, mouseX, mouseY); @@ -72,10 +72,10 @@ protected void drawRecipe(MatrixStack ms, @NotNull CrystallarieumRecipe recipe, x = 0; int startX = 26; int offsetPerReagent = 18; - for(CrystallarieumCatalyst catalyst : recipe.getCatalysts()) { + for (CrystallarieumCatalyst catalyst : recipe.getCatalysts()) { int offsetX = recipeX + startX + offsetPerReagent * x; parent.renderIngredient(ms, recipeX + startX + offsetPerReagent * x, recipeY + 27, mouseX, mouseY, catalyst.ingredient); - + float growthAcceleration = catalyst.growthAccelerationMod; float inkConsumption = catalyst.inkConsumptionMod; float consumeChance = catalyst.consumeChancePerSecond; diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageDragonrotConverting.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageDragonrotConverting.java new file mode 100644 index 0000000000..625ff5ced6 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageDragonrotConverting.java @@ -0,0 +1,21 @@ +package de.dafuqs.spectrum.compat.patchouli; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import net.minecraft.util.*; + +public class PageDragonrotConverting extends PageFluidConverting { + + private static final Identifier BACKGROUND_TEXTURE = SpectrumCommon.locate("textures/gui/patchouli/dragonrot.png"); + + public PageDragonrotConverting() { + super(SpectrumRecipeTypes.DRAGONROT_CONVERTING); + } + + @Override + public Identifier getBackgroundTexture() { + return BACKGROUND_TEXTURE; + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageHint.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageHint.java index 192d3d854a..78504a0161 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageHint.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageHint.java @@ -1,9 +1,10 @@ package de.dafuqs.spectrum.compat.patchouli; -import de.dafuqs.spectrum.SpectrumClient; import de.dafuqs.spectrum.helpers.InventoryHelper; import de.dafuqs.spectrum.networking.SpectrumC2SPacketSender; import de.dafuqs.spectrum.sound.HintRevelationSoundInstance; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.resource.language.I18n; @@ -11,7 +12,6 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import net.minecraft.util.Identifier; import vazkii.patchouli.api.IVariable; @@ -67,7 +67,7 @@ public void onDisplayed(GuiBookEntry parent, int left, int top) { revealProgress = -1; displayedText = calculateTextToRender(rawText); - PaymentButtonWidget paymentButtonWidget = new PaymentButtonWidget(GuiBook.PAGE_WIDTH / 2 - 50, GuiBook.PAGE_HEIGHT - 35, 100, 20, LiteralText.EMPTY, this::paymentButtonClicked, this); + PaymentButtonWidget paymentButtonWidget = new PaymentButtonWidget(GuiBook.PAGE_WIDTH / 2 - 50, GuiBook.PAGE_HEIGHT - 35, 100, 20, Text.empty(), this::paymentButtonClicked, this); addButton(paymentButtonWidget); } else { displayedText = rawText; @@ -80,19 +80,19 @@ private Text calculateTextToRender(Text text) { if (revealProgress == 0) { return text; } else if (revealProgress < 0) { - return new LiteralText("$(obf)" + text.getString()); + return Text.literal("$(obf)" + text.getString()); } // Show a new letter each tick - LiteralText calculatedText = new LiteralText(text.asString().substring(0, (int) revealProgress) + "$(obf)" + text.asString().substring((int) revealProgress)); + Text calculatedText = Text.literal(text.getString().substring(0, (int) revealProgress) + "$(obf)" + text.getString().substring((int) revealProgress)); long currentTime = MinecraftClient.getInstance().world.getTime(); if (currentTime != lastRevealTick) { lastRevealTick = currentTime; revealProgress++; - revealProgress = Math.min(text.asString().length(), revealProgress); - if (text.asString().length() < revealProgress) { + revealProgress = Math.min(text.getString().length(), revealProgress); + if (text.getString().length() < revealProgress) { revealProgress = 0; return text; } @@ -105,6 +105,7 @@ protected Identifier getEntryId() { return new Identifier(entry.getId().getNamespace(), entry.getId().getPath() + "_" + this.pageNum); } + @Environment(EnvType.CLIENT) protected void paymentButtonClicked(ButtonWidget button) { if (MinecraftClient.getInstance().player.isCreative() || InventoryHelper.hasInInventory(List.of(ingredient), MinecraftClient.getInstance().player.getInventory())) { // mark as complete in book data @@ -113,7 +114,7 @@ protected void paymentButtonClicked(ButtonWidget button) { PersistentData.save(); entry.markReadStateDirty(); - SpectrumClient.minecraftClient.getSoundManager().play(new HintRevelationSoundInstance(mc.player, rawText.asString().length())); + MinecraftClient.getInstance().getSoundManager().play(new HintRevelationSoundInstance(mc.player, rawText.getString().length())); SpectrumC2SPacketSender.sendGuidebookHintBoughtPaket(ingredient); revealProgress = 1; diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PagePedestalCrafting.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PagePedestalCrafting.java index 8774450346..cccb643f34 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PagePedestalCrafting.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PagePedestalCrafting.java @@ -61,7 +61,7 @@ protected void drawRecipe(MatrixStack ms, @NotNull PedestalCraftingRecipe recipe DefaultedList ingredients = recipe.getIngredientStacks(); int wrap = recipe.getWidth(); for (int i = 0; i < ingredients.size(); i++) { - PatchouliHelper.renderIngredientStack(parent, ms,recipeX + (i % wrap) * 19 + 3, recipeY + (i / wrap) * 19 + 3, mouseX, mouseY, ingredients.get(i)); + PatchouliHelper.renderIngredientStack(parent, ms, recipeX + (i % wrap) * 19 + 3, recipeY + (i / wrap) * 19 + 3, mouseX, mouseY, ingredients.get(i)); } } diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageTitrationBarrelFermenting.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageTitrationBarrelFermenting.java index 549c4581f9..7c20719d03 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageTitrationBarrelFermenting.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PageTitrationBarrelFermenting.java @@ -53,7 +53,7 @@ protected void drawRecipe(MatrixStack ms, @NotNull ITitrationBarrelRecipe recipe Fluid fluid = recipe.getFluid(); boolean usesFluid = fluid != Fluids.EMPTY; IngredientStack bucketStack = IngredientStack.EMPTY; - if(usesFluid) { + if (usesFluid) { bucketStack = IngredientStack.of(Ingredient.ofStacks(recipe.getFluid().getBucketItem().getDefaultStack())); } @@ -67,7 +67,7 @@ protected void drawRecipe(MatrixStack ms, @NotNull ITitrationBarrelRecipe recipe IngredientStack currentIngredient = i == ingredientSize ? bucketStack : ingredients.get(i); int yOffset; int xOffset; - if(i < 3) { + if (i < 3) { xOffset = i * 18; yOffset = 0; } else { @@ -78,7 +78,7 @@ protected void drawRecipe(MatrixStack ms, @NotNull ITitrationBarrelRecipe recipe } // the titration barrel / tapping ingredient - if(recipe.getTappingItem() == Items.AIR) { + if (recipe.getTappingItem() == Items.AIR) { parent.renderItemStack(ms, recipeX + 54, recipeY + 20, mouseX, mouseY, recipe.createIcon()); } else { parent.renderItemStack(ms, recipeX + 54, recipeY + 20, mouseX, mouseY, recipe.getTappingItem().getDefaultStack()); @@ -88,14 +88,14 @@ protected void drawRecipe(MatrixStack ms, @NotNull ITitrationBarrelRecipe recipe parent.renderItemStack(ms, recipeX + 78, recipeY + 10, mouseX, mouseY, recipe.getOutput()); // the duration - if(second) { - if(textRenderer2 == null) { + if (second) { + if (textRenderer2 == null) { MutableText text = TitrationBarrelRecipe.getDurationText(recipe.getMinFermentationTimeHours(), recipe.getFermentationData()); textRenderer2 = new BookTextRenderer(parent, text, 0, recipeY + 40); } textRenderer2.render(ms, mouseX, mouseY); } else { - if(textRenderer == null) { + if (textRenderer == null) { MutableText text = TitrationBarrelRecipe.getDurationText(recipe.getMinFermentationTimeHours(), recipe.getFermentationData()); textRenderer = new BookTextRenderer(parent, text, 0, recipeY + 40); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliFlags.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliFlags.java index 5f7b3c1d31..d5f32423de 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliFlags.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliFlags.java @@ -11,7 +11,7 @@ public class PatchouliFlags { public static void register() { - for(Map.Entry, Enchantment> entry : Registry.ENCHANTMENT.getEntrySet()) { + for (Map.Entry, Enchantment> entry : Registry.ENCHANTMENT.getEntrySet()) { Identifier id = entry.getKey().getValue(); PatchouliAPI.get().setConfigFlag("spectrum:enchantment_exists_" + id.getNamespace() + "_" + id.getPath(), true); } diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliPages.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliPages.java index ff7fe44429..ec1b9f9927 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliPages.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PatchouliPages.java @@ -1,10 +1,10 @@ package de.dafuqs.spectrum.compat.patchouli; -import de.dafuqs.spectrum.SpectrumCommon; -import vazkii.patchouli.client.book.ClientBookRegistry; +import de.dafuqs.spectrum.*; +import vazkii.patchouli.client.book.*; public class PatchouliPages { - + public static void register() { ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("anvil_crushing"), PageAnvilCrushing.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("pedestal_crafting"), PagePedestalCrafting.class); @@ -14,12 +14,13 @@ public static void register() { ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("potion_workshop_brewing"), PagePotionWorkshopBrewing.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("potion_workshop_crafting"), PagePotionWorkshopCrafting.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("spirit_instiller_crafting"), PageSpiritInstillerCrafting.class); - ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("midnight_solution_converting"), PageMidnightSolutionConverting.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("liquid_crystal_converting"), de.dafuqs.spectrum.compat.patchouli.PageLiquidCrystalConverting.class); + ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("midnight_solution_converting"), PageMidnightSolutionConverting.class); + ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("dragonrot_converting"), PageDragonrotConverting.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("crystallarieum_growing"), PageCrystallarieumGrowing.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("cinderhearth_smelting"), PageCinderhearthSmelting.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("titration_barrel_fermenting"), PageTitrationBarrelFermenting.class); - + ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("hint"), PageHint.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("checklist"), PageChecklist.class); ClientBookRegistry.INSTANCE.pageTypes.put(SpectrumCommon.locate("confirmation_button"), PageConfirmationButton.class); diff --git a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PaymentButtonWidget.java b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PaymentButtonWidget.java index 1ae23dd17a..2c5227dcb8 100644 --- a/src/main/java/de/dafuqs/spectrum/compat/patchouli/PaymentButtonWidget.java +++ b/src/main/java/de/dafuqs/spectrum/compat/patchouli/PaymentButtonWidget.java @@ -3,7 +3,6 @@ import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; public class PaymentButtonWidget extends ButtonWidget { @@ -12,7 +11,7 @@ public class PaymentButtonWidget extends ButtonWidget { public PaymentButtonWidget(int x, int y, int width, int height, Text message, PressAction onPress, PageHint pageHint) { super(x, y, width, height, message, onPress); this.pageHint = pageHint; - setMessage(new TranslatableText("spectrum.gui.lexicon.reveal_hint_button.text")); + setMessage(Text.translatable("spectrum.gui.lexicon.reveal_hint_button.text")); } public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float delta) { diff --git a/src/main/java/de/dafuqs/spectrum/compat/reverb/DimensionReverb.java b/src/main/java/de/dafuqs/spectrum/compat/reverb/DimensionReverb.java new file mode 100644 index 0000000000..43a4044f9c --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/compat/reverb/DimensionReverb.java @@ -0,0 +1,26 @@ +package de.dafuqs.spectrum.compat.reverb; + +import de.dafuqs.reverb.*; +import de.dafuqs.reverb.sound.*; +import de.dafuqs.reverb.sound.reverb.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.deeper_down.*; +import net.fabricmc.api.*; +import net.minecraft.util.registry.*; + +import java.util.*; + +@Environment(EnvType.CLIENT) +public class DimensionReverb { + + public static void setup() { + if (SpectrumCommon.CONFIG.DimensionReverbDecayTime > 0 || SpectrumCommon.CONFIG.DimensionReverbDensity > 0) { + Registry.register(Reverb.SOUND_EFFECTS, DDDimension.DEEPER_DOWN_DIMENSION_ID, new SoundEffects( + Optional.of(new StaticReverbEffect.Builder() + .setDecayTime(SpectrumCommon.CONFIG.DimensionReverbDecayTime) + .setDensity(SpectrumCommon.CONFIG.DimensionReverbDensity).build() + ), Optional.empty(), Optional.empty())); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/config/CompatibilitySettingAccessors.java b/src/main/java/de/dafuqs/spectrum/config/CompatibilitySettingAccessors.java new file mode 100644 index 0000000000..796aa130a1 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/config/CompatibilitySettingAccessors.java @@ -0,0 +1,47 @@ +package de.dafuqs.spectrum.config; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class CompatibilitySettingAccessors { + public static final CompatibilitySettingAccessors INSTANCE; + + private final Set compatModIds = new HashSet<>(); + private final Map, Map>> settings = new HashMap<>(); + + private CompatibilitySettingAccessors() {} + + public void register(String modId, Class type, String key, T value) { + if (compatModIds.add(modId)) { + return; + } + if (!settings.containsKey(type)) { + settings.put(type, new HashMap<>()); + } + Map> map = settings.get(type); + if (!map.containsKey(modId)) { + map.put(modId, new HashMap<>()); + } + Map fMap = map.get(modId); + fMap.put(key, value); + } + + public T get(String modId, String key, Class type, T defaultValue) { + if (settings.containsKey(type)) { + Map> map = settings.get(type); + if (map.containsKey(modId)) { + Map fMap = map.get(modId); + if (fMap.containsKey(key)) { + return type.cast(fMap.get(key)); + } + } + } + return defaultValue; + } + + static { + INSTANCE = new CompatibilitySettingAccessors(); + } +} diff --git a/src/main/java/de/dafuqs/spectrum/config/SpectrumConfig.java b/src/main/java/de/dafuqs/spectrum/config/SpectrumConfig.java index d21fc30894..a8796e32a6 100644 --- a/src/main/java/de/dafuqs/spectrum/config/SpectrumConfig.java +++ b/src/main/java/de/dafuqs/spectrum/config/SpectrumConfig.java @@ -1,25 +1,29 @@ package de.dafuqs.spectrum.config; -import me.shedaniel.autoconfig.ConfigData; -import me.shedaniel.autoconfig.annotation.Config; -import me.shedaniel.cloth.clothconfig.shadowed.blue.endless.jankson.Comment; +import me.shedaniel.autoconfig.*; +import me.shedaniel.autoconfig.annotation.*; +import me.shedaniel.cloth.clothconfig.shadowed.blue.endless.jankson.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; @Config(name = "Spectrum") public class SpectrumConfig implements ConfigData { - + @Comment("The duration in milliseconds ingame recipe/unlock popups stay on the screen") public long ToastTimeMilliseconds = 7500; - + + @Comment("The reverb decay time for sound effects in Spectrum's dimension") + public float DimensionReverbDecayTime = 8.0F; + + @Comment("The reverb density for sound effects in Spectrum's dimension") + public float DimensionReverbDensity = 0.5F; + @Comment(""" The vanilla anvil caps enchantment levels at the max level for the enchantment So enchanted books that exceed the enchantments natural max level get capped - If true the bedrock anvil will not cap the enchantments level to it's natural max level - """) + If true the bedrock anvil will not cap the enchantments level to it's natural max level""") public boolean BedrockAnvilCanExceedMaxVanillaEnchantmentLevel = false; - + @Comment(""" The heights where citrine and topaz geodes will spawn By default citrine will generate slightly below sea level (y=32-60) @@ -33,7 +37,6 @@ By default citrine will generate slightly below sea level (y=32-60) @Comment("Every x chunks there is a chance for a geode to generate, Moonstone geodes do not spawn in the Overworld") public int TopazGeodeChunkChance = 7; public int CitrineGeodeChunkChance = 50; - public int MoonstoneGeodeChunkChance = 45; @Comment("The amount of colored tree patches to generate every X chunks") public int ColoredTreePatchChanceChunk = 75; @@ -76,13 +79,25 @@ By default citrine will generate slightly below sea level (y=32-60) Fading and Failing do no real harm to the world. If you turn up these values too high players may lack the feedback they need that what they are doing is correct - 1.0: every random tick (default) + 1.0: Every random tick (default) 0.5: Every second random tick - 0.0: never (forbidden - players would be unable to progress)""") + 0.0: Never (forbidden - players would be unable to progress)""") public float FadingDecayTickRate = 1.0F; public float FailingDecayTickRate = 1.0F; public float RuinDecayTickRate = 1.0F; - public float TerrorDecayTickRate = 1.0F; + public float ForfeitureDecayTickRate = 1.0F; + + @Comment("Whether bottles can be used to pick up decay. Default is true.") + public boolean CanPickUpFading = true; + public boolean CanPickUpFailing = true; + public boolean CanPickUpRuin = true; + public boolean CanPickUpForfeiture = true; + + @Comment("Whether decay can take over block entities. Defaults to true.") + public boolean FadingCanDestroyBlockEntities = true; + public boolean FailingCanDestroyBlockEntities = true; + public boolean RuinCanDestroyBlockEntities = true; + public boolean ForfeitureCanDestroyBlockEntities = true; @Comment("The audio volume for Spectrums crafting blocks. Set to 0.0 to turn those sounds off completely.") public float BlockSoundVolume = 0.75F; @@ -126,16 +141,19 @@ This does only disable the registration of said Enchantments, not all recipes ba @Comment("Flat additional damage dealt with each level of the First Strike enchantment") public float FirstStrikeDamagePerLevel = 2.0F; - + @Comment("The percentile a mobs armor/hand stacks are being dropped when hit with a Disarming enchanted weapon per the enchantments level") public float DisarmingChancePerLevelMobs = 0.01F; - + @Comment("If > 0 the Disarming Enchantment is able to remove armor and hand tools from a hit player. Should be a far smaller chance than for mobs") public float DisarmingChancePerLevelPlayers = 0.001F; - + + @Comment("The % attack speed boost each level of Tight Grip gives to a tool") + public float TightGripAttackSpeedBonusPercentPerLevel = 0.0625F; + @Comment("The duration a glow ink sac gives night vision when wearing a glow vision helmet in seconds") public int GlowVisionGogglesDuration = 240; - + public int GemstoneArmorHelmetProtection = 3; public int GemstoneArmorChestplateProtection = 7; public int GemstoneArmorLeggingsProtection = 5; @@ -150,12 +168,12 @@ This does only disable the registration of said Enchantments, not all recipes ba public int GemstoneArmorRegenerationAmplifier = 1; public int GemstoneArmorSpeedAmplifier = 2; - public int BedrockArmorHelmetProtection = 6; - public int BedrockArmorLeggingsProtection = 10; - public int BedrockArmorChestplateProtection = 14; - public int BedrockArmorBootsProtection = 6; - public float BedrockArmorToughness = 4.0F; - public float BedrockArmorKnockbackResistance = 0.4F; + public int BedrockArmorHelmetProtection = 5; + public int BedrockArmorLeggingsProtection = 9; + public int BedrockArmorChestplateProtection = 13; + public int BedrockArmorBootsProtection = 5; + public float BedrockArmorToughness = 3.0F; + public float BedrockArmorKnockbackResistance = 0.3F; public int MaxLevelForEffectsInLesserPotionPendant = 3; public int MaxLevelForEffectsInGreaterPotionPendant = 1; @@ -213,6 +231,10 @@ public void validatePostLoad() { if (BigCatchMaxLevel <= 0) { BigCatchMaxLevel = 3; } + if (QuitoxicReedsCountPerChunk > 256) { + // 16x16 blocks in a chunk; else the worldgen feature would break + QuitoxicReedsCountPerChunk = 256; + } if (ShootingStarWorlds.isEmpty()) { ShootingStarWorlds.add("minecraft:overworld"); diff --git a/src/main/java/de/dafuqs/spectrum/data_loaders/EntityFishingDataLoader.java b/src/main/java/de/dafuqs/spectrum/data_loaders/EntityFishingDataLoader.java index eec5c9f195..135415f11d 100644 --- a/src/main/java/de/dafuqs/spectrum/data_loaders/EntityFishingDataLoader.java +++ b/src/main/java/de/dafuqs/spectrum/data_loaders/EntityFishingDataLoader.java @@ -26,65 +26,66 @@ import java.util.concurrent.atomic.AtomicInteger; public class EntityFishingDataLoader extends JsonDataLoader implements IdentifiableResourceReloadListener { - - public static final String ID = "entity_fishing"; - public static final EntityFishingDataLoader INSTANCE = new EntityFishingDataLoader(); - - protected static final List ENTITY_FISHING_ENTRIES = new ArrayList<>(); - - public record EntityFishingEntry(FluidPredicate fluidPredicate, float entityChance, int weightSum, DataPool weightedEntityTypes) { - - } - - private EntityFishingDataLoader() { - super(new Gson(), ID); - } - - @Override - protected void apply(Map prepared, ResourceManager manager, Profiler profiler) { - prepared.forEach((identifier, jsonElement) -> { - JsonObject jsonObject = jsonElement.getAsJsonObject(); - - FluidPredicate fluidPredicate = FluidPredicate.fromJson(jsonObject.get("fluid")); - float chance = JsonHelper.getFloat(jsonObject, "chance"); - JsonArray entityArray = JsonHelper.getArray(jsonObject, "entities"); - - AtomicInteger weightSum = new AtomicInteger(); - DataPool.Builder entityTypesList = DataPool.builder(); - entityArray.forEach(entryElement -> { - JsonObject entryObject = entryElement.getAsJsonObject(); - - EntityType entityType = Registry.ENTITY_TYPE.get(new Identifier(JsonHelper.getString(entryObject, "id"))); - int weight = 1; - if(JsonHelper.hasNumber(jsonObject, "weight")) { - weight = JsonHelper.getInt(entryObject, "weight"); - } - weightSum.addAndGet(weight); - entityTypesList.add(entityType, weight); - }); - - ENTITY_FISHING_ENTRIES.add(new EntityFishingEntry(fluidPredicate, chance, weightSum.get(), entityTypesList.build())); - }); - } - - @Override - public Identifier getFabricId() { - return SpectrumCommon.locate(ID); - } - - public static Optional tryCatchEntity(ServerWorld world, BlockPos pos, int bigCatchLevel) { - for(EntityFishingEntry entry : ENTITY_FISHING_ENTRIES) { - if(entry.fluidPredicate.test(world, pos)) { - if(world.random.nextFloat() < entry.entityChance * (1 + bigCatchLevel)) { - Optional> x = entry.weightedEntityTypes.getOrEmpty(world.random); - if(x.isPresent()) { - return Optional.of(x.get().getData()); - } - } - return Optional.empty(); - } - } - return Optional.empty(); - } - + + public static final String ID = "entity_fishing"; + public static final EntityFishingDataLoader INSTANCE = new EntityFishingDataLoader(); + + protected static final List ENTITY_FISHING_ENTRIES = new ArrayList<>(); + + public record EntityFishingEntry(FluidPredicate fluidPredicate, float entityChance, int weightSum, + DataPool weightedEntityTypes) { + + } + + private EntityFishingDataLoader() { + super(new Gson(), ID); + } + + @Override + protected void apply(Map prepared, ResourceManager manager, Profiler profiler) { + prepared.forEach((identifier, jsonElement) -> { + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + FluidPredicate fluidPredicate = FluidPredicate.fromJson(jsonObject.get("fluid")); + float chance = JsonHelper.getFloat(jsonObject, "chance"); + JsonArray entityArray = JsonHelper.getArray(jsonObject, "entities"); + + AtomicInteger weightSum = new AtomicInteger(); + DataPool.Builder entityTypesList = DataPool.builder(); + entityArray.forEach(entryElement -> { + JsonObject entryObject = entryElement.getAsJsonObject(); + + EntityType entityType = Registry.ENTITY_TYPE.get(new Identifier(JsonHelper.getString(entryObject, "id"))); + int weight = 1; + if (JsonHelper.hasNumber(jsonObject, "weight")) { + weight = JsonHelper.getInt(entryObject, "weight"); + } + weightSum.addAndGet(weight); + entityTypesList.add(entityType, weight); + }); + + ENTITY_FISHING_ENTRIES.add(new EntityFishingEntry(fluidPredicate, chance, weightSum.get(), entityTypesList.build())); + }); + } + + @Override + public Identifier getFabricId() { + return SpectrumCommon.locate(ID); + } + + public static Optional tryCatchEntity(ServerWorld world, BlockPos pos, int bigCatchLevel) { + for (EntityFishingEntry entry : ENTITY_FISHING_ENTRIES) { + if (entry.fluidPredicate.test(world, pos)) { + if (world.random.nextFloat() < entry.entityChance * (1 + bigCatchLevel)) { + Optional> x = entry.weightedEntityTypes.getOrEmpty(world.random); + if (x.isPresent()) { + return Optional.of(x.get().getData()); + } + } + return Optional.empty(); + } + } + return Optional.empty(); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/data_loaders/ResonanceDropsDataLoader.java b/src/main/java/de/dafuqs/spectrum/data_loaders/ResonanceDropsDataLoader.java index c05b3fbc92..57710ad645 100644 --- a/src/main/java/de/dafuqs/spectrum/data_loaders/ResonanceDropsDataLoader.java +++ b/src/main/java/de/dafuqs/spectrum/data_loaders/ResonanceDropsDataLoader.java @@ -36,7 +36,7 @@ protected void apply(Map prepared, ResourceManager mana Item itemIn = Registry.ITEM.get(Identifier.tryParse(JsonHelper.getString(jsonObject, "input"))); Item itemOut = Registry.ITEM.get(Identifier.tryParse(JsonHelper.getString(jsonObject, "output"))); - if(itemIn != Items.AIR && itemOut != Items.AIR) { + if (itemIn != Items.AIR && itemOut != Items.AIR) { RESONANCE_DROPS.put(itemIn, itemOut); } }); @@ -49,7 +49,7 @@ public Identifier getFabricId() { public static ItemStack applyResonance(ItemStack stack) { Item item = stack.getItem(); - if(RESONANCE_DROPS.containsKey(item)) { + if (RESONANCE_DROPS.containsKey(item)) { ItemStack convertedStack = RESONANCE_DROPS.get(item).getDefaultStack(); convertedStack.setCount(stack.getCount()); return convertedStack; diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DDBiome.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DDBiome.java deleted file mode 100644 index 8164c47006..0000000000 --- a/src/main/java/de/dafuqs/spectrum/deeper_down/DDBiome.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.dafuqs.spectrum.deeper_down; - -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumMusicType; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.sound.BiomeMoodSound; -import net.minecraft.world.biome.*; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.carver.ConfiguredCarvers; - -public class DDBiome { - - public static final Biome INSTANCE = new Biome.Builder() - .generationSettings(new GenerationSettings.Builder().build()) - .precipitation(Biome.Precipitation.NONE) - .temperature(0.2F).downfall(0.2F) - .category(Biome.Category.NONE) - .temperatureModifier(Biome.TemperatureModifier.NONE) - .effects(new BiomeEffects.Builder() - .waterColor(0xd3cbb1) - .waterFogColor(0x746a62) - .fogColor(0x000000) - .skyColor(0x000000) - .foliageColor(0x3a482f) - .grassColor(0x6e7d4e) - .moodSound(new BiomeMoodSound(SpectrumSoundEvents.DIMENSION_SOUNDS, 6000, 8, 2)) - .particleConfig(new BiomeParticleConfig(SpectrumParticleTypes.VOID_FOG, 0.003F)) - .music(SpectrumMusicType.DEEPER_DOWN_THEME) - .build()) - .spawnSettings(new SpawnSettings.Builder().creatureSpawnProbability(0).build()) - .generationSettings(new GenerationSettings.Builder() - .carver(GenerationStep.Carver.AIR, ConfiguredCarvers.CAVE).carver(GenerationStep.Carver.AIR, ConfiguredCarvers.CAVE_EXTRA_UNDERGROUND).build()) - .build(); - -} diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DDBiomeKeys.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DDBiomeKeys.java new file mode 100644 index 0000000000..7fce101dde --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DDBiomeKeys.java @@ -0,0 +1,19 @@ +package de.dafuqs.spectrum.deeper_down; + +import de.dafuqs.spectrum.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.biome.*; + +public class DDBiomeKeys { + + public static final RegistryKey CRYSTAL_GARDEN = getReference("crystal_garden"); + public static final RegistryKey DEEP_BARRENS = getReference("deep_barrens"); + public static final RegistryKey DRAGONROT_SWAMP = getReference("dragonrot_swamp"); + public static final RegistryKey FORLORM_CAVES = getReference("forlorm_caves"); + public static final RegistryKey RAZOR_EDGE = getReference("razor_edge"); + + private static RegistryKey getReference(String name) { + return RegistryKey.of(Registry.BIOME_KEY, SpectrumCommon.locate(name)); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DDConfiguredFeatures.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DDConfiguredFeatures.java index 16515c9405..fcbc75796f 100644 --- a/src/main/java/de/dafuqs/spectrum/deeper_down/DDConfiguredFeatures.java +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DDConfiguredFeatures.java @@ -1,65 +1,54 @@ package de.dafuqs.spectrum.deeper_down; -import com.google.common.collect.ImmutableList; -import de.dafuqs.spectrum.registries.SpectrumBlockTags; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.worldgen.SpectrumFeatures; -import de.dafuqs.spectrum.worldgen.features.RandomBudsFeaturesConfig; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.fluid.Fluids; -import net.minecraft.structure.rule.AlwaysTrueRuleTest; -import net.minecraft.structure.rule.RuleTest; -import net.minecraft.structure.rule.TagMatchRuleTest; -import net.minecraft.tag.BlockTags; -import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.minecraft.util.registry.RegistryEntryList; +import de.dafuqs.spectrum.blocks.dd_deco.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.registries.*; +import de.dafuqs.spectrum.worldgen.*; +import de.dafuqs.spectrum.worldgen.features.*; +import net.minecraft.block.*; +import net.minecraft.tag.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.intprovider.*; +import net.minecraft.util.registry.*; import net.minecraft.world.gen.feature.*; -import net.minecraft.world.gen.stateprovider.BlockStateProvider; +import net.minecraft.world.gen.stateprovider.*; -import java.util.List; +import java.util.*; -public class DDConfiguredFeatures { - - public static final RuleTest BASE_STONE_DD = new TagMatchRuleTest(SpectrumBlockTags.BASE_STONE_DEEPER_DOWN); - public static final AlwaysTrueRuleTest ALWAYS_TRUE = AlwaysTrueRuleTest.INSTANCE; - - public static final RegistryEntryList DD_BASE_BLOCKS = RegistryEntryList.of(Block::getRegistryEntry, Blocks.STONE, Blocks.DEEPSLATE, SpectrumBlocks.BLACKSLAG, Blocks.GRANITE, Blocks.DIORITE, Blocks.ANDESITE); - - public static final ConfiguredFeature STONE_DISK = new ConfiguredFeature<>(Feature.ORE, new OreFeatureConfig(BASE_STONE_DD, Blocks.STONE.getDefaultState(), 33)); - public static final ConfiguredFeature TUFF_DISK = new ConfiguredFeature<>(Feature.ORE, new OreFeatureConfig(BASE_STONE_DD, Blocks.TUFF.getDefaultState(), 64)); - public static final ConfiguredFeature GRAVEL_DISK = new ConfiguredFeature<>(Feature.ORE, new OreFeatureConfig(BASE_STONE_DD, Blocks.GRAVEL.getDefaultState(), 33)); - public static final ConfiguredFeature GRANITE_DISK = new ConfiguredFeature<>(Feature.ORE, new OreFeatureConfig(BASE_STONE_DD, Blocks.GRANITE.getDefaultState(), 64)); - public static final ConfiguredFeature DIORITE_DISK = new ConfiguredFeature<>(Feature.ORE, new OreFeatureConfig(BASE_STONE_DD, Blocks.DIORITE.getDefaultState(), 64)); - public static final ConfiguredFeature ANDESITE_DISK = new ConfiguredFeature<>(Feature.ORE, new OreFeatureConfig(BASE_STONE_DD, Blocks.ANDESITE.getDefaultState(), 64)); - public static final ConfiguredFeature BEDROCK_DISK = new ConfiguredFeature<>(SpectrumFeatures.AIR_CHECK_DISK, new OreFeatureConfig(ALWAYS_TRUE, Blocks.BEDROCK.getDefaultState(), 40)); - public static final ConfiguredFeature BEDROCK_DISK_SLOPED = new ConfiguredFeature<>(SpectrumFeatures.AIR_CHECK_DISK, new OreFeatureConfig(ALWAYS_TRUE, Blocks.BEDROCK.getDefaultState(), 40)); +public class DDConfiguredFeatures extends WorldgenHelper { + + public static final ConfiguredFeature CHESTNUT_NOXFUNGUS = new ConfiguredFeature<>(SpectrumFeatures.GILLED_FUNGUS, + new GilledFungusFeatureConfig(SpectrumBlocks.SHIMMEL.getDefaultState(), SpectrumBlocks.CHESTNUT_NOXCAP_CAP.getDefaultState(), SpectrumBlocks.CHESTNUT_NOXCAP_GILLS.getDefaultState(), SpectrumBlocks.CHESTNUT_NOXCAP_STEM.getDefaultState())); + public static final ConfiguredFeature EBONY_NOXFUNGUS = new ConfiguredFeature<>(SpectrumFeatures.GILLED_FUNGUS, + new GilledFungusFeatureConfig(SpectrumBlocks.SHIMMEL.getDefaultState(), SpectrumBlocks.EBONY_NOXCAP_CAP.getDefaultState(), SpectrumBlocks.EBONY_NOXCAP_GILLS.getDefaultState(), SpectrumBlocks.EBONY_NOXCAP_STEM.getDefaultState())); + public static final ConfiguredFeature IVORY_NOXFUNGUS = new ConfiguredFeature<>(SpectrumFeatures.GILLED_FUNGUS, + new GilledFungusFeatureConfig(SpectrumBlocks.SHIMMEL.getDefaultState(), SpectrumBlocks.IVORY_NOXCAP_CAP.getDefaultState(), SpectrumBlocks.IVORY_NOXCAP_GILLS.getDefaultState(), SpectrumBlocks.IVORY_NOXCAP_STEM.getDefaultState())); + public static final ConfiguredFeature SLATE_NOXFUNGUS = new ConfiguredFeature<>(SpectrumFeatures.GILLED_FUNGUS, + new GilledFungusFeatureConfig(SpectrumBlocks.SHIMMEL.getDefaultState(), SpectrumBlocks.SLATE_NOXCAP_CAP.getDefaultState(), SpectrumBlocks.SLATE_NOXCAP_GILLS.getDefaultState(), SpectrumBlocks.SLATE_NOXCAP_STEM.getDefaultState())); + + public static final ConfiguredFeature RED_DRAGONJAGS = new ConfiguredFeature<>(Feature.RANDOM_PATCH, + ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(SimpleBlockStateProvider.of(SpectrumBlocks.SMALL_RED_DRAGONJAG.getDefaultState())))); + public static final ConfiguredFeature PINK_DRAGONJAGS = new ConfiguredFeature<>(Feature.RANDOM_PATCH, + ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(SimpleBlockStateProvider.of(SpectrumBlocks.SMALL_PINK_DRAGONJAG.getDefaultState())))); + public static final ConfiguredFeature GREEN_DRAGONJAGS = new ConfiguredFeature<>(Feature.RANDOM_PATCH, + ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(SimpleBlockStateProvider.of(SpectrumBlocks.SMALL_GREEN_DRAGONJAG.getDefaultState())))); + public static final ConfiguredFeature PURPLE_DRAGONJAGS = new ConfiguredFeature<>(Feature.RANDOM_PATCH, + ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(SimpleBlockStateProvider.of(SpectrumBlocks.SMALL_PURPLE_DRAGONJAG.getDefaultState())))); + public static final ConfiguredFeature BLACK_DRAGONJAGS = new ConfiguredFeature<>(Feature.RANDOM_PATCH, + ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(SimpleBlockStateProvider.of(SpectrumBlocks.SMALL_BLACK_DRAGONJAG.getDefaultState())))); - public static final ConfiguredFeature WATER_SPRING = new ConfiguredFeature<>(Feature.SPRING_FEATURE, new SpringFeatureConfig(Fluids.WATER.getDefaultState(), true, 4, 1, DD_BASE_BLOCKS)); - public static final ConfiguredFeature GLOW_LICHEN = new ConfiguredFeature<>(Feature.GLOW_LICHEN, new GlowLichenFeatureConfig(20, false, true, true, 0.5F, DD_BASE_BLOCKS)); + public static final ConfiguredFeature BRISTLE_SPROUTS = new ConfiguredFeature<>(Feature.RANDOM_PATCH, + ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(SimpleBlockStateProvider.of(SpectrumBlocks.BRISTLE_SPROUTS.getDefaultState())), List.of(SpectrumBlocks.SAWBLADE_GRASS), 144)); + public static final RegistryEntry> SNAPPING_IVY = ConfiguredFeatures.register("snapping_ivy", Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig( + new WeightedBlockStateProvider(DataPool.builder() + .add(SpectrumBlocks.SNAPPING_IVY.getDefaultState().with(SnappingIvyBlock.AXIS, Direction.Axis.X), 1) + .add(SpectrumBlocks.SNAPPING_IVY.getDefaultState().with(SnappingIvyBlock.AXIS, Direction.Axis.Z), 1).build()) + )); - public static final ConfiguredFeature BISMUTH_BUDS = new ConfiguredFeature<>(SpectrumFeatures.RANDOM_BUDS, - new RandomBudsFeaturesConfig(20, false, true, true, DD_BASE_BLOCKS, - List.of(SpectrumBlocks.SMALL_BISMUTH_BUD.getDefaultState(), SpectrumBlocks.LARGE_BISMUTH_BUD.getDefaultState()))); - - public static final ConfiguredFeature MOONSTONE_GEODE = new ConfiguredFeature<>(Feature.GEODE, - new GeodeFeatureConfig( - new GeodeLayerConfig( - BlockStateProvider.of(Blocks.AIR.getDefaultState()), - BlockStateProvider.of(SpectrumBlocks.MOONSTONE_BLOCK.getDefaultState()), - BlockStateProvider.of(SpectrumBlocks.BUDDING_MOONSTONE.getDefaultState()), - BlockStateProvider.of(Blocks.CALCITE.getDefaultState()), - BlockStateProvider.of(Blocks.SMOOTH_BASALT.getDefaultState()), - ImmutableList.of(SpectrumBlocks.MOONSTONE_CLUSTER.getDefaultState()), // forever untouched by man: generate with clusters only - BlockTags.FEATURES_CANNOT_REPLACE, - BlockTags.GEODE_INVALID_BLOCKS), - new GeodeLayerThicknessConfig(4.0D, 5.0D, 6.0D, 7.0D), - new GeodeCrackConfig(0.95D, 4.0D, 4), - 1.0D, 0.1D, true, - UniformIntProvider.create(4, 6), - UniformIntProvider.create(2, 3), - UniformIntProvider.create(1, 2), - -16, 16, 0.05D, 1)); + public static final ConfiguredFeature SNAPPING_IVY_PATCH = new ConfiguredFeature<>(Feature.VEGETATION_PATCH, + new VegetationPatchFeatureConfig(BlockTags.MOSS_REPLACEABLE, BlockStateProvider.of(SpectrumBlocks.ROTTEN_GROUND), + PlacedFeatures.createEntry(SNAPPING_IVY), VerticalSurfaceType.FLOOR, ConstantIntProvider.create(1), 0.0F, 5, 0.8F, UniformIntProvider.create(4, 7), 0.3F)); } diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DDDimension.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DDDimension.java index a8f52a9247..18873c5d3e 100644 --- a/src/main/java/de/dafuqs/spectrum/deeper_down/DDDimension.java +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DDDimension.java @@ -1,202 +1,20 @@ package de.dafuqs.spectrum.deeper_down; -import com.google.common.collect.ImmutableList; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.registries.SpectrumBlockTags; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.fabricmc.fabric.api.biome.v1.BiomeModifications; -import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; -import net.minecraft.block.Blocks; -import net.minecraft.structure.rule.RuleTest; -import net.minecraft.structure.rule.TagMatchRuleTest; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.Heightmap; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.YOffset; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.OreConfiguredFeatures; -import net.minecraft.world.gen.feature.OreFeatureConfig; -import net.minecraft.world.gen.heightprovider.VeryBiasedToBottomHeightProvider; -import net.minecraft.world.gen.placementmodifier.*; - -import static de.dafuqs.spectrum.helpers.WorldgenHelper.registerConfiguredAndPlacedFeature; -import static de.dafuqs.spectrum.helpers.WorldgenHelper.registerPlacedFeature; -import static net.minecraft.world.gen.feature.OreConfiguredFeatures.DEEPSLATE_ORE_REPLACEABLES; -import static net.minecraft.world.gen.feature.OreConfiguredFeatures.STONE_ORE_REPLACEABLES; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; public class DDDimension { public static final Identifier DEEPER_DOWN_EFFECTS_ID = SpectrumCommon.locate("deeper_down"); public static final Identifier DEEPER_DOWN_DIMENSION_ID = SpectrumCommon.locate("deeper_down_dimension"); public static final RegistryKey DEEPER_DOWN_DIMENSION_KEY = RegistryKey.of(Registry.WORLD_KEY, DEEPER_DOWN_DIMENSION_ID); - - public static final RegistryKey DEEPER_DOWN_BIOME_KEY = RegistryKey.of(Registry.BIOME_KEY, SpectrumCommon.locate("deeper_down_biome")); - public static Biome DEEPER_DOWN_BIOME; - - public static final RuleTest BLACKSLAG_ORE_REPLACEABLES = new TagMatchRuleTest(SpectrumBlockTags.BLACKSLAG_ORE_REPLACEABLES); - + public static void register() { - Registry.register(BuiltinRegistries.BIOME, DEEPER_DOWN_BIOME_KEY.getValue(), DDBiome.INSTANCE); - DEEPER_DOWN_BIOME = BuiltinRegistries.BIOME.get(SpectrumCommon.locate("deeper_down_biome")); - - registerSpectrumOres(); - registerVanillaOres(); - registerGeodes(); - registerDecorators(); - } - - // see: https://minecraft.fandom.com/wiki/Biome/JSON_format - public static void registerAndAddOreFeature(String identifier, OreFeatureConfig oreFeatureConfig, PlacementModifier... placementModifiers) { - Identifier id = SpectrumCommon.locate(identifier); - registerConfiguredAndPlacedFeature(id, Feature.ORE, oreFeatureConfig, placementModifiers); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - } - - public static void registerSpectrumOres() { - registerAndAddOreFeature("dd_malachite_ore", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, SpectrumBlocks.MALACHITE_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, SpectrumBlocks.DEEPSLATE_MALACHITE_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_MALACHITE_ORE.getDefaultState()) - ), 7), - HeightRangePlacementModifier.uniform(YOffset.aboveBottom(64), YOffset.belowTop(256)), - CountPlacementModifier.of(40)); - - registerAndAddOreFeature("dd_sparklestone_ore", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, SpectrumBlocks.SPARKLESTONE_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, SpectrumBlocks.DEEPSLATE_SPARKLESTONE_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_SPARKLESTONE_ORE.getDefaultState()) - ), 7), - HeightRangePlacementModifier.uniform(YOffset.aboveBottom(16), YOffset.belowTop(128)), - CountPlacementModifier.of(24)); - } - - - public static void registerVanillaOres() { - registerAndAddOreFeature("dd_iron_ore", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, Blocks.IRON_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, Blocks.DEEPSLATE_IRON_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_IRON_ORE.getDefaultState()) - ), 25), - HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(192), YOffset.aboveBottom(384)), - CountPlacementModifier.of(20)); - - registerAndAddOreFeature("dd_iron_ore2", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, Blocks.IRON_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, Blocks.DEEPSLATE_IRON_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_IRON_ORE.getDefaultState()) - ), 25), - HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(4), YOffset.belowTop(4)), - CountPlacementModifier.of(10)); - - registerAndAddOreFeature("dd_gold_ore", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, Blocks.GOLD_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, Blocks.DEEPSLATE_GOLD_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_GOLD_ORE.getDefaultState()) - ), 15), - HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(128), YOffset.aboveBottom(256)), - CountPlacementModifier.of(20)); - - registerAndAddOreFeature("dd_gold_ore2", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, Blocks.GOLD_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, Blocks.DEEPSLATE_GOLD_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_GOLD_ORE.getDefaultState()) - ), 15), - HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(4), YOffset.belowTop(4)), - CountPlacementModifier.of(8)); - - registerAndAddOreFeature("dd_diamond_ore", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, Blocks.DIAMOND_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, Blocks.DEEPSLATE_DIAMOND_ORE.getDefaultState()), - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_DIAMOND_ORE.getDefaultState()) - ), 9), - HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(0), YOffset.aboveBottom(256)), - CountPlacementModifier.of(3)); - - registerAndAddOreFeature("dd_emerald_ore", - new OreFeatureConfig(ImmutableList.of( - OreFeatureConfig.createTarget(BLACKSLAG_ORE_REPLACEABLES, SpectrumBlocks.BLACKSLAG_EMERALD_ORE.getDefaultState()), - OreFeatureConfig.createTarget(STONE_ORE_REPLACEABLES, Blocks.EMERALD_ORE.getDefaultState()), - OreFeatureConfig.createTarget(DEEPSLATE_ORE_REPLACEABLES, Blocks.DEEPSLATE_EMERALD_ORE.getDefaultState()) - ), 18), - HeightRangePlacementModifier.trapezoid(YOffset.aboveBottom(0), YOffset.aboveBottom(128)), - RarityFilterPlacementModifier.of(3)); - } - - public static void registerGeodes() { - Identifier MOONSTONE_GEODE_IDENTIFIER = SpectrumCommon.locate("moonstone_geode"); - registerConfiguredAndPlacedFeature( - MOONSTONE_GEODE_IDENTIFIER, - DDConfiguredFeatures.MOONSTONE_GEODE, - RarityFilterPlacementModifier.of(SpectrumCommon.CONFIG.MoonstoneGeodeChunkChance), - SquarePlacementModifier.of(), - HeightRangePlacementModifier.uniform(YOffset.aboveBottom(16), YOffset.aboveBottom(128)), - BiomePlacementModifier.of() - ); - - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.LOCAL_MODIFICATIONS, RegistryKey.of(Registry.PLACED_FEATURE_KEY, MOONSTONE_GEODE_IDENTIFIER)); - } - - public static void registerDecorators() { - Identifier id = SpectrumCommon.locate("dd_tuff"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.TUFF_DISK, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), CountPlacementModifier.of(32)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_gravel"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.GRAVEL_DISK, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), CountPlacementModifier.of(32)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_infested"); - registerPlacedFeature(id, OreConfiguredFeatures.ORE_INFESTED, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), CountPlacementModifier.of(32)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_granite"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.GRANITE_DISK, HeightRangePlacementModifier.uniform(YOffset.belowTop(192), YOffset.belowTop(64)), CountPlacementModifier.of(8)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_diorite"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.DIORITE_DISK, HeightRangePlacementModifier.uniform(YOffset.belowTop(128), YOffset.getTop()), CountPlacementModifier.of(8)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_andesite"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.ANDESITE_DISK, HeightRangePlacementModifier.uniform(YOffset.belowTop(128), YOffset.getTop()), CountPlacementModifier.of(8)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_bedrock"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.BEDROCK_DISK, HeightRangePlacementModifier.uniform(YOffset.belowTop(128), YOffset.getTop()), CountPlacementModifier.of(16)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_bedrock_sloped"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.BEDROCK_DISK_SLOPED, HeightRangePlacementModifier.of(VeryBiasedToBottomHeightProvider.create(YOffset.getBottom(), YOffset.aboveBottom(50), 24)), CountPlacementModifier.of(16)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_stone"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.STONE_DISK, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), CountPlacementModifier.of(32)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_springs"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.WATER_SPRING, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), CountPlacementModifier.of(256)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_lichen"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.GLOW_LICHEN, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), CountPlacementModifier.of(UniformIntProvider.create(84, 127)), SquarePlacementModifier.of(), SurfaceThresholdFilterPlacementModifier.of(Heightmap.Type.OCEAN_FLOOR_WG, -2147483648, -13)); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); - - id = SpectrumCommon.locate("dd_bismuth"); - registerConfiguredAndPlacedFeature(id, DDConfiguredFeatures.BISMUTH_BUDS, HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.aboveBottom(192)), RarityFilterPlacementModifier.of(6), CountPlacementModifier.of(UniformIntProvider.create(64, 96)), SquarePlacementModifier.of()); - BiomeModifications.addFeature(BiomeSelectors.includeByKey(DDDimension.DEEPER_DOWN_BIOME_KEY), GenerationStep.Feature.UNDERGROUND_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, id)); + DimensionEffectsAccessor.getEffects().put(DEEPER_DOWN_EFFECTS_ID, new DeeperDownDimensionEffects()); + DDPlacedFeatures.register(); } } diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DDOreVeinSampler.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DDOreVeinSampler.java index df4e5ecba3..6ec0fd4e76 100644 --- a/src/main/java/de/dafuqs/spectrum/deeper_down/DDOreVeinSampler.java +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DDOreVeinSampler.java @@ -1,93 +1,91 @@ package de.dafuqs.spectrum.deeper_down; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.gen.chunk.ChunkNoiseSampler; -import net.minecraft.world.gen.densityfunction.DensityFunction; -import net.minecraft.world.gen.random.AbstractRandom; -import net.minecraft.world.gen.random.RandomDeriver; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.gen.chunk.*; +import net.minecraft.world.gen.densityfunction.*; public final class DDOreVeinSampler { - private static final float field_36620 = 0.4F; - private static final int field_36621 = 20; - private static final double field_36622 = 0.2D; - private static final float VEIN_LIMIT = 0.7F; - private static final float field_36624 = 0.1F; - private static final float field_36625 = 0.3F; - private static final float field_36626 = 0.6F; - private static final float RAW_ORE_BLOCK_CHANCE = 0.08F; - private static final float ORE_OR_STONE_THRESHOLD = -0.15F; + private static final float field_36620 = 0.4F; + private static final int field_36621 = 20; + private static final double field_36622 = 0.2D; + private static final float VEIN_LIMIT = 0.7F; + private static final float field_36624 = 0.1F; + private static final float field_36625 = 0.3F; + private static final float field_36626 = 0.6F; + private static final float RAW_ORE_BLOCK_CHANCE = 0.08F; + private static final float ORE_OR_STONE_THRESHOLD = -0.15F; + + private DDOreVeinSampler() { + } + + public static ChunkNoiseSampler.BlockStateSampler create(DensityFunction veinToggle, DensityFunction veinRidged, DensityFunction veinGap, RandomSplitter randomDeriver) { + return (pos) -> { + double veinTypeSample = veinToggle.sample(pos); + DDOreVeinSampler.VeinType veinType = VeinType.getVeinTypeForSample(veinTypeSample); + double absVeinTypeSample = Math.abs(veinTypeSample); + + int i = pos.blockY(); + int j = veinType.maxY - i; + int k = i - veinType.minY; + if (k >= 0 && j >= 0) { + int l = Math.min(j, k); + double f = MathHelper.clampedMap(l, 0.0D, field_36621, field_36622, 0.0D); + if (absVeinTypeSample + f < 0.05) { + return null; + } else { + Random random = randomDeriver.split(pos.blockX(), i, pos.blockZ()); + if (random.nextFloat() > VEIN_LIMIT) { + return null; + } else if (veinRidged.sample(pos) >= 0.0D) { + return null; + } else { + double g = MathHelper.clampedMap(absVeinTypeSample, field_36620, field_36626, field_36624, field_36625); + if ((double) random.nextFloat() < g && veinGap.sample(pos) > ORE_OR_STONE_THRESHOLD) { + return random.nextFloat() < RAW_ORE_BLOCK_CHANCE ? veinType.rawOreBlock : veinType.ore; + } else { + return veinType.stone; + } + } + } + } else { + return null; + } + }; + } + + protected enum VeinType { + IRON(SpectrumBlocks.BLACKSLAG_IRON_ORE.getDefaultState(), Blocks.RAW_IRON_BLOCK.getDefaultState(), Blocks.TUFF.getDefaultState(), -400, -96), + GOLD(SpectrumBlocks.BLACKSLAG_GOLD_ORE.getDefaultState(), Blocks.RAW_GOLD_BLOCK.getDefaultState(), Blocks.DIORITE.getDefaultState(), -384, -128), + DIAMOND(SpectrumBlocks.BLACKSLAG_DIAMOND_ORE.getDefaultState(), Blocks.COAL_BLOCK.getDefaultState(), Blocks.TUFF.getDefaultState(), -400, -256), + REDSTONE(SpectrumBlocks.BLACKSLAG_REDSTONE_ORE.getDefaultState(), Blocks.REDSTONE_BLOCK.getDefaultState(), Blocks.GRANITE.getDefaultState(), -256, -96), + LAPIS(SpectrumBlocks.BLACKSLAG_LAPIS_ORE.getDefaultState(), Blocks.LAPIS_BLOCK.getDefaultState(), Blocks.TUFF.getDefaultState(), -384, -128), + EMERALD(SpectrumBlocks.BLACKSLAG_EMERALD_ORE.getDefaultState(), Blocks.DEEPSLATE_EMERALD_ORE.getDefaultState(), Blocks.DIORITE.getDefaultState(), -400, -128); + + final BlockState ore; + final BlockState rawOreBlock; + final BlockState stone; + final int minY; + final int maxY; + + VeinType(BlockState ore, BlockState rawOreBlock, BlockState stone, int minY, int maxY) { + this.ore = ore; + this.rawOreBlock = rawOreBlock; + this.stone = stone; + this.minY = minY; + this.maxY = maxY; + } + + public static VeinType getVeinTypeForSample(double veinTypeSample) { + return veinTypeSample > 0.3 ? VeinType.REDSTONE : + veinTypeSample > 0.15 ? VeinType.EMERALD : + veinTypeSample > 0.0D ? DDOreVeinSampler.VeinType.GOLD : + veinTypeSample < -0.45 ? DDOreVeinSampler.VeinType.DIAMOND : + veinTypeSample < -0.3 ? DDOreVeinSampler.VeinType.LAPIS : + DDOreVeinSampler.VeinType.IRON; + } + } - private DDOreVeinSampler() { - } - - public static ChunkNoiseSampler.BlockStateSampler create(DensityFunction veinToggle, DensityFunction veinRidged, DensityFunction veinGap, RandomDeriver randomDeriver) { - return (pos) -> { - double veinTypeSample = veinToggle.sample(pos); - DDOreVeinSampler.VeinType veinType = VeinType.getVeinTypeForSample(veinTypeSample); - double absVeinTypeSample = Math.abs(veinTypeSample); - - int i = pos.blockY(); - int j = veinType.maxY - i; - int k = i - veinType.minY; - if (k >= 0 && j >= 0) { - int l = Math.min(j, k); - double f = MathHelper.clampedLerpFromProgress(l, 0.0D, field_36621, field_36622, 0.0D); - if (absVeinTypeSample + f < 0.05) { - return null; - } else { - AbstractRandom abstractRandom = randomDeriver.createRandom(pos.blockX(), i, pos.blockZ()); - if (abstractRandom.nextFloat() > VEIN_LIMIT) { - return null; - } else if (veinRidged.sample(pos) >= 0.0D) { - return null; - } else { - double g = MathHelper.clampedLerpFromProgress(absVeinTypeSample, field_36620, field_36626, field_36624, field_36625); - if ((double)abstractRandom.nextFloat() < g && veinGap.sample(pos) > ORE_OR_STONE_THRESHOLD) { - return abstractRandom.nextFloat() < RAW_ORE_BLOCK_CHANCE ? veinType.rawOreBlock : veinType.ore; - } else { - return veinType.stone; - } - } - } - } else { - return null; - } - }; - } - - protected enum VeinType { - IRON(SpectrumBlocks.BLACKSLAG_IRON_ORE.getDefaultState(), Blocks.RAW_IRON_BLOCK.getDefaultState(), Blocks.TUFF.getDefaultState(), -400, -96), - GOLD(SpectrumBlocks.BLACKSLAG_GOLD_ORE.getDefaultState(), Blocks.RAW_GOLD_BLOCK.getDefaultState(), Blocks.DIORITE.getDefaultState(), -384, -128), - DIAMOND(SpectrumBlocks.BLACKSLAG_DIAMOND_ORE.getDefaultState(), Blocks.COAL_BLOCK.getDefaultState(), Blocks.TUFF.getDefaultState(), -400, -256), - REDSTONE(SpectrumBlocks.BLACKSLAG_REDSTONE_ORE.getDefaultState(), Blocks.REDSTONE_BLOCK.getDefaultState(), Blocks.GRANITE.getDefaultState(), -256, -96), - LAPIS(SpectrumBlocks.BLACKSLAG_LAPIS_ORE.getDefaultState(), Blocks.LAPIS_BLOCK.getDefaultState(), Blocks.TUFF.getDefaultState(), -384, -128), - EMERALD(SpectrumBlocks.BLACKSLAG_EMERALD_ORE.getDefaultState(), Blocks.DEEPSLATE_EMERALD_ORE.getDefaultState(), Blocks.DIORITE.getDefaultState(), -400, -128); - - final BlockState ore; - final BlockState rawOreBlock; - final BlockState stone; - final int minY; - final int maxY; - - VeinType(BlockState ore, BlockState rawOreBlock, BlockState stone, int minY, int maxY) { - this.ore = ore; - this.rawOreBlock = rawOreBlock; - this.stone = stone; - this.minY = minY; - this.maxY = maxY; - } - - public static VeinType getVeinTypeForSample(double veinTypeSample) { - return veinTypeSample > 0.3 ? VeinType.REDSTONE : - veinTypeSample > 0.15 ? VeinType.EMERALD : - veinTypeSample > 0.0D ? DDOreVeinSampler.VeinType.GOLD : - veinTypeSample < -0.45 ? DDOreVeinSampler.VeinType.DIAMOND : - veinTypeSample < -0.3 ? DDOreVeinSampler.VeinType.LAPIS : - DDOreVeinSampler.VeinType.IRON; - } - - } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DDPlacedFeatures.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DDPlacedFeatures.java new file mode 100644 index 0000000000..5022abacc5 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DDPlacedFeatures.java @@ -0,0 +1,25 @@ +package de.dafuqs.spectrum.deeper_down; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.helpers.*; +import net.minecraft.util.registry.*; + +public class DDPlacedFeatures extends WorldgenHelper { + + public static void register() { + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("chestnut_noxfungus"), DDConfiguredFeatures.CHESTNUT_NOXFUNGUS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("ebony_noxfungus"), DDConfiguredFeatures.EBONY_NOXFUNGUS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("ivory_noxfungus"), DDConfiguredFeatures.IVORY_NOXFUNGUS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("slate_noxfungus"), DDConfiguredFeatures.SLATE_NOXFUNGUS); + + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("green_dragonjags"), DDConfiguredFeatures.GREEN_DRAGONJAGS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("red_dragonjags"), DDConfiguredFeatures.RED_DRAGONJAGS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("purple_dragonjags"), DDConfiguredFeatures.PURPLE_DRAGONJAGS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("pink_dragonjags"), DDConfiguredFeatures.PINK_DRAGONJAGS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("black_dragonjags"), DDConfiguredFeatures.BLACK_DRAGONJAGS); + + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("bristle_sprouts"), DDConfiguredFeatures.BRISTLE_SPROUTS); + registerConfiguredFeature(BuiltinRegistries.CONFIGURED_FEATURE, SpectrumCommon.locate("snapping_ivy_patch"), DDConfiguredFeatures.SNAPPING_IVY_PATCH); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DeeperDownDimensionEffects.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DeeperDownDimensionEffects.java new file mode 100644 index 0000000000..00cf1d63b6 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DeeperDownDimensionEffects.java @@ -0,0 +1,29 @@ +package de.dafuqs.spectrum.deeper_down; + +import net.fabricmc.api.*; +import net.minecraft.client.render.*; +import net.minecraft.util.math.*; +import org.jetbrains.annotations.*; + +@Environment(EnvType.CLIENT) +public class DeeperDownDimensionEffects extends DimensionEffects { + + public DeeperDownDimensionEffects() { + super(Float.NaN, false, DimensionEffects.SkyType.NONE, false, true); + } + + @Nullable + @Override + public float[] getFogColorOverride(float skyAngle, float tickDelta) { + return null; + } + + public Vec3d adjustFogColor(Vec3d color, float sunHeight) { + return color; + } + + public boolean useThickFog(int camX, int camY) { + return true; + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/deeper_down/DragonFossilPlacementModifier.java b/src/main/java/de/dafuqs/spectrum/deeper_down/DragonFossilPlacementModifier.java new file mode 100644 index 0000000000..e7c7e558af --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/deeper_down/DragonFossilPlacementModifier.java @@ -0,0 +1,51 @@ +package de.dafuqs.spectrum.deeper_down; + +import java.util.stream.Stream; + +import com.mojang.serialization.Codec; + +import de.dafuqs.spectrum.registries.SpectrumBlocks; +import de.dafuqs.spectrum.registries.SpectrumFluids; +import de.dafuqs.spectrum.registries.SpectrumPlacementModifiers; +import net.minecraft.block.BlockState; +import net.minecraft.fluid.FluidState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3i; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.gen.feature.FeaturePlacementContext; +import net.minecraft.world.gen.placementmodifier.PlacementModifier; +import net.minecraft.world.gen.placementmodifier.PlacementModifierType; + +public class DragonFossilPlacementModifier extends PlacementModifier { + private static final DragonFossilPlacementModifier INSTANCE = new DragonFossilPlacementModifier(); + public static final Codec MODIFIER_CODEC = Codec.unit(() -> INSTANCE); + + @Override + public Stream getPositions(FeaturePlacementContext context, Random random, BlockPos pos) { + BlockPos.Mutable mutable = pos.mutableCopy(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + + while (!structureWorldAccess.isOutOfHeightLimit(mutable)) { + BlockState state = context.getBlockState(mutable); + FluidState fstate = state.getFluidState(); + + if (state.isOf(SpectrumBlocks.ROTTEN_GROUND) || fstate.isOf(SpectrumFluids.DRAGONROT) || fstate.isOf(SpectrumFluids.FLOWING_DRAGONROT)) { + // The Fossil feature places at Y - 15 - rand[0..10], so we add 15 to make up for that. + // We should probably make a custom Feature for that, but it might not be worth it. + mutable.move(new Vec3i(0, 15, 0)); + return Stream.of(mutable); + } + + mutable.move(Direction.UP); + } + + return Stream.of(new BlockPos[0]); + } + + @Override + public PlacementModifierType getType() { + return SpectrumPlacementModifiers.DRAGON_FOSSIL; + } +} diff --git a/src/main/java/de/dafuqs/spectrum/enchantments/CloversFavorEnchantment.java b/src/main/java/de/dafuqs/spectrum/enchantments/CloversFavorEnchantment.java index 370dfca2d8..fae8c971a2 100644 --- a/src/main/java/de/dafuqs/spectrum/enchantments/CloversFavorEnchantment.java +++ b/src/main/java/de/dafuqs/spectrum/enchantments/CloversFavorEnchantment.java @@ -17,7 +17,7 @@ public CloversFavorEnchantment(Rarity weight, Identifier unlockAdvancementIdenti } public static float rollChance(float baseChance, Entity entity) { - if(entity instanceof LivingEntity livingEntity) { + if (entity instanceof LivingEntity livingEntity) { int rareLootLevel = SpectrumEnchantmentHelper.getUsableLevel(SpectrumEnchantments.CLOVERS_FAVOR, livingEntity.getMainHandStack(), entity); if (rareLootLevel > 0) { return baseChance * (float) rareLootLevel * rareLootLevel; diff --git a/src/main/java/de/dafuqs/spectrum/enchantments/DisarmingEnchantment.java b/src/main/java/de/dafuqs/spectrum/enchantments/DisarmingEnchantment.java index 63510eba52..db32c2e4f4 100644 --- a/src/main/java/de/dafuqs/spectrum/enchantments/DisarmingEnchantment.java +++ b/src/main/java/de/dafuqs/spectrum/enchantments/DisarmingEnchantment.java @@ -5,6 +5,7 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentTarget; import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.ItemEntity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.entity.player.PlayerEntity; @@ -30,7 +31,11 @@ public static void disarmPlayer(PlayerEntity player) { EquipmentSlot slot = EquipmentSlot.values()[randomSlot]; ItemStack equippedStack = player.getEquippedStack(slot); if (!equippedStack.isEmpty()) { - player.dropStack(equippedStack); + ItemEntity itemEntity = new ItemEntity(player.world, player.getX(), player.getY(), player.getZ(), equippedStack); + itemEntity.setVelocity(player.world.random.nextTriangular(0.0, 0.11485000171139836), player.world.random.nextTriangular(0.2, 0.11485000171139836), player.world.random.nextTriangular(0.0, 0.11485000171139836)); + itemEntity.setPickupDelay(120); + player.world.spawnEntity(itemEntity); + player.equipStack(slot, ItemStack.EMPTY); player.world.playSound(null, player.getBlockPos(), SoundEvents.ITEM_BUNDLE_DROP_CONTENTS, SoundCategory.NEUTRAL, 1.0F, 1.0F); break; diff --git a/src/main/java/de/dafuqs/spectrum/enchantments/SpectrumEnchantment.java b/src/main/java/de/dafuqs/spectrum/enchantments/SpectrumEnchantment.java index fb74aa30ce..1e3807f321 100644 --- a/src/main/java/de/dafuqs/spectrum/enchantments/SpectrumEnchantment.java +++ b/src/main/java/de/dafuqs/spectrum/enchantments/SpectrumEnchantment.java @@ -11,7 +11,6 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; @@ -42,7 +41,7 @@ public boolean isAvailableForRandomSelection() { @Environment(EnvType.CLIENT) @Override public Text getName(int level) { - MutableText mutableText = new TranslatableText(this.getTranslationKey()); + MutableText mutableText = Text.translatable(this.getTranslationKey()); if (this.isCursed()) { mutableText.formatted(Formatting.RED); } else { @@ -53,7 +52,7 @@ public Text getName(int level) { } if (level != 1 || this.getMaxLevel() != 1) { - mutableText.append(" ").append(new TranslatableText("enchantment.level." + level)); + mutableText.append(" ").append(Text.translatable("enchantment.level." + level)); } return mutableText; diff --git a/src/main/java/de/dafuqs/spectrum/enchantments/TightGripEnchantment.java b/src/main/java/de/dafuqs/spectrum/enchantments/TightGripEnchantment.java index 3df554ad38..7f5f56fab9 100644 --- a/src/main/java/de/dafuqs/spectrum/enchantments/TightGripEnchantment.java +++ b/src/main/java/de/dafuqs/spectrum/enchantments/TightGripEnchantment.java @@ -1,13 +1,12 @@ package de.dafuqs.spectrum.enchantments; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentTarget; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.util.Identifier; +import de.dafuqs.spectrum.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.util.*; public class TightGripEnchantment extends SpectrumEnchantment { - + public TightGripEnchantment(Rarity weight, Identifier unlockAdvancementIdentifier, EquipmentSlot... slotTypes) { super(weight, EnchantmentTarget.WEAPON, slotTypes, unlockAdvancementIdentifier); } diff --git a/src/main/java/de/dafuqs/spectrum/enchantments/TreasureHunterEnchantment.java b/src/main/java/de/dafuqs/spectrum/enchantments/TreasureHunterEnchantment.java index a81fb409d6..e13f193d5b 100644 --- a/src/main/java/de/dafuqs/spectrum/enchantments/TreasureHunterEnchantment.java +++ b/src/main/java/de/dafuqs/spectrum/enchantments/TreasureHunterEnchantment.java @@ -10,6 +10,7 @@ import net.minecraft.entity.ItemEntity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; +import net.minecraft.item.AxeItem; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; @@ -64,4 +65,9 @@ public boolean canAccept(Enchantment other) { return super.canAccept(other) && other != Enchantments.LOOTING; } + @Override + public boolean isAcceptableItem(ItemStack stack) { + return super.isAcceptableItem(stack) || stack.getItem() instanceof AxeItem; + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/energy/InkCost.java b/src/main/java/de/dafuqs/spectrum/energy/InkCost.java new file mode 100644 index 0000000000..5e62fa90ba --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/energy/InkCost.java @@ -0,0 +1,36 @@ +package de.dafuqs.spectrum.energy; + +import de.dafuqs.spectrum.energy.color.InkColor; +import net.minecraft.nbt.NbtCompound; + +public class InkCost { + + private final InkColor color; + private final long cost; + + public InkCost(InkColor color, long cost) { + this.color = color; + this.cost = cost; + } + + public InkColor getColor() { + return color; + } + + public long getCost() { + return cost; + } + + public NbtCompound writeNbt(NbtCompound nbt) { + nbt.putString("InkColor", color.toString()); + nbt.putLong("InkCost", cost); + return nbt; + } + + public static InkCost fromNbt(NbtCompound nbt) { + InkColor inkColor = InkColor.of(nbt.getString("InkColor")); + long inkCost = nbt.getLong("InkCost"); + return new InkCost(inkColor, inkCost); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/energy/InkPowered.java b/src/main/java/de/dafuqs/spectrum/energy/InkPowered.java index d8a04bfbfd..730f15919b 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/InkPowered.java +++ b/src/main/java/de/dafuqs/spectrum/energy/InkPowered.java @@ -1,26 +1,19 @@ package de.dafuqs.spectrum.energy; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.color.InkColor; -import dev.emi.trinkets.api.SlotReference; -import dev.emi.trinkets.api.TrinketComponent; -import dev.emi.trinkets.api.TrinketsApi; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.energy.color.*; +import dev.emi.trinkets.api.*; +import net.fabricmc.api.*; +import net.minecraft.client.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.Optional; +import java.util.*; public interface InkPowered { @@ -50,28 +43,27 @@ static boolean canUse(PlayerEntity playerEntity) { **/ @Environment(EnvType.CLIENT) default void addInkPoweredTooltip(List tooltip) { - if(canUseClient()) { - if (getUsedColors().size() > 1) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.prefix").formatted(Formatting.GRAY)); - for (InkColor color : getUsedColors()) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet." + color.toString())); - - } - } else { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered." + getUsedColors().get(0).toString()).formatted(Formatting.GRAY)); - } - } + if (canUseClient()) { + if (getUsedColors().size() > 1) { + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.prefix").formatted(Formatting.GRAY)); + for (InkColor color : getUsedColors()) { + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet." + color.toString())); + } + } else { + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered." + getUsedColors().get(0).toString()).formatted(Formatting.GRAY)); + } + } } private static long tryDrainEnergy(@NotNull ItemStack stack, InkColor color, long amount, boolean viaPlayer) { if (stack.getItem() instanceof InkStorageItem inkStorageItem) { - if(!inkStorageItem.getDrainability().canDrain(viaPlayer)) { + if (!inkStorageItem.getDrainability().canDrain(viaPlayer)) { return 0; } InkStorage inkStorage = inkStorageItem.getEnergyStorage(stack); long drained = inkStorage.drainEnergy(color, amount); - if(drained > 0) { + if (drained > 0) { inkStorageItem.setEnergyStorage(stack, inkStorage); } return drained; @@ -107,8 +99,12 @@ static boolean tryDrainEnergy(@NotNull Inventory inventory, InkColor color, long } return false; } - - /** + + static boolean tryDrainEnergy(@NotNull PlayerEntity player, @NotNull InkCost inkCost) { + return tryDrainEnergy(player, inkCost.getColor(), inkCost.getCost()); + } + + /** * Searches the players Trinkets for energy storage first and inventory second * for PigmentEnergyStorageItem and tries to drain the color energy. * If enough could be drained returns true, else false. @@ -120,26 +116,26 @@ static boolean tryDrainEnergy(@NotNull Inventory inventory, InkColor color, long * - Trinket Slots * - Inventory **/ - static boolean tryDrainEnergy(@NotNull PlayerEntity player, InkColor color, long amount) { - if(player.isCreative()) { + static boolean tryDrainEnergy(@NotNull PlayerEntity player, @NotNull InkColor color, long amount) { + if (player.isCreative()) { return true; } - if(!canUse(player)) { + if (!canUse(player)) { return false; } // hands (main hand, too, if someone uses the staff from the offhand) - for (ItemStack itemStack : player.getItemsHand()) { + for (ItemStack itemStack : player.getHandItems()) { amount -= tryDrainEnergy(itemStack, color, amount, true); if (amount <= 0) { return true; } } - // trinket slot + // trinket slots Optional optionalTrinketComponent = TrinketsApi.getTrinketComponent(player); if (optionalTrinketComponent.isPresent()) { - List> trinketInkStorages = optionalTrinketComponent.get().getEquipped(itemStack -> itemStack.getItem() instanceof InkStorage); + List> trinketInkStorages = optionalTrinketComponent.get().getEquipped(itemStack -> itemStack.getItem() instanceof InkStorageItem); for (Pair trinketEnergyStorageStack : trinketInkStorages) { amount -= tryDrainEnergy(trinketEnergyStorageStack.getRight(), color, amount, true); if (amount <= 0) { @@ -160,23 +156,23 @@ static boolean tryDrainEnergy(@NotNull PlayerEntity player, InkColor color, long } static long getAvailableInk(@NotNull PlayerEntity player, InkColor color) { - if(player.isCreative()) { + if (player.isCreative()) { return Long.MAX_VALUE; } - if(!canUse(player)) { + if (!canUse(player)) { return 0; } long available = 0; // offhand - for (ItemStack itemStack : player.getItemsHand()) { + for (ItemStack itemStack : player.getHandItems()) { available += tryGetEnergy(itemStack, color); } // trinket slot Optional optionalTrinketComponent = TrinketsApi.getTrinketComponent(player); if (optionalTrinketComponent.isPresent()) { - List> trinketInkStorages = optionalTrinketComponent.get().getEquipped(itemStack -> itemStack.getItem() instanceof InkStorage); + List> trinketInkStorages = optionalTrinketComponent.get().getEquipped(itemStack -> itemStack.getItem() instanceof InkStorageItem); for (Pair trinketEnergyStorageStack : trinketInkStorages) { available += tryGetEnergy(trinketEnergyStorageStack.getRight(), color); } @@ -190,14 +186,14 @@ static long getAvailableInk(@NotNull PlayerEntity player, InkColor color) { } static boolean hasAvailableInk(PlayerEntity player, InkColor color, long amount) { - if(!canUse(player)) { + if (!canUse(player)) { return false; } // offhand for (ItemStack itemStack : player.getInventory().offHand) { amount -= tryGetEnergy(itemStack, color); - if(amount <= 0) { + if (amount <= 0) { return true; } } @@ -205,10 +201,10 @@ static boolean hasAvailableInk(PlayerEntity player, InkColor color, long amount) // trinket slot Optional optionalTrinketComponent = TrinketsApi.getTrinketComponent(player); if (optionalTrinketComponent.isPresent()) { - List> trinketInkStorages = optionalTrinketComponent.get().getEquipped(itemStack -> itemStack.getItem() instanceof InkStorage); + List> trinketInkStorages = optionalTrinketComponent.get().getEquipped(itemStack -> itemStack.getItem() instanceof InkStorageItem); for (Pair trinketEnergyStorageStack : trinketInkStorages) { amount -= tryGetEnergy(trinketEnergyStorageStack.getRight(), color); - if(amount <= 0) { + if (amount <= 0) { return true; } } @@ -217,7 +213,7 @@ static boolean hasAvailableInk(PlayerEntity player, InkColor color, long amount) // inventory for (ItemStack itemStack : player.getInventory().main) { amount -= tryGetEnergy(itemStack, color); - if(amount <= 0) { + if (amount <= 0) { return true; } } diff --git a/src/main/java/de/dafuqs/spectrum/energy/InkPoweredStatusEffectInstance.java b/src/main/java/de/dafuqs/spectrum/energy/InkPoweredStatusEffectInstance.java new file mode 100644 index 0000000000..9be7bf950f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/energy/InkPoweredStatusEffectInstance.java @@ -0,0 +1,134 @@ +package de.dafuqs.spectrum.energy; + +import com.google.common.collect.Lists; +import de.dafuqs.spectrum.helpers.Support; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffectUtil; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtList; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import net.minecraft.util.Pair; +import org.jetbrains.annotations.Nullable; + +import java.util.*; + +public class InkPoweredStatusEffectInstance { + + private final StatusEffectInstance statusEffectInstance; + private final InkCost cost; + + public InkPoweredStatusEffectInstance(StatusEffectInstance statusEffectInstance, InkCost cost) { + this.statusEffectInstance = statusEffectInstance; + this.cost = cost; + } + + public StatusEffectInstance getStatusEffectInstance() { + return statusEffectInstance; + } + + public InkCost getInkCost() { + return cost; + } + + public NbtCompound toNbt() { + NbtCompound nbt = new NbtCompound(); + this.statusEffectInstance.writeNbt(nbt); + this.cost.writeNbt(nbt); + return nbt; + } + + public static InkPoweredStatusEffectInstance fromNbt(NbtCompound nbt) { + StatusEffectInstance statusEffectInstance = StatusEffectInstance.fromNbt(nbt); + InkCost cost = InkCost.fromNbt(nbt); + return new InkPoweredStatusEffectInstance(statusEffectInstance, cost); + } + + public static List getEffects(ItemStack stack) { + return getEffects(stack.getNbt()); + } + + public static List getEffects(@Nullable NbtCompound nbt) { + List list = new ArrayList<>(); + if (nbt != null && nbt.contains("InkPoweredStatusEffects", NbtElement.LIST_TYPE)) { + NbtList nbtList = nbt.getList("InkPoweredStatusEffects", NbtElement.COMPOUND_TYPE); + + for (int i = 0; i < nbtList.size(); ++i) { + NbtCompound nbtCompound = nbtList.getCompound(i); + InkPoweredStatusEffectInstance instance = InkPoweredStatusEffectInstance.fromNbt(nbtCompound); + list.add(instance); + } + } + return list; + } + + public static void setEffects(ItemStack stack, Collection effects) { + if (!effects.isEmpty()) { + NbtCompound nbtCompound = stack.getOrCreateNbt(); + NbtList nbtList = nbtCompound.getList("InkPoweredStatusEffects", NbtElement.LIST_TYPE); + + for (InkPoweredStatusEffectInstance effect : effects) { + nbtList.add(effect.toNbt()); + } + + nbtCompound.put("InkPoweredStatusEffects", nbtList); + } + } + + public static void buildTooltip(List tooltip, List effects, MutableText attributeModifierText, boolean showDuration) { + if (effects.size() > 0) { + List> attributeModifiers = Lists.newArrayList(); + for (InkPoweredStatusEffectInstance entry : effects) { + StatusEffectInstance effect = entry.getStatusEffectInstance(); + InkCost cost = entry.getInkCost(); + + MutableText mutableText = Text.translatable(effect.getTranslationKey()); + if (effect.getAmplifier() > 0) { + mutableText = Text.translatable("potion.withAmplifier", mutableText, Text.translatable("potion.potency." + effect.getAmplifier())); + } + if (showDuration && effect.getDuration() > 20) { + mutableText = Text.translatable("potion.withDuration", mutableText, StatusEffectUtil.durationToString(effect, 1.0F)); + } + mutableText.formatted(effect.getEffectType().getCategory().getFormatting()); + mutableText.append(Text.translatable("spectrum.tooltip.ink_cost." + cost.getColor().toString().toLowerCase(Locale.ROOT), Support.getShortenedNumberString(cost.getCost())).formatted(Formatting.GRAY)); + tooltip.add(mutableText); + + Map map = effect.getEffectType().getAttributeModifiers(); + for (Map.Entry entityAttributeEntityAttributeModifierEntry : map.entrySet()) { + EntityAttributeModifier entityAttributeModifier = entityAttributeEntityAttributeModifierEntry.getValue(); + EntityAttributeModifier entityAttributeModifier2 = new EntityAttributeModifier(entityAttributeModifier.getName(), effect.getEffectType().adjustModifierAmount(effect.getAmplifier(), entityAttributeModifier), entityAttributeModifier.getOperation()); + attributeModifiers.add(new Pair<>(entityAttributeEntityAttributeModifierEntry.getKey(), entityAttributeModifier2)); + } + } + + if (!attributeModifiers.isEmpty()) { + tooltip.add(Text.empty()); + tooltip.add(attributeModifierText.formatted(Formatting.DARK_PURPLE)); + + for (Pair entityAttributeEntityAttributeModifierPair : attributeModifiers) { + EntityAttributeModifier mutableText = entityAttributeEntityAttributeModifierPair.getRight(); + double statusEffect = mutableText.getValue(); + double d; + if (mutableText.getOperation() != EntityAttributeModifier.Operation.MULTIPLY_BASE && mutableText.getOperation() != EntityAttributeModifier.Operation.MULTIPLY_TOTAL) { + d = mutableText.getValue(); + } else { + d = mutableText.getValue() * 100.0D; + } + + if (statusEffect > 0.0D) { + tooltip.add((Text.translatable("attribute.modifier.plus." + mutableText.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(d), Text.translatable((entityAttributeEntityAttributeModifierPair.getLeft()).getTranslationKey()))).formatted(Formatting.BLUE)); + } else if (statusEffect < 0.0D) { + d *= -1.0D; + tooltip.add((Text.translatable("attribute.modifier.take." + mutableText.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(d), Text.translatable((entityAttributeEntityAttributeModifierPair.getLeft()).getTranslationKey()))).formatted(Formatting.RED)); + } + } + } + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/energy/InkStorage.java b/src/main/java/de/dafuqs/spectrum/energy/InkStorage.java index 99372ec973..130409e9af 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/InkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/energy/InkStorage.java @@ -24,7 +24,7 @@ public interface InkStorage { */ static long transferInk(@NotNull InkStorage source, @NotNull InkStorage destination) { long transferred = 0; - for(InkColor inkColor : source.getEnergy().keySet()) { + for (InkColor inkColor : source.getEnergy().keySet()) { transferred += transferInk(source, destination, inkColor); } return transferred; @@ -50,7 +50,7 @@ static long transferInk(@NotNull InkStorage source, @NotNull InkStorage destinat long destinationRoom = destination.getRoom(color); if (destinationRoom > 0) { long destinationAmount = destination.getEnergy(color); - if(sourceAmount > destinationAmount + 1) { + if (sourceAmount > destinationAmount + 1) { long transferAmount = Math.max(1, (sourceAmount - destinationAmount) / 32); // the constant here is simulating pressure flow transferAmount = Math.min(transferAmount, Math.min(sourceAmount, destinationRoom)); destination.addEnergy(color, transferAmount); @@ -151,5 +151,5 @@ static long transferInk(@NotNull InkStorage source, @NotNull InkStorage destinat void addTooltip(List tooltip, boolean includeHeader); long getRoom(InkColor color); - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/energy/InkStorageBlockEntity.java b/src/main/java/de/dafuqs/spectrum/energy/InkStorageBlockEntity.java index 0bd1d0c5ce..638cbe52aa 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/InkStorageBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/energy/InkStorageBlockEntity.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.energy; -import de.dafuqs.spectrum.energy.color.InkColor; +import de.dafuqs.spectrum.blocks.upgrade.*; /** * Defines that an object holds a PigmentEnergyStorage @@ -9,23 +9,23 @@ * @param */ public interface InkStorageBlockEntity { - + PStorage getEnergyStorage(); - - default float drainInkForMod(float mod, InkColor inkColor) { - return drainInkForMod(mod, inkColor, 1); - } - - default float drainInkForMod(float mod, InkColor inkColor, float efficiencyMod) { - if(mod > 1) { - int cost = (int) ((mod * mod - 1) / Math.pow(2, efficiencyMod)); - if (getEnergyStorage().drainEnergy(inkColor, cost) == cost) { - return mod; - } - setInkDirty(); + + default float drainInkForMod(Upgradeable upgradeable, Upgradeable.UpgradeType upgradeType, boolean useEfficiency) { + Upgradeable.UpgradeHolder upgradeHolder = upgradeable.getUpgradeHolder(); + float upgradeTypeMod = upgradeHolder.getRawValue(upgradeType); + if (upgradeTypeMod == 0) { return 1; } - + + long inkToDrain = useEfficiency ? upgradeHolder.getEffectiveCostUsingEfficiency(upgradeType) : upgradeHolder.getEffectiveCost(upgradeType); + if (getEnergyStorage().drainEnergy(upgradeType.getInkColor(), inkToDrain) == inkToDrain) { + setInkDirty(); + return upgradeHolder.getEffectiveValue(upgradeType); + } + + setInkDirty(); return 1; } diff --git a/src/main/java/de/dafuqs/spectrum/energy/InkStorageItem.java b/src/main/java/de/dafuqs/spectrum/energy/InkStorageItem.java index df68f55ada..ec8b903b33 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/InkStorageItem.java +++ b/src/main/java/de/dafuqs/spectrum/energy/InkStorageItem.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.energy; -import net.minecraft.item.ItemStack; +import net.minecraft.item.*; /** * Defines that an object holds a PigmentEnergyStorage @@ -11,12 +11,12 @@ public interface InkStorageItem { enum Drainability { - ALWAYS, - MACHINE_ONLY, - PLAYER_ONLY, - NEVER; - - boolean canDrain(boolean isPlayer) { + ALWAYS, // ink storage should be able to be used via both machines and players + MACHINE_ONLY, // ink storage should only be drained via machines (block entities) + PLAYER_ONLY, // ink storage should only be drained via a player (ink storage trinkets) + NEVER; // ink storage should never be drained, only filled (upgradeable trinkets) + + public boolean canDrain(boolean isPlayer) { switch (this) { case NEVER -> { return false; diff --git a/src/main/java/de/dafuqs/spectrum/energy/color/ElementalColor.java b/src/main/java/de/dafuqs/spectrum/energy/color/ElementalColor.java index d627fa00fe..e3aa5694fc 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/color/ElementalColor.java +++ b/src/main/java/de/dafuqs/spectrum/energy/color/ElementalColor.java @@ -10,7 +10,7 @@ public class ElementalColor extends InkColor { protected Map mixedColors = new HashMap<>(); // colors that can be mixed from this - + public ElementalColor(DyeColor dyeColor, Vec3f color, Identifier requiredAdvancement) { super(dyeColor, color, requiredAdvancement); ELEMENTAL_COLORS.add(this); diff --git a/src/main/java/de/dafuqs/spectrum/energy/color/InkColor.java b/src/main/java/de/dafuqs/spectrum/energy/color/InkColor.java index ed8d31cdf5..d509299233 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/color/InkColor.java +++ b/src/main/java/de/dafuqs/spectrum/energy/color/InkColor.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.energy.color; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.DyeColor; import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec3f; @@ -15,15 +15,16 @@ public abstract class InkColor { protected final DyeColor dyeColor; protected final Vec3f color; - - protected final Identifier requiredAdvancement; + + protected final Identifier requiredAdvancement; + protected InkColor(DyeColor dyeColor, Vec3f color, Identifier requiredAdvancement) { this.dyeColor = dyeColor; this.color = color; - this.requiredAdvancement = requiredAdvancement; - - ALL_COLORS.add(this); - + this.requiredAdvancement = requiredAdvancement; + + ALL_COLORS.add(this); + DYE_TO_COLOR.put(dyeColor, this); } @@ -66,18 +67,18 @@ public int hashCode() { return dyeColor.getId(); } - public TranslatableText getName() { - return new TranslatableText("spectrum.ink.color." + this); + public Text getName() { + return Text.translatable("spectrum.ink.color." + this); } public Vec3f getColor() { return this.color; } - - - public Identifier getRequiredAdvancement() { - return requiredAdvancement; - } + + + public Identifier getRequiredAdvancement() { + return requiredAdvancement; + } } diff --git a/src/main/java/de/dafuqs/spectrum/energy/color/InkColors.java b/src/main/java/de/dafuqs/spectrum/energy/color/InkColors.java index 34fb06ed6b..6d9b62b4a0 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/color/InkColors.java +++ b/src/main/java/de/dafuqs/spectrum/energy/color/InkColors.java @@ -8,18 +8,18 @@ import java.util.HashMap; public class InkColors { - - public static Identifier BASE_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/spectrum_midgame"); - public static Identifier BLACK_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/spectrum_midgame"); - public static Identifier WHITE_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/collect_moonstone_shard"); - + + public static Identifier BASE_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/spectrum_midgame"); + public static Identifier BLACK_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/spectrum_midgame"); + public static Identifier WHITE_ADVANCEMENT_ID = SpectrumCommon.locate("lategame/collect_moonstone_shard"); + public static ElementalColor CYAN = new ElementalColor(DyeColor.CYAN, new Vec3f(0.36f, 1f, 0.93f), BASE_ADVANCEMENT_ID); public static ElementalColor MAGENTA = new ElementalColor(DyeColor.MAGENTA, new Vec3f(0.84f, 0.25f, 0.94f), BASE_ADVANCEMENT_ID); public static ElementalColor YELLOW = new ElementalColor(DyeColor.YELLOW, new Vec3f(0.97f, 0.75f, 0.24f), BASE_ADVANCEMENT_ID); public static ElementalColor BLACK = new ElementalColor(DyeColor.BLACK, new Vec3f(0.07f, 0.07f, 0.07f), BLACK_ADVANCEMENT_ID); public static ElementalColor WHITE = new ElementalColor(DyeColor.WHITE, new Vec3f(0.93f, 0.95f, 0.98f), WHITE_ADVANCEMENT_ID); - + public static CompoundColor ORANGE = new CompoundColor(DyeColor.ORANGE, new Vec3f(1f, 0.61f, 0.08f), BASE_ADVANCEMENT_ID, new HashMap<>() {{ put(MAGENTA, 1F / 3F); put(YELLOW, 2F / 3F); diff --git a/src/main/java/de/dafuqs/spectrum/energy/storage/CreativeInkStorage.java b/src/main/java/de/dafuqs/spectrum/energy/storage/CreativeInkStorage.java index aa9588863b..8988866069 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/storage/CreativeInkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/energy/storage/CreativeInkStorage.java @@ -4,9 +4,7 @@ import de.dafuqs.spectrum.energy.color.InkColor; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.List; @@ -15,7 +13,7 @@ public class CreativeInkStorage implements InkStorage { private static Map STORAGE = new HashMap<>() {{ - for(InkColor inkColor : InkColor.all()) { + for (InkColor inkColor : InkColor.all()) { put(inkColor, Long.MAX_VALUE); } }}; @@ -28,7 +26,7 @@ public CreativeInkStorage(long maxEnergy, InkColor color, long amount) { super(); } - public static @Nullable CreativeInkStorage fromNbt(@NotNull NbtCompound compound) { + public static CreativeInkStorage fromNbt(@NotNull NbtCompound compound) { return new CreativeInkStorage(); } @@ -63,7 +61,8 @@ public Map getEnergy() { } @Override - public void setEnergy(Map colors, long total) { } + public void setEnergy(Map colors, long total) { + } @Override public long getMaxPerColor() { @@ -91,15 +90,17 @@ public boolean isFull() { } @Override - public void fillCompletely() { } + public void fillCompletely() { + } @Override - public void clear() { } + public void clear() { + } @Override public void addTooltip(List tooltip, boolean includeHeader) { - if(includeHeader) { - tooltip.add(new TranslatableText("item.spectrum.creative_ink_assortment.tooltip")); + if (includeHeader) { + tooltip.add(Text.translatable("item.spectrum.creative_ink_assortment.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/energy/storage/IndividualCappedInkStorage.java b/src/main/java/de/dafuqs/spectrum/energy/storage/IndividualCappedInkStorage.java index 59abc4648f..16838e3796 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/storage/IndividualCappedInkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/energy/storage/IndividualCappedInkStorage.java @@ -7,7 +7,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,7 +52,7 @@ public IndividualCappedInkStorage(long maxEnergyPerColor, Map co Map colors = new HashMap<>(); for (InkColor color : InkColor.all()) { - if(compound.contains(color.toString())) { + if (compound.contains(color.toString())) { colors.put(color, compound.getLong(color.toString())); } } @@ -157,12 +156,12 @@ public NbtCompound toNbt() { @Environment(EnvType.CLIENT) public void addTooltip(List tooltip, boolean includeHeader) { - if(includeHeader) { - tooltip.add(new TranslatableText("item.spectrum.pigment_palette.tooltip", getShortenedNumberString(maxEnergyPerColor))); + if (includeHeader) { + tooltip.add(Text.translatable("item.spectrum.pigment_palette.tooltip", getShortenedNumberString(maxEnergyPerColor))); } for (Map.Entry color : this.storedEnergy.entrySet()) { if (color.getValue() > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet." + color.getKey().toString().toLowerCase(Locale.ROOT), getShortenedNumberString(color.getValue()))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet." + color.getKey().toString().toLowerCase(Locale.ROOT), getShortenedNumberString(color.getValue()))); } } } diff --git a/src/main/java/de/dafuqs/spectrum/energy/storage/SingleInkStorage.java b/src/main/java/de/dafuqs/spectrum/energy/storage/SingleInkStorage.java index d128d895dd..750eb0cf1e 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/storage/SingleInkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/energy/storage/SingleInkStorage.java @@ -6,7 +6,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -113,9 +112,9 @@ public Map getEnergy() { @Override @Deprecated public void setEnergy(Map colors, long total) { - for(Map.Entry color : colors.entrySet()) { + for (Map.Entry color : colors.entrySet()) { long value = color.getValue(); - if(value > 0) { + if (value > 0) { this.storedColor = color.getKey(); this.storedEnergy = color.getValue(); } @@ -156,11 +155,11 @@ public NbtCompound toNbt() { } public void addTooltip(List tooltip, boolean includeHeader) { - if(includeHeader) { - tooltip.add(new TranslatableText("item.spectrum.ink_flask.tooltip", getShortenedNumberString(this.maxEnergy))); + if (includeHeader) { + tooltip.add(Text.translatable("item.spectrum.ink_flask.tooltip", getShortenedNumberString(this.maxEnergy))); } if (this.storedEnergy > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet." + this.storedColor.toString().toLowerCase(Locale.ROOT), getShortenedNumberString(this.storedEnergy))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet." + this.storedColor.toString().toLowerCase(Locale.ROOT), getShortenedNumberString(this.storedEnergy))); } } diff --git a/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedElementalInkStorage.java b/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedElementalInkStorage.java index 5ce22a0352..d1b9f1c879 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedElementalInkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedElementalInkStorage.java @@ -10,7 +10,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -67,15 +66,16 @@ public boolean accepts(InkColor color) { @Override public long addEnergy(InkColor color, long amount) { if (color instanceof ElementalColor elementalColor) { - long resultingAmount = this.storedEnergy.get(color) + amount; - if (resultingAmount > this.maxEnergyTotal) { + long currentAmount = this.storedEnergy.get(color); + if (amount > this.maxEnergyTotal - this.currentTotal) { + long resultingAmount = currentAmount + amount; long overflow = resultingAmount - this.maxEnergyTotal + this.currentTotal; this.currentTotal = this.currentTotal + (resultingAmount - this.maxEnergyTotal); this.storedEnergy.put(elementalColor, this.maxEnergyTotal); return overflow; } else { this.currentTotal += amount; - this.storedEnergy.put(elementalColor, resultingAmount); + this.storedEnergy.put(elementalColor, currentAmount + amount); return 0; } } @@ -184,7 +184,7 @@ public Map getEnergy() { @Override @Deprecated public void setEnergy(Map colors, long total) { - for(Map.Entry color : colors.entrySet()) { + for (Map.Entry color : colors.entrySet()) { if (color instanceof ElementalColor elementalColor) { this.storedEnergy.put(elementalColor, color.getValue()); } @@ -251,29 +251,29 @@ public long getRoom(InkColor color) { @Environment(EnvType.CLIENT) public void addTooltip(List tooltip, boolean includeHeader) { - if(includeHeader) { - tooltip.add(new TranslatableText("item.spectrum.artists_palette.tooltip", getShortenedNumberString(this.maxEnergyTotal))); - tooltip.add(new TranslatableText("item.spectrum.artists_palette.tooltip.mix_on_demand")); + if (includeHeader) { + tooltip.add(Text.translatable("item.spectrum.artists_palette.tooltip", getShortenedNumberString(this.maxEnergyTotal))); + tooltip.add(Text.translatable("item.spectrum.artists_palette.tooltip.mix_on_demand")); } long cyan = this.storedEnergy.get(InkColors.CYAN); if (cyan > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet.cyan", getShortenedNumberString(cyan))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet.cyan", getShortenedNumberString(cyan))); } long magenta = this.storedEnergy.get(InkColors.MAGENTA); if (magenta > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet.magenta", getShortenedNumberString(magenta))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet.magenta", getShortenedNumberString(magenta))); } long yellow = this.storedEnergy.get(InkColors.YELLOW); if (yellow > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet.yellow", getShortenedNumberString(yellow))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet.yellow", getShortenedNumberString(yellow))); } long black = this.storedEnergy.get(InkColors.BLACK); if (black > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet.black", getShortenedNumberString(black))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet.black", getShortenedNumberString(black))); } long white = this.storedEnergy.get(InkColors.WHITE); if (white > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet.white", getShortenedNumberString(white))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet.white", getShortenedNumberString(white))); } } diff --git a/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedInkStorage.java b/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedInkStorage.java index e24337f081..2be17e7fb7 100644 --- a/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedInkStorage.java +++ b/src/main/java/de/dafuqs/spectrum/energy/storage/TotalCappedInkStorage.java @@ -8,7 +8,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -65,15 +64,16 @@ public boolean accepts(InkColor color) { @Override public long addEnergy(InkColor color, long amount) { - long resultingAmount = this.storedEnergy.get(color) + amount; - if (resultingAmount > this.maxEnergyTotal - this.currentTotal) { + long currentAmount = this.storedEnergy.get(color); + if (amount > this.maxEnergyTotal - this.currentTotal) { + long resultingAmount = currentAmount + amount; long overflow = resultingAmount - this.maxEnergyTotal + this.currentTotal; this.currentTotal = this.currentTotal + (resultingAmount - this.maxEnergyTotal); this.storedEnergy.put(color, this.maxEnergyTotal); return overflow; } else { this.currentTotal += amount; - this.storedEnergy.put(color, resultingAmount); + this.storedEnergy.put(color, currentAmount + amount); return 0; } } @@ -170,12 +170,12 @@ public void clear() { @Environment(EnvType.CLIENT) public void addTooltip(List tooltip, boolean includeHeader) { - if(includeHeader) { - tooltip.add(new TranslatableText("item.spectrum.total_capped_simple_pigment_energy_storage.tooltip", getShortenedNumberString(maxEnergyTotal))); + if (includeHeader) { + tooltip.add(Text.translatable("item.spectrum.total_capped_simple_pigment_energy_storage.tooltip", getShortenedNumberString(maxEnergyTotal))); } for (Map.Entry color : this.storedEnergy.entrySet()) { if (color.getValue() > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet." + color.getKey().toString().toLowerCase(Locale.ROOT), getShortenedNumberString(color.getValue()))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet." + color.getKey().toString().toLowerCase(Locale.ROOT), getShortenedNumberString(color.getValue()))); } } } diff --git a/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityRenderers.java b/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityRenderers.java index 538278ab04..07637db7c6 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityRenderers.java +++ b/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityRenderers.java @@ -1,15 +1,11 @@ package de.dafuqs.spectrum.entity; import de.dafuqs.spectrum.entity.render.*; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; -import net.id.incubus_core.blocklikeentities.api.client.BlockLikeEntityRenderer; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.FlyingItemEntityRenderer; -import net.minecraft.client.render.entity.ItemEntityRenderer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.client.rendering.v1.*; +import net.id.incubus_core.blocklikeentities.api.client.*; +import net.minecraft.client.render.entity.*; +import net.minecraft.entity.*; @Environment(EnvType.CLIENT) public class SpectrumEntityRenderers { @@ -17,15 +13,18 @@ public class SpectrumEntityRenderers { public static void registerClient() { register(SpectrumEntityTypes.FLOAT_BLOCK, BlockLikeEntityRenderer::new); register(SpectrumEntityTypes.SHOOTING_STAR, ShootingStarEntityRenderer::new); - register(SpectrumEntityTypes.INVISIBLE_ITEM_FRAME, InvisibleItemFrameEntityRenderer::new); - register(SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME, InvisibleItemFrameEntityRenderer::new); + register(SpectrumEntityTypes.PHANTOM_FRAME, PhantomFrameEntityRenderer::new); + register(SpectrumEntityTypes.GLOW_PHANTOM_FRAME, PhantomFrameEntityRenderer::new); register(SpectrumEntityTypes.BLOCK_FLOODER_PROJECTILE, FlyingItemEntityRenderer::new); - register(SpectrumEntityTypes.INK_PROJECTILE, InkProjectileEntityRenderer::new); + register(SpectrumEntityTypes.INK_PROJECTILE, MagicProjectileEntityRenderer::new); register(SpectrumEntityTypes.LAGOON_FISHING_BOBBER, LagoonFishingBobberEntityRenderer::new); register(SpectrumEntityTypes.MOLTEN_FISHING_BOBBER, MoltenFishingBobberEntityRenderer::new); register(SpectrumEntityTypes.BEDROCK_FISHING_BOBBER, BedrockFishingBobberEntityRenderer::new); register(SpectrumEntityTypes.FIREPROOF_ITEM, ItemEntityRenderer::new); register(SpectrumEntityTypes.EGG_LAYING_WOOLY_PIG, EggLayingWoolyPigEntityRenderer::new); + register(SpectrumEntityTypes.GLASS_ARROW, GlassArrowEntityRenderer::new); + register(SpectrumEntityTypes.MINING_PROJECTILE, MagicProjectileEntityRenderer::new); + register(SpectrumEntityTypes.BIDENT, BidentEntityRenderer::new); } private static void register(EntityType type, EntityRendererFactory factory) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityTypes.java b/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityTypes.java index 3b2455f52d..cf039262f5 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityTypes.java +++ b/src/main/java/de/dafuqs/spectrum/entity/SpectrumEntityTypes.java @@ -1,20 +1,19 @@ package de.dafuqs.spectrum.entity; -import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.entity.entity.*; -import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; -import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; +import net.fabricmc.fabric.api.object.builder.v1.entity.*; import net.minecraft.entity.*; -import net.minecraft.entity.projectile.thrown.ThrownItemEntity; -import net.minecraft.util.registry.Registry; +import net.minecraft.entity.projectile.thrown.*; +import net.minecraft.util.registry.*; public class SpectrumEntityTypes { public static EntityType LIVING_MARKER; public static EntityType SHOOTING_STAR; public static EntityType FLOAT_BLOCK; - public static EntityType INVISIBLE_ITEM_FRAME; - public static EntityType INVISIBLE_GLOW_ITEM_FRAME; + public static EntityType PHANTOM_FRAME; + public static EntityType GLOW_PHANTOM_FRAME; public static EntityType BLOCK_FLOODER_PROJECTILE; public static EntityType INK_PROJECTILE; public static EntityType LAGOON_FISHING_BOBBER; @@ -22,23 +21,29 @@ public class SpectrumEntityTypes { public static EntityType BEDROCK_FISHING_BOBBER; public static EntityType FIREPROOF_ITEM; public static EntityType EGG_LAYING_WOOLY_PIG = register("egg_laying_wooly_pig", EntityType.Builder.create(EggLayingWoolyPigEntity::new, SpawnGroup.CREATURE).setDimensions(0.9F, 1.3F).maxTrackingRange(10)); - + public static EntityType GLASS_ARROW; + public static EntityType MINING_PROJECTILE; + public static EntityType BIDENT; + public static void register() { LIVING_MARKER = register("living_marker", 0, 2147483647, false, EntityDimensions.changing(0F, 0F), true, LivingMarkerEntity::new); SHOOTING_STAR = register("shooting_star", 15, 20, true, EntityDimensions.changing(0.8F, 0.8F), true, ShootingStarEntity::new); FLOAT_BLOCK = register("gravity_block", 10, 20, true, EntityDimensions.changing(0.98F, 0.98F), true, FloatBlockEntity::new); - INVISIBLE_ITEM_FRAME = register("invisible_item_frame", 10, 2147483647, false, EntityDimensions.changing(0.5F, 0.5F), false, InvisibleItemFrameEntity::new); - INVISIBLE_GLOW_ITEM_FRAME = register("invisible_glow_item_frame", 10, 2147483647, false, EntityDimensions.changing(0.5F, 0.5F), false, InvisibleGlowItemFrameEntity::new); + PHANTOM_FRAME = register("phantom_frame", 10, 2147483647, false, EntityDimensions.changing(0.5F, 0.5F), false, PhantomFrameEntity::new); + GLOW_PHANTOM_FRAME = register("glow_phantom_frame", 10, 2147483647, false, EntityDimensions.changing(0.5F, 0.5F), false, PhantomGlowFrameEntity::new); BLOCK_FLOODER_PROJECTILE = register("block_flooder_projectile", 4, 10, true, EntityDimensions.changing(0.25F, 0.25F), true, BlockFlooderProjectile::new); INK_PROJECTILE = register("ink_projectile", 4, 10, true, EntityDimensions.changing(0.3F, 0.3F), true, InkProjectileEntity::new); LAGOON_FISHING_BOBBER = register("lagoon_fishing_bobber", EntityType.Builder.create(LagoonFishingBobberEntity::new, SpawnGroup.MISC).disableSaving().disableSummon().makeFireImmune().setDimensions(0.25F, 0.25F).maxTrackingRange(4).trackingTickInterval(5)); MOLTEN_FISHING_BOBBER = register("molten_fishing_bobber", EntityType.Builder.create(MoltenFishingBobberEntity::new, SpawnGroup.MISC).disableSaving().disableSummon().makeFireImmune().setDimensions(0.25F, 0.25F).maxTrackingRange(4).trackingTickInterval(5)); BEDROCK_FISHING_BOBBER = register("bedrock_fishing_bobber", EntityType.Builder.create(BedrockFishingBobberEntity::new, SpawnGroup.MISC).disableSaving().disableSummon().makeFireImmune().setDimensions(0.25F, 0.25F).maxTrackingRange(4).trackingTickInterval(5)); FIREPROOF_ITEM = register("non_burnable_item_entity", 6, 20, true, EntityDimensions.changing(0.25F, 0.25F), true, FireproofItemEntity::new); - + GLASS_ARROW = register("glass_arrow", EntityType.Builder.create(GlassArrowEntity::new, SpawnGroup.MISC).setDimensions(0.5F, 0.5F).maxTrackingRange(4).trackingTickInterval(20)); + MINING_PROJECTILE = register("mining_projectile", 4, 10, true, EntityDimensions.changing(0.3F, 0.3F), true, MiningProjectileEntity::new); + BIDENT = register("bident", 4, 10, true, EntityDimensions.changing(0.5F, 0.5F), true, BidentEntity::new); + FabricDefaultAttributeRegistry.register(EGG_LAYING_WOOLY_PIG, EggLayingWoolyPigEntity.createEggLayingWoolyPigAttributes()); } - + public static EntityType register(String name, int trackingDistance, int updateIntervalTicks, boolean alwaysUpdateVelocity, EntityDimensions size, boolean fireImmune, EntityType.EntityFactory factory) { FabricEntityTypeBuilder builder = FabricEntityTypeBuilder.create(SpawnGroup.MISC, factory).trackRangeChunks(trackingDistance).trackedUpdateRate(updateIntervalTicks).forceTrackedVelocityUpdates(alwaysUpdateVelocity).dimensions(size); if (fireImmune) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/SpectrumTrackedDataHandlerRegistry.java b/src/main/java/de/dafuqs/spectrum/entity/SpectrumTrackedDataHandlerRegistry.java new file mode 100644 index 0000000000..1a90a19114 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/SpectrumTrackedDataHandlerRegistry.java @@ -0,0 +1,16 @@ +package de.dafuqs.spectrum.entity; + +import de.dafuqs.spectrum.items.tools.GlassArrowItem; +import de.dafuqs.spectrum.registries.SpectrumRegistries; +import net.minecraft.entity.data.TrackedDataHandler; +import net.minecraft.entity.data.TrackedDataHandlerRegistry; + +public class SpectrumTrackedDataHandlerRegistry { + + public static final TrackedDataHandler GLASS_ARROW_VARIANT = TrackedDataHandler.of(SpectrumRegistries.GLASS_ARROW_VARIANT); + + public static void register() { + TrackedDataHandlerRegistry.register(GLASS_ARROW_VARIANT); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/BedrockFishingBobberEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/BedrockFishingBobberEntity.java index bfe3301269..6e289e4fdc 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/BedrockFishingBobberEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/BedrockFishingBobberEntity.java @@ -20,5 +20,4 @@ public BedrockFishingBobberEntity(PlayerEntity thrower, World world, int luckOfT } - } diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/BidentEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/BidentEntity.java new file mode 100644 index 0000000000..3456b863e8 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/BidentEntity.java @@ -0,0 +1,46 @@ +package de.dafuqs.spectrum.entity.entity; + +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.data.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.world.*; + +public class BidentEntity extends TridentEntity { + + private static final TrackedData STACK = DataTracker.registerData(BidentEntity.class, TrackedDataHandlerRegistry.ITEM_STACK); + + public BidentEntity(World world) { + this(SpectrumEntityTypes.BIDENT, world); + } + + public BidentEntity(EntityType entityType, World world) { + super(entityType, world); + } + + protected void initDataTracker() { + super.initDataTracker(); + this.dataTracker.startTracking(STACK, Items.AIR.getDefaultStack()); + } + + public void setStack(ItemStack stack) { + this.dataTracker.set(STACK, stack.copy()); + ((TridentEntityAccessor) this).spectrum$setTridentStack(stack); + this.dataTracker.set(TridentEntityAccessor.spectrum$getLoyalty(), (byte) EnchantmentHelper.getLoyalty(stack)); + this.dataTracker.set(TridentEntityAccessor.spectrum$getEnchanted(), stack.hasGlint()); + } + + public ItemStack getStack() { + return this.dataTracker.get(STACK); + } + + public void readCustomDataFromNbt(NbtCompound nbt) { + super.readCustomDataFromNbt(nbt); + this.dataTracker.set(STACK, ItemStack.fromNbt(nbt.getCompound("Trident"))); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/BlockFlooderProjectile.java b/src/main/java/de/dafuqs/spectrum/entity/entity/BlockFlooderProjectile.java index 3db911c2de..4af760be0d 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/BlockFlooderProjectile.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/BlockFlooderProjectile.java @@ -1,63 +1,59 @@ package de.dafuqs.spectrum.entity.entity; -import de.dafuqs.spectrum.blocks.block_flooder.BlockFlooderBlock; -import de.dafuqs.spectrum.blocks.block_flooder.BlockFlooderBlockEntity; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.projectile.thrown.ThrownItemEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.ItemStackParticleEffect; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; +import de.dafuqs.spectrum.blocks.block_flooder.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.entity.projectile.thrown.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; public class BlockFlooderProjectile extends ThrownItemEntity { public BlockFlooderProjectile(EntityType thrownItemEntityEntityType, World world) { super(SpectrumEntityTypes.BLOCK_FLOODER_PROJECTILE, world); } - + public BlockFlooderProjectile(World world, LivingEntity owner) { super(SpectrumEntityTypes.BLOCK_FLOODER_PROJECTILE, owner, world); } - + public BlockFlooderProjectile(World world, double x, double y, double z) { super(SpectrumEntityTypes.BLOCK_FLOODER_PROJECTILE, x, y, z, world); } - + + @Override protected Item getDefaultItem() { return SpectrumItems.BLOCK_FLOODER; } - + private ParticleEffect getParticleParameters() { ItemStack itemStack = this.getItem(); return (itemStack.isEmpty() ? ParticleTypes.ITEM_SNOWBALL : new ItemStackParticleEffect(ParticleTypes.ITEM, itemStack)); } - + + @Override public void handleStatus(byte status) { if (status == 3) { ParticleEffect particleEffect = this.getParticleParameters(); - + for (int i = 0; i < 8; ++i) { this.world.addParticle(particleEffect, this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D); } } } - + + @Override protected void onCollision(HitResult hitResult) { super.onCollision(hitResult); if (!this.world.isClient) { this.world.sendEntityStatus(this, (byte) 3); - + if (hitResult.getType() == HitResult.Type.BLOCK) { BlockPos landingPos = getCorrectedBlockPos(hitResult.getPos()); if (BlockFlooderBlock.isReplaceableBlock(world, landingPos) && this.getOwner() instanceof PlayerEntity playerEntityOwner) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/EggLayingWoolyPigEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/EggLayingWoolyPigEntity.java index e0c55aad91..c10bc12e85 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/EggLayingWoolyPigEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/EggLayingWoolyPigEntity.java @@ -1,46 +1,33 @@ package de.dafuqs.spectrum.entity.entity; -import com.google.common.collect.Maps; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; +import com.google.common.collect.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.tag.convention.v1.*; +import net.minecraft.block.*; import net.minecraft.entity.*; import net.minecraft.entity.ai.goal.*; -import net.minecraft.entity.attribute.DefaultAttributeContainer; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.data.DataTracker; -import net.minecraft.entity.data.TrackedData; -import net.minecraft.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.entity.mob.MobEntity; -import net.minecraft.entity.passive.AnimalEntity; -import net.minecraft.entity.passive.PassiveEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.CraftingInventory; +import net.minecraft.entity.attribute.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.data.*; +import net.minecraft.entity.mob.*; +import net.minecraft.entity.passive.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; import net.minecraft.item.*; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeType; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.ActionResult; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Hand; -import net.minecraft.util.Util; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import org.jetbrains.annotations.Nullable; +import net.minecraft.nbt.*; +import net.minecraft.recipe.*; +import net.minecraft.screen.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import org.jetbrains.annotations.*; -import java.util.Arrays; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; +import java.util.*; +import java.util.stream.*; public class EggLayingWoolyPigEntity extends AnimalEntity implements Shearable { @@ -49,7 +36,7 @@ public class EggLayingWoolyPigEntity extends AnimalEntity implements Shearable { private static final int MAX_GRASS_TIMER = 40; private static final TrackedData COLOR_AND_SHEARED = DataTracker.registerData(EggLayingWoolyPigEntity.class, TrackedDataHandlerRegistry.BYTE); private static final TrackedData HATLESS = DataTracker.registerData(EggLayingWoolyPigEntity.class, TrackedDataHandlerRegistry.BOOLEAN); - private static final Map COLORS = Maps.newEnumMap((Map)Arrays.stream(DyeColor.values()).collect(Collectors.toMap((dyeColor) -> dyeColor, EggLayingWoolyPigEntity::getDyedColor))); + private static final Map COLORS = Maps.newEnumMap((Map) Arrays.stream(DyeColor.values()).collect(Collectors.toMap((dyeColor) -> dyeColor, EggLayingWoolyPigEntity::getDyedColor))); private static final Map DROPS = Util.make(Maps.newEnumMap(DyeColor.class), (map) -> { map.put(DyeColor.WHITE, Blocks.WHITE_WOOL); map.put(DyeColor.ORANGE, Blocks.ORANGE_WOOL); @@ -82,7 +69,7 @@ public EggLayingWoolyPigEntity(EntityType entityType, Wo public ActionResult interactMob(PlayerEntity player, Hand hand) { ItemStack handStack = player.getStackInHand(hand); - if(handStack.getItem() instanceof DyeItem dyeItem && isAlive() && getColor() != dyeItem.getColor()) { + if (handStack.getItem() instanceof DyeItem dyeItem && isAlive() && getColor() != dyeItem.getColor()) { world.playSoundFromEntity(player, this, SoundEvents.ITEM_DYE_USE, SoundCategory.PLAYERS, 1.0F, 1.0F); if (!world.isClient) { setColor(dyeItem.getColor()); @@ -94,7 +81,7 @@ public ActionResult interactMob(PlayerEntity player, Hand hand) { ItemStack itemStack2 = ItemUsage.exchangeStack(handStack, player, Items.MILK_BUCKET.getDefaultStack()); player.setStackInHand(hand, itemStack2); return ActionResult.success(this.world.isClient); - } else if (handStack.getItem() instanceof ShearsItem) { + } else if (handStack.isIn(ConventionalItemTags.SHEARS)) { if (!this.world.isClient && this.isShearable()) { this.sheared(SoundCategory.PLAYERS); this.emitGameEvent(GameEvent.SHEAR, player); @@ -162,7 +149,7 @@ public void tickMovement() { @Override protected void initDataTracker() { super.initDataTracker(); - this.dataTracker.startTracking(COLOR_AND_SHEARED, (byte)0); + this.dataTracker.startTracking(COLOR_AND_SHEARED, (byte) 0); this.dataTracker.startTracking(HATLESS, false); } @@ -171,9 +158,9 @@ protected void initDataTracker() { public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) { EggLayingWoolyPigEntity other = (EggLayingWoolyPigEntity) entity; EggLayingWoolyPigEntity child = SpectrumEntityTypes.EGG_LAYING_WOOLY_PIG.create(world); - if(child != null) { + if (child != null) { child.setColor(this.getChildColor(this, other)); - if(world.random.nextInt(50) == 0) { + if (world.random.nextInt(50) == 0) { child.setHatless(true); } } @@ -185,7 +172,7 @@ public void writeCustomDataToNbt(NbtCompound nbt) { super.writeCustomDataToNbt(nbt); nbt.putBoolean("Sheared", this.isSheared()); nbt.putBoolean("Hatless", this.isHatless()); - nbt.putByte("Color", (byte)this.getColor().getId()); + nbt.putByte("Color", (byte) this.getColor().getId()); nbt.putInt("EggLayTime", this.eggLayTime); } @@ -239,13 +226,13 @@ public float getNeckAngle(float delta) { } else if (this.eatGrassTimer >= 4 && this.eatGrassTimer <= 36) { return 1.0F; } else { - return this.eatGrassTimer < 4 ? ((float)this.eatGrassTimer - delta) / 4.0F : -((float)(this.eatGrassTimer - MAX_GRASS_TIMER) - delta) / 4.0F; + return this.eatGrassTimer < 4 ? ((float) this.eatGrassTimer - delta) / 4.0F : -((float) (this.eatGrassTimer - MAX_GRASS_TIMER) - delta) / 4.0F; } } public float getHeadAngle(float delta) { if (this.eatGrassTimer > 4 && this.eatGrassTimer <= 36) { - float f = ((float)(this.eatGrassTimer - 4) - delta) / 32.0F; + float f = ((float) (this.eatGrassTimer - 4) - delta) / 32.0F; return 0.62831855F + 0.21991149F * MathHelper.sin(f * 28.7F); } else { return this.eatGrassTimer > 0 ? 0.62831855F : this.getPitch() * 0.017453292F; @@ -258,7 +245,7 @@ public void sheared(SoundCategory shearedSoundCategory) { this.world.playSoundFromEntity(null, this, SoundEvents.ENTITY_SHEEP_SHEAR, shearedSoundCategory, 1.0F, 1.0F); this.setSheared(true); int itemCount = 1 + this.random.nextInt(3); - for(int i = 0; i < itemCount; ++i) { + for (int i = 0; i < itemCount; ++i) { ItemEntity itemEntity = this.dropItem(DROPS.get(this.getColor()), 1); if (itemEntity != null) { itemEntity.setVelocity(itemEntity.getVelocity().add((this.random.nextFloat() - this.random.nextFloat()) * 0.1F, this.random.nextFloat() * 0.05F, (this.random.nextFloat() - this.random.nextFloat()) * 0.1F)); @@ -278,9 +265,9 @@ public boolean isSheared() { public void setSheared(boolean sheared) { byte color = this.dataTracker.get(COLOR_AND_SHEARED); if (sheared) { - this.dataTracker.set(COLOR_AND_SHEARED, (byte)(color | 16)); + this.dataTracker.set(COLOR_AND_SHEARED, (byte) (color | 16)); } else { - this.dataTracker.set(COLOR_AND_SHEARED, (byte)(color & -17)); + this.dataTracker.set(COLOR_AND_SHEARED, (byte) (color & -17)); } } @@ -302,7 +289,7 @@ private static float[] getDyedColor(DyeColor color) { return new float[]{1.0F, 1.0F, 1.0F}; } else { float[] fs = color.getColorComponents(); - return new float[]{ fs[0], fs[1], fs[2] }; + return new float[]{fs[0], fs[1], fs[2]}; } } @@ -312,16 +299,16 @@ public DyeColor getColor() { public void setColor(DyeColor color) { byte b = this.dataTracker.get(COLOR_AND_SHEARED); - this.dataTracker.set(COLOR_AND_SHEARED, (byte)(b & 240 | color.getId() & 15)); + this.dataTracker.set(COLOR_AND_SHEARED, (byte) (b & 240 | color.getId() & 15)); } private DyeColor getChildColor(AnimalEntity firstParent, AnimalEntity secondParent) { - DyeColor dyeColor = ((EggLayingWoolyPigEntity)firstParent).getColor(); - DyeColor dyeColor2 = ((EggLayingWoolyPigEntity)secondParent).getColor(); + DyeColor dyeColor = ((EggLayingWoolyPigEntity) firstParent).getColor(); + DyeColor dyeColor2 = ((EggLayingWoolyPigEntity) secondParent).getColor(); CraftingInventory craftingInventory = createDyeMixingCraftingInventory(dyeColor, dyeColor2); Optional optionalItem = this.world.getRecipeManager().getFirstMatch(RecipeType.CRAFTING, craftingInventory, this.world).map((recipe) -> recipe.craft(craftingInventory)).map(ItemStack::getItem); - if(optionalItem.isPresent() && optionalItem.get() instanceof DyeItem dyeItem) { + if (optionalItem.isPresent() && optionalItem.get() instanceof DyeItem dyeItem) { return dyeItem.getColor(); } return this.world.random.nextBoolean() ? dyeColor : dyeColor2; @@ -329,6 +316,10 @@ private DyeColor getChildColor(AnimalEntity firstParent, AnimalEntity secondPare private static CraftingInventory createDyeMixingCraftingInventory(DyeColor firstColor, DyeColor secondColor) { CraftingInventory craftingInventory = new CraftingInventory(new ScreenHandler(null, -1) { + public ItemStack transferSlot(PlayerEntity player, int index) { + return ItemStack.EMPTY; + } + public boolean canUse(PlayerEntity player) { return false; } diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/FloatBlockEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/FloatBlockEntity.java index daee526744..a215182cb2 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/FloatBlockEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/FloatBlockEntity.java @@ -1,35 +1,25 @@ package de.dafuqs.spectrum.entity.entity; -import com.google.common.collect.Lists; -import de.dafuqs.spectrum.blocks.gravity.FloatBlock; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumDamageSources; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.id.incubus_core.blocklikeentities.api.BlockLikeEntity; -import net.id.incubus_core.blocklikeentities.util.PostTickEntity; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.MovementType; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.network.packet.s2c.play.EntitySpawnS2CPacket; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraft.world.explosion.Explosion; +import com.google.common.collect.*; +import de.dafuqs.spectrum.blocks.gravity.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.id.incubus_core.blocklikeentities.api.*; +import net.id.incubus_core.blocklikeentities.util.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.explosion.*; -import java.util.List; +import java.util.*; public class FloatBlockEntity extends BlockLikeEntity implements PostTickEntity { @@ -58,53 +48,34 @@ public FloatBlockEntity(World world, double x, double y, double z, BlockState bl this.gravityModifier = 1.0F; } } - - public FloatBlockEntity(World world, BlockPos pos, BlockState blockState, boolean partOfSet) { - this(world, pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5, blockState); - this.partOfSet = partOfSet; + + @Override + public void move(MovementType movementType, Vec3d movement) { + super.move(movementType, movement); + if (movementType != MovementType.SELF) { + this.setVelocity(movement); + } } - + @Override public void postTickMovement() { if (!this.hasNoGravity()) { if (this.gravityModifier != 0) { if (this.moveTime > 100) { - this.addVelocity(0.0D, (gravityModifier / 10), 0.0D); + this.addVelocity(0.0D, (this.gravityModifier / 10), 0.0D); } else { - this.addVelocity(0.0D, Math.min(Math.sin((Math.PI * this.age) / 100D), 1) * (gravityModifier / 10), 0.0D); + this.addVelocity(0.0D, Math.min(Math.sin((Math.PI * this.age) / 100D), 1) * (this.gravityModifier / 10), 0.0D); } } this.move(MovementType.SELF, this.getVelocity()); } } - + @Override public void tick() { } - - @Override - public void postTickMoveEntities() { - super.postTickMoveEntities(); - - List otherEntities = this.world.getOtherEntities(this, getBoundingBox().union(getBoundingBox().offset(0, 2 * (this.prevY - this.getY()), 0))); - for (Entity entity : otherEntities) { - if (!(entity instanceof BlockLikeEntity) && !entity.noClip && this.collides()) { - entity.setPosition(entity.getX(), this.getBoundingBox().maxY, entity.getZ()); - } - } - } - - @Override - public boolean isCollidable() { - return true; - } - - @Override - public boolean isPushable() { - return true; - } - + @Override public boolean shouldCease() { return this.verticalCollision || super.shouldCease(); @@ -127,21 +98,34 @@ public boolean handleFallDamage(float distance, float damageMultiplier, DamageSo } return false; } - + + @Override + public boolean canHit() { + return !this.isRemoved(); + } + @Override public ActionResult interact(PlayerEntity player, Hand hand) { - if (!this.world.isClient && player.isSneaking()) { - Item item = this.blockState.getBlock().asItem(); - if (item != null) { - Support.givePlayer(player, item.getDefaultStack()); + if (player.isSneaking()) { + if (!this.world.isClient) { + return ActionResult.SUCCESS; + } else { + Item item = this.blockState.getBlock().asItem(); + if (item != null) { + Support.givePlayer(player, item.getDefaultStack()); + } this.discard(); + return ActionResult.CONSUME; } - return ActionResult.CONSUME; - } else { - return ActionResult.SUCCESS; } + return ActionResult.PASS; } - + + @Override + public ItemStack getPickBlockStack() { + return this.blockState.getBlock().asItem().getDefaultStack(); + } + @Override @Environment(EnvType.CLIENT) public void onSpawnPacket(EntitySpawnS2CPacket packet) { @@ -167,16 +151,20 @@ public void postTickEntityCollision(Entity entity) { world.spawnEntity(itemEntity); } } - + public boolean isPaltaeriaStratineCollision(Entity other) { if (other instanceof BlockLikeEntity otherBlockLikeEntity) { Block thisBlock = this.blockState.getBlock(); Block otherBlock = otherBlockLikeEntity.getBlockState().getBlock(); - return thisBlock == SpectrumBlocks.PALETUR_FRAGMENT_BLOCK && otherBlock == SpectrumBlocks.SCARLET_FRAGMENT_BLOCK - || thisBlock == SpectrumBlocks.SCARLET_FRAGMENT_BLOCK && otherBlock == SpectrumBlocks.PALETUR_FRAGMENT_BLOCK; + return thisBlock == SpectrumBlocks.PALTAERIA_FRAGMENT_BLOCK && otherBlock == SpectrumBlocks.STRATINE_FRAGMENT_BLOCK + || thisBlock == SpectrumBlocks.STRATINE_FRAGMENT_BLOCK && otherBlock == SpectrumBlocks.PALTAERIA_FRAGMENT_BLOCK; } return false; } - - + + @Override + public boolean collidesWith(Entity other) { + return other.isCollidable() && !this.isConnectedThroughVehicle(other); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/GlassArrowEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/GlassArrowEntity.java new file mode 100644 index 0000000000..10f0abc8c0 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/GlassArrowEntity.java @@ -0,0 +1,216 @@ +package de.dafuqs.spectrum.entity.entity; + +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.items.tools.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.spells.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.attribute.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.data.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +public class GlassArrowEntity extends PersistentProjectileEntity { + + private static final TrackedData VARIANT = DataTracker.registerData(GlassArrowEntity.class, SpectrumTrackedDataHandlerRegistry.GLASS_ARROW_VARIANT); + public static final float DAMAGE_MODIFIER = 1.25F; + + + public GlassArrowEntity(EntityType entityType, World world) { + super(entityType, world); + } + + public GlassArrowEntity(World world, LivingEntity owner) { + super(SpectrumEntityTypes.GLASS_ARROW, owner, world); + } + + public GlassArrowEntity(World world, double x, double y, double z) { + super(SpectrumEntityTypes.GLASS_ARROW, x, y, z, world); + } + + @Override + public void applyEnchantmentEffects(LivingEntity entity, float damageModifier) { + super.applyEnchantmentEffects(entity, damageModifier); + setDamage(getDamage() * DAMAGE_MODIFIER); + } + + @Override + public void tick() { + super.tick(); + if (this.world.isClient) { + if (!this.onGround || world.getTime() % 8 == 0) { + spawnParticles(1); + } + } + } + + @Override + public boolean hasNoGravity() { + return this.getVelocity().lengthSquared() > 0.1F; + } + + private void spawnParticles(int amount) { + DefaultParticleType particleType = null; + switch (this.getVariant()) { + case MALACHITE -> { + particleType = SpectrumParticleTypes.LIME_CRAFTING; + } + case TOPAZ -> { + particleType = SpectrumParticleTypes.CYAN_CRAFTING; + } + case AMETHYST -> { + particleType = SpectrumParticleTypes.MAGENTA_CRAFTING; + } + case CITRINE -> { + particleType = SpectrumParticleTypes.YELLOW_CRAFTING; + } + case ONYX -> { + particleType = SpectrumParticleTypes.BLACK_CRAFTING; + } + case MOONSTONE -> { + particleType = SpectrumParticleTypes.WHITE_CRAFTING; + } + } + + if(particleType != null) { + for (int j = 0; j < amount; ++j) { + this.world.addParticle(particleType, this.getParticleX(0.5), this.getRandomBodyY(), this.getParticleZ(0.5), 0, 0, 0); + } + } + } + + @Override + protected void onEntityHit(EntityHitResult entityHitResult) { + LivingEntity livingEntityToResetHurtTime = null; + + // additional effects depending on arrow type + // mundane glass arrows do not have additional effects + switch (getVariant()) { + case TOPAZ -> { + if (!this.world.isClient && this.getOwner() != null) { + Entity entity = entityHitResult.getEntity(); + pullEntityClose(this.getOwner(), entity, 0.2); + } + } + case AMETHYST -> { + if(!this.world.isClient) { + Entity entity = entityHitResult.getEntity(); + entity.setFrozenTicks(200); + } + } + case ONYX -> { + Entity entity = entityHitResult.getEntity(); + if (entity instanceof LivingEntity livingEntity) { + // we're resetting hurtTime here for once so onEntityHit() can deal damage + // and also resetting after that again so the target is damageable again after this + livingEntity.hurtTime = 0; + livingEntityToResetHurtTime = livingEntity; + livingEntity.damageShield(20); + livingEntity.damageArmor(DamageSource.MAGIC, 20); + } + } + case MOONSTONE -> { + MoonstoneStrike.create(world, this, null, this.getX(), this.getY(), this.getZ(), 4); + } + } + + super.onEntityHit(entityHitResult); + + if (livingEntityToResetHurtTime != null) { + livingEntityToResetHurtTime.hurtTime = 0; + } + + this.playSound(SoundEvents.BLOCK_GLASS_BREAK, 0.75F, 0.9F + world.random.nextFloat() * 0.2F); + this.remove(RemovalReason.DISCARDED); + } + + @Override + protected void onBlockHit(BlockHitResult blockHitResult) { + super.onBlockHit(blockHitResult); + if(getVariant() == GlassArrowItem.Variant.MOONSTONE) { + MoonstoneStrike.create(world, this, null, this.getX(), this.getY(), this.getZ(), 4); + } + } + + protected static void pullEntityClose(Entity shooter, Entity entityToPull, double pullStrength) { + double d = shooter.getX() - entityToPull.getX(); + double e = shooter.getY() - entityToPull.getY(); + double f = shooter.getZ() - entityToPull.getZ(); + + double pullStrengthModifier = 1.0; + if(entityToPull instanceof LivingEntity livingEntity) { + pullStrengthModifier = Math.max(0.0, 1.0 - livingEntity.getAttributeValue(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE)); + } + + Vec3d additionalVelocity = new Vec3d(d * pullStrength, e * pullStrength + Math.sqrt(Math.sqrt(d * d + e * e + f * f)) * 0.08D, f * pullStrength).multiply(pullStrengthModifier); + entityToPull.addVelocity(additionalVelocity.x, additionalVelocity.y, additionalVelocity.z); + } + + @Override + protected ItemStack asItemStack() { + return dataTracker.get(VARIANT).getStack(); + } + + /** + * Glass Arrows pass through translucent blocks as if it were air + */ + @Override + protected void onCollision(HitResult hitResult) { + HitResult.Type type = hitResult.getType(); + if (type == HitResult.Type.BLOCK) { + BlockPos hitPos = ((BlockHitResult) hitResult).getBlockPos(); + BlockState state = this.world.getBlockState(hitPos); + if(state.isTranslucent(world, hitPos)) { + return; + } + } + super.onCollision(hitResult); + } + + /** + * Glass Arrows pass through water almost effortlessly + */ + @Override + protected float getDragInWater() { + return 0.1F; + } + + @Override + protected void initDataTracker() { + super.initDataTracker(); + this.dataTracker.startTracking(VARIANT, GlassArrowItem.Variant.MALACHITE); + } + + public void setVariant(GlassArrowItem.Variant variant) { + this.dataTracker.set(VARIANT, variant); + + if(variant == GlassArrowItem.Variant.CITRINE) { + setPunch(5); + } + } + + public GlassArrowItem.Variant getVariant() { + return this.dataTracker.get(VARIANT); + } + + @Override + public void writeCustomDataToNbt(NbtCompound nbt) { + super.writeCustomDataToNbt(nbt); + nbt.putString("Variant", this.getVariant().toString()); + } + + @Override + public void readCustomDataFromNbt(NbtCompound nbt) { + super.readCustomDataFromNbt(nbt); + this.setVariant(GlassArrowItem.Variant.fromString(nbt.getString("Variant"))); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/InkProjectileEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/InkProjectileEntity.java index b8592d962a..4153cf5393 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/InkProjectileEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/InkProjectileEntity.java @@ -1,82 +1,68 @@ package de.dafuqs.spectrum.entity.entity; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.helpers.BlockVariantHelper; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.entity.*; import de.dafuqs.spectrum.helpers.ColorHelper; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.registries.SpectrumDamageSources; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import de.dafuqs.spectrum.sound.InkProjectileSoundInstance; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.enchantment.ProtectionEnchantment; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.TntEntity; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.data.DataTracker; -import net.minecraft.entity.data.TrackedData; -import net.minecraft.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.projectile.ProjectileEntity; -import net.minecraft.entity.projectile.ProjectileUtil; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.DyeColor; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.EntityHitResult; -import net.minecraft.util.hit.HitResult; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.data.*; +import net.minecraft.entity.player.*; +import net.minecraft.nbt.*; +import net.minecraft.network.packet.s2c.play.*; +import net.minecraft.server.network.*; +import net.minecraft.util.*; +import net.minecraft.util.hit.*; import net.minecraft.util.math.*; -import net.minecraft.world.RaycastContext; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.explosion.Explosion; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import net.minecraft.world.explosion.*; -import java.util.Arrays; -import java.util.List; +import java.util.*; + +public class InkProjectileEntity extends MagicProjectileEntity { -public class InkProjectileEntity extends ProjectileEntity { - private static final int COLOR_SPLAT_RANGE = 2; private static final int SPELL_POTENCY = 2; private static final float DAMAGE_PER_POTENCY = 0.5F; - + private static final TrackedData COLOR = DataTracker.registerData(InkProjectileEntity.class, TrackedDataHandlerRegistry.INTEGER); - - protected int life; - + public InkProjectileEntity(EntityType type, World world) { super(type, world); - if(world.isClient) { - InkProjectileSoundInstance.startSoundInstance(this); - } } - - public InkProjectileEntity(EntityType type, double x, double y, double z, World world) { - this(type, world); + + public InkProjectileEntity(double x, double y, double z, World world) { + this(SpectrumEntityTypes.INK_PROJECTILE, world); this.refreshPositionAndAngles(x, y, z, this.getYaw(), this.getPitch()); this.refreshPosition(); } - + public InkProjectileEntity(World world, LivingEntity owner) { - this(SpectrumEntityTypes.INK_PROJECTILE, owner.getX(), owner.getEyeY() - 0.10000000149011612D, owner.getZ(), world); + this(owner.getX(), owner.getEyeY() - 0.10000000149011612D, owner.getZ(), world); this.setOwner(owner); this.setRotation(owner.getYaw(), owner.getPitch()); } - + + public static InkProjectileEntity shoot(World world, LivingEntity entity, InkColor color) { + InkProjectileEntity projectile = new InkProjectileEntity(world, entity); + projectile.setVelocity(entity, entity.getPitch(), entity.getYaw(), 0.0F, 2.0F, 1.0F); + projectile.setColor(color); + world.spawnEntity(projectile); + return projectile; + } + @Override protected void initDataTracker() { this.dataTracker.startTracking(COLOR, -1); } - + public int getColor() { return this.dataTracker.get(COLOR); } @@ -106,7 +92,7 @@ public void writeCustomDataToNbt(NbtCompound nbt) { @Override public void readCustomDataFromNbt(NbtCompound nbt) { super.readCustomDataFromNbt(nbt); - + if (nbt.contains("Color", 99)) { this.setColor(nbt.getInt("Color")); } @@ -115,101 +101,15 @@ public void readCustomDataFromNbt(NbtCompound nbt) { @Override public void tick() { super.tick(); - this.spawnParticles(1); - - boolean noClip = this.isNoClip(); - Vec3d thisVelocity = this.getVelocity(); - if (this.prevPitch == 0.0F && this.prevYaw == 0.0F) { - double d = thisVelocity.horizontalLength(); - this.setYaw((float)(MathHelper.atan2(thisVelocity.x, thisVelocity.z) * 57.2957763671875D)); - this.setPitch((float)(MathHelper.atan2(thisVelocity.y, d) * 57.2957763671875D)); - this.prevYaw = this.getYaw(); - this.prevPitch = this.getPitch(); - } - - this.age(); - - Vec3d vec3d2; - Vec3d thisPos = this.getPos(); - vec3d2 = thisPos.add(thisVelocity); - HitResult hitResult = this.world.raycast(new RaycastContext(thisPos, vec3d2, RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, this)); - if ((hitResult).getType() != HitResult.Type.MISS) { - vec3d2 = (hitResult).getPos(); - } - - if(!this.isRemoved()) { - EntityHitResult entityHitResult = this.getEntityCollision(thisPos, vec3d2); - if (entityHitResult != null) { - hitResult = entityHitResult; - } - - if (hitResult.getType() == HitResult.Type.ENTITY) { - Entity entity = ((EntityHitResult)hitResult).getEntity(); - Entity entity2 = this.getOwner(); - if (entity instanceof PlayerEntity && entity2 instanceof PlayerEntity && !((PlayerEntity)entity2).shouldDamagePlayer((PlayerEntity)entity)) { - hitResult = null; - } - } - - if (hitResult != null && !noClip) { - this.onCollision(hitResult); - this.velocityDirty = true; - } - } - - thisVelocity = this.getVelocity(); - double velocityX = thisVelocity.x; - double velocityY = thisVelocity.y; - double velocityZ = thisVelocity.z; - - double h = this.getX() + velocityX; - double j = this.getY() + velocityY; - double k = this.getZ() + velocityZ; - double l = thisVelocity.horizontalLength(); - if (noClip) { - this.setYaw((float)(MathHelper.atan2(-velocityX, -velocityZ) * 57.2957763671875D)); - } else { - this.setYaw((float)(MathHelper.atan2(velocityX, velocityZ) * 57.2957763671875D)); - } - - this.setPitch((float)(MathHelper.atan2(velocityY, l) * 57.2957763671875D)); - this.setPitch(updateRotation(this.prevPitch, this.getPitch())); - this.setYaw(updateRotation(this.prevYaw, this.getYaw())); - - if (this.isTouchingWater()) { - for(int o = 0; o < 4; ++o) { - this.world.addParticle(ParticleTypes.BUBBLE, h - velocityX * 0.25D, j - velocityY * 0.25D, k - velocityZ * 0.25D, velocityX, velocityY, velocityZ); - } - } - - this.setPosition(h, j, k); - this.checkBlockCollision(); - } - - protected void age() { - ++this.life; - if (this.life >= 200) { - this.discard(); - } - - } - - public boolean isNoClip() { - if (!this.world.isClient) { - return this.noClip; - } else { - return true; - } } - + private void spawnParticles(int amount) { int colorOrdinal = this.getColor(); if (colorOrdinal != -1 && amount > 0) { DyeColor dyeColor = DyeColor.byId(colorOrdinal); - Vec3f inkColor = InkColor.of(dyeColor).getColor(); - for(int j = 0; j < amount; ++j) { - this.world.addParticle(SpectrumParticleTypes.getCraftingParticle(dyeColor), this.getParticleX(0.5D), this.getRandomBodyY(), this.getParticleZ(0.5D), inkColor.getX(), inkColor.getY(), inkColor.getZ()); + for (int j = 0; j < amount; ++j) { + this.world.addParticle(SpectrumParticleTypes.getCraftingParticle(dyeColor), this.getParticleX(0.5D), this.getRandomBodyY(), this.getParticleZ(0.5D), 0, 0, 0); } } } @@ -222,8 +122,8 @@ protected void onEntityHit(EntityHitResult entityHitResult) { ColorHelper.tryColorEntity(null, entity, getDyeColor()); - float velocity = (float)this.getVelocity().length(); - int damage = MathHelper.ceil(MathHelper.clamp((double)velocity * DAMAGE_PER_POTENCY * SPELL_POTENCY, 0.0D, 2.147483647E9D)); + float velocity = (float) this.getVelocity().length(); + int damage = MathHelper.ceil(MathHelper.clamp((double) velocity * DAMAGE_PER_POTENCY * SPELL_POTENCY, 0.0D, 2.147483647E9D)); Entity entity2 = this.getOwner(); DamageSource damageSource; @@ -232,27 +132,27 @@ protected void onEntityHit(EntityHitResult entityHitResult) { } else { damageSource = SpectrumDamageSources.inkProjectile(this, entity2); if (entity2 instanceof LivingEntity) { - ((LivingEntity)entity2).onAttacking(entity); + ((LivingEntity) entity2).onAttacking(entity); } } - if (entity.damage(damageSource, (float)damage)) { + if (entity.damage(damageSource, (float) damage)) { if (entity instanceof LivingEntity) { - LivingEntity livingEntity = (LivingEntity)entity; + LivingEntity livingEntity = (LivingEntity) entity; if (!this.world.isClient && entity2 instanceof LivingEntity) { EnchantmentHelper.onUserDamaged(livingEntity, entity2); - EnchantmentHelper.onTargetDamaged((LivingEntity)entity2, livingEntity); + EnchantmentHelper.onTargetDamaged((LivingEntity) entity2, livingEntity); } this.onHit(livingEntity); if (livingEntity != entity2 && livingEntity instanceof PlayerEntity && entity2 instanceof ServerPlayerEntity && !this.isSilent()) { - ((ServerPlayerEntity)entity2).networkHandler.sendPacket(new GameStateChangeS2CPacket(GameStateChangeS2CPacket.PROJECTILE_HIT_PLAYER, 0.0F)); + ((ServerPlayerEntity) entity2).networkHandler.sendPacket(new GameStateChangeS2CPacket(GameStateChangeS2CPacket.PROJECTILE_HIT_PLAYER, 0.0F)); } if (!this.world.isClient && entity2 instanceof ServerPlayerEntity) { - ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity)entity2; + ServerPlayerEntity serverPlayerEntity = (ServerPlayerEntity) entity2; if (!entity.isAlive()) { SpectrumAdvancementCriteria.KILLED_BY_INK_PROJECTILE.trigger(serverPlayerEntity, Arrays.asList(entity)); } @@ -286,9 +186,13 @@ protected void onBlockHit(BlockHitResult blockHitResult) { DyeColor dyeColor = DyeColor.byId(colorOrdinal); for (BlockPos blockPos : BlockPos.iterateOutwards(blockHitResult.getBlockPos(), COLOR_SPLAT_RANGE, COLOR_SPLAT_RANGE, COLOR_SPLAT_RANGE)) { - Block coloredBlock = BlockVariantHelper.getCursedBlockColorVariant(this.world, blockPos, dyeColor); - if (coloredBlock != Blocks.AIR) { - this.world.setBlockState(blockPos, coloredBlock.getDefaultState()); + if (world.getBlockState(blockPos).getBlock() instanceof ColorableBlock colorableBlock) { + colorableBlock.color(world, blockPos, dyeColor); + continue; + } + BlockState coloredBlockState = BlockVariantHelper.getCursedBlockColorVariant(this.world, blockPos, dyeColor); + if (!coloredBlockState.isAir()) { + this.world.setBlockState(blockPos, coloredBlockState); } } @@ -300,16 +204,7 @@ protected void onBlockHit(BlockHitResult blockHitResult) { this.discard(); } - - protected SoundEvent getHitSound() { - return SpectrumSoundEvents.INK_PROJECTILE_HIT; - } - - @Nullable - protected EntityHitResult getEntityCollision(Vec3d currentPosition, Vec3d nextPosition) { - return ProjectileUtil.getEntityCollision(this.world, this, currentPosition, nextPosition, this.getBoundingBox().stretch(this.getVelocity()).expand(1.0D), this::canHit); - } - + protected void onHit(LivingEntity target) { int colorOrdinal = this.getColor(); if (colorOrdinal != -1) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/InvisibleGlowItemFrameEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/InvisibleGlowItemFrameEntity.java deleted file mode 100644 index 750f951d88..0000000000 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/InvisibleGlowItemFrameEntity.java +++ /dev/null @@ -1,93 +0,0 @@ -package de.dafuqs.spectrum.entity.entity; - -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -public class InvisibleGlowItemFrameEntity extends ItemFrameEntity { - - public InvisibleGlowItemFrameEntity(EntityType entityType, World world) { - super(entityType, world); - } - - public InvisibleGlowItemFrameEntity(World world, BlockPos pos, Direction facing) { - this(SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME, world, pos, facing); - } - - public InvisibleGlowItemFrameEntity(EntityType type, World world, BlockPos pos, Direction facing) { - super(type, world, pos, facing); - } - - @Override - public boolean isInvisible() { - if (this.getHeldItemStack().isEmpty()) { - return super.isInvisible(); - } else { - return true; - } - } - - @Override - public SoundEvent getRemoveItemSound() { - return SoundEvents.ENTITY_GLOW_ITEM_FRAME_REMOVE_ITEM; - } - - @Override - public SoundEvent getBreakSound() { - return SoundEvents.ENTITY_GLOW_ITEM_FRAME_BREAK; - } - - @Override - public SoundEvent getPlaceSound() { - return SoundEvents.ENTITY_GLOW_ITEM_FRAME_PLACE; - } - - @Override - public SoundEvent getAddItemSound() { - return SoundEvents.ENTITY_GLOW_ITEM_FRAME_ADD_ITEM; - } - - @Override - public SoundEvent getRotateItemSound() { - return SoundEvents.ENTITY_GLOW_ITEM_FRAME_ROTATE_ITEM; - } - - @Override - protected ItemStack getAsItemStack() { - return new ItemStack(SpectrumItems.INVISIBLE_ITEM_FRAME); - } - - @Override - public void setHeldItemStack(ItemStack value, boolean update) { - super.setHeldItemStack(value, update); - if (update && !this.world.isClient) { - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.END_ROD, 10, new Vec3d(0, 0, 0), new Vec3d(0.1, 0.1, 0.1)); - world.playSoundFromEntity(null, this, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 0.5F, 1.0F); - } - } - - @Override - public boolean damage(DamageSource source, float amount) { - boolean success = super.damage(source, amount); - if (success && !this.world.isClient) { - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.END_ROD, 10, new Vec3d(0, 0, 0), new Vec3d(0.1, 0.1, 0.1)); - world.playSoundFromEntity(null, this, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 0.5F, 1.0F); - } - return success; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/InvisibleItemFrameEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/InvisibleItemFrameEntity.java deleted file mode 100644 index 4a8b38eb6e..0000000000 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/InvisibleItemFrameEntity.java +++ /dev/null @@ -1,77 +0,0 @@ -package de.dafuqs.spectrum.entity.entity; - -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; - -public class InvisibleItemFrameEntity extends ItemFrameEntity { - - public InvisibleItemFrameEntity(EntityType entityType, World world) { - super(entityType, world); - } - - public InvisibleItemFrameEntity(World world, BlockPos pos, Direction facing) { - this(SpectrumEntityTypes.INVISIBLE_ITEM_FRAME, world, pos, facing); - } - - public InvisibleItemFrameEntity(EntityType type, World world, BlockPos pos, Direction facing) { - super(type, world, pos, facing); - } - - @Override - public boolean isInvisible() { - if (this.getHeldItemStack().isEmpty()) { - return super.isInvisible(); - } else { - return true; - } - } - - @Override - public void writeCustomDataToNbt(NbtCompound nbt) { - super.writeCustomDataToNbt(nbt); - } - - @Override - public void readCustomDataFromNbt(NbtCompound nbt) { - super.readCustomDataFromNbt(nbt); - } - - @Override - protected ItemStack getAsItemStack() { - return new ItemStack(SpectrumItems.INVISIBLE_ITEM_FRAME); - } - - @Override - public void setHeldItemStack(ItemStack value, boolean update) { - super.setHeldItemStack(value, update); - if (update && !this.world.isClient) { - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.END_ROD, 10, new Vec3d(0, 0, 0), new Vec3d(0.1, 0.1, 0.1)); - world.playSoundFromEntity(null, this, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 0.5F, 1.0F); - } - } - - @Override - public boolean damage(DamageSource source, float amount) { - boolean success = super.damage(source, amount); - if (success && !this.world.isClient) { - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.END_ROD, 10, new Vec3d(0, 0, 0), new Vec3d(0.1, 0.1, 0.1)); - world.playSoundFromEntity(null, this, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 0.5F, 1.0F); - } - return success; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/MagicProjectileEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/MagicProjectileEntity.java new file mode 100644 index 0000000000..ae769657bb --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/MagicProjectileEntity.java @@ -0,0 +1,136 @@ +package de.dafuqs.spectrum.entity.entity; + +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import de.dafuqs.spectrum.sound.MagicProjectileSoundInstance; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.ProjectileEntity; +import net.minecraft.entity.projectile.ProjectileUtil; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.sound.SoundEvent; +import net.minecraft.util.DyeColor; +import net.minecraft.util.hit.EntityHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.RaycastContext; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +public abstract class MagicProjectileEntity extends ProjectileEntity { + + public MagicProjectileEntity(EntityType type, World world) { + super(type, world); + if (world.isClient) { + MagicProjectileSoundInstance.startSoundInstance(this); + } + } + + public MagicProjectileEntity(EntityType type, double x, double y, double z, World world) { + this(type, world); + this.refreshPositionAndAngles(x, y, z, this.getYaw(), this.getPitch()); + this.refreshPosition(); + } + + @Override + public void tick() { + super.tick(); + + boolean noClip = this.isNoClip(); + Vec3d thisVelocity = this.getVelocity(); + if (this.prevPitch == 0.0F && this.prevYaw == 0.0F) { + double d = thisVelocity.horizontalLength(); + this.setYaw((float) (MathHelper.atan2(thisVelocity.x, thisVelocity.z) * 57.2957763671875D)); + this.setPitch((float) (MathHelper.atan2(thisVelocity.y, d) * 57.2957763671875D)); + this.prevYaw = this.getYaw(); + this.prevPitch = this.getPitch(); + } + + this.age(); + + Vec3d vec3d2; + Vec3d thisPos = this.getPos(); + vec3d2 = thisPos.add(thisVelocity); + HitResult hitResult = this.world.raycast(new RaycastContext(thisPos, vec3d2, RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, this)); + if ((hitResult).getType() != HitResult.Type.MISS) { + vec3d2 = (hitResult).getPos(); + } + + if (!this.isRemoved()) { + EntityHitResult entityHitResult = this.getEntityCollision(thisPos, vec3d2); + if (entityHitResult != null) { + hitResult = entityHitResult; + } + + if (hitResult.getType() == HitResult.Type.ENTITY) { + Entity entity = ((EntityHitResult) hitResult).getEntity(); + Entity entity2 = this.getOwner(); + if (entity instanceof PlayerEntity && entity2 instanceof PlayerEntity && !((PlayerEntity) entity2).shouldDamagePlayer((PlayerEntity) entity)) { + hitResult = null; + } + } + + if (hitResult != null && !noClip) { + this.onCollision(hitResult); + this.velocityDirty = true; + } + } + + thisVelocity = this.getVelocity(); + double velocityX = thisVelocity.x; + double velocityY = thisVelocity.y; + double velocityZ = thisVelocity.z; + + double h = this.getX() + velocityX; + double j = this.getY() + velocityY; + double k = this.getZ() + velocityZ; + double l = thisVelocity.horizontalLength(); + if (noClip) { + this.setYaw((float) (MathHelper.atan2(-velocityX, -velocityZ) * 57.2957763671875D)); + } else { + this.setYaw((float) (MathHelper.atan2(velocityX, velocityZ) * 57.2957763671875D)); + } + + this.setPitch((float) (MathHelper.atan2(velocityY, l) * 57.2957763671875D)); + this.setPitch(updateRotation(this.prevPitch, this.getPitch())); + this.setYaw(updateRotation(this.prevYaw, this.getYaw())); + + if (this.isTouchingWater()) { + for (int o = 0; o < 4; ++o) { + this.world.addParticle(ParticleTypes.BUBBLE, h - velocityX * 0.25D, j - velocityY * 0.25D, k - velocityZ * 0.25D, velocityX, velocityY, velocityZ); + } + } + + this.setPosition(h, j, k); + this.checkBlockCollision(); + } + + protected void age() { + ++this.age; + if (this.age >= 200) { + this.discard(); + } + + } + + public boolean isNoClip() { + if (!this.world.isClient) { + return this.noClip; + } else { + return true; + } + } + + protected SoundEvent getHitSound() { + return SpectrumSoundEvents.INK_PROJECTILE_HIT; + } + + @Nullable + protected EntityHitResult getEntityCollision(Vec3d currentPosition, Vec3d nextPosition) { + return ProjectileUtil.getEntityCollision(this.world, this, currentPosition, nextPosition, this.getBoundingBox().stretch(this.getVelocity()).expand(1.0D), this::canHit); + } + + public abstract DyeColor getDyeColor(); + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/MiningProjectileEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/MiningProjectileEntity.java new file mode 100644 index 0000000000..e20f1108c0 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/MiningProjectileEntity.java @@ -0,0 +1,97 @@ +package de.dafuqs.spectrum.entity.entity; + +import de.dafuqs.spectrum.entity.SpectrumEntityTypes; +import de.dafuqs.spectrum.helpers.AoEHelper; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import net.minecraft.block.BlockState; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ToolItem; +import net.minecraft.util.DyeColor; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.EntityHitResult; +import net.minecraft.world.World; + +import java.util.function.Predicate; + +public class MiningProjectileEntity extends MagicProjectileEntity { + + private int miningRange = 1; + private ItemStack toolStack = ItemStack.EMPTY; + + public MiningProjectileEntity(EntityType type, World world) { + super(type, world); + } + + public MiningProjectileEntity(double x, double y, double z, World world) { + this(SpectrumEntityTypes.MINING_PROJECTILE, world); + this.refreshPositionAndAngles(x, y, z, this.getYaw(), this.getPitch()); + this.refreshPosition(); + } + + public MiningProjectileEntity(World world, LivingEntity owner) { + this(owner.getX(), owner.getEyeY() - 0.10000000149011612D, owner.getZ(), world); + this.setOwner(owner); + this.setRotation(owner.getYaw(), owner.getPitch()); + } + + public static MiningProjectileEntity shoot(World world, LivingEntity entity, ItemStack stack) { + MiningProjectileEntity projectile = new MiningProjectileEntity(world, entity); + projectile.setVelocity(entity, entity.getPitch(), entity.getYaw(), 0.0F, 2.0F, 1.0F); + projectile.toolStack = stack.copy(); + world.spawnEntity(projectile); + return projectile; + } + + @Override + protected void initDataTracker() { + + } + + @Override + public void tick() { + super.tick(); + this.spawnParticles(1); + } + + private void spawnParticles(int amount) { + for (int j = 0; j < amount; ++j) { + this.world.addParticle(SpectrumParticleTypes.WHITE_CRAFTING, this.getParticleX(0.5D), this.getRandomBodyY(), this.getParticleZ(0.5D), 0, 0, 0); + } + } + + @Override + protected void onEntityHit(EntityHitResult entityHitResult) { + super.onEntityHit(entityHitResult); + this.discard(); + } + + @Override + protected void onBlockHit(BlockHitResult blockHitResult) { + super.onBlockHit(blockHitResult); + this.playSound(this.getHitSound(), 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F)); + + Entity entity = getOwner(); + if (entity instanceof PlayerEntity player) { + Predicate minablePredicate = state -> { + int miningLevel = this.toolStack.getItem() instanceof ToolItem toolItem ? toolItem.getMaterial().getMiningLevel() : 1; + int efficiency = EnchantmentHelper.getLevel(Enchantments.EFFICIENCY, this.toolStack); + return state.getBlock().getHardness() <= miningLevel + efficiency; + }; + AoEHelper.breakBlocksAround(player, this.toolStack, blockHitResult.getBlockPos(), this.miningRange, minablePredicate); + } + + this.discard(); + } + + @Override + public DyeColor getDyeColor() { + return DyeColor.WHITE; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/MoltenFishingBobberEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/MoltenFishingBobberEntity.java index 34568cac69..884160e791 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/MoltenFishingBobberEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/MoltenFishingBobberEntity.java @@ -22,7 +22,7 @@ public MoltenFishingBobberEntity(EntityType entityType, World world) { @Override public void tick() { super.tick(); - if(!world.isClient && age % 20 == 0 && isOnGround()) { + if (!world.isClient && age % 20 == 0 && isOnGround()) { FirestarterMobBlock.causeFire((ServerWorld) world, getBlockPos(), Direction.DOWN); } } diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/PhantomFrameEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/PhantomFrameEntity.java new file mode 100644 index 0000000000..e460c73612 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/PhantomFrameEntity.java @@ -0,0 +1,67 @@ +package de.dafuqs.spectrum.entity.entity; + +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.decoration.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +public class PhantomFrameEntity extends ItemFrameEntity { + + public PhantomFrameEntity(EntityType entityType, World world) { + super(entityType, world); + } + + public PhantomFrameEntity(World world, BlockPos pos, Direction facing) { + this(SpectrumEntityTypes.PHANTOM_FRAME, world, pos, facing); + } + + public PhantomFrameEntity(EntityType type, World world, BlockPos pos, Direction facing) { + super(type, world, pos, facing); + } + + @Override + public boolean isInvisible() { + if (this.getHeldItemStack().isEmpty()) { + return super.isInvisible(); + } else { + return true; + } + } + + @Override + protected ItemStack getAsItemStack() { + return new ItemStack(SpectrumItems.PHANTOM_FRAME); + } + + @Override + public void setHeldItemStack(ItemStack value, boolean update) { + super.setHeldItemStack(value, update); + if (update && this.isAlive() && !this.world.isClient) { + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.END_ROD, 10, new Vec3d(0, 0, 0), new Vec3d(0.1, 0.1, 0.1)); + world.playSoundFromEntity(null, this, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 0.5F, 1.0F); + } + } + + @Override + public boolean damage(DamageSource source, float amount) { + boolean success = super.damage(source, amount); + if (success && this.isAlive() && !this.world.isClient) { + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.END_ROD, 10, new Vec3d(0, 0, 0), new Vec3d(0.1, 0.1, 0.1)); + world.playSoundFromEntity(null, this, SpectrumSoundEvents.ENCHANTER_DING, SoundCategory.BLOCKS, 0.5F, 1.0F); + } + return success; + } + + public boolean isRedstonePowered() { + return this.getWorld().getReceivedRedstonePower(this.getBlockPos()) > 0; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/PhantomGlowFrameEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/PhantomGlowFrameEntity.java new file mode 100644 index 0000000000..10924d8d62 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/PhantomGlowFrameEntity.java @@ -0,0 +1,58 @@ +package de.dafuqs.spectrum.entity.entity; + +import de.dafuqs.spectrum.entity.SpectrumEntityTypes; +import de.dafuqs.spectrum.registries.SpectrumItems; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.decoration.ItemFrameEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; + +public class PhantomGlowFrameEntity extends PhantomFrameEntity { + + public PhantomGlowFrameEntity(EntityType entityType, World world) { + super(entityType, world); + } + + public PhantomGlowFrameEntity(World world, BlockPos pos, Direction facing) { + this(SpectrumEntityTypes.GLOW_PHANTOM_FRAME, world, pos, facing); + } + + public PhantomGlowFrameEntity(EntityType type, World world, BlockPos pos, Direction facing) { + super(type, world, pos, facing); + } + + @Override + protected ItemStack getAsItemStack() { + return new ItemStack(SpectrumItems.GLOW_PHANTOM_FRAME); + } + + @Override + public SoundEvent getRemoveItemSound() { + return SoundEvents.ENTITY_GLOW_ITEM_FRAME_REMOVE_ITEM; + } + + @Override + public SoundEvent getBreakSound() { + return SoundEvents.ENTITY_GLOW_ITEM_FRAME_BREAK; + } + + @Override + public SoundEvent getPlaceSound() { + return SoundEvents.ENTITY_GLOW_ITEM_FRAME_PLACE; + } + + @Override + public SoundEvent getAddItemSound() { + return SoundEvents.ENTITY_GLOW_ITEM_FRAME_ADD_ITEM; + } + + @Override + public SoundEvent getRotateItemSound() { + return SoundEvents.ENTITY_GLOW_ITEM_FRAME_ROTATE_ITEM; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/ShootingStarEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/ShootingStarEntity.java index bea1fa6865..461b79c905 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/ShootingStarEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/ShootingStarEntity.java @@ -46,13 +46,13 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockLocating; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import org.jetbrains.annotations.NotNull; import java.util.List; -import java.util.Random; import java.util.stream.Collectors; public class ShootingStarEntity extends Entity { @@ -101,7 +101,7 @@ private ShootingStarEntity(@NotNull ShootingStarEntity entity) { public static void doShootingStarSpawnsForPlayers(@NotNull ServerWorld serverWorld) { for (PlayerEntity playerEntity : serverWorld.getEntitiesByType(EntityType.PLAYER, Entity::isAlive)) { if (!playerEntity.isSpectator() - && AdvancementHelper.hasAdvancement(playerEntity, SpectrumItems.SHOOTING_STAR.getCloakAdvancementIdentifier()) + && AdvancementHelper.hasAdvancement(playerEntity, SpectrumItems.STAR_FRAGMENT.getCloakAdvancementIdentifier()) && serverWorld.getRandom().nextFloat() < getShootingStarChanceWithMultiplier(playerEntity)) { // 1 % chance for each cycle to spawn a lot of shooting stars for the player @@ -127,7 +127,7 @@ public static void spawnShootingStar(ServerWorld serverWorld, @NotNull PlayerEnt // If the player explicitly searches for shooting stars give them a small boost :) // That these things increase the visibility of shooting stars is explicitly stated - // in the manual, just not that these actually give a boost, too + // in the guidebook, just not that these actually give a boost, too public static float getShootingStarChanceWithMultiplier(@NotNull PlayerEntity playerEntity) { int multiplier = 1; ItemStack handStack = playerEntity.getMainHandStack(); @@ -158,31 +158,42 @@ public static void playHitParticles(World world, double x, double y, double z, S } } + @Override public boolean collidesWith(Entity other) { return canCollide(this, other); } + @Override public boolean isCollidable() { return true; } + @Override + public boolean canHit() { + return !this.isRemoved(); + } + + @Override public boolean isPushable() { return true; } + @Override protected Vec3d positionInPortal(Direction.Axis portalAxis, BlockLocating.Rectangle portalRect) { return LivingEntity.positionInPortal(super.positionInPortal(portalAxis, portalRect)); } + @Override protected void initDataTracker() { this.getDataTracker().startTracking(SHOOTING_STAR_TYPE, ShootingStarBlock.Type.COLORFUL.ordinal()); this.getDataTracker().startTracking(PLAYER_PLACED, false); this.getDataTracker().startTracking(HARDENED, false); } + @Override public void tick() { super.tick(); - this.tickNetherPortal(); + this.tickPortal(); boolean wasOnGround = this.onGround; double previousXVelocity = this.getVelocity().getX(); @@ -235,7 +246,7 @@ public void tick() { collidingEntities.forEach(entity -> { if (entity.getY() >= this.getBoundingBox().maxY) { entity.fallDistance = 0F; - if (this.collides()) { + if (this.canHit()) { entity.setPosition(entity.getPos().x, this.getBoundingBox().maxY, entity.getPos().z); } entity.move(MovementType.SHULKER_BOX, this.getVelocity()); @@ -250,13 +261,15 @@ public void tick() { playGroundParticles(); } } else { - playFallingParticles(); + if (world.random.nextBoolean()) { + playFallingParticles(); + } } } } else { // despawning this.age++; - if (this.age < 6000 && !playerPlaced && !hardened) { + if (this.age > 6000 && !playerPlaced && !hardened) { this.discard(); } @@ -272,8 +285,8 @@ public void tick() { ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), shootingStarStack); this.world.spawnEntity(itemEntity); } else { - ItemStack shootingStarStack = SpectrumItems.SHOOTING_STAR.getDefaultStack(); - ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), shootingStarStack); + ItemStack starFragmentStack = SpectrumItems.STAR_FRAGMENT.getDefaultStack(); + ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), starFragmentStack); this.world.spawnEntity(itemEntity); } this.discard(); @@ -292,7 +305,7 @@ public void tick() { } if (!hardened && !wasOnGround && onGround && previousYVelocity < -0.5) { // hitting the ground after a long fall - SpectrumS2CPacketSender.playParticleWithExactOffsetAndVelocity((ServerWorld) world, getPos(), ParticleTypes.EXPLOSION, 1, new Vec3d(0, 0, 0), new Vec3d(0, 0, 0)); + SpectrumS2CPacketSender.playParticleWithExactVelocity((ServerWorld) world, getPos(), ParticleTypes.EXPLOSION, 1, Vec3d.ZERO); if (!spawnLoot) { SpectrumS2CPacketSender.sendPlayShootingStarParticles(this); world.playSound(null, this.getBlockPos(), SpectrumSoundEvents.SHOOTING_STAR_CRACKER, SoundCategory.BLOCKS, 1.0F, 1.0F); @@ -332,6 +345,7 @@ public void onPlayerCollision(PlayerEntity player) { } } + @Override public void pushAwayFrom(Entity entity) { if (entity.getBoundingBox().minY <= this.getBoundingBox().minY) { super.pushAwayFrom(entity); @@ -342,10 +356,6 @@ public Item asItem() { return this.getShootingStarType().getBlock().asItem(); } - public boolean collides() { - return !this.isRemoved(); - } - public void playGroundParticles() { float randomScale = 0.5F + random.nextFloat(); int randomLifetime = 30 + random.nextInt(20); @@ -400,6 +410,7 @@ public List getLoot(ServerWorld serverWorld, Identifier lootTableId) .build(LootContextTypes.ENTITY)); } + @Override public Text getName() { Text text = this.getCustomName(); return (text != null ? text : asItem().getName()); @@ -419,9 +430,9 @@ public boolean handleAttack(Entity attacker) { } if (this.availableHits <= 0) { - SpectrumS2CPacketSender.playParticleWithExactOffsetAndVelocity((ServerWorld) world, this.getPos(), ParticleTypes.EXPLOSION, 1, new Vec3d(0, 0, 0), new Vec3d(0, 0, 0)); + SpectrumS2CPacketSender.playParticleWithExactVelocity((ServerWorld) world, this.getPos(), ParticleTypes.EXPLOSION, 1, Vec3d.ZERO); - ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), SpectrumItems.SHOOTING_STAR.getDefaultStack()); + ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), SpectrumItems.STAR_FRAGMENT.getDefaultStack()); itemEntity.addVelocity(0, 0.15, 0); this.world.spawnEntity(itemEntity); this.discard(); @@ -429,7 +440,7 @@ public boolean handleAttack(Entity attacker) { return true; } } - this.emitGameEvent(GameEvent.ENTITY_DAMAGED, attacker); + this.emitGameEvent(GameEvent.ENTITY_DAMAGE, attacker); } double attackerOffsetX = this.getX() - attacker.getX(); @@ -442,7 +453,7 @@ public boolean handleAttack(Entity attacker) { collidingEntities.forEach(entity -> { if (entity.getY() >= this.getBoundingBox().maxY) { entity.fallDistance = 0F; - if (this.collides()) { + if (this.canHit()) { entity.setPosition(entity.getPos().x, this.getBoundingBox().maxY, entity.getPos().z); } entity.move(MovementType.SHULKER_BOX, this.getVelocity()); @@ -474,9 +485,9 @@ public boolean damage(DamageSource damageSource, float amount) { if (amount > 5 && (damageSource == DamageSource.ANVIL || damageSource == SpectrumDamageSources.FLOATBLOCK)) { this.playHitParticles(); - ItemStack shootingStarStack = SpectrumItems.SHOOTING_STAR.getDefaultStack(); - shootingStarStack.setCount(2); - ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), shootingStarStack); + ItemStack starFragmentStack = SpectrumItems.STAR_FRAGMENT.getDefaultStack(); + starFragmentStack.setCount(2); + ItemEntity itemEntity = new ItemEntity(this.world, this.getX(), this.getY(), this.getZ(), starFragmentStack); this.world.spawnEntity(itemEntity); this.discard(); return true; @@ -495,6 +506,7 @@ public void setShootingStarType(ShootingStarBlock.@NotNull Type type, boolean pl this.getDataTracker().set(HARDENED, hardened); } + @Override public void writeCustomDataToNbt(@NotNull NbtCompound tag) { tag.putShort("Age", (short) this.age); tag.putString("Type", this.getShootingStarType().getName()); @@ -503,6 +515,7 @@ public void writeCustomDataToNbt(@NotNull NbtCompound tag) { tag.putBoolean("Hardened", this.dataTracker.get(HARDENED)); } + @Override public void readCustomDataFromNbt(@NotNull NbtCompound tag) { this.age = tag.getShort("Age"); if (tag.contains("LastCollisionCount", NbtElement.INT_TYPE)) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/entity/SpectrumFishingBobberEntity.java b/src/main/java/de/dafuqs/spectrum/entity/entity/SpectrumFishingBobberEntity.java index 5a61dcef5d..ff9d067723 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/entity/SpectrumFishingBobberEntity.java +++ b/src/main/java/de/dafuqs/spectrum/entity/entity/SpectrumFishingBobberEntity.java @@ -42,6 +42,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -49,7 +50,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.Random; // yeah, this pretty much is a full reimplementation. Sadge // I wanted to use more of FishingBobberEntity for mod compat, @@ -82,7 +82,7 @@ public abstract class SpectrumFishingBobberEntity extends ProjectileEntity { public SpectrumFishingBobberEntity(EntityType type, World world, int luckOfTheSeaLevel, int lureLevel, int exuberanceLevel, int bigCatchLevel, boolean inventoryInsertion, boolean ablaze) { super(type, world); - this.velocityRandom = new Random(); + this.velocityRandom = Random.create(); this.inTheOpen = true; this.state = SpectrumFishingBobberEntity.State.FLYING; this.ignoreCameraFrustum = true; @@ -107,16 +107,16 @@ public SpectrumFishingBobberEntity(EntityType entityType, PlayerEntity thrower, float i = MathHelper.sin(-g * 0.017453292F - 3.1415927F); float j = -MathHelper.cos(-f * 0.017453292F); float k = MathHelper.sin(-f * 0.017453292F); - double d = thrower.getX() - (double)i * 0.3D; + double d = thrower.getX() - (double) i * 0.3D; double e = thrower.getEyeY(); - double l = thrower.getZ() - (double)h * 0.3D; + double l = thrower.getZ() - (double) h * 0.3D; this.refreshPositionAndAngles(d, e, l, g, f); Vec3d vec3d = new Vec3d((-i), MathHelper.clamp(-(k / j), -5.0F, 5.0F), (-h)); double m = vec3d.length(); vec3d = vec3d.multiply(0.6D / m + 0.5D + this.random.nextGaussian() * 0.0045D, 0.6D / m + 0.5D + this.random.nextGaussian() * 0.0045D, 0.6D / m + 0.5D + this.random.nextGaussian() * 0.0045D); this.setVelocity(vec3d); - this.setYaw((float)(MathHelper.atan2(vec3d.x, vec3d.z) * 57.2957763671875D)); - this.setPitch((float)(MathHelper.atan2(vec3d.y, vec3d.horizontalLength()) * 57.2957763671875D)); + this.setYaw((float) (MathHelper.atan2(vec3d.x, vec3d.z) * 57.2957763671875D)); + this.setPitch((float) (MathHelper.atan2(vec3d.y, vec3d.horizontalLength()) * 57.2957763671875D)); this.prevYaw = this.getYaw(); this.prevPitch = this.getPitch(); } @@ -216,12 +216,12 @@ public void tick() { if (this.state == State.BOBBING) { Vec3d vec3d = this.getVelocity(); - double d = this.getY() + vec3d.y - (double)blockPos.getY() - (double)f; + double d = this.getY() + vec3d.y - (double) blockPos.getY() - (double) f; if (Math.abs(d) < 0.01D) { d += Math.signum(d) * 0.1D; } - this.setVelocity(vec3d.x * 0.9D, vec3d.y - d * (double)this.random.nextFloat() * 0.2D, vec3d.z * 0.9D); + this.setVelocity(vec3d.x * 0.9D, vec3d.y - d * (double) this.random.nextFloat() * 0.2D, vec3d.z * 0.9D); if (this.hookCountdown <= 0 && this.fishTravelCountdown <= 0) { this.inTheOpen = true; } else { @@ -231,7 +231,7 @@ public void tick() { if (bl) { this.outOfOpenFluidTicks = Math.max(0, this.outOfOpenFluidTicks - 1); if (this.caughtFish) { - this.setVelocity(this.getVelocity().add(0.0D, -0.1D * (double)this.velocityRandom.nextFloat() * (double)this.velocityRandom.nextFloat(), 0.0D)); + this.setVelocity(this.getVelocity().add(0.0D, -0.1D * (double) this.velocityRandom.nextFloat() * (double) this.velocityRandom.nextFloat(), 0.0D)); } if (!this.world.isClient) { @@ -253,24 +253,26 @@ public void tick() { this.setVelocity(Vec3d.ZERO); } - + this.setVelocity(this.getVelocity().multiply(0.92D)); this.refreshPosition(); } } - protected void onHookedEntity(Entity hookedEntity) { } + protected void onHookedEntity(Entity hookedEntity) { + } - protected void hookedEntityTick(Entity hookedEntity) { } + protected void hookedEntityTick(Entity hookedEntity) { + } public ItemStack getFishingRod(PlayerEntity player) { ItemStack itemStack = player.getMainHandStack(); - if(itemStack.getItem() instanceof SpectrumFishingRodItem) { + if (itemStack.getItem() instanceof SpectrumFishingRodItem) { return itemStack; } itemStack = player.getOffHandStack(); - if(itemStack.getItem() instanceof SpectrumFishingRodItem) { + if (itemStack.getItem() instanceof SpectrumFishingRodItem) { return itemStack; } return ItemStack.EMPTY; @@ -312,7 +314,7 @@ public void updateHookedEntityId(@Nullable Entity entity) { } public void tickFishingLogic(BlockPos pos) { - ServerWorld serverWorld = (ServerWorld)this.world; + ServerWorld serverWorld = (ServerWorld) this.world; int i = 1; BlockPos blockPos = pos.up(); if (this.random.nextFloat() < 0.25F && this.world.hasRain(blockPos)) { @@ -373,19 +375,19 @@ public void tickFishingLogic(BlockPos pos) { this.waitCountdown -= i; f = 0.15F; if (this.waitCountdown < 20) { - f += (float)(20 - this.waitCountdown) * 0.05F; + f += (float) (20 - this.waitCountdown) * 0.05F; } else if (this.waitCountdown < 40) { - f += (float)(40 - this.waitCountdown) * 0.02F; + f += (float) (40 - this.waitCountdown) * 0.02F; } else if (this.waitCountdown < 60) { - f += (float)(60 - this.waitCountdown) * 0.01F; + f += (float) (60 - this.waitCountdown) * 0.01F; } if (this.random.nextFloat() < f) { g = MathHelper.nextFloat(this.random, 0.0F, 360.0F) * 0.017453292F; h = MathHelper.nextFloat(this.random, 25.0F, 60.0F); - d = this.getX() + (double)(MathHelper.sin(g) * h) * 0.1D; - e = ((float)MathHelper.floor(this.getY()) + 1.0F); - j = this.getZ() + (double)(MathHelper.cos(g) * h) * 0.1D; + d = this.getX() + (double) (MathHelper.sin(g) * h) * 0.1D; + e = ((float) MathHelper.floor(this.getY()) + 1.0F); + j = this.getZ() + (double) (MathHelper.cos(g) * h) * 0.1D; blockState = serverWorld.getBlockState(new BlockPos(d, e - 1.0D, j)); Pair particles = getFluidParticles(blockState); @@ -409,11 +411,11 @@ public void tickFishingLogic(BlockPos pos) { @Nullable private Pair getFluidParticles(BlockState blockState) { Pair particles = null; - if(world.getBlockState(getBlockPos()).getBlock() instanceof SpectrumFluidBlock spectrumFluidBlock) { + if (world.getBlockState(getBlockPos()).getBlock() instanceof SpectrumFluidBlock spectrumFluidBlock) { particles = spectrumFluidBlock.getFishingParticles(); - } else if(blockState.isOf(Blocks.LAVA)) { + } else if (blockState.isOf(Blocks.LAVA)) { particles = new Pair<>(ParticleTypes.FLAME, SpectrumParticleTypes.LAVA_FISHING); - } else if(blockState.isOf(Blocks.WATER)) { + } else if (blockState.isOf(Blocks.WATER)) { particles = new Pair<>(ParticleTypes.BUBBLE, ParticleTypes.FISHING); } return particles; @@ -422,9 +424,9 @@ private Pair getFluidParticles(BlockSt public boolean isInTheOpen(BlockPos pos) { PositionType positionType = PositionType.INVALID; - for(int i = -1; i <= 2; ++i) { + for (int i = -1; i <= 2; ++i) { PositionType positionType2 = this.getPositionType(pos.add(-2, i, -2), pos.add(2, i, 2)); - switch(positionType2) { + switch (positionType2) { case INVALID: return false; case ABOVE_FLUID: @@ -468,11 +470,11 @@ public int use(ItemStack usedItem) { int i = 0; if (this.hookedEntity != null) { this.pullHookedEntity(this.hookedEntity); - SpectrumAdvancementCriteria.FISHING_ROD_HOOKED.trigger((ServerPlayerEntity)playerEntity, usedItem, this, null, Collections.emptyList()); - this.world.sendEntityStatus(this, (byte)31); + SpectrumAdvancementCriteria.FISHING_ROD_HOOKED.trigger((ServerPlayerEntity) playerEntity, usedItem, this, null, Collections.emptyList()); + this.world.sendEntityStatus(this, (byte) 31); i = this.hookedEntity instanceof ItemEntity ? 3 : 5; } else if (this.hookCountdown > 0) { - if(!tryCatchEntity(usedItem, playerEntity, (ServerWorld) this.world, this.getBlockPos())) { + if (!tryCatchEntity(usedItem, playerEntity, (ServerWorld) this.world, this.getBlockPos())) { catchLoot(usedItem, playerEntity); } @@ -492,16 +494,16 @@ public int use(ItemStack usedItem) { private boolean tryCatchEntity(ItemStack usedItem, PlayerEntity playerEntity, ServerWorld world, BlockPos blockPos) { Optional catchedEntityType = EntityFishingDataLoader.tryCatchEntity(world, blockPos, this.bigCatchLevel); - if(catchedEntityType.isPresent()) { + if (catchedEntityType.isPresent()) { Entity entity = catchedEntityType.get().spawn(world, null, null, playerEntity, blockPos, SpawnReason.TRIGGERED, false, false); - if(entity != null) { + if (entity != null) { double xDif = playerEntity.getX() - this.getX(); double yDif = playerEntity.getY() - this.getY(); double zDif = playerEntity.getZ() - this.getZ(); double velocityMod = 0.15D; entity.setVelocity(xDif * velocityMod, yDif * velocityMod + Math.sqrt(Math.sqrt(xDif * xDif + yDif * yDif + zDif * zDif)) * 0.08D, zDif * velocityMod); - if(isAblaze()) { + if (isAblaze()) { entity.setOnFireFor(4); } @@ -517,7 +519,7 @@ private boolean tryCatchEntity(ItemStack usedItem, PlayerEntity playerEntity, Se } protected void catchLoot(ItemStack usedItem, PlayerEntity playerEntity) { - LootContext.Builder builder = (new LootContext.Builder((ServerWorld)this.world)).parameter(LootContextParameters.ORIGIN, this.getPos()).parameter(LootContextParameters.TOOL, usedItem).parameter(LootContextParameters.THIS_ENTITY, this).random(this.random).luck((float)this.luckOfTheSeaLevel + playerEntity.getLuck()); + LootContext.Builder builder = (new LootContext.Builder((ServerWorld) this.world)).parameter(LootContextParameters.ORIGIN, this.getPos()).parameter(LootContextParameters.TOOL, usedItem).parameter(LootContextParameters.THIS_ENTITY, this).random(this.random).luck((float) this.luckOfTheSeaLevel + playerEntity.getLuck()); LootTable lootTable = this.world.getServer().getLootManager().getTable(LOOT_IDENTIFIER); List list = lootTable.generateLoot(builder.build(LootContextTypes.FISHING)); SpectrumAdvancementCriteria.FISHING_ROD_HOOKED.trigger((ServerPlayerEntity) playerEntity, usedItem, this, null, list); @@ -528,7 +530,7 @@ protected void catchLoot(ItemStack usedItem, PlayerEntity playerEntity) { } } - if(isAblaze()) { + if (isAblaze()) { list = FoundryEnchantment.applyAutoSmelt(world, list); } @@ -536,7 +538,7 @@ protected void catchLoot(ItemStack usedItem, PlayerEntity playerEntity) { for (ItemStack itemStack : list) { int experienceAmount = this.random.nextInt((int) (6 * exuberanceMod) + 1); - if(this.inventoryInsertion) { + if (this.inventoryInsertion) { Support.givePlayer(playerEntity, itemStack); playerEntity.addExperience(experienceAmount); } else { @@ -550,7 +552,7 @@ protected void catchLoot(ItemStack usedItem, PlayerEntity playerEntity) { this.world.spawnEntity(itemEntity); // experience - if(experienceAmount > 0) { + if (experienceAmount > 0) { playerEntity.world.spawnEntity(new ExperienceOrbEntity(playerEntity.world, playerEntity.getX(), playerEntity.getY() + 0.5D, playerEntity.getZ() + 0.5D, experienceAmount)); } } @@ -559,7 +561,7 @@ protected void catchLoot(ItemStack usedItem, PlayerEntity playerEntity) { @Override public void handleStatus(byte status) { - if (status == 31 && this.world.isClient && this.hookedEntity instanceof PlayerEntity && ((PlayerEntity)this.hookedEntity).isMainPlayer()) { + if (status == 31 && this.world.isClient && this.hookedEntity instanceof PlayerEntity && ((PlayerEntity) this.hookedEntity).isMainPlayer()) { this.pullHookedEntity(this.hookedEntity); } @@ -601,7 +603,7 @@ public void setPlayerFishHook(@Nullable SpectrumFishingBobberEntity fishingBobbe @Nullable public PlayerEntity getPlayerOwner() { Entity entity = this.getOwner(); - return entity instanceof PlayerEntity ? (PlayerEntity)entity : null; + return entity instanceof PlayerEntity ? (PlayerEntity) entity : null; } @Nullable @@ -631,5 +633,5 @@ private enum PositionType { INSIDE_FLUID, INVALID } - + } diff --git a/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigEntityModel.java b/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigEntityModel.java index 3146046391..7803fc9174 100755 --- a/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigEntityModel.java +++ b/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigEntityModel.java @@ -9,14 +9,14 @@ // Made with Blockbench 4.5.0 public class EggLayingWoolyPigEntityModel extends EntityModel { - + public static ModelPart torso; private final ModelPart head; private final ModelPart left_foreleg; private final ModelPart right_foreleg; private final ModelPart left_backleg; private final ModelPart right_backleg; - + public EggLayingWoolyPigEntityModel(ModelPart root) { super(); torso = root.getChild("torso"); @@ -26,41 +26,43 @@ public EggLayingWoolyPigEntityModel(ModelPart root) { this.left_backleg = torso.getChild("left_backleg"); this.right_backleg = torso.getChild("right_backleg"); } + public static TexturedModelData getTexturedModelData() { ModelData modelData = new ModelData(); ModelPartData modelPartData = modelData.getRoot(); ModelPartData torso = modelPartData.addChild("torso", ModelPartBuilder.create() - .uv(42, 47).cuboid(-5.0F, -14.0F, -7.0F, 10.0F, 8.0F, 14.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); - + .uv(42, 47).cuboid(-5.0F, -14.0F, -7.0F, 10.0F, 8.0F, 14.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); + ModelPartData head = torso.addChild("head", ModelPartBuilder.create() - .uv(56, 24).cuboid(-4.0F, -6.0F, -6.0F, 8.0F, 8.0F, 8.0F, new Dilation(0.0F)) - .uv(0, 44).cuboid(-2.5F, -2.0F, -7.0F, 5.0F, 3.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -13.0F, -7.0F)); - + .uv(56, 24).cuboid(-4.0F, -6.0F, -6.0F, 8.0F, 8.0F, 8.0F, new Dilation(0.0F)) + .uv(0, 44).cuboid(-2.5F, -2.0F, -7.0F, 5.0F, 3.0F, 1.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -13.0F, -7.0F)); + head.addChild("ear_r1", ModelPartBuilder.create() - .uv(0, 0).cuboid(7.0964F, -13.0939F, -10.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, -0.3927F)); - + .uv(0, 0).cuboid(7.0964F, -13.0939F, -10.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, -0.3927F)); + head.addChild("ear_r2", ModelPartBuilder.create() - .uv(0, 32).cuboid(-10.0964F, -13.0939F, -10.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, 0.3927F)); - + .uv(0, 32).cuboid(-10.0964F, -13.0939F, -10.5F, 3.0F, 7.0F, 5.0F, new Dilation(0.0F)), ModelTransform.of(0.0F, 10.0F, 6.0F, 0.0F, 0.0F, 0.3927F)); + torso.addChild("left_foreleg", ModelPartBuilder.create() - .uv(54, 69).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, new Dilation(0.0F)), ModelTransform.pivot(-3.0F, -6.0F, -4.0F)); - + .uv(54, 69).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, new Dilation(0.0F)), ModelTransform.pivot(-3.0F, -6.0F, -4.0F)); + torso.addChild("right_foreleg", ModelPartBuilder.create() - .uv(38, 69).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, -6.0F, -4.0F)); - + .uv(38, 69).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 6.0F, 4.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, -6.0F, -4.0F)); + torso.addChild("left_backleg", ModelPartBuilder.create() - .uv(0, 61).cuboid(-3.0F, -2.0F, -3.0F, 5.0F, 6.0F, 6.0F, new Dilation(0.0F)) - .uv(61, 40).cuboid(-3.0F, 4.0F, 0.0F, 3.0F, 4.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(-3.0F, -8.0F, 5.0F)); - + .uv(0, 61).cuboid(-3.0F, -2.0F, -3.0F, 5.0F, 6.0F, 6.0F, new Dilation(0.0F)) + .uv(61, 40).cuboid(-3.0F, 4.0F, 0.0F, 3.0F, 4.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(-3.0F, -8.0F, 5.0F)); + torso.addChild("right_backleg", ModelPartBuilder.create() - .uv(39, 34).cuboid(-2.0F, -2.0F, -3.0F, 5.0F, 6.0F, 6.0F, new Dilation(0.0F)) - .uv(0, 12).cuboid(0.0F, 4.0F, 0.0F, 3.0F, 4.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, -8.0F, 5.0F)); - + .uv(39, 34).cuboid(-2.0F, -2.0F, -3.0F, 5.0F, 6.0F, 6.0F, new Dilation(0.0F)) + .uv(0, 12).cuboid(0.0F, 4.0F, 0.0F, 3.0F, 4.0F, 3.0F, new Dilation(0.0F)), ModelTransform.pivot(3.0F, -8.0F, 5.0F)); + torso.addChild("tail", ModelPartBuilder.create() - .uv(22, 61).cuboid(-2.5F, -15.0F, 7.0F, 5.0F, 5.0F, 5.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -2.0F, -1.0F)); - + .uv(22, 61).cuboid(-2.5F, -15.0F, 7.0F, 5.0F, 5.0F, 5.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -2.0F, -1.0F)); + return TexturedModelData.of(modelData, 128, 128); } + @Override public void setAngles(EggLayingWoolyPigEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { this.head.pitch = headPitch * 0.017453292F; @@ -70,7 +72,7 @@ public void setAngles(EggLayingWoolyPigEntity entity, float limbSwing, float lim this.right_foreleg.pitch = MathHelper.cos(limbSwing * 0.6662F + 3.1415927F) * 1.4F * limbSwingAmount; this.left_foreleg.pitch = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount; } - + @Override public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { if (child) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigHatEntityModel.java b/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigHatEntityModel.java index 9f9a41f600..3802b39a2f 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigHatEntityModel.java +++ b/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigHatEntityModel.java @@ -7,31 +7,33 @@ import net.minecraft.client.util.math.MatrixStack; public class EggLayingWoolyPigHatEntityModel extends EntityModel { - + private final ModelPart torso; private final ModelPart head; - + public EggLayingWoolyPigHatEntityModel(ModelPart root) { super(); this.torso = root.getChild("torso"); this.head = torso.getChild("head"); } + public static TexturedModelData getTexturedModelData() { ModelData modelData = new ModelData(); ModelPartData modelPartData = modelData.getRoot(); ModelPartData torso = modelPartData.addChild("torso", ModelPartBuilder.create(), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); torso.addChild("head", ModelPartBuilder.create() - .uv(45, 0).cuboid(-5.02F, -7.0F, -7.0F, 10.0F, 7.0F, 10.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -13.0F, -7.0F)); - + .uv(45, 0).cuboid(-5.02F, -7.0F, -7.0F, 10.0F, 7.0F, 10.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, -13.0F, -7.0F)); + return TexturedModelData.of(modelData, 128, 128); } + @Override public void setAngles(EggLayingWoolyPigEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { this.head.pitch = headPitch * 0.017453292F; this.head.yaw = netHeadYaw * 0.017453292F; } - + @Override public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { if (child) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigWoolEntityModel.java b/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigWoolEntityModel.java index 5f7323d620..29be38b05c 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigWoolEntityModel.java +++ b/src/main/java/de/dafuqs/spectrum/entity/models/EggLayingWoolyPigWoolEntityModel.java @@ -7,27 +7,29 @@ import net.minecraft.client.util.math.MatrixStack; public class EggLayingWoolyPigWoolEntityModel extends EntityModel { - + private final ModelPart torso; - + public EggLayingWoolyPigWoolEntityModel(ModelPart root) { super(); this.torso = root.getChild("torso"); } + public static TexturedModelData getTexturedModelData() { ModelData modelData = new ModelData(); ModelPartData modelPartData = modelData.getRoot(); modelPartData.addChild("torso", ModelPartBuilder.create() - .uv(0, 0).cuboid(-6.5F, -15.5F, -9.5F, 13.0F, 13.0F, 19.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); - + .uv(0, 0).cuboid(-6.5F, -15.5F, -9.5F, 13.0F, 13.0F, 19.0F, new Dilation(0.0F)), ModelTransform.pivot(0.0F, 24.0F, 0.0F)); + return TexturedModelData.of(modelData, 128, 128); } + @Override public void setAngles(EggLayingWoolyPigEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - + } - + @Override public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { if (child) { diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/BidentEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/BidentEntityRenderer.java new file mode 100644 index 0000000000..3a6264bf26 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/render/BidentEntityRenderer.java @@ -0,0 +1,54 @@ +package de.dafuqs.spectrum.entity.render; + +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.registries.client.*; +import net.fabricmc.api.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.entity.*; +import net.minecraft.client.render.item.*; +import net.minecraft.client.render.model.*; +import net.minecraft.client.render.model.json.*; +import net.minecraft.client.texture.*; +import net.minecraft.client.util.math.*; +import net.minecraft.item.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; + +@Environment(EnvType.CLIENT) +public class BidentEntityRenderer extends EntityRenderer { + + private final ItemRenderer itemRenderer; + + public BidentEntityRenderer(EntityRendererFactory.Context context) { + super(context); + this.itemRenderer = context.getItemRenderer(); + } + + public void render(BidentEntity bidentEntity, float yaw, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light) { + ItemStack itemStack = bidentEntity.getStack(); + renderAsItemStack(bidentEntity, tickDelta, matrixStack, vertexConsumerProvider, light, itemStack); + super.render(bidentEntity, yaw, tickDelta, matrixStack, vertexConsumerProvider, light); + } + + private void renderAsItemStack(BidentEntity entity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, ItemStack itemStack) { + SpectrumItemPredicates.currentItemRenderMode = ModelTransformation.Mode.NONE; + BakedModel bakedModel = this.itemRenderer.getModel(itemStack, entity.world, null, entity.getId()); + + matrixStack.push(); + matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(MathHelper.lerp(tickDelta, entity.prevYaw, entity.getYaw()) - 90.0F)); + matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(-135 + MathHelper.lerp(tickDelta, entity.prevPitch, entity.getPitch()) + 90.0F)); + + float scale = 2.0F; + matrixStack.scale(scale, scale, scale); + + this.itemRenderer.renderItem(itemStack, ModelTransformation.Mode.NONE, false, matrixStack, vertexConsumerProvider, light, OverlayTexture.DEFAULT_UV, bakedModel); + + matrixStack.pop(); + } + + @Override + public Identifier getTexture(BidentEntity entity) { + return SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigEntityRenderer.java index 1dc540cb06..7abe06d531 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigEntityRenderer.java @@ -3,7 +3,7 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.entity.entity.EggLayingWoolyPigEntity; import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigEntityModel; -import de.dafuqs.spectrum.registries.SpectrumModelLayers; +import de.dafuqs.spectrum.registries.client.SpectrumModelLayers; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.render.entity.EntityRendererFactory; @@ -12,9 +12,9 @@ @Environment(EnvType.CLIENT) public class EggLayingWoolyPigEntityRenderer extends MobEntityRenderer { - + public static final Identifier TEXTURE = SpectrumCommon.locate("textures/entity/egg_laying_wooly_pig.png"); - + public EggLayingWoolyPigEntityRenderer(EntityRendererFactory.Context context) { super(context, new EggLayingWoolyPigEntityModel(context.getPart(SpectrumModelLayers.WOOLY_PIG)), 0.6F); this.addFeature(new EggLayingWoolyPigWoolFeatureRenderer(this, context.getModelLoader())); diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigWoolFeatureRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigWoolFeatureRenderer.java index c7e0bb3ed5..803e003dc8 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigWoolFeatureRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/entity/render/EggLayingWoolyPigWoolFeatureRenderer.java @@ -4,7 +4,7 @@ import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigEntityModel; import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigHatEntityModel; import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigWoolEntityModel; -import de.dafuqs.spectrum.registries.SpectrumModelLayers; +import de.dafuqs.spectrum.registries.client.SpectrumModelLayers; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; @@ -19,52 +19,52 @@ @Environment(EnvType.CLIENT) public class EggLayingWoolyPigWoolFeatureRenderer extends FeatureRenderer { - - private final EggLayingWoolyPigHatEntityModel hat; - private final EggLayingWoolyPigWoolEntityModel wool; - - public EggLayingWoolyPigWoolFeatureRenderer(EggLayingWoolyPigEntityRenderer context, EntityModelLoader loader) { - super(context); - this.hat = new EggLayingWoolyPigHatEntityModel(loader.getModelPart(SpectrumModelLayers.WOOLY_PIG_HAT)); - this.wool = new EggLayingWoolyPigWoolEntityModel(loader.getModelPart(SpectrumModelLayers.WOOLY_PIG_WOOL)); - } - - public void render(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, EggLayingWoolyPigEntity entity, float f, float g, float h, float j, float k, float l) { - if (entity.isInvisible()) { - MinecraftClient minecraftClient = MinecraftClient.getInstance(); - boolean bl = minecraftClient.hasOutline(entity); - if (bl) { - VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RenderLayer.getOutline(EggLayingWoolyPigEntityRenderer.TEXTURE)); - if (!entity.isHatless()) { - this.getContextModel().copyStateTo(this.hat); - this.hat.animateModel(entity, f, g, h); - this.hat.setAngles(entity, f, g, j, k, l); - this.hat.render(matrixStack, vertexConsumer, i, LivingEntityRenderer.getOverlay(entity, 0.0F), 0.0F, 0.0F, 0.0F, 1.0F); - } - if (!entity.isSheared()) { - this.getContextModel().copyStateTo(this.wool); - this.wool.animateModel(entity, f, g, h); - this.wool.setAngles(entity, f, g, j, k, l); - this.wool.render(matrixStack, vertexConsumer, i, LivingEntityRenderer.getOverlay(entity, 0.0F), 0.0F, 0.0F, 0.0F, 1.0F); - } - } - } else { - float[] rgbColor = EggLayingWoolyPigEntity.getRgbColor(entity.getColor()); - if (!entity.isHatless()) { - this.getContextModel().copyStateTo(this.hat); - this.hat.animateModel(entity, f, g, h); - this.hat.setAngles(entity, f, g, j, k, l); - render(this.getContextModel(), this.hat, getTexture(entity), matrixStack, vertexConsumerProvider, i, entity, f, g, j, k, l, h, rgbColor[0], rgbColor[1], rgbColor[2]); - } - if (!entity.isSheared()) { - render(this.getContextModel(), this.wool, getTexture(entity), matrixStack, vertexConsumerProvider, i, entity, f, g, j, k, l, h, rgbColor[0], rgbColor[1], rgbColor[2]); - } - } - } - - @Override - public Identifier getTexture(EggLayingWoolyPigEntity entity) { - return EggLayingWoolyPigEntityRenderer.TEXTURE; - } - + + private final EggLayingWoolyPigHatEntityModel hat; + private final EggLayingWoolyPigWoolEntityModel wool; + + public EggLayingWoolyPigWoolFeatureRenderer(EggLayingWoolyPigEntityRenderer context, EntityModelLoader loader) { + super(context); + this.hat = new EggLayingWoolyPigHatEntityModel(loader.getModelPart(SpectrumModelLayers.WOOLY_PIG_HAT)); + this.wool = new EggLayingWoolyPigWoolEntityModel(loader.getModelPart(SpectrumModelLayers.WOOLY_PIG_WOOL)); + } + + public void render(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, EggLayingWoolyPigEntity entity, float f, float g, float h, float j, float k, float l) { + if (entity.isInvisible()) { + MinecraftClient minecraftClient = MinecraftClient.getInstance(); + boolean bl = minecraftClient.hasOutline(entity); + if (bl) { + VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(RenderLayer.getOutline(EggLayingWoolyPigEntityRenderer.TEXTURE)); + if (!entity.isHatless()) { + this.getContextModel().copyStateTo(this.hat); + this.hat.animateModel(entity, f, g, h); + this.hat.setAngles(entity, f, g, j, k, l); + this.hat.render(matrixStack, vertexConsumer, i, LivingEntityRenderer.getOverlay(entity, 0.0F), 0.0F, 0.0F, 0.0F, 1.0F); + } + if (!entity.isSheared()) { + this.getContextModel().copyStateTo(this.wool); + this.wool.animateModel(entity, f, g, h); + this.wool.setAngles(entity, f, g, j, k, l); + this.wool.render(matrixStack, vertexConsumer, i, LivingEntityRenderer.getOverlay(entity, 0.0F), 0.0F, 0.0F, 0.0F, 1.0F); + } + } + } else { + float[] rgbColor = EggLayingWoolyPigEntity.getRgbColor(entity.getColor()); + if (!entity.isHatless()) { + this.getContextModel().copyStateTo(this.hat); + this.hat.animateModel(entity, f, g, h); + this.hat.setAngles(entity, f, g, j, k, l); + render(this.getContextModel(), this.hat, getTexture(entity), matrixStack, vertexConsumerProvider, i, entity, f, g, j, k, l, h, rgbColor[0], rgbColor[1], rgbColor[2]); + } + if (!entity.isSheared()) { + render(this.getContextModel(), this.wool, getTexture(entity), matrixStack, vertexConsumerProvider, i, entity, f, g, j, k, l, h, rgbColor[0], rgbColor[1], rgbColor[2]); + } + } + } + + @Override + public Identifier getTexture(EggLayingWoolyPigEntity entity) { + return EggLayingWoolyPigEntityRenderer.TEXTURE; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/GlassArrowEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/GlassArrowEntityRenderer.java new file mode 100644 index 0000000000..628f34fe8b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/render/GlassArrowEntityRenderer.java @@ -0,0 +1,79 @@ +package de.dafuqs.spectrum.entity.render; + +import de.dafuqs.spectrum.entity.entity.*; +import net.fabricmc.api.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.entity.*; +import net.minecraft.client.render.item.*; +import net.minecraft.client.render.model.*; +import net.minecraft.client.render.model.json.*; +import net.minecraft.client.texture.*; +import net.minecraft.client.util.math.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.item.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; + +@Environment(EnvType.CLIENT) +public class GlassArrowEntityRenderer extends EntityRenderer { + + private final ItemRenderer itemRenderer; + + public GlassArrowEntityRenderer(EntityRendererFactory.Context context) { + super(context); + this.itemRenderer = context.getItemRenderer(); + } + + public void render(GlassArrowEntity persistentProjectileEntity, float yaw, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light) { + ItemStack itemStack = persistentProjectileEntity.getVariant().getStack(); + renderAsItemStack(persistentProjectileEntity, tickDelta, matrixStack, vertexConsumerProvider, light, itemStack); + super.render(persistentProjectileEntity, yaw, tickDelta, matrixStack, vertexConsumerProvider, light); + } + + private void renderAsItemStack(PersistentProjectileEntity entity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, ItemStack itemStack) { + BakedModel bakedModel = this.itemRenderer.getModel(itemStack, entity.world, null, entity.getId()); + boolean hasDepth = bakedModel.hasDepth(); + + matrixStack.push(); + matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(MathHelper.lerp(tickDelta, entity.prevYaw, entity.getYaw()) - 90.0F)); + matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(getAdditionalPitch() + MathHelper.lerp(tickDelta, entity.prevPitch, entity.getPitch()))); + + float yScale = bakedModel.getTransformation().getTransformation(ModelTransformation.Mode.GROUND).scale.getY(); + matrixStack.translate(0.0, (0.25F * yScale), 0.0); + + float scale = getScale(); + matrixStack.scale(scale, scale, scale); + matrixStack.multiply(Vec3f.POSITIVE_Y.getRadialQuaternion(0)); + + float scaleX = bakedModel.getTransformation().ground.scale.getX(); + float scaleY = bakedModel.getTransformation().ground.scale.getY(); + float scaleZ = bakedModel.getTransformation().ground.scale.getZ(); + if (!hasDepth) { + float r = -0.0F * (float) (0) * 0.5F * scaleX; + float s = -0.0F * (float) (0) * 0.5F * scaleY; + float t = -0.09375F * (float) (0) * 0.5F * scaleZ; + matrixStack.translate(r, s, t); + } + float shake = (float) entity.shake - tickDelta; + if (shake > 0.0F) { + matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(-MathHelper.sin(shake * 3.0F) * shake)); + } + + this.itemRenderer.renderItem(itemStack, ModelTransformation.Mode.GROUND, false, matrixStack, vertexConsumerProvider, light, OverlayTexture.DEFAULT_UV, bakedModel); + + matrixStack.pop(); + } + + public float getScale() { + return 1.5F; + } + + public int getAdditionalPitch() { + return -45; + } + + public Identifier getTexture(GlassArrowEntity itemEntity) { + return SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/InkProjectileEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/InkProjectileEntityRenderer.java deleted file mode 100644 index 546dee3995..0000000000 --- a/src/main/java/de/dafuqs/spectrum/entity/render/InkProjectileEntityRenderer.java +++ /dev/null @@ -1,72 +0,0 @@ -package de.dafuqs.spectrum.entity.render; - -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.entity.entity.InkProjectileEntity; -import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.EntityRenderer; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.texture.SpriteAtlasTexture; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.Matrix3f; -import net.minecraft.util.math.Matrix4f; -import net.minecraft.util.math.Vec3f; - -import java.util.Random; - -public class InkProjectileEntityRenderer extends EntityRenderer { - - private static final Identifier TEXTURE = new Identifier("textures/entity/experience_orb.png"); - private static final RenderLayer LAYER = RenderLayer.getItemEntityTranslucentCull(TEXTURE); - - public InkProjectileEntityRenderer(EntityRendererFactory.Context context) { - super(context); - } - - @Override - public void render(InkProjectileEntity tEntity, float yaw, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light) { - matrixStack.push(); - Vec3f starColor = InkColor.of(DyeColor.byId(tEntity.getColor())).getColor(); - - double time = (tEntity.world.getTime() % 24000) + tickDelta + new Random(tEntity.getId()).nextInt(200); - float scale = 0.75F + 0.1F * (float) Math.sin(time / 10); - matrixStack.scale(scale, scale, scale); - - VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(LAYER); - - float h = 0.75F; - float k = 1F; - float l = 0F; - float m = 0.25F; - int s = (int)(starColor.getX() * 255.0F); - int t = (int)(starColor.getY() * 255.0F); - int u = (int)(starColor.getZ() * 255.0F); - MatrixStack.Entry entry = matrixStack.peek(); - Matrix4f matrix4f = entry.getPositionMatrix(); - Matrix3f matrix3f = entry.getNormalMatrix(); - - matrixStack.translate(0.0D, 0.10000000149011612D, 0.0D); - matrixStack.multiply(this.dispatcher.getRotation()); - matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180.0F)); - - vertex(vertexConsumer, matrix4f, matrix3f, -0.5F, -0.25F, s, t, u, h, m, light); - vertex(vertexConsumer, matrix4f, matrix3f, 0.5F, -0.25F, s, t, u, k, m, light); - vertex(vertexConsumer, matrix4f, matrix3f, 0.5F, 0.75F, s, t, u, k, l, light); - vertex(vertexConsumer, matrix4f, matrix3f, -0.5F, 0.75F, s, t, u, h, l, light); - matrixStack.pop(); - } - - private static void vertex(VertexConsumer vertexConsumer, Matrix4f positionMatrix, Matrix3f normalMatrix, float x, float y, int red, int green, int blue, float u, float v, int light) { - vertexConsumer.vertex(positionMatrix, x, y, 0.0F).color(red, green, blue, 128).texture(u, v).overlay(OverlayTexture.DEFAULT_UV).light(light).normal(normalMatrix, 0.0F, 1.0F, 0.0F).next(); - } - - @Override - public Identifier getTexture(InkProjectileEntity entity) { - return SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/InvisibleItemFrameEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/InvisibleItemFrameEntityRenderer.java deleted file mode 100644 index 764113e9ce..0000000000 --- a/src/main/java/de/dafuqs/spectrum/entity/render/InvisibleItemFrameEntityRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package de.dafuqs.spectrum.entity.render; - -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.TexturedRenderLayers; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.BlockRenderManager; -import net.minecraft.client.render.entity.EntityRendererFactory; -import net.minecraft.client.render.entity.ItemFrameEntityRenderer; -import net.minecraft.client.render.item.ItemRenderer; -import net.minecraft.client.render.model.BakedModelManager; -import net.minecraft.client.render.model.json.ModelTransformation; -import net.minecraft.client.util.ModelIdentifier; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.item.FilledMapItem; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.item.map.MapState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3f; - -public class InvisibleItemFrameEntityRenderer extends ItemFrameEntityRenderer { - - public static final ModelIdentifier NORMAL_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("item_frame", "map=false"); - public static final ModelIdentifier MAP_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("item_frame", "map=true"); - public static final ModelIdentifier GLOW_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("glow_item_frame", "map=false"); - public static final ModelIdentifier MAP_GLOW_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("glow_item_frame", "map=true"); - - private final MinecraftClient client = MinecraftClient.getInstance(); - private final ItemRenderer itemRenderer; - - public InvisibleItemFrameEntityRenderer(EntityRendererFactory.Context context) { - super(context); - this.itemRenderer = context.getItemRenderer(); - } - - protected int getBlockLight(T itemFrameEntity, BlockPos blockPos) { - return itemFrameEntity.getType() == SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME ? Math.max(5, super.getBlockLight(itemFrameEntity, blockPos)) : super.getBlockLight(itemFrameEntity, blockPos); - } - - public void render(T itemFrameEntity, float f, float g, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i) { - super.render(itemFrameEntity, f, g, matrixStack, vertexConsumerProvider, i); - matrixStack.push(); - Direction direction = itemFrameEntity.getHorizontalFacing(); - Vec3d vec3d = this.getPositionOffset(itemFrameEntity, g); - matrixStack.translate(-vec3d.getX(), -vec3d.getY(), -vec3d.getZ()); - double d = 0.46875D; - matrixStack.translate((double) direction.getOffsetX() * d, (double) direction.getOffsetY() * d, (double) direction.getOffsetZ() * d); - matrixStack.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(itemFrameEntity.getPitch())); - matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180.0F - itemFrameEntity.getYaw())); - boolean bl = itemFrameEntity.isInvisible(); - ItemStack itemStack = itemFrameEntity.getHeldItemStack(); - if (!bl) { - BlockRenderManager blockRenderManager = this.client.getBlockRenderManager(); - BakedModelManager bakedModelManager = blockRenderManager.getModels().getModelManager(); - ModelIdentifier modelIdentifier = this.getModelId(itemFrameEntity, itemStack); - matrixStack.push(); - matrixStack.translate(-0.5D, -0.5D, -0.5D); - blockRenderManager.getModelRenderer().render(matrixStack.peek(), vertexConsumerProvider.getBuffer(TexturedRenderLayers.getEntitySolid()), null, bakedModelManager.getModel(modelIdentifier), 1.0F, 1.0F, 1.0F, i, OverlayTexture.DEFAULT_UV); - matrixStack.pop(); - } - - if (!itemStack.isEmpty()) { - boolean blockRenderManager = itemStack.isOf(Items.FILLED_MAP); - if (bl) { - matrixStack.translate(0.0D, 0.0D, 0.5D); - } else { - matrixStack.translate(0.0D, 0.0D, 0.4375D); - } - - int bakedModelManager = blockRenderManager ? itemFrameEntity.getRotation() % 4 * 2 : itemFrameEntity.getRotation(); - matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion((float) bakedModelManager * 360.0F / 8.0F)); - if (blockRenderManager) { - matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(180.0F)); - float modelIdentifier = 0.0078125F; - matrixStack.scale(modelIdentifier, modelIdentifier, modelIdentifier); - matrixStack.translate(-64.0D, -64.0D, 0.0D); - Integer integer = FilledMapItem.getMapId(itemStack); - MapState mapState = FilledMapItem.getMapState(integer, itemFrameEntity.world); - matrixStack.translate(0.0D, 0.0D, -1.0D); - if (mapState != null) { - int j = this.getLight(itemFrameEntity, 15728850, i); - this.client.gameRenderer.getMapRenderer().draw(matrixStack, vertexConsumerProvider, integer, mapState, true, j); - } - } else { - int modelIdentifier = this.getLight(itemFrameEntity, 15728880, i); - matrixStack.scale(0.5F, 0.5F, 0.5F); - this.itemRenderer.renderItem(itemStack, ModelTransformation.Mode.FIXED, modelIdentifier, OverlayTexture.DEFAULT_UV, matrixStack, vertexConsumerProvider, itemFrameEntity.getId()); - } - } - - matrixStack.pop(); - } - - private int getLight(T itemFrame, int glowLight, int regularLight) { - return itemFrame.getType() == SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME ? glowLight : regularLight; - } - - private ModelIdentifier getModelId(T entity, ItemStack stack) { - boolean bl = entity.getType() == SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME; - if (stack.isOf(Items.FILLED_MAP)) { - return bl ? MAP_GLOW_FRAME_MODEL_IDENTIFIER : MAP_FRAME_MODEL_IDENTIFIER; - } else { - return bl ? GLOW_FRAME_MODEL_IDENTIFIER : NORMAL_FRAME_MODEL_IDENTIFIER; - } - } - - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/LagoonFishingBobberEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/LagoonFishingBobberEntityRenderer.java index 38c3c635fe..6482debca6 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/render/LagoonFishingBobberEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/entity/render/LagoonFishingBobberEntityRenderer.java @@ -19,7 +19,7 @@ public LagoonFishingBobberEntityRenderer(EntityRendererFactory.Context context) @Override public Identifier getTexture(SpectrumFishingBobberEntity fishingBobberEntity) { - if(fishingBobberEntity.isInTheOpen()) { + if (fishingBobberEntity.isInTheOpen()) { return TEXTURE_OPEN_WATERS; } else { return TEXTURE; @@ -27,7 +27,7 @@ public Identifier getTexture(SpectrumFishingBobberEntity fishingBobberEntity) { } public RenderLayer getLayer(SpectrumFishingBobberEntity bobber) { - if(bobber.isInTheOpen(bobber.getBlockPos())) { + if (bobber.isInTheOpen(bobber.getBlockPos())) { return LAYER_OPEN_WATERS; } else { return LAYER; diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/MagicProjectileEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/MagicProjectileEntityRenderer.java new file mode 100644 index 0000000000..b86017fb1e --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/render/MagicProjectileEntityRenderer.java @@ -0,0 +1,70 @@ +package de.dafuqs.spectrum.entity.render; + +import de.dafuqs.spectrum.energy.color.InkColor; +import de.dafuqs.spectrum.entity.entity.MagicProjectileEntity; +import net.minecraft.client.render.OverlayTexture; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.EntityRenderer; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.texture.SpriteAtlasTexture; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Matrix3f; +import net.minecraft.util.math.Matrix4f; +import net.minecraft.util.math.Vec3f; +import net.minecraft.util.math.random.Random; + +public class MagicProjectileEntityRenderer extends EntityRenderer { + + private static final Identifier TEXTURE = new Identifier("textures/entity/experience_orb.png"); + private static final RenderLayer LAYER = RenderLayer.getItemEntityTranslucentCull(TEXTURE); + + public MagicProjectileEntityRenderer(EntityRendererFactory.Context context) { + super(context); + } + + @Override + public void render(MagicProjectileEntity tEntity, float yaw, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light) { + matrixStack.push(); + Vec3f starColor = InkColor.of(tEntity.getDyeColor()).getColor(); + + double time = (tEntity.world.getTime() % 24000) + tickDelta + Random.create(tEntity.getId()).nextInt(200); + float scale = 0.75F + 0.1F * (float) Math.sin(time / 10); + matrixStack.scale(scale, scale, scale); + + VertexConsumer vertexConsumer = vertexConsumerProvider.getBuffer(LAYER); + + float h = 0.75F; + float k = 1F; + float l = 0F; + float m = 0.25F; + int s = (int) (starColor.getX() * 255.0F); + int t = (int) (starColor.getY() * 255.0F); + int u = (int) (starColor.getZ() * 255.0F); + MatrixStack.Entry entry = matrixStack.peek(); + Matrix4f matrix4f = entry.getPositionMatrix(); + Matrix3f matrix3f = entry.getNormalMatrix(); + + matrixStack.translate(0.0D, 0.10000000149011612D, 0.0D); + matrixStack.multiply(this.dispatcher.getRotation()); + matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180.0F)); + + vertex(vertexConsumer, matrix4f, matrix3f, -0.5F, -0.25F, s, t, u, h, m, light); + vertex(vertexConsumer, matrix4f, matrix3f, 0.5F, -0.25F, s, t, u, k, m, light); + vertex(vertexConsumer, matrix4f, matrix3f, 0.5F, 0.75F, s, t, u, k, l, light); + vertex(vertexConsumer, matrix4f, matrix3f, -0.5F, 0.75F, s, t, u, h, l, light); + matrixStack.pop(); + } + + private static void vertex(VertexConsumer vertexConsumer, Matrix4f positionMatrix, Matrix3f normalMatrix, float x, float y, int red, int green, int blue, float u, float v, int light) { + vertexConsumer.vertex(positionMatrix, x, y, 0.0F).color(red, green, blue, 128).texture(u, v).overlay(OverlayTexture.DEFAULT_UV).light(light).normal(normalMatrix, 0.0F, 1.0F, 0.0F).next(); + } + + @Override + public Identifier getTexture(MagicProjectileEntity entity) { + return SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/PhantomFrameEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/PhantomFrameEntityRenderer.java new file mode 100644 index 0000000000..62d89a271e --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/entity/render/PhantomFrameEntityRenderer.java @@ -0,0 +1,110 @@ +package de.dafuqs.spectrum.entity.render; + +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.entity.entity.*; +import net.minecraft.client.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.block.*; +import net.minecraft.client.render.entity.*; +import net.minecraft.client.render.item.*; +import net.minecraft.client.render.model.*; +import net.minecraft.client.render.model.json.*; +import net.minecraft.client.util.*; +import net.minecraft.client.util.math.*; +import net.minecraft.entity.decoration.*; +import net.minecraft.item.*; +import net.minecraft.item.map.*; +import net.minecraft.util.math.*; + +public class PhantomFrameEntityRenderer extends ItemFrameEntityRenderer { + + public static final ModelIdentifier NORMAL_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("item_frame", "map=false"); + public static final ModelIdentifier MAP_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("item_frame", "map=true"); + public static final ModelIdentifier GLOW_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("glow_item_frame", "map=false"); + public static final ModelIdentifier MAP_GLOW_FRAME_MODEL_IDENTIFIER = new ModelIdentifier("glow_item_frame", "map=true"); + + private final MinecraftClient client = MinecraftClient.getInstance(); + private final ItemRenderer itemRenderer; + + public PhantomFrameEntityRenderer(EntityRendererFactory.Context context) { + super(context); + this.itemRenderer = context.getItemRenderer(); + } + + @Override + protected int getBlockLight(PhantomFrameEntity itemFrameEntity, BlockPos blockPos) { + return itemFrameEntity.getType() == SpectrumEntityTypes.GLOW_PHANTOM_FRAME ? Math.max(5, super.getBlockLight(itemFrameEntity, blockPos)) : super.getBlockLight(itemFrameEntity, blockPos); + } + + @Override + public void render(PhantomFrameEntity itemFrameEntity, float f, float g, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light) { + super.render(itemFrameEntity, f, g, matrixStack, vertexConsumerProvider, light); + matrixStack.push(); + Direction direction = itemFrameEntity.getHorizontalFacing(); + Vec3d vec3d = this.getPositionOffset(itemFrameEntity, g); + matrixStack.translate(-vec3d.getX(), -vec3d.getY(), -vec3d.getZ()); + double d = 0.46875D; + matrixStack.translate((double) direction.getOffsetX() * d, (double) direction.getOffsetY() * d, (double) direction.getOffsetZ() * d); + matrixStack.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(itemFrameEntity.getPitch())); + matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180.0F - itemFrameEntity.getYaw())); + boolean bl = itemFrameEntity.isInvisible(); + ItemStack itemStack = itemFrameEntity.getHeldItemStack(); + if (!bl) { + BlockRenderManager blockRenderManager = this.client.getBlockRenderManager(); + BakedModelManager bakedModelManager = blockRenderManager.getModels().getModelManager(); + ModelIdentifier modelIdentifier = this.getModelId(itemFrameEntity, itemStack); + matrixStack.push(); + matrixStack.translate(-0.5D, -0.5D, -0.5D); + blockRenderManager.getModelRenderer().render(matrixStack.peek(), vertexConsumerProvider.getBuffer(TexturedRenderLayers.getEntitySolid()), null, bakedModelManager.getModel(modelIdentifier), 1.0F, 1.0F, 1.0F, light, OverlayTexture.DEFAULT_UV); + matrixStack.pop(); + } + + if (!itemStack.isEmpty()) { + boolean blockRenderManager = itemStack.isOf(Items.FILLED_MAP); + if (bl) { + matrixStack.translate(0.0D, 0.0D, 0.5D); + } else { + matrixStack.translate(0.0D, 0.0D, 0.4375D); + } + + int bakedModelManager = blockRenderManager ? itemFrameEntity.getRotation() % 4 * 2 : itemFrameEntity.getRotation(); + matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion((float) bakedModelManager * 360.0F / 8.0F)); + if (blockRenderManager) { + matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(180.0F)); + float scale = 0.0078125F; + matrixStack.scale(scale, scale, scale); + matrixStack.translate(-64.0D, -64.0D, 0.0D); + Integer mapId = FilledMapItem.getMapId(itemStack); + MapState mapState = FilledMapItem.getMapState(mapId, itemFrameEntity.world); + matrixStack.translate(0.0D, 0.0D, -1.0D); + if (mapState != null) { + int finalLight = this.getLight(itemFrameEntity, light); + this.client.gameRenderer.getMapRenderer().draw(matrixStack, vertexConsumerProvider, mapId, mapState, true, finalLight); + } + } else { + int finalLight = this.getLight(itemFrameEntity, light); + matrixStack.scale(0.5F, 0.5F, 0.5F); + this.itemRenderer.renderItem(itemStack, ModelTransformation.Mode.FIXED, finalLight, OverlayTexture.DEFAULT_UV, matrixStack, vertexConsumerProvider, itemFrameEntity.getId()); + } + } + + matrixStack.pop(); + } + + private int getLight(PhantomFrameEntity itemFrame, int regularLight) { + boolean isGlowPhantomFrame = itemFrame.getType() == SpectrumEntityTypes.GLOW_PHANTOM_FRAME; + boolean isRedstonePowered = itemFrame.isRedstonePowered(); + return isGlowPhantomFrame == isRedstonePowered ? regularLight : 15728850; + } + + private ModelIdentifier getModelId(PhantomFrameEntity entity, ItemStack stack) { + boolean bl = entity.getType() == SpectrumEntityTypes.GLOW_PHANTOM_FRAME; + if (stack.isOf(Items.FILLED_MAP)) { + return bl ? MAP_GLOW_FRAME_MODEL_IDENTIFIER : MAP_FRAME_MODEL_IDENTIFIER; + } else { + return bl ? GLOW_FRAME_MODEL_IDENTIFIER : NORMAL_FRAME_MODEL_IDENTIFIER; + } + } + + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/ShootingStarEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/ShootingStarEntityRenderer.java index aa4c770c85..1f2423fbcc 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/render/ShootingStarEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/entity/render/ShootingStarEntityRenderer.java @@ -18,8 +18,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import java.util.Random; - @Environment(EnvType.CLIENT) public class ShootingStarEntityRenderer extends EntityRenderer { @@ -41,7 +39,7 @@ public void render(ShootingStarEntity shootingStarEntity, float yaw, float tickD BlockPos blockpos = new BlockPos(shootingStarEntity.getX(), shootingStarEntity.getBoundingBox().maxY, shootingStarEntity.getZ()); matrixStack.translate(-0.5, 0.0, -0.5); BlockRenderManager blockRenderManager = MinecraftClient.getInstance().getBlockRenderManager(); - blockRenderManager.getModelRenderer().render(world, blockRenderManager.getModel(blockState), blockState, blockpos, matrixStack, vertexConsumerProvider.getBuffer(RenderLayers.getMovingBlockLayer(blockState)), false, new Random(), blockState.getRenderingSeed(shootingStarEntity.getBlockPos()), OverlayTexture.DEFAULT_UV); + blockRenderManager.getModelRenderer().render(world, blockRenderManager.getModel(blockState), blockState, blockpos, matrixStack, vertexConsumerProvider.getBuffer(RenderLayers.getMovingBlockLayer(blockState)), false, shootingStarEntity.getWorld().random, blockState.getRenderingSeed(shootingStarEntity.getBlockPos()), OverlayTexture.DEFAULT_UV); matrixStack.pop(); super.render(shootingStarEntity, yaw, tickDelta, matrixStack, vertexConsumerProvider, light); } diff --git a/src/main/java/de/dafuqs/spectrum/entity/render/SpectrumFishingBobberEntityRenderer.java b/src/main/java/de/dafuqs/spectrum/entity/render/SpectrumFishingBobberEntityRenderer.java index 5d76edbb69..753b1da7ea 100644 --- a/src/main/java/de/dafuqs/spectrum/entity/render/SpectrumFishingBobberEntityRenderer.java +++ b/src/main/java/de/dafuqs/spectrum/entity/render/SpectrumFishingBobberEntityRenderer.java @@ -54,15 +54,15 @@ public void render(SpectrumFishingBobberEntity bobber, float f, float g, MatrixS float l = MathHelper.lerp(g, playerEntity.prevBodyYaw, playerEntity.bodyYaw) * 0.017453292F; double d = MathHelper.sin(l); double e = MathHelper.cos(l); - double m = (double)j * 0.35D; + double m = (double) j * 0.35D; double o; double p; double q; float r; double s; if ((this.dispatcher.gameOptions == null || this.dispatcher.gameOptions.getPerspective().isFirstPerson()) && playerEntity == MinecraftClient.getInstance().player) { - s = 960.0D / this.dispatcher.gameOptions.fov; - Vec3d vec3d = this.dispatcher.camera.getProjection().getPosition((float)j * 0.525F, -0.1F); + s = 960.0D / this.dispatcher.gameOptions.getFov().getValue(); + Vec3d vec3d = this.dispatcher.camera.getProjection().getPosition((float) j * 0.525F, -0.1F); vec3d = vec3d.multiply(s); vec3d = vec3d.rotateY(k * 0.5F); vec3d = vec3d.rotateX(-k * 0.7F); @@ -72,7 +72,7 @@ public void render(SpectrumFishingBobberEntity bobber, float f, float g, MatrixS r = playerEntity.getStandingEyeHeight(); } else { o = MathHelper.lerp(g, playerEntity.prevX, playerEntity.getX()) - e * m - d * 0.8D; - p = playerEntity.prevY + (double)playerEntity.getStandingEyeHeight() + (playerEntity.getY() - playerEntity.prevY) * (double)g - 0.45D; + p = playerEntity.prevY + (double) playerEntity.getStandingEyeHeight() + (playerEntity.getY() - playerEntity.prevY) * (double) g - 0.45D; q = MathHelper.lerp(g, playerEntity.prevZ, playerEntity.getZ()) - d * m + e * 0.8D; r = playerEntity.isInSneakingPose() ? -0.1875F : 0.0F; } @@ -80,13 +80,13 @@ public void render(SpectrumFishingBobberEntity bobber, float f, float g, MatrixS s = MathHelper.lerp(g, bobber.prevX, bobber.getX()); double t = MathHelper.lerp(g, bobber.prevY, bobber.getY()) + 0.25D; double u = MathHelper.lerp(g, bobber.prevZ, bobber.getZ()); - float v = (float)(o - s); - float w = (float)(p - t) + r; - float x = (float)(q - u); + float v = (float) (o - s); + float w = (float) (p - t) + r; + float x = (float) (q - u); VertexConsumer vertexConsumer2 = vertexConsumerProvider.getBuffer(RenderLayer.getLineStrip()); MatrixStack.Entry entry2 = matrixStack.peek(); - - for(int z = 0; z <= 16; ++z) { + + for (int z = 0; z <= 16; ++z) { renderFishingLine(v, w, x, vertexConsumer2, entry2, percentage(z, 16), percentage(z + 1, 16)); } @@ -96,11 +96,11 @@ public void render(SpectrumFishingBobberEntity bobber, float f, float g, MatrixS } private static float percentage(int value, int max) { - return (float)value / (float)max; + return (float) value / (float) max; } private static void vertex(VertexConsumer buffer, Matrix4f matrix, Matrix3f normalMatrix, int light, float x, int y, int u, int v) { - buffer.vertex(matrix, x - 0.5F, (float)y - 0.5F, 0.0F).color(255, 255, 255, 255).texture((float)u, (float)v).overlay(OverlayTexture.DEFAULT_UV).light(light).normal(normalMatrix, 0.0F, 1.0F, 0.0F).next(); + buffer.vertex(matrix, x - 0.5F, (float) y - 0.5F, 0.0F).color(255, 255, 255, 255).texture((float) u, (float) v).overlay(OverlayTexture.DEFAULT_UV).light(light).normal(normalMatrix, 0.0F, 1.0F, 0.0F).next(); } private static void renderFishingLine(float x, float y, float z, VertexConsumer buffer, MatrixStack.Entry matrices, float segmentStart, float segmentEnd) { diff --git a/src/main/java/de/dafuqs/spectrum/events/ExactPositionSource.java b/src/main/java/de/dafuqs/spectrum/events/ExactPositionSource.java new file mode 100644 index 0000000000..0421a2ce0d --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/events/ExactPositionSource.java @@ -0,0 +1,54 @@ +package de.dafuqs.spectrum.events; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +import java.util.Optional; + +public class ExactPositionSource implements PositionSource { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(Vec3d.CODEC.fieldOf("pos").forGetter((positionSource) -> { + return positionSource.pos; + })).apply(instance, ExactPositionSource::new); + }); + + final Vec3d pos; + + public ExactPositionSource(Vec3d pos) { + this.pos = pos; + } + + public Optional getPos(World world) { + return Optional.of(this.pos); + } + + public PositionSourceType getType() { + return SpectrumPositionSources.EXACT; + } + + public static class Type implements PositionSourceType { + public Type() { + } + + public ExactPositionSource readFromBuf(PacketByteBuf packetByteBuf) { + return new ExactPositionSource(new Vec3d(packetByteBuf.readDouble(), packetByteBuf.readDouble(), packetByteBuf.readDouble())); + } + + public void writeToBuf(PacketByteBuf packetByteBuf, ExactPositionSource blockPositionSource) { + packetByteBuf.writeDouble(blockPositionSource.pos.x); + packetByteBuf.writeDouble(blockPositionSource.pos.y); + packetByteBuf.writeDouble(blockPositionSource.pos.z); + } + + public Codec getCodec() { + return ExactPositionSource.CODEC; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/events/SpectrumGameEvents.java b/src/main/java/de/dafuqs/spectrum/events/SpectrumGameEvents.java index e73d194dc8..5e272262aa 100644 --- a/src/main/java/de/dafuqs/spectrum/events/SpectrumGameEvents.java +++ b/src/main/java/de/dafuqs/spectrum/events/SpectrumGameEvents.java @@ -1,30 +1,33 @@ package de.dafuqs.spectrum.events; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.util.DyeColor; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.event.GameEvent; +import de.dafuqs.spectrum.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.event.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; +import java.util.*; public class SpectrumGameEvents { - + public static GameEvent ENTITY_SPAWNED; public static GameEvent CRYSTAL_APOTHECARY_HARVESTABLE_GROWN; - + + public static GameEvent HUMMINGSTONE_HUMMING; + public static GameEvent HUMMINGSTONE_HYMN; + public static HashMap> WIRELESS_REDSTONE_SIGNALS = new HashMap<>(); // a list of 16 * 16 events, meaning redstone strength 0-15 with each dye color - + public static void register() { ENTITY_SPAWNED = register("entity_spawned"); CRYSTAL_APOTHECARY_HARVESTABLE_GROWN = register("crystal_apothecary_harvestable_grown"); - + + HUMMINGSTONE_HUMMING = register("hummingstone_humming"); + HUMMINGSTONE_HYMN = register("hummingstone_hymn"); + for (DyeColor dyeColor : DyeColor.values()) { List list = new ArrayList<>(); - for (int i = 0; i < 16; i++) { - list.add(Registry.register(Registry.GAME_EVENT, SpectrumCommon.locate("wireless_redstone_signal_" + dyeColor.name().toLowerCase(Locale.ROOT) + "_" + i), new RedstoneTransferGameEvent("wireless_redstone_signal_" + dyeColor.name().toLowerCase(Locale.ROOT) + "_" + i, 16, dyeColor, i))); + for (int power = 0; power < 16; power++) { + list.add(Registry.register(Registry.GAME_EVENT, SpectrumCommon.locate("wireless_redstone_signal_" + dyeColor.name().toLowerCase(Locale.ROOT) + "_" + power), new RedstoneTransferGameEvent("wireless_redstone_signal_" + dyeColor.name().toLowerCase(Locale.ROOT) + "_" + power, 16, dyeColor, power))); } WIRELESS_REDSTONE_SIGNALS.put(dyeColor, list); } diff --git a/src/main/java/de/dafuqs/spectrum/events/SpectrumPositionSources.java b/src/main/java/de/dafuqs/spectrum/events/SpectrumPositionSources.java new file mode 100644 index 0000000000..e192d5edbb --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/events/SpectrumPositionSources.java @@ -0,0 +1,20 @@ +package de.dafuqs.spectrum.events; + +import de.dafuqs.spectrum.SpectrumCommon; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class SpectrumPositionSources { + + public static PositionSourceType EXACT; + + static , T extends PositionSource> S register(String id, S positionSourceType) { + return Registry.register(Registry.POSITION_SOURCE_TYPE, SpectrumCommon.locate(id), positionSourceType); + } + + public static void register() { + EXACT = register("exact", new ExactPositionSource.Type()); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventListener.java b/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventListener.java deleted file mode 100644 index 6e33d27980..0000000000 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventListener.java +++ /dev/null @@ -1,102 +0,0 @@ -package de.dafuqs.spectrum.events.listeners; - -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.BlockPosEventTransfer; -import net.minecraft.entity.Entity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -public class BlockPosEventListener implements GameEventListener { - - protected final PositionSource positionSource; - protected final int range; - protected final BlockPosEventListener.Callback callback; - protected Optional event = Optional.empty(); - - protected BlockPos eventSourceBlockPos; - protected int distance; - protected int delay = 0; - - public BlockPosEventListener(PositionSource positionSource, int range, BlockPosEventListener.Callback listener) { - this.positionSource = positionSource; - this.range = range; - this.callback = listener; - } - - public void tick(World world) { - if (this.event.isPresent()) { - --this.delay; - if (this.delay <= 0) { - this.delay = 0; - this.callback.accept(world, this, this.event.get(), this.distance); - this.event = Optional.empty(); - } - } - } - - public PositionSource getPositionSource() { - return this.positionSource; - } - - public int getRange() { - return this.range; - } - - public boolean listen(World world, GameEvent event, @Nullable Entity entity, BlockPos pos) { - if (!this.shouldActivate(event, entity)) { - return false; - } else { - Optional optional = this.positionSource.getPos(world); - if (optional.isEmpty()) { - return false; - } else { - BlockPos blockPos = optional.get(); - this.eventSourceBlockPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ()); // copy - if (!this.callback.accepts(world, this, pos, event, entity)) { - return false; - } else { - this.listen(world, event, pos, blockPos); - return true; - } - } - } - } - - boolean shouldActivate(GameEvent event, @Nullable Entity entity) { - return true; - } - - private void listen(World world, GameEvent event, BlockPos pos, BlockPos sourcePos) { - this.event = Optional.of(event); - if (world instanceof ServerWorld) { - this.distance = MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos))); - this.delay = this.distance * 2; - SpectrumS2CPacketSender.sendBlockPosEventTransferPacket((ServerWorld) world, new BlockPosEventTransfer(pos, this.positionSource, this.delay)); - } - } - - public BlockPos getSourceBlockPos() { - return this.eventSourceBlockPos; - } - - public interface Callback { - /** - * Returns whether the callback wants to accept this event. - */ - boolean accepts(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity); - - /** - * Accepts a game event after delay. - */ - void accept(World world, GameEventListener listener, GameEvent event, int distance); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventQueue.java b/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventQueue.java index 24fb2ec97f..2c47aba369 100644 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventQueue.java +++ b/src/main/java/de/dafuqs/spectrum/events/listeners/BlockPosEventQueue.java @@ -1,11 +1,11 @@ package de.dafuqs.spectrum.events.listeners; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.BlockPosEventTransfer; -import net.minecraft.entity.Entity; +import de.dafuqs.spectrum.particle.effect.SimpleTransmission; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import net.minecraft.world.event.PositionSource; @@ -17,12 +17,13 @@ public BlockPosEventQueue(PositionSource positionSource, int range, Callback lis } @Override - public void acceptEvent(World world, BlockPos pos, GameEvent event, Entity entity, BlockPos sourcePos) { + public void acceptEvent(World world, GameEvent.Message event, Vec3d sourcePos) { if (world instanceof ServerWorld) { - EventEntry eventEntry = new EventEntry(event, new BlockPos(pos.getX(), pos.getY(), pos.getZ()), MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos)))); // copy + Vec3d emitterPos = event.getEmitterPos(); + EventEntry eventEntry = new EventEntry(event.getEvent(), new BlockPos(emitterPos.x, emitterPos.y, emitterPos.z), MathHelper.floor(event.getEmitterPos().distanceTo(sourcePos))); int delay = eventEntry.distance * 2; this.schedule(eventEntry, delay); - SpectrumS2CPacketSender.sendBlockPosEventTransferPacket((ServerWorld) world, new BlockPosEventTransfer(pos, this.positionSource, delay)); + SpectrumS2CPacketSender.playBlockPosEventTransmission((ServerWorld) world, new SimpleTransmission(emitterPos, this.positionSource, delay)); } } diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/EventQueue.java b/src/main/java/de/dafuqs/spectrum/events/listeners/EventQueue.java index 16141b8351..ecda0dd7f1 100644 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/EventQueue.java +++ b/src/main/java/de/dafuqs/spectrum/events/listeners/EventQueue.java @@ -1,25 +1,21 @@ package de.dafuqs.spectrum.events.listeners; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.Nullable; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.event.*; +import net.minecraft.world.event.listener.*; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; +import java.util.*; public abstract class EventQueue implements GameEventListener { protected final PositionSource positionSource; protected final int range; - protected final EventQueue.Callback callback; - private final Map eventQueue; + protected final EventQueue.Callback callback; + protected final Map eventQueue; - public EventQueue(PositionSource positionSource, int range, EventQueue.Callback listener) { + public EventQueue(PositionSource positionSource, int range, EventQueue.Callback listener) { this.positionSource = positionSource; this.range = range; this.callback = listener; @@ -28,7 +24,7 @@ public EventQueue(PositionSource positionSource, int range, EventQueue.Callback public void tick(World world) { if (!eventQueue.isEmpty()) { - D[] keys = (D[]) eventQueue.keySet().toArray(); + D[] keys = (D[]) eventQueue.keySet().toArray(); // protection from ConcurrentModificationExceptions for (D key : keys) { Integer tickCounter = eventQueue.get(key); if (tickCounter >= 1) { @@ -40,31 +36,35 @@ public void tick(World world) { } } } - + public PositionSource getPositionSource() { return this.positionSource; } - + public int getRange() { return this.range; } - + + public int getQueuedEventCount() { + return this.eventQueue.size(); + } + @Override - public boolean listen(World world, GameEvent event, @Nullable Entity entity, BlockPos pos) { - Optional positionSourcePosOptional = this.positionSource.getPos(world); + public boolean listen(ServerWorld world, GameEvent.Message event) { + Optional positionSourcePosOptional = this.positionSource.getPos(world); if (positionSourcePosOptional.isEmpty()) { return false; } else { - if (!this.callback.canAcceptEvent(world, this, pos, event, entity, positionSourcePosOptional.get())) { + if (!this.callback.canAcceptEvent(world, this, event, positionSourcePosOptional.get())) { return false; } else { - this.acceptEvent(world, pos, event, entity, positionSourcePosOptional.get()); + this.acceptEvent(world, event, positionSourcePosOptional.get()); return true; } } } - protected abstract void acceptEvent(World world, BlockPos pos, GameEvent event, @Nullable Entity entity, BlockPos sourcePos); + protected abstract void acceptEvent(World world, GameEvent.Message event, Vec3d sourcePos); protected void schedule(D object, int delay) { this.eventQueue.put(object, delay); @@ -74,7 +74,7 @@ public interface Callback { /** * Returns whether the callback wants to accept this event. */ - boolean canAcceptEvent(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity, BlockPos sourcePos); + boolean canAcceptEvent(World world, GameEventListener listener, GameEvent.Message message, Vec3d sourcePos); /** * Accepts a game event after delay. diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEntityListener.java b/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEntityListener.java deleted file mode 100644 index 733dba6940..0000000000 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEntityListener.java +++ /dev/null @@ -1,107 +0,0 @@ -package de.dafuqs.spectrum.events.listeners; - -import blue.endless.jankson.annotation.Nullable; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.ExperienceTransfer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ExperienceOrbEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.listener.GameEventListener; - -import java.util.Optional; - -public class ExperienceOrbEntityListener implements GameEventListener { - - protected final PositionSource positionSource; - protected final int range; - protected final ExperienceOrbEntityListener.Callback callback; - protected Optional event = Optional.empty(); - protected int distance; - protected int delay = 0; - protected ExperienceOrbEntity experienceOrbEntity; - - public ExperienceOrbEntityListener(PositionSource positionSource, int range, ExperienceOrbEntityListener.Callback listener) { - this.positionSource = positionSource; - this.range = range; - this.callback = listener; - } - - public void tick(World world) { - if (this.event.isPresent()) { - --this.delay; - if (this.delay <= 0) { - this.delay = 0; - this.callback.accept(world, this, this.event.get(), this.distance); - this.event = Optional.empty(); - } - } - } - - public PositionSource getPositionSource() { - return this.positionSource; - } - - public int getRange() { - return this.range; - } - - public boolean listen(World world, GameEvent event, @Nullable Entity entity, BlockPos pos) { - if (!this.shouldActivate(event, entity)) { - return false; - } else { - Optional optional = this.positionSource.getPos(world); - if (!optional.isPresent()) { - return false; - } else { - experienceOrbEntity = (ExperienceOrbEntity) entity; - BlockPos blockPos = optional.get(); - if (!this.callback.accepts(world, this, pos, event, entity)) { - return false; - } else { - this.listen(world, event, pos, blockPos); - return true; - } - } - } - } - - boolean shouldActivate(GameEvent event, @Nullable Entity entity) { - if (this.event.isEmpty()) { - if (entity instanceof ExperienceOrbEntity experienceOrbEntity) { - return experienceOrbEntity.isAlive(); - } - } - return false; - } - - private void listen(World world, GameEvent event, BlockPos pos, BlockPos sourcePos) { - this.event = Optional.of(event); - if (world instanceof ServerWorld) { - this.distance = MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos))); - this.delay = this.distance; - SpectrumS2CPacketSender.sendExperienceOrbTransferPacket((ServerWorld) world, new ExperienceTransfer(pos, this.positionSource, this.delay)); - } - } - - public ExperienceOrbEntity getExperienceOrbEntity() { - return this.experienceOrbEntity; - } - - public interface Callback { - /** - * Returns whether the callback wants to accept this event. - */ - boolean accepts(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity); - - /** - * Accepts a game event after delay. - */ - void accept(World world, GameEventListener listener, GameEvent event, int distance); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEventQueue.java b/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEventQueue.java index a66d47baa6..721507898b 100644 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEventQueue.java +++ b/src/main/java/de/dafuqs/spectrum/events/listeners/ExperienceOrbEventQueue.java @@ -1,12 +1,11 @@ package de.dafuqs.spectrum.events.listeners; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.ExperienceTransfer; -import net.minecraft.entity.Entity; +import de.dafuqs.spectrum.particle.effect.SimpleTransmission; import net.minecraft.entity.ExperienceOrbEntity; import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import net.minecraft.world.event.PositionSource; @@ -18,12 +17,13 @@ public ExperienceOrbEventQueue(PositionSource positionSource, int range, Callbac } @Override - public void acceptEvent(World world, BlockPos pos, GameEvent event, Entity entity, BlockPos sourcePos) { - if (world instanceof ServerWorld && entity instanceof ExperienceOrbEntity experienceOrbEntity) { - EventEntry eventEntry = new EventEntry(event, experienceOrbEntity, MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos)))); // copy + public void acceptEvent(World world, GameEvent.Message event, Vec3d sourcePos) { + if (world instanceof ServerWorld && event.getEmitter().sourceEntity() instanceof ExperienceOrbEntity experienceOrbEntity) { + Vec3d pos = event.getEmitterPos(); + EventEntry eventEntry = new EventEntry(event.getEvent(), experienceOrbEntity, MathHelper.floor(pos.distanceTo(sourcePos))); int delay = eventEntry.distance * 2; this.schedule(eventEntry, delay); - SpectrumS2CPacketSender.sendExperienceOrbTransferPacket((ServerWorld) world, new ExperienceTransfer(pos, this.positionSource, delay)); + SpectrumS2CPacketSender.playExperienceTransmission((ServerWorld) world, new SimpleTransmission(pos, this.positionSource, delay)); } } diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/ItemAndExperienceEventQueue.java b/src/main/java/de/dafuqs/spectrum/events/listeners/ItemAndExperienceEventQueue.java index 59fec9dacf..59a064ea9e 100644 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/ItemAndExperienceEventQueue.java +++ b/src/main/java/de/dafuqs/spectrum/events/listeners/ItemAndExperienceEventQueue.java @@ -4,12 +4,11 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.ExperienceOrbEntity; import net.minecraft.entity.ItemEntity; -import net.minecraft.util.math.BlockPos; +import net.minecraft.server.world.ServerWorld; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import net.minecraft.world.event.PositionSource; import net.minecraft.world.event.listener.GameEventListener; -import org.jetbrains.annotations.Nullable; /** * Since Sucking chests can react to both spawned items and experience @@ -39,14 +38,15 @@ public int getRange() { } @Override - public boolean listen(World world, GameEvent event, @Nullable Entity entity, BlockPos pos) { - if (event != SpectrumGameEvents.ENTITY_SPAWNED) { + public boolean listen(ServerWorld world, GameEvent.Message event) { + if (event.getEvent() != SpectrumGameEvents.ENTITY_SPAWNED) { return false; } - if (entity instanceof ItemEntity && itemQueue.listen(world, event, entity, pos)) { + Entity entity = event.getEmitter().sourceEntity(); + if (entity instanceof ItemEntity && itemQueue.listen(world, event)) { return true; } - return entity instanceof ExperienceOrbEntity && experienceQueue.listen(world, event, entity, pos); + return entity instanceof ExperienceOrbEntity && experienceQueue.listen(world, event); } public void tick(World world) { diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityEventQueue.java b/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityEventQueue.java index d7554c25e7..0a307e845b 100644 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityEventQueue.java +++ b/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityEventQueue.java @@ -1,12 +1,11 @@ package de.dafuqs.spectrum.events.listeners; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.ItemTransfer; -import net.minecraft.entity.Entity; +import de.dafuqs.spectrum.particle.effect.SimpleTransmission; import net.minecraft.entity.ItemEntity; import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import net.minecraft.world.event.PositionSource; @@ -18,12 +17,13 @@ public ItemEntityEventQueue(PositionSource positionSource, int range, Callback l } @Override - public void acceptEvent(World world, BlockPos pos, GameEvent event, Entity entity, BlockPos sourcePos) { - if (world instanceof ServerWorld && entity instanceof ItemEntity itemEntity) { - EventEntry eventEntry = new EventEntry(event, itemEntity, MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos)))); + public void acceptEvent(World world, GameEvent.Message event, Vec3d sourcePos) { + if (world instanceof ServerWorld && event.getEmitter().sourceEntity() instanceof ItemEntity itemEntity) { + Vec3d pos = event.getEmitterPos(); + EventEntry eventEntry = new EventEntry(event.getEvent(), itemEntity, MathHelper.floor(pos.distanceTo(sourcePos))); int delay = eventEntry.distance * 2; this.schedule(eventEntry, delay); - SpectrumS2CPacketSender.sendItemTransferPacket((ServerWorld) world, new ItemTransfer(pos, this.positionSource, delay)); + SpectrumS2CPacketSender.sendItemTransferPacket((ServerWorld) world, new SimpleTransmission(pos, this.positionSource, delay)); } } diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityListener.java b/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityListener.java deleted file mode 100644 index 476688593f..0000000000 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/ItemEntityListener.java +++ /dev/null @@ -1,107 +0,0 @@ -package de.dafuqs.spectrum.events.listeners; - -import blue.endless.jankson.annotation.Nullable; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.ItemTransfer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.listener.GameEventListener; - -import java.util.Optional; - -public class ItemEntityListener implements GameEventListener { - - protected final PositionSource positionSource; - protected final int range; - protected final ItemEntityListener.Callback callback; - protected Optional event = Optional.empty(); - protected int distance; - protected int delay = 0; - protected ItemEntity itemEntity; - - public ItemEntityListener(PositionSource positionSource, int range, ItemEntityListener.Callback listener) { - this.positionSource = positionSource; - this.range = range; - this.callback = listener; - } - - public void tick(World world) { - if (this.event.isPresent()) { - --this.delay; - if (this.delay <= 0) { - this.delay = 0; - this.callback.accept(world, this, this.event.get(), this.distance); - this.event = Optional.empty(); - } - } - } - - public PositionSource getPositionSource() { - return this.positionSource; - } - - public int getRange() { - return this.range; - } - - public boolean listen(World world, GameEvent event, @Nullable Entity entity, BlockPos pos) { - if (!this.shouldActivate(event, entity)) { - return false; - } else { - Optional optional = this.positionSource.getPos(world); - if (!optional.isPresent()) { - return false; - } else { - itemEntity = (ItemEntity) entity; - BlockPos blockPos = optional.get(); - if (!this.callback.accepts(world, this, pos, event, entity)) { - return false; - } else { - this.listen(world, event, pos, blockPos); - return true; - } - } - } - } - - boolean shouldActivate(GameEvent event, @Nullable Entity entity) { - if (this.event.isEmpty()) { - if (entity instanceof ItemEntity itemEntity) { - return itemEntity.isAlive() && !itemEntity.getStack().isEmpty(); - } - } - return false; - } - - private void listen(World world, GameEvent event, BlockPos pos, BlockPos sourcePos) { - this.event = Optional.of(event); - if (world instanceof ServerWorld) { - this.distance = MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos))); - this.delay = this.distance; - SpectrumS2CPacketSender.sendItemTransferPacket((ServerWorld) world, new ItemTransfer(pos, this.positionSource, this.delay)); - } - } - - public ItemEntity getItemEntity() { - return this.itemEntity; - } - - public interface Callback { - /** - * Returns whether the callback wants to accept this event. - */ - boolean accepts(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity); - - /** - * Accepts a game event after delay. - */ - void accept(World world, GameEventListener listener, GameEvent event, int distance); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalEventQueue.java b/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalEventQueue.java index 18d3747168..8db5aceea4 100644 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalEventQueue.java +++ b/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalEventQueue.java @@ -3,10 +3,9 @@ import de.dafuqs.spectrum.events.RedstoneTransferGameEvent; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; import de.dafuqs.spectrum.particle.effect.WirelessRedstoneTransmission; -import net.minecraft.entity.Entity; import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; import net.minecraft.world.event.PositionSource; @@ -18,12 +17,13 @@ public WirelessRedstoneSignalEventQueue(PositionSource positionSource, int range } @Override - public void acceptEvent(World world, BlockPos pos, GameEvent event, Entity entity, BlockPos sourcePos) { - if (world instanceof ServerWorld && event instanceof RedstoneTransferGameEvent redstoneTransferEvent) { - WirelessRedstoneSignalEventQueue.EventEntry eventEntry = new WirelessRedstoneSignalEventQueue.EventEntry(redstoneTransferEvent, MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos)))); // copy + public void acceptEvent(World world, GameEvent.Message event, Vec3d sourcePos) { + if (world instanceof ServerWorld && event.getEvent() instanceof RedstoneTransferGameEvent redstoneTransferEvent) { + Vec3d pos = event.getEmitterPos(); + WirelessRedstoneSignalEventQueue.EventEntry eventEntry = new WirelessRedstoneSignalEventQueue.EventEntry(redstoneTransferEvent, MathHelper.floor(pos.distanceTo(sourcePos))); int delay = eventEntry.distance * 2; this.schedule(eventEntry, delay); - SpectrumS2CPacketSender.sendWirelessRedstonePacket((ServerWorld) world, new WirelessRedstoneTransmission(pos, this.positionSource, delay)); + SpectrumS2CPacketSender.playWirelessRedstoneTransmission((ServerWorld) world, new WirelessRedstoneTransmission(pos, this.positionSource, delay)); } } diff --git a/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalListener.java b/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalListener.java deleted file mode 100644 index 18710594c1..0000000000 --- a/src/main/java/de/dafuqs/spectrum/events/listeners/WirelessRedstoneSignalListener.java +++ /dev/null @@ -1,97 +0,0 @@ -package de.dafuqs.spectrum.events.listeners; - -import blue.endless.jankson.annotation.Nullable; -import de.dafuqs.spectrum.events.RedstoneTransferGameEvent; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.effect.WirelessRedstoneTransmission; -import net.minecraft.entity.Entity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import net.minecraft.world.event.GameEvent; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.listener.GameEventListener; - -import java.util.Optional; - -public class WirelessRedstoneSignalListener implements GameEventListener { - - protected final PositionSource positionSource; - protected final int range; - protected final WirelessRedstoneSignalListener.Callback callback; - protected Optional event = Optional.empty(); - protected int distance; - protected int delay = 0; - - public WirelessRedstoneSignalListener(PositionSource positionSource, int range, WirelessRedstoneSignalListener.Callback listener) { - this.positionSource = positionSource; - this.range = range; - this.callback = listener; - } - - public void tick(World world) { - if (this.event.isPresent()) { - --this.delay; - if (this.delay <= 0) { - this.delay = 0; - this.callback.accept(world, this, this.event.get(), this.distance); - this.event = Optional.empty(); - } - } - } - - public PositionSource getPositionSource() { - return this.positionSource; - } - - public int getRange() { - return this.range; - } - - @Override - public boolean listen(World world, GameEvent event, @Nullable Entity entity, BlockPos pos) { - if (!this.shouldActivate(event, entity)) { - return false; - } else { - Optional optional = this.positionSource.getPos(world); - if (optional.isEmpty()) { - return false; - } else { - BlockPos blockPos = optional.get(); - if (!this.callback.accepts(world, this, pos, event, entity)) { - return false; - } else { - this.listen(world, event, pos, blockPos); - return true; - } - } - } - } - - private boolean shouldActivate(GameEvent event, @Nullable Entity entity) { - return (this.event.isEmpty() && event instanceof RedstoneTransferGameEvent); - } - - private void listen(World world, GameEvent event, BlockPos pos, BlockPos sourcePos) { - this.event = Optional.of(event); - if (world instanceof ServerWorld) { - this.distance = MathHelper.floor(Math.sqrt(pos.getSquaredDistance(sourcePos))); - this.delay = this.distance; - SpectrumS2CPacketSender.sendWirelessRedstonePacket((ServerWorld) world, new WirelessRedstoneTransmission(pos, this.positionSource, this.delay)); - } - } - - public interface Callback { - /** - * Returns whether the callback wants to accept this event. - */ - boolean accepts(World world, GameEventListener listener, BlockPos pos, GameEvent event, @Nullable Entity entity); - - /** - * Accepts a game event after delay. - */ - void accept(World world, GameEventListener listener, GameEvent event, int distance); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/graces/CrystalGraceEffectHolder.java b/src/main/java/de/dafuqs/spectrum/graces/CrystalGraceEffectHolder.java deleted file mode 100644 index 28d07c6af3..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/CrystalGraceEffectHolder.java +++ /dev/null @@ -1,26 +0,0 @@ -/*package de.dafuqs.spectrum.graces; - -import dev.onyxstudios.cca.api.v3.item.ItemComponent; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Identifier; - -import java.util.HashMap; - -public class CrystalGraceEffectHolder extends ItemComponent { - - private final HashMap effects = new HashMap<>(); - private float aberration, luminance, absorption; - - public CrystalGraceEffectHolder(ItemStack stack) { - super(stack); - } - - public CrystalGraceEffectHolder fromStack(ItemStack stack) { - return GraceProvider.CRYSTAL_GRACE_EFFECT_HOLDER.get(stack); - } - - @Override - public void onTagInvalidated() { - super.onTagInvalidated(); - } -}*/ diff --git a/src/main/java/de/dafuqs/spectrum/graces/GraceBearerComponent.java b/src/main/java/de/dafuqs/spectrum/graces/GraceBearerComponent.java deleted file mode 100644 index 9794c0fb83..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/GraceBearerComponent.java +++ /dev/null @@ -1,20 +0,0 @@ -/*package de.dafuqs.spectrum.graces; - -import net.immortaldevs.sar.api.Component; -import net.immortaldevs.sar.api.ComponentNode; -import net.immortaldevs.sar.api.ModifierHandler; - -public class GraceBearerComponent extends Component { - - - @Override - public void addModifiers(ComponentNode node, ModifierHandler handler) { - super.addModifiers(node, handler); - } - - //@Override - //public void init(LarvalComponentData data) { - // data.loadChildren("effects"); - //} -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/graces/GraceProvider.java b/src/main/java/de/dafuqs/spectrum/graces/GraceProvider.java deleted file mode 100644 index 48ef4add69..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/GraceProvider.java +++ /dev/null @@ -1,20 +0,0 @@ -/*package de.dafuqs.spectrum.graces; - -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.items.CrystalGraceItem; -import dev.onyxstudios.cca.api.v3.component.ComponentKey; -import dev.onyxstudios.cca.api.v3.component.ComponentRegistry; -import dev.onyxstudios.cca.api.v3.item.ItemComponentFactoryRegistry; -import dev.onyxstudios.cca.api.v3.item.ItemComponentInitializer; -import net.minecraft.util.Identifier; - -public class GraceProvider implements ItemComponentInitializer { - - public static final ComponentKey CRYSTAL_GRACE_EFFECT_HOLDER = ComponentRegistry.getOrCreate(SpectrumCommon.locate("crystal_grace_effect_holder"), CrystalGraceEffectHolder.class); // See the "Registering your component" section - - @Override - public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) { - registry.register(item -> item instanceof CrystalGraceItem, CRYSTAL_GRACE_EFFECT_HOLDER, CrystalGraceEffectHolder::new); - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/graces/crystal/ColorPool.java b/src/main/java/de/dafuqs/spectrum/graces/crystal/ColorPool.java deleted file mode 100644 index 1a9372fc3e..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/crystal/ColorPool.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.dafuqs.spectrum.graces.crystal; - -import com.google.common.collect.ImmutableSet; - -public enum ColorPool { - BLACK(), - WHITE(), - GREY(BLACK, WHITE), - LIGHT_GREY(GREY, WHITE), - CYAN(), - MAGENTA(), - YELLOW(), - RED(MAGENTA, YELLOW), - BLUE(MAGENTA, CYAN), - GREEN(CYAN, YELLOW), - PINK(RED, WHITE), - LIGHT_BLUE(BLUE, WHITE), - LIME(GREEN, YELLOW), - ORANGE(RED, YELLOW), - PURPLE(BLUE, MAGENTA), - BROWN(ORANGE, BLACK), - CHROMATIC(BLACK, WHITE, GREY, LIGHT_GREY, CYAN, MAGENTA, YELLOW, RED, BLUE, GREEN, PINK, LIGHT_BLUE, LIME, ORANGE, PURPLE, BROWN), - MURKY(); - - - ColorPool(ColorPool... components) { - var componentBuilder = ImmutableSet.builder(); - componentBuilder.add(components); - componentSet = componentBuilder.build(); - } - - public final ImmutableSet componentSet; - - - public boolean rejects(ColorPool other) { - return switch (this) { - case WHITE -> other == BLACK; - case BLACK -> other == WHITE; - case CYAN -> other == ORANGE; - case MAGENTA -> other == GREEN; - case YELLOW -> other == BLUE; - case BLUE -> other == YELLOW || other == ORANGE; - case GREEN -> other == MAGENTA || other == PURPLE; - case ORANGE -> other == CYAN || other == BLUE; - default -> false; - }; - } - - public boolean synergizes(ColorPool target) { - return target == this; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/graces/crystal/CrystalEffectComponent.java b/src/main/java/de/dafuqs/spectrum/graces/crystal/CrystalEffectComponent.java deleted file mode 100644 index f4b6751fc2..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/crystal/CrystalEffectComponent.java +++ /dev/null @@ -1,15 +0,0 @@ -/*package de.dafuqs.spectrum.graces.crystal; - -import net.immortaldevs.sar.api.Component; - -public abstract class CrystalEffectComponent extends Component { - - public final String name; - public final ColorPool pool; - - public CrystalEffectComponent(String name, ColorPool pool) { - this.name = name; - this.pool = pool; - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/graces/crystal/CrystalGraceComponent.java b/src/main/java/de/dafuqs/spectrum/graces/crystal/CrystalGraceComponent.java deleted file mode 100644 index 1ca8a9ba25..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/crystal/CrystalGraceComponent.java +++ /dev/null @@ -1,25 +0,0 @@ -/*package de.dafuqs.spectrum.graces.crystal; - -import net.immortaldevs.sar.api.Component; -import net.immortaldevs.sar.api.ComponentNode; -import net.immortaldevs.sar.api.ComponentNodeHandler; - -public class CrystalGraceComponent extends Component { - - @Override - public void loadComponentNodes(ComponentNode node, ComponentNodeHandler handler) { - super.loadComponentNodes(node, handler); - } - - //@Override - //public void init(@NotNull LarvalComponentData data) { - // super.init(data); - // data.loadChildren("crystalEffects"); - // var dataNbt = data.getOrCreateNbt(); - // dataNbt.putFloat("aberration", 0); - // dataNbt.putFloat("vitreous-radiance", 0); - // dataNbt.putFloat("absorption", 0); - // dataNbt.putBoolean("genRequired", true); - //} -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/graces/crystal/SpectrumCrystalEffects.java b/src/main/java/de/dafuqs/spectrum/graces/crystal/SpectrumCrystalEffects.java deleted file mode 100644 index f147d36a50..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/crystal/SpectrumCrystalEffects.java +++ /dev/null @@ -1,5 +0,0 @@ -package de.dafuqs.spectrum.graces.crystal; - -public class SpectrumCrystalEffects { - -} diff --git a/src/main/java/de/dafuqs/spectrum/graces/crystal/component/RedUniversalDamageBuffComponent.java b/src/main/java/de/dafuqs/spectrum/graces/crystal/component/RedUniversalDamageBuffComponent.java deleted file mode 100644 index 1817e68e50..0000000000 --- a/src/main/java/de/dafuqs/spectrum/graces/crystal/component/RedUniversalDamageBuffComponent.java +++ /dev/null @@ -1,29 +0,0 @@ -/*package de.dafuqs.spectrum.graces.crystal.component; - -import de.dafuqs.spectrum.graces.crystal.ColorPool; -import de.dafuqs.spectrum.graces.crystal.CrystalEffectComponent; -import de.dafuqs.spectrum.sar.modifier.SimpleDamageMultiplier; -import net.immortaldevs.sar.api.ComponentNode; -import net.immortaldevs.sar.api.ModifierHandler; - -public class RedUniversalDamageBuffComponent extends CrystalEffectComponent { - - public RedUniversalDamageBuffComponent() { - super("red_universal_damage_buff", ColorPool.RED); - } - - @Override - public void addModifiers(ComponentNode node, ModifierHandler handler) { - super.addModifiers(node, handler); - handler.add(new SimpleDamageMultiplier(1, (damageSource -> true), entity -> true)); - node.getOrCreateNbt().putFloat("potency", 0); - } - - //@Override - // public void init(LarvalComponentData data) { - // super.init(data); - // data.addModifier(new SimpleDamageMultiplier(1, (damageSource -> true), entity -> true)); - // data.getOrCreateNbt().putFloat("potency", 0); - // } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/helpers/AoEHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/AoEHelper.java new file mode 100644 index 0000000000..c69071c60f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/helpers/AoEHelper.java @@ -0,0 +1,116 @@ +package de.dafuqs.spectrum.helpers; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.network.packet.s2c.play.WorldEventS2CPacket; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3i; +import net.minecraft.world.World; +import net.minecraft.world.WorldEvents; +import org.jetbrains.annotations.Nullable; + +import java.util.function.Predicate; + +// reworked and yarn version of Botanias AoE breaking mechanism at +// https://github.com/VazkiiMods/Botania/blob/7d526461b21cac3d4e2a084a063d469c4065951f/Xplat/src/main/java/vazkii/botania/common/item/equipment/tool/ToolCommons.java +// hereby used and credited per the Botania license at https://botaniamod.net/license.html +// Shoutout and thanks a bunch to Vazkii, Willie and artemisSystem! +public class AoEHelper { + + public static void doAoEBlockBreaking(PlayerEntity player, ItemStack stack, BlockPos pos, Direction side, int radius) { + if (radius <= 0) { + return; + } + + World world = player.world; + if (world.isAir(pos)) { + return; + } + + Predicate minableBlocksPredicate = state -> { + boolean suitableTool = !state.isToolRequired() || stack.isSuitableFor(state); + boolean suitableSpeed = stack.getMiningSpeedMultiplier(state) > 1; + return suitableTool && suitableSpeed; + }; + + BlockState targetState = world.getBlockState(pos); + if (!minableBlocksPredicate.test(targetState)) { + return; + } + + boolean doX = side.getOffsetX() == 0; + boolean doY = side.getOffsetY() == 0; + boolean doZ = side.getOffsetZ() == 0; + + Vec3i beginDiff = new Vec3i(doX ? -radius : 0, doY ? -1 : 0, doZ ? -radius : 0); + Vec3i endDiff = new Vec3i(doX ? radius : 0, doY ? radius * 2 - 1 : 0, doZ ? radius : 0); + + removeBlocksInIteration(player, stack, world, pos, beginDiff, endDiff, minableBlocksPredicate); + } + + private static boolean recursive = false; + + private static void removeBlocksInIteration(PlayerEntity player, ItemStack stack, World world, BlockPos centerPos, Vec3i startDelta, Vec3i endDelta, Predicate filter) { + if (recursive) { + return; + } + + recursive = true; + try { + for (BlockPos blockPos : BlockPos.iterate(centerPos.add(startDelta), centerPos.add(endDelta))) { + if (!blockPos.equals(centerPos)) { + breakBlockWithDrops(player, stack, world, blockPos, filter); + } + } + } finally { + recursive = false; + } + } + + public static void breakBlocksAround(PlayerEntity player, ItemStack stack, BlockPos pos, int radius, @Nullable Predicate predicate) { + if (radius <= 0) { + return; + } + + World world = player.world; + + Predicate minableBlocksPredicate = state -> { + boolean suitableTool = !state.isToolRequired() || stack.isSuitableFor(state); + boolean suitableSpeed = stack.getMiningSpeedMultiplier(state) > 1; + return suitableTool && suitableSpeed; + }; + if (predicate != null) { + minableBlocksPredicate = minableBlocksPredicate.and(predicate); + } + + BlockState targetState = world.getBlockState(pos); + if (!minableBlocksPredicate.test(targetState)) { + return; + } + + for (BlockPos blockPos : BlockPos.iterateOutwards(pos, radius, radius, radius)) { + breakBlockWithDrops(player, stack, world, blockPos, minableBlocksPredicate); + } + } + + public static void breakBlockWithDrops(PlayerEntity player, ItemStack stack, World world, BlockPos pos, Predicate filter) { + if (!world.isChunkLoaded(pos)) { + return; + } + + BlockState blockstate = world.getBlockState(pos); + if (!world.isClient && !blockstate.isAir() && blockstate.calcBlockBreakingDelta(player, world, pos) > 0 && filter.test(blockstate)) { + ItemStack save = player.getMainHandStack(); + player.setStackInHand(Hand.MAIN_HAND, stack); + ((ServerPlayerEntity) player).networkHandler.sendPacket(new WorldEventS2CPacket(WorldEvents.BLOCK_BROKEN, pos, Block.getRawIdFromState(blockstate), false)); + ((ServerPlayerEntity) player).interactionManager.tryBreakBlock(pos); + player.setStackInHand(Hand.MAIN_HAND, save); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/helpers/BlockVariantHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/BlockVariantHelper.java index 96c4f2b66b..84ac3ab995 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/BlockVariantHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/BlockVariantHelper.java @@ -22,43 +22,44 @@ public class BlockVariantHelper { // ordered color strings so "light_" variants match before non-light private static final List COLOR_STRINGS = List.of("light_blue", "light_gray", "white", "orange", "magenta", "yellow", "lime", "pink", "gray", "cyan", "purple", "blue", "brown", "green", "red", "black"); - public static Block getCursedBlockColorVariant(World world, BlockPos blockPos, DyeColor newColor) { + public static BlockState getCursedBlockColorVariant(World world, BlockPos blockPos, DyeColor newColor) { BlockEntity blockEntity = world.getBlockEntity(blockPos); - if(blockEntity != null) { - return Blocks.AIR; + if (blockEntity != null) { + return Blocks.AIR.getDefaultState(); } BlockState blockState = world.getBlockState(blockPos); Block block = blockState.getBlock(); - if(coloredStates.containsKey(block)) { + if (coloredStates.containsKey(block)) { Map colorMap = coloredStates.get(block); - if(colorMap.containsKey(newColor)) { - return colorMap.get(newColor); + if (colorMap.containsKey(newColor)) { + Block newBlock = colorMap.get(newColor); + return newBlock.getStateWithProperties(blockState); } } Identifier identifier = Registry.BLOCK.getId(block); String newPath = null; - for(String colorString : COLOR_STRINGS) { - if(identifier.getPath().contains(colorString)) { + for (String colorString : COLOR_STRINGS) { + if (identifier.getPath().contains(colorString)) { newPath = identifier.getPath().replace(colorString, newColor.toString()); break; } } Block returnBlock = Blocks.AIR; - if(newPath != null) { + if (newPath != null) { Identifier newIdentifier = new Identifier(identifier.getNamespace(), newPath); Block newIdentifierBlock = Registry.BLOCK.get(newIdentifier); - if(newIdentifierBlock != block) { + if (newIdentifierBlock != block) { returnBlock = newIdentifierBlock; } } // cache - if(coloredStates.containsKey(block)) { + if (coloredStates.containsKey(block)) { Map colorMap = coloredStates.get(block); colorMap.put(newColor, returnBlock); } else { @@ -67,7 +68,7 @@ public static Block getCursedBlockColorVariant(World world, BlockPos blockPos, D coloredStates.put(block, colorMap); } - return returnBlock; + return returnBlock.getStateWithProperties(blockState); } // cache for getCursedRepairedBlockVariant() @@ -78,7 +79,7 @@ public static Block getCursedBlockColorVariant(World world, BlockPos blockPos, D put(Blocks.CRACKED_POLISHED_BLACKSTONE_BRICKS, Blocks.POLISHED_BLACKSTONE_BRICKS); put(Blocks.CRACKED_STONE_BRICKS, Blocks.STONE_BRICKS); put(Blocks.INFESTED_CRACKED_STONE_BRICKS, Blocks.INFESTED_STONE_BRICKS); - + put(Blocks.DAMAGED_ANVIL, Blocks.CHIPPED_ANVIL); put(Blocks.CHIPPED_ANVIL, Blocks.ANVIL); @@ -92,14 +93,14 @@ public static Block getCursedBlockColorVariant(World world, BlockPos blockPos, D public static Block getCursedRepairedBlockVariant(World world, BlockPos blockPos) { BlockEntity blockEntity = world.getBlockEntity(blockPos); - if(blockEntity != null) { + if (blockEntity != null) { return Blocks.AIR; } BlockState blockState = world.getBlockState(blockPos); Block block = blockState.getBlock(); - if(repairedStates.containsKey(block)) { + if (repairedStates.containsKey(block)) { return repairedStates.get(block); } @@ -111,10 +112,10 @@ public static Block getCursedRepairedBlockVariant(World world, BlockPos blockPos newPath = newPath.replace("chipped_", ""); Block returnBlock = Blocks.AIR; - if(newPath != identifier.getPath()) { + if (newPath != identifier.getPath()) { Identifier newIdentifier = new Identifier(identifier.getNamespace(), newPath); Block newIdentifierBlock = Registry.BLOCK.get(newIdentifier); - if(newIdentifierBlock != block) { + if (newIdentifierBlock != block) { returnBlock = newIdentifierBlock; } } diff --git a/src/main/java/de/dafuqs/spectrum/helpers/ColorHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/ColorHelper.java index 998a0b9fae..d337ee6e07 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/ColorHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/ColorHelper.java @@ -1,24 +1,20 @@ package de.dafuqs.spectrum.helpers; -import de.dafuqs.spectrum.entity.entity.EggLayingWoolyPigEntity; -import de.dafuqs.spectrum.items.PigmentItem; -import de.dafuqs.spectrum.mixin.accessors.ShulkerEntityAccessor; -import net.minecraft.entity.Entity; -import net.minecraft.entity.mob.ShulkerEntity; -import net.minecraft.entity.passive.SheepEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.DyeItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.DyeColor; -import net.minecraft.util.math.Vec3f; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import net.minecraft.entity.*; +import net.minecraft.entity.mob.*; +import net.minecraft.entity.passive.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import org.jetbrains.annotations.*; import java.awt.*; -import java.util.Optional; +import java.util.*; public class ColorHelper { @@ -57,7 +53,7 @@ public static int getInt(DyeColor dyeColor) { public static @NotNull Color colorFromRGB(float r, float g, float b) { return colorFromRGBA(r, g, b, 1f); } - + @Contract(value = "_, _, _, _ -> new", pure = true) public static @NotNull Color colorFromRGBA(float r, float g, float b, float a) { return new Color( @@ -67,7 +63,11 @@ public static int getInt(DyeColor dyeColor) { (int) (a * 255 + 0.5) ); } - + + public static int getColorFromInt(int seed) { + return Color.getHSBColor((float) seed / Integer.MAX_VALUE, 0.7F, 0.9F).getRGB(); + } + @NotNull public static Vec3f colorIntToVec(int color2) { Color colorValue2 = new Color(color2); @@ -75,7 +75,7 @@ public static Vec3f colorIntToVec(int color2) { colorValue2.getColorComponents(argb2); return new Vec3f(argb2[0], argb2[1], argb2[2]); } - + public static Optional getDyeColorOfItemStack(@NotNull ItemStack itemStack) { if (!itemStack.isEmpty()) { Item item = itemStack.getItem(); @@ -89,20 +89,20 @@ public static Optional getDyeColorOfItemStack(@NotNull ItemStack itemS } public static boolean tryColorEntity(PlayerEntity user, Entity entity, DyeColor dyeColor) { - if(entity instanceof SheepEntity sheepEntity && sheepEntity.isAlive() && !sheepEntity.isSheared()) { - if(sheepEntity.getColor() != dyeColor) { + if (entity instanceof SheepEntity sheepEntity && sheepEntity.isAlive() && !sheepEntity.isSheared()) { + if (sheepEntity.getColor() != dyeColor) { sheepEntity.world.playSoundFromEntity(user, sheepEntity, SoundEvents.ITEM_DYE_USE, SoundCategory.PLAYERS, 1.0F, 1.0F); sheepEntity.setColor(dyeColor); return true; } - } else if(entity instanceof EggLayingWoolyPigEntity woolyPig && woolyPig.isAlive() && !woolyPig.isSheared()) { - if(woolyPig.getColor() != dyeColor) { + } else if (entity instanceof EggLayingWoolyPigEntity woolyPig && woolyPig.isAlive()) { + if (woolyPig.getColor() != dyeColor) { woolyPig.world.playSoundFromEntity(user, woolyPig, SoundEvents.ITEM_DYE_USE, SoundCategory.PLAYERS, 1.0F, 1.0F); woolyPig.setColor(dyeColor); return true; } - } else if(entity instanceof ShulkerEntity shulkerEntity && shulkerEntity.isAlive()) { - if(shulkerEntity.getColor() != dyeColor) { + } else if (entity instanceof ShulkerEntity shulkerEntity && shulkerEntity.isAlive()) { + if (shulkerEntity.getColor() != dyeColor) { shulkerEntity.world.playSoundFromEntity(user, shulkerEntity, SoundEvents.ITEM_DYE_USE, SoundCategory.PLAYERS, 1.0F, 1.0F); ((ShulkerEntityAccessor) shulkerEntity).invokeSetColor(dyeColor); return true; diff --git a/src/main/java/de/dafuqs/spectrum/helpers/InWorldInteractionHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/InWorldInteractionHelper.java index 9cf3a5c17b..da62fd345a 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/InWorldInteractionHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/InWorldInteractionHelper.java @@ -36,13 +36,13 @@ public static boolean findAndDecreaseClosestItemEntityOfItem(@NotNull World worl ItemStack stack = itemEntity.getStack(); if (stack.isIn(tag)) { foundCount += stack.getCount(); - if(foundCount >= count) { + if (foundCount >= count) { break; } } } - if(foundCount < count) { + if (foundCount < count) { return false; } @@ -55,7 +55,7 @@ public static boolean findAndDecreaseClosestItemEntityOfItem(@NotNull World worl if (stack.isEmpty()) { itemEntity.discard(); } - if(count == 0) { + if (count == 0) { return true; } } @@ -70,13 +70,13 @@ public static boolean findAndDecreaseClosestItemEntityOfItem(@NotNull World worl ItemStack stack = itemEntity.getStack(); if (stack.isOf(item)) { foundCount += stack.getCount(); - if(foundCount >= count) { + if (foundCount >= count) { break; } } } - if(foundCount < count) { + if (foundCount < count) { return false; } @@ -89,7 +89,7 @@ public static boolean findAndDecreaseClosestItemEntityOfItem(@NotNull World worl if (stack.isEmpty()) { itemEntity.discard(); } - if(count == 0) { + if (count == 0) { return true; } } diff --git a/src/main/java/de/dafuqs/spectrum/helpers/InventoryHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/InventoryHelper.java index ab587b5473..eb856fca66 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/InventoryHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/InventoryHelper.java @@ -32,7 +32,7 @@ public class InventoryHelper { public static int getItemCountInInventory(Inventory inventory, Item item) { int count = 0; - for(int i = 0; i < inventory.size(); i++) { + for (int i = 0; i < inventory.size(); i++) { ItemStack stack = inventory.getStack(i); if (stack.isOf(item)) { count += stack.getCount(); @@ -171,10 +171,11 @@ public static ItemStack combineStacks(ItemStack originalStack, ItemStack addingS /** * Adds a single stacks to an inventory in a given slot range - * @param inventory the inventory to add to + * + * @param inventory the inventory to add to * @param stackToAdd the stack to add to the inventory * @param rangeStart the start insert slot - * @param rangeEnd the last insert slot + * @param rangeEnd the last insert slot * @return false if the stack could not be completely added */ public static boolean addToInventory(Inventory inventory, ItemStack stackToAdd, int rangeStart, int rangeEnd) { @@ -195,10 +196,11 @@ public static boolean addToInventory(Inventory inventory, ItemStack stackToAdd, /** * Adds a list of stacks to an inventory in a given slot range - * @param inventory the inventory to add to + * + * @param inventory the inventory to add to * @param stacksToAdd the stacks to add to the inventory - * @param rangeStart the start insert slot - * @param rangeEnd the last insert slot + * @param rangeStart the start insert slot + * @param rangeEnd the last insert slot * @return false if not add stacksToAdd could be added */ public static boolean addToInventory(Inventory inventory, List stacksToAdd, int rangeStart, int rangeEnd) { @@ -207,17 +209,17 @@ public static boolean addToInventory(Inventory inventory, List stacks if (inventoryStack.isEmpty()) { inventory.setStack(i, stacksToAdd.get(0)); stacksToAdd.remove(0); - if(stacksToAdd.isEmpty()) { + if (stacksToAdd.isEmpty()) { return true; } } - for(int j = 0; j < stacksToAdd.size(); j++) { + for (int j = 0; j < stacksToAdd.size(); j++) { ItemStack stackToAdd = stacksToAdd.get(j); if (stackToAdd.isStackable()) { combineStacks(inventoryStack, stackToAdd); if (stackToAdd.isEmpty()) { stacksToAdd.remove(j); - if(stacksToAdd.isEmpty()) { + if (stacksToAdd.isEmpty()) { return true; } j--; @@ -247,7 +249,7 @@ public static boolean hasInInventory(List ingredients, Inventory inv List ingredientsToFind = new ArrayList<>(); List requiredIngredientAmounts = new ArrayList<>(); for (Ingredient ingredient : ingredients) { - if(ingredient.isEmpty()) { + if (ingredient.isEmpty()) { continue; } @@ -264,7 +266,7 @@ public static boolean hasInInventory(List ingredients, Inventory inv break; } ItemStack currentStack = inventory.getStack(i); - if(!currentStack.isEmpty()) { + if (!currentStack.isEmpty()) { int amount = currentStack.getCount(); for (int j = 0; j < ingredientsToFind.size(); j++) { if (ingredientsToFind.get(j).test(currentStack)) { @@ -278,7 +280,7 @@ public static boolean hasInInventory(List ingredients, Inventory inv } amount -= ingredientCount; - if(amount < 1) { + if (amount < 1) { break; } } @@ -296,7 +298,7 @@ public static List removeFromInventoryWithRemainders(List List requiredIngredients = new ArrayList<>(); List requiredIngredientAmounts = new ArrayList<>(); for (Ingredient ingredient : ingredients) { - if(ingredient.isEmpty()) { + if (ingredient.isEmpty()) { continue; } @@ -314,14 +316,14 @@ public static List removeFromInventoryWithRemainders(List } ItemStack currentStack = inventory.getStack(i); - if(!currentStack.isEmpty()) { + if (!currentStack.isEmpty()) { for (int j = 0; j < requiredIngredients.size(); j++) { int currentStackCount = currentStack.getCount(); if (requiredIngredients.get(j).test(currentStack)) { int ingredientCount = requiredIngredientAmounts.get(j); Item remainder = currentStack.getItem().getRecipeRemainder(); if (currentStackCount >= ingredientCount) { - if(remainder != null && remainder != Items.AIR) { + if (remainder != null && remainder != Items.AIR) { ItemStack remainderStack = remainder.getDefaultStack(); remainderStack.setCount(requiredIngredientAmounts.get(j)); remainders.add(remainderStack); @@ -330,7 +332,7 @@ public static List removeFromInventoryWithRemainders(List requiredIngredientAmounts.remove(j); j--; } else { - if(remainder != null && remainder != Items.AIR) { + if (remainder != null && remainder != Items.AIR) { ItemStack remainderStack = remainder.getDefaultStack(); remainderStack.setCount(currentStackCount); remainders.add(remainderStack); @@ -362,7 +364,7 @@ public static List removeFromInventoryWithRemainders(ItemStack remove currentStack.decrement(amountAbleToDecrement); removeItemStackCount -= amountAbleToDecrement; - if(remainder != null && remainder != Items.AIR) { + if (remainder != null && remainder != Items.AIR) { ItemStack remainderStack = remainder.getDefaultStack(); remainderStack.setCount(amountAbleToDecrement); remainders.add(remainderStack); @@ -432,23 +434,23 @@ public static ItemStack addToInventoryUpToSingleStackWithMaxTotalCount(ItemStack ItemStack slotStack = inventory.getStack(i); if (slotStack.isEmpty()) { - if(firstEmptySlot == -1) { + if (firstEmptySlot == -1) { firstEmptySlot = i; } } else { itemCount += slotStack.getCount(); - if(ItemStack.canCombine(itemStack, slotStack)) { + if (ItemStack.canCombine(itemStack, slotStack)) { matchingStack = slotStack; } } } int storageLeft = maxTotalCount - itemCount; - if(storageLeft <= 0) { + if (storageLeft <= 0) { return itemStack; } - if(matchingStack != null) { + if (matchingStack != null) { int addedCount = Math.min(matchingStack.getMaxCount() - matchingStack.getCount(), itemStack.getCount()); addedCount = Math.min(storageLeft, addedCount); if (addedCount > 0) { @@ -458,7 +460,7 @@ public static ItemStack addToInventoryUpToSingleStackWithMaxTotalCount(ItemStack return itemStack; } - if(firstEmptySlot == -1) { + if (firstEmptySlot == -1) { return itemStack; } @@ -468,7 +470,7 @@ public static ItemStack addToInventoryUpToSingleStackWithMaxTotalCount(ItemStack public static int countItemsInInventory(Inventory inventory) { int contentCount = 0; - for(int i = 0; i < inventory.size(); i++) { + for (int i = 0; i < inventory.size(); i++) { ItemStack stack = inventory.getStack(i); contentCount += stack.getCount(); } diff --git a/src/main/java/de/dafuqs/spectrum/helpers/LoreHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/LoreHelper.java index fe31b067e3..0fcbcaad40 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/LoreHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/LoreHelper.java @@ -5,9 +5,7 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtList; import net.minecraft.nbt.NbtString; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -16,11 +14,11 @@ public class LoreHelper { - public static @NotNull List getLoreTextArrayFromString(@NotNull String string) { - List loreText = new ArrayList<>(); + public static @NotNull List getLoreTextArrayFromString(@NotNull String string) { + List loreText = new ArrayList<>(); for (String split : string.split("\\\\n")) { - loreText.add(0, new LiteralText(split)); + loreText.add(0, Text.literal(split)); } return loreText; @@ -41,7 +39,7 @@ public class LoreHelper { } } - public static void setLore(@NotNull ItemStack itemStack, @Nullable List lore) { + public static void setLore(@NotNull ItemStack itemStack, @Nullable List lore) { NbtCompound nbtCompound = itemStack.getOrCreateSubNbt("display"); if (lore != null) { NbtList nbtList = new NbtList(); @@ -96,7 +94,7 @@ public static boolean hasLore(@NotNull ItemStack itemStack) { return lore; } - public static boolean equalsLore(List lore, ItemStack stack) { + public static boolean equalsLore(List lore, ItemStack stack) { if (hasLore(stack)) { List loreList = getLoreList(stack); @@ -114,7 +112,7 @@ public static boolean equalsLore(List lore, ItemStack stack) { return false; } - public static void setLore(@NotNull ItemStack stack, @Nullable TranslatableText lore) { + public static void setLore(@NotNull ItemStack stack, @Nullable Text lore) { NbtCompound nbtCompound = stack.getOrCreateSubNbt("display"); if (lore != null) { NbtList nbtList = new NbtList(); diff --git a/src/main/java/de/dafuqs/spectrum/helpers/ParticleHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/ParticleHelper.java new file mode 100644 index 0000000000..3fbcbc639b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/helpers/ParticleHelper.java @@ -0,0 +1,17 @@ +package de.dafuqs.spectrum.helpers; + +import de.dafuqs.spectrum.particle.ParticlePattern; +import net.minecraft.particle.ParticleEffect; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import org.jetbrains.annotations.NotNull; + +public class ParticleHelper { + + public static void playParticleWithPatternAndVelocityClient(World world, Vec3d position, ParticleEffect particleEffect, @NotNull ParticlePattern pattern, double velocity) { + for (Vec3d vec3d : pattern.getVectors()) { + world.addParticle(particleEffect, position.getX(), position.getY(), position.getZ(), vec3d.x * velocity, vec3d.y * velocity, vec3d.z * velocity); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/helpers/RenderHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/RenderHelper.java index 77e14f3beb..6a1e8f4097 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/RenderHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/RenderHelper.java @@ -14,7 +14,7 @@ public class RenderHelper { * Draws a filled triangle * Attention: The points specified have to be ordered in counter-clockwise order, or will now show up at all */ - public static void fillTriangle(MatrixStack matrices, int p1x, int p1y, int p2x, int p2y, int p3x, int p3y, Vec3f color){ + public static void fillTriangle(MatrixStack matrices, int p1x, int p1y, int p2x, int p2y, int p3x, int p3y, Vec3f color) { Matrix4f matrix = matrices.peek().getPositionMatrix(); float red = color.getX(); float green = color.getY(); @@ -29,8 +29,7 @@ public static void fillTriangle(MatrixStack matrices, int p1x, int p1y, int p2x, builder.vertex(matrix, p1x, p1y, 0F).color(red, green, blue, alpha).next(); builder.vertex(matrix, p2x, p2y, 0F).color(red, green, blue, alpha).next(); builder.vertex(matrix, p3x, p3y, 0F).color(red, green, blue, alpha).next(); - builder.end(); - BufferRenderer.draw(builder); + BufferRenderer.drawWithShader(builder.end()); RenderSystem.enableTexture(); RenderSystem.disableBlend(); } @@ -38,7 +37,7 @@ public static void fillTriangle(MatrixStack matrices, int p1x, int p1y, int p2x, /** * Draws a filled square */ - public static void fillQuad(MatrixStack matrices, int x, int y, int height, int width, Vec3f color){ + public static void fillQuad(MatrixStack matrices, int x, int y, int height, int width, Vec3f color) { Matrix4f matrix = matrices.peek().getPositionMatrix(); float red = color.getX(); float green = color.getY(); @@ -51,11 +50,10 @@ public static void fillQuad(MatrixStack matrices, int x, int y, int height, int RenderSystem.setShader(GameRenderer::getPositionColorShader); builder.begin(VertexFormat.DrawMode.QUADS, VertexFormats.POSITION_COLOR); builder.vertex(matrix, x, y, 0F).color(red, green, blue, alpha).next(); - builder.vertex(matrix, x, y+height, 0F).color(red, green, blue, alpha).next(); - builder.vertex(matrix, x+width, y+height, 0F).color(red, green, blue, alpha).next(); - builder.vertex(matrix, x+width, y, 0F).color(red, green, blue, alpha).next(); - builder.end(); - BufferRenderer.draw(builder); + builder.vertex(matrix, x, y + height, 0F).color(red, green, blue, alpha).next(); + builder.vertex(matrix, x + width, y + height, 0F).color(red, green, blue, alpha).next(); + builder.vertex(matrix, x + width, y, 0F).color(red, green, blue, alpha).next(); + BufferRenderer.drawWithShader(builder.end()); RenderSystem.enableTexture(); RenderSystem.disableBlend(); } diff --git a/src/main/java/de/dafuqs/spectrum/helpers/SpectrumEnchantmentHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/SpectrumEnchantmentHelper.java index aa464bb8bb..cbc08a0c4b 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/SpectrumEnchantmentHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/SpectrumEnchantmentHelper.java @@ -153,10 +153,10 @@ public static boolean canCombineAny(Map existingEnchantmen } } - public static @NotNull ItemStack removeEnchantment(@NotNull ItemStack itemStack, Enchantment enchantment) { + public static boolean removeEnchantment(@NotNull ItemStack itemStack, Enchantment enchantment) { NbtCompound compound = itemStack.getNbt(); if (compound == null) { - return itemStack; + return false; } NbtList enchantmentList; @@ -167,10 +167,12 @@ public static boolean canCombineAny(Map existingEnchantmen } Identifier enchantmentIdentifier = Registry.ENCHANTMENT.getId(enchantment); + boolean success = false; for (int i = 0; i < enchantmentList.size(); i++) { NbtCompound currentCompound = enchantmentList.getCompound(i); if (currentCompound.contains("id", NbtElement.STRING_TYPE) && Objects.equals(Identifier.tryParse(currentCompound.getString("id")), enchantmentIdentifier)) { enchantmentList.remove(i); + success = true; break; } } @@ -183,7 +185,7 @@ public static boolean canCombineAny(Map existingEnchantmen } itemStack.setNbt(compound); - return itemStack; + return success; } public static ItemStack getMaxEnchantedStack(@NotNull Item item, Enchantment... enchantments) { @@ -197,7 +199,7 @@ public static ItemStack getMaxEnchantedStack(@NotNull Item item, Enchantment... public static int getUsableLevel(SpectrumEnchantment enchantment, ItemStack itemStack, Entity entity) { int level = EnchantmentHelper.getLevel(enchantment, itemStack); - if(level > 0 && !enchantment.canEntityUse(entity)) { + if (level > 0 && !enchantment.canEntityUse(entity)) { level = 0; } return level; diff --git a/src/main/java/de/dafuqs/spectrum/helpers/Support.java b/src/main/java/de/dafuqs/spectrum/helpers/Support.java index 830f477ced..eebab874de 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/Support.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/Support.java @@ -1,34 +1,24 @@ package de.dafuqs.spectrum.helpers; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.PlayerAdvancementTracker; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.server.ServerAdvancementLoader; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.tag.TagKey; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3i; -import net.minecraft.world.World; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.*; +import net.minecraft.advancement.*; +import net.minecraft.block.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.Random; +import java.text.*; +import java.util.*; public class Support { @@ -78,18 +68,18 @@ public class Support { add(new Vec3d(0.75D, 0, -0.5D)); }}; private static final Identifier PROGRESSION_FINISHED_ADVANCEMENT_IDENTIFIER = SpectrumCommon.locate("lategame/finish_progression"); - private static final DecimalFormat df = new DecimalFormat("0.00"); - private static final DecimalFormat df1 = new DecimalFormat("0.0"); - private static final DecimalFormat df2 = new DecimalFormat("0"); + public static final DecimalFormat df = new DecimalFormat("0.00"); + public static final DecimalFormat df1 = new DecimalFormat("0.0"); + public static final DecimalFormat df2 = new DecimalFormat("0"); public static @NotNull Optional> getFirstMatchingBlockTag(@NotNull BlockState blockState, @NotNull List> tags) { return blockState.streamTags().filter(tags::contains).findFirst(); } - + public static String getWithOneDecimalAfterComma(float number) { return df1.format(number); } - + public static String getShortenedNumberString(double number) { if (number > 1000000000D) { return df.format(number / 1000000000D) + "G"; @@ -120,14 +110,14 @@ public static String getShortenedNumberString(long number) { * If it approaches 100 %, but is not yet still there, returns 99 */ public static String getSensiblePercent(long x, long y) { - if(y == 0) { + if (y == 0) { return "0"; } double result = (double) x / y; - if(result < 0.01 && x > 0) { + if (result < 0.01 && x > 0) { return "1"; - } else if(result > 0.99 && x != y) { + } else if (result > 0.99 && x != y) { return "99"; } else { return df2.format(Math.round(result * 100L)); @@ -170,19 +160,28 @@ public static int getIntFromDecimalWithChance(double d, @NotNull Random random) } } - public static BlockPos directionalOffset(BlockPos origin, Vec3i offset, @NotNull Direction horizontalFacing) { + + /** + * Returns a relative new BlockPos based on a facing direction and a vector + * + * @param origin the source position + * @param forwardUpRight a vector specifying the amount of blocks forward, up and right + * @param horizontalFacing the facing direction + * @return the blockpos with forwardUpRight offset from origin when facing horizontalFacing + */ + public static BlockPos directionalOffset(BlockPos origin, Vec3i forwardUpRight, @NotNull Direction horizontalFacing) { switch (horizontalFacing) { case NORTH -> { - return origin.add(offset.getZ(), offset.getY(), -offset.getX()); + return origin.add(forwardUpRight.getZ(), forwardUpRight.getY(), -forwardUpRight.getX()); } case EAST -> { - return origin.add(offset.getX(), offset.getY(), offset.getZ()); + return origin.add(forwardUpRight.getX(), forwardUpRight.getY(), forwardUpRight.getZ()); } case SOUTH -> { - return origin.add(offset.getZ(), offset.getY(), offset.getX()); + return origin.add(-forwardUpRight.getZ(), forwardUpRight.getY(), forwardUpRight.getX()); } case WEST -> { - return origin.add(-offset.getX(), offset.getY(), offset.getZ()); + return origin.add(-forwardUpRight.getX(), forwardUpRight.getY(), -forwardUpRight.getZ()); } default -> { SpectrumCommon.logWarning("Called directionalOffset with facing" + horizontalFacing + " this is not supported."); @@ -192,7 +191,7 @@ public static BlockPos directionalOffset(BlockPos origin, Vec3i offset, @NotNull } public static void grantAdvancementCriterion(@NotNull ServerPlayerEntity serverPlayerEntity, Identifier advancementIdentifier, String criterion) { - if(serverPlayerEntity.getServer() == null) { + if (serverPlayerEntity.getServer() == null) { return; } ServerAdvancementLoader sal = serverPlayerEntity.getServer().getAdvancementLoader(); @@ -220,9 +219,11 @@ public static void grantAdvancementCriterion(@NotNull ServerPlayerEntity serverP return "Nether"; case "minecraft:end": return "End"; + case "spectrum:deeper_down_dimension": + return "Deeper Down"; default: if (dimensionKeyString.contains(":")) { - return dimensionKeyString.substring(0, dimensionKeyString.indexOf(":")); + return dimensionKeyString.substring(dimensionKeyString.indexOf(":") + 1); } else { return dimensionKeyString; } diff --git a/src/main/java/de/dafuqs/spectrum/helpers/TooltipHelper.java b/src/main/java/de/dafuqs/spectrum/helpers/TooltipHelper.java index bc8d889050..213e8efbe8 100644 --- a/src/main/java/de/dafuqs/spectrum/helpers/TooltipHelper.java +++ b/src/main/java/de/dafuqs/spectrum/helpers/TooltipHelper.java @@ -8,9 +8,8 @@ import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.item.FoodComponent; import net.minecraft.item.ItemStack; -import net.minecraft.text.LiteralText; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.StringHelper; @@ -22,25 +21,25 @@ public class TooltipHelper { public static void addFoodComponentEffectTooltip(ItemStack stack, List tooltip) { FoodComponent foodComponent = stack.getItem().getFoodComponent(); - if(foodComponent != null) { - buildFoodEffectTooltip(tooltip, foodComponent.getStatusEffects()); + if (foodComponent != null) { + buildEffectTooltipWithChance(tooltip, foodComponent.getStatusEffects(), Text.translatable("spectrum.food.whenEaten")); } } - public static void buildFoodEffectTooltip(List tooltip, List> effectsWithChance) { - if(effectsWithChance.isEmpty()) { + public static void buildEffectTooltipWithChance(List tooltip, List> effectsWithChance, MutableText attributeModifierText) { + if (effectsWithChance.isEmpty()) { return; } List> modifiersList = Lists.newArrayList(); - TranslatableText translatableText; + MutableText translatableText; StatusEffect statusEffect; - for(Iterator> var5 = effectsWithChance.iterator(); var5.hasNext(); tooltip.add(translatableText.formatted(statusEffect.getCategory().getFormatting()))) { + for (Iterator> var5 = effectsWithChance.iterator(); var5.hasNext(); tooltip.add(translatableText.formatted(statusEffect.getCategory().getFormatting()))) { Pair entry = var5.next(); StatusEffectInstance statusEffectInstance = entry.getFirst(); Float chance = entry.getSecond(); - translatableText = new TranslatableText(statusEffectInstance.getTranslationKey()); + translatableText = Text.translatable(statusEffectInstance.getTranslationKey()); statusEffect = statusEffectInstance.getEffectType(); Map map = statusEffect.getAttributeModifiers(); if (!map.isEmpty()) { @@ -52,19 +51,19 @@ public static void buildFoodEffectTooltip(List tooltip, List 0) { - translatableText = new TranslatableText("potion.withAmplifier", translatableText, new TranslatableText("potion.potency." + statusEffectInstance.getAmplifier())); + translatableText = Text.translatable("potion.withAmplifier", translatableText, Text.translatable("potion.potency." + statusEffectInstance.getAmplifier())); } if (statusEffectInstance.getDuration() > 20) { - translatableText = new TranslatableText("potion.withDuration", translatableText, StringHelper.formatTicks(statusEffectInstance.getDuration())); + translatableText = Text.translatable("potion.withDuration", translatableText, StringHelper.formatTicks(statusEffectInstance.getDuration())); } - if(chance < 1.0F) { - translatableText = new TranslatableText("spectrum.food.withChance", translatableText, Math.round(chance * 100)); + if (chance < 1.0F) { + translatableText = Text.translatable("spectrum.food.withChance", translatableText, Math.round(chance * 100)); } } if (!modifiersList.isEmpty()) { - tooltip.add(LiteralText.EMPTY); - tooltip.add((new TranslatableText("spectrum.food.whenEaten")).formatted(Formatting.DARK_PURPLE)); + tooltip.add(Text.empty()); + tooltip.add(attributeModifierText.formatted(Formatting.DARK_PURPLE)); for (Pair entityAttributeEntityAttributeModifierPair : modifiersList) { EntityAttributeModifier entityAttributeModifier3 = entityAttributeEntityAttributeModifierPair.getSecond(); @@ -77,10 +76,54 @@ public static void buildFoodEffectTooltip(List tooltip, List 0.0D) { - tooltip.add((new TranslatableText("attribute.modifier.plus." + entityAttributeModifier3.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(e), new TranslatableText((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.BLUE)); + tooltip.add((Text.translatable("attribute.modifier.plus." + entityAttributeModifier3.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(e), Text.translatable((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.BLUE)); } else if (d < 0.0D) { e *= -1.0D; - tooltip.add((new TranslatableText("attribute.modifier.take." + entityAttributeModifier3.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(e), new TranslatableText((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.RED)); + tooltip.add((Text.translatable("attribute.modifier.take." + entityAttributeModifier3.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(e), Text.translatable((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.RED)); + } + } + } + } + + public static void buildEffectTooltip(List tooltip, List effects, MutableText attributeModifierText) { + if (effects.size() > 0) { + List> attributeModifiers = Lists.newArrayList(); + for (StatusEffectInstance effect : effects) { + MutableText mutableText = Text.translatable(effect.getTranslationKey()); + + if (effect.getAmplifier() > 0) { + mutableText = Text.translatable("potion.withAmplifier", mutableText, Text.translatable("potion.potency." + effect.getAmplifier())); + } + tooltip.add(mutableText.formatted(effect.getEffectType().getCategory().getFormatting())); + + Map map = effect.getEffectType().getAttributeModifiers(); + for (Map.Entry entityAttributeEntityAttributeModifierEntry : map.entrySet()) { + EntityAttributeModifier entityAttributeModifier = entityAttributeEntityAttributeModifierEntry.getValue(); + EntityAttributeModifier entityAttributeModifier2 = new EntityAttributeModifier(entityAttributeModifier.getName(), effect.getEffectType().adjustModifierAmount(effect.getAmplifier(), entityAttributeModifier), entityAttributeModifier.getOperation()); + attributeModifiers.add(new Pair<>(entityAttributeEntityAttributeModifierEntry.getKey(), entityAttributeModifier2)); + } + } + + if (!attributeModifiers.isEmpty()) { + tooltip.add(Text.empty()); + tooltip.add(attributeModifierText.formatted(Formatting.DARK_PURPLE)); + + for (Pair entityAttributeEntityAttributeModifierPair : attributeModifiers) { + EntityAttributeModifier mutableText = entityAttributeEntityAttributeModifierPair.getSecond(); + double statusEffect = mutableText.getValue(); + double d; + if (mutableText.getOperation() != EntityAttributeModifier.Operation.MULTIPLY_BASE && mutableText.getOperation() != EntityAttributeModifier.Operation.MULTIPLY_TOTAL) { + d = mutableText.getValue(); + } else { + d = mutableText.getValue() * 100.0D; + } + + if (statusEffect > 0.0D) { + tooltip.add((Text.translatable("attribute.modifier.plus." + mutableText.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(d), Text.translatable((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.BLUE)); + } else if (statusEffect < 0.0D) { + d *= -1.0D; + tooltip.add((Text.translatable("attribute.modifier.take." + mutableText.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(d), Text.translatable((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.RED)); + } } } } diff --git a/src/main/java/de/dafuqs/spectrum/interfaces/PlayerEntityAccessor.java b/src/main/java/de/dafuqs/spectrum/interfaces/PlayerEntityAccessor.java index f1797e6da1..d4e3a55fd7 100644 --- a/src/main/java/de/dafuqs/spectrum/interfaces/PlayerEntityAccessor.java +++ b/src/main/java/de/dafuqs/spectrum/interfaces/PlayerEntityAccessor.java @@ -5,6 +5,7 @@ public interface PlayerEntityAccessor { void setSpectrumBobber(SpectrumFishingBobberEntity bobber); + SpectrumFishingBobberEntity getSpectrumBobber(); } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/interfaces/PlayerOwnedWithName.java b/src/main/java/de/dafuqs/spectrum/interfaces/PlayerOwnedWithName.java index cfbeccae02..b7dee40240 100644 --- a/src/main/java/de/dafuqs/spectrum/interfaces/PlayerOwnedWithName.java +++ b/src/main/java/de/dafuqs/spectrum/interfaces/PlayerOwnedWithName.java @@ -2,6 +2,6 @@ public interface PlayerOwnedWithName extends PlayerOwned { - public abstract String getOwnerName(); + String getOwnerName(); } diff --git a/src/main/java/de/dafuqs/spectrum/interfaces/PotionFillable.java b/src/main/java/de/dafuqs/spectrum/interfaces/PotionFillable.java deleted file mode 100644 index 89971d4e9d..0000000000 --- a/src/main/java/de/dafuqs/spectrum/interfaces/PotionFillable.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.dafuqs.spectrum.interfaces; - -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.item.ItemStack; -import net.minecraft.potion.PotionUtil; -import net.minecraft.potion.Potions; - -import java.util.List; - -/** - * Items with this interface should support Potion nbt like - * set via PotionUtil.setCustomPotionEffects - * Think Custom Potions or Trinkets - */ -public interface PotionFillable { - - int maxEffectCount(); - - int maxEffectAmplifier(); - - default void addEffects(ItemStack potionFillableStack, List newEffects) { - if (!isFull(potionFillableStack)) { - List existingEffects = PotionUtil.getCustomPotionEffects(potionFillableStack); - int max = maxEffectCount(); - int maxAmplifier = maxEffectAmplifier(); - for (StatusEffectInstance newEffect : newEffects) { - if (newEffect.getAmplifier() > maxAmplifier) { - newEffect = new StatusEffectInstance(newEffect.getEffectType(), newEffect.getDuration(), maxAmplifier, newEffect.isAmbient(), newEffect.shouldShowParticles()); - } - existingEffects.add(newEffect); - if (existingEffects.size() == max) { - break; - } - } - - PotionUtil.setCustomPotionEffects(potionFillableStack, existingEffects); - } - } - - default boolean isFull(ItemStack itemStack) { - return PotionUtil.getCustomPotionEffects(itemStack).size() >= maxEffectCount(); - } - - default boolean isAtLeastPartiallyFilled(ItemStack itemStack) { - return PotionUtil.getCustomPotionEffects(itemStack).size() > 0; - } - - default void removeEffects(ItemStack itemStack) { - PotionUtil.setPotion(itemStack, Potions.EMPTY); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/AutoCompactingInventory.java b/src/main/java/de/dafuqs/spectrum/inventories/AutoCompactingInventory.java index ff4abb0c96..c93f099572 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/AutoCompactingInventory.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/AutoCompactingInventory.java @@ -7,6 +7,7 @@ public class AutoCompactingInventory extends AutoInventory { ItemStack inputItemStack; private AutoCraftingMode autoCraftingMode; + public AutoCompactingInventory() { super(3, 3); this.inputItemStack = ItemStack.EMPTY; diff --git a/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreen.java index c7cbb84b4e..c5ec50e6cf 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreen.java @@ -22,7 +22,6 @@ import net.minecraft.screen.ScreenHandlerListener; import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import org.lwjgl.glfw.GLFW; @@ -79,8 +78,9 @@ protected void setup() { int i = (this.width - this.backgroundWidth) / 2; int j = (this.height - this.backgroundHeight) / 2; - this.nameField = new TextFieldWidget(this.textRenderer, i + 62, j + 24, 98, 12, new TranslatableText("container.spectrum.bedrock_anvil")); + this.nameField = new TextFieldWidget(this.textRenderer, i + 62, j + 24, 98, 12, Text.translatable("container.spectrum.bedrock_anvil")); this.nameField.setFocusUnlocked(false); + this.nameField.setEditable(false); this.nameField.setEditableColor(-1); this.nameField.setUneditableColor(-1); this.nameField.setDrawsBackground(false); @@ -88,11 +88,10 @@ protected void setup() { this.nameField.setText(""); this.nameField.setChangedListener(this::onRenamed); this.addSelectableChild(this.nameField); - this.setInitialFocus(this.nameField); - this.nameField.setEditable(false); - this.loreField = new TextFieldWidget(this.textRenderer, i + 45, j + 76, 116, 12, new TranslatableText("container.spectrum.bedrock_anvil.lore")); + this.loreField = new TextFieldWidget(this.textRenderer, i + 45, j + 76, 116, 12, Text.translatable("container.spectrum.bedrock_anvil.lore")); this.loreField.setFocusUnlocked(false); + this.loreField.setEditable(false); this.loreField.setEditableColor(-1); this.loreField.setUneditableColor(-1); this.loreField.setDrawsBackground(false); @@ -100,7 +99,6 @@ protected void setup() { this.loreField.setText(""); this.loreField.setChangedListener(this::onLoreChanged); this.addSelectableChild(this.loreField); - this.loreField.setEditable(false); } @Override @@ -164,7 +162,7 @@ protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { this.textRenderer.draw(matrices, this.title, this.titleX, this.titleY, 3289650); this.textRenderer.draw(matrices, this.playerInventoryTitle, this.playerInventoryTitleX, this.playerInventoryTitleY, 3289650); - this.textRenderer.draw(matrices, new TranslatableText("container.spectrum.bedrock_anvil.lore"), playerInventoryTitleX, 76, 3289650); + this.textRenderer.draw(matrices, Text.translatable("container.spectrum.bedrock_anvil.lore"), playerInventoryTitleX, 76, 3289650); int levelCost = (this.handler).getLevelCost(); if (levelCost > 0 || this.handler.getSlot(2).hasStack()) { @@ -173,7 +171,7 @@ protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { if (!handler.getSlot(2).hasStack()) { costText = null; } else { - costText = new TranslatableText("container.repair.cost", levelCost); + costText = Text.translatable("container.repair.cost", levelCost); if (!handler.getSlot(2).canTakeItems(this.player)) { textColor = 16736352; } @@ -217,6 +215,10 @@ public void onSlotUpdate(ScreenHandler handler, int slotId, ItemStack stack) { if (stack.isEmpty()) { this.nameField.setEditable(false); this.loreField.setEditable(false); + this.nameField.setFocusUnlocked(false); + this.loreField.setFocusUnlocked(false); + this.nameField.setTextFieldFocused(false); + this.loreField.setTextFieldFocused(false); this.nameField.setChangedListener(null); this.loreField.setChangedListener(null); this.nameField.setText(""); @@ -226,6 +228,9 @@ public void onSlotUpdate(ScreenHandler handler, int slotId, ItemStack stack) { } else { this.nameField.setEditable(true); this.loreField.setEditable(true); + this.nameField.setFocusUnlocked(true); + this.loreField.setFocusUnlocked(true); + this.nameField.setTextFieldFocused(true); this.nameField.setText(stack.getName().getString()); String loreString = LoreHelper.getStringFromLoreTextArray(LoreHelper.getLoreList(stack)); diff --git a/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreenHandler.java index 0f1cf74bae..35f3fb6050 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/BedrockAnvilScreenHandler.java @@ -18,7 +18,7 @@ import net.minecraft.screen.ScreenHandlerContext; import net.minecraft.screen.slot.Slot; import net.minecraft.tag.BlockTags; -import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.world.WorldEvents; import org.apache.commons.lang3.StringUtils; @@ -35,7 +35,8 @@ public class BedrockAnvilScreenHandler extends ScreenHandler { private static final int PLAYER_INVENTORY_END_INDEX = 39; protected final CraftingResultInventory output = new CraftingResultInventory(); - protected final ScreenHandlerContext context; protected final Inventory input = new SimpleInventory(2) { + protected final ScreenHandlerContext context; + protected final Inventory input = new SimpleInventory(2) { public void markDirty() { super.markDirty(); onContentChanged(this); @@ -46,6 +47,7 @@ public void markDirty() { private int repairItemCount; private String newItemName; private String newLoreString; + public BedrockAnvilScreenHandler(int syncId, PlayerInventory inventory) { this(syncId, inventory, ScreenHandlerContext.EMPTY); } @@ -307,7 +309,7 @@ public void updateResult() { outputStack.removeCustomName(); } } else if (!this.newItemName.equals(itemStack.getName().getString())) { - outputStack.setCustomName(new LiteralText(this.newItemName)); + outputStack.setCustomName(Text.literal(this.newItemName)); renamed = true; } @@ -318,7 +320,7 @@ public void updateResult() { loreChanged = true; } } else { - List lore = LoreHelper.getLoreTextArrayFromString(this.newLoreString); + List lore = LoreHelper.getLoreTextArrayFromString(this.newLoreString); if (!LoreHelper.equalsLore(lore, itemStack)) { LoreHelper.setLore(outputStack, lore); loreChanged = true; @@ -359,7 +361,7 @@ public void setNewItemName(String newItemName) { if (StringUtils.isBlank(newItemName)) { itemStack.removeCustomName(); } else { - itemStack.setCustomName(new LiteralText(this.newItemName)); + itemStack.setCustomName(Text.literal(this.newItemName)); } } this.updateResult(); @@ -383,6 +385,5 @@ public int getLevelCost() { return this.levelCost.get(); } - } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/BlackHoleChestScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/BlackHoleChestScreen.java new file mode 100644 index 0000000000..1e7e8990bd --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/BlackHoleChestScreen.java @@ -0,0 +1,62 @@ +package de.dafuqs.spectrum.inventories; + +import com.mojang.blaze3d.systems.*; +import de.dafuqs.spectrum.*; +import net.minecraft.client.gui.screen.ingame.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; +import net.minecraft.entity.player.*; +import net.minecraft.text.*; +import net.minecraft.util.*; + +public class BlackHoleChestScreen extends HandledScreen { + + public static final Identifier BACKGROUND = SpectrumCommon.locate("textures/gui/container/black_hole_chest.png"); + + public BlackHoleChestScreen(BlackHoleChestScreenHandler handler, PlayerInventory playerInventory, Text title) { + super(handler, playerInventory, title); + this.backgroundHeight = 193; + } + + protected void init() { + super.init(); + } + + @Override + protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { + // draw "title" and "inventory" texts + int titleX = (backgroundWidth - textRenderer.getWidth(title)) / 2; + int titleY = 6; + Text title = this.title; + int inventoryX = 8; + int intInventoryY = 102; + + this.textRenderer.draw(matrices, title, titleX, titleY, 3289650); + this.textRenderer.draw(matrices, this.playerInventoryTitle, inventoryX, intInventoryY, 3289650); + } + + @Override + protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int mouseY) { + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderTexture(0, BACKGROUND); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + + int x = (width - backgroundWidth) / 2; + int y = (height - backgroundHeight) / 2; + drawTexture(matrices, x, y, 0, 0, backgroundWidth, backgroundHeight); + } + + @Override + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + renderBackground(matrices); + super.render(matrices, mouseX, mouseY, delta); + + /*if(mouseX > x+153 && mouseX < x+153+16 && mouseY > y+5 && mouseY < y+5+16) { + this.renderTooltip(matrices, Text.translatable("block.spectrum.compacting_chest.toggle_crafting_mode"), mouseX, mouseY); + } else { + + }*/ + drawMouseoverTooltip(matrices, mouseX, mouseY); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/BlackHoleChestScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/BlackHoleChestScreenHandler.java new file mode 100644 index 0000000000..769833f8b2 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/BlackHoleChestScreenHandler.java @@ -0,0 +1,142 @@ +package de.dafuqs.spectrum.inventories; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.chests.*; +import de.dafuqs.spectrum.inventories.slots.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.screen.*; +import net.minecraft.screen.slot.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +public class BlackHoleChestScreenHandler extends ScreenHandler { + + protected final World world; + private final Inventory inventory; + protected int ROWS = 3; + protected BlackHoleChestBlockEntity blackHoleChestBlockEntity; + protected Inventory filterInventory; + + public BlackHoleChestScreenHandler(int syncId, PlayerInventory playerInventory, PacketByteBuf packetByteBuf) { + this(syncId, playerInventory, packetByteBuf.readBlockPos(), FilterConfigurable.getFilterInventoryFromPacket(packetByteBuf)); + } + + private BlackHoleChestScreenHandler(int syncId, PlayerInventory playerInventory, BlockPos readBlockPos, Inventory filterInventory) { + this(SpectrumScreenHandlerTypes.BLACK_HOLE_CHEST, syncId, playerInventory, new SimpleInventory(BlackHoleChestBlockEntity.INVENTORY_SIZE), filterInventory); + BlockEntity blockEntity = playerInventory.player.world.getBlockEntity(readBlockPos); + if (blockEntity instanceof BlackHoleChestBlockEntity blackHoleChestBlockEntity) { + this.blackHoleChestBlockEntity = blackHoleChestBlockEntity; + } + } + + public BlackHoleChestScreenHandler(int syncId, PlayerInventory playerInventory, BlackHoleChestBlockEntity blackHoleChestBlockEntity) { + this(SpectrumScreenHandlerTypes.BLACK_HOLE_CHEST, syncId, playerInventory, blackHoleChestBlockEntity, FilterConfigurable.getFilterInventoryFromItems(blackHoleChestBlockEntity.getItemFilters())); + this.blackHoleChestBlockEntity = blackHoleChestBlockEntity; + this.filterInventory = FilterConfigurable.getFilterInventoryFromItems(blackHoleChestBlockEntity.getItemFilters()); + } + + protected BlackHoleChestScreenHandler(ScreenHandlerType type, int syncId, PlayerInventory playerInventory, Inventory inventory, Inventory filterInventory) { + super(type, syncId); + this.inventory = inventory; + this.world = playerInventory.player.world; + this.filterInventory = filterInventory; + + checkSize(inventory, BlackHoleChestBlockEntity.INVENTORY_SIZE); + inventory.onOpen(playerInventory.player); + + int i = (ROWS - 4) * 18; + + // sucking chest slots + int j; + int k; + for (j = 0; j < ROWS; ++j) { + for (k = 0; k < 9; ++k) { + this.addSlot(new Slot(inventory, k + j * 9, 8 + k * 18, 26 + 16 + j * 18)); + } + } + + // player inventory slots + for (j = 0; j < 3; ++j) { + for (k = 0; k < 9; ++k) { + this.addSlot(new Slot(playerInventory, k + j * 9 + 9, 8 + k * 18, 112 + 19 + j * 18 + i)); + } + } + + // player hotbar + for (j = 0; j < 9; ++j) { + this.addSlot(new Slot(playerInventory, j, 8 + j * 18, 170 + 19 + i)); + } + + // experience provider slot + this.addSlot(new StackFilterSlot(inventory, BlackHoleChestBlockEntity.EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT, 152, 18, SpectrumItems.KNOWLEDGE_GEM)); + + // filter slots + for (k = 0; k < BlackHoleChestBlockEntity.ITEM_FILTER_SLOT_COUNT; ++k) { + this.addSlot(new SuckingChestFilterSlot(filterInventory, k, 8 + k * 23, 18)); + } + } + + public boolean canUse(PlayerEntity player) { + return this.inventory.canPlayerUse(player); + } + + @Override + public ItemStack transferSlot(PlayerEntity player, int index) { + ItemStack itemStack = ItemStack.EMPTY; + Slot slot = this.slots.get(index); + if (slot.hasStack()) { + ItemStack itemStack2 = slot.getStack(); + itemStack = itemStack2.copy(); + if (index < this.ROWS * 9) { + if (!this.insertItem(itemStack2, this.ROWS * 9, this.slots.size() - 6, true)) { + return ItemStack.EMPTY; + } + } else if (!this.insertItem(itemStack2, 0, this.ROWS * 9, false)) { + return ItemStack.EMPTY; + } + + if (itemStack2.isEmpty()) { + slot.setStack(ItemStack.EMPTY); + } else { + slot.markDirty(); + } + } + + return itemStack; + } + + public Inventory getInventory() { + return this.inventory; + } + + public void close(PlayerEntity player) { + super.close(player); + this.inventory.onClose(player); + } + + public BlackHoleChestBlockEntity getBlockEntity() { + return this.blackHoleChestBlockEntity; + } + + protected class SuckingChestFilterSlot extends ShadowSlot { + + public SuckingChestFilterSlot(Inventory inventory, int index, int x, int y) { + super(inventory, index, x, y); + } + + @Override + public boolean onClicked(ItemStack heldStack, ClickType type, PlayerEntity player) { + if (blackHoleChestBlockEntity != null) { + blackHoleChestBlockEntity.setFilterItem(getIndex(), heldStack.getItem()); + } + return super.onClicked(heldStack, type, player); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreen.java index 476f39f529..e0d50cdf5f 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreen.java @@ -53,14 +53,14 @@ protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int int startY = (this.height - this.backgroundHeight) / 2; // main background - drawTexture(matrices, startX, startY, 0, 0, backgroundWidth, backgroundHeight); - + drawTexture(matrices, startX, startY, 0, 0, backgroundWidth, backgroundHeight); + this.inkMeterWidget.draw(matrices); int craftingTime = this.handler.getCraftingTime(); int craftingTimeTotal = this.handler.getCraftingTimeTotal(); - if(this.handler.getBlockEntity().getEnergyStorage().getEnergy(InkColors.ORANGE) > 0) { + if (this.handler.getBlockEntity().getEnergyStorage().getEnergy(InkColors.ORANGE) > 0) { this.drawTexture(matrices, this.x + 14, this.y + 62, 176, 14, 15, 2); } @@ -83,7 +83,7 @@ public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { @Override protected void drawMouseoverTooltip(MatrixStack matrices, int x, int y) { - if(this.inkMeterWidget.isMouseOver(x, y)) { + if (this.inkMeterWidget.isMouseOver(x, y)) { this.inkMeterWidget.drawMouseoverTooltip(matrices, x, y); } else { super.drawMouseoverTooltip(matrices, x, y); diff --git a/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreenHandler.java index abed441428..e558b245d9 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/CinderhearthScreenHandler.java @@ -32,7 +32,7 @@ public class CinderhearthScreenHandler extends ScreenHandler { public void sendContentUpdates() { super.sendContentUpdates(); - if(this.player != null && this.blockEntity.getInkDirty()) { + if (this.player != null && this.blockEntity.getInkDirty()) { SpectrumS2CPacketSender.updateBlockEntityInk(blockEntity.getPos(), blockEntity.getEnergyStorage(), player); } } @@ -60,10 +60,10 @@ public CinderhearthScreenHandler(int syncId, PlayerInventory playerInventory, Bl this.addSlot(new ExperienceStorageItemSlot(cinderhearthBlockEntity, CinderhearthBlockEntity.EXPERIENCE_STORAGE_ITEM_SLOT_ID, 38, 52)); this.addSlot(new Slot(cinderhearthBlockEntity, CinderhearthBlockEntity.INPUT_SLOT_ID, 14, 28)); - for(int i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { this.addSlot(new Slot(cinderhearthBlockEntity, CinderhearthBlockEntity.FIRST_OUTPUT_SLOT_ID + i, 62 + i * 18, 28)); } - for(int i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++) { this.addSlot(new Slot(cinderhearthBlockEntity, CinderhearthBlockEntity.FIRST_OUTPUT_SLOT_ID + 4 + i, 62 + i * 18, 28 + 18)); } @@ -79,7 +79,7 @@ public CinderhearthScreenHandler(int syncId, PlayerInventory playerInventory, Bl this.addSlot(new Slot(playerInventory, j, PLAYER_INVENTORY_START_X + j * 18, PLAYER_INVENTORY_START_Y + 58)); } - if(this.player != null) { + if (this.player != null) { SpectrumS2CPacketSender.updateBlockEntityInk(blockEntity.getPos(), this.blockEntity.getEnergyStorage(), player); } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreen.java index 3554825449..b7159ccbf4 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreen.java @@ -66,14 +66,14 @@ protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int int startY = (this.height - this.backgroundHeight) / 2; // main background - drawTexture(matrices, startX, startY, 0, 0, backgroundWidth, backgroundHeight); + drawTexture(matrices, startX, startY, 0, 0, backgroundWidth, backgroundHeight); this.inkGaugeWidget.draw(matrices); this.inkMeterWidget.draw(matrices); - this.colorSelectionWidget.draw(matrices); - + this.colorSelectionWidget.draw(matrices); + // gauge blanket - drawTexture(matrices, startX+52, startY+18, 176 ,0 ,46 , 46); + drawTexture(matrices, startX + 52, startY + 18, 176, 0, 46, 46); } @Override @@ -85,11 +85,11 @@ public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { @Override protected void drawMouseoverTooltip(MatrixStack matrices, int x, int y) { - if(this.inkGaugeWidget.isMouseOver(x, y)) { + if (this.inkGaugeWidget.isMouseOver(x, y)) { this.inkGaugeWidget.drawMouseoverTooltip(matrices, x, y); - } else if(this.inkMeterWidget.isMouseOver(x, y)) { + } else if (this.inkMeterWidget.isMouseOver(x, y)) { this.inkMeterWidget.drawMouseoverTooltip(matrices, x, y); - } else if(this.colorSelectionWidget.isMouseOver(x, y)) { + } else if (this.colorSelectionWidget.isMouseOver(x, y)) { this.colorSelectionWidget.drawMouseoverTooltip(matrices, x, y); } else { super.drawMouseoverTooltip(matrices, x, y); diff --git a/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreenHandler.java index 9b0eea2286..e5b692e8df 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/ColorPickerScreenHandler.java @@ -31,7 +31,7 @@ public class ColorPickerScreenHandler extends ScreenHandler implements InkColorS public void sendContentUpdates() { super.sendContentUpdates(); - if(this.player != null && this.blockEntity.getInkDirty()) { + if (this.player != null && this.blockEntity.getInkDirty()) { SpectrumS2CPacketSender.updateBlockEntityInk(blockEntity.getPos(), blockEntity.getEnergyStorage(), player); } } @@ -71,7 +71,7 @@ public ColorPickerScreenHandler(int syncId, PlayerInventory playerInventory, Blo this.addSlot(new Slot(playerInventory, j, PLAYER_INVENTORY_START_X + j * 18, PLAYER_INVENTORY_START_Y + 58)); } - if(this.player != null) { + if (this.player != null) { SpectrumS2CPacketSender.updateBlockEntityInk(blockEntity.getPos(), this.blockEntity.getEnergyStorage(), player); } } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/CompactingChestScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/CompactingChestScreen.java index 274c8fab2f..6f504b5a7a 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/CompactingChestScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/CompactingChestScreen.java @@ -12,9 +12,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.network.PacketByteBuf; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; public class CompactingChestScreen extends HandledScreen { @@ -39,7 +37,7 @@ protected void setupInputFields(CompactingChestBlockEntity compactingChestBlockE int x = (this.width - this.backgroundWidth) / 2 + 3; int y = (this.height - this.backgroundHeight) / 2 + 3; - ButtonWidget craftingModeButton = new ButtonWidget(x + 154, y + 6, 16, 16, new LiteralText("Mode"), this::craftingModeButtonPressed); + ButtonWidget craftingModeButton = new ButtonWidget(x + 154, y + 6, 16, 16, Text.literal("Mode"), this::craftingModeButtonPressed); addSelectableChild(craftingModeButton); } @@ -82,7 +80,7 @@ public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { super.render(matrices, mouseX, mouseY, delta); if (mouseX > x + 153 && mouseX < x + 153 + 16 && mouseY > y + 5 && mouseY < y + 5 + 16) { - this.renderTooltip(matrices, new TranslatableText("block.spectrum.compacting_chest.toggle_crafting_mode"), mouseX, mouseY); + this.renderTooltip(matrices, Text.translatable("block.spectrum.compacting_chest.toggle_crafting_mode"), mouseX, mouseY); } else { drawMouseoverTooltip(matrices, mouseX, mouseY); } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletInventory.java b/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletInventory.java index c8e89097f7..ea61083690 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletInventory.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletInventory.java @@ -60,7 +60,7 @@ public void markDirty() { } public int size() { - return 9+5; + return 9 + 5; } public boolean canPlayerUse(PlayerEntity player) { diff --git a/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletScreenHandler.java index 63d3b26b11..06601072d3 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/CraftingTabletScreenHandler.java @@ -102,7 +102,7 @@ public CraftingTabletScreenHandler(int syncId, PlayerInventory playerInventory, } // preview slot - lockableCraftingResultSlot = new LockableCraftingResultSlot(craftingResultInventory, 0, 127, 37, playerInventory.player, craftingInventory, 0, 8); + lockableCraftingResultSlot = new LockableCraftingResultSlot(craftingResultInventory, 0, 127, 37, playerInventory.player, craftingInventory, 0, 8); this.addSlot(lockableCraftingResultSlot); // player inventory diff --git a/src/main/java/de/dafuqs/spectrum/inventories/FilteringScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/FilteringScreen.java new file mode 100644 index 0000000000..93a5180e3c --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/FilteringScreen.java @@ -0,0 +1,58 @@ +package de.dafuqs.spectrum.inventories; + +import com.mojang.blaze3d.systems.*; +import de.dafuqs.spectrum.*; +import net.minecraft.client.gui.screen.ingame.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; +import net.minecraft.entity.player.*; +import net.minecraft.screen.slot.*; +import net.minecraft.text.*; +import net.minecraft.util.*; + +public class FilteringScreen extends HandledScreen { + + public static final Identifier BACKGROUND = SpectrumCommon.locate("textures/gui/container/filter.png"); + + public FilteringScreen(FilteringScreenHandler handler, PlayerInventory playerInventory, Text title) { + super(handler, playerInventory, title); + this.backgroundHeight = 133; + } + + @Override + protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { + // draw "title" and "inventory" texts + int titleX = (backgroundWidth - textRenderer.getWidth(title)) / 2; + int titleY = 6; + Text title = this.title; + int inventoryX = 8; + int intInventoryY = 41; + + this.textRenderer.draw(matrices, title, titleX, titleY, 3289650); + this.textRenderer.draw(matrices, this.playerInventoryTitle, inventoryX, intInventoryY, 3289650); + } + + @Override + protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int mouseY) { + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderTexture(0, BACKGROUND); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + + int x = (width - backgroundWidth) / 2; + int y = (height - backgroundHeight) / 2; + drawTexture(matrices, x, y, 0, 0, backgroundWidth, backgroundHeight); + + for (int i = 0; i < handler.filterInventory.size(); i++) { + Slot s = handler.getSlot(i); + drawTexture(matrices, x + s.x - 1, y + s.y - 1, 176, 0, 18, 18); + } + } + + @Override + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + renderBackground(matrices); + super.render(matrices, mouseX, mouseY, delta); + drawMouseoverTooltip(matrices, mouseX, mouseY); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/FilteringScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/FilteringScreenHandler.java new file mode 100644 index 0000000000..b0cb35dd2a --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/FilteringScreenHandler.java @@ -0,0 +1,91 @@ +package de.dafuqs.spectrum.inventories; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.inventories.slots.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.screen.*; +import net.minecraft.screen.slot.*; +import net.minecraft.util.*; +import net.minecraft.world.*; + +public class FilteringScreenHandler extends ScreenHandler { + + protected final World world; + protected FilterConfigurable filterConfigurable; + protected Inventory filterInventory; + + public FilteringScreenHandler(int syncId, PlayerInventory playerInventory, PacketByteBuf packetByteBuf) { + this(SpectrumScreenHandlerTypes.FILTERING, syncId, playerInventory, FilterConfigurable.getFilterInventoryFromPacket(packetByteBuf)); + } + + public FilteringScreenHandler(int syncId, PlayerInventory playerInventory, FilterConfigurable filterConfigurable) { + this(SpectrumScreenHandlerTypes.FILTERING, syncId, playerInventory, FilterConfigurable.getFilterInventoryFromItems(filterConfigurable.getItemFilters())); + this.filterConfigurable = filterConfigurable; + } + + protected FilteringScreenHandler(ScreenHandlerType type, int syncId, PlayerInventory playerInventory, Inventory filterInventory) { + super(type, syncId); + this.world = playerInventory.player.world; + this.filterInventory = filterInventory; + + // filter slots + int startX = (176 / 2) - (filterInventory.size() + 1) * 9; + for (int k = 0; k < filterInventory.size(); ++k) { + this.addSlot(new FilterSlot(filterInventory, k, startX + k * 23, 18)); + } + + // player inventory slots + int i = 52; + for (int j = 0; j < 3; ++j) { + for (int k = 0; k < 9; ++k) { + this.addSlot(new Slot(playerInventory, k + j * 9 + 9, 8 + k * 18, j * 18 + i)); + } + } + // player hotbar + for (int j = 0; j < 9; ++j) { + this.addSlot(new Slot(playerInventory, j, 8 + j * 18, 58 + i)); + } + + } + + + public boolean canUse(PlayerEntity player) { + return true; + } + + @Override + public ItemStack transferSlot(PlayerEntity player, int index) { + return ItemStack.EMPTY; + } + + public Inventory getInventory() { + return null; + } + + public void close(PlayerEntity player) { + super.close(player); + } + + public FilterConfigurable getFilterConfigurable() { + return this.filterConfigurable; + } + + protected class FilterSlot extends ShadowSlot { + + public FilterSlot(Inventory inventory, int index, int x, int y) { + super(inventory, index, x, y); + } + + @Override + public boolean onClicked(ItemStack heldStack, ClickType type, PlayerEntity player) { + if (!world.isClient && filterConfigurable != null) { + filterConfigurable.setFilterItem(getIndex(), heldStack.getItem()); + } + return super.onClicked(heldStack, type, player); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreen.java index 30459aeb6d..5944fedd0b 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreen.java @@ -1,278 +1,76 @@ package de.dafuqs.spectrum.inventories; -import com.mojang.blaze3d.systems.RenderSystem; -import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.energy.color.InkColor; import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.helpers.RenderHelper; import de.dafuqs.spectrum.networking.SpectrumC2SPacketSender; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.option.GameOptions; -import net.minecraft.client.render.GameRenderer; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -public class PaintbrushScreen extends HandledScreen { - - public static final int TEXT_COLOR = 0xEEEEEE; - public static final Identifier BACKGROUND = SpectrumCommon.locate("textures/gui/paintbrush.png"); +@Environment(EnvType.CLIENT) +public class PaintbrushScreen extends QuickNavigationGridScreen { + + public static final QuickNavigationGridScreen.Grid MAGENTA_GRID = new QuickNavigationGridScreen.Grid( + QuickNavigationGridScreen.GridEntry.of(InkColors.MAGENTA.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.MAGENTA)), + QuickNavigationGridScreen.GridEntry.of(InkColors.RED.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.RED)), + QuickNavigationGridScreen.GridEntry.of(InkColors.PINK.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.PINK)), + QuickNavigationGridScreen.GridEntry.of(InkColors.BROWN.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.BROWN)), + GridEntry.BACK + ); + + public static final QuickNavigationGridScreen.Grid CYAN_GRID = new QuickNavigationGridScreen.Grid( + QuickNavigationGridScreen.GridEntry.of(InkColors.CYAN.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.CYAN)), + GridEntry.BACK, + QuickNavigationGridScreen.GridEntry.of(InkColors.LIGHT_BLUE.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.LIGHT_BLUE)), + QuickNavigationGridScreen.GridEntry.of(InkColors.BLUE.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.BLUE)), + QuickNavigationGridScreen.GridEntry.of(InkColors.PURPLE.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.PURPLE)) + ); - protected static final Text CONTROLS_TEXT_1 = new TranslatableText("item.spectrum.paintbrush.gui.controls1"); - protected static final Text CONTROLS_TEXT_2 = new TranslatableText("item.spectrum.paintbrush.gui.controls2"); + public static final QuickNavigationGridScreen.Grid YELLOW_GRID = new QuickNavigationGridScreen.Grid( + QuickNavigationGridScreen.GridEntry.of(InkColors.YELLOW.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.YELLOW)), + QuickNavigationGridScreen.GridEntry.of(InkColors.ORANGE.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.ORANGE)), + GridEntry.BACK, + QuickNavigationGridScreen.GridEntry.of(InkColors.LIME.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.LIME)), + QuickNavigationGridScreen.GridEntry.of(InkColors.GREEN.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.GREEN)) + ); - public static final List MAIN_GRID = new ArrayList<>() {{ - add(InkColors.MAGENTA); - add(InkColors.CYAN); - add(InkColors.YELLOW); - add(InkColors.BLACK); - }}; - public static final List MAGENTA_GRID = new ArrayList<>() {{ - add(InkColors.RED); - add(InkColors.PINK); - add(null); - add(InkColors.BROWN); - }}; - public static final List CYAN_GRID = new ArrayList<>() {{ - add(InkColors.LIGHT_BLUE); - add(InkColors.BLUE); - add(InkColors.PURPLE); - add(null); - }}; - public static final List YELLOW_GRID = new ArrayList<>() {{ - add(null); - add(InkColors.ORANGE); - add(InkColors.LIME); - add(InkColors.GREEN); - }}; - public static final List BLACK_GRID = new ArrayList<>() {{ - add(InkColors.WHITE); - add(null); - add(InkColors.LIGHT_GRAY); - add(InkColors.GRAY); - }}; - public static final List> GRIDS = new ArrayList<>() {{ - add(MAIN_GRID); - add(MAGENTA_GRID); - add(CYAN_GRID); - add(YELLOW_GRID); - add(BLACK_GRID); - }}; + public static final QuickNavigationGridScreen.Grid BLACK_GRID = new QuickNavigationGridScreen.Grid( + QuickNavigationGridScreen.GridEntry.of(InkColors.BLACK.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.BLACK)), + QuickNavigationGridScreen.GridEntry.of(InkColors.WHITE.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.WHITE)), + QuickNavigationGridScreen.GridEntry.of(InkColors.LIGHT_GRAY.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.LIGHT_GRAY)), + GridEntry.BACK, + QuickNavigationGridScreen.GridEntry.of(InkColors.GRAY.getColor(), null, (screen) -> PaintbrushScreen.chooseColor(InkColors.GRAY)) + ); - private static final List> SQUARE_OFFSETS = List.of( - new Pair<>(-64, -16), - new Pair<>(-16, -64), - new Pair<>(32, -16), - new Pair<>(-16, 32) + public static final QuickNavigationGridScreen.Grid MAIN_GRID = new QuickNavigationGridScreen.Grid( + GridEntry.CLOSE, + QuickNavigationGridScreen.GridEntry.of(InkColors.BLACK.getColor(), null, (screen) -> { + if(((PaintbrushScreenHandler) screen.getScreenHandler()).hasAccessToWhites()) { + screen.selectGrid(BLACK_GRID); + } else { + PaintbrushScreen.chooseColor(InkColors.BLACK); + } + }), + QuickNavigationGridScreen.GridEntry.of(InkColors.MAGENTA.getColor(), null, (screen) -> screen.selectGrid(MAGENTA_GRID)), + QuickNavigationGridScreen.GridEntry.of(InkColors.CYAN.getColor(), null, (screen) -> screen.selectGrid(CYAN_GRID)), + QuickNavigationGridScreen.GridEntry.of(InkColors.YELLOW.getColor(), null, (screen) -> screen.selectGrid(YELLOW_GRID)) ); - private int currentGrid = 0; - public PaintbrushScreen(PaintbrushScreenHandler handler, PlayerInventory playerInventory, Text title) { super(handler, playerInventory, title); - this.backgroundHeight = 256; - } - - @Override - protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { - drawGrid(matrices, backgroundWidth / 2, backgroundHeight / 2, GRIDS.get(currentGrid)); - - this.textRenderer.draw(matrices, CONTROLS_TEXT_1, (backgroundWidth - textRenderer.getWidth(CONTROLS_TEXT_1)) / 2, 202, TEXT_COLOR); - this.textRenderer.draw(matrices, CONTROLS_TEXT_2, (backgroundWidth - textRenderer.getWidth(CONTROLS_TEXT_2)) / 2, 212, TEXT_COLOR); - } - - protected void drawGrid(MatrixStack matrices, int startX, int startY, List grid) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, BACKGROUND); - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - if(currentGrid == 0) { - drawTexture(matrices, startX - 5, startY - 5, 0, 0, 10, 10); - } else { - drawTexture(matrices, startX - 14, startY - 14, 48, 0, 28, 28); - RenderHelper.fillQuad(matrices, startX - 12, startY - 12, 24, 24, MAIN_GRID.get(currentGrid-1).getColor()); - } - - Iterator> iOffset = SQUARE_OFFSETS.iterator(); - for(InkColor color : grid) { - Pair offset = iOffset.next(); - if(color != null) { - drawTexture(matrices, startX + offset.getLeft() - 3, startY + offset.getRight() - 3, 10, 0, 38, 38); - RenderHelper.fillQuad(matrices, startX + offset.getLeft(), startY + offset.getRight(), 32, 32, color.getColor()); - } - } - } - - @Override - protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int mouseY) { - - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if(button == 1) { - // select - selectBack(); - } else { - // back - int startX = backgroundWidth / 2; - int startY = backgroundHeight / 2; - - mouseX = mouseX - x; - mouseY = mouseY - y; - - int centerElementSize = currentGrid == 0 ? 5 : 14; - if(mouseX >= startX -centerElementSize && mouseX <= startX + centerElementSize && mouseY >= startY -centerElementSize && mouseY <= startY + centerElementSize) { - selectCenter(); - return true; - } - - List grid = GRIDS.get(currentGrid); - Iterator> iOffset = SQUARE_OFFSETS.iterator(); - int offsetID = 0; - for (InkColor color : grid) { - Pair offset = iOffset.next(); - if (color != null) { - if(mouseX >= startX + offset.getLeft() && mouseX <= startX + offset.getLeft() + 32 && mouseY >= startY + offset.getRight() && mouseY <= startY + offset.getRight() + 32) { - switch (offsetID) { - case 0 -> { - selectLeft(); - return true; - } - case 1 -> { - selectUp(); - return true; - } - case 2 -> { - selectRight(); - return true; - } - case 3 -> { - selectDown(); - return true; - } - } - } - } - offsetID++; - } - } - - return super.mouseClicked(mouseX, mouseY, button); - } - - @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - GameOptions options = MinecraftClient.getInstance().options; - if (options.leftKey.matchesKey(keyCode, scanCode)) { - selectLeft(); - return true; - } else if(options.forwardKey.matchesKey(keyCode, scanCode)) { - selectUp(); - return true; - } else if(options.rightKey.matchesKey(keyCode, scanCode)) { - selectRight(); - return true; - } else if(options.backKey.matchesKey(keyCode, scanCode)) { - selectDown(); - return true; - } else if(options.dropKey.matchesKey(keyCode, scanCode) || options.inventoryKey.matchesKey(keyCode, scanCode)) { - selectCenter(); - return true; - } - return super.keyPressed(keyCode, scanCode, modifiers); - } - - private void selectCenter() { - if(currentGrid == 0) { - chooseColor(null); - } else { - chooseColor(MAIN_GRID.get(currentGrid-1)); - } - } - - private void selectRight() { - if(currentGrid == 0) { - currentGrid = 3; - client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); - } else { - InkColor selectedColor = GRIDS.get(currentGrid).get(2); - if(selectedColor == null) { - selectBack(); - } else { - chooseColor(selectedColor); - } - } - } - - private void selectUp() { - if(currentGrid == 0) { - currentGrid = 2; - client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); - } else { - InkColor selectedColor = GRIDS.get(currentGrid).get(1); - if(selectedColor == null) { - selectBack(); - } else { - chooseColor(selectedColor); - } - } - } - - private void selectLeft() { - if(currentGrid == 0) { - currentGrid = 1; - client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); - } else { - InkColor selectedColor = GRIDS.get(currentGrid).get(0); - if(selectedColor == null) { - selectBack(); - } else { - chooseColor(selectedColor); - } - } - } - - private void selectDown() { - if(currentGrid == 0) { - if(handler.hasAccessToWhites()) { - currentGrid = 4; - client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); - } else { - chooseColor(MAIN_GRID.get(3)); - } - } else { - InkColor selectedColor = GRIDS.get(currentGrid).get(3); - if(selectedColor == null) { - selectBack(); - } else { - chooseColor(selectedColor); - } - } - } - - private void selectBack() { - if(currentGrid != 0) { - currentGrid = 0; - client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); - } + gridStack.push(MAIN_GRID); } - private void chooseColor(@Nullable InkColor inkColor) { + protected static void chooseColor(@Nullable InkColor inkColor) { SpectrumC2SPacketSender.sendInkColorSelectedInGUI(inkColor); + MinecraftClient client = MinecraftClient.getInstance(); client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_PAINT, SoundCategory.NEUTRAL, 0.6F, 1.0F, false); client.player.closeHandledScreen(); - } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreenHandler.java index 7927017cc6..bcd002b272 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/PaintbrushScreenHandler.java @@ -3,35 +3,33 @@ import de.dafuqs.revelationary.api.advancements.AdvancementHelper; import de.dafuqs.spectrum.energy.color.InkColor; import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.items.magic_items.PaintBrushItem; +import de.dafuqs.spectrum.items.magic_items.PaintbrushItem; import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.screen.ScreenHandlerContext; import org.jetbrains.annotations.Nullable; -public class PaintbrushScreenHandler extends ScreenHandler implements InkColorSelectedPacketReceiver { +public class PaintbrushScreenHandler extends QuickNavigationGridScreenHandler implements InkColorSelectedPacketReceiver { private final PlayerEntity player; private final ItemStack paintBrushStack; - private boolean hasAccessToWhites; + private final boolean hasAccessToWhites; public PaintbrushScreenHandler(int syncId, PlayerInventory playerInventory) { - this(syncId, playerInventory, ScreenHandlerContext.EMPTY, null); + this(syncId, playerInventory, ItemStack.EMPTY); } - public PaintbrushScreenHandler(int syncId, PlayerInventory playerInventory, ScreenHandlerContext context, ItemStack paintBrushStack) { + public PaintbrushScreenHandler(int syncId, PlayerInventory playerInventory, ItemStack paintBrushStack) { super(SpectrumScreenHandlerTypes.PAINTBRUSH, syncId); this.player = playerInventory.player; this.paintBrushStack = paintBrushStack; this.hasAccessToWhites = AdvancementHelper.hasAdvancement(playerInventory.player, InkColors.WHITE.getRequiredAdvancement()); } - + public boolean canUse(PlayerEntity player) { - for(ItemStack itemStack : player.getItemsHand()) { - if(itemStack == paintBrushStack) { + for (ItemStack itemStack : player.getHandItems()) { + if (itemStack == paintBrushStack) { return true; } } @@ -44,7 +42,8 @@ public boolean hasAccessToWhites() { @Override public void onInkColorSelectedPacket(@Nullable InkColor inkColor) { - PaintBrushItem.setColor(paintBrushStack, inkColor); + PaintbrushItem.setColor(paintBrushStack, inkColor); + close(player); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreen.java index a9b0a5fc3c..4b1f9250cf 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreen.java @@ -17,7 +17,6 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.network.PacketByteBuf; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import net.minecraft.util.Identifier; import org.jetbrains.annotations.Contract; @@ -38,7 +37,7 @@ public class ParticleSpawnerScreen extends HandledScreen AVAILABLE_PARTICLES = new ArrayList<>() {{ - add(SpectrumCommon.locate("particle/sparklestone_sparkle")); + add(SpectrumCommon.locate("particle/shimmerstone_sparkle")); add(SpectrumCommon.locate("particle/shooting_star")); add(SpectrumCommon.locate("particle/liquid_crystal_sparkle")); add(SpectrumCommon.locate("particle/void_fog")); @@ -157,20 +156,20 @@ public void renderForeground(MatrixStack matrices, int mouseX, int mouseY, float protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { this.textRenderer.draw(matrices, this.title, (float) this.titleX, (float) this.titleY, 2236962); - this.textRenderer.draw(matrices, new LiteralText("Particles / Second"), 10, 50, textColor); - this.textRenderer.draw(matrices, new LiteralText("x"), 66, 64, textColor); - this.textRenderer.draw(matrices, new LiteralText("y"), 99, 64, textColor); - this.textRenderer.draw(matrices, new LiteralText("z"), 134, 64, textColor); - this.textRenderer.draw(matrices, new LiteralText("Offset"), 10, 78, textColor); - this.textRenderer.draw(matrices, new LiteralText("Variance"), 21, 97, textColor); - this.textRenderer.draw(matrices, new LiteralText("Velocity"), 10, 117, textColor); - this.textRenderer.draw(matrices, new LiteralText("Variance"), 21, 137, textColor); - this.textRenderer.draw(matrices, new LiteralText("Scale"), 10, 161, textColor); - this.textRenderer.draw(matrices, new LiteralText("Variance"), 91, 161, textColor); - this.textRenderer.draw(matrices, new LiteralText("Duration"), 10, 181, textColor); - this.textRenderer.draw(matrices, new LiteralText("Variance"), 91, 181, textColor); - this.textRenderer.draw(matrices, new LiteralText("Gravity"), 10, 201, textColor); - this.textRenderer.draw(matrices, new LiteralText("Collisions"), 90, 201, textColor); + this.textRenderer.draw(matrices, Text.literal("Particles / Second"), 10, 50, textColor); + this.textRenderer.draw(matrices, Text.literal("x"), 66, 64, textColor); + this.textRenderer.draw(matrices, Text.literal("y"), 99, 64, textColor); + this.textRenderer.draw(matrices, Text.literal("z"), 134, 64, textColor); + this.textRenderer.draw(matrices, Text.literal("Offset"), 10, 78, textColor); + this.textRenderer.draw(matrices, Text.literal("Variance"), 21, 97, textColor); + this.textRenderer.draw(matrices, Text.literal("Velocity"), 10, 117, textColor); + this.textRenderer.draw(matrices, Text.literal("Variance"), 21, 137, textColor); + this.textRenderer.draw(matrices, Text.literal("Scale"), 10, 161, textColor); + this.textRenderer.draw(matrices, Text.literal("Variance"), 91, 161, textColor); + this.textRenderer.draw(matrices, Text.literal("Duration"), 10, 181, textColor); + this.textRenderer.draw(matrices, Text.literal("Variance"), 91, 181, textColor); + this.textRenderer.draw(matrices, Text.literal("Gravity"), 10, 201, textColor); + this.textRenderer.draw(matrices, Text.literal("Collisions"), 90, 201, textColor); } @Override @@ -203,26 +202,26 @@ protected void setupInputFields(ParticleSpawnerBlockEntity blockEntity) { int i = (this.width - this.backgroundWidth) / 2 + 3; int j = (this.height - this.backgroundHeight) / 2 + 3; - amountField = addTextFieldWidget(i + 110, j + 47, new LiteralText("Amount"), String.valueOf(blockEntity.particlesPerSecond), this::isPositiveDecimalNumberUnderThousand); - positionXField = addTextFieldWidget(i + 61, j + 74, new LiteralText("X Position"), String.valueOf(blockEntity.particleSourcePosition.getX()), this::isAbsoluteDecimalNumberThousand); - positionYField = addTextFieldWidget(i + 96, j + 74, new LiteralText("Y Position"), String.valueOf(blockEntity.particleSourcePosition.getY()), this::isAbsoluteDecimalNumberThousand); - positionZField = addTextFieldWidget(i + 131, j + 74, new LiteralText("Z Position"), String.valueOf(blockEntity.particleSourcePosition.getZ()), this::isAbsoluteDecimalNumberThousand); - positionXVarianceField = addTextFieldWidget(i + 69, j + 94, new LiteralText("X Position Variance"), String.valueOf(blockEntity.particleSourcePositionVariance.getX()), this::isAbsoluteDecimalNumberThousand); - positionYVarianceField = addTextFieldWidget(i + 104, j + 94, new LiteralText("Y Position Variance"), String.valueOf(blockEntity.particleSourcePositionVariance.getY()), this::isAbsoluteDecimalNumberThousand); - positionZVarianceField = addTextFieldWidget(i + 140, j + 94, new LiteralText("Z Position Variance"), String.valueOf(blockEntity.particleSourcePositionVariance.getZ()), this::isAbsoluteDecimalNumberThousand); - velocityXField = addTextFieldWidget(i + 61, j + 114, new LiteralText("X Velocity"), String.valueOf(blockEntity.velocity.getX()), this::isAbsoluteDecimalNumberThousand); - velocityYField = addTextFieldWidget(i + 96, j + 114, new LiteralText("Y Velocity"), String.valueOf(blockEntity.velocity.getY()), this::isAbsoluteDecimalNumberThousand); - velocityZField = addTextFieldWidget(i + 131, j + 114, new LiteralText("Z Velocity"), String.valueOf(blockEntity.velocity.getZ()), this::isAbsoluteDecimalNumberThousand); - velocityXVarianceField = addTextFieldWidget(i + 69, j + 134, new LiteralText("X Velocity Variance"), String.valueOf(blockEntity.velocityVariance.getX()), this::isAbsoluteDecimalNumberThousand); - velocityYVarianceField = addTextFieldWidget(i + 104, j + 134, new LiteralText("Y Velocity Variance"), String.valueOf(blockEntity.velocityVariance.getY()), this::isAbsoluteDecimalNumberThousand); - velocityZVarianceField = addTextFieldWidget(i + 140, j + 134, new LiteralText("Z Velocity Variance"), String.valueOf(blockEntity.velocityVariance.getZ()), this::isAbsoluteDecimalNumberThousand); - scale = addTextFieldWidget(i + 55, j + 158, new LiteralText("Scale"), String.valueOf(blockEntity.scale), this::isPositiveDecimalNumberUnderTen); - scaleVariance = addTextFieldWidget(i + 139, j + 158, new LiteralText("Scale Variance"), String.valueOf(blockEntity.scaleVariance), this::isPositiveDecimalNumberUnderTen); - duration = addTextFieldWidget(i + 55, j + 178, new LiteralText("Duration"), String.valueOf(blockEntity.lifetimeTicks), this::isPositiveWholeNumberUnderThousand); - durationVariance = addTextFieldWidget(i + 139, j + 178, new LiteralText("Duration Variance"), String.valueOf(blockEntity.lifetimeVariance), this::isPositiveWholeNumberUnderThousand); - gravity = addTextFieldWidget(i + 55, j + 198, new LiteralText("Gravity"), String.valueOf(blockEntity.gravity), this::isBetweenZeroAndOne); + amountField = addTextFieldWidget(i + 110, j + 47, Text.literal("Amount"), String.valueOf(blockEntity.particlesPerSecond), this::isPositiveDecimalNumberUnderThousand); + positionXField = addTextFieldWidget(i + 61, j + 74, Text.literal("X Position"), String.valueOf(blockEntity.particleSourcePosition.getX()), this::isAbsoluteDecimalNumberThousand); + positionYField = addTextFieldWidget(i + 96, j + 74, Text.literal("Y Position"), String.valueOf(blockEntity.particleSourcePosition.getY()), this::isAbsoluteDecimalNumberThousand); + positionZField = addTextFieldWidget(i + 131, j + 74, Text.literal("Z Position"), String.valueOf(blockEntity.particleSourcePosition.getZ()), this::isAbsoluteDecimalNumberThousand); + positionXVarianceField = addTextFieldWidget(i + 69, j + 94, Text.literal("X Position Variance"), String.valueOf(blockEntity.particleSourcePositionVariance.getX()), this::isAbsoluteDecimalNumberThousand); + positionYVarianceField = addTextFieldWidget(i + 104, j + 94, Text.literal("Y Position Variance"), String.valueOf(blockEntity.particleSourcePositionVariance.getY()), this::isAbsoluteDecimalNumberThousand); + positionZVarianceField = addTextFieldWidget(i + 140, j + 94, Text.literal("Z Position Variance"), String.valueOf(blockEntity.particleSourcePositionVariance.getZ()), this::isAbsoluteDecimalNumberThousand); + velocityXField = addTextFieldWidget(i + 61, j + 114, Text.literal("X Velocity"), String.valueOf(blockEntity.velocity.getX()), this::isAbsoluteDecimalNumberThousand); + velocityYField = addTextFieldWidget(i + 96, j + 114, Text.literal("Y Velocity"), String.valueOf(blockEntity.velocity.getY()), this::isAbsoluteDecimalNumberThousand); + velocityZField = addTextFieldWidget(i + 131, j + 114, Text.literal("Z Velocity"), String.valueOf(blockEntity.velocity.getZ()), this::isAbsoluteDecimalNumberThousand); + velocityXVarianceField = addTextFieldWidget(i + 69, j + 134, Text.literal("X Velocity Variance"), String.valueOf(blockEntity.velocityVariance.getX()), this::isAbsoluteDecimalNumberThousand); + velocityYVarianceField = addTextFieldWidget(i + 104, j + 134, Text.literal("Y Velocity Variance"), String.valueOf(blockEntity.velocityVariance.getY()), this::isAbsoluteDecimalNumberThousand); + velocityZVarianceField = addTextFieldWidget(i + 140, j + 134, Text.literal("Z Velocity Variance"), String.valueOf(blockEntity.velocityVariance.getZ()), this::isAbsoluteDecimalNumberThousand); + scale = addTextFieldWidget(i + 55, j + 158, Text.literal("Scale"), String.valueOf(blockEntity.scale), this::isPositiveDecimalNumberUnderTen); + scaleVariance = addTextFieldWidget(i + 139, j + 158, Text.literal("Scale Variance"), String.valueOf(blockEntity.scaleVariance), this::isPositiveDecimalNumberUnderTen); + duration = addTextFieldWidget(i + 55, j + 178, Text.literal("Duration"), String.valueOf(blockEntity.lifetimeTicks), this::isPositiveWholeNumberUnderThousand); + durationVariance = addTextFieldWidget(i + 139, j + 178, Text.literal("Duration Variance"), String.valueOf(blockEntity.lifetimeVariance), this::isPositiveWholeNumberUnderThousand); + gravity = addTextFieldWidget(i + 55, j + 198, Text.literal("Gravity"), String.valueOf(blockEntity.gravity), this::isBetweenZeroAndOne); - collisionsButton = new ButtonWidget(i + 142, j + 194, 16, 16, new LiteralText("Collisions"), this::collisionButtonPressed); + collisionsButton = new ButtonWidget(i + 142, j + 194, 16, 16, Text.literal("Collisions"), this::collisionButtonPressed); collisionsEnabled = blockEntity.collisions; addSelectableChild(collisionsButton); @@ -248,9 +247,9 @@ protected void setupInputFields(ParticleSpawnerBlockEntity blockEntity) { add(collisionsButton); }}; - backButton = new ButtonWidget(i + 11, j + 19, 12, 14, new LiteralText("back"), this::navigationButtonPressed); + backButton = new ButtonWidget(i + 11, j + 19, 12, 14, Text.literal("back"), this::navigationButtonPressed); addSelectableChild(backButton); - forwardButton = new ButtonWidget(i + 147, j + 19, 12, 14, new LiteralText("forward"), this::navigationButtonPressed); + forwardButton = new ButtonWidget(i + 147, j + 19, 12, 14, Text.literal("forward"), this::navigationButtonPressed); addSelectableChild(forwardButton); particleButtons = new ArrayList<>(); @@ -268,10 +267,11 @@ protected void setupInputFields(ParticleSpawnerBlockEntity blockEntity) { } private void navigationButtonPressed(ButtonWidget buttonWidget) { + int pageCount = ((AVAILABLE_PARTICLES.size() / PARTICLES_PER_PAGE) + 1); if (buttonWidget == forwardButton) { - activeParticlePage = (activeParticlePage + 1) % ((AVAILABLE_PARTICLES.size() / PARTICLES_PER_PAGE) + 1); + activeParticlePage = (activeParticlePage + 1) % pageCount; } else { - activeParticlePage = (activeParticlePage - 1) % ((AVAILABLE_PARTICLES.size() / PARTICLES_PER_PAGE) + 1); + activeParticlePage = (activeParticlePage - 1 + pageCount) % pageCount; } } @@ -293,7 +293,7 @@ private void navigationButtonPressed(ButtonWidget buttonWidget) { } private @NotNull ButtonWidget addParticleButton(int x, int y) { - ButtonWidget button = new ButtonWidget(x, y, 20, 20, new LiteralText("asdfsd.asdfsd"), this::particleButtonPressed); + ButtonWidget button = new ButtonWidget(x, y, 20, 20, Text.literal("Particles"), this::particleButtonPressed); addSelectableChild(button); return button; } @@ -302,7 +302,7 @@ private void particleButtonPressed(ButtonWidget buttonWidget) { int buttonIndex = particleButtons.indexOf(buttonWidget); int newIndex = PARTICLES_PER_PAGE * activeParticlePage + buttonIndex; - if (newIndex < AVAILABLE_PARTICLES.size() - 1) { + if (newIndex < AVAILABLE_PARTICLES.size()) { particleSelectionIndex = newIndex; onValuesChanged(); } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreenHandler.java index b62ea328e8..8c7cbdb934 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/ParticleSpawnerScreenHandler.java @@ -4,6 +4,7 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; import net.minecraft.screen.ScreenHandler; import net.minecraft.util.math.BlockPos; @@ -42,6 +43,11 @@ public ParticleSpawnerBlockEntity getBlockEntity() { return this.particleSpawnerBlockEntity; } + @Override + public ItemStack transferSlot(PlayerEntity player, int index) { + return ItemStack.EMPTY; + } + @Override public boolean canUse(PlayerEntity player) { return this.particleSpawnerBlockEntity != null && !this.particleSpawnerBlockEntity.isRemoved(); diff --git a/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreen.java index 5bf7aa70dc..114c8c4c87 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreen.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreen.java @@ -9,7 +9,6 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.BlockRotation; import net.minecraft.util.Identifier; import org.jetbrains.annotations.Contract; @@ -139,7 +138,7 @@ public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { super.render(matrices, mouseX, mouseY, delta); if (mouseOverInformationIcon(mouseX, mouseY)) { - this.renderTooltip(matrices, new TranslatableText("multiblock.spectrum.pedestal.upgrade_available"), mouseX, mouseY); + this.renderTooltip(matrices, Text.translatable("multiblock.spectrum.pedestal.upgrade_available"), mouseX, mouseY); } else { drawMouseoverTooltip(matrices, mouseX, mouseY); } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreenHandler.java index 8f26cc1734..0e182e6460 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreenHandler.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/PedestalScreenHandler.java @@ -1,35 +1,26 @@ package de.dafuqs.spectrum.inventories; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntity; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.inventories.slots.DisabledSlot; -import de.dafuqs.spectrum.inventories.slots.PedestalPreviewSlot; -import de.dafuqs.spectrum.inventories.slots.StackFilterSlot; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.CraftingResultInventory; -import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.recipe.Recipe; -import net.minecraft.recipe.RecipeInputProvider; -import net.minecraft.recipe.RecipeMatcher; -import net.minecraft.recipe.book.RecipeBookCategory; +import de.dafuqs.spectrum.blocks.pedestal.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.inventories.slots.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.recipe.*; +import net.minecraft.recipe.book.*; import net.minecraft.screen.*; -import net.minecraft.screen.slot.Slot; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; +import net.minecraft.screen.slot.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; public class PedestalScreenHandler extends AbstractRecipeScreenHandler { protected final World world; - private final PlayerEntity player; private final Inventory inventory; private final PropertyDelegate propertyDelegate; private final RecipeBookCategory category; @@ -52,7 +43,6 @@ public PedestalScreenHandler(int syncId, PlayerInventory playerInventory, Invent protected PedestalScreenHandler(ScreenHandlerType type, ScreenHandlerContext context, RecipeBookCategory recipeBookCategory, int i, @NotNull PlayerInventory playerInventory, Inventory inventory, PropertyDelegate propertyDelegate, int pedestalRecipeTier, int maxRecipeTier, BlockPos pedestalPos) { super(type, i); - this.player = playerInventory.player; this.inventory = inventory; this.category = recipeBookCategory; this.propertyDelegate = propertyDelegate; @@ -190,7 +180,7 @@ public boolean canInsertIntoSlot(int index) { // Shift-Clicking // 0-8: crafting slots - // 9-13: spectrum slots + // 9-13: powder slots // 14: crafting tablet // 15: preview slot // 16: hidden output slot @@ -240,7 +230,7 @@ public ItemStack transferSlot(PlayerEntity player, int index) { } // crafting grid - if (!this.insertItem(clickedStack, 0, 8, false)) { + if (!this.insertItem(clickedStack, 0, 9, false)) { return ItemStack.EMPTY; } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/QuickNavigationGridScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/QuickNavigationGridScreen.java new file mode 100644 index 0000000000..1f15c14c7a --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/QuickNavigationGridScreen.java @@ -0,0 +1,280 @@ +package de.dafuqs.spectrum.inventories; + +import com.mojang.blaze3d.systems.RenderSystem; +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.helpers.RenderHelper; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.HandledScreen; +import net.minecraft.client.option.GameOptions; +import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.sound.SoundCategory; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.minecraft.util.Pair; +import net.minecraft.util.math.Vec3f; +import org.jetbrains.annotations.Nullable; + +import java.awt.*; +import java.util.List; +import java.util.Stack; + +public class QuickNavigationGridScreen extends HandledScreen { + + public static final int TEXT_COLOR = 0xEEEEEE; + public static final Identifier BACKGROUND = new Identifier(SpectrumCommon.MOD_ID, "textures/gui/paintbrush.png"); + + protected static final Text CONTROLS_TEXT_1 = Text.translatable("item.spectrum.paintbrush.gui.controls1"); + protected static final Text CONTROLS_TEXT_2 = Text.translatable("item.spectrum.paintbrush.gui.controls2"); + + private static final List> SQUARE_OFFSETS = List.of( + new Pair<>(-16, -64), + new Pair<>(32, -16), + new Pair<>(-16, 32), + new Pair<>(-64, -16) + ); + + public enum GUIDirection { + UP, + RIGHT, + DOWN, + LEFT, + SELECT, + BACK + } + + public static class Grid { + + private final GridEntry centerEntry; + private final GridEntry topEntry; + private final GridEntry rightEntry; + private final GridEntry bottomEntry; + private final GridEntry leftEntry; + + public Grid(GridEntry centerEntry, GridEntry topEntry, GridEntry rightEntry, GridEntry bottomEntry, GridEntry leftEntry) { + this.centerEntry = centerEntry; + this.topEntry = topEntry; + this.rightEntry = rightEntry; + this.bottomEntry = bottomEntry; + this.leftEntry = leftEntry; + } + + void navigate(GUIDirection direction, QuickNavigationGridScreen screen) { + switch (direction) { + case BACK -> { + screen.back(); + } + case SELECT -> { + centerEntry.callback.whenSelected(screen); + } + case UP -> { + topEntry.callback.whenSelected(screen); + } + case RIGHT -> { + rightEntry.callback.whenSelected(screen); + } + case DOWN -> { + bottomEntry.callback.whenSelected(screen); + } + default -> { + leftEntry.callback.whenSelected(screen); + } + } + } + + void render(Screen screen, MatrixStack matrices, int startX, int startY) { + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShaderTexture(0, BACKGROUND); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); + if (centerEntry == GridEntry.CLOSE) { + screen.drawTexture(matrices, startX - 5, startY - 5, 0, 0, 10, 10); + } else { + centerEntry.renderSmall(screen, matrices, startX - 14, startY - 14); + } + + topEntry.renderBig(screen, matrices, startX + SQUARE_OFFSETS.get(0).getLeft() - 3, startY + SQUARE_OFFSETS.get(0).getRight() - 3); + rightEntry.renderBig(screen, matrices, startX + SQUARE_OFFSETS.get(1).getLeft() - 3, startY + SQUARE_OFFSETS.get(1).getRight() - 3); + bottomEntry.renderBig(screen, matrices, startX + SQUARE_OFFSETS.get(2).getLeft() - 3, startY + SQUARE_OFFSETS.get(2).getRight() - 3); + leftEntry.renderBig(screen, matrices, startX + SQUARE_OFFSETS.get(3).getLeft() - 3, startY + SQUARE_OFFSETS.get(3).getRight() - 3); + } + + } + + public static class GridEntry { + + public static GridEntry CLOSE = GridEntry.of(null, null, QuickNavigationGridScreen::close); + public static GridEntry BACK = GridEntry.of(null, null, QuickNavigationGridScreen::back); + public static GridEntry EMPTY = GridEntry.of(); + + public interface GridEntryCallback { + void whenSelected(QuickNavigationGridScreen screen); + } + + private final Vec3f color; + private final @Nullable Point point; + private final GridEntryCallback callback; + + private GridEntry(Vec3f color, @Nullable Point point, GridEntryCallback callback) { + this.color = color; + this.point = point; + this.callback = callback; + } + + public static GridEntry of() { + return new GridEntry(null, null, screen -> {}); + } + + public static GridEntry of(Vec3f color) { + return new GridEntry(color, null, screen -> {}); + } + + public static GridEntry of(Vec3f color, Point point) { + return new GridEntry(color, point, screen -> {}); + } + + public static GridEntry of(Vec3f color, Point point, GridEntryCallback callback) { + return new GridEntry(color, point, callback); + } + + void renderBig(Screen screen, MatrixStack matrices, int startX, int startY) { + boolean drawFrame = false; + if(color != null) { + RenderHelper.fillQuad(matrices, startX + 3, startY + 3, 32, 32, color); + drawFrame = true; + } + if(point != null) { + screen.drawTexture(matrices, startX + 11, startY + 11, point.x, point.y, 16, 16); + drawFrame = true; + } + if(drawFrame) { + screen.drawTexture(matrices, startX, startY, 10, 0, 38, 38); + } + } + + void renderSmall(Screen screen, MatrixStack matrices, int startX, int startY) { + boolean drawFrame = false; + if(color != null) { + RenderHelper.fillQuad(matrices, startX + 2, startY + 2, 24, 24, color); + drawFrame = true; + } + if(point != null) { + drawFrame = true; + } + if(drawFrame) { + screen.drawTexture(matrices, startX, startY, 48, 0, 28, 28); + } + } + + } + + public final Stack gridStack = new Stack<>(); + + public QuickNavigationGridScreen(QuickNavigationGridScreenHandler handler, PlayerInventory playerInventory, Text title) { + super(handler, playerInventory, title); + this.backgroundHeight = 256; + } + + private void back() { + client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); + if(gridStack.size() == 1) { + client.player.closeHandledScreen(); + } else { + gridStack.pop(); + } + } + + void selectGrid(Grid grid) { + client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SWITCH, SoundCategory.NEUTRAL, 0.5F, 1.0F, false); + gridStack.push(grid); + } + + public Grid current() { + return gridStack.peek(); + } + + @Override + protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { + current().render(this, matrices, backgroundWidth / 2, backgroundHeight / 2); + + this.textRenderer.draw(matrices, CONTROLS_TEXT_1, (backgroundWidth - textRenderer.getWidth(CONTROLS_TEXT_1)) / 2, 202, TEXT_COLOR); + this.textRenderer.draw(matrices, CONTROLS_TEXT_2, (backgroundWidth - textRenderer.getWidth(CONTROLS_TEXT_2)) / 2, 212, TEXT_COLOR); + } + + @Override + protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int mouseY) { + + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (button == 1) { + current().navigate(GUIDirection.BACK, this); + } else { + int startX = backgroundWidth / 2; + int startY = backgroundHeight / 2; + + mouseX = mouseX - x; + mouseY = mouseY - y; + + int centerElementSize = gridStack.size() == 1 ? 5 : 14; + if (mouseX >= startX - centerElementSize && mouseX <= startX + centerElementSize && mouseY >= startY - centerElementSize && mouseY <= startY + centerElementSize) { + current().navigate(GUIDirection.SELECT, this); + return true; + } + + int offsetID = 0; + for (Pair offset : SQUARE_OFFSETS) { + if (mouseX >= startX + offset.getLeft() && mouseX <= startX + offset.getLeft() + 32 && mouseY >= startY + offset.getRight() && mouseY <= startY + offset.getRight() + 32) { + switch (offsetID) { + case 0 -> { + current().navigate(GUIDirection.UP, this); + return true; + } + case 1 -> { + current().navigate(GUIDirection.RIGHT, this); + return true; + } + case 2 -> { + current().navigate(GUIDirection.DOWN, this); + return true; + } + case 3 -> { + current().navigate(GUIDirection.LEFT, this); + return true; + } + } + } + offsetID++; + } + } + + return super.mouseClicked(mouseX, mouseY, button); + } + + @Override + public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + GameOptions options = MinecraftClient.getInstance().options; + if (options.leftKey.matchesKey(keyCode, scanCode)) { + current().navigate(GUIDirection.LEFT, this); + return true; + } else if (options.forwardKey.matchesKey(keyCode, scanCode)) { + current().navigate(GUIDirection.UP, this); + return true; + } else if (options.rightKey.matchesKey(keyCode, scanCode)) { + current().navigate(GUIDirection.RIGHT, this); + return true; + } else if (options.backKey.matchesKey(keyCode, scanCode)) { + current().navigate(GUIDirection.DOWN, this); + return true; + } else if (options.dropKey.matchesKey(keyCode, scanCode) || options.inventoryKey.matchesKey(keyCode, scanCode)) { + current().navigate(GUIDirection.SELECT, this); + return true; + } + return super.keyPressed(keyCode, scanCode, modifiers); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/QuickNavigationGridScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/QuickNavigationGridScreenHandler.java new file mode 100644 index 0000000000..5e16619e20 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/QuickNavigationGridScreenHandler.java @@ -0,0 +1,20 @@ +package de.dafuqs.spectrum.inventories; + +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.ScreenHandlerType; +import org.jetbrains.annotations.Nullable; + +public abstract class QuickNavigationGridScreenHandler extends ScreenHandler { + + public QuickNavigationGridScreenHandler(@Nullable ScreenHandlerType type, int syncId) { + super(type, syncId); + } + + @Override + public ItemStack transferSlot(PlayerEntity player, int index) { + return ItemStack.EMPTY; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/SpectrumContainers.java b/src/main/java/de/dafuqs/spectrum/inventories/SpectrumContainers.java deleted file mode 100644 index 07d45a048c..0000000000 --- a/src/main/java/de/dafuqs/spectrum/inventories/SpectrumContainers.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.dafuqs.spectrum.inventories; - -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.util.Identifier; - -public class SpectrumContainers { - - public static Identifier PAINTBRUSH; - public static Identifier PEDESTAL; - public static Identifier CRAFTING_TABLET; - public static Identifier RESTOCKING_CHEST; - public static Identifier BEDROCK_ANVIL; - public static Identifier PARTICLE_SPAWNER; - public static Identifier COMPACTING_CHEST; - public static Identifier SUCKING_CHEST; - public static Identifier POTION_WORKSHOP; - public static Identifier COLOR_PICKER; - public static Identifier CINDERHEARTH; - - public static Identifier GENERIC_TIER1_9x3; - public static Identifier GENERIC_TIER2_9x3; - public static Identifier GENERIC_TIER3_9x3; - - public static Identifier GENERIC_TIER1_9x6; - public static Identifier GENERIC_TIER2_9x6; - public static Identifier GENERIC_TIER3_9x6; - - public static Identifier GENERIC_TIER1_3X3; - public static Identifier GENERIC_TIER2_3X3; - public static Identifier GENERIC_TIER3_3X3; - - public static void register() { - PAINTBRUSH = SpectrumCommon.locate("paintbrush"); - PEDESTAL = SpectrumCommon.locate("pedestal"); - CRAFTING_TABLET = SpectrumCommon.locate("crafting_tablet"); - RESTOCKING_CHEST = SpectrumCommon.locate("restocking_chest"); - BEDROCK_ANVIL = SpectrumCommon.locate("bedrock_anvil"); - PARTICLE_SPAWNER = SpectrumCommon.locate("particle_spawner"); - COMPACTING_CHEST = SpectrumCommon.locate("compacting_chest"); - SUCKING_CHEST = SpectrumCommon.locate("sucking_chest"); - POTION_WORKSHOP = SpectrumCommon.locate("potion_workshop"); - COLOR_PICKER = SpectrumCommon.locate("color_picker"); - CINDERHEARTH = SpectrumCommon.locate("cinderhearth"); - - GENERIC_TIER1_9x3 = SpectrumCommon.locate("generic_tier1_9x3"); - GENERIC_TIER2_9x3 = SpectrumCommon.locate("generic_tier2_9x3"); - GENERIC_TIER3_9x3 = SpectrumCommon.locate("generic_tier3_9x3"); - - GENERIC_TIER1_9x6 = SpectrumCommon.locate("generic_tier1_9x6"); - GENERIC_TIER2_9x6 = SpectrumCommon.locate("generic_tier2_9x6"); - GENERIC_TIER3_9x6 = SpectrumCommon.locate("generic_tier3_9x6"); - - GENERIC_TIER1_3X3 = SpectrumCommon.locate("generic_tier1_3x3"); - GENERIC_TIER2_3X3 = SpectrumCommon.locate("generic_tier2_3x3"); - GENERIC_TIER3_3X3 = SpectrumCommon.locate("generic_tier3_3x3"); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerIDs.java b/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerIDs.java new file mode 100644 index 0000000000..e458dab2a3 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerIDs.java @@ -0,0 +1,64 @@ +package de.dafuqs.spectrum.inventories; + +import de.dafuqs.spectrum.*; +import net.minecraft.util.*; + +public class SpectrumScreenHandlerIDs { + + public static Identifier PAINTBRUSH; + public static Identifier WORKSTAFF; + + public static Identifier PEDESTAL; + public static Identifier CRAFTING_TABLET; + public static Identifier RESTOCKING_CHEST; + public static Identifier BEDROCK_ANVIL; + public static Identifier PARTICLE_SPAWNER; + public static Identifier COMPACTING_CHEST; + public static Identifier BLACK_HOLE_CHEST; + public static Identifier POTION_WORKSHOP; + public static Identifier COLOR_PICKER; + public static Identifier CINDERHEARTH; + public static Identifier FILTERING; + + public static Identifier GENERIC_TIER1_9x3; + public static Identifier GENERIC_TIER2_9x3; + public static Identifier GENERIC_TIER3_9x3; + + public static Identifier GENERIC_TIER1_9x6; + public static Identifier GENERIC_TIER2_9x6; + public static Identifier GENERIC_TIER3_9x6; + + public static Identifier GENERIC_TIER1_3X3; + public static Identifier GENERIC_TIER2_3X3; + public static Identifier GENERIC_TIER3_3X3; + + public static void register() { + PAINTBRUSH = SpectrumCommon.locate("paintbrush"); + WORKSTAFF = SpectrumCommon.locate("workstaff"); + + PEDESTAL = SpectrumCommon.locate("pedestal"); + CRAFTING_TABLET = SpectrumCommon.locate("crafting_tablet"); + RESTOCKING_CHEST = SpectrumCommon.locate("restocking_chest"); + BEDROCK_ANVIL = SpectrumCommon.locate("bedrock_anvil"); + PARTICLE_SPAWNER = SpectrumCommon.locate("particle_spawner"); + COMPACTING_CHEST = SpectrumCommon.locate("compacting_chest"); + BLACK_HOLE_CHEST = SpectrumCommon.locate("black_hole_chest"); + POTION_WORKSHOP = SpectrumCommon.locate("potion_workshop"); + COLOR_PICKER = SpectrumCommon.locate("color_picker"); + CINDERHEARTH = SpectrumCommon.locate("cinderhearth"); + FILTERING = SpectrumCommon.locate("filtering"); + + GENERIC_TIER1_9x3 = SpectrumCommon.locate("generic_tier1_9x3"); + GENERIC_TIER2_9x3 = SpectrumCommon.locate("generic_tier2_9x3"); + GENERIC_TIER3_9x3 = SpectrumCommon.locate("generic_tier3_9x3"); + + GENERIC_TIER1_9x6 = SpectrumCommon.locate("generic_tier1_9x6"); + GENERIC_TIER2_9x6 = SpectrumCommon.locate("generic_tier2_9x6"); + GENERIC_TIER3_9x6 = SpectrumCommon.locate("generic_tier3_9x6"); + + GENERIC_TIER1_3X3 = SpectrumCommon.locate("generic_tier1_3x3"); + GENERIC_TIER2_3X3 = SpectrumCommon.locate("generic_tier2_3x3"); + GENERIC_TIER3_3X3 = SpectrumCommon.locate("generic_tier3_3x3"); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerTypes.java b/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerTypes.java index 4891bc2a8b..75e0127e36 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerTypes.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/SpectrumScreenHandlerTypes.java @@ -1,35 +1,37 @@ package de.dafuqs.spectrum.inventories; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; -import net.minecraft.client.gui.screen.ingame.HandledScreens; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.screen.ScreenHandlerType; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; +import net.fabricmc.fabric.api.screenhandler.v1.*; +import net.minecraft.client.gui.screen.ingame.*; +import net.minecraft.screen.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; public class SpectrumScreenHandlerTypes { public static ScreenHandlerType PAINTBRUSH; - public static ScreenHandlerType PEDESTAL; - public static ScreenHandlerType CRAFTING_TABLET; - public static ScreenHandlerType RESTOCKING_CHEST; - public static ScreenHandlerType BEDROCK_ANVIL; - public static ScreenHandlerType PARTICLE_SPAWNER; - public static ScreenHandlerType COMPACTING_CHEST; - public static ScreenHandlerType SUCKING_CHEST; - public static ScreenHandlerType POTION_WORKSHOP; - public static ScreenHandlerType COLOR_PICKER; - public static ScreenHandlerType CINDERHEARTH; - - public static ScreenHandlerType GENERIC_TIER1_9X3; - public static ScreenHandlerType GENERIC_TIER2_9X3; - public static ScreenHandlerType GENERIC_TIER3_9X3; - - public static ScreenHandlerType GENERIC_TIER1_9X6; - public static ScreenHandlerType GENERIC_TIER2_9X6; - public static ScreenHandlerType GENERIC_TIER3_9X6; - - public static ScreenHandlerType GENERIC_TIER1_3X3; + public static ScreenHandlerType WORKSTAFF; + + public static ScreenHandlerType PEDESTAL; + public static ScreenHandlerType CRAFTING_TABLET; + public static ScreenHandlerType RESTOCKING_CHEST; + public static ScreenHandlerType BEDROCK_ANVIL; + public static ScreenHandlerType PARTICLE_SPAWNER; + public static ScreenHandlerType COMPACTING_CHEST; + public static ScreenHandlerType BLACK_HOLE_CHEST; + public static ScreenHandlerType POTION_WORKSHOP; + public static ScreenHandlerType COLOR_PICKER; + public static ScreenHandlerType CINDERHEARTH; + public static ScreenHandlerType FILTERING; + + public static ScreenHandlerType GENERIC_TIER1_9X3; + public static ScreenHandlerType GENERIC_TIER2_9X3; + public static ScreenHandlerType GENERIC_TIER3_9X3; + + public static ScreenHandlerType GENERIC_TIER1_9X6; + public static ScreenHandlerType GENERIC_TIER2_9X6; + public static ScreenHandlerType GENERIC_TIER3_9X6; + + public static ScreenHandlerType GENERIC_TIER1_3X3; public static ScreenHandlerType GENERIC_TIER2_3X3; public static ScreenHandlerType GENERIC_TIER3_3X3; @@ -44,54 +46,60 @@ public static ScreenHandlerType registerExtended(Id } public static void register() { - PAINTBRUSH = registerSimple(SpectrumContainers.PAINTBRUSH, PaintbrushScreenHandler::new); - PEDESTAL = registerExtended(SpectrumContainers.PEDESTAL, PedestalScreenHandler::new); - PARTICLE_SPAWNER = registerExtended(SpectrumContainers.PARTICLE_SPAWNER, ParticleSpawnerScreenHandler::new); - COMPACTING_CHEST = registerExtended(SpectrumContainers.COMPACTING_CHEST, CompactingChestScreenHandler::new); - SUCKING_CHEST = registerExtended(SpectrumContainers.SUCKING_CHEST, SuckingChestScreenHandler::new); - COLOR_PICKER = registerExtended(SpectrumContainers.COLOR_PICKER, ColorPickerScreenHandler::new); - CINDERHEARTH = registerExtended(SpectrumContainers.CINDERHEARTH, CinderhearthScreenHandler::new); - - CRAFTING_TABLET = registerSimple(SpectrumContainers.CRAFTING_TABLET, CraftingTabletScreenHandler::new); - RESTOCKING_CHEST = registerSimple(SpectrumContainers.RESTOCKING_CHEST, RestockingChestScreenHandler::new); - BEDROCK_ANVIL = registerSimple(SpectrumContainers.BEDROCK_ANVIL, BedrockAnvilScreenHandler::new); - POTION_WORKSHOP = registerSimple(SpectrumContainers.POTION_WORKSHOP, PotionWorkshopScreenHandler::new); - - GENERIC_TIER1_9X3 = registerSimple(SpectrumContainers.GENERIC_TIER1_9x3, GenericSpectrumContainerScreenHandler::createGeneric9x3_Tier1); - GENERIC_TIER2_9X3 = registerSimple(SpectrumContainers.GENERIC_TIER2_9x3, GenericSpectrumContainerScreenHandler::createGeneric9x3_Tier2); - GENERIC_TIER3_9X3 = registerSimple(SpectrumContainers.GENERIC_TIER3_9x3, GenericSpectrumContainerScreenHandler::createGeneric9x3_Tier3); + PAINTBRUSH = registerSimple(SpectrumScreenHandlerIDs.PAINTBRUSH, PaintbrushScreenHandler::new); + WORKSTAFF = registerSimple(SpectrumScreenHandlerIDs.WORKSTAFF, WorkstaffScreenHandler::new); + + PEDESTAL = registerExtended(SpectrumScreenHandlerIDs.PEDESTAL, PedestalScreenHandler::new); + PARTICLE_SPAWNER = registerExtended(SpectrumScreenHandlerIDs.PARTICLE_SPAWNER, ParticleSpawnerScreenHandler::new); + COMPACTING_CHEST = registerExtended(SpectrumScreenHandlerIDs.COMPACTING_CHEST, CompactingChestScreenHandler::new); + BLACK_HOLE_CHEST = registerExtended(SpectrumScreenHandlerIDs.BLACK_HOLE_CHEST, BlackHoleChestScreenHandler::new); + COLOR_PICKER = registerExtended(SpectrumScreenHandlerIDs.COLOR_PICKER, ColorPickerScreenHandler::new); + CINDERHEARTH = registerExtended(SpectrumScreenHandlerIDs.CINDERHEARTH, CinderhearthScreenHandler::new); + FILTERING = registerExtended(SpectrumScreenHandlerIDs.FILTERING, FilteringScreenHandler::new); + + CRAFTING_TABLET = registerSimple(SpectrumScreenHandlerIDs.CRAFTING_TABLET, CraftingTabletScreenHandler::new); + RESTOCKING_CHEST = registerSimple(SpectrumScreenHandlerIDs.RESTOCKING_CHEST, RestockingChestScreenHandler::new); + BEDROCK_ANVIL = registerSimple(SpectrumScreenHandlerIDs.BEDROCK_ANVIL, BedrockAnvilScreenHandler::new); + POTION_WORKSHOP = registerSimple(SpectrumScreenHandlerIDs.POTION_WORKSHOP, PotionWorkshopScreenHandler::new); + + GENERIC_TIER1_9X3 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER1_9x3, GenericSpectrumContainerScreenHandler::createGeneric9x3_Tier1); + GENERIC_TIER2_9X3 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER2_9x3, GenericSpectrumContainerScreenHandler::createGeneric9x3_Tier2); + GENERIC_TIER3_9X3 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER3_9x3, GenericSpectrumContainerScreenHandler::createGeneric9x3_Tier3); - GENERIC_TIER1_9X6 = registerSimple(SpectrumContainers.GENERIC_TIER1_9x6, GenericSpectrumContainerScreenHandler::createGeneric9x6_Tier1); - GENERIC_TIER2_9X6 = registerSimple(SpectrumContainers.GENERIC_TIER2_9x6, GenericSpectrumContainerScreenHandler::createGeneric9x6_Tier2); - GENERIC_TIER3_9X6 = registerSimple(SpectrumContainers.GENERIC_TIER3_9x6, GenericSpectrumContainerScreenHandler::createGeneric9x6_Tier3); + GENERIC_TIER1_9X6 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER1_9x6, GenericSpectrumContainerScreenHandler::createGeneric9x6_Tier1); + GENERIC_TIER2_9X6 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER2_9x6, GenericSpectrumContainerScreenHandler::createGeneric9x6_Tier2); + GENERIC_TIER3_9X6 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER3_9x6, GenericSpectrumContainerScreenHandler::createGeneric9x6_Tier3); - GENERIC_TIER1_3X3 = registerSimple(SpectrumContainers.GENERIC_TIER1_3X3, Spectrum3x3ContainerScreenHandler::createTier1); - GENERIC_TIER2_3X3 = registerSimple(SpectrumContainers.GENERIC_TIER2_3X3, Spectrum3x3ContainerScreenHandler::createTier2); - GENERIC_TIER3_3X3 = registerSimple(SpectrumContainers.GENERIC_TIER3_3X3, Spectrum3x3ContainerScreenHandler::createTier3); + GENERIC_TIER1_3X3 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER1_3X3, Spectrum3x3ContainerScreenHandler::createTier1); + GENERIC_TIER2_3X3 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER2_3X3, Spectrum3x3ContainerScreenHandler::createTier2); + GENERIC_TIER3_3X3 = registerSimple(SpectrumScreenHandlerIDs.GENERIC_TIER3_3X3, Spectrum3x3ContainerScreenHandler::createTier3); } public static void registerClient() { HandledScreens.register(SpectrumScreenHandlerTypes.PAINTBRUSH, PaintbrushScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.PEDESTAL, PedestalScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.CRAFTING_TABLET, CraftingTabletScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.RESTOCKING_CHEST, RestockingChestScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.BEDROCK_ANVIL, BedrockAnvilScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.PARTICLE_SPAWNER, ParticleSpawnerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.COMPACTING_CHEST, CompactingChestScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.SUCKING_CHEST, SuckingChestScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.POTION_WORKSHOP, PotionWorkshopScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.COLOR_PICKER, ColorPickerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.CINDERHEARTH, CinderhearthScreen::new); - - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER1_9X3, SpectrumGenericContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER2_9X3, SpectrumGenericContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER3_9X3, SpectrumGenericContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER1_9X6, SpectrumGenericContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER2_9X6, SpectrumGenericContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER3_9X6, SpectrumGenericContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER1_3X3, Spectrum3x3ContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER2_3X3, Spectrum3x3ContainerScreen::new); - HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER3_3X3, Spectrum3x3ContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.WORKSTAFF, WorkstaffScreen::new); + + HandledScreens.register(SpectrumScreenHandlerTypes.PEDESTAL, PedestalScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.CRAFTING_TABLET, CraftingTabletScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.RESTOCKING_CHEST, RestockingChestScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.BEDROCK_ANVIL, BedrockAnvilScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.PARTICLE_SPAWNER, ParticleSpawnerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.COMPACTING_CHEST, CompactingChestScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.BLACK_HOLE_CHEST, BlackHoleChestScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.POTION_WORKSHOP, PotionWorkshopScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.COLOR_PICKER, ColorPickerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.CINDERHEARTH, CinderhearthScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.FILTERING, FilteringScreen::new); + + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER1_9X3, SpectrumGenericContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER2_9X3, SpectrumGenericContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER3_9X3, SpectrumGenericContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER1_9X6, SpectrumGenericContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER2_9X6, SpectrumGenericContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER3_9X6, SpectrumGenericContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER1_3X3, Spectrum3x3ContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER2_3X3, Spectrum3x3ContainerScreen::new); + HandledScreens.register(SpectrumScreenHandlerTypes.GENERIC_TIER3_3X3, Spectrum3x3ContainerScreen::new); } } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/SuckingChestScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/SuckingChestScreen.java deleted file mode 100644 index 345376e75e..0000000000 --- a/src/main/java/de/dafuqs/spectrum/inventories/SuckingChestScreen.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.dafuqs.spectrum.inventories; - -import com.mojang.blaze3d.systems.RenderSystem; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.render.GameRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -public class SuckingChestScreen extends HandledScreen { - - public static final Identifier BACKGROUND = SpectrumCommon.locate("textures/gui/container/black_hole_chest.png"); - - public SuckingChestScreen(SuckingChestScreenHandler handler, PlayerInventory playerInventory, Text title) { - super(handler, playerInventory, title); - this.backgroundHeight = 193; - } - - protected void init() { - super.init(); - } - - @Override - protected void drawForeground(MatrixStack matrices, int mouseX, int mouseY) { - // draw "title" and "inventory" texts - int titleX = (backgroundWidth - textRenderer.getWidth(title)) / 2; - int titleY = 6; - Text title = this.title; - int inventoryX = 8; - int intInventoryY = 102; - - this.textRenderer.draw(matrices, title, titleX, titleY, 3289650); - this.textRenderer.draw(matrices, this.playerInventoryTitle, inventoryX, intInventoryY, 3289650); - } - - @Override - protected void drawBackground(MatrixStack matrices, float delta, int mouseX, int mouseY) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); - RenderSystem.setShaderTexture(0, BACKGROUND); - RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - - int x = (width - backgroundWidth) / 2; - int y = (height - backgroundHeight) / 2; - drawTexture(matrices, x, y, 0, 0, backgroundWidth, backgroundHeight); - } - - @Override - public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { - renderBackground(matrices); - super.render(matrices, mouseX, mouseY, delta); - - /*if(mouseX > x+153 && mouseX < x+153+16 && mouseY > y+5 && mouseY < y+5+16) { - this.renderTooltip(matrices, new TranslatableText("block.spectrum.compacting_chest.toggle_crafting_mode"), mouseX, mouseY); - } else { - - }*/ - drawMouseoverTooltip(matrices, mouseX, mouseY); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/SuckingChestScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/SuckingChestScreenHandler.java deleted file mode 100644 index 255249b66e..0000000000 --- a/src/main/java/de/dafuqs/spectrum/inventories/SuckingChestScreenHandler.java +++ /dev/null @@ -1,168 +0,0 @@ -package de.dafuqs.spectrum.inventories; - -import de.dafuqs.spectrum.blocks.chests.SuckingChestBlockEntity; -import de.dafuqs.spectrum.inventories.slots.ShadowSlot; -import de.dafuqs.spectrum.inventories.slots.StackFilterSlot; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.screen.ScreenHandlerType; -import net.minecraft.screen.slot.Slot; -import net.minecraft.util.ClickType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; - -import java.util.List; - -public class SuckingChestScreenHandler extends ScreenHandler { - - protected final World world; - private final Inventory inventory; - protected int ROWS = 3; - protected SuckingChestBlockEntity suckingChestBlockEntity; - protected Inventory filterInventory; - - public SuckingChestScreenHandler(int syncId, PlayerInventory playerInventory, PacketByteBuf packetByteBuf) { - this(syncId, playerInventory, packetByteBuf.readBlockPos(), getFilterInventoryFromPacket(packetByteBuf)); - } - - public SuckingChestScreenHandler(int syncId, PlayerInventory playerInventory, BlockPos readBlockPos, Inventory filterInventory) { - this(SpectrumScreenHandlerTypes.SUCKING_CHEST, syncId, playerInventory, filterInventory); - - BlockEntity blockEntity = playerInventory.player.world.getBlockEntity(readBlockPos); - if (blockEntity instanceof SuckingChestBlockEntity suckingChestBlockEntity) { - this.suckingChestBlockEntity = suckingChestBlockEntity; - } - } - - public SuckingChestScreenHandler(int syncId, PlayerInventory playerInventory, SuckingChestBlockEntity suckingChestBlockEntity) { - this(SpectrumScreenHandlerTypes.SUCKING_CHEST, syncId, playerInventory, suckingChestBlockEntity, getFilterInventoryFromItems(suckingChestBlockEntity.getItemFilters())); - this.suckingChestBlockEntity = suckingChestBlockEntity; - this.filterInventory = getFilterInventoryFromItems(suckingChestBlockEntity.getItemFilters()); - } - - protected SuckingChestScreenHandler(ScreenHandlerType type, int i, PlayerInventory playerInventory, Inventory filterInventory) { - this(type, i, playerInventory, new SimpleInventory(SuckingChestBlockEntity.INVENTORY_SIZE), filterInventory); - } - - protected SuckingChestScreenHandler(ScreenHandlerType type, int syncId, PlayerInventory playerInventory, Inventory inventory, Inventory filterInventory) { - super(type, syncId); - this.inventory = inventory; - this.world = playerInventory.player.world; - this.filterInventory = filterInventory; - - checkSize(inventory, SuckingChestBlockEntity.INVENTORY_SIZE); - inventory.onOpen(playerInventory.player); - - int i = (ROWS - 4) * 18; - - // sucking chest slots - int j; - int k; - for (j = 0; j < ROWS; ++j) { - for (k = 0; k < 9; ++k) { - this.addSlot(new Slot(inventory, k + j * 9, 8 + k * 18, 26 + 16 + j * 18)); - } - } - - // player inventory slots - for (j = 0; j < 3; ++j) { - for (k = 0; k < 9; ++k) { - this.addSlot(new Slot(playerInventory, k + j * 9 + 9, 8 + k * 18, 112 + 19 + j * 18 + i)); - } - } - - // player hotbar - for (j = 0; j < 9; ++j) { - this.addSlot(new Slot(playerInventory, j, 8 + j * 18, 170 + 19 + i)); - } - - // experience provider slot - this.addSlot(new StackFilterSlot(inventory, SuckingChestBlockEntity.EXPERIENCE_STORAGE_PROVIDER_ITEM_SLOT, 152, 18, SpectrumItems.KNOWLEDGE_GEM)); - - // filter slots - for (k = 0; k < SuckingChestBlockEntity.ITEM_FILTER_SLOTS; ++k) { - this.addSlot(new SuckingChestFilterSlot(filterInventory, k, 8 + k * 23, 18)); - } - } - - protected static Inventory getFilterInventoryFromPacket(PacketByteBuf packetByteBuf) { - Inventory inventory = new SimpleInventory(SuckingChestBlockEntity.ITEM_FILTER_SLOTS); - for (int i = 0; i < SuckingChestBlockEntity.ITEM_FILTER_SLOTS; i++) { - inventory.setStack(i, Registry.ITEM.get(packetByteBuf.readIdentifier()).getDefaultStack()); - } - return inventory; - } - - protected static Inventory getFilterInventoryFromItems(List items) { - Inventory inventory = new SimpleInventory(SuckingChestBlockEntity.ITEM_FILTER_SLOTS); - for (int i = 0; i < SuckingChestBlockEntity.ITEM_FILTER_SLOTS; i++) { - inventory.setStack(i, items.get(i).getDefaultStack()); - } - return inventory; - } - - public boolean canUse(PlayerEntity player) { - return this.inventory.canPlayerUse(player); - } - - @Override - public ItemStack transferSlot(PlayerEntity player, int index) { - ItemStack itemStack = ItemStack.EMPTY; - Slot slot = this.slots.get(index); - if (slot.hasStack()) { - ItemStack itemStack2 = slot.getStack(); - itemStack = itemStack2.copy(); - if (index < this.ROWS * 9) { - if (!this.insertItem(itemStack2, this.ROWS * 9, this.slots.size() - 6, true)) { - return ItemStack.EMPTY; - } - } else if (!this.insertItem(itemStack2, 0, this.ROWS * 9, false)) { - return ItemStack.EMPTY; - } - - if (itemStack2.isEmpty()) { - slot.setStack(ItemStack.EMPTY); - } else { - slot.markDirty(); - } - } - - return itemStack; - } - - public Inventory getInventory() { - return this.inventory; - } - - public void close(PlayerEntity player) { - super.close(player); - this.inventory.onClose(player); - } - - public SuckingChestBlockEntity getBlockEntity() { - return this.suckingChestBlockEntity; - } - - protected class SuckingChestFilterSlot extends ShadowSlot { - - public SuckingChestFilterSlot(Inventory inventory, int index, int x, int y) { - super(inventory, index, x, y); - } - - @Override - public boolean onClicked(ItemStack heldStack, ClickType type, PlayerEntity player) { - suckingChestBlockEntity.setFilterItem(getIndex(), heldStack.getItem()); - return super.onClicked(heldStack, type, player); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/WorkstaffScreen.java b/src/main/java/de/dafuqs/spectrum/inventories/WorkstaffScreen.java new file mode 100644 index 0000000000..dcbb5ff5c6 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/WorkstaffScreen.java @@ -0,0 +1,89 @@ +package de.dafuqs.spectrum.inventories; + +import de.dafuqs.spectrum.energy.color.InkColors; +import de.dafuqs.spectrum.items.tools.RangedWorkstaffItem; +import de.dafuqs.spectrum.items.tools.WorkstaffItem; +import de.dafuqs.spectrum.networking.SpectrumC2SPacketSender; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.sound.SoundCategory; +import net.minecraft.text.Text; + +import java.awt.*; + +@Environment(EnvType.CLIENT) +public class WorkstaffScreen extends QuickNavigationGridScreen { + + private static final Grid RANGE_GRID = new Grid( + GridEntry.EMPTY, + GridEntry.of(InkColors.GRAY.getColor(), new Point(0, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_1x1)), + GridEntry.of(InkColors.GRAY.getColor(), new Point(32, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_5x5)), + GridEntry.BACK, + GridEntry.of(InkColors.GRAY.getColor(), new Point(16, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_3x3)) + ); + + private static final Grid ENCHANTMENT_GRID = new Grid( + GridEntry.EMPTY, + GridEntry.of(InkColors.GRAY.getColor(), new Point(48, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_SILK_TOUCH)), + GridEntry.BACK, + GridEntry.of(InkColors.GRAY.getColor(), new Point(64, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_RESONANCE)), + GridEntry.of(InkColors.GRAY.getColor(), new Point(80, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_FORTUNE)) + ); + + public WorkstaffScreen(WorkstaffScreenHandler handler, PlayerInventory playerInventory, Text title) { + super(handler, playerInventory, title); + + GridEntry rightClickGridEntry; + ItemStack mainHandStack = playerInventory.player.getMainHandStack(); + if (WorkstaffItem.canTill(mainHandStack.getNbt())) { + rightClickGridEntry = GridEntry.of(InkColors.GRAY.getColor(), new Point(144, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.DISABLE_RIGHT_CLICK_ACTIONS)); + } else { + rightClickGridEntry = GridEntry.of(InkColors.GRAY.getColor(), new Point(128, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.ENABLE_RIGHT_CLICK_ACTIONS)); + } + + if (mainHandStack.getItem() instanceof RangedWorkstaffItem) { + + GridEntry projectileEntry = RangedWorkstaffItem.canShoot(mainHandStack.getNbt()) + ? GridEntry.of(InkColors.GRAY.getColor(), new Point(176, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.DISABLE_PROJECTILES)) + : GridEntry.of(InkColors.GRAY.getColor(), new Point(160, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.ENABLE_PROJECTILES)); + + gridStack.push(new Grid( + GridEntry.CLOSE, + GridEntry.of(InkColors.GRAY.getColor(), new Point(112, 38), (screen) -> screen.selectGrid(RANGE_GRID)), + rightClickGridEntry, + projectileEntry, + GridEntry.of(InkColors.GRAY.getColor(), new Point(48, 38), (screen) -> screen.selectGrid(ENCHANTMENT_GRID)) + )); + + } else { + + GridEntry enchantmentEntry = EnchantmentHelper.getLevel(Enchantments.FORTUNE, mainHandStack) > 0 + ? GridEntry.of(InkColors.GRAY.getColor(), new Point(48, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_SILK_TOUCH)) + : GridEntry.of(InkColors.GRAY.getColor(), new Point(160, 38), (screen) -> WorkstaffScreen.select(WorkstaffItem.GUIToggle.SELECT_FORTUNE)); + + gridStack.push(new Grid( + GridEntry.CLOSE, + GridEntry.of(InkColors.GRAY.getColor(), new Point(112, 38), (screen) -> screen.selectGrid(RANGE_GRID)), + rightClickGridEntry, + GridEntry.EMPTY, + enchantmentEntry + )); + + } + + } + + protected static void select(WorkstaffItem.GUIToggle toggle) { + SpectrumC2SPacketSender.sendWorkstaffToggle(toggle); + MinecraftClient client = MinecraftClient.getInstance(); + client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_SELECT, SoundCategory.NEUTRAL, 0.6F, 1.0F, false); + client.player.closeHandledScreen(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/inventories/WorkstaffScreenHandler.java b/src/main/java/de/dafuqs/spectrum/inventories/WorkstaffScreenHandler.java new file mode 100644 index 0000000000..a139a3dd0f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/inventories/WorkstaffScreenHandler.java @@ -0,0 +1,37 @@ +package de.dafuqs.spectrum.inventories; + +import de.dafuqs.spectrum.items.tools.WorkstaffItem; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; +import org.jetbrains.annotations.Nullable; + +public class WorkstaffScreenHandler extends QuickNavigationGridScreenHandler { + + private final PlayerEntity player; + private final ItemStack workstaffStack; + + public WorkstaffScreenHandler(int syncId, PlayerInventory playerInventory) { + this(syncId, playerInventory, ItemStack.EMPTY); + } + + public WorkstaffScreenHandler(int syncId, PlayerInventory playerInventory, ItemStack workstaffStack) { + super(SpectrumScreenHandlerTypes.WORKSTAFF, syncId); + this.workstaffStack = workstaffStack; + this.player = playerInventory.player; + } + + public boolean canUse(PlayerEntity player) { + for (ItemStack itemStack : player.getHandItems()) { + if (itemStack == workstaffStack) { + return true; + } + } + return false; + } + + public void onWorkstaffToggleSelectionPacket(@Nullable WorkstaffItem.GUIToggle toggle) { + ((WorkstaffItem) workstaffStack.getItem()).applyToggle(player, workstaffStack, toggle); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/inventories/slots/LockableCraftingResultSlot.java b/src/main/java/de/dafuqs/spectrum/inventories/slots/LockableCraftingResultSlot.java index 45c5ada457..7fcd67e2f5 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/slots/LockableCraftingResultSlot.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/slots/LockableCraftingResultSlot.java @@ -42,7 +42,7 @@ public void onTakeItem(PlayerEntity player, ItemStack stack) { this.onCrafted(stack); DefaultedList defaultedList = player.world.getRecipeManager().getRemainingStacks(RecipeType.CRAFTING, this.input, player.world); - for(int i = craftingGridStartIndex; i < craftingGridEndIndex + 1; ++i) { + for (int i = craftingGridStartIndex; i < craftingGridEndIndex + 1; ++i) { ItemStack slotStack = this.input.getStack(i); ItemStack remainingStacks = defaultedList.get(i); if (!slotStack.isEmpty()) { diff --git a/src/main/java/de/dafuqs/spectrum/inventories/slots/PedestalPreviewSlot.java b/src/main/java/de/dafuqs/spectrum/inventories/slots/PedestalPreviewSlot.java index df5fda503c..ca9b8538e2 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/slots/PedestalPreviewSlot.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/slots/PedestalPreviewSlot.java @@ -15,7 +15,7 @@ public PedestalPreviewSlot(Inventory inventory, int index, int x, int y) { @Override public boolean onClicked(ItemStack heldStack, ClickType type, PlayerEntity player) { - if(!this.inventory.getStack(0).isEmpty() && player instanceof ServerPlayerEntity serverPlayerEntity) { + if (!this.inventory.getStack(0).isEmpty() && player instanceof ServerPlayerEntity serverPlayerEntity) { Support.grantAdvancementCriterion(serverPlayerEntity, "craft_using_pedestal_without_redstone", "try_take_out_item_from_pedestal"); } return false; diff --git a/src/main/java/de/dafuqs/spectrum/inventories/widgets/ColorSelectionWidget.java b/src/main/java/de/dafuqs/spectrum/inventories/widgets/ColorSelectionWidget.java index 60d6ee5e9f..1d04df333c 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/widgets/ColorSelectionWidget.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/widgets/ColorSelectionWidget.java @@ -15,7 +15,7 @@ import net.minecraft.client.gui.widget.ClickableWidget; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.sound.SoundCategory; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Pair; import net.minecraft.util.math.MathHelper; import org.jetbrains.annotations.Nullable; @@ -42,13 +42,13 @@ public class ColorSelectionWidget extends ClickableWidget implements Drawable, E int selectedDotY; public ColorSelectionWidget(int x, int y, int selectedDotX, int selectedDotY, Screen screen, ColorPickerBlockEntity colorPicker) { - super(x, y, 56, 14, new TranslatableText("")); + super(x, y, 56, 14, Text.literal("")); this.colorPicker = colorPicker; this.selectedDotX = selectedDotX; this.selectedDotY = selectedDotY; this.screen = screen; - for(InkColor inkColor : InkColor.all()) { + for (InkColor inkColor : InkColor.all()) { usableColors.add(new Pair<>(inkColor, AdvancementHelper.hasAdvancementClient(inkColor.getRequiredAdvancement()))); } } @@ -79,8 +79,8 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { int verticalColorOffset = yOffset / 7; int newColorIndex = horizontalColorOffset + verticalColorOffset * 8; InkColor newColor = InkColor.all().get(newColorIndex); - if(this.colorPicker.getSelectedColor() != newColor) { - if(AdvancementHelper.hasAdvancementClient(newColor.getRequiredAdvancement())) { + if (this.colorPicker.getSelectedColor() != newColor) { + if (AdvancementHelper.hasAdvancementClient(newColor.getRequiredAdvancement())) { MinecraftClient.getInstance().player.playSound(SpectrumSoundEvents.BUTTON_CLICK, SoundCategory.NEUTRAL, 1.0F, 1.0F); onChanged(newColor); } else { @@ -96,7 +96,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { @Override public void appendNarrations(NarrationMessageBuilder builder) { - builder.put(NarrationPart.TITLE, new TranslatableText("spectrum.narration.color_selection", this.colorPicker.getSelectedColor())); + builder.put(NarrationPart.TITLE, Text.translatable("spectrum.narration.color_selection", this.colorPicker.getSelectedColor())); } public void draw(MatrixStack matrices) { @@ -105,7 +105,7 @@ public void draw(MatrixStack matrices) { int currentX = this.x + 1; int currentY = this.y + 1; for (Pair color : usableColors) { - if(color.getRight()) { + if (color.getRight()) { fillQuad(matrices, currentX, currentY, 5, 5, color.getLeft().getColor()); } i = i + 1; @@ -118,7 +118,7 @@ public void draw(MatrixStack matrices) { // draw currently selected icon InkColor selectedColor = this.colorPicker.getSelectedColor(); - if(selectedColor != null) { + if (selectedColor != null) { fillQuad(matrices, selectedDotX, selectedDotY, 4, 4, selectedColor.getColor()); } } @@ -126,7 +126,7 @@ public void draw(MatrixStack matrices) { public void drawMouseoverTooltip(MatrixStack matrices, int mouseX, int mouseY) { boolean overUnselection = mouseX >= (double) selectedDotX && mouseX < (double) (selectedDotX + 4) && mouseY >= (double) selectedDotY && mouseY < (double) (selectedDotY + 4); if (overUnselection) { - screen.renderTooltip(matrices, List.of(new TranslatableText("spectrum.tooltip.ink_powered.unselect_color")), Optional.empty(), x, y); + screen.renderTooltip(matrices, List.of(Text.translatable("spectrum.tooltip.ink_powered.unselect_color")), Optional.empty(), x, y); } else { int xOffset = MathHelper.floor(mouseX) - this.x; @@ -140,7 +140,7 @@ public void drawMouseoverTooltip(MatrixStack matrices, int mouseX, int mouseY) { if (AdvancementHelper.hasAdvancementClient(newColor.getRequiredAdvancement())) { screen.renderTooltip(matrices, List.of(newColor.getName()), Optional.empty(), x, y); } else { - screen.renderTooltip(matrices, List.of(new TranslatableText("spectrum.tooltip.ink_powered.unselect_color")), Optional.empty(), x, y); + screen.renderTooltip(matrices, List.of(Text.translatable("spectrum.tooltip.ink_powered.unselect_color")), Optional.empty(), x, y); } } } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkGaugeWidget.java b/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkGaugeWidget.java index 119416ceba..29f65c2740 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkGaugeWidget.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkGaugeWidget.java @@ -13,7 +13,6 @@ import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import org.apache.commons.lang3.StringUtils; import java.util.*; @@ -71,13 +70,13 @@ public void drawMouseoverTooltip(MatrixStack matrices, int x, int y) { for (Map.Entry entry : energy.entrySet()) { long amount = entry.getValue(); if (amount > 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.bullet." + entry.getKey().toString().toLowerCase(Locale.ROOT), getShortenedNumberString(amount))); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.bullet." + entry.getKey().toString().toLowerCase(Locale.ROOT), getShortenedNumberString(amount))); } } if (tooltip.size() == 0) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_powered.empty")); + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.empty")); } else { - tooltip.add(0, new TranslatableText("spectrum.tooltip.ink_powered.stored")); + tooltip.add(0, Text.translatable("spectrum.tooltip.ink_powered.stored")); } screen.renderTooltip(matrices, tooltip, Optional.empty(), x, y); diff --git a/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkMeterWidget.java b/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkMeterWidget.java index 7949de2d8a..7fd5efc895 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkMeterWidget.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/widgets/InkMeterWidget.java @@ -75,7 +75,7 @@ public void draw(MatrixStack matrices) { IndividualCappedInkStorage inkStorage = inkStorageBlockEntity.getEnergyStorage(); long total = inkStorage.getMaxPerColor(); - for(InkColor inkColor : inkStorage.getSupportedColors()) { + for (InkColor inkColor : inkStorage.getSupportedColors()) { long amount = inkStorage.getEnergy(inkColor); if (amount > 0) { int height = Math.max(1, Math.round(((float) amount / ((float) total / this.height)))); @@ -84,7 +84,7 @@ public void draw(MatrixStack matrices) { currentXOffset = currentXOffset + WIDTH_PER_COLOR + SPACE_BETWEEN_COLORS; } - + } } diff --git a/src/main/java/de/dafuqs/spectrum/inventories/widgets/StackedInkMeterWidget.java b/src/main/java/de/dafuqs/spectrum/inventories/widgets/StackedInkMeterWidget.java index fbde12bbb9..b862af6af6 100644 --- a/src/main/java/de/dafuqs/spectrum/inventories/widgets/StackedInkMeterWidget.java +++ b/src/main/java/de/dafuqs/spectrum/inventories/widgets/StackedInkMeterWidget.java @@ -14,7 +14,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import java.util.List; import java.util.Map; @@ -67,7 +67,7 @@ public void drawMouseoverTooltip(MatrixStack matrices, int x, int y) { String readableCurrentTotalString = Support.getShortenedNumberString(currentTotal); String percent = Support.getSensiblePercent(inkStorage.getCurrentTotal(), (inkStorage.getMaxTotal())); screen.renderTooltip(matrices, - List.of(new TranslatableText("spectrum.tooltip.ink_powered.percent_filled", readableCurrentTotalString, percent)), + List.of(Text.translatable("spectrum.tooltip.ink_powered.percent_filled", readableCurrentTotalString, percent)), Optional.empty(), x, y); } @@ -81,9 +81,11 @@ public void draw(MatrixStack matrices) { int currentHeight = this.y + this.height; for (Map.Entry entry : inkStorage.getEnergy().entrySet()) { long amount = entry.getValue(); - if(amount > 0) { - int height = Math.max(1, Math.round (((float) amount / ((float) maxTotal / this.height)))); - RenderHelper.fillQuad(matrices, this.x, currentHeight - height, height, this.width, entry.getKey().getColor()); + if (amount > 0) { + int height = Math.round(((float) amount / ((float) maxTotal / this.height))); + if(height > 0) { + RenderHelper.fillQuad(matrices, this.x, currentHeight - height, height, this.width, entry.getKey().getColor()); + } currentHeight -= height; } } diff --git a/src/main/java/de/dafuqs/spectrum/items/ApplyFoodEffectsCallback.java b/src/main/java/de/dafuqs/spectrum/items/ApplyFoodEffectsCallback.java index daf1d4861d..63b0e27c10 100644 --- a/src/main/java/de/dafuqs/spectrum/items/ApplyFoodEffectsCallback.java +++ b/src/main/java/de/dafuqs/spectrum/items/ApplyFoodEffectsCallback.java @@ -14,13 +14,14 @@ public interface ApplyFoodEffectsCallback { /** * Called when an item is consumed by an entity - * @param stack the stack that is consumed + * + * @param stack the stack that is consumed * @param entity the entity consuming the item */ void afterConsumption(World world, ItemStack stack, LivingEntity entity); static void applyFoodComponent(World world, LivingEntity entity, FoodComponent foodComponent) { - if(entity instanceof PlayerEntity player) { + if (entity instanceof PlayerEntity player) { player.getHungerManager().add(foodComponent.getHunger(), foodComponent.getSaturationModifier()); } diff --git a/src/main/java/de/dafuqs/spectrum/items/CraftingTabletItem.java b/src/main/java/de/dafuqs/spectrum/items/CraftingTabletItem.java index 6b27e8bc6e..73ea4a43cc 100644 --- a/src/main/java/de/dafuqs/spectrum/items/CraftingTabletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/CraftingTabletItem.java @@ -6,10 +6,9 @@ import de.dafuqs.spectrum.items.tooltip.CraftingTabletTooltipData; import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipe; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.MinecraftClient; import net.minecraft.client.item.TooltipContext; import net.minecraft.client.item.TooltipData; @@ -25,12 +24,12 @@ import net.minecraft.screen.SimpleNamedScreenHandlerFactory; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.TypedActionResult; import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import java.util.List; @@ -38,7 +37,7 @@ public class CraftingTabletItem extends Item implements LoomPatternProvider { - private static final Text TITLE = new TranslatableText("item.spectrum.crafting_tablet"); + private static final Text TITLE = Text.translatable("item.spectrum.crafting_tablet"); public CraftingTabletItem(Settings settings) { super(settings); @@ -110,7 +109,7 @@ private void tryCraftRecipe(ServerPlayerEntity serverPlayerEntity, Recipe recipe ItemStack craftingResult = recipe.getOutput().copy(); Support.givePlayer(serverPlayerEntity, craftingResult); - for(ItemStack remainder : remainders) { + for (ItemStack remainder : remainders) { Support.givePlayer(serverPlayerEntity, remainder); } } @@ -121,14 +120,14 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, super.appendTooltip(itemStack, world, tooltip, tooltipContext); Recipe recipe = getStoredRecipe(world, itemStack); if (recipe == null) { - tooltip.add(new TranslatableText("item.spectrum.crafting_tablet.tooltip.no_recipe").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.crafting_tablet.tooltip.no_recipe").formatted(Formatting.GRAY)); } else { if (recipe instanceof PedestalCraftingRecipe) { - tooltip.add(new TranslatableText("item.spectrum.crafting_tablet.tooltip.pedestal_recipe").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.crafting_tablet.tooltip.pedestal_recipe").formatted(Formatting.GRAY)); } else { - tooltip.add(new TranslatableText("item.spectrum.crafting_tablet.tooltip.crafting_recipe").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.crafting_tablet.tooltip.crafting_recipe").formatted(Formatting.GRAY)); } - tooltip.add(new TranslatableText("item.spectrum.crafting_tablet.tooltip.shift_to_view_gui").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.crafting_tablet.tooltip.shift_to_view_gui").formatted(Formatting.GRAY)); } SpectrumBannerPatternItem.addBannerPatternProviderTooltip(tooltip); @@ -146,7 +145,7 @@ public Optional getTooltipData(ItemStack stack) { } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.CRAFTING_TABLET; } diff --git a/src/main/java/de/dafuqs/spectrum/items/CrystalGraceItem.java b/src/main/java/de/dafuqs/spectrum/items/CrystalGraceItem.java deleted file mode 100644 index aa24bc706b..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/CrystalGraceItem.java +++ /dev/null @@ -1,74 +0,0 @@ -/*package de.dafuqs.spectrum.items; - -import de.dafuqs.spectrum.graces.crystal.ColorPool; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.util.Hand; -import net.minecraft.util.TypedActionResult; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -public class CrystalGraceItem extends ItemWithTooltip{ - - public final ColorPool pool; - - public CrystalGraceItem(ColorPool pool, Settings settings, String tooltip) { - super(settings, tooltip); - this.pool = pool; - } - - @Override - public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - super.appendTooltip(stack, world, tooltip, context); - } - - @Override - public TypedActionResult use(World world, PlayerEntity user, Hand hand) { - return super.use(world, user, hand); - } - - public static float tryGetAberration(ItemStack stack) { - var root = stack.getOrCreateNbt(); - if (!root.contains("aberration")) - createTags(stack); - - return root.getFloat("aberration"); - } - - public static float tryGetIrradiance(ItemStack stack) { - var root = stack.getOrCreateNbt(); - if (!root.contains("irradiance")) - createTags(stack); - - return root.getFloat("irradiance"); - } - - public static float tryGetAbsorption(ItemStack stack) { - var root = stack.getOrCreateNbt(); - if (!root.contains("absorption")) - createTags(stack); - - return root.getFloat("absorption"); - } - - public static void createTags(ItemStack stack) { - var root = stack.getOrCreateNbt(); - root.putFloat("aberration", 0); - root.putFloat("irradiance", 0); - root.putFloat("absorption", 0); - root.putBoolean("initialized", false); - } - - public static void initialize(ItemStack stack) { - var root = stack.getOrCreateNbt(); - if (!root.contains("initialized")) - createTags(stack); - - - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/CustomUseTimeItem.java b/src/main/java/de/dafuqs/spectrum/items/CustomUseTimeItem.java index a4ce3d5067..d23e4832a3 100644 --- a/src/main/java/de/dafuqs/spectrum/items/CustomUseTimeItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/CustomUseTimeItem.java @@ -4,16 +4,16 @@ import net.minecraft.item.ItemStack; public class CustomUseTimeItem extends Item { - - private final int useTime; - - public CustomUseTimeItem(Settings settings, int useTime) { - super(settings); - this.useTime = useTime; - } - - @Override - public int getMaxUseTime(ItemStack stack) { - return useTime; - } + + private final int useTime; + + public CustomUseTimeItem(Settings settings, int useTime) { + super(settings); + this.useTime = useTime; + } + + @Override + public int getMaxUseTime(ItemStack stack) { + return useTime; + } } diff --git a/src/main/java/de/dafuqs/spectrum/items/DecayPlacerItem.java b/src/main/java/de/dafuqs/spectrum/items/DecayPlacerItem.java index 9447383595..4a9cac22b9 100644 --- a/src/main/java/de/dafuqs/spectrum/items/DecayPlacerItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/DecayPlacerItem.java @@ -7,7 +7,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.*; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.TickPriority; @@ -45,13 +44,13 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, Item item = itemStack.getItem(); if (item.equals(SpectrumItems.BOTTLE_OF_FADING)) { - tooltip.add(new TranslatableText("item.spectrum.bottle_of_fading.tooltip")); + tooltip.add(Text.translatable("item.spectrum.bottle_of_fading.tooltip")); } else if (item.equals(SpectrumItems.BOTTLE_OF_FAILING)) { - tooltip.add(new TranslatableText("item.spectrum.bottle_of_failing.tooltip")); + tooltip.add(Text.translatable("item.spectrum.bottle_of_failing.tooltip")); } else if (item.equals(SpectrumItems.BOTTLE_OF_RUIN)) { - tooltip.add(new TranslatableText("item.spectrum.bottle_of_ruin.tooltip")); + tooltip.add(Text.translatable("item.spectrum.bottle_of_ruin.tooltip")); } else if (item.equals(SpectrumItems.BOTTLE_OF_DECAY_AWAY)) { - tooltip.add(new TranslatableText("item.spectrum.bottle_of_decay_away.tooltip")); + tooltip.add(Text.translatable("item.spectrum.bottle_of_decay_away.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/ExperienceStorageItem.java b/src/main/java/de/dafuqs/spectrum/items/ExperienceStorageItem.java index 93752ae054..c9624bdb66 100644 --- a/src/main/java/de/dafuqs/spectrum/items/ExperienceStorageItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/ExperienceStorageItem.java @@ -5,8 +5,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; - -import java.util.Random; +import net.minecraft.util.math.random.Random; public interface ExperienceStorageItem { @@ -28,6 +27,7 @@ static int getStoredExperience(ItemStack itemStack) { /** * Adds amount experience to an ExperienceProviderItem stack. * If the experience would be overflowing return the amount of experience that could not be stored + * * @param itemStack The item stack * @param amount The amount of experience to store * @param random A random @@ -50,7 +50,7 @@ static int addStoredExperience(ItemStack itemStack, float amount, Random random) * @return The overflow amount that could not be stored */ static int addStoredExperience(ItemStack itemStack, int amount) { - if(amount <= 0) { + if (amount <= 0) { return 0; } @@ -76,8 +76,8 @@ static int addStoredExperience(ItemStack itemStack, int amount) { return 0; } } - } else if(!itemStack.isEmpty()) { - SpectrumCommon.logError("Tried to add stored Experience to a non-ExperienceStorageItem item: " + itemStack.getItem().getName().asString()); + } else if (!itemStack.isEmpty()) { + SpectrumCommon.logError("Tried to add stored Experience to a non-ExperienceStorageItem item: " + itemStack.getItem().getName().getString()); } return 0; @@ -107,7 +107,7 @@ static boolean removeStoredExperience(ItemStack itemStack, int amount) { } } } else { - SpectrumCommon.logError("Tried to remove stored Experience from a non-ExperienceStorageItem: " + itemStack.getItem().getName().asString()); + SpectrumCommon.logError("Tried to remove stored Experience from a non-ExperienceStorageItem: " + itemStack.getItem().getName().getString()); return false; } } diff --git a/src/main/java/de/dafuqs/spectrum/interfaces/GravitableItem.java b/src/main/java/de/dafuqs/spectrum/items/GravitableItem.java similarity index 97% rename from src/main/java/de/dafuqs/spectrum/interfaces/GravitableItem.java rename to src/main/java/de/dafuqs/spectrum/items/GravitableItem.java index 103f2b81e9..e22d253233 100644 --- a/src/main/java/de/dafuqs/spectrum/interfaces/GravitableItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/GravitableItem.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.interfaces; +package de.dafuqs.spectrum.items; import de.dafuqs.spectrum.progression.GravityAdvancementsManager; import net.minecraft.entity.Entity; diff --git a/src/main/java/de/dafuqs/spectrum/items/GuidebookItem.java b/src/main/java/de/dafuqs/spectrum/items/GuidebookItem.java index e50b947e87..59f6de7320 100644 --- a/src/main/java/de/dafuqs/spectrum/items/GuidebookItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/GuidebookItem.java @@ -3,13 +3,13 @@ import de.dafuqs.revelationary.advancement_criteria.AdvancementGottenCriterion; import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; +import io.wispforest.owo.Owo; import net.minecraft.advancement.Advancement; import net.minecraft.advancement.AdvancementCriterion; import net.minecraft.advancement.AdvancementProgress; import net.minecraft.advancement.PlayerAdvancementTracker; import net.minecraft.advancement.criterion.CriterionConditions; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; @@ -20,6 +20,7 @@ import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.TypedActionResult; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import vazkii.patchouli.api.PatchouliAPI; @@ -34,7 +35,7 @@ public GuidebookItem(Settings settings) { } public static void reprocessAdvancementUnlocks(ServerPlayerEntity serverPlayerEntity) { - if(serverPlayerEntity.getServer() == null) { + if (serverPlayerEntity.getServer() == null) { return; } @@ -49,7 +50,7 @@ public static void reprocessAdvancementUnlocks(ServerPlayerEntity serverPlayerEn CriterionConditions conditions = criterionEntry.getValue().getConditions(); if (conditions != null && conditions.getId().equals(AdvancementGottenCriterion.ID) && conditions instanceof AdvancementGottenCriterion.Conditions hasAdvancementConditions) { Identifier advancementIdentifier = hasAdvancementConditions.getAdvancementIdentifier(); - Advancement advancementCriterionAdvancement = SpectrumCommon.minecraftServer.getAdvancementLoader().get(advancementIdentifier); + Advancement advancementCriterionAdvancement = Owo.currentServer().getAdvancementLoader().get(advancementIdentifier); if (advancementCriterionAdvancement != null) { AdvancementProgress hasAdvancementCriterionAdvancement = tracker.getProgress(advancementCriterionAdvancement); if (hasAdvancementCriterionAdvancement.isDone()) { @@ -91,15 +92,15 @@ private boolean isNewPlayer(ServerPlayerEntity serverPlayerEntity) { } private void openGuidebook(ServerPlayerEntity serverPlayerEntity) { - PatchouliAPI.get().openBookGUI(serverPlayerEntity, SpectrumCommon.locate("manual")); + PatchouliAPI.get().openBookGUI(serverPlayerEntity, SpectrumCommon.locate("guidebook")); } private void openGuidebook(ServerPlayerEntity serverPlayerEntity, Identifier entry, int page) { - PatchouliAPI.get().openBookEntry(serverPlayerEntity, SpectrumCommon.locate("manual"), entry, page); + PatchouliAPI.get().openBookEntry(serverPlayerEntity, SpectrumCommon.locate("guidebook"), entry, page); } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.MANUAL; } diff --git a/src/main/java/de/dafuqs/spectrum/items/IncandescentAmalgamItem.java b/src/main/java/de/dafuqs/spectrum/items/IncandescentAmalgamItem.java index d66e54dbc9..baab78da74 100644 --- a/src/main/java/de/dafuqs/spectrum/items/IncandescentAmalgamItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/IncandescentAmalgamItem.java @@ -12,7 +12,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import net.minecraft.world.explosion.EntityExplosionBehavior; import net.minecraft.world.explosion.Explosion; @@ -21,40 +20,40 @@ import java.util.List; public class IncandescentAmalgamItem extends BlockItem implements DamageAwareItem { - - public IncandescentAmalgamItem(Block block, Settings settings) { - super(block, settings); - } - - @Override - public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { - stack = super.finishUsing(stack, world, user); - - user.damage(SpectrumDamageSources.INCANDESCENCE, 500.0F); - world.createExplosion(user, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(user), user.getX(), user.getY(), user.getZ(), 2.0F, false, Explosion.DestructionType.DESTROY); - world.createExplosion(user, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(user), user.getX(), user.getY(), user.getZ(), 10.0F, true, Explosion.DestructionType.NONE); - - if(user.isAlive() && user instanceof ServerPlayerEntity serverPlayerEntity && !serverPlayerEntity.isCreative()) { - Support.grantAdvancementCriterion(serverPlayerEntity, "midgame/survive_drinking_incandescent_amalgam", "survived_drinking_incandescent_amalgam"); - } - - return stack; - } - - @Override - public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("block.spectrum.incandescent_amalgam.tooltip")); - } - - @Override - public void onItemEntityDamaged(DamageSource source, float amount, ItemEntity itemEntity) { - // remove the itemEntity before dealing damage, otherwise it would cause a stack overflow - itemEntity.remove(Entity.RemovalReason.KILLED); - - int stackCount = itemEntity.getStack().getCount(); - itemEntity.world.createExplosion(itemEntity, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(itemEntity), itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), 1.0F + stackCount / 16F, false, Explosion.DestructionType.DESTROY); - itemEntity.world.createExplosion(itemEntity, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(itemEntity), itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), 8.0F + stackCount / 8F, true, Explosion.DestructionType.NONE); - } - + + public IncandescentAmalgamItem(Block block, Settings settings) { + super(block, settings); + } + + @Override + public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { + stack = super.finishUsing(stack, world, user); + + user.damage(SpectrumDamageSources.INCANDESCENCE, 500.0F); + world.createExplosion(user, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(user), user.getX(), user.getY(), user.getZ(), 2.0F, false, Explosion.DestructionType.DESTROY); + world.createExplosion(user, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(user), user.getX(), user.getY(), user.getZ(), 10.0F, true, Explosion.DestructionType.NONE); + + if (user.isAlive() && user instanceof ServerPlayerEntity serverPlayerEntity && !serverPlayerEntity.isCreative()) { + Support.grantAdvancementCriterion(serverPlayerEntity, "midgame/survive_drinking_incandescent_amalgam", "survived_drinking_incandescent_amalgam"); + } + + return stack; + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + tooltip.add(Text.translatable("block.spectrum.incandescent_amalgam.tooltip")); + } + + @Override + public void onItemEntityDamaged(DamageSource source, float amount, ItemEntity itemEntity) { + // remove the itemEntity before dealing damage, otherwise it would cause a stack overflow + itemEntity.remove(Entity.RemovalReason.KILLED); + + int stackCount = itemEntity.getStack().getCount(); + itemEntity.world.createExplosion(itemEntity, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(itemEntity), itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), 1.0F + stackCount / 16F, false, Explosion.DestructionType.DESTROY); + itemEntity.world.createExplosion(itemEntity, SpectrumDamageSources.INCANDESCENCE, new EntityExplosionBehavior(itemEntity), itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), 8.0F + stackCount / 8F, true, Explosion.DestructionType.NONE); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/interfaces/InventoryInsertionAcceptor.java b/src/main/java/de/dafuqs/spectrum/items/InventoryInsertionAcceptor.java similarity index 92% rename from src/main/java/de/dafuqs/spectrum/interfaces/InventoryInsertionAcceptor.java rename to src/main/java/de/dafuqs/spectrum/items/InventoryInsertionAcceptor.java index 4406cd1226..232305260f 100644 --- a/src/main/java/de/dafuqs/spectrum/interfaces/InventoryInsertionAcceptor.java +++ b/src/main/java/de/dafuqs/spectrum/items/InventoryInsertionAcceptor.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.interfaces; +package de.dafuqs.spectrum.items; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; diff --git a/src/main/java/de/dafuqs/spectrum/items/ItemWithTooltip.java b/src/main/java/de/dafuqs/spectrum/items/ItemWithTooltip.java index ff4d24bdca..e44ee4dc37 100644 --- a/src/main/java/de/dafuqs/spectrum/items/ItemWithTooltip.java +++ b/src/main/java/de/dafuqs/spectrum/items/ItemWithTooltip.java @@ -3,8 +3,8 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -14,24 +14,24 @@ public class ItemWithTooltip extends Item { - private final List tooltipTexts = new ArrayList<>(); + private final List tooltipTexts = new ArrayList<>(); public ItemWithTooltip(Settings settings, String tooltip) { super(settings); - this.tooltipTexts.add(new TranslatableText(tooltip)); + this.tooltipTexts.add(Text.translatable(tooltip)); } public ItemWithTooltip(Settings settings, String[] tooltips) { super(settings); - for(String tooltip : tooltips) { - this.tooltipTexts.add(new TranslatableText(tooltip)); + for (String tooltip : tooltips) { + this.tooltipTexts.add(Text.translatable(tooltip)); } } @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - for(TranslatableText text : this.tooltipTexts) { + for (MutableText text : this.tooltipTexts) { tooltip.add(text.formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/LoomPatternProvider.java b/src/main/java/de/dafuqs/spectrum/items/LoomPatternProvider.java new file mode 100644 index 0000000000..45f42b99c4 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/LoomPatternProvider.java @@ -0,0 +1,16 @@ +package de.dafuqs.spectrum.items; + +import net.minecraft.block.entity.BannerPattern; +import net.minecraft.util.registry.RegistryEntry; + +import java.util.List; + +public interface LoomPatternProvider { + + RegistryEntry getPattern(); + + default List> getPatterns() { + return List.of(getPattern()); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/MidnightAberrationItem.java b/src/main/java/de/dafuqs/spectrum/items/MidnightAberrationItem.java index d4e9b006aa..f1576b8c2a 100644 --- a/src/main/java/de/dafuqs/spectrum/items/MidnightAberrationItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/MidnightAberrationItem.java @@ -11,9 +11,10 @@ import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; import net.minecraft.sound.SoundCategory; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; +import net.minecraft.util.Pair; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -35,7 +36,8 @@ public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, return; } - if (world.random.nextFloat() < 0.2F) { + // check if it's a real stack in the player's inventory or just a proxy item (like from the Bottomless Bundle) + if (playerEntity.getInventory().getStack(slot).getItem() instanceof MidnightAberrationItem && world.random.nextFloat() < 0.2F) { stack.decrement(1); Support.givePlayer(playerEntity, Items.GUNPOWDER.getDefaultStack()); world.playSoundFromEntity(null, playerEntity, SpectrumSoundEvents.MIDNIGHT_ABERRATION_CRUMBLING, SoundCategory.PLAYERS, 0.5F, 1.0F); @@ -49,7 +51,7 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too NbtCompound compound = stack.getNbt(); if (compound != null && compound.getBoolean("Stable")) { - tooltip.add(new TranslatableText("item.spectrum.midnight_aberration.tooltip.stable")); + tooltip.add(Text.translatable("item.spectrum.midnight_aberration.tooltip.stable")); } } @@ -61,4 +63,9 @@ public ItemStack getStableStack() { return stack; } + @Override + public @Nullable Pair getCloakedItemTranslation() { + return new Pair<>(this, Text.translatable("item.spectrum.midnight_aberration.cloaked")); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/items/PigmentItem.java b/src/main/java/de/dafuqs/spectrum/items/PigmentItem.java index b14ddcdfc4..20a13a0473 100644 --- a/src/main/java/de/dafuqs/spectrum/items/PigmentItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/PigmentItem.java @@ -4,13 +4,13 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.items.conditional.CloakedItem; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.DyeItem; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.DyeColor; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -37,7 +37,7 @@ public static PigmentItem byColor(DyeColor color) { } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.PIGMENT; } diff --git a/src/main/java/de/dafuqs/spectrum/items/PotionFillable.java b/src/main/java/de/dafuqs/spectrum/items/PotionFillable.java new file mode 100644 index 0000000000..2f3e1e303c --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/PotionFillable.java @@ -0,0 +1,83 @@ +package de.dafuqs.spectrum.items; + +import de.dafuqs.spectrum.energy.InkCost; +import de.dafuqs.spectrum.energy.InkPoweredStatusEffectInstance; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.item.ItemStack; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +/** + * Items with this interface should support Potion nbt like + * set via PotionUtil.setCustomPotionEffects + * Think Custom Potions or Trinkets + */ +public interface PotionFillable { + + int maxEffectCount(); + + int maxEffectAmplifier(); + + // used for calculating the items cost to apply a certain effect + // calculated once and then stored in the items nbt for quick lookup and nicer modifiability + // via commands or special loot (so ones found in dungeon chests can be cheaper!) + default long adjustFinalCostFor(@NotNull InkPoweredStatusEffectInstance instance) { + return (long) Math.pow(instance.getInkCost().getCost(), 1 + instance.getStatusEffectInstance().getAmplifier()); + } + + // saving + default void addOrUpgradeEffects(ItemStack potionFillableStack, List newEffects) { + if (!isFull(potionFillableStack)) { + List existingEffects = InkPoweredStatusEffectInstance.getEffects(potionFillableStack); + int maxCount = maxEffectCount(); + int maxAmplifier = maxEffectAmplifier(); + for (InkPoweredStatusEffectInstance newEffect : newEffects) { + StatusEffectInstance statusEffectInstance = newEffect.getStatusEffectInstance(); + if (statusEffectInstance.getAmplifier() > maxAmplifier) { + statusEffectInstance = new StatusEffectInstance(statusEffectInstance.getEffectType(), statusEffectInstance.getDuration(), maxAmplifier, statusEffectInstance.isAmbient(), statusEffectInstance.shouldShowParticles()); + } + if (existingEffects.size() == maxCount) { + break; + } + + // calculate the final cost of this effect and add it + InkCost adjustedCost = new InkCost(newEffect.getInkCost().getColor(), adjustFinalCostFor(newEffect)); + InkPoweredStatusEffectInstance modifiedInstance = new InkPoweredStatusEffectInstance(statusEffectInstance, adjustedCost); + existingEffects.add(modifiedInstance); + } + + InkPoweredStatusEffectInstance.setEffects(potionFillableStack, existingEffects); + } + } + + default boolean isFull(ItemStack itemStack) { + return InkPoweredStatusEffectInstance.getEffects(itemStack).size() >= maxEffectCount(); + } + + default boolean isAtLeastPartiallyFilled(ItemStack itemStack) { + return InkPoweredStatusEffectInstance.getEffects(itemStack).size() > 0; + } + + default void removeEffects(ItemStack itemStack) { + itemStack.removeSubNbt("InkPoweredStatusEffects"); + } + + default void appendPotionFillableTooltip(ItemStack stack, List tooltip, MutableText attributeModifierText, boolean showDuration) { + List effects = InkPoweredStatusEffectInstance.getEffects(stack); + InkPoweredStatusEffectInstance.buildTooltip(tooltip, effects, attributeModifierText, showDuration); + + int maxEffectCount = maxEffectCount(); + if (effects.size() < maxEffectCount) { + if (maxEffectCount == 1) { + tooltip.add(Text.translatable("item.spectrum.potion_pendant.tooltip_not_full_one")); + } else { + tooltip.add(Text.translatable("item.spectrum.potion_pendant.tooltip_not_full_count", maxEffectCount)); + } + tooltip.add(Text.translatable("item.spectrum.potion_pendant.tooltip_max_level").append(Text.translatable("enchantment.level." + (maxEffectAmplifier() + 1)))); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/SpectrumBannerPatternItem.java b/src/main/java/de/dafuqs/spectrum/items/SpectrumBannerPatternItem.java index 8b078ae789..4b96f2cb1b 100644 --- a/src/main/java/de/dafuqs/spectrum/items/SpectrumBannerPatternItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/SpectrumBannerPatternItem.java @@ -1,33 +1,31 @@ package de.dafuqs.spectrum.items; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; -import net.minecraft.item.Item; +import net.minecraft.item.BannerPatternItem; import net.minecraft.item.ItemStack; +import net.minecraft.tag.TagKey; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import java.util.List; -public class SpectrumBannerPatternItem extends Item implements LoomPatternProvider { +public class SpectrumBannerPatternItem extends BannerPatternItem { - public static final TranslatableText TOOLTIP_TEXT = new TranslatableText("item.spectrum.tooltip.loom_pattern_available"); + public static final Text TOOLTIP_TEXT = Text.translatable("item.spectrum.tooltip.loom_pattern_available").formatted(Formatting.GRAY); - private final LoomPattern pattern; - private final TranslatableText tooltipText; + private final MutableText tooltipText; - public SpectrumBannerPatternItem(Settings settings, LoomPattern pattern, String tooltipText) { - super(settings); - this.pattern = pattern; - this.tooltipText = new TranslatableText(tooltipText); + public SpectrumBannerPatternItem(Settings settings, TagKey patternItemTag, String tooltipText) { + super(patternItemTag, settings); + this.tooltipText = Text.translatable(tooltipText); } public static void addBannerPatternProviderTooltip(List tooltips) { - tooltips.add(TOOLTIP_TEXT.formatted(Formatting.GRAY)); + tooltips.add(TOOLTIP_TEXT); } @Override @@ -36,9 +34,4 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too SpectrumBannerPatternItem.addBannerPatternProviderTooltip(tooltip); } - @Override - public LoomPattern getPattern() { - return pattern; - } - } diff --git a/src/main/java/de/dafuqs/spectrum/items/SpectrumMobSpawnerItem.java b/src/main/java/de/dafuqs/spectrum/items/SpectrumMobSpawnerItem.java index 07e7c3455c..83579cf99e 100644 --- a/src/main/java/de/dafuqs/spectrum/items/SpectrumMobSpawnerItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/SpectrumMobSpawnerItem.java @@ -17,7 +17,6 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.state.property.Property; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; @@ -63,7 +62,7 @@ public ActionResult place(ItemPlacementContext context) { BlockItem.writeNbtToBlockEntity(world, playerEntity, blockPos, itemStack); blockState2.getBlock().onPlaced(world, blockPos, blockState2, playerEntity, itemStack); if (playerEntity instanceof ServerPlayerEntity) { - Criteria.PLACED_BLOCK.trigger((ServerPlayerEntity)playerEntity, blockPos, itemStack); + Criteria.PLACED_BLOCK.trigger((ServerPlayerEntity) playerEntity, blockPos, itemStack); } } @@ -121,27 +120,27 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, short requiredPlayerRange = blockEntityTag.getShort("RequiredPlayerRange"); if (entityType.isPresent()) { - tooltip.add(new TranslatableText(entityType.get().getTranslationKey())); + tooltip.add(Text.translatable(entityType.get().getTranslationKey())); } else { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.unknown_mob")); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.unknown_mob")); } if (spawnCount > 0) { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.spawn_count", spawnCount).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.spawn_count", spawnCount).formatted(Formatting.GRAY)); } if (minSpawnDelay > 0) { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.min_spawn_delay", minSpawnDelay).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.min_spawn_delay", minSpawnDelay).formatted(Formatting.GRAY)); } if (maxSpawnDelay > 0) { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.max_spawn_delay", maxSpawnDelay).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.max_spawn_delay", maxSpawnDelay).formatted(Formatting.GRAY)); } if (spawnRange > 0) { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.spawn_range", spawnRange).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.spawn_range", spawnRange).formatted(Formatting.GRAY)); } if (requiredPlayerRange > 0) { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.required_player_range", requiredPlayerRange).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.required_player_range", requiredPlayerRange).formatted(Formatting.GRAY)); } } catch (Exception e) { - tooltip.add(new TranslatableText("item.spectrum.spawner.tooltip.unknown_mob")); + tooltip.add(Text.translatable("item.spectrum.spawner.tooltip.unknown_mob")); } } } diff --git a/src/main/java/de/dafuqs/spectrum/items/SpectrumMusicDiscItem.java b/src/main/java/de/dafuqs/spectrum/items/SpectrumMusicDiscItem.java index 6e5ff5b4ad..7340c50313 100644 --- a/src/main/java/de/dafuqs/spectrum/items/SpectrumMusicDiscItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/SpectrumMusicDiscItem.java @@ -5,8 +5,8 @@ public class SpectrumMusicDiscItem extends MusicDiscItem { - public SpectrumMusicDiscItem(int comparatorOutput, SoundEvent sound, Settings settings) { - super(comparatorOutput, sound, settings); + public SpectrumMusicDiscItem(int comparatorOutput, SoundEvent sound, Settings settings, int lengthInSeconds) { + super(comparatorOutput, sound, settings, lengthInSeconds); } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/interfaces/ArmorWithHitEffect.java b/src/main/java/de/dafuqs/spectrum/items/armor/ArmorWithHitEffect.java similarity index 87% rename from src/main/java/de/dafuqs/spectrum/interfaces/ArmorWithHitEffect.java rename to src/main/java/de/dafuqs/spectrum/items/armor/ArmorWithHitEffect.java index 21636aeccc..3674d9b44c 100644 --- a/src/main/java/de/dafuqs/spectrum/interfaces/ArmorWithHitEffect.java +++ b/src/main/java/de/dafuqs/spectrum/items/armor/ArmorWithHitEffect.java @@ -1,4 +1,4 @@ -package de.dafuqs.spectrum.interfaces; +package de.dafuqs.spectrum.items.armor; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; diff --git a/src/main/java/de/dafuqs/spectrum/items/armor/BedrockArmorItem.java b/src/main/java/de/dafuqs/spectrum/items/armor/BedrockArmorItem.java index 7107f76314..433bb3d7c5 100644 --- a/src/main/java/de/dafuqs/spectrum/items/armor/BedrockArmorItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/armor/BedrockArmorItem.java @@ -2,7 +2,7 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.items.Preenchanted; -import de.dafuqs.spectrum.registries.SpectrumModelLayers; +import de.dafuqs.spectrum.registries.client.SpectrumModelLayers; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; @@ -21,75 +21,75 @@ import java.util.Map; public class BedrockArmorItem extends ArmorItem implements Preenchanted { - @Environment(EnvType.CLIENT) - private BipedEntityModel model; - - public BedrockArmorItem(ArmorMaterial material, EquipmentSlot slot, Settings settings) { - super(material, slot, settings); - } - - @Override - public Map getDefaultEnchantments() { - return Map.of(); - } - - @Override - public ItemStack getDefaultStack() { - return getDefaultEnchantedStack(this); - } - - @Override - public boolean isDamageable() { - return false; - } - - @Override - public boolean isEnchantable(ItemStack stack) { - return true; - } - - @Override - public boolean canRepair(ItemStack itemStack_1, ItemStack itemStack_2) { - return false; - } - - @Override - public void appendStacks(ItemGroup group, DefaultedList stacks) { - if (this.isIn(group)) { - stacks.add(getDefaultEnchantedStack(this)); - } - } - - @Environment(EnvType.CLIENT) - protected BipedEntityModel provideArmorModelForSlot(EquipmentSlot slot) { - var models = MinecraftClient.getInstance().getEntityModelLoader(); - var feet = models.getModelPart(SpectrumModelLayers.FEET_BEDROCK_LAYER); - var root = models.getModelPart(SpectrumModelLayers.MAIN_BEDROCK_LAYER); - if (slot == EquipmentSlot.FEET) - return new FullArmorModel(feet, slot); - else - return new FullArmorModel(root, slot); - } - - @Environment(EnvType.CLIENT) - public BipedEntityModel getArmorModel() { - if (model == null) { - model = provideArmorModelForSlot(slot); - } - return model; - } - - @NotNull - public Identifier getArmorTexture(ItemStack stack, EquipmentSlot slot) { - if (slot == EquipmentSlot.FEET) { - return SpectrumCommon.locate("textures/armor/bedrock_armor_feet.png"); - } else { - return SpectrumCommon.locate("textures/armor/bedrock_armor_main.png"); - } - } - - @Override - public boolean hasGlint(ItemStack stack) { - return false; - } + @Environment(EnvType.CLIENT) + private BipedEntityModel model; + + public BedrockArmorItem(ArmorMaterial material, EquipmentSlot slot, Settings settings) { + super(material, slot, settings); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + + @Override + public boolean isDamageable() { + return false; + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return true; + } + + @Override + public boolean canRepair(ItemStack itemStack_1, ItemStack itemStack_2) { + return false; + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + + @Environment(EnvType.CLIENT) + protected BipedEntityModel provideArmorModelForSlot(EquipmentSlot slot) { + var models = MinecraftClient.getInstance().getEntityModelLoader(); + var feet = models.getModelPart(SpectrumModelLayers.FEET_BEDROCK_LAYER); + var root = models.getModelPart(SpectrumModelLayers.MAIN_BEDROCK_LAYER); + if (slot == EquipmentSlot.FEET) + return new FullArmorModel(feet, slot); + else + return new FullArmorModel(root, slot); + } + + @Environment(EnvType.CLIENT) + public BipedEntityModel getArmorModel() { + if (model == null) { + model = provideArmorModelForSlot(slot); + } + return model; + } + + @NotNull + public Identifier getArmorTexture(ItemStack stack, EquipmentSlot slot) { + if (slot == EquipmentSlot.FEET) { + return SpectrumCommon.locate("textures/armor/bedrock_armor_feet.png"); + } else { + return SpectrumCommon.locate("textures/armor/bedrock_armor_main.png"); + } + } + + @Override + public boolean hasGlint(ItemStack stack) { + return false; + } } diff --git a/src/main/java/de/dafuqs/spectrum/items/armor/FullArmorModel.java b/src/main/java/de/dafuqs/spectrum/items/armor/FullArmorModel.java index 9baab5c8cd..40531ffa21 100644 --- a/src/main/java/de/dafuqs/spectrum/items/armor/FullArmorModel.java +++ b/src/main/java/de/dafuqs/spectrum/items/armor/FullArmorModel.java @@ -9,67 +9,67 @@ import net.minecraft.entity.decoration.ArmorStandEntity; public class FullArmorModel extends BipedEntityModel { - final EquipmentSlot slot; - - public FullArmorModel(ModelPart root, EquipmentSlot slot) { - super(root); - this.slot = slot; - } - - @Override - public void animateModel(LivingEntity livingEntity, float f, float g, float h) { - super.animateModel(livingEntity, f, g, h); - } - - @Override - public void setAngles(LivingEntity entity, float f, float g, float h, float i, float j) { - if (!(entity instanceof ArmorStandEntity stand)) { - super.setAngles(entity, f, g, h, i, j); - return; - } - this.head.pitch = ((float) Math.PI / 180F) * stand.getHeadRotation().getPitch(); - this.head.yaw = ((float) Math.PI / 180F) * stand.getHeadRotation().getYaw(); - this.head.roll = ((float) Math.PI / 180F) * stand.getHeadRotation().getRoll(); - this.head.setPivot(0.0F, 1.0F, 0.0F); - this.body.pitch = ((float) Math.PI / 180F) * stand.getBodyRotation().getPitch(); - this.body.yaw = ((float) Math.PI / 180F) * stand.getBodyRotation().getYaw(); - this.body.roll = ((float) Math.PI / 180F) * stand.getBodyRotation().getRoll(); - this.leftArm.pitch = ((float) Math.PI / 180F) * stand.getLeftArmRotation().getPitch(); - this.leftArm.yaw = ((float) Math.PI / 180F) * stand.getLeftArmRotation().getYaw(); - this.leftArm.roll = ((float) Math.PI / 180F) * stand.getLeftArmRotation().getRoll(); - this.rightArm.pitch = ((float) Math.PI / 180F) * stand.getRightArmRotation().getPitch(); - this.rightArm.yaw = ((float) Math.PI / 180F) * stand.getRightArmRotation().getYaw(); - this.rightArm.roll = ((float) Math.PI / 180F) * stand.getRightArmRotation().getRoll(); - this.leftLeg.pitch = ((float) Math.PI / 180F) * stand.getLeftLegRotation().getPitch(); - this.leftLeg.yaw = ((float) Math.PI / 180F) * stand.getLeftLegRotation().getYaw(); - this.leftLeg.roll = ((float) Math.PI / 180F) * stand.getLeftLegRotation().getRoll(); - this.leftLeg.setPivot(1.9F, 11.0F, 0.0F); - this.rightLeg.pitch = ((float) Math.PI / 180F) * stand.getRightLegRotation().getPitch(); - this.rightLeg.yaw = ((float) Math.PI / 180F) * stand.getRightLegRotation().getYaw(); - this.rightLeg.roll = ((float) Math.PI / 180F) * stand.getRightLegRotation().getRoll(); - this.rightLeg.setPivot(-1.9F, 11.0F, 0.0F); - this.hat.copyTransform(head); - } - - @Override - public void render(MatrixStack ms, VertexConsumer buffer, int light, int overlay, float r, float g, float b, float a) { - renderArmorPart(slot); - super.render(ms, buffer, light, overlay, r, g, b, a); - } - - private void renderArmorPart(EquipmentSlot slot) { - setVisible(false); - switch (slot) { - case HEAD -> head.visible = true; - case CHEST -> { - body.visible = true; - rightArm.visible = true; - leftArm.visible = true; - } - case LEGS, FEET -> { - rightLeg.visible = true; - leftLeg.visible = true; - } - } - } + final EquipmentSlot slot; + + public FullArmorModel(ModelPart root, EquipmentSlot slot) { + super(root); + this.slot = slot; + } + + @Override + public void animateModel(LivingEntity livingEntity, float f, float g, float h) { + super.animateModel(livingEntity, f, g, h); + } + + @Override + public void setAngles(LivingEntity entity, float f, float g, float h, float i, float j) { + if (!(entity instanceof ArmorStandEntity stand)) { + super.setAngles(entity, f, g, h, i, j); + return; + } + this.head.pitch = ((float) Math.PI / 180F) * stand.getHeadRotation().getPitch(); + this.head.yaw = ((float) Math.PI / 180F) * stand.getHeadRotation().getYaw(); + this.head.roll = ((float) Math.PI / 180F) * stand.getHeadRotation().getRoll(); + this.head.setPivot(0.0F, 1.0F, 0.0F); + this.body.pitch = ((float) Math.PI / 180F) * stand.getBodyRotation().getPitch(); + this.body.yaw = ((float) Math.PI / 180F) * stand.getBodyRotation().getYaw(); + this.body.roll = ((float) Math.PI / 180F) * stand.getBodyRotation().getRoll(); + this.leftArm.pitch = ((float) Math.PI / 180F) * stand.getLeftArmRotation().getPitch(); + this.leftArm.yaw = ((float) Math.PI / 180F) * stand.getLeftArmRotation().getYaw(); + this.leftArm.roll = ((float) Math.PI / 180F) * stand.getLeftArmRotation().getRoll(); + this.rightArm.pitch = ((float) Math.PI / 180F) * stand.getRightArmRotation().getPitch(); + this.rightArm.yaw = ((float) Math.PI / 180F) * stand.getRightArmRotation().getYaw(); + this.rightArm.roll = ((float) Math.PI / 180F) * stand.getRightArmRotation().getRoll(); + this.leftLeg.pitch = ((float) Math.PI / 180F) * stand.getLeftLegRotation().getPitch(); + this.leftLeg.yaw = ((float) Math.PI / 180F) * stand.getLeftLegRotation().getYaw(); + this.leftLeg.roll = ((float) Math.PI / 180F) * stand.getLeftLegRotation().getRoll(); + this.leftLeg.setPivot(1.9F, 11.0F, 0.0F); + this.rightLeg.pitch = ((float) Math.PI / 180F) * stand.getRightLegRotation().getPitch(); + this.rightLeg.yaw = ((float) Math.PI / 180F) * stand.getRightLegRotation().getYaw(); + this.rightLeg.roll = ((float) Math.PI / 180F) * stand.getRightLegRotation().getRoll(); + this.rightLeg.setPivot(-1.9F, 11.0F, 0.0F); + this.hat.copyTransform(head); + } + + @Override + public void render(MatrixStack ms, VertexConsumer buffer, int light, int overlay, float r, float g, float b, float a) { + renderArmorPart(slot); + super.render(ms, buffer, light, overlay, r, g, b, a); + } + + private void renderArmorPart(EquipmentSlot slot) { + setVisible(false); + switch (slot) { + case HEAD -> head.visible = true; + case CHEST -> { + body.visible = true; + rightArm.visible = true; + leftArm.visible = true; + } + case LEGS, FEET -> { + rightLeg.visible = true; + leftLeg.visible = true; + } + } + } } diff --git a/src/main/java/de/dafuqs/spectrum/items/armor/GemstoneArmorItem.java b/src/main/java/de/dafuqs/spectrum/items/armor/GemstoneArmorItem.java index 27ab1fa211..eacbafa1fe 100644 --- a/src/main/java/de/dafuqs/spectrum/items/armor/GemstoneArmorItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/armor/GemstoneArmorItem.java @@ -1,7 +1,6 @@ package de.dafuqs.spectrum.items.armor; import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.interfaces.ArmorWithHitEffect; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; @@ -14,7 +13,6 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; @@ -96,16 +94,16 @@ private void process(@NotNull EquipmentSlot equipmentSlot, DamageSource source, public void addTooltip(List tooltip, @NotNull EquipmentSlot equipmentSlot) { switch (equipmentSlot) { case HEAD -> { - tooltip.add(new TranslatableText("item.spectrum.emergency_helmet.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.fetchling_helmet.tooltip").formatted(Formatting.GRAY)); } case CHEST -> { - tooltip.add(new TranslatableText("item.spectrum.emergency_chestplate.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.ferocious_chestplate.tooltip").formatted(Formatting.GRAY)); } case LEGS -> { - tooltip.add(new TranslatableText("item.spectrum.emergency_leggings.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.sylph_leggings.tooltip").formatted(Formatting.GRAY)); } case FEET -> { - tooltip.add(new TranslatableText("item.spectrum.emergency_boots.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.oread_boots.tooltip").formatted(Formatting.GRAY)); } } } diff --git a/src/main/java/de/dafuqs/spectrum/items/conditional/CloakedItemWithLoomPattern.java b/src/main/java/de/dafuqs/spectrum/items/conditional/CloakedItemWithLoomPattern.java index c4b345f0f9..23c45fa814 100644 --- a/src/main/java/de/dafuqs/spectrum/items/conditional/CloakedItemWithLoomPattern.java +++ b/src/main/java/de/dafuqs/spectrum/items/conditional/CloakedItemWithLoomPattern.java @@ -1,13 +1,14 @@ package de.dafuqs.spectrum.items.conditional; +import de.dafuqs.spectrum.items.LoomPatternProvider; import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Identifier; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -15,16 +16,16 @@ public class CloakedItemWithLoomPattern extends CloakedItem implements LoomPatternProvider { - protected final LoomPattern loomPattern; + private final RegistryEntry patternItemTag; - public CloakedItemWithLoomPattern(Settings settings, Identifier cloakAdvancementIdentifier, Item cloakItem, LoomPattern loomPattern) { + public CloakedItemWithLoomPattern(Settings settings, Identifier cloakAdvancementIdentifier, Item cloakItem, RegistryEntry patternItemTag) { super(settings, cloakAdvancementIdentifier, cloakItem); - this.loomPattern = loomPattern; + this.patternItemTag = patternItemTag; } @Override - public LoomPattern getPattern() { - return loomPattern; + public RegistryEntry getPattern() { + return patternItemTag; } @Override diff --git a/src/main/java/de/dafuqs/spectrum/items/conditional/FourLeafCloverItem.java b/src/main/java/de/dafuqs/spectrum/items/conditional/FourLeafCloverItem.java index 3b97d43fe3..243143dcfb 100644 --- a/src/main/java/de/dafuqs/spectrum/items/conditional/FourLeafCloverItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/conditional/FourLeafCloverItem.java @@ -1,15 +1,16 @@ package de.dafuqs.spectrum.items.conditional; +import de.dafuqs.spectrum.items.LoomPatternProvider; import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; import net.minecraft.block.Block; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.util.Identifier; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -22,11 +23,10 @@ public FourLeafCloverItem(Block block, Item.Settings settings, Identifier cloakA } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.FOUR_LEAF_CLOVER; } - @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); diff --git a/src/main/java/de/dafuqs/spectrum/items/conditional/LightningStoneItem.java b/src/main/java/de/dafuqs/spectrum/items/conditional/LightningStoneItem.java deleted file mode 100644 index d144dda952..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/conditional/LightningStoneItem.java +++ /dev/null @@ -1,62 +0,0 @@ -package de.dafuqs.spectrum.items.conditional; - -import de.dafuqs.spectrum.items.DamageAwareItem; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.LightningEntity; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.explosion.Explosion; - -public class LightningStoneItem extends CloakedItem implements DamageAwareItem { - - public LightningStoneItem(Settings settings, Identifier cloakAdvancementIdentifier, Item cloakItem) { - super(settings, cloakAdvancementIdentifier, cloakItem); - } - - @Override - public void onItemEntityDamaged(DamageSource source, float amount, ItemEntity itemEntity) { - if(source.isExplosive()) { - doLightningExplosion(itemEntity); - } - } - - private void doLightningExplosion(ItemEntity itemEntity) { - ItemStack thisItemStack = itemEntity.getStack(); - World world = itemEntity.getEntityWorld(); - - BlockPos blockPos = itemEntity.getBlockPos(); - Vec3d pos = itemEntity.getPos(); - int count = thisItemStack.getCount(); - - // remove the itemEntity before dealing damage, otherwise it would cause a stack overflow - itemEntity.remove(Entity.RemovalReason.KILLED); - - // strike lightning... - if (world.isSkyVisible(itemEntity.getBlockPos())) { - LightningEntity lightningEntity = EntityType.LIGHTNING_BOLT.create(world); - if (lightningEntity != null) { - lightningEntity.refreshPositionAfterTeleport(Vec3d.ofBottomCenter(blockPos)); - world.spawnEntity(lightningEntity); - } - } - - // ...and boom! - float powerMod = 1.0F; - Biome biomeAtPos = world.getBiome(blockPos).value(); - if (!biomeAtPos.isHot(blockPos) && !biomeAtPos.isCold(blockPos)) { - // there is no rain/thunder in deserts or snowy biomes - powerMod = world.isThundering() ? 1.5F : world.isRaining() ? 1.25F : 1.0F; - } - - world.createExplosion(itemEntity, pos.getX(), pos.getY(), pos.getZ(), count * powerMod, Explosion.DestructionType.BREAK); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/items/conditional/StormStoneItem.java b/src/main/java/de/dafuqs/spectrum/items/conditional/StormStoneItem.java new file mode 100644 index 0000000000..91066ca0fe --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/conditional/StormStoneItem.java @@ -0,0 +1,62 @@ +package de.dafuqs.spectrum.items.conditional; + +import de.dafuqs.spectrum.items.DamageAwareItem; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.ItemEntity; +import net.minecraft.entity.LightningEntity; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.explosion.Explosion; + +public class StormStoneItem extends CloakedItem implements DamageAwareItem { + + public StormStoneItem(Settings settings, Identifier cloakAdvancementIdentifier, Item cloakItem) { + super(settings, cloakAdvancementIdentifier, cloakItem); + } + + @Override + public void onItemEntityDamaged(DamageSource source, float amount, ItemEntity itemEntity) { + if (source.isExplosive()) { + doLightningExplosion(itemEntity); + } + } + + private void doLightningExplosion(ItemEntity itemEntity) { + ItemStack thisItemStack = itemEntity.getStack(); + World world = itemEntity.getEntityWorld(); + + BlockPos blockPos = itemEntity.getBlockPos(); + Vec3d pos = itemEntity.getPos(); + int count = thisItemStack.getCount(); + + // remove the itemEntity before dealing damage, otherwise it would cause a stack overflow + itemEntity.remove(Entity.RemovalReason.KILLED); + + // strike lightning... + if (world.isSkyVisible(itemEntity.getBlockPos())) { + LightningEntity lightningEntity = EntityType.LIGHTNING_BOLT.create(world); + if (lightningEntity != null) { + lightningEntity.refreshPositionAfterTeleport(Vec3d.ofBottomCenter(blockPos)); + world.spawnEntity(lightningEntity); + } + } + + // ...and boom! + float powerMod = 1.0F; + Biome biomeAtPos = world.getBiome(blockPos).value(); + if (!biomeAtPos.isHot(blockPos) && !biomeAtPos.isCold(blockPos)) { + // there is no rain/thunder in deserts or snowy biomes + powerMod = world.isThundering() ? 1.5F : world.isRaining() ? 1.25F : 1.0F; + } + + world.createExplosion(itemEntity, pos.getX(), pos.getY(), pos.getZ(), count * powerMod, Explosion.DestructionType.BREAK); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/energy/ArtistsPaletteItem.java b/src/main/java/de/dafuqs/spectrum/items/energy/ArtistsPaletteItem.java index 45dd5958af..7e8bedcbb9 100644 --- a/src/main/java/de/dafuqs/spectrum/items/energy/ArtistsPaletteItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/energy/ArtistsPaletteItem.java @@ -3,17 +3,18 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.energy.InkStorageItem; import de.dafuqs.spectrum.energy.storage.ArtistsPaletteInkStorage; +import de.dafuqs.spectrum.items.LoomPatternProvider; import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; import de.dafuqs.spectrum.items.trinkets.SpectrumTrinketItem; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -63,7 +64,7 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.PALETTE; } diff --git a/src/main/java/de/dafuqs/spectrum/items/energy/InkFlaskItem.java b/src/main/java/de/dafuqs/spectrum/items/energy/InkFlaskItem.java index 48450428a7..81719309f2 100644 --- a/src/main/java/de/dafuqs/spectrum/items/energy/InkFlaskItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/energy/InkFlaskItem.java @@ -3,17 +3,18 @@ import de.dafuqs.spectrum.energy.InkStorageItem; import de.dafuqs.spectrum.energy.color.InkColor; import de.dafuqs.spectrum.energy.storage.SingleInkStorage; +import de.dafuqs.spectrum.items.LoomPatternProvider; import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -72,7 +73,7 @@ public ItemStack getFullStack(InkColor color) { } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.INK_FLASK; } diff --git a/src/main/java/de/dafuqs/spectrum/items/energy/PigmentPaletteItem.java b/src/main/java/de/dafuqs/spectrum/items/energy/PigmentPaletteItem.java index 6521d7cbab..30d722c569 100644 --- a/src/main/java/de/dafuqs/spectrum/items/energy/PigmentPaletteItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/energy/PigmentPaletteItem.java @@ -3,17 +3,18 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.energy.InkStorageItem; import de.dafuqs.spectrum.energy.storage.PigmentPaletteInkStorage; +import de.dafuqs.spectrum.items.LoomPatternProvider; import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; import de.dafuqs.spectrum.items.trinkets.SpectrumTrinketItem; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -63,7 +64,7 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.PALETTE; } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/ClottedCreamItem.java b/src/main/java/de/dafuqs/spectrum/items/food/ClottedCreamItem.java index fe84ef19d9..e6d85363cd 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/ClottedCreamItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/ClottedCreamItem.java @@ -6,22 +6,22 @@ import net.minecraft.world.World; public class ClottedCreamItem extends ItemWithTooltip { - - public ClottedCreamItem(Settings settings, String tooltip) { - super(settings, tooltip); - } - - @Override - public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { - if (!world.isClient) { - user.clearStatusEffects(); - } - - return super.finishUsing(stack, world, user); - } - - @Override - public int getMaxUseTime(ItemStack stack) { - return 52; - } + + public ClottedCreamItem(Settings settings, String[] tooltips) { + super(settings, tooltips); + } + + @Override + public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { + if (!world.isClient) { + user.clearStatusEffects(); + } + + return super.finishUsing(stack, world, user); + } + + @Override + public int getMaxUseTime(ItemStack stack) { + return 52; + } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/DrinkItem.java b/src/main/java/de/dafuqs/spectrum/items/food/DrinkItem.java index b580447114..5953115f49 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/DrinkItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/DrinkItem.java @@ -28,9 +28,9 @@ public DrinkItem(Settings settings) { } public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { - PlayerEntity playerEntity = user instanceof PlayerEntity ? (PlayerEntity)user : null; + PlayerEntity playerEntity = user instanceof PlayerEntity ? (PlayerEntity) user : null; if (playerEntity instanceof ServerPlayerEntity) { - Criteria.CONSUME_ITEM.trigger((ServerPlayerEntity)playerEntity, stack); + Criteria.CONSUME_ITEM.trigger((ServerPlayerEntity) playerEntity, stack); } if (!world.isClient) { @@ -58,7 +58,7 @@ public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { } } - world.emitGameEvent(user, GameEvent.DRINKING_FINISH, user.getCameraBlockPos()); + user.emitGameEvent(GameEvent.DRINK); return super.finishUsing(stack, world, user); } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/EnchantedStarCandyItem.java b/src/main/java/de/dafuqs/spectrum/items/food/EnchantedStarCandyItem.java index 31c214df93..e57e875248 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/EnchantedStarCandyItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/EnchantedStarCandyItem.java @@ -7,14 +7,13 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import java.util.List; public class EnchantedStarCandyItem extends Item { - + public EnchantedStarCandyItem(Settings settings) { super(settings); } @@ -23,10 +22,10 @@ public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { ItemStack itemStack = super.finishUsing(stack, world, user); user.heal(user.getMaxHealth()); - if(!world.isClient) { + if (!world.isClient) { WhispyCircletItem.removeNegativeStatusEffects(user); } - if(user instanceof PlayerEntity player) { + if (user instanceof PlayerEntity player) { player.getHungerManager().add(1000, 1.0F); } return itemStack; @@ -35,8 +34,8 @@ public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.purple_star_candy.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.purple_star_candy.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.purple_star_candy.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.purple_star_candy.tooltip2").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/FreigeistItem.java b/src/main/java/de/dafuqs/spectrum/items/food/FreigeistItem.java index 2a97c57735..21082e023b 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/FreigeistItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/FreigeistItem.java @@ -3,7 +3,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import java.util.List; @@ -17,7 +16,7 @@ public FreigeistItem(Settings settings) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.freigeist.tooltip")); + tooltip.add(Text.translatable("item.spectrum.freigeist.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/MoonstruckNectarItem.java b/src/main/java/de/dafuqs/spectrum/items/food/MoonstruckNectarItem.java index 28264c61c7..e2926067c4 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/MoonstruckNectarItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/MoonstruckNectarItem.java @@ -3,7 +3,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; @@ -18,8 +17,8 @@ public MoonstruckNectarItem(Settings settings) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.moonstruck_nectar.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.moonstruck_nectar.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.moonstruck_nectar.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.moonstruck_nectar.tooltip2").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/RestorationTeaItem.java b/src/main/java/de/dafuqs/spectrum/items/food/RestorationTeaItem.java index 1b69219a0f..c037d0fe6b 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/RestorationTeaItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/RestorationTeaItem.java @@ -4,7 +4,6 @@ import net.minecraft.item.FoodComponent; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; @@ -18,8 +17,8 @@ public RestorationTeaItem(Settings settings, FoodComponent bonusFoodComponentWit @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { - tooltip.add(new TranslatableText("item.spectrum.restoration_tea.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.restoration_tea.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.restoration_tea.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.restoration_tea.tooltip2").formatted(Formatting.GRAY)); super.appendTooltip(itemStack, world, tooltip, tooltipContext); } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/StarCandyItem.java b/src/main/java/de/dafuqs/spectrum/items/food/StarCandyItem.java index 4aa6732ccc..08d04d4f21 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/StarCandyItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/StarCandyItem.java @@ -3,10 +3,10 @@ import de.dafuqs.spectrum.items.trinkets.WhispyCircletItem; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffectCategory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; @@ -20,8 +20,8 @@ public StarCandyItem(Settings settings) { public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { ItemStack itemStack = super.finishUsing(stack, world, user); - if(!world.isClient) { - WhispyCircletItem.removeSingleHarmfulStatusEffect(user); + if (!world.isClient) { + WhispyCircletItem.removeSingleStatusEffect(user, StatusEffectCategory.HARMFUL); } return itemStack; } @@ -29,7 +29,7 @@ public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.star_candy.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.star_candy.tooltip").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/TeaItem.java b/src/main/java/de/dafuqs/spectrum/items/food/TeaItem.java index 7a81215772..85cec4e532 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/TeaItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/TeaItem.java @@ -13,7 +13,6 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; @@ -34,29 +33,31 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, NbtCompound nbtCompound = itemStack.getNbt(); if (nbtCompound != null && nbtCompound.contains("Milk")) { - tooltip.add(new TranslatableText("item.spectrum.restoration_tea.tooltip_milk")); + tooltip.add(Text.translatable("item.spectrum.restoration_tea.tooltip_milk")); } } - + @Override public void afterConsumption(World world, ItemStack teaStack, LivingEntity entity) { - if(entity instanceof PlayerEntity player) { - for(int i = 0; i < player.getInventory().size(); i++) { + if (entity instanceof PlayerEntity player) { + for (int i = 0; i < player.getInventory().size(); i++) { ItemStack sconeStack = player.getInventory().getStack(i); - if(sconeStack.isOf(SpectrumItems.SCONE)) { + if (sconeStack.isOf(SpectrumItems.SCONE)) { if (player instanceof ServerPlayerEntity serverPlayerEntity) { Criteria.CONSUME_ITEM.trigger(serverPlayerEntity, sconeStack); SpectrumAdvancementCriteria.CONSUMED_TEA_WITH_SCONE.trigger(serverPlayerEntity, sconeStack, teaStack); } - if (!player.isCreative()) { - sconeStack.decrement(1); - } - world.emitGameEvent(player, GameEvent.EAT, player.getCameraBlockPos()); world.playSound(null, player.getX(), player.getY(), player.getZ(), player.getEatSound(sconeStack), SoundCategory.NEUTRAL, 1.0F, 1.0F + (world.random.nextFloat() - world.random.nextFloat()) * 0.4F); ApplyFoodEffectsCallback.applyFoodComponent(player.world, player, sconeStack.getItem().getFoodComponent()); ApplyFoodEffectsCallback.applyFoodComponent(player.world, player, this.bonusFoodComponentWithScone); + + if (!player.isCreative()) { + sconeStack.decrement(1); + } + player.emitGameEvent(GameEvent.EAT); + return; } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/JadeWineItem.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/JadeWineItem.java index 378c506c30..c8365274df 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/JadeWineItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/JadeWineItem.java @@ -5,7 +5,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; @@ -24,10 +23,10 @@ public BeverageProperties getBeverageProperties(ItemStack itemStack) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - if(BeverageItem.isPreviewStack(itemStack)) { - tooltip.add(new TranslatableText("item.spectrum.jade_wine.tooltip.preview").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.jade_wine.tooltip.preview2").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.jade_wine.tooltip.preview3").formatted(Formatting.GRAY)); + if (BeverageItem.isPreviewStack(itemStack)) { + tooltip.add(Text.translatable("item.spectrum.jade_wine.tooltip.preview").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.jade_wine.tooltip.preview2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.jade_wine.tooltip.preview3").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/PureAlcoholItem.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/PureAlcoholItem.java index e138263003..34b45ad0ef 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/PureAlcoholItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/PureAlcoholItem.java @@ -1,9 +1,8 @@ package de.dafuqs.spectrum.items.food.beverages; -import de.dafuqs.spectrum.items.food.beverages.properties.BeverageProperties; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.util.collection.DefaultedList; +import de.dafuqs.spectrum.items.food.beverages.properties.*; +import net.minecraft.item.*; +import net.minecraft.util.collection.*; public class PureAlcoholItem extends BeverageItem { @@ -17,13 +16,7 @@ public BeverageProperties getBeverageProperties(ItemStack itemStack) { beverageProperties.alcPercent = 100; return beverageProperties; } - - @Override - public ItemStack getDefaultStack() { - BeverageProperties properties = new BeverageProperties(100, 100, 1); - return properties.getStack(super.getDefaultStack()); - } - + @Override public void appendStacks(ItemGroup group, DefaultedList stacks) { if (this.isIn(group)) { diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/RepriseItem.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/RepriseItem.java index 6c0abc69ad..fbf7a1a316 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/RepriseItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/RepriseItem.java @@ -1,22 +1,19 @@ package de.dafuqs.spectrum.items.food.beverages; -import de.dafuqs.spectrum.items.food.beverages.properties.BeverageProperties; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.passive.FoxEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; +import de.dafuqs.spectrum.items.food.beverages.properties.*; +import net.minecraft.entity.*; +import net.minecraft.entity.passive.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; -import java.util.List; +import java.util.*; public class RepriseItem extends BeverageItem { @@ -36,8 +33,8 @@ public RepriseProperties(NbtCompound nbtCompound) { public void addTooltip(ItemStack itemStack, List tooltip) { super.addTooltip(itemStack, tooltip); - int teleportRange = getTeleportRange(itemStack); - tooltip.add(new TranslatableText("item.spectrum.reprise.tooltip.teleport", teleportRange).formatted(Formatting.GRAY)); + long teleportRange = getTeleportRange(itemStack); + tooltip.add(Text.translatable("item.spectrum.reprise.tooltip.teleport", teleportRange).formatted(Formatting.GRAY)); } } @@ -47,27 +44,27 @@ public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { randomTeleport(world, user, getTeleportRange(stack)); return super.finishUsing(stack, world, user); } - - public static int getTeleportRange(ItemStack itemStack) { + + public static long getTeleportRange(ItemStack itemStack) { BeverageProperties properties = BeverageProperties.getFromStack(itemStack); - return (int) Math.ceil(Math.pow(1.4, properties.alcPercent)); + return (long) Math.ceil(Math.pow(2, properties.alcPercent)); } - - public void randomTeleport(World world, LivingEntity user, int maxRange) { + + public void randomTeleport(World world, LivingEntity user, long maxRange) { if (!world.isClient) { double d = user.getX(); double e = user.getY(); double f = user.getZ(); - - for(int i = 0; i < 16; ++i) { - double g = user.getX() + (user.getRandom().nextDouble() - 0.5D) * maxRange; - double h = MathHelper.clamp(user.getY() + (double)(user.getRandom().nextInt(maxRange) - maxRange / 2), world.getBottomY(), (world.getBottomY() + ((ServerWorld)world).getLogicalHeight() - 1)); - double j = user.getZ() + (user.getRandom().nextDouble() - 0.5D) * maxRange; + + for (int i = 0; i < 16; ++i) { + double newX = user.getX() + (user.getRandom().nextDouble() - 0.5D) * maxRange; + double newY = MathHelper.clamp(user.getY() + (double) (user.getRandom().nextFloat() * 2 * maxRange) - maxRange, world.getBottomY(), (world.getBottomY() + ((ServerWorld) world).getLogicalHeight() - 1)); + double newZ = user.getZ() + (user.getRandom().nextDouble() - 0.5D) * maxRange; if (user.hasVehicle()) { user.stopRiding(); } - - if (user.teleport(g, h, j, true)) { + + if (user.teleport(newX, newY, newZ, true)) { SoundEvent soundEvent = user instanceof FoxEntity ? SoundEvents.ENTITY_FOX_TELEPORT : SoundEvents.ITEM_CHORUS_FRUIT_TELEPORT; world.playSound(null, d, e, f, soundEvent, SoundCategory.PLAYERS, 1.0F, 1.0F); user.playSound(soundEvent, 1.0F, 1.0F); @@ -76,7 +73,7 @@ public void randomTeleport(World world, LivingEntity user, int maxRange) { } if (user instanceof PlayerEntity) { - ((PlayerEntity)user).getItemCooldownManager().set(this, 20); + ((PlayerEntity) user).getItemCooldownManager().set(this, 20); } } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/SuspiciousBrewItem.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/SuspiciousBrewItem.java index 5d6df5312c..70dc3c0d77 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/SuspiciousBrewItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/SuspiciousBrewItem.java @@ -5,7 +5,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; @@ -24,9 +23,9 @@ public BeverageProperties getBeverageProperties(ItemStack itemStack) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - if(BeverageItem.isPreviewStack(itemStack)) { - tooltip.add(new TranslatableText("item.spectrum.suspicious_brew.tooltip.preview").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.suspicious_brew.tooltip.preview2").formatted(Formatting.GRAY)); + if (BeverageItem.isPreviewStack(itemStack)) { + tooltip.add(Text.translatable("item.spectrum.suspicious_brew.tooltip.preview").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.suspicious_brew.tooltip.preview2").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/BeverageProperties.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/BeverageProperties.java index 4a29b51af9..87cc023e55 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/BeverageProperties.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/BeverageProperties.java @@ -1,15 +1,14 @@ package de.dafuqs.spectrum.items.food.beverages.properties; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.text.*; +import net.minecraft.util.*; -import java.util.List; +import java.util.*; // wrapper for beverage itemstack nbt -// individual for each beverage +// unique for each beverage public class BeverageProperties { public long ageDays = 0; @@ -36,7 +35,7 @@ public static BeverageProperties getFromStack(ItemStack itemStack) { } public void addTooltip(ItemStack itemStack, List tooltip) { - tooltip.add(new TranslatableText("item.spectrum.infused_beverage.tooltip.age", ageDays, alcPercent).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.infused_beverage.tooltip.age", ageDays, alcPercent).formatted(Formatting.GRAY)); } protected NbtCompound toNbt(NbtCompound nbtCompound) { diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/JadeWineBeverageProperties.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/JadeWineBeverageProperties.java index f2b90ac232..f8e65678fd 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/JadeWineBeverageProperties.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/JadeWineBeverageProperties.java @@ -5,7 +5,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.potion.PotionUtil; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import java.util.List; @@ -41,10 +40,10 @@ public static JadeWineBeverageProperties getFromStack(ItemStack itemStack) { } public void addTooltip(ItemStack itemStack, List tooltip) { - tooltip.add(new TranslatableText("item.spectrum.infused_beverage.tooltip.age", ageDays, alcPercent).formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.jade_wine.tooltip.bloominess", bloominess).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.infused_beverage.tooltip.age", ageDays, alcPercent).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.jade_wine.tooltip.bloominess", bloominess).formatted(Formatting.GRAY)); if (sweetened) { - tooltip.add(new TranslatableText("item.spectrum.jade_wine.tooltip.sweetened").formatted(Formatting.GRAY).formatted(Formatting.ITALIC)); + tooltip.add(Text.translatable("item.spectrum.jade_wine.tooltip.sweetened").formatted(Formatting.GRAY).formatted(Formatting.ITALIC)); } PotionUtil.buildTooltip(itemStack, tooltip, 1.0F); } diff --git a/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/VariantBeverageProperties.java b/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/VariantBeverageProperties.java index bf2e8ab057..eeca279efb 100644 --- a/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/VariantBeverageProperties.java +++ b/src/main/java/de/dafuqs/spectrum/items/food/beverages/properties/VariantBeverageProperties.java @@ -4,7 +4,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import java.util.List; @@ -33,7 +32,7 @@ public static VariantBeverageProperties getFromStack(ItemStack itemStack) { } public void addTooltip(ItemStack itemStack, List tooltip) { - tooltip.add(new TranslatableText("item.spectrum.infused_beverage.tooltip.variant." + variant).formatted(Formatting.YELLOW)); + tooltip.add(Text.translatable("item.spectrum.infused_beverage.tooltip.variant." + variant).formatted(Formatting.YELLOW)); super.addTooltip(itemStack, tooltip); } diff --git a/src/main/java/de/dafuqs/spectrum/items/item_frame/InvisibleGlowItemFrameItem.java b/src/main/java/de/dafuqs/spectrum/items/item_frame/InvisibleGlowItemFrameItem.java deleted file mode 100644 index 4019b36e28..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/item_frame/InvisibleGlowItemFrameItem.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.dafuqs.spectrum.items.item_frame; - -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.entity.entity.InvisibleGlowItemFrameEntity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.decoration.AbstractDecorationEntity; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -public class InvisibleGlowItemFrameItem extends SpectrumItemFrameItem { - - public InvisibleGlowItemFrameItem(EntityType entityType, Settings settings) { - super(entityType, settings); - } - - public ItemFrameEntity getItemFrameEntity(World world, BlockPos blockPos, Direction direction) { - return new InvisibleGlowItemFrameEntity(SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME, world, blockPos, direction); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/items/item_frame/InvisibleItemFrameItem.java b/src/main/java/de/dafuqs/spectrum/items/item_frame/InvisibleItemFrameItem.java deleted file mode 100644 index 2adb0a2714..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/item_frame/InvisibleItemFrameItem.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.dafuqs.spectrum.items.item_frame; - -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.entity.entity.InvisibleItemFrameEntity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.decoration.AbstractDecorationEntity; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -public class InvisibleItemFrameItem extends SpectrumItemFrameItem { - - public InvisibleItemFrameItem(EntityType entityType, Settings settings) { - super(entityType, settings); - } - - public ItemFrameEntity getItemFrameEntity(World world, BlockPos blockPos, Direction direction) { - return new InvisibleItemFrameEntity(SpectrumEntityTypes.INVISIBLE_ITEM_FRAME, world, blockPos, direction); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/items/item_frame/PhantomFrameItem.java b/src/main/java/de/dafuqs/spectrum/items/item_frame/PhantomFrameItem.java new file mode 100644 index 0000000000..ba7b3b8d41 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/item_frame/PhantomFrameItem.java @@ -0,0 +1,22 @@ +package de.dafuqs.spectrum.items.item_frame; + +import de.dafuqs.spectrum.entity.SpectrumEntityTypes; +import de.dafuqs.spectrum.entity.entity.PhantomFrameEntity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.decoration.AbstractDecorationEntity; +import net.minecraft.entity.decoration.ItemFrameEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; + +public class PhantomFrameItem extends SpectrumItemFrameItem { + + public PhantomFrameItem(EntityType entityType, Settings settings) { + super(entityType, settings); + } + + public ItemFrameEntity getItemFrameEntity(World world, BlockPos blockPos, Direction direction) { + return new PhantomFrameEntity(SpectrumEntityTypes.PHANTOM_FRAME, world, blockPos, direction); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/item_frame/PhantomGlowFrameItem.java b/src/main/java/de/dafuqs/spectrum/items/item_frame/PhantomGlowFrameItem.java new file mode 100644 index 0000000000..121f2ddc31 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/item_frame/PhantomGlowFrameItem.java @@ -0,0 +1,22 @@ +package de.dafuqs.spectrum.items.item_frame; + +import de.dafuqs.spectrum.entity.SpectrumEntityTypes; +import de.dafuqs.spectrum.entity.entity.PhantomGlowFrameEntity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.decoration.AbstractDecorationEntity; +import net.minecraft.entity.decoration.ItemFrameEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; + +public class PhantomGlowFrameItem extends SpectrumItemFrameItem { + + public PhantomGlowFrameItem(EntityType entityType, Settings settings) { + super(entityType, settings); + } + + public ItemFrameEntity getItemFrameEntity(World world, BlockPos blockPos, Direction direction) { + return new PhantomGlowFrameEntity(SpectrumEntityTypes.GLOW_PHANTOM_FRAME, world, blockPos, direction); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/BlockFlooderItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/BlockFlooderItem.java index 94c824f8da..3f048aed35 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/BlockFlooderItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/BlockFlooderItem.java @@ -9,7 +9,6 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; @@ -45,10 +44,10 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.block_flooder.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.block_flooder.tooltip2").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.block_flooder.tooltip3").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.block_flooder.tooltip4").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.block_flooder.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.block_flooder.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.block_flooder.tooltip3").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.block_flooder.tooltip4").formatted(Formatting.GRAY)); } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/BuildingStaffItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/BuildingStaffItem.java index 432edadc16..fc0f826bbb 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/BuildingStaffItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/BuildingStaffItem.java @@ -1,17 +1,25 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.registries.SpectrumBlockTags; -import net.minecraft.block.BlockState; -import net.minecraft.item.Item; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; public class BuildingStaffItem extends Item { - + public BuildingStaffItem(Settings settings) { super(settings); } - - public static boolean isBlacklisted(BlockState blockState) { - return blockState.isIn(SpectrumBlockTags.BUILDING_STAFFS_BLACKLISTED) || blockState.getBlock().getHardness() < 0; + + public static boolean canProcess(BlockState blockState, BlockView blockView, BlockPos blockPos, PlayerEntity player) { + if (player == null || blockView.getBlockEntity(blockPos) != null || blockState.isIn(SpectrumBlockTags.BUILDING_STAFFS_BLACKLISTED)) { + return false; + } + + float hardness = blockState.getHardness(blockView, blockPos); + return hardness >= 0 && hardness < 20; } - + } diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/CelestialPocketWatchItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/CelestialPocketWatchItem.java index 65cf5e9f43..31bcc06bd8 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/CelestialPocketWatchItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/CelestialPocketWatchItem.java @@ -1,83 +1,108 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.Hand; -import net.minecraft.util.TypedActionResult; -import net.minecraft.world.GameRules; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; public class CelestialPocketWatchItem extends Item { - + // Since the watch can be triggered from an item frame, too // and item frames can turn items in 8 directions this fits real fine public static final int TIME_STEP_TICKS = 24000 / 8; - + public static final InkCost COST = new InkCost(InkColors.MAGENTA, 10000); + + enum TimeToggleResult { + SUCCESS, + FAILED_FIXED_TIME, + FAILED_GAME_RULE; + } + public CelestialPocketWatchItem(Settings settings) { super(settings); } - - public static boolean advanceTime(ServerPlayerEntity player, @NotNull ServerWorld world) { - GameRules.BooleanRule doDaylightCycleRule = world.getGameRules().get(GameRules.DO_DAYLIGHT_CYCLE); - if (doDaylightCycleRule.get()) { - if (world.getDimension().hasFixedTime()) { - player.sendMessage(new TranslatableText("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time"), false); - } else { - SpectrumS2CPacketSender.startSkyLerping(world, TIME_STEP_TICKS); - long timeOfDay = world.getTimeOfDay(); - world.setTimeOfDay(timeOfDay + TIME_STEP_TICKS); - return true; - } - } else { - player.sendMessage(new TranslatableText("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule"), false); - } - return false; - } - + @Override public TypedActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack itemStack = user.getStackInHand(hand); - + if (!world.isClient) { - // the clocks use is blocked if the world has a fixed daylight cycle - if (advanceTime((ServerPlayerEntity) user, (ServerWorld) world)) { - world.playSound(null, user.getBlockPos(), SpectrumSoundEvents.CELESTIAL_POCKET_WATCH_TICKING, SoundCategory.PLAYERS, 1.0F, 1.0F); - } else { + if (!tryAdvanceTime((ServerWorld) world, (ServerPlayerEntity) user)) { world.playSound(null, user.getBlockPos(), SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); } + return TypedActionResult.consume(itemStack); } return TypedActionResult.success(itemStack, true); } - + + public static boolean tryAdvanceTime(ServerWorld world, ServerPlayerEntity user) { + switch (canAdvanceTime(world)) { + case FAILED_GAME_RULE -> { + SpectrumS2CPacketSender.sendHudMessage(user, Text.translatable("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule"), false); + } + case FAILED_FIXED_TIME -> { + SpectrumS2CPacketSender.sendHudMessage(user, Text.translatable("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time"), false); + } + case SUCCESS -> { + if (InkPowered.tryDrainEnergy(user, COST)) { + world.playSound(null, user.getBlockPos(), SpectrumSoundEvents.CELESTIAL_POCKET_WATCH_TICKING, SoundCategory.PLAYERS, 1.0F, 1.0F); + advanceTime(world, TIME_STEP_TICKS); + } + return true; + } + } + return false; + } + + // the clocks use is blocked if the world has a fixed daylight cycle, or gamerule doDayLightCycle is set to false + private static TimeToggleResult canAdvanceTime(@NotNull World world) { + GameRules.BooleanRule doDaylightCycleRule = world.getGameRules().get(GameRules.DO_DAYLIGHT_CYCLE); + if (doDaylightCycleRule.get()) { + if (world.getDimension().hasFixedTime()) { + return TimeToggleResult.FAILED_FIXED_TIME; + } else { + return TimeToggleResult.SUCCESS; + } + } else { + return TimeToggleResult.FAILED_GAME_RULE; + } + } + + private static void advanceTime(@NotNull ServerWorld world, int additionalTime) { + SpectrumS2CPacketSender.startSkyLerping(world, additionalTime); + long timeOfDay = world.getTimeOfDay(); + world.setTimeOfDay(timeOfDay + additionalTime); + } + @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - + tooltip.add(Text.translatable("spectrum.tooltip.ink_powered.magenta")); + if (world != null) { - // the clocks use is blocked if the world has a fixed daylight cycle - GameRules.BooleanRule doDaylightCycleRule = world.getGameRules().get(GameRules.DO_DAYLIGHT_CYCLE); - if (doDaylightCycleRule.get()) { - if (world.getDimension().hasFixedTime()) { - tooltip.add(new TranslatableText("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time").formatted(Formatting.GRAY)); - } else { - tooltip.add(new TranslatableText("item.spectrum.celestial_pocketwatch.tooltip.working").formatted(Formatting.GRAY)); + switch (canAdvanceTime(world)) { + case FAILED_GAME_RULE -> { + tooltip.add(Text.translatable("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule").formatted(Formatting.GRAY)); + } + case FAILED_FIXED_TIME -> { + tooltip.add(Text.translatable("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time").formatted(Formatting.GRAY)); + } + case SUCCESS -> { + tooltip.add(Text.translatable("item.spectrum.celestial_pocketwatch.tooltip.working").formatted(Formatting.GRAY)); } - } else { - tooltip.add(new TranslatableText("item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule").formatted(Formatting.GRAY)); } } } diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/EnchantmentCanvasItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/EnchantmentCanvasItem.java index 793db12e5b..81cfc3ce35 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/EnchantmentCanvasItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/EnchantmentCanvasItem.java @@ -1,30 +1,21 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.helpers.SpectrumEnchantmentHelper; -import de.dafuqs.spectrum.helpers.Support; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.StackReference; -import net.minecraft.item.EnchantedBookItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.screen.slot.Slot; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ClickType; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; +import de.dafuqs.spectrum.helpers.*; +import net.minecraft.client.item.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.screen.slot.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; public class EnchantmentCanvasItem extends Item { @@ -36,13 +27,16 @@ public EnchantmentCanvasItem(Settings settings) { * clicked onto another stack */ public boolean onStackClicked(ItemStack stack, Slot slot, ClickType clickType, PlayerEntity player) { - if (clickType != ClickType.RIGHT) { - return false; - } else { + if (clickType == ClickType.RIGHT) { ItemStack otherStack = slot.getStack(); - tryExchangeEnchantments(stack, otherStack, player); - return true; + if (tryExchangeEnchantments(stack, otherStack, player)) { + if (player != null) { + playExchangeSound(player); + } + return true; + } } + return false; } /** @@ -51,31 +45,34 @@ public boolean onStackClicked(ItemStack stack, Slot slot, ClickType clickType, P @Override public boolean onClicked(ItemStack stack, ItemStack otherStack, Slot slot, ClickType clickType, PlayerEntity player, StackReference cursorStackReference) { if (clickType == ClickType.RIGHT && slot.canTakePartial(player)) { - tryExchangeEnchantments(stack, otherStack, player); - return true; - } else { - return false; + if (tryExchangeEnchantments(stack, otherStack, player)) { + if (player != null) { + playExchangeSound(player); + } + return true; + } } + return false; } private boolean tryExchangeEnchantments(ItemStack canvasStack, ItemStack targetStack, PlayerEntity player) { Optional itemLock = getItemBoundTo(canvasStack); - if(itemLock.isPresent() && !targetStack.isOf(itemLock.get())) { + if (itemLock.isPresent() && !targetStack.isOf(itemLock.get())) { return false; } - + Map canvasEnchantments = EnchantmentHelper.fromNbt(EnchantedBookItem.getEnchantmentNbt(canvasStack)); - Map targetEnchantments = EnchantmentHelper.get(targetStack); - if(canvasEnchantments.isEmpty() && targetEnchantments.isEmpty()) { + Map targetEnchantments = EnchantmentHelper.fromNbt(targetStack.getEnchantments()); + if (canvasEnchantments.isEmpty() && targetEnchantments.isEmpty()) { return false; } // if the canvas received enchantments: bind it to the other stack - if(itemLock.isEmpty() && !targetEnchantments.isEmpty() ) { + if (itemLock.isEmpty() && !targetEnchantments.isEmpty()) { bindTo(canvasStack, targetStack); } - if(canvasStack.getCount() == 1) { + if (canvasStack.getCount() == 1) { SpectrumEnchantmentHelper.setStoredEnchantments(targetEnchantments, canvasStack); EnchantmentHelper.set(canvasEnchantments, targetStack); } else { @@ -84,10 +81,7 @@ private boolean tryExchangeEnchantments(ItemStack canvasStack, ItemStack targetS EnchantmentHelper.set(canvasEnchantments, targetStack); Support.givePlayer(player, canvasStack); } - - if(player != null) { - playExchangeSound(player); - } + return true; } @@ -98,10 +92,10 @@ private void playExchangeSound(Entity entity) { public void appendTooltip(ItemStack stack, World world, List tooltip, TooltipContext context) { Optional boundItem = getItemBoundTo(stack); if (boundItem.isPresent()) { - tooltip.add(new TranslatableText("item.spectrum.enchantment_canvas.tooltip.bound_to").append(boundItem.get().getName())); + tooltip.add(Text.translatable("item.spectrum.enchantment_canvas.tooltip.bound_to").append(boundItem.get().getName())); } else { - tooltip.add(new TranslatableText("item.spectrum.enchantment_canvas.tooltip.not_bound")); - tooltip.add(new TranslatableText("item.spectrum.enchantment_canvas.tooltip.not_bound2")); + tooltip.add(Text.translatable("item.spectrum.enchantment_canvas.tooltip.not_bound")); + tooltip.add(Text.translatable("item.spectrum.enchantment_canvas.tooltip.not_bound2")); } ItemStack.appendEnchantments(tooltip, EnchantedBookItem.getEnchantmentNbt(stack)); } @@ -119,7 +113,7 @@ private void bindTo(ItemStack enchantmentExchangerStack, ItemStack targetStack) private Optional getItemBoundTo(ItemStack enchantmentExchangerStack) { NbtCompound nbt = enchantmentExchangerStack.getNbt(); - if(nbt == null || !nbt.contains("BoundItem", NbtElement.STRING_TYPE)) { + if (nbt == null || !nbt.contains("BoundItem", NbtElement.STRING_TYPE)) { return Optional.empty(); } String targetItemString = nbt.getString("BoundItem"); diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/EndPortalCrackerItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/EndPortalCrackerItem.java deleted file mode 100644 index ba398b71d5..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/EndPortalCrackerItem.java +++ /dev/null @@ -1,58 +0,0 @@ -package de.dafuqs.spectrum.items.magic_items; - -import de.dafuqs.spectrum.blocks.CrackedEndPortalFrameBlock; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.EndPortalFrameBlock; -import net.minecraft.item.Item; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.util.ActionResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; - -public class EndPortalCrackerItem extends Item { - - public EndPortalCrackerItem(Settings settings) { - super(settings); - } - - public ActionResult useOnBlock(ItemUsageContext context) { - World world = context.getWorld(); - BlockPos blockPos = context.getBlockPos(); - BlockState blockState = world.getBlockState(blockPos); - if (blockState.isOf(Blocks.END_PORTAL_FRAME) || blockState.isOf(SpectrumBlocks.CRACKED_END_PORTAL_FRAME)) { - if (world.isClient) { - return ActionResult.SUCCESS; - } else { - BlockState targetBlockState; - boolean facingVertical; - if (blockState.isOf(Blocks.END_PORTAL_FRAME)) { - Direction direction = blockState.get(EndPortalFrameBlock.FACING); - facingVertical = direction.equals(Direction.EAST) || direction.equals(Direction.WEST); - targetBlockState = SpectrumBlocks.CRACKED_END_PORTAL_FRAME.getDefaultState() - .with(CrackedEndPortalFrameBlock.EYE_TYPE, CrackedEndPortalFrameBlock.EndPortalFrameEye.VANILLA_WITH_END_PORTAL_CRACKER) - .with(CrackedEndPortalFrameBlock.FACING_VERTICAL, facingVertical); - } else { - facingVertical = blockState.get(CrackedEndPortalFrameBlock.FACING_VERTICAL); - targetBlockState = SpectrumBlocks.CRACKED_END_PORTAL_FRAME.getDefaultState() - .with(CrackedEndPortalFrameBlock.EYE_TYPE, CrackedEndPortalFrameBlock.EndPortalFrameEye.WITH_END_PORTAL_CRACKER) - .with(CrackedEndPortalFrameBlock.FACING_VERTICAL, facingVertical); - } - - Block.pushEntitiesUpBeforeBlockChange(blockState, targetBlockState, world, blockPos); - world.setBlockState(blockPos, targetBlockState, 2); - world.updateComparators(blockPos, Blocks.END_PORTAL_FRAME); - context.getStack().decrement(1); - world.syncWorldEvent(1503, blockPos, 0); - - return ActionResult.CONSUME; - } - } else { - return ActionResult.PASS; - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderBagItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderBagItem.java index b822ca9b6a..698b229d52 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderBagItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderBagItem.java @@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.screen.GenericContainerScreenHandler; import net.minecraft.screen.SimpleNamedScreenHandlerFactory; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; import net.minecraft.world.World; @@ -25,7 +25,7 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han if (enderChestInventory != null) { user.openHandledScreen(new SimpleNamedScreenHandlerFactory((syncId, inventory, playerx) -> { return GenericContainerScreenHandler.createGeneric9x3(syncId, inventory, enderChestInventory); - }, new TranslatableText("container.enderchest"))); + }, Text.translatable("container.enderchest"))); return TypedActionResult.consume(itemStack); } else { diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderSpliceItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderSpliceItem.java index 282bd2a867..29f9c56500 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderSpliceItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/EnderSpliceItem.java @@ -1,6 +1,5 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.SpectrumClient; import de.dafuqs.spectrum.blocks.enchanter.EnchanterEnchantable; import de.dafuqs.spectrum.helpers.Support; import de.dafuqs.spectrum.interfaces.PlayerOwned; @@ -23,14 +22,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsage; import net.minecraft.nbt.NbtCompound; -import net.minecraft.network.packet.s2c.play.PlaySoundIdS2CPacket; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.stat.Stats; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.*; import net.minecraft.util.hit.EntityHitResult; import net.minecraft.util.hit.HitResult; @@ -93,14 +90,14 @@ public static void setTeleportTargetPlayer(@NotNull ItemStack itemStack, ServerP } // Add player - nbtCompound.putString("TargetPlayerName", player.getName().asString()); + nbtCompound.putString("TargetPlayerName", player.getName().getString()); nbtCompound.putUuid("TargetPlayerUUID", player.getUuid()); itemStack.setNbt(nbtCompound); } public static boolean hasTeleportTarget(ItemStack itemStack) { NbtCompound nbtCompound = itemStack.getNbt(); - if(nbtCompound == null) { + if (nbtCompound == null) { return false; } @@ -149,33 +146,39 @@ public ItemStack finishUsing(ItemStack itemStack, World world, LivingEntity user if (teleportTargetPos.isPresent()) { RegistryKey targetWorldKey = RegistryKey.of(Registry.WORLD_KEY, new Identifier(teleportTargetPos.get().getLeft())); World targetWorld = world.getServer().getWorld(targetWorldKey); - teleportPlayerToPos(world, user, playerEntity, targetWorld, teleportTargetPos.get().getRight(), resonance); + if (teleportPlayerToPos(world, user, playerEntity, targetWorld, teleportTargetPos.get().getRight(), resonance)) { + decrementWithChance(itemStack, world, playerEntity); + } } else { // If UUID stored => Teleport to player, if online Optional teleportTargetPlayerUUID = getTeleportTargetPlayerUUID(itemStack); if (teleportTargetPlayerUUID.isPresent()) { - teleportPlayerToPlayerWithUUID(world, user, playerEntity, teleportTargetPlayerUUID.get(), resonance); + if (teleportPlayerToPlayerWithUUID(world, user, playerEntity, teleportTargetPlayerUUID.get(), resonance)) { + decrementWithChance(itemStack, world, playerEntity); + } } else { // Nothing stored => Store current position setTeleportTargetPos(itemStack, playerEntity.getEntityWorld(), playerEntity.getPos()); - playerEntity.networkHandler.sendPacket(new PlaySoundIdS2CPacket(SpectrumSoundEvents.ENDER_SPLICE_BOUND.getId(), SoundCategory.PLAYERS, playerEntity.getPos(), 1.0F, 1.0F)); + world.playSound(null, playerEntity.getBlockPos(), SpectrumSoundEvents.ENDER_SPLICE_BOUND, SoundCategory.PLAYERS, 1.0F, 1.0F); } } playerEntity.incrementStat(Stats.USED.getOrCreateStat(this)); - - if (!playerEntity.getAbilities().creativeMode) { - int unbreakingLevel = EnchantmentHelper.getLevel(Enchantments.UNBREAKING, itemStack); - if (unbreakingLevel == 0) { - itemStack.decrement(1); - } else { - itemStack.decrement(Support.getIntFromDecimalWithChance(1.0 / (1 + unbreakingLevel), world.random)); - } - } } return itemStack; } + private static void decrementWithChance(ItemStack itemStack, World world, ServerPlayerEntity playerEntity) { + if (!playerEntity.getAbilities().creativeMode) { + int unbreakingLevel = EnchantmentHelper.getLevel(Enchantments.UNBREAKING, itemStack); + if (unbreakingLevel == 0) { + itemStack.decrement(1); + } else { + itemStack.decrement(Support.getIntFromDecimalWithChance(1.0 / (1 + unbreakingLevel), world.random)); + } + } + } + @Environment(EnvType.CLIENT) public void interactWithEntityClient() { // If aiming at an entity: trigger entity interaction @@ -188,14 +191,15 @@ public void interactWithEntityClient() { } } - private void teleportPlayerToPlayerWithUUID(World world, LivingEntity user, PlayerEntity playerEntity, UUID targetPlayerUUID, boolean hasResonance) { + private boolean teleportPlayerToPlayerWithUUID(World world, LivingEntity user, PlayerEntity playerEntity, UUID targetPlayerUUID, boolean hasResonance) { PlayerEntity targetPlayer = PlayerOwned.getPlayerEntityIfOnline(targetPlayerUUID); if (targetPlayer != null) { - teleportPlayerToPos(targetPlayer.getEntityWorld(), user, playerEntity, targetPlayer.getEntityWorld(), targetPlayer.getPos(), hasResonance); + return teleportPlayerToPos(targetPlayer.getEntityWorld(), user, playerEntity, targetPlayer.getEntityWorld(), targetPlayer.getPos(), hasResonance); } + return false; } - private void teleportPlayerToPos(World world, LivingEntity user, PlayerEntity playerEntity, World targetWorld, Vec3d targetPos, boolean hasResonance) { + private boolean teleportPlayerToPos(World world, LivingEntity user, PlayerEntity playerEntity, World targetWorld, Vec3d targetPos, boolean hasResonance) { boolean isSameWorld = isSameWorld(user.getEntityWorld(), targetWorld); Vec3d currentPos = playerEntity.getPos(); if (hasResonance || isSameWorld) { @@ -210,12 +214,14 @@ private void teleportPlayerToPos(World world, LivingEntity user, PlayerEntity pl // make sure the sound plays even when the player currently teleports if (playerEntity instanceof ServerPlayerEntity) { - ((ServerPlayerEntity) playerEntity).networkHandler.sendPacket(new PlaySoundIdS2CPacket(SpectrumSoundEvents.PLAYER_TELEPORTS.getId(), SoundCategory.PLAYERS, playerEntity.getPos(), 1.0F, 1.0F)); - ((ServerPlayerEntity) playerEntity).networkHandler.sendPacket(new PlaySoundIdS2CPacket(SoundEvents.BLOCK_GLASS_BREAK.getId(), SoundCategory.PLAYERS, playerEntity.getPos(), 1.0F, 1.0F)); + world.playSound(null, playerEntity.getBlockPos(), SpectrumSoundEvents.PLAYER_TELEPORTS, SoundCategory.PLAYERS, 1.0F, 1.0F); + world.playSound(null, playerEntity.getBlockPos(), SoundEvents.BLOCK_GLASS_BREAK, SoundCategory.PLAYERS, 1.0F, 1.0F); } + return true; } else { user.stopUsingItem(); world.playSound(null, currentPos.getX(), currentPos.getY(), currentPos.getZ(), SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); + return false; } } @@ -228,7 +234,7 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han @Environment(EnvType.CLIENT) public void startSoundInstance(PlayerEntity user) { - SpectrumClient.minecraftClient.getSoundManager().play(new EnderSpliceChargingSoundInstance(user)); + MinecraftClient.getInstance().getSoundManager().play(new EnderSpliceChargingSoundInstance(user)); } public int getMaxUseTime(ItemStack stack) { @@ -246,7 +252,7 @@ public void appendTooltip(ItemStack itemStack, @Nullable World world, List if (teleportTargetPos.isPresent()) { String dimensionDisplayString = Support.getReadableDimensionString(teleportTargetPos.get().getLeft()); Vec3d pos = teleportTargetPos.get().getRight(); - tooltip.add(new TranslatableText("item.spectrum.ender_splice.tooltip.bound_pos", (int) pos.x, (int) pos.y, (int) pos.z, dimensionDisplayString)); + tooltip.add(Text.translatable("item.spectrum.ender_splice.tooltip.bound_pos", (int) pos.x, (int) pos.y, (int) pos.z, dimensionDisplayString)); return; } else { // If UUID stored => Teleport to player, if online @@ -254,15 +260,15 @@ public void appendTooltip(ItemStack itemStack, @Nullable World world, List if (teleportTargetPlayerUUID.isPresent()) { Optional teleportTargetPlayerName = getTeleportTargetPlayerName(itemStack); if (teleportTargetPlayerName.isPresent()) { - tooltip.add(new TranslatableText("item.spectrum.ender_splice.tooltip.bound_player", teleportTargetPlayerName.get())); + tooltip.add(Text.translatable("item.spectrum.ender_splice.tooltip.bound_player", teleportTargetPlayerName.get())); } else { - tooltip.add(new TranslatableText("item.spectrum.ender_splice.tooltip.bound_player", "???")); + tooltip.add(Text.translatable("item.spectrum.ender_splice.tooltip.bound_player", "???")); } return; } } - tooltip.add(new TranslatableText("item.spectrum.ender_splice.tooltip.unbound")); + tooltip.add(Text.translatable("item.spectrum.ender_splice.tooltip.unbound")); } public Optional> getTeleportTargetPos(@NotNull ItemStack itemStack) { diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/ExchangeStaffItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/ExchangeStaffItem.java index ad15ac3d70..f7bc8b6618 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/ExchangeStaffItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/ExchangeStaffItem.java @@ -1,52 +1,33 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.blocks.enchanter.EnchanterEnchantable; -import de.dafuqs.spectrum.energy.InkPowered; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.helpers.BuildingHelper; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumEnchantments; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Formatting; -import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import oshi.util.tuples.Triplet; +import de.dafuqs.spectrum.blocks.enchanter.*; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.client.*; +import net.minecraft.client.item.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; +import oshi.util.tuples.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; +import java.util.*; public class ExchangeStaffItem extends BuildingStaffItem implements EnchanterEnchantable, InkPowered { @@ -184,12 +165,12 @@ public static ActionResult exchange(World world, BlockPos pos, @NotNull PlayerEn public void appendTooltip(ItemStack stack, World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); addInkPoweredTooltip(tooltip); - tooltip.add(new TranslatableText("item.spectrum.exchange_staff.tooltip.range", getRange(MinecraftClient.getInstance().player)).formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.exchange_staff.tooltip.crouch").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.exchanging_staff.tooltip.range", getRange(MinecraftClient.getInstance().player)).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.exchanging_staff.tooltip.crouch").formatted(Formatting.GRAY)); Optional optionalBlock = getBlockTarget(stack); if (optionalBlock.isPresent()) { - tooltip.add(new TranslatableText("item.spectrum.exchange_staff.tooltip.target", optionalBlock.get().getName()).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.exchanging_staff.tooltip.target", optionalBlock.get().getName()).formatted(Formatting.GRAY)); } } @@ -201,18 +182,18 @@ public ActionResult useOnBlock(ItemUsageContext context) { BlockState targetBlockState = world.getBlockState(pos); ActionResult result = ActionResult.FAIL; - if ((player != null && (player.isCreative()) || !isBlacklisted(targetBlockState))) { + if ((player != null && (player.isCreative()) || canProcess(targetBlockState, context.getWorld(), context.getBlockPos(), context.getPlayer()))) { Block targetBlock = targetBlockState.getBlock(); Item targetBlockItem = targetBlockState.getBlock().asItem(); if (player != null && targetBlockItem != Items.AIR) { if (context.getHand() == Hand.MAIN_HAND && player.isSneaking()) { if (world instanceof ServerWorld serverWorld) { storeBlockAsTarget(context.getStack(), targetBlock); - world.playSound(null, player.getBlockPos(), SpectrumSoundEvents.EXCHANGE_STAFF_SELECT, SoundCategory.PLAYERS, 1.0F, 1.0F); - + world.playSound(null, player.getBlockPos(), SpectrumSoundEvents.EXCHANGING_STAFF_SELECT, SoundCategory.PLAYERS, 1.0F, 1.0F); + Direction side = context.getSide(); Vec3d sourcePos = new Vec3d(context.getHitPos().getX() + side.getOffsetX() * 0.1, context.getHitPos().getY() + side.getOffsetY() * 0.1, context.getHitPos().getZ() + side.getOffsetZ() * 0.1); - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(serverWorld, sourcePos, SpectrumParticleTypes.SPARKLESTONE_SPARKLE_SMALL, 15, new Vec3d(0, 0, 0), new Vec3d(0.25, 0.25, 0.25)); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(serverWorld, sourcePos, SpectrumParticleTypes.SHIMMERSTONE_SPARKLE_SMALL, 15, new Vec3d(0, 0, 0), new Vec3d(0.25, 0.25, 0.25)); result = ActionResult.CONSUME; } else { result = ActionResult.SUCCESS; diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/GildedBookItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/GildedBookItem.java index 7f4b73b962..df00cfbc7d 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/GildedBookItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/GildedBookItem.java @@ -5,7 +5,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -25,9 +24,9 @@ public int getEnchantability() { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.gilded_book.tooltip.enchantability").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.gilded_book.tooltip.copy_enchantments").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.gilded_book.tooltip.copy_enchantments2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.gilded_book.tooltip.enchantability").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.gilded_book.tooltip.copy_enchantments").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.gilded_book.tooltip.copy_enchantments2").formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/KnowledgeGemItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/KnowledgeGemItem.java index 77c1dbed6e..418b12706c 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/KnowledgeGemItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/KnowledgeGemItem.java @@ -2,11 +2,11 @@ import de.dafuqs.spectrum.blocks.enchanter.EnchanterEnchantable; import de.dafuqs.spectrum.items.ExperienceStorageItem; +import de.dafuqs.spectrum.items.LoomPatternProvider; import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; import de.dafuqs.spectrum.registries.SpectrumItems; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; +import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -20,13 +20,12 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; import net.minecraft.util.UseAction; +import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; @@ -49,7 +48,7 @@ public static ItemStack getKnowledgeDropStackWithXP(int experience, boolean noSt ItemStack stack = new ItemStack(SpectrumItems.KNOWLEDGE_GEM); NbtCompound compound = new NbtCompound(); compound.putInt("stored_experience", experience); - if(noStoreTooltip) { + if (noStoreTooltip) { compound.putBoolean("do_not_display_store_tooltip", true); } stack.setNbt(compound); @@ -95,7 +94,7 @@ public void usageTick(World world, LivingEntity user, ItemStack stack, int remai int maxStorage = getMaxStoredExperience(stack); int experienceToTransfer = serverPlayerEntity.isCreative() ? Math.min(transferableExperience, maxStorage - itemExperience) : Math.min(Math.min(transferableExperience, playerExperience), maxStorage - itemExperience); - // Store experience + // store experience in gem; drain from player if (experienceToTransfer > 0 && itemExperience < maxStorage && removePlayerExperience(serverPlayerEntity, experienceToTransfer)) { ExperienceStorageItem.addStoredExperience(stack, experienceToTransfer); @@ -104,7 +103,7 @@ public void usageTick(World world, LivingEntity user, ItemStack stack, int remai } } } else { - // drain experience + // drain experience from gem; give to player if (itemExperience > 0 && playerExperience != Integer.MAX_VALUE) { int experienceToTransfer = Math.min(Math.min(transferableExperience, itemExperience), Integer.MAX_VALUE - playerExperience); @@ -130,12 +129,12 @@ public void appendTooltip(ItemStack itemStack, World world, List tooltip, int maxExperience = getMaxStoredExperience(itemStack); int storedExperience = ExperienceStorageItem.getStoredExperience(itemStack); if (storedExperience == 0) { - tooltip.add(new LiteralText("0 ").formatted(Formatting.DARK_GRAY).append(new TranslatableText("item.spectrum.knowledge_gem.tooltip.stored_experience", maxExperience).formatted(Formatting.GRAY))); + tooltip.add(Text.literal("0 ").formatted(Formatting.DARK_GRAY).append(Text.translatable("item.spectrum.knowledge_gem.tooltip.stored_experience", maxExperience).formatted(Formatting.GRAY))); } else { - tooltip.add(new LiteralText(storedExperience + " ").formatted(Formatting.GREEN).append(new TranslatableText("item.spectrum.knowledge_gem.tooltip.stored_experience", maxExperience).formatted(Formatting.GRAY))); + tooltip.add(Text.literal(storedExperience + " ").formatted(Formatting.GREEN).append(Text.translatable("item.spectrum.knowledge_gem.tooltip.stored_experience", maxExperience).formatted(Formatting.GRAY))); } if (shouldDisplayUsageTooltip(itemStack)) { - tooltip.add(new TranslatableText("item.spectrum.knowledge_gem.tooltip.use", getTransferableExperiencePerTick(itemStack)).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.knowledge_gem.tooltip.use", getTransferableExperiencePerTick(itemStack)).formatted(Formatting.GRAY)); SpectrumBannerPatternItem.addBannerPatternProviderTooltip(tooltip); } } @@ -170,7 +169,6 @@ public boolean removePlayerExperience(@NotNull PlayerEntity playerEntity, int ex playerEntity.experienceProgress = 0.0F; } } - return true; } } @@ -194,7 +192,7 @@ public boolean canAcceptEnchantment(Enchantment enchantment) { } @Override - public LoomPattern getPattern() { + public RegistryEntry getPattern() { return SpectrumBannerPatterns.KNOWLEDGE_GEM; } diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/NaturesStaffItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/NaturesStaffItem.java index fb9721935d..7f03e1edb6 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/NaturesStaffItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/NaturesStaffItem.java @@ -1,6 +1,5 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.SpectrumClient; import de.dafuqs.spectrum.blocks.enchanter.EnchanterEnchantable; import de.dafuqs.spectrum.energy.InkPowered; import de.dafuqs.spectrum.energy.color.InkColor; @@ -30,7 +29,6 @@ import net.minecraft.tag.BlockTags; import net.minecraft.tag.FluidTags; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; @@ -39,6 +37,7 @@ import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.World; @@ -50,7 +49,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Random; public class NaturesStaffItem extends Item implements EnchanterEnchantable, InkPowered { @@ -178,17 +176,17 @@ public static boolean useOnGround(@NotNull World world, BlockPos blockPos, @Null public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { int efficiencyLevel = EnchantmentHelper.getLevel(Enchantments.EFFICIENCY, itemStack); if (efficiencyLevel == 0) { - if(InkPowered.canUseClient()) { - tooltip.add(new TranslatableText("item.spectrum.natures_staff.tooltip_with_ink")); + if (InkPowered.canUseClient()) { + tooltip.add(Text.translatable("item.spectrum.natures_staff.tooltip_with_ink")); } else { - tooltip.add(new TranslatableText("item.spectrum.natures_staff.tooltip")); + tooltip.add(Text.translatable("item.spectrum.natures_staff.tooltip")); } } else { int chancePercent = (int) Math.round(2.0 / (2 + efficiencyLevel) * 100); - if(InkPowered.canUseClient()) { - tooltip.add(new TranslatableText("item.spectrum.natures_staff.tooltip_with_ink_and_chance", chancePercent)); + if (InkPowered.canUseClient()) { + tooltip.add(Text.translatable("item.spectrum.natures_staff.tooltip_with_ink_and_chance", chancePercent)); } else { - tooltip.add(new TranslatableText("item.spectrum.natures_staff.tooltip_with_chance", chancePercent)); + tooltip.add(Text.translatable("item.spectrum.natures_staff.tooltip_with_chance", chancePercent)); } } } @@ -202,7 +200,7 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han @Environment(EnvType.CLIENT) public void startSoundInstance(PlayerEntity user) { - SpectrumClient.minecraftClient.getSoundManager().play(new NaturesStaffUseSoundInstance(user)); + MinecraftClient.getInstance().getSoundManager().play(new NaturesStaffUseSoundInstance(user)); } public UseAction getUseAction(ItemStack stack) { @@ -221,7 +219,6 @@ public void usageTickClient() { if (MinecraftClient.getInstance().crosshairTarget.getType() == HitResult.Type.BLOCK) { MinecraftClient.getInstance().interactionManager.interactBlock( MinecraftClient.getInstance().player, - MinecraftClient.getInstance().world, MinecraftClient.getInstance().player.getActiveHand(), (BlockHitResult) MinecraftClient.getInstance().crosshairTarget ); @@ -260,10 +257,10 @@ public ActionResult useOnBlock(ItemUsageContext context) { } else if (user.getItemUseTime() % 10 == 0) { ServerPlayerEntity player = (ServerPlayerEntity) context.getPlayer(); boolean paid = player.isCreative(); // free for creative players - if(!paid) { // try pay with ink + if (!paid) { // try pay with ink paid = InkPowered.tryDrainEnergy(context.getPlayer(), USED_COLOR, getInkCost(context.getStack())); } - if(!paid) { // try pay with item + if (!paid) { // try pay with item int efficiencyLevel = EnchantmentHelper.getLevel(Enchantments.EFFICIENCY, context.getStack()); paid = (efficiencyLevel == 0 && InventoryHelper.removeFromInventoryWithRemainders(context.getPlayer(), COST)) || (context.getWorld().random.nextFloat() > (2.0 / (2 + efficiencyLevel)) || InventoryHelper.removeFromInventoryWithRemainders(context.getPlayer(), COST)); } @@ -292,11 +289,11 @@ public ActionResult useOnBlock(ItemUsageContext context) { } return ActionResult.success(false); - // fertilizable? => grow + // fertilizable? => grow } else if (useOnFertilizable(world, blockPos)) { world.syncWorldEvent(2005, blockPos, 0); return ActionResult.success(false); - // blockstate marked as stackable? => stack on top! + // blockstate marked as stackable? => stack on top! } else if (blockState.isIn(SpectrumBlockTags.NATURES_STAFF_STACKABLE)) { int i = 0; BlockState state; @@ -317,8 +314,8 @@ public ActionResult useOnBlock(ItemUsageContext context) { return ActionResult.success(false); } - // random tickable and whitelisted? => tick - // without whitelist we would be able to tick budding blocks, ... + // random tickable and whitelisted? => tick + // without whitelist we would be able to tick budding blocks, ... } else if (blockState.hasRandomTicks() && blockState.isIn(SpectrumBlockTags.NATURES_STAFF_TICKABLE)) { if (world instanceof ServerWorld) { blockState.randomTick((ServerWorld) world, blockPos, world.random); @@ -357,10 +354,10 @@ public boolean canAcceptEnchantment(Enchantment enchantment) { public int getEnchantability() { return 10; } - - @Override - public List getUsedColors() { - return List.of(USED_COLOR); - } + + @Override + public List getUsedColors() { + return List.of(USED_COLOR); + } } diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/PaintBrushItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/PaintBrushItem.java deleted file mode 100644 index 7e390c0c98..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/PaintBrushItem.java +++ /dev/null @@ -1,226 +0,0 @@ -package de.dafuqs.spectrum.items.magic_items; - -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.InkPowered; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.entity.entity.InkProjectileEntity; -import de.dafuqs.spectrum.helpers.BlockVariantHelper; -import de.dafuqs.spectrum.helpers.ColorHelper; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.inventories.PaintbrushScreenHandler; -import de.dafuqs.spectrum.items.PigmentItem; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.screen.NamedScreenHandlerFactory; -import net.minecraft.screen.ScreenHandlerContext; -import net.minecraft.screen.SimpleNamedScreenHandlerFactory; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.*; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Optional; - -public class PaintBrushItem extends Item { - - public static final Identifier UNLOCK_COLORING_ADVANCEMENT_ID = SpectrumCommon.locate("collect_pigment"); - public static final Identifier UNLOCK_INK_SLINGING_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/fill_ink_container"); - - public static final int COOLDOWN_DURATION_TICKS = 10; - public static final int BLOCK_COLOR_COST = 25; - public static final int INK_FLING_COST = 100; - - public static final String COLOR_NBT_STRING = "Color"; - private static final Text GUI_TITLE = new TranslatableText("item.spectrum.paintbrush"); - - public PaintBrushItem(Settings settings) { - super(settings); - } - - @Environment(EnvType.CLIENT) - @Override - public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - super.appendTooltip(stack, world, tooltip, context); - - Optional color = getColor(stack); - boolean unlockedColoring = AdvancementHelper.hasAdvancementClient(UNLOCK_COLORING_ADVANCEMENT_ID); - boolean unlockedSlinging = AdvancementHelper.hasAdvancementClient(UNLOCK_INK_SLINGING_ADVANCEMENT_ID); - - if(unlockedColoring || unlockedSlinging) { - if (color.isPresent()) { - tooltip.add(new TranslatableText("spectrum.ink.color." + color.get())); - } else { - tooltip.add(new TranslatableText("item.spectrum.paintbrush.tooltip.select_color")); - } - } - - tooltip.add(new TranslatableText("item.spectrum.paintbrush.ability.header").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.paintbrush.ability.pedestal_triggering").formatted(Formatting.GRAY)); - if(unlockedColoring) { - tooltip.add(new TranslatableText("item.spectrum.paintbrush.ability.block_coloring").formatted(Formatting.GRAY)); - } - if(unlockedSlinging) { - tooltip.add(new TranslatableText("item.spectrum.paintbrush.ability.ink_slinging").formatted(Formatting.GRAY)); - } - } - - public static boolean canColor(PlayerEntity player) { - return AdvancementHelper.hasAdvancement(player, UNLOCK_COLORING_ADVANCEMENT_ID); - } - - public static boolean canInkSling(PlayerEntity player) { - return AdvancementHelper.hasAdvancement(player, UNLOCK_INK_SLINGING_ADVANCEMENT_ID); - } - - public NamedScreenHandlerFactory createScreenHandlerFactory(World world, ServerPlayerEntity serverPlayerEntity, ItemStack itemStack) { - return new SimpleNamedScreenHandlerFactory((syncId, inventory, player) -> new PaintbrushScreenHandler(syncId, inventory, ScreenHandlerContext.create(world, serverPlayerEntity.getBlockPos()), itemStack), GUI_TITLE); - } - - public static void setColor(ItemStack stack, @Nullable InkColor color) { - NbtCompound compound = stack.getOrCreateNbt(); - if (color == null) { - compound.remove(COLOR_NBT_STRING); - } else { - compound.putString(COLOR_NBT_STRING, color.toString()); - } - stack.setNbt(compound); - } - - public static Optional getColor(ItemStack stack) { - NbtCompound compound = stack.getNbt(); - if (compound != null && compound.contains(COLOR_NBT_STRING)) { - return Optional.of(InkColor.of(compound.getString(COLOR_NBT_STRING))); - } - return Optional.empty(); - } - - @Override - public ActionResult useOnBlock(ItemUsageContext context) { - if (canColor(context.getPlayer()) && cursedColor(context)) { - return ActionResult.success(context.getWorld().isClient); - } - return super.useOnBlock(context); - } - - private boolean cursedColor(ItemUsageContext context) { - if (context.getPlayer() == null) { - return false; - } - - Optional optionalInkColor = getColor(context.getStack()); - if (optionalInkColor.isEmpty()) { - return false; - } - - InkColor inkColor = optionalInkColor.get(); - DyeColor dyeColor = inkColor.getDyeColor(); - - if (payBlockColorCost(context.getPlayer(), inkColor)) { - - // TODO: Use Jellos API to support all of jellos block colors - // https://modrinth.com/mod/jello - Block newBlock = BlockVariantHelper.getCursedBlockColorVariant(context.getWorld(), context.getBlockPos(), dyeColor); - if (newBlock == Blocks.AIR) { - return false; - } - - if (!context.getWorld().isClient) { - context.getWorld().setBlockState(context.getBlockPos(), newBlock.getDefaultState()); - context.getWorld().playSound(null, context.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_PAINT, SoundCategory.BLOCKS, 1.0F, 1.0F); - } - return true; - } else { - if (context.getWorld().isClient) { - context.getPlayer().playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); - } - } - return false; - } - - private boolean payBlockColorCost(PlayerEntity player, InkColor inkColor) { - return player.isCreative() - || InkPowered.tryDrainEnergy(player, inkColor, BLOCK_COLOR_COST) - || InventoryHelper.removeFromInventoryWithRemainders(player, PigmentItem.byColor(inkColor.getDyeColor()).getDefaultStack()); - } - - @Override - public TypedActionResult use(World world, PlayerEntity user, Hand hand) { - if (user.isSneaking()) { - if (user instanceof ServerPlayerEntity serverPlayerEntity) { - if (canColor(serverPlayerEntity)) { - serverPlayerEntity.openHandledScreen(createScreenHandlerFactory(world, serverPlayerEntity, user.getStackInHand(hand))); - } - } - return TypedActionResult.pass(user.getStackInHand(hand)); - } else if(canInkSling(user)){ - Optional optionalInkColor = getColor(user.getStackInHand(hand)); - if (optionalInkColor.isPresent()) { - - InkColor inkColor = optionalInkColor.get(); - if (user.isCreative() || InkPowered.tryDrainEnergy(user, inkColor, INK_FLING_COST)) { - - user.getItemCooldownManager().set(this, COOLDOWN_DURATION_TICKS); - - if (!world.isClient) { - // spawn projectile - InkProjectileEntity paintProjectile = new InkProjectileEntity(world, user); - paintProjectile.setVelocity(user, user.getPitch(), user.getYaw(), 0.0F, 2.0F, 1.0F); - paintProjectile.setColor(inkColor); - world.spawnEntity(paintProjectile); - - } - - // cause the slightest bit of knockback - if(!user.isCreative()) { - causeKnockback(user, user.getYaw(), user.getPitch(), 0, 0.3F); - } - } else { - if (world.isClient) { - user.playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); - } - } - - return TypedActionResult.pass(user.getStackInHand(hand)); - } - } - return super.use(world, user, hand); - } - - private void causeKnockback(PlayerEntity user, float yaw, float pitch, float roll, float multiplier) { - float f = MathHelper.sin(yaw * 0.017453292F) * MathHelper.cos(pitch * 0.017453292F) * multiplier; - float g = MathHelper.sin((pitch + roll) * 0.017453292F) * multiplier; - float h = -MathHelper.cos(yaw * 0.017453292F) * MathHelper.cos(pitch * 0.017453292F) * multiplier; - user.addVelocity(f, g, h); - } - - @Override - public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) { - if(canColor(user)) { - Optional color = getColor(stack); - if(color.isPresent() && payBlockColorCost(user, color.get())) { - boolean colored = ColorHelper.tryColorEntity(user, entity, color.get().getDyeColor()); - if(colored) { - return ActionResult.success(user.world.isClient); - } - } - } - return super.useOnEntity(stack, user, entity, hand); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/PaintbrushItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/PaintbrushItem.java new file mode 100644 index 0000000000..497f9cf354 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/PaintbrushItem.java @@ -0,0 +1,237 @@ +package de.dafuqs.spectrum.items.magic_items; + +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.helpers.ColorHelper; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.screen.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class PaintbrushItem extends Item { + + public static final Identifier UNLOCK_COLORING_ADVANCEMENT_ID = SpectrumCommon.locate("collect_pigment"); + public static final Identifier UNLOCK_INK_SLINGING_ADVANCEMENT_ID = SpectrumCommon.locate("midgame/fill_ink_container"); + + public static final int COOLDOWN_DURATION_TICKS = 10; + public static final int BLOCK_COLOR_COST = 25; + public static final int INK_FLING_COST = 100; + + public static final String COLOR_NBT_STRING = "Color"; + + public PaintbrushItem(Settings settings) { + super(settings); + } + + @Environment(EnvType.CLIENT) + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + + Optional color = getColor(stack); + boolean unlockedColoring = AdvancementHelper.hasAdvancementClient(UNLOCK_COLORING_ADVANCEMENT_ID); + boolean unlockedSlinging = AdvancementHelper.hasAdvancementClient(UNLOCK_INK_SLINGING_ADVANCEMENT_ID); + + if (unlockedColoring || unlockedSlinging) { + if (color.isPresent()) { + tooltip.add(Text.translatable("spectrum.ink.color." + color.get())); + } else { + tooltip.add(Text.translatable("item.spectrum.paintbrush.tooltip.select_color")); + } + } + + tooltip.add(Text.translatable("item.spectrum.paintbrush.ability.header").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.paintbrush.ability.pedestal_triggering").formatted(Formatting.GRAY)); + if (unlockedColoring) { + tooltip.add(Text.translatable("item.spectrum.paintbrush.ability.block_coloring").formatted(Formatting.GRAY)); + } + if (unlockedSlinging) { + tooltip.add(Text.translatable("item.spectrum.paintbrush.ability.ink_slinging").formatted(Formatting.GRAY)); + } + } + + public static boolean canColor(PlayerEntity player) { + return AdvancementHelper.hasAdvancement(player, UNLOCK_COLORING_ADVANCEMENT_ID); + } + + public static boolean canInkSling(PlayerEntity player) { + return AdvancementHelper.hasAdvancement(player, UNLOCK_INK_SLINGING_ADVANCEMENT_ID); + } + + public NamedScreenHandlerFactory createScreenHandlerFactory(ItemStack itemStack) { + return new SimpleNamedScreenHandlerFactory((syncId, inventory, player) -> + new PaintbrushScreenHandler(syncId, inventory, itemStack), + Text.translatable("item.spectrum.paintbrush") + ); + } + + public static void setColor(ItemStack stack, @Nullable InkColor color) { + NbtCompound compound = stack.getOrCreateNbt(); + if (color == null) { + compound.remove(COLOR_NBT_STRING); + } else { + compound.putString(COLOR_NBT_STRING, color.toString()); + } + stack.setNbt(compound); + } + + public static Optional getColor(ItemStack stack) { + NbtCompound compound = stack.getNbt(); + if (compound != null && compound.contains(COLOR_NBT_STRING)) { + return Optional.of(InkColor.of(compound.getString(COLOR_NBT_STRING))); + } + return Optional.empty(); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + if (canColor(context.getPlayer()) && tryColorBlock(context)) { + return ActionResult.success(context.getWorld().isClient); + } + return super.useOnBlock(context); + } + + private boolean tryColorBlock(ItemUsageContext context) { + Optional inkColor = getColor(context.getStack()); + if (inkColor.isEmpty()) { + return false; + } + DyeColor dyeColor = inkColor.get().getDyeColor(); + + World world = context.getWorld(); + BlockPos pos = context.getBlockPos(); + BlockState state = world.getBlockState(pos); + if (state.getBlock() instanceof ColorableBlock colorableBlock) { + if (!colorableBlock.isColor(state, dyeColor)) { + if (payBlockColorCost(context.getPlayer(), inkColor.get()) && colorableBlock.color(world, pos, dyeColor)) { + context.getWorld().playSound(null, context.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_PAINT, SoundCategory.BLOCKS, 1.0F, 1.0F); + } else { + context.getWorld().playSound(null, context.getBlockPos(), SpectrumSoundEvents.USE_FAIL, SoundCategory.BLOCKS, 1.0F, 1.0F); + } + } + return false; + } + + return cursedColor(context); + } + + private boolean cursedColor(ItemUsageContext context) { + if (context.getPlayer() == null) { + return false; + } + + Optional optionalInkColor = getColor(context.getStack()); + if (optionalInkColor.isEmpty()) { + return false; + } + + InkColor inkColor = optionalInkColor.get(); + DyeColor dyeColor = inkColor.getDyeColor(); + + BlockState newBlockState = BlockVariantHelper.getCursedBlockColorVariant(context.getWorld(), context.getBlockPos(), dyeColor); + if (newBlockState.isAir()) { + return false; + } + + if (payBlockColorCost(context.getPlayer(), inkColor)) { + if (!context.getWorld().isClient) { + context.getWorld().setBlockState(context.getBlockPos(), newBlockState); + context.getWorld().playSound(null, context.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_PAINT, SoundCategory.BLOCKS, 1.0F, 1.0F); + } + return true; + } else { + if (context.getWorld().isClient) { + context.getPlayer().playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); + } + } + return false; + } + + private boolean payBlockColorCost(PlayerEntity player, InkColor inkColor) { + if (player == null) { + return false; + } + return player.isCreative() + || InkPowered.tryDrainEnergy(player, inkColor, BLOCK_COLOR_COST) + || InventoryHelper.removeFromInventoryWithRemainders(player, PigmentItem.byColor(inkColor.getDyeColor()).getDefaultStack()); + } + + @Override + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + if (user.isSneaking()) { + if (user instanceof ServerPlayerEntity serverPlayerEntity) { + if (canColor(serverPlayerEntity)) { + serverPlayerEntity.openHandledScreen(createScreenHandlerFactory(user.getStackInHand(hand))); + } + } + return TypedActionResult.pass(user.getStackInHand(hand)); + } else if (canInkSling(user)) { + Optional optionalInkColor = getColor(user.getStackInHand(hand)); + if (optionalInkColor.isPresent()) { + + InkColor inkColor = optionalInkColor.get(); + if (user.isCreative() || InkPowered.tryDrainEnergy(user, inkColor, INK_FLING_COST)) { + user.getItemCooldownManager().set(this, COOLDOWN_DURATION_TICKS); + + if (!world.isClient) { + InkProjectileEntity.shoot(world, user, inkColor); + } + // cause the slightest bit of knockback + if (!user.isCreative()) { + causeKnockback(user, user.getYaw(), user.getPitch(), 0, 0.3F); + } + } else { + if (world.isClient) { + user.playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 1.0F); + } + } + + return TypedActionResult.pass(user.getStackInHand(hand)); + } + } + return super.use(world, user, hand); + } + + private void causeKnockback(PlayerEntity user, float yaw, float pitch, float roll, float multiplier) { + float f = MathHelper.sin(yaw * 0.017453292F) * MathHelper.cos(pitch * 0.017453292F) * multiplier; + float g = MathHelper.sin((pitch + roll) * 0.017453292F) * multiplier; + float h = -MathHelper.cos(yaw * 0.017453292F) * MathHelper.cos(pitch * 0.017453292F) * multiplier; + user.addVelocity(f, g, h); + } + + @Override + public ActionResult useOnEntity(ItemStack stack, PlayerEntity user, LivingEntity entity, Hand hand) { + if (canColor(user)) { + Optional color = getColor(stack); + if (color.isPresent() && payBlockColorCost(user, color.get())) { + boolean colored = ColorHelper.tryColorEntity(user, entity, color.get().getDyeColor()); + if (colored) { + return ActionResult.success(user.world.isClient); + } + } + } + return super.useOnEntity(stack, user, entity, hand); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/PerturbedEyeItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/PerturbedEyeItem.java new file mode 100644 index 0000000000..54a1fd556e --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/PerturbedEyeItem.java @@ -0,0 +1,62 @@ +package de.dafuqs.spectrum.items.magic_items; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.client.item.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class PerturbedEyeItem extends Item { + + public PerturbedEyeItem(Settings settings) { + super(settings); + } + + public ActionResult useOnBlock(ItemUsageContext context) { + World world = context.getWorld(); + BlockPos blockPos = context.getBlockPos(); + BlockState blockState = world.getBlockState(blockPos); + if (blockState.isOf(Blocks.END_PORTAL_FRAME) || blockState.isOf(SpectrumBlocks.CRACKED_END_PORTAL_FRAME)) { + if (world.isClient) { + return ActionResult.SUCCESS; + } else { + BlockState targetBlockState; + boolean facingVertical; + if (blockState.isOf(Blocks.END_PORTAL_FRAME)) { + Direction direction = blockState.get(EndPortalFrameBlock.FACING); + facingVertical = direction.equals(Direction.EAST) || direction.equals(Direction.WEST); + targetBlockState = SpectrumBlocks.CRACKED_END_PORTAL_FRAME.getDefaultState() + .with(CrackedEndPortalFrameBlock.EYE_TYPE, CrackedEndPortalFrameBlock.EndPortalFrameEye.VANILLA_WITH_PERTURBED_EYE) + .with(CrackedEndPortalFrameBlock.FACING_VERTICAL, facingVertical); + } else { + facingVertical = blockState.get(CrackedEndPortalFrameBlock.FACING_VERTICAL); + targetBlockState = SpectrumBlocks.CRACKED_END_PORTAL_FRAME.getDefaultState() + .with(CrackedEndPortalFrameBlock.EYE_TYPE, CrackedEndPortalFrameBlock.EndPortalFrameEye.WITH_PERTURBED_EYE) + .with(CrackedEndPortalFrameBlock.FACING_VERTICAL, facingVertical); + } + + Block.pushEntitiesUpBeforeBlockChange(blockState, targetBlockState, world, blockPos); + world.setBlockState(blockPos, targetBlockState, 2); + world.updateComparators(blockPos, Blocks.END_PORTAL_FRAME); + context.getStack().decrement(1); + world.syncWorldEvent(1503, blockPos, 0); + + return ActionResult.CONSUME; + } + } else { + return ActionResult.PASS; + } + } + + public void appendTooltip(ItemStack itemStack, @Nullable World world, List tooltip, TooltipContext context) { + tooltip.add(Text.translatable("item.spectrum.perturbed_eye.tooltip").formatted(Formatting.GRAY)); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/PlacementStaffItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/PlacementStaffItem.java index d3aeda33fd..086cfb2db0 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/PlacementStaffItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/PlacementStaffItem.java @@ -1,34 +1,23 @@ package de.dafuqs.spectrum.items.magic_items; -import de.dafuqs.spectrum.energy.InkPowered; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.energy.color.InkColors; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.helpers.BuildingHelper; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.item.Items; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Formatting; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.World; -import oshi.util.tuples.Triplet; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.helpers.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.client.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import oshi.util.tuples.*; -import java.util.List; -import java.util.Optional; +import java.util.*; public class PlacementStaffItem extends BuildingStaffItem implements InkPowered { @@ -73,8 +62,8 @@ public static int getRange(PlayerEntity playerEntity) { public void appendTooltip(ItemStack stack, World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); addInkPoweredTooltip(tooltip); - tooltip.add(new TranslatableText("item.spectrum.placement_staff.tooltip.range", getRange(MinecraftClient.getInstance().player)).formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.placement_staff.tooltip.crouch").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.constructors_staff.tooltip.range", getRange(MinecraftClient.getInstance().player)).formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.constructors_staff.tooltip.crouch").formatted(Formatting.GRAY)); } @Override @@ -83,11 +72,11 @@ public ActionResult useOnBlock(ItemUsageContext context) { World world = context.getWorld(); BlockPos pos = context.getBlockPos(); BlockState targetBlockState = world.getBlockState(pos); - - if ((player != null && (player.isCreative()) || !isBlacklisted(targetBlockState))) { + + if ((player != null && (player.isCreative()) || canProcess(targetBlockState, context.getWorld(), context.getBlockPos(), context.getPlayer()))) { Block targetBlock = targetBlockState.getBlock(); Item targetBlockItem = targetBlock.asItem(); - + if (player != null && targetBlockItem != Items.AIR) { int count; if (player.isCreative()) { @@ -100,7 +89,7 @@ public ActionResult useOnBlock(ItemUsageContext context) { targetBlockItem = inventoryItemAndCount.getB(); count = inventoryItemAndCount.getC(); - if(InkPowered.canUse(player)) { + if (InkPowered.canUse(player)) { count = Math.min(count, 1 + (int) InkPowered.getAvailableInk(player, USED_COLOR) / INK_COST_PER_BLOCK); } else { count = 0; diff --git a/src/main/java/de/dafuqs/spectrum/items/magic_items/RadianceStaffItem.java b/src/main/java/de/dafuqs/spectrum/items/magic_items/RadianceStaffItem.java index afab1f6036..5e4f80c92a 100644 --- a/src/main/java/de/dafuqs/spectrum/items/magic_items/RadianceStaffItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/magic_items/RadianceStaffItem.java @@ -5,6 +5,7 @@ import de.dafuqs.spectrum.energy.color.InkColors; import de.dafuqs.spectrum.helpers.InventoryHelper; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; import de.dafuqs.spectrum.registries.SpectrumBlocks; import de.dafuqs.spectrum.registries.SpectrumItems; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; @@ -19,9 +20,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsage; import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; import net.minecraft.util.UseAction; @@ -42,7 +43,7 @@ public class RadianceStaffItem extends Item implements InkPowered { public static final int MAX_REACH_STEPS = 8; public static final int MIN_LIGHT_LEVEL = 10; - public static final ItemStack COST = new ItemStack(SpectrumItems.SPARKLESTONE_GEM, 1); + public static final ItemStack COST = new ItemStack(SpectrumItems.SHIMMERSTONE_GEM, 1); public RadianceStaffItem(Settings settings) { super(settings); @@ -65,15 +66,17 @@ public boolean placeLight(World world, BlockPos targetPos, ServerPlayerEntity pl } public static void playSoundAndParticles(World world, BlockPos targetPos, ServerPlayerEntity playerEntity, int useTimes, int iteration) { - float pitch; - if (useTimes % 2 == 0) { // high ding <=> deep ding - pitch = Math.min(1.35F, 0.7F + 0.1F * useTimes); - } else { - pitch = Math.min(1.5F, 0.7F + 0.1F * useTimes); - } - SpectrumS2CPacketSender.sendLightCreatedParticle(world, targetPos); - world.playSound(null, playerEntity.getX() + 0.5, playerEntity.getY() + 0.5, playerEntity.getZ() + 0.5, SpectrumSoundEvents.LIGHT_STAFF_PLACE, SoundCategory.PLAYERS, (float) Math.max(0.25, 1.0F - (float) iteration * 0.1F), pitch); - } + float pitch; + if (useTimes % 2 == 0) { // high ding <=> deep ding + pitch = Math.min(1.35F, 0.7F + 0.1F * useTimes); + } else { + pitch = Math.min(1.5F, 0.7F + 0.1F * useTimes); + } + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, Vec3d.ofCenter(targetPos), + SpectrumParticleTypes.SHIMMERSTONE_SPARKLE, 20, Vec3d.ZERO, new Vec3d(0.3, 0.3, 0.3)); + + world.playSound(null, playerEntity.getX() + 0.5, playerEntity.getY() + 0.5, playerEntity.getZ() + 0.5, SpectrumSoundEvents.RADIANCE_STAFF_PLACE, SoundCategory.PLAYERS, (float) Math.max(0.25, 1.0F - (float) iteration * 0.1F), pitch); + } public static void playDenySound(World world, PlayerEntity playerEntity) { world.playSound(null, playerEntity.getX(), playerEntity.getY(), playerEntity.getZ(), SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 1.0F, 0.8F + playerEntity.getRandom().nextFloat() * 0.4F); @@ -82,12 +85,12 @@ public static void playDenySound(World world, PlayerEntity playerEntity) { @Override @Environment(EnvType.CLIENT) public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { - if(InkPowered.canUseClient()) { - tooltip.add(new TranslatableText("item.spectrum.light_staff.tooltip.ink")); + if (InkPowered.canUseClient()) { + tooltip.add(Text.translatable("item.spectrum.radiance_staff.tooltip.ink")); } else { - tooltip.add(new TranslatableText("item.spectrum.light_staff.tooltip")); + tooltip.add(Text.translatable("item.spectrum.radiance_staff.tooltip")); } - tooltip.add(new TranslatableText("item.spectrum.light_staff.tooltip2")); + tooltip.add(Text.translatable("item.spectrum.radiance_staff.tooltip2")); } public UseAction getUseAction(ItemStack stack) { @@ -96,7 +99,7 @@ public UseAction getUseAction(ItemStack stack) { public TypedActionResult use(World world, PlayerEntity user, Hand hand) { if (!world.isClient) { - world.playSound(null, user.getX(), user.getY(), user.getZ(), SpectrumSoundEvents.LIGHT_STAFF_CHARGING, SoundCategory.PLAYERS, 1.0F, 1.0F); + world.playSound(null, user.getX(), user.getY(), user.getZ(), SpectrumSoundEvents.RADIANCE_STAFF_CHARGING, SoundCategory.PLAYERS, 1.0F, 1.0F); } return ItemUsage.consumeHeldItem(world, user, hand); } diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/AoEBreakingTool.java b/src/main/java/de/dafuqs/spectrum/items/tools/AoEBreakingTool.java new file mode 100644 index 0000000000..22b00de6ce --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/AoEBreakingTool.java @@ -0,0 +1,23 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.helpers.AoEHelper; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; + +public interface AoEBreakingTool { + + default void onTryBreakBlock(ItemStack stack, BlockPos pos, PlayerEntity player) { + BlockHitResult hitResult = (BlockHitResult) player.raycast(10, 1, false); + if (!player.world.isClient && hitResult.getType() == HitResult.Type.BLOCK) { + Direction side = hitResult.getSide(); + AoEHelper.doAoEBlockBreaking(player, stack, pos, side, getRange(stack)); + } + } + + int getRange(ItemStack stack); + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/BedrockBowItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/BedrockBowItem.java index 81e4772ad9..fd5568e295 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/BedrockBowItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/BedrockBowItem.java @@ -1,15 +1,12 @@ package de.dafuqs.spectrum.items.tools; -import de.dafuqs.arrowhead.api.ArrowheadBow; -import de.dafuqs.spectrum.items.Preenchanted; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.item.BowItem; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.util.collection.DefaultedList; +import de.dafuqs.arrowhead.api.*; +import de.dafuqs.spectrum.items.*; +import net.minecraft.enchantment.*; +import net.minecraft.item.*; +import net.minecraft.util.collection.*; -import java.util.Map; +import java.util.*; public class BedrockBowItem extends BowItem implements Preenchanted, ArrowheadBow { @@ -43,19 +40,19 @@ public void appendStacks(ItemGroup group, DefaultedList stacks) { public boolean isEnchantable(ItemStack stack) { return true; } - + @Override - public float getZoom() { + public float getZoom(ItemStack stack) { return 30F; } - + @Override - public float getProjectileVelocityModifier() { + public float getProjectileVelocityModifier(ItemStack stack) { return 1.3F; } - + @Override - public float getDivergenceMod() { + public float getDivergenceMod(ItemStack stack) { return 0.8F; } diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/BedrockCrossbowItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/BedrockCrossbowItem.java index c0b9ba4d37..f293ac4c99 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/BedrockCrossbowItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/BedrockCrossbowItem.java @@ -1,15 +1,12 @@ package de.dafuqs.spectrum.items.tools; -import de.dafuqs.arrowhead.api.ArrowheadCrossbow; -import de.dafuqs.spectrum.items.Preenchanted; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.item.CrossbowItem; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.util.collection.DefaultedList; +import de.dafuqs.arrowhead.api.*; +import de.dafuqs.spectrum.items.*; +import net.minecraft.enchantment.*; +import net.minecraft.item.*; +import net.minecraft.util.collection.*; -import java.util.Map; +import java.util.*; public class BedrockCrossbowItem extends CrossbowItem implements Preenchanted, ArrowheadCrossbow { @@ -43,19 +40,19 @@ public void appendStacks(ItemGroup group, DefaultedList stacks) { public boolean isEnchantable(ItemStack stack) { return true; } - + @Override - public float getProjectileVelocityModifier() { + public float getProjectileVelocityModifier(ItemStack stack) { return 1.5F; } - + @Override - public float getPullTimeModifier() { + public float getPullTimeModifier(ItemStack stack) { return 3.0F; } - + @Override - public float getDivergenceMod() { + public float getDivergenceMod(ItemStack stack) { return 0.8F; } diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/BedrockFishingRodItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/BedrockFishingRodItem.java index e575d1d22a..3825b80bc6 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/BedrockFishingRodItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/BedrockFishingRodItem.java @@ -11,7 +11,6 @@ import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.collection.DefaultedList; import net.minecraft.world.World; @@ -66,7 +65,7 @@ public void spawnBobber(PlayerEntity user, World world, int luckOfTheSeaLevel, i @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.bedrock_fishing_rod.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.bedrock_fishing_rod.tooltip").formatted(Formatting.GRAY)); } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/DreamflayerItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/DreamflayerItem.java index 986ae24fba..4f1a91b2a5 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/DreamflayerItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/DreamflayerItem.java @@ -7,6 +7,7 @@ import de.dafuqs.spectrum.energy.color.InkColors; import de.dafuqs.spectrum.items.ActivatableItem; import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import de.dafuqs.spectrum.registries.SpectrumDamageSources; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -18,6 +19,7 @@ import net.minecraft.entity.attribute.EntityAttribute; import net.minecraft.entity.attribute.EntityAttributeModifier; import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.SwordItem; @@ -25,7 +27,6 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; @@ -35,12 +36,12 @@ import java.util.List; -public class DreamflayerItem extends SwordItem implements FabricItem, InkPowered, ActivatableItem { - +public class DreamflayerItem extends SwordItem implements FabricItem, InkPowered, ActivatableItem, SplitDamageItem { + public static final InkColor USED_COLOR = InkColors.RED; public static final long INK_COST_FOR_ACTIVATION = 200L; public static final long INK_COST_PER_SECOND = 20L; - + /** * The less armor the attacker with this sword has and the more * the one that gets attacked, the higher the damage will be @@ -99,11 +100,11 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, boolean selected) { super.inventoryTick(stack, world, entity, slot, selected); - if(world.isClient) { - if(ActivatableItem.isActivated(stack)) { + if (world.isClient) { + if (ActivatableItem.isActivated(stack)) { Vec3d pos = entity.getPos(); world.addParticle(SpectrumParticleTypes.RED_CRAFTING, - pos.getX() + world.random.nextDouble(), pos.getY() + 1.05D, pos.getZ() + world.random.nextDouble(), + entity.getParticleX(1.0), pos.getY() + 1.05D, entity.getParticleZ(1.0), 0.0D, 0.1D, 0.0D); } } else { @@ -119,12 +120,12 @@ public void inventoryTick(ItemStack stack, World world, Entity entity, int slot, @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.dreamflayer.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.dreamflayer.tooltip2").formatted(Formatting.GRAY)); - if(ActivatableItem.isActivated(stack)) { - tooltip.add(new TranslatableText("item.spectrum.dreamflayer.tooltip.activated").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.dreamflayer.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.dreamflayer.tooltip2").formatted(Formatting.GRAY)); + if (ActivatableItem.isActivated(stack)) { + tooltip.add(Text.translatable("item.spectrum.dreamflayer.tooltip.activated").formatted(Formatting.GRAY)); } else { - tooltip.add(new TranslatableText("item.spectrum.dreamflayer.tooltip.deactivated").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.dreamflayer.tooltip.deactivated").formatted(Formatting.GRAY)); } } @@ -149,15 +150,32 @@ public Multimap getAttributeModifiers( } return builder.build(); } - + @Override public List getUsedColors() { return List.of(USED_COLOR); } - + @Environment(EnvType.CLIENT) @Override public void addInkPoweredTooltip(List tooltip) { InkPowered.super.addInkPoweredTooltip(tooltip); } + + @Override + public DamageComposition getDamageComposition(LivingEntity attacker, LivingEntity target, ItemStack stack, float damage) { + float newDamage = getDamageAfterModifier(damage, attacker, target); + + DamageComposition composition = new DamageComposition(); + if (ActivatableItem.isActivated(stack)) { + composition.addPlayerOrEntity(attacker, newDamage * 0.5F); + composition.add(DamageSource.magic(attacker, attacker), newDamage * 0.25F); + composition.add(SpectrumDamageSources.setHealth(attacker), newDamage * 0.25F); + } else { + composition.addPlayerOrEntity(attacker, newDamage * 0.75F); + composition.add(DamageSource.magic(attacker, attacker), newDamage * 0.25F); + } + return composition; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/GlassArrowItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/GlassArrowItem.java new file mode 100644 index 0000000000..5248fd2414 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/GlassArrowItem.java @@ -0,0 +1,64 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.entity.entity.GlassArrowEntity; +import de.dafuqs.spectrum.registries.SpectrumItems; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.projectile.PersistentProjectileEntity; +import net.minecraft.item.ArrowItem; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +import java.util.Locale; + +public class GlassArrowItem extends ArrowItem { + + public enum Variant { + MALACHITE, + TOPAZ, + AMETHYST, + CITRINE, + ONYX, + MOONSTONE; + + public static Variant fromString(String string) { + return valueOf(string.toUpperCase(Locale.ROOT)); + } + + public ItemStack getStack() { + switch (this) { + case TOPAZ -> { + return SpectrumItems.TOPAZ_GLASS_ARROW.getDefaultStack(); + } + case AMETHYST -> { + return SpectrumItems.AMETHYST_GLASS_ARROW.getDefaultStack(); + } + case CITRINE -> { + return SpectrumItems.CITRINE_GLASS_ARROW.getDefaultStack(); + } + case ONYX -> { + return SpectrumItems.ONYX_GLASS_ARROW.getDefaultStack(); + } + case MOONSTONE -> { + return SpectrumItems.MOONSTONE_GLASS_ARROW.getDefaultStack(); + } + default -> { + return SpectrumItems.MALACHITE_GLASS_ARROW.getDefaultStack(); + } + } + } + } + + public Variant variant; + + public GlassArrowItem(Settings settings, Variant variant) { + super(settings); + this.variant = variant; + } + + public PersistentProjectileEntity createArrow(World world, ItemStack stack, LivingEntity shooter) { + GlassArrowEntity entity = new GlassArrowEntity(world, shooter); + entity.setVariant(variant); + return entity; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/GlassCrestCrossbowItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/GlassCrestCrossbowItem.java new file mode 100644 index 0000000000..9c9ba06d1e --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/GlassCrestCrossbowItem.java @@ -0,0 +1,132 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import de.dafuqs.spectrum.sound.*; +import net.fabricmc.api.*; +import net.minecraft.client.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.server.network.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class GlassCrestCrossbowItem extends MalachiteCrossbowItem { + + private static final int OVERCHARGE_DURATION_MAX_TICKS = 20 * 6; // 6 seconds + + public GlassCrestCrossbowItem(Settings settings) { + super(settings); + } + + @Override + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + ItemStack itemStack = user.getStackInHand(hand); + if (user.isSneaking() && isCharged(itemStack) && !isOvercharged(itemStack)) { + if (world.isClient) { + startSoundInstance(user); + } + return ItemUsage.consumeHeldItem(world, user, hand); + } + return super.use(world, user, hand); + } + + @Environment(EnvType.CLIENT) + public void startSoundInstance(PlayerEntity user) { + MinecraftClient.getInstance().getSoundManager().play(new OverchargingSoundInstance(user)); + } + + @Override + public int getMaxUseTime(ItemStack stack) { + return isCharged(stack) ? OVERCHARGE_DURATION_MAX_TICKS : super.getMaxUseTime(stack); + } + + @Override + public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) { + if (isCharged(stack) && remainingUseTicks <= 0) { + if (remainingUseTicks % 4 == 0) { + world.playSoundFromEntity(null, user, SpectrumSoundEvents.BLOCK_MOONSTONE_CLUSTER_BREAK, SoundCategory.PLAYERS, 1.0F, 1.0F); + } + } else { + super.usageTick(world, user, stack, remainingUseTicks); + } + } + + @Override + public void onStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks) { + if (isCharged(stack)) { + if (!world.isClient) { + if (remainingUseTicks > 0) { + float overcharge = 1 - (float) remainingUseTicks / OVERCHARGE_DURATION_MAX_TICKS; + overcharge(stack, overcharge); + if (user instanceof ServerPlayerEntity serverPlayerEntity) { + SpectrumS2CPacketSender.sendHudMessage(serverPlayerEntity, + Text.translatable("item.spectrum.glass_crest_crossbow.message.charge", Support.df2.format(overcharge * 100)), false); + } + } + } + return; + } + super.onStoppedUsing(stack, world, user, remainingUseTicks); + } + + public static boolean isOvercharged(ItemStack stack) { + return getOvercharge(stack) > 0; + } + + public static float getOvercharge(ItemStack stack) { + NbtCompound compound = stack.getNbt(); + if (compound == null) { + return 0; + } + return compound.getFloat("Overcharged"); + } + + public static void overcharge(ItemStack stack, float percent) { + NbtCompound compound = stack.getOrCreateNbt(); + compound.putFloat("Overcharged", percent); + } + + public static void unOvercharge(ItemStack stack) { + NbtCompound compound = stack.getNbt(); + if (compound != null) { + compound.remove("Overcharged"); + } + } + + @Override + @Environment(EnvType.CLIENT) + public void appendTooltip(ItemStack itemStack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(itemStack, world, tooltip, context); + float overcharge = getOvercharge(itemStack); + if (overcharge == 0) { + tooltip.add(Text.translatable("item.spectrum.glass_crest_crossbow.tooltip.how_to_overcharge")); + } else { + tooltip.add(Text.translatable("item.spectrum.glass_crest_crossbow.tooltip.overcharged", Support.df2.format(overcharge * 100))); + } + } + + @Override + public float getProjectileVelocityModifier(ItemStack stack) { + float parent = super.getProjectileVelocityModifier(stack); + float overcharge = getOvercharge(stack); + return overcharge == 0 ? parent : parent * (1 + overcharge * 0.5F); + } + + @Override + public float getDivergenceMod(ItemStack stack) { + float parent = super.getDivergenceMod(stack); + float overcharge = getOvercharge(stack); + return overcharge == 0 ? parent : parent * (1 - overcharge * 0.5F); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/GlassCrestGreatswordItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/GlassCrestGreatswordItem.java new file mode 100644 index 0000000000..b851e8732b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/GlassCrestGreatswordItem.java @@ -0,0 +1,172 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import de.dafuqs.spectrum.sound.GreatswordChargingSoundInstance; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.enchantment.ProtectionEnchantment; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.TntEntity; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsage; +import net.minecraft.item.ToolMaterial; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.sound.SoundCategory; +import net.minecraft.stat.Stats; +import net.minecraft.text.Text; +import net.minecraft.util.Hand; +import net.minecraft.util.TypedActionResult; +import net.minecraft.util.UseAction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.World; +import net.minecraft.world.event.GameEvent; +import net.minecraft.world.explosion.Explosion; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class GlassCrestGreatswordItem extends GreatswordItem implements SplitDamageItem { + + public final float magicDamageShare = 0.25F; + public final int groundSlamChargeTicks; + public final int baseGroundSlamStrength; + + public GlassCrestGreatswordItem(ToolMaterial material, int attackDamage, float attackSpeed, float extraReach, int groundSlamChargeTicks, int baseGroundSlamStrength, Settings settings) { + super(material, attackDamage, attackSpeed, extraReach, settings); + this.groundSlamChargeTicks = groundSlamChargeTicks; + this.baseGroundSlamStrength = baseGroundSlamStrength; + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + tooltip.add(Text.translatable("item.spectrum.glass_crest_ultra_greatsword.tooltip", (int) (this.magicDamageShare * 100))); + tooltip.add(Text.translatable("item.spectrum.glass_crest_ultra_greatsword.tooltip2")); + } + + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + if (world.isClient) { + startSoundInstance(user); + } + return ItemUsage.consumeHeldItem(world, user, hand); + } + + public int getMaxUseTime(ItemStack stack) { + return groundSlamChargeTicks; + } + + public UseAction getUseAction(ItemStack stack) { + return UseAction.SPEAR; + } + + @Override + public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks) { + super.usageTick(world, user, stack, remainingUseTicks); + if (world.isClient && this.baseGroundSlamStrength > 0) { + Random random = world.random; + for (int i = 0; i < (groundSlamChargeTicks - remainingUseTicks) / 8; i++) { + world.addParticle(ParticleTypes.INSTANT_EFFECT, + user.getParticleX(1.0), user.getY(), user.getParticleZ(1.0), + random.nextDouble() * 5.0D - 2.5D, random.nextDouble() * 1.2D, random.nextDouble() * 5.0D - 2.5D); + } + } + } + + @Override + public ItemStack finishUsing(ItemStack itemStack, World world, LivingEntity user) { + if (!world.isClient && this.baseGroundSlamStrength > 0) { + int sweepingLevel = EnchantmentHelper.getLevel(Enchantments.SWEEPING, itemStack); + performGroundSlam(world, user.getPos(), user, this.baseGroundSlamStrength + sweepingLevel); + + world.playSound(null, user.getBlockPos(), SpectrumSoundEvents.GROUND_SLAM, SoundCategory.PLAYERS, 1.0F, 1.0F); + + Vec3d particlePos = new Vec3d(user.getParticleX(1.0), user.getY(), user.getParticleZ(1.0)); + SpectrumS2CPacketSender.playParticleWithExactVelocity((ServerWorld) world, particlePos, ParticleTypes.EXPLOSION, 1, Vec3d.ZERO); + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, particlePos, ParticleTypes.CRIT, 16, Vec3d.ZERO, new Vec3d(7.5D, 0, 7.5D)); + + if (user instanceof ServerPlayerEntity serverPlayer) { + serverPlayer.incrementStat(Stats.USED.getOrCreateStat(this)); + } + } + + return itemStack; + } + + public void performGroundSlam(World world, Vec3d pos, LivingEntity attacker, float strength) { + world.emitGameEvent(attacker, GameEvent.ENTITY_ROAR, new BlockPos(pos.x, pos.y, pos.z)); + + double posX = pos.x; + double posY = pos.y; + double posZ = pos.z; + + double k = MathHelper.floor(posX - (double) strength - 1.0D); + double l = MathHelper.floor(posX + (double) strength + 1.0D); + int r = MathHelper.floor(posY - (double) strength - 1.0D); + int s = MathHelper.floor(posY + (double) strength + 1.0D); + int t = MathHelper.floor(posZ - (double) strength - 1.0D); + int u = MathHelper.floor(posZ + (double) strength + 1.0D); + List list = world.getOtherEntities(attacker, new Box(k, r, t, l, s, u)); + Vec3d vec3d = new Vec3d(posX, posY, posZ); + + for (Entity entity : list) { + if (!entity.isImmuneToExplosion()) { + double w = Math.sqrt(entity.squaredDistanceTo(vec3d)) / (double) strength; + if (w <= 1.0D) { + double x = entity.getX() - posX; + double y = (entity instanceof TntEntity ? entity.getY() : entity.getEyeY()) - posY; + double z = entity.getZ() - posZ; + double aa = Math.sqrt(x * x + y * y + z * z); + if (aa != 0.0D) { + x /= aa; + y /= aa; + z /= aa; + double ab = Explosion.getExposure(vec3d, entity); + double ac = (1.0D - w) * ab; + + float damage = (float) ((int) ((ac * ac + ac) / 2.0D * (double) strength + 1.0D)); + if (entity instanceof PlayerEntity player) { + entity.damage(DamageSource.player(player), damage); + } else { + entity.damage(DamageSource.mob(attacker), damage); + } + + double ad = ac; + if (entity instanceof LivingEntity) { + ad = ProtectionEnchantment.transformExplosionKnockback((LivingEntity) entity, ac); + } + + entity.setVelocity(entity.getVelocity().add(x * ad, y * ad, z * ad)); + } + } + } + } + } + + @Environment(EnvType.CLIENT) + public void startSoundInstance(PlayerEntity user) { + MinecraftClient.getInstance().getSoundManager().play(new GreatswordChargingSoundInstance(user, this.groundSlamChargeTicks)); + } + + @Override + public DamageComposition getDamageComposition(LivingEntity attacker, LivingEntity target, ItemStack stack, float damage) { + DamageComposition composition = new DamageComposition(); + composition.addPlayerOrEntity(attacker, damage * (1 - this.magicDamageShare)); + composition.add(DamageSource.magic(attacker, attacker), damage * this.magicDamageShare); + return composition; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/GreatswordItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/GreatswordItem.java new file mode 100644 index 0000000000..f76b94f844 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/GreatswordItem.java @@ -0,0 +1,71 @@ +package de.dafuqs.spectrum.items.tools; + +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; +import com.jamieswhiteshirt.reachentityattributes.ReachEntityAttributes; +import de.dafuqs.spectrum.items.Preenchanted; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.item.SwordItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.util.collection.DefaultedList; + +import java.util.Map; +import java.util.UUID; + +/** + * A sword with additional reach + */ +public class GreatswordItem extends SwordItem implements Preenchanted { + + protected static final UUID REACH_MODIFIER_ID = UUID.fromString("c81a7152-313c-452f-b15e-fcf51322ccc0"); + + // shadowing SwordItem's properties in a way, since those are private final + private final float attackDamage; + private final Multimap attributeModifiers; + + public GreatswordItem(ToolMaterial material, int attackDamage, float attackSpeed, float extraReach, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + + this.attackDamage = (float) attackDamage + material.getAttackDamage(); + ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); + builder.put(EntityAttributes.GENERIC_ATTACK_DAMAGE, new EntityAttributeModifier(ATTACK_DAMAGE_MODIFIER_ID, "Weapon modifier", this.attackDamage, EntityAttributeModifier.Operation.ADDITION)); + builder.put(EntityAttributes.GENERIC_ATTACK_SPEED, new EntityAttributeModifier(ATTACK_SPEED_MODIFIER_ID, "Weapon modifier", attackSpeed, EntityAttributeModifier.Operation.ADDITION)); + builder.put(ReachEntityAttributes.REACH, new EntityAttributeModifier(REACH_MODIFIER_ID, "Weapon modifier", extraReach, EntityAttributeModifier.Operation.ADDITION)); + this.attributeModifiers = builder.build(); + } + + @Override + public float getAttackDamage() { + return this.attackDamage; + } + + @Override + public Multimap getAttributeModifiers(EquipmentSlot slot) { + return slot == EquipmentSlot.MAINHAND ? attributeModifiers : super.getAttributeModifiers(slot); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(Enchantments.SWEEPING, 4); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/LagoonRodItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/LagoonRodItem.java index d9b20904cd..7455a1fee5 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/LagoonRodItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/LagoonRodItem.java @@ -11,7 +11,6 @@ import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.collection.DefaultedList; import net.minecraft.world.World; @@ -56,7 +55,7 @@ public void spawnBobber(PlayerEntity user, World world, int luckOfTheSeaLevel, i @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.lagoon_rod.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.lagoon_rod.tooltip").formatted(Formatting.GRAY)); } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/LootingFalchionItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/LootingFalchionItem.java deleted file mode 100644 index 5e6b398bd1..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/tools/LootingFalchionItem.java +++ /dev/null @@ -1,37 +0,0 @@ -package de.dafuqs.spectrum.items.tools; - -import de.dafuqs.spectrum.items.Preenchanted; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.item.SwordItem; -import net.minecraft.item.ToolMaterial; -import net.minecraft.util.collection.DefaultedList; - -import java.util.Map; - -public class LootingFalchionItem extends SwordItem implements Preenchanted { - - public LootingFalchionItem(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings) { - super(toolMaterial, attackDamage, attackSpeed, settings); - } - - @Override - public Map getDefaultEnchantments() { - return Map.of(Enchantments.LOOTING, 3); - } - - @Override - public void appendStacks(ItemGroup group, DefaultedList stacks) { - if (this.isIn(group)) { - stacks.add(getDefaultEnchantedStack(this)); - } - } - - @Override - public ItemStack getDefaultStack() { - return getDefaultEnchantedStack(this); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/MalachiteBidentItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/MalachiteBidentItem.java new file mode 100644 index 0000000000..b67bc2b524 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/MalachiteBidentItem.java @@ -0,0 +1,113 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.items.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.item.*; +import net.minecraft.sound.*; +import net.minecraft.stat.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; + +import java.util.*; + +public class MalachiteBidentItem extends TridentItem implements Preenchanted { + + public MalachiteBidentItem(Settings settings) { + super(settings); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(Enchantments.IMPALING, 6); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + + @Override + public void onStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks) { + if (user instanceof PlayerEntity playerEntity) { + int useTime = this.getMaxUseTime(stack) - remainingUseTicks; + if (useTime >= 10) { + int riptideLevel = EnchantmentHelper.getRiptide(stack); + if (riptideLevel <= 0 || playerEntity.isTouchingWaterOrRain()) { + if (!world.isClient) { + stack.damage(1, playerEntity, (p) -> { + p.sendToolBreakStatus(user.getActiveHand()); + }); + if (riptideLevel == 0) { + throwBident(stack, world, playerEntity, (float) riptideLevel); + } + } + + playerEntity.incrementStat(Stats.USED.getOrCreateStat(this)); + if (riptideLevel > 0) { + riptide(world, playerEntity, riptideLevel); + } + + } + } + } + } + + private static void riptide(World world, PlayerEntity playerEntity, int riptideLevel) { + float f = playerEntity.getYaw(); + float g = playerEntity.getPitch(); + float h = -MathHelper.sin(f * 0.017453292F) * MathHelper.cos(g * 0.017453292F); + float k = -MathHelper.sin(g * 0.017453292F); + float l = MathHelper.cos(f * 0.017453292F) * MathHelper.cos(g * 0.017453292F); + float m = MathHelper.sqrt(h * h + k * k + l * l); + float n = 3.0F * ((1.0F + (float) riptideLevel) / 4.0F); + h *= n / m; + k *= n / m; + l *= n / m; + playerEntity.addVelocity(h, k, l); + playerEntity.useRiptide(20); + if (playerEntity.isOnGround()) { + playerEntity.move(MovementType.SELF, new Vec3d(0.0, 1.2, 0.0)); + } + + SoundEvent soundEvent; + if (riptideLevel >= 3) { + soundEvent = SoundEvents.ITEM_TRIDENT_RIPTIDE_3; + } else if (riptideLevel == 2) { + soundEvent = SoundEvents.ITEM_TRIDENT_RIPTIDE_2; + } else { + soundEvent = SoundEvents.ITEM_TRIDENT_RIPTIDE_1; + } + + world.playSoundFromEntity(null, playerEntity, soundEvent, SoundCategory.PLAYERS, 1.0F, 1.0F); + } + + private static void throwBident(ItemStack stack, World world, PlayerEntity playerEntity, float j) { + BidentEntity bidentEntity = new BidentEntity(world); + bidentEntity.setStack(stack); + bidentEntity.setOwner(playerEntity); + bidentEntity.updatePosition(playerEntity.getX(), playerEntity.getEyeY() - 0.1, playerEntity.getZ()); + bidentEntity.setVelocity(playerEntity, playerEntity.getPitch(), playerEntity.getYaw(), 0.0F, 2.5F + j * 0.5F, 1.0F); + if (playerEntity.getAbilities().creativeMode) { + bidentEntity.pickupType = PersistentProjectileEntity.PickupPermission.CREATIVE_ONLY; + } + + world.spawnEntity(bidentEntity); + world.playSoundFromEntity(null, bidentEntity, SoundEvents.ITEM_TRIDENT_THROW, SoundCategory.PLAYERS, 1.0F, 1.0F); + if (!playerEntity.getAbilities().creativeMode) { + playerEntity.getInventory().removeOne(stack); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/MalachiteCrossbowItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/MalachiteCrossbowItem.java new file mode 100644 index 0000000000..59ef6113a3 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/MalachiteCrossbowItem.java @@ -0,0 +1,71 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.arrowhead.api.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.enchantment.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.tag.*; +import net.minecraft.util.collection.*; + +import java.util.*; +import java.util.function.*; + +public class MalachiteCrossbowItem extends CrossbowItem implements Preenchanted, ArrowheadCrossbow { + + public static final Predicate PROJECTILES = (stack) -> stack.isIn(ItemTags.ARROWS) || stack.isIn(SpectrumItemTags.GLASS_ARROWS); + + public MalachiteCrossbowItem(Settings settings) { + super(settings); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(Enchantments.PIERCING, 5); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + + public static ItemStack getFirstProjectile(ItemStack crossbow) { + NbtCompound nbtCompound = crossbow.getNbt(); + if (nbtCompound != null && nbtCompound.contains("ChargedProjectiles", 9)) { + NbtList nbtList = nbtCompound.getList("ChargedProjectiles", 10); + if (nbtList != null && nbtList.size() > 0) { + NbtCompound nbtCompound2 = nbtList.getCompound(0); + return ItemStack.fromNbt(nbtCompound2); + } + } + return ItemStack.EMPTY; + } + + public Predicate getProjectiles() { + return PROJECTILES; + } + + @Override + public float getProjectileVelocityModifier(ItemStack stack) { + return 1.25F; + } + + @Override + public float getPullTimeModifier(ItemStack stack) { + return 1.0F; + } + + @Override + public float getDivergenceMod(ItemStack stack) { + return 0.75F; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/MoltenRodItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/MoltenRodItem.java index 4bea3ae203..f538481218 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/MoltenRodItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/MoltenRodItem.java @@ -8,7 +8,6 @@ import net.minecraft.fluid.FluidState; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.minecraft.world.World; @@ -37,8 +36,8 @@ public void spawnBobber(PlayerEntity user, World world, int luckOfTheSeaLevel, i @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.molten_rod.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.molten_rod.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.molten_rod.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.molten_rod.tooltip2").formatted(Formatting.GRAY)); } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/MultiToolItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/MultiToolItem.java index 4d47e7e5bf..cfbd0007c1 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/MultiToolItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/MultiToolItem.java @@ -1,47 +1,15 @@ package de.dafuqs.spectrum.items.tools; -import de.dafuqs.spectrum.items.Preenchanted; -import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; -import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatternProvider; import net.minecraft.block.BlockState; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; import net.minecraft.item.*; -import net.minecraft.text.Text; import net.minecraft.util.ActionResult; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; -import java.util.List; -import java.util.Map; - -public class MultiToolItem extends SpectrumPickaxeItem implements Preenchanted, LoomPatternProvider { +public class MultiToolItem extends PickaxeItem { public MultiToolItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { super(material, attackDamage, attackSpeed, settings); } - @Override - public Map getDefaultEnchantments() { - return Map.of(Enchantments.EFFICIENCY, 1); - } - - @Override - public ItemStack getDefaultStack() { - return getDefaultEnchantedStack(this); - } - - @Override - public void appendStacks(ItemGroup group, DefaultedList stacks) { - if (this.isIn(group)) { - stacks.add(getDefaultEnchantedStack(this)); - } - } - @Override public boolean isSuitableFor(BlockState state) { return true; @@ -68,15 +36,4 @@ public ActionResult useOnBlock(ItemUsageContext context) { return actionResult; } - @Override - public LoomPattern getPattern() { - return SpectrumBannerPatterns.MULTITOOL; - } - - @Override - public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - super.appendTooltip(stack, world, tooltip, context); - SpectrumBannerPatternItem.addBannerPatternProviderTooltip(tooltip); - } - } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/NightfallsBladeItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/NightfallsBladeItem.java new file mode 100644 index 0000000000..aeff22e998 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/NightfallsBladeItem.java @@ -0,0 +1,93 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.revelationary.api.advancements.AdvancementHelper; +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.energy.InkPowered; +import de.dafuqs.spectrum.energy.InkPoweredStatusEffectInstance; +import de.dafuqs.spectrum.helpers.ColorHelper; +import de.dafuqs.spectrum.items.PotionFillable; +import de.dafuqs.spectrum.particle.effect.ParticleSpawnerParticleEffect; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.SwordItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.potion.PotionUtil; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.minecraft.world.World; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class NightfallsBladeItem extends SwordItem implements PotionFillable { + + private static final Identifier PARTICLE_SPRITE_IDENTIFIER = Identifier.tryParse("effect"); + private static final Identifier UNLOCK_IDENTIFIER = SpectrumCommon.locate("progression/unlock_nightfalls_blade"); + + public NightfallsBladeItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + + @Override + public boolean isDamageable() { + return false; + } + + @Override + public boolean isEnchantable(ItemStack stack) { + return false; + } + + @Override + public int maxEffectCount() { + return 1; + } + + @Override + public int maxEffectAmplifier() { + return 2; + } + + @Override + public long adjustFinalCostFor(@NotNull InkPoweredStatusEffectInstance instance) { + return (long) Math.pow(instance.getInkCost().getCost(), 2 + instance.getStatusEffectInstance().getAmplifier()); + } + + @Override + public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker) { + if(target.isAlive() && attacker instanceof PlayerEntity player) { + if (AdvancementHelper.hasAdvancement(player, UNLOCK_IDENTIFIER)) { + List effects = InkPoweredStatusEffectInstance.getEffects(stack); + for(InkPoweredStatusEffectInstance instance : effects) { + if(InkPowered.tryDrainEnergy(player, instance.getInkCost().getColor(), instance.getInkCost().getCost())) { + World world = attacker.getWorld(); + if (world.isClient) { + world.addParticle(new ParticleSpawnerParticleEffect(PARTICLE_SPRITE_IDENTIFIER, 0.1F, ColorHelper.colorIntToVec(instance.getStatusEffectInstance().getEffectType().getColor()), 0.5F, 120, true, true), + target.getParticleX(0.5D), target.getBodyY(0.5D), target.getParticleZ(0.5D), + world.random.nextFloat() - 0.5, world.random.nextFloat() - 0.5, world.random.nextFloat() - 0.5 + ); + } else { + target.addStatusEffect(instance.getStatusEffectInstance(), attacker); + } + } + } + } + } + return super.postHit(stack, target, attacker); + } + + @Override + public boolean hasGlint(ItemStack stack) { + return super.hasGlint(stack) || PotionUtil.getCustomPotionEffects(stack).size() > 0; + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + appendPotionFillableTooltip(stack, tooltip, Text.translatable("item.spectrum.nightfalls_blade.when_struck"), true); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/OblivionPickaxeItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/OblivionPickaxeItem.java new file mode 100644 index 0000000000..099aa66158 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/OblivionPickaxeItem.java @@ -0,0 +1,46 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.registries.SpectrumEnchantments; +import net.minecraft.block.BlockState; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ToolMaterial; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.Map; + +public class OblivionPickaxeItem extends SpectrumPickaxeItem { + + public OblivionPickaxeItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + + public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { + super.postMine(stack, world, state, pos, miner); + + // Break the tool if it is used without the voiding enchantment + // Otherwise this would be a VERY cheap early game diamond tier tool + if (!world.isClient && !EnchantmentHelper.get(stack).containsKey(SpectrumEnchantments.VOIDING)) { + stack.damage(5000, miner, (e) -> { + e.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); + }); + } + + return true; + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(SpectrumEnchantments.VOIDING, 1); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/PreenchantedMultiToolItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/PreenchantedMultiToolItem.java new file mode 100644 index 0000000000..6ba23306ca --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/PreenchantedMultiToolItem.java @@ -0,0 +1,57 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.items.LoomPatternProvider; +import de.dafuqs.spectrum.items.Preenchanted; +import de.dafuqs.spectrum.items.SpectrumBannerPatternItem; +import de.dafuqs.spectrum.registries.SpectrumBannerPatterns; +import net.minecraft.block.entity.BannerPattern; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ToolMaterial; +import net.minecraft.text.Text; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.registry.RegistryEntry; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Map; + +public class PreenchantedMultiToolItem extends MultiToolItem implements Preenchanted, LoomPatternProvider { + + public PreenchantedMultiToolItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(Enchantments.EFFICIENCY, 1); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + + @Override + public RegistryEntry getPattern() { + return SpectrumBannerPatterns.MULTITOOL; + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + SpectrumBannerPatternItem.addBannerPatternProviderTooltip(tooltip); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/RangedWorkstaffItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/RangedWorkstaffItem.java new file mode 100644 index 0000000000..c4146450cc --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/RangedWorkstaffItem.java @@ -0,0 +1,63 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.energy.InkCost; +import de.dafuqs.spectrum.energy.InkPowered; +import de.dafuqs.spectrum.energy.color.InkColors; +import de.dafuqs.spectrum.entity.entity.MiningProjectileEntity; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ToolMaterial; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import net.minecraft.util.Hand; +import net.minecraft.util.TypedActionResult; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class RangedWorkstaffItem extends WorkstaffItem { + + public static final int COOLDOWN_DURATION_TICKS = 10; + public static final InkCost PROJECTILE_COST = new InkCost(InkColors.WHITE, 250); + + public RangedWorkstaffItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + + public static boolean canShoot(NbtCompound nbt) { + return nbt == null || !nbt.getBoolean(WorkstaffItem.PROJECTILES_DISABLED_NBT_STRING); + } + + @Override + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + TypedActionResult result = super.use(world, user, hand); + if (!result.getResult().isAccepted()) { + ItemStack stack = user.getStackInHand(hand); + if (canShoot(stack.getNbt()) && InkPowered.tryDrainEnergy(user, PROJECTILE_COST)) { + user.getItemCooldownManager().set(this, COOLDOWN_DURATION_TICKS); + if (!world.isClient) { + MiningProjectileEntity.shoot(world, user, user.getStackInHand(hand)); + } + stack.damage(2, user, (e) -> { + e.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); + }); + } + } + return result; + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + if (canShoot(stack.getNbt())) { + tooltip.add(Text.translatable("item.spectrum.glass_crest_workstaff.tooltip.projectile").formatted(Formatting.GRAY)); + } else { + tooltip.add(Text.translatable("item.spectrum.glass_crest_workstaff.tooltip.projectiles_disabled").formatted(Formatting.DARK_RED)); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/RazorFalchionItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/RazorFalchionItem.java new file mode 100644 index 0000000000..74035d41ea --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/RazorFalchionItem.java @@ -0,0 +1,37 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.items.Preenchanted; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.item.SwordItem; +import net.minecraft.item.ToolMaterial; +import net.minecraft.util.collection.DefaultedList; + +import java.util.Map; + +public class RazorFalchionItem extends SwordItem implements Preenchanted { + + public RazorFalchionItem(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings) { + super(toolMaterial, attackDamage, attackSpeed, settings); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(Enchantments.LOOTING, 3); + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/SpectrumFishingRodItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/SpectrumFishingRodItem.java index 9bee91cfa8..b2b8c7d662 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tools/SpectrumFishingRodItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/tools/SpectrumFishingRodItem.java @@ -15,7 +15,6 @@ import net.minecraft.stat.Stats; import net.minecraft.tag.FluidTags; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; @@ -34,7 +33,7 @@ public SpectrumFishingRodItem(Settings settings) { @Override public TypedActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack itemStack = user.getStackInHand(hand); - + PlayerEntityAccessor playerEntityAccessor = ((PlayerEntityAccessor) user); if (playerEntityAccessor.getSpectrumBobber() != null) { if (!world.isClient) { @@ -45,7 +44,7 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han } world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENTITY_FISHING_BOBBER_RETRIEVE, SoundCategory.NEUTRAL, 1.0F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); - world.emitGameEvent(user, GameEvent.FISHING_ROD_REEL_IN, user); + user.emitGameEvent(GameEvent.ITEM_INTERACT_FINISH); } else { world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ENTITY_FISHING_BOBBER_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (world.getRandom().nextFloat() * 0.4F + 0.8F)); if (!world.isClient) { @@ -59,7 +58,7 @@ public TypedActionResult use(World world, PlayerEntity user, Hand han } user.incrementStat(Stats.USED.getOrCreateStat(this)); - world.emitGameEvent(user, GameEvent.FISHING_ROD_CAST, user); + user.emitGameEvent(GameEvent.ITEM_INTERACT_START); } return TypedActionResult.success(itemStack, world.isClient()); @@ -78,7 +77,7 @@ public boolean shouldAutosmelt(ItemStack itemStack, PlayerEntity user) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.spectrum_fishing_rods.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.spectrum_fishing_rods.tooltip").formatted(Formatting.GRAY)); } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/SplitDamageItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/SplitDamageItem.java new file mode 100644 index 0000000000..0a36981cbe --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/SplitDamageItem.java @@ -0,0 +1,43 @@ +package de.dafuqs.spectrum.items.tools; + +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Pair; + +import java.util.ArrayList; +import java.util.List; + +public interface SplitDamageItem { + + DamageComposition getDamageComposition(LivingEntity attacker, LivingEntity target, ItemStack stack, float damage); + + class DamageComposition { + + private final List> damageSourcesWithPercentage = new ArrayList<>(); + + public DamageComposition() { + + } + + public void addPlayerOrEntity(LivingEntity entity, float ratio) { + if (entity instanceof PlayerEntity player) { + this.damageSourcesWithPercentage.add(new Pair<>(DamageSource.player(player), ratio)); + } else { + this.damageSourcesWithPercentage.add(new Pair<>(DamageSource.mob(entity), ratio)); + } + } + + public void add(DamageSource damageSource, float ratio) { + this.damageSourcesWithPercentage.add(new Pair<>(damageSource, ratio)); + } + + public List> get() { + return damageSourcesWithPercentage; + } + + } + + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/VoidingPickaxeItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/VoidingPickaxeItem.java deleted file mode 100644 index dbffab9bce..0000000000 --- a/src/main/java/de/dafuqs/spectrum/items/tools/VoidingPickaxeItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.dafuqs.spectrum.items.tools; - -import de.dafuqs.spectrum.registries.SpectrumEnchantments; -import net.minecraft.block.BlockState; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ToolMaterial; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Map; - -public class VoidingPickaxeItem extends SpectrumPickaxeItem { - - public VoidingPickaxeItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { - super(material, attackDamage, attackSpeed, settings); - } - - public boolean postMine(ItemStack stack, World world, BlockState state, BlockPos pos, LivingEntity miner) { - super.postMine(stack, world, state, pos, miner); - - // Break the tool if it is used without the voiding enchantment - // Otherwise this would be a VERY cheap early game diamond tier tool - if (!world.isClient && !EnchantmentHelper.get(stack).containsKey(SpectrumEnchantments.VOIDING)) { - stack.damage(5000, miner, (e) -> { - e.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND); - }); - } - - return true; - } - - @Override - public Map getDefaultEnchantments() { - return Map.of(SpectrumEnchantments.VOIDING, 1); - } - - @Override - public ItemStack getDefaultStack() { - return getDefaultEnchantedStack(this); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/tools/WorkstaffItem.java b/src/main/java/de/dafuqs/spectrum/items/tools/WorkstaffItem.java new file mode 100644 index 0000000000..6e22dc77c8 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/tools/WorkstaffItem.java @@ -0,0 +1,231 @@ +package de.dafuqs.spectrum.items.tools; + +import de.dafuqs.spectrum.helpers.SpectrumEnchantmentHelper; +import de.dafuqs.spectrum.helpers.Support; +import de.dafuqs.spectrum.inventories.WorkstaffScreenHandler; +import de.dafuqs.spectrum.items.Preenchanted; +import de.dafuqs.spectrum.registries.SpectrumEnchantments; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.item.ToolMaterial; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.screen.NamedScreenHandlerFactory; +import net.minecraft.screen.SimpleNamedScreenHandlerFactory; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.sound.SoundCategory; +import net.minecraft.text.Text; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Formatting; +import net.minecraft.util.Hand; +import net.minecraft.util.TypedActionResult; +import net.minecraft.util.collection.DefaultedList; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Map; + +public class WorkstaffItem extends MultiToolItem implements AoEBreakingTool, Preenchanted { + + public enum GUIToggle { + SELECT_SILK_TOUCH("item.spectrum.workstaff.message.silk_touch"), + SELECT_FORTUNE("item.spectrum.workstaff.message.fortune"), + SELECT_RESONANCE("item.spectrum.workstaff.message.resonance"), + SELECT_1x1("item.spectrum.workstaff.message.1x1"), + SELECT_3x3("item.spectrum.workstaff.message.3x3"), + SELECT_5x5("item.spectrum.workstaff.message.5x5"), + ENABLE_RIGHT_CLICK_ACTIONS("item.spectrum.workstaff.message.enabled_right_click_actions"), + DISABLE_RIGHT_CLICK_ACTIONS("item.spectrum.workstaff.message.disabled_right_click_actions"), + ENABLE_PROJECTILES("item.spectrum.workstaff.message.enabled_projectiles"), + DISABLE_PROJECTILES("item.spectrum.workstaff.message.disabled_projectiles"); + + private final String triggerText; + + GUIToggle(String triggerText) { + this.triggerText = triggerText; + } + + public Text getTriggerText() { + return Text.translatable(triggerText); + } + + } + + public static final String RANGE_NBT_STRING = "Range"; + public static final String RIGHT_CLICK_DISABLED_NBT_STRING = "RightClickDisabled"; + public static final String PROJECTILES_DISABLED_NBT_STRING = "ProjectilesDisabled"; + + public WorkstaffItem(ToolMaterial material, int attackDamage, float attackSpeed, Settings settings) { + super(material, attackDamage, attackSpeed, settings); + } + + @Override + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + if (user.isSneaking()) { + if (user instanceof ServerPlayerEntity serverPlayerEntity) { + serverPlayerEntity.openHandledScreen(createScreenHandlerFactory(user.getStackInHand(hand))); + } + return TypedActionResult.consume(user.getStackInHand(hand)); + } + return super.use(world, user, hand); + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + int range = getRange(stack); + if(range > 0) { + int displayedRange = 1 + range + range; + tooltip.add(Text.translatable("item.spectrum.workstaff.tooltip.mining_range", displayedRange, displayedRange).formatted(Formatting.GRAY)); + } + if(!canTill(stack.getNbt())) { + tooltip.add(Text.translatable("item.spectrum.workstaff.tooltip.right_click_actions_disabled").formatted(Formatting.DARK_RED)); + } + } + + /** + * Invoke shovel, axe and hoe right click actions (in this order) + * Like stripping logs, tilling grass paths etc. + * To get tilled earth it has to converted to path and then tilled again + */ + public ActionResult useOnBlock(ItemUsageContext context) { + NbtCompound nbt = context.getStack().getNbt(); + if(canTill(nbt)) { + super.useOnBlock(context); + } + return ActionResult.PASS; + } + + public static boolean canTill(NbtCompound nbt) { + return nbt == null || !nbt.getBoolean(RIGHT_CLICK_DISABLED_NBT_STRING); + } + + public NamedScreenHandlerFactory createScreenHandlerFactory(ItemStack itemStack) { + return new SimpleNamedScreenHandlerFactory((syncId, inventory, player) -> + new WorkstaffScreenHandler(syncId, inventory, itemStack), + Text.translatable("item.spectrum.workstaff") + ); + } + + @Override + public int getRange(ItemStack stack) { + NbtCompound nbt = stack.getNbt(); + if(nbt == null || !nbt.contains(RANGE_NBT_STRING, NbtElement.INT_TYPE)) { + return 0; + } + return nbt.getInt(RANGE_NBT_STRING); + } + + public static void applyToggle(PlayerEntity player, ItemStack stack, GUIToggle toggle) { + NbtCompound nbt = stack.getOrCreateNbt(); + switch (toggle) { + case SELECT_1x1 -> { + nbt.remove(RANGE_NBT_STRING); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + case SELECT_3x3 -> { + nbt.putInt(RANGE_NBT_STRING, 1); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + case SELECT_5x5 -> { + nbt.putInt(RANGE_NBT_STRING, 2); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + // switching to another enchantment + // fortune is handled a bit special. Its level is preserved in NBT, should the player enchant a different/higher tier + // of fortune onto the tool, so that level can be restored later + case SELECT_FORTUNE -> { + boolean couldRemoveOtherEnchantment = SpectrumEnchantmentHelper.removeEnchantment(stack, Enchantments.SILK_TOUCH); + couldRemoveOtherEnchantment |= SpectrumEnchantmentHelper.removeEnchantment(stack, SpectrumEnchantments.RESONANCE); + int fortuneLevel = 3; + if(nbt.contains("FortuneLevel", NbtElement.INT_TYPE)) { + fortuneLevel = nbt.getInt("FortuneLevel"); + nbt.remove("FortuneLevel"); + } + if(couldRemoveOtherEnchantment) { + SpectrumEnchantmentHelper.addOrExchangeEnchantment(stack, Enchantments.FORTUNE, fortuneLevel, true, true); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } else if(player instanceof ServerPlayerEntity serverPlayerEntity) { + triggerUnenchantedWorkstaffAdvancement(serverPlayerEntity); + } + } + case SELECT_SILK_TOUCH -> { + int fortuneLevel = EnchantmentHelper.getLevel(Enchantments.FORTUNE, stack); + boolean couldRemoveOtherEnchantment = SpectrumEnchantmentHelper.removeEnchantment(stack, Enchantments.FORTUNE); + if(couldRemoveOtherEnchantment) { + nbt.putInt("FortuneLevel", fortuneLevel); + } + couldRemoveOtherEnchantment |= SpectrumEnchantmentHelper.removeEnchantment(stack, SpectrumEnchantments.RESONANCE); + if(couldRemoveOtherEnchantment) { + SpectrumEnchantmentHelper.addOrExchangeEnchantment(stack, Enchantments.SILK_TOUCH, 1, true, true); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } else if(player instanceof ServerPlayerEntity serverPlayerEntity) { + triggerUnenchantedWorkstaffAdvancement(serverPlayerEntity); + } + } + case SELECT_RESONANCE -> { + int fortuneLevel = EnchantmentHelper.getLevel(Enchantments.FORTUNE, stack); + boolean couldRemoveOtherEnchantment = SpectrumEnchantmentHelper.removeEnchantment(stack, Enchantments.FORTUNE); + if(couldRemoveOtherEnchantment) { + nbt.putInt("FortuneLevel", fortuneLevel); + } + couldRemoveOtherEnchantment |= SpectrumEnchantmentHelper.removeEnchantment(stack, Enchantments.SILK_TOUCH); + if(couldRemoveOtherEnchantment) { + SpectrumEnchantmentHelper.addOrExchangeEnchantment(stack, SpectrumEnchantments.RESONANCE, 1, true, true); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } else if (player instanceof ServerPlayerEntity serverPlayerEntity) { + triggerUnenchantedWorkstaffAdvancement(serverPlayerEntity); + } + } + case ENABLE_RIGHT_CLICK_ACTIONS -> { + nbt.remove(RIGHT_CLICK_DISABLED_NBT_STRING); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + case DISABLE_RIGHT_CLICK_ACTIONS -> { + nbt.putBoolean(RIGHT_CLICK_DISABLED_NBT_STRING, true); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + case ENABLE_PROJECTILES -> { + nbt.remove(PROJECTILES_DISABLED_NBT_STRING); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + case DISABLE_PROJECTILES -> { + nbt.putBoolean(PROJECTILES_DISABLED_NBT_STRING, true); + MinecraftClient.getInstance().inGameHud.setOverlayMessage(toggle.getTriggerText(), false); + } + } + stack.setNbt(nbt); + } + + private static void triggerUnenchantedWorkstaffAdvancement(ServerPlayerEntity player) { + player.playSound(SpectrumSoundEvents.USE_FAIL, SoundCategory.PLAYERS, 0.75F, 1.0F); + Support.grantAdvancementCriterion(player, "lategame/trigger_unenchanted_workstaff", "code_triggered"); + } + + @Override + public Map getDefaultEnchantments() { + return Map.of(Enchantments.FORTUNE, 4); + } + + @Override + public ItemStack getDefaultStack() { + return getDefaultEnchantedStack(this); + } + + @Override + public void appendStacks(ItemGroup group, DefaultedList stacks) { + if (this.isIn(group)) { + stacks.add(getDefaultEnchantedStack(this)); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/items/tooltip/CraftingTabletTooltipData.java b/src/main/java/de/dafuqs/spectrum/items/tooltip/CraftingTabletTooltipData.java index d8b4094410..81bee78d12 100644 --- a/src/main/java/de/dafuqs/spectrum/items/tooltip/CraftingTabletTooltipData.java +++ b/src/main/java/de/dafuqs/spectrum/items/tooltip/CraftingTabletTooltipData.java @@ -3,23 +3,23 @@ import net.minecraft.client.item.TooltipData; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Recipe; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; public class CraftingTabletTooltipData implements TooltipData { private final ItemStack itemStack; - private final TranslatableText description; + private final Text description; public CraftingTabletTooltipData(Recipe recipe) { this.itemStack = recipe.getOutput(); - this.description = new TranslatableText("item.spectrum.crafting_tablet.tooltip.recipe", this.itemStack.getCount(), this.itemStack.getName().getString()); + this.description = Text.translatable("item.spectrum.crafting_tablet.tooltip.recipe", this.itemStack.getCount(), this.itemStack.getName().getString()); } public ItemStack getItemStack() { return this.itemStack; } - public TranslatableText getDescription() { + public Text getDescription() { return this.description; } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AshenCircletItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AshenCircletItem.java index 5c87f4976c..5077c559db 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AshenCircletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AshenCircletItem.java @@ -16,7 +16,6 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; @@ -72,15 +71,15 @@ public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.ashen_circlet.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.ashen_circlet.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.ashen_circlet.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.ashen_circlet.tooltip2").formatted(Formatting.GRAY)); if (world != null) { long cooldownTicks = getCooldownTicks(stack, world); if (cooldownTicks == 0) { - tooltip.add(new TranslatableText("item.spectrum.ashen_circlet.tooltip.cooldown_full")); + tooltip.add(Text.translatable("item.spectrum.ashen_circlet.tooltip.cooldown_full")); } else { - tooltip.add(new TranslatableText("item.spectrum.ashen_circlet.tooltip.cooldown_seconds", cooldownTicks / 20)); + tooltip.add(Text.translatable("item.spectrum.ashen_circlet.tooltip.cooldown_seconds", cooldownTicks / 20)); } } } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AttackRingItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AttackRingItem.java index 9366382534..cd0a51e54e 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AttackRingItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AttackRingItem.java @@ -15,7 +15,6 @@ import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -57,9 +56,9 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too super.appendTooltip(stack, world, tooltip, context); long mod = Math.round(getAttackModifierForEntity(MinecraftClient.getInstance().player) * 100); if (mod == 0) { - tooltip.add(new TranslatableText("item.spectrum.jeopardant.tooltip.damage_zero")); + tooltip.add(Text.translatable("item.spectrum.jeopardant.tooltip.damage_zero")); } else { - tooltip.add(new TranslatableText("item.spectrum.jeopardant.tooltip.damage", mod)); + tooltip.add(Text.translatable("item.spectrum.jeopardant.tooltip.damage", mod)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java index 876fe40e81..97282acf84 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeAmuletItem.java @@ -10,7 +10,6 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -25,7 +24,7 @@ public AzureDikeAmuletItem(Settings settings) { @Environment(EnvType.CLIENT) @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - tooltip.add(new TranslatableText("item.spectrum.azure_dike_provider.tooltip", maxAzureDike(stack))); + tooltip.add(Text.translatable("item.spectrum.azure_dike_provider.tooltip", maxAzureDike(stack))); super.appendTooltip(stack, world, tooltip, context); } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeBeltItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeBeltItem.java index c0f363e05e..cddfdec7fc 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeBeltItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeBeltItem.java @@ -6,7 +6,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -22,7 +21,7 @@ public AzureDikeBeltItem(Settings settings) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.azure_dike_belt.tooltip")); + tooltip.add(Text.translatable("item.spectrum.azure_dike_belt.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeRingItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeRingItem.java index a0fe98dc9a..9f231e549f 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeRingItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeRingItem.java @@ -6,7 +6,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -27,7 +26,7 @@ public boolean canEquipMoreThanOne() { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.azure_dike_ring.tooltip")); + tooltip.add(Text.translatable("item.spectrum.azure_dike_ring.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeTrinketItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeTrinketItem.java index 69d5634350..874a454086 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeTrinketItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/AzureDikeTrinketItem.java @@ -7,7 +7,6 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -42,7 +41,7 @@ public void onBreak(ItemStack stack, SlotReference slot, LivingEntity entity) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.azure_dike_provider.tooltip", maxAzureDike(stack))); + tooltip.add(Text.translatable("item.spectrum.azure_dike_provider.tooltip", maxAzureDike(stack))); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/CircletOfArroganceItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/CircletOfArroganceItem.java new file mode 100644 index 0000000000..27ee2c7ae6 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/CircletOfArroganceItem.java @@ -0,0 +1,52 @@ +package de.dafuqs.spectrum.items.trinkets; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.registries.*; +import dev.emi.trinkets.api.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.effect.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class CircletOfArroganceItem extends SpectrumTrinketItem { + + private final static int TRIGGER_EVERY_X_TICKS = 240; + private final static int EFFECT_DURATION = TRIGGER_EVERY_X_TICKS + 10; + + public CircletOfArroganceItem(Settings settings) { + super(settings, SpectrumCommon.locate("progression/unlock_circlet_of_arrogance")); + } + + @Override + public void onEquip(ItemStack stack, SlotReference slot, LivingEntity entity) { + super.onEquip(stack, slot, entity); + giveEffect(entity); + } + + @Override + public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { + super.tick(stack, slot, entity); + giveEffect(entity); + } + + private static void giveEffect(LivingEntity entity) { + World world = entity.getWorld(); + if (!world.isClient) { + if (world.getTime() % TRIGGER_EVERY_X_TICKS == 0) { + entity.addStatusEffect(new StatusEffectInstance(SpectrumStatusEffects.DIVINITY, EFFECT_DURATION, 0, true, true)); + } + } + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); + tooltip.add(Text.translatable("item.spectrum.circlet_of_arrogance.tooltip").formatted(Formatting.GRAY)); + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java index 36ef9623f6..cc62df7a94 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraHealthRingItem.java @@ -12,7 +12,6 @@ import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -28,7 +27,7 @@ public ExtraHealthRingItem(Settings settings) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - tooltip.add(new TranslatableText("item.spectrum.heartsingers_reward.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.heartsingers_reward.tooltip").formatted(Formatting.GRAY)); super.appendTooltip(stack, world, tooltip, context); } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraMiningSpeedRingItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraMiningSpeedRingItem.java new file mode 100644 index 0000000000..ee935a9093 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraMiningSpeedRingItem.java @@ -0,0 +1,56 @@ +package de.dafuqs.spectrum.items.trinkets; + +import com.google.common.collect.Multimap; +import de.dafuqs.additionalentityattributes.AdditionalEntityAttributes; +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.energy.color.InkColors; +import de.dafuqs.spectrum.energy.storage.FixedSingleInkStorage; +import dev.emi.trinkets.api.SlotReference; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.UUID; + +public class ExtraMiningSpeedRingItem extends InkDrainTrinketItem { + + public ExtraMiningSpeedRingItem(Settings settings) { + super(settings, SpectrumCommon.locate("progression/unlock_ring_of_pursuit"), InkColors.MAGENTA, 13421772800L); // 2x dig speed + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + tooltip.add(Text.translatable("item.spectrum.ring_of_pursuit.tooltip").formatted(Formatting.GRAY)); + super.appendTooltip(stack, world, tooltip, context); + } + + @Override + public Multimap getModifiers(ItemStack stack, SlotReference slot, LivingEntity entity, UUID uuid) { + Multimap modifiers = super.getModifiers(stack, slot, entity, uuid); + + FixedSingleInkStorage inkStorage = getEnergyStorage(stack); + long storedInk = inkStorage.getEnergy(inkStorage.getStoredColor()); + double miningSpeedMod = getExtraMiningSpeed(storedInk); + if (miningSpeedMod != 0) { + modifiers.put(AdditionalEntityAttributes.DIG_SPEED, new EntityAttributeModifier(uuid, "spectrum:ring_of_pursuit", miningSpeedMod, EntityAttributeModifier.Operation.MULTIPLY_TOTAL)); + } + + return modifiers; + } + + public double getExtraMiningSpeed(long storedInk) { + if (storedInk < 100) { + return 0; + } else { + return 0.1 + 0.1 * (int) (Math.log(storedInk / 100) / Math.log(8)); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java index 3d460eceaf..cabe37ef1c 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/ExtraReachGlovesItem.java @@ -12,7 +12,6 @@ import net.minecraft.entity.attribute.EntityAttributeModifier; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -28,7 +27,7 @@ public ExtraReachGlovesItem(Settings settings) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { - tooltip.add(new TranslatableText("item.spectrum.gloves_of_dawns_grasp.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.gloves_of_dawns_grasp.tooltip").formatted(Formatting.GRAY)); super.appendTooltip(stack, world, tooltip, context); } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/GleamingPinItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/GleamingPinItem.java index 899b645d13..88f3d3709a 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/GleamingPinItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/GleamingPinItem.java @@ -18,7 +18,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; @@ -55,7 +54,7 @@ public static int getEffectRange(ItemStack stack) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.gleaming_pin.tooltip")); + tooltip.add(Text.translatable("item.spectrum.gleaming_pin.tooltip")); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/GlowVisionGogglesItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/GlowVisionGogglesItem.java index c0a6a821ce..131c8a987f 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/GlowVisionGogglesItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/GlowVisionGogglesItem.java @@ -13,7 +13,6 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import java.util.List; @@ -23,7 +22,7 @@ public class GlowVisionGogglesItem extends SpectrumTrinketItem { public static ItemStack COST = new ItemStack(Items.GLOW_INK_SAC, 1); public GlowVisionGogglesItem(Settings settings) { - super(settings, SpectrumCommon.locate("progression/unlock_glow_vision_helmet")); + super(settings, SpectrumCommon.locate("progression/unlock_glow_vision_goggles")); } @Override @@ -54,7 +53,7 @@ public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { @Override public void appendTooltip(ItemStack itemStack, World world, List tooltip, TooltipContext tooltipContext) { super.appendTooltip(itemStack, world, tooltip, tooltipContext); - tooltip.add(new TranslatableText("item.spectrum.glow_vision_helmet.tooltip")); + tooltip.add(Text.translatable("item.spectrum.glow_vision_goggles.tooltip")); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java index 29cedb592a..62be272a2d 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/InkDrainTrinketItem.java @@ -8,7 +8,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.minecraft.util.Rarity; @@ -35,17 +34,17 @@ public void appendTooltip(ItemStack stack, @Nullable World world, List too FixedSingleInkStorage inkStorage = getEnergyStorage(stack); long storedInk = inkStorage.getEnergy(inkStorage.getStoredColor()); - long nextStepInk; - int pow = 0; - do { - nextStepInk = (long) (100 * Math.pow(8, pow)); - pow++; - } while (storedInk > nextStepInk); - - if (nextStepInk == maxInk) { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_drain.tooltip.maxed_out").formatted(Formatting.GRAY)); + if (storedInk == maxInk) { + tooltip.add(Text.translatable("spectrum.tooltip.ink_drain.tooltip.maxed_out").formatted(Formatting.GRAY)); } else { - tooltip.add(new TranslatableText("spectrum.tooltip.ink_drain.tooltip.ink_for_next_step." + inkStorage.getStoredColor().toString(), Support.getShortenedNumberString(nextStepInk - storedInk)).formatted(Formatting.GRAY)); + long nextStepInk; + int pow = 0; + do { + nextStepInk = (long) (100 * Math.pow(8, pow)); + pow++; + } while (storedInk >= nextStepInk); + + tooltip.add(Text.translatable("spectrum.tooltip.ink_drain.tooltip.ink_for_next_step." + inkStorage.getStoredColor().toString(), Support.getShortenedNumberString(nextStepInk - storedInk)).formatted(Formatting.GRAY)); } } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/NeatRingItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/NeatRingItem.java index 04393c7431..1a97ee37e4 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/NeatRingItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/NeatRingItem.java @@ -6,23 +6,27 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import java.util.List; public class NeatRingItem extends SpectrumTrinketItem { - + public NeatRingItem(Settings settings) { super(settings, SpectrumCommon.locate("progression/unlock_neat_ring")); } - + @Environment(EnvType.CLIENT) @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.neat_ring.tooltip")); + tooltip.add(Text.translatable("item.spectrum.neat_ring.tooltip")); + } + + @Override + public boolean hasGlint(ItemStack stack) { + return true; } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/PotionPendantItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/PotionPendantItem.java index b987ba5c2a..dfb8d73342 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/PotionPendantItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/PotionPendantItem.java @@ -1,34 +1,29 @@ package de.dafuqs.spectrum.items.trinkets; -import com.google.common.collect.Lists; -import com.mojang.datafixers.util.Pair; -import de.dafuqs.spectrum.interfaces.PotionFillable; +import de.dafuqs.spectrum.energy.InkPowered; +import de.dafuqs.spectrum.energy.InkPoweredStatusEffectInstance; +import de.dafuqs.spectrum.items.PotionFillable; import dev.emi.trinkets.api.SlotReference; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.attribute.EntityAttribute; -import net.minecraft.entity.attribute.EntityAttributeModifier; import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionUtil; -import net.minecraft.text.LiteralText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.Map; public class PotionPendantItem extends SpectrumTrinketItem implements PotionFillable { - private final int TRIGGER_EVERY_X_TICKS = 200; - private final int EFFECT_DURATION = TRIGGER_EVERY_X_TICKS + 10; + private final static int TRIGGER_EVERY_X_TICKS = 200; + private final static int EFFECT_DURATION = TRIGGER_EVERY_X_TICKS + 10; - int maxEffectCount; - int maxAmplifier; + private final int maxEffectCount; + private final int maxAmplifier; public PotionPendantItem(Settings settings, int maxEffectCount, int maxAmplifier, Identifier unlockIdentifier) { super(settings, unlockIdentifier); @@ -39,60 +34,7 @@ public PotionPendantItem(Settings settings, int maxEffectCount, int maxAmplifier @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - - List effects = PotionUtil.getCustomPotionEffects(stack); - if (effects.size() > 0) { - List> attributeModifiers = Lists.newArrayList(); - for (StatusEffectInstance effect : effects) { - TranslatableText mutableText = new TranslatableText(effect.getTranslationKey()); - - if (effect.getAmplifier() > 0) { - mutableText = new TranslatableText("potion.withAmplifier", mutableText, new TranslatableText("potion.potency." + effect.getAmplifier())); - } - tooltip.add(mutableText.formatted(effect.getEffectType().getCategory().getFormatting())); - - Map map = effect.getEffectType().getAttributeModifiers(); - for (Map.Entry entityAttributeEntityAttributeModifierEntry : map.entrySet()) { - Map.Entry entry = entityAttributeEntityAttributeModifierEntry; - EntityAttributeModifier entityAttributeModifier = entry.getValue(); - EntityAttributeModifier entityAttributeModifier2 = new EntityAttributeModifier(entityAttributeModifier.getName(), effect.getEffectType().adjustModifierAmount(effect.getAmplifier(), entityAttributeModifier), entityAttributeModifier.getOperation()); - attributeModifiers.add(new Pair(entry.getKey(), entityAttributeModifier2)); - } - } - - if (!attributeModifiers.isEmpty()) { - tooltip.add(LiteralText.EMPTY); - tooltip.add((new TranslatableText("potion.whenDrank")).formatted(Formatting.DARK_PURPLE)); - - for (Pair entityAttributeEntityAttributeModifierPair : attributeModifiers) { - EntityAttributeModifier mutableText = entityAttributeEntityAttributeModifierPair.getSecond(); - double statusEffect = mutableText.getValue(); - double d; - if (mutableText.getOperation() != EntityAttributeModifier.Operation.MULTIPLY_BASE && mutableText.getOperation() != EntityAttributeModifier.Operation.MULTIPLY_TOTAL) { - d = mutableText.getValue(); - } else { - d = mutableText.getValue() * 100.0D; - } - - if (statusEffect > 0.0D) { - tooltip.add((new TranslatableText("attribute.modifier.plus." + mutableText.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(d), new TranslatableText((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.BLUE)); - } else if (statusEffect < 0.0D) { - d *= -1.0D; - tooltip.add((new TranslatableText("attribute.modifier.take." + mutableText.getOperation().getId(), ItemStack.MODIFIER_FORMAT.format(d), new TranslatableText((entityAttributeEntityAttributeModifierPair.getFirst()).getTranslationKey()))).formatted(Formatting.RED)); - } - } - } - } - - int maxEffectCount = maxEffectCount(); - if (effects.size() < maxEffectCount) { - if (maxEffectCount == 1) { - tooltip.add(new TranslatableText("item.spectrum.potion_pendant.tooltip_not_full_one")); - } else { - tooltip.add(new TranslatableText("item.spectrum.potion_pendant.tooltip_not_full_count", maxEffectCount)); - } - tooltip.add(new TranslatableText("item.spectrum.potion_pendant.tooltip_max_level").append(new TranslatableText("enchantment.level." + (this.maxAmplifier + 1)))); - } + appendPotionFillableTooltip(stack, tooltip, Text.translatable("item.spectrum.potion_pendant.when_worn"), false); } @Override @@ -114,15 +56,14 @@ public int maxEffectAmplifier() { public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { super.tick(stack, slot, entity); - if (!entity.getWorld().isClient && entity.getWorld().getTime() % TRIGGER_EVERY_X_TICKS == 0) { - giveEffects(stack, entity); + if (!entity.getWorld().isClient && entity.getWorld().getTime() % TRIGGER_EVERY_X_TICKS == 0 && entity instanceof PlayerEntity player) { + for (InkPoweredStatusEffectInstance inkPoweredEffect : InkPoweredStatusEffectInstance.getEffects(stack)) { + if(InkPowered.tryDrainEnergy(player, inkPoweredEffect.getInkCost())) { + StatusEffectInstance effect = inkPoweredEffect.getStatusEffectInstance(); + player.addStatusEffect(new StatusEffectInstance(effect.getEffectType(), EFFECT_DURATION, effect.getAmplifier(), effect.isAmbient(), effect.shouldShowParticles(), true)); + } + } } } - private void giveEffects(ItemStack stack, LivingEntity entity) { - List effects = PotionUtil.getCustomPotionEffects(stack); - for (StatusEffectInstance effect : effects) { - entity.addStatusEffect(new StatusEffectInstance(effect.getEffectType(), EFFECT_DURATION, effect.getAmplifier(), effect.isAmbient(), effect.shouldShowParticles(), true)); - } - } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/PuffCircletItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/PuffCircletItem.java index ccad5ed805..adbc101b3b 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/PuffCircletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/PuffCircletItem.java @@ -1,31 +1,30 @@ package de.dafuqs.spectrum.items.trinkets; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.*; +import net.minecraft.client.item.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; +import java.util.*; public class PuffCircletItem extends AzureDikeTrinketItem { - + public static final float PROJECTILE_DEFLECTION_COST = 2; public static final float FALL_DAMAGE_NEGATING_COST = 2; - + public PuffCircletItem(Settings settings) { super(settings, SpectrumCommon.locate("progression/unlock_ashen_circlet")); } - + @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.puff_circlet.tooltip")); - tooltip.add(new TranslatableText("item.spectrum.puff_circlet.tooltip2")); + tooltip.add(Text.translatable("item.spectrum.puff_circlet.tooltip")); + tooltip.add(Text.translatable("item.spectrum.puff_circlet.tooltip2")); } - + @Override public int maxAzureDike(ItemStack stack) { return 4; diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/RadiancePinItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/RadiancePinItem.java index 1476010524..d7f05782dc 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/RadiancePinItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/RadiancePinItem.java @@ -2,6 +2,7 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; import de.dafuqs.spectrum.registries.SpectrumBlocks; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; import dev.emi.trinkets.api.SlotReference; @@ -12,10 +13,12 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -35,7 +38,7 @@ public RadiancePinItem(Settings settings) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.radiance_pin.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.radiance_pin.tooltip").formatted(Formatting.GRAY)); } @Override @@ -61,15 +64,23 @@ public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { world.setBlockState(entity.getBlockPos(), LIGHT_BLOCK_STATE_WATER, 3); } else { world.setBlockState(entity.getBlockPos(), LIGHT_BLOCK_STATE, 3); - } - placed = true; - } - if (placed) { - SpectrumS2CPacketSender.sendSmallLightCreatedParticle(world, entity.getBlockPos()); - world.playSound(null, entity.getX() + 0.5, entity.getY() + 0.5, entity.getZ() + 0.5, SpectrumSoundEvents.LIGHT_STAFF_PLACE, SoundCategory.PLAYERS, 0.08F, 0.9F + world.random.nextFloat() * 0.2F); - } - } - } - } - + } + placed = true; + } + if (placed) { + sendSmallLightCreatedParticle((ServerWorld) world, entity.getBlockPos()); + world.playSound(null, entity.getX() + 0.5, entity.getY() + 0.5, entity.getZ() + 0.5, SpectrumSoundEvents.RADIANCE_STAFF_PLACE, SoundCategory.PLAYERS, 0.08F, 0.9F + world.random.nextFloat() * 0.2F); + } + } + } + } + + public static void sendSmallLightCreatedParticle(ServerWorld world, BlockPos blockPos) { + SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(world, Vec3d.ofCenter(blockPos), + SpectrumParticleTypes.SHIMMERSTONE_SPARKLE, + 4, + Vec3d.ZERO, + new Vec3d(0.1, 0.1, 0.1)); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/TakeOffBeltItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/TakeOffBeltItem.java index 7330f79057..652156526b 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/TakeOffBeltItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/TakeOffBeltItem.java @@ -22,7 +22,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; @@ -57,7 +56,7 @@ public static int getCurrentCharge(PlayerEntity playerEntity) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.take_off_belt.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.take_off_belt.tooltip").formatted(Formatting.GRAY)); } @Override @@ -78,7 +77,7 @@ public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { entity.getWorld().playSound(null, entity.getX(), entity.getY(), entity.getZ(), SpectrumSoundEvents.BLOCK_TOPAZ_BLOCK_HIT, SoundCategory.NEUTRAL, 1.0F, 1.0F); for (Vec3d vec : Support.VECTORS_16) { - SpectrumS2CPacketSender.playParticleWithExactOffsetAndVelocity((ServerWorld) entity.getWorld(), entity.getPos(), SpectrumParticleTypes.LIQUID_CRYSTAL_SPARKLE, 1, new Vec3d(0, 0, 0), vec.multiply(0.5)); + SpectrumS2CPacketSender.playParticleWithExactVelocity((ServerWorld) entity.getWorld(), entity.getPos(), SpectrumParticleTypes.LIQUID_CRYSTAL_SPARKLE, 1, vec.multiply(0.5)); } int powerEnchantmentLevel = EnchantmentHelper.getLevel(Enchantments.POWER, stack); diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/TidalCircletItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/TidalCircletItem.java index c5331edc85..134953ea8c 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/TidalCircletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/TidalCircletItem.java @@ -1,63 +1,67 @@ package de.dafuqs.spectrum.items.trinkets; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import dev.emi.trinkets.api.SlotReference; -import net.minecraft.client.item.TooltipContext; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.passive.AxolotlEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Formatting; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import dev.emi.trinkets.api.*; +import net.minecraft.client.item.*; +import net.minecraft.entity.*; +import net.minecraft.entity.effect.*; +import net.minecraft.entity.passive.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.List; -import java.util.Map; +import java.util.*; public class TidalCircletItem extends SpectrumTrinketItem { - private final int TRIGGER_EVERY_X_TICKS = 40; - private final int EFFECT_DURATION = TRIGGER_EVERY_X_TICKS + 10; + private final static int TRIGGER_EVERY_X_TICKS = 40; + private final static int EFFECT_DURATION = TRIGGER_EVERY_X_TICKS + 10; - private final int HEAL_AXOLOTLS_EVERY_X_TICKS = 160; - private final int MAX_AXOLOTL_DISTANCE = 12; - private final int AXOLOTL_HEALING = 2; + private final static int HEAL_AXOLOTLS_EVERY_X_TICKS = 160; + private final static int MAX_AXOLOTL_DISTANCE = 12; + private final static int AXOLOTL_HEALING = 2; public TidalCircletItem(Settings settings) { - super(settings, SpectrumCommon.locate("progression/unlock_tidal_circlet")); + super(settings, SpectrumCommon.locate("progression/unlock_weeping_circlet")); } - + @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.tidal_circlet.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.tidal_circlet.tooltip2").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.tidal_circlet.tooltip3").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.weeping_circlet.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.weeping_circlet.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.weeping_circlet.tooltip3").formatted(Formatting.GRAY)); + } + + @Override + public void onEquip(ItemStack stack, SlotReference slot, LivingEntity entity) { + super.onEquip(stack, slot, entity); + doEffects(entity); } @Override public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { super.tick(stack, slot, entity); - + doEffects(entity); + } + + private void doEffects(LivingEntity entity) { if (!entity.getWorld().isClient) { long time = entity.getWorld().getTime(); if (entity.isSubmergedInWater()) { if (time % TRIGGER_EVERY_X_TICKS == 0) { - giveEffects(entity); + entity.setAir(entity.getMaxAir()); + entity.addStatusEffect(new StatusEffectInstance(StatusEffects.DOLPHINS_GRACE, EFFECT_DURATION, 1, true, true)); + entity.addStatusEffect(new StatusEffectInstance(StatusEffects.CONDUIT_POWER, EFFECT_DURATION, 0, true, true)); } if (time % HEAL_AXOLOTLS_EVERY_X_TICKS == 0 && entity instanceof ServerPlayerEntity serverPlayerEntity) { healLovingAxolotls(serverPlayerEntity); @@ -66,19 +70,6 @@ public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { } } - private void giveEffects(@NotNull LivingEntity entity) { - entity.setAir(entity.getMaxAir()); - Map effects = entity.getActiveStatusEffects(); - if (!effects.containsKey(StatusEffects.DOLPHINS_GRACE) || effects.get(StatusEffects.DOLPHINS_GRACE).getDuration() < TRIGGER_EVERY_X_TICKS) { - entity.removeStatusEffect(StatusEffects.DOLPHINS_GRACE); - entity.addStatusEffect(new StatusEffectInstance(StatusEffects.DOLPHINS_GRACE, EFFECT_DURATION, 1, true, true)); - } - if (!effects.containsKey(StatusEffects.CONDUIT_POWER) || effects.get(StatusEffects.CONDUIT_POWER).getDuration() < TRIGGER_EVERY_X_TICKS) { - entity.removeStatusEffect(StatusEffects.CONDUIT_POWER); - entity.addStatusEffect(new StatusEffectInstance(StatusEffects.CONDUIT_POWER, EFFECT_DURATION, 0, true, true)); - } - } - private void healLovingAxolotls(@NotNull ServerPlayerEntity entity) { List nearbyAxolotls = entity.getWorld().getEntitiesByType(EntityType.AXOLOTL, Box.of(entity.getPos(), MAX_AXOLOTL_DISTANCE, MAX_AXOLOTL_DISTANCE, MAX_AXOLOTL_DISTANCE), LivingEntity::isAlive); for (AxolotlEntity axolotlEntity : nearbyAxolotls) { diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/TotemPendantItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/TotemPendantItem.java index 4bf4719618..c33d644acd 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/TotemPendantItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/TotemPendantItem.java @@ -6,7 +6,6 @@ import net.minecraft.client.item.TooltipContext; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; @@ -23,7 +22,7 @@ public TotemPendantItem(Settings settings) { @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.totem_pendant.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.totem_pendant.tooltip").formatted(Formatting.GRAY)); } diff --git a/src/main/java/de/dafuqs/spectrum/items/trinkets/WhispyCircletItem.java b/src/main/java/de/dafuqs/spectrum/items/trinkets/WhispyCircletItem.java index 2db8695b1f..21e0155bbc 100644 --- a/src/main/java/de/dafuqs/spectrum/items/trinkets/WhispyCircletItem.java +++ b/src/main/java/de/dafuqs/spectrum/items/trinkets/WhispyCircletItem.java @@ -12,7 +12,6 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.stat.Stats; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; @@ -29,21 +28,21 @@ public WhispyCircletItem(Settings settings) { super(settings, SpectrumCommon.locate("progression/unlock_whispy_circlet")); } - public static void removeSingleHarmfulStatusEffect(@NotNull LivingEntity entity) { + public static void removeSingleStatusEffect(@NotNull LivingEntity entity, StatusEffectCategory category) { Collection currentEffects = entity.getStatusEffects(); - if(currentEffects.size() == 0) { + if (currentEffects.size() == 0) { return; } - + List negativeEffects = new ArrayList<>(); - for(StatusEffectInstance statusEffectInstance : currentEffects) { + for (StatusEffectInstance statusEffectInstance : currentEffects) { StatusEffect effect = statusEffectInstance.getEffectType(); - if(effect.getCategory() == StatusEffectCategory.HARMFUL && !SpectrumStatusEffectTags.isUncurable(effect)) { + if (effect.getCategory() == category && !SpectrumStatusEffectTags.isUncurable(effect)) { negativeEffects.add(statusEffectInstance); } } - if(negativeEffects.size() == 0) { + if (negativeEffects.size() == 0) { return; } @@ -60,7 +59,7 @@ public static void removeNegativeStatusEffects(@NotNull LivingEntity entity) { } } - for(StatusEffect effect : effectsToRemove) { + for (StatusEffect effect : effectsToRemove) { entity.removeStatusEffect(effect); } } @@ -101,9 +100,9 @@ public static void preventPhantomSpawns(@NotNull ServerPlayerEntity serverPlayer @Override public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { super.appendTooltip(stack, world, tooltip, context); - tooltip.add(new TranslatableText("item.spectrum.whispy_circlet.tooltip").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.whispy_circlet.tooltip2").formatted(Formatting.GRAY)); - tooltip.add(new TranslatableText("item.spectrum.whispy_circlet.tooltip3").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.whispy_circlet.tooltip").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.whispy_circlet.tooltip2").formatted(Formatting.GRAY)); + tooltip.add(Text.translatable("item.spectrum.whispy_circlet.tooltip3").formatted(Formatting.GRAY)); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootConditionTypes.java b/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootConditionTypes.java index 13509591b2..3cb6868c61 100644 --- a/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootConditionTypes.java +++ b/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootConditionTypes.java @@ -8,27 +8,29 @@ import net.minecraft.util.registry.Registry; public class SpectrumLootConditionTypes { - - public static LootConditionType RANDOM_CHANCE_WITH_TREASURE_HUNTER; - - public static LootConditionType AXOLOTL_VARIANT_CONDITION; - public static LootConditionType SHULKER_COLOR_CONDITION; - public static LootConditionType FOX_TYPE_CONDITION; - public static LootConditionType PARROT_VARIANT_CONDITION; - public static LootConditionType MOOSHROOM_TYPE_CONDITION; - - private static LootConditionType register(String id, JsonSerializer serializer) { - return Registry.register(Registry.LOOT_CONDITION_TYPE, new Identifier(id), new LootConditionType(serializer)); - } - - public static void register() { - RANDOM_CHANCE_WITH_TREASURE_HUNTER = register("random_chance_with_treasure_hunter", new RandomChanceWithTreasureHunterLootCondition.Serializer()); - - FOX_TYPE_CONDITION = register("fox_type", new FoxTypeLootCondition.Serializer()); - AXOLOTL_VARIANT_CONDITION = register("axolotl_variant", new AxolotlVariantLootCondition.Serializer()); + + public static LootConditionType RANDOM_CHANCE_WITH_TREASURE_HUNTER; + + public static LootConditionType AXOLOTL_VARIANT_CONDITION; + public static LootConditionType SHULKER_COLOR_CONDITION; + public static LootConditionType FOX_TYPE_CONDITION; + public static LootConditionType PARROT_VARIANT_CONDITION; + public static LootConditionType MOOSHROOM_TYPE_CONDITION; + public static LootConditionType FROG_VARIANT_CONDITION; + + private static LootConditionType register(String id, JsonSerializer serializer) { + return Registry.register(Registry.LOOT_CONDITION_TYPE, new Identifier(id), new LootConditionType(serializer)); + } + + public static void register() { + RANDOM_CHANCE_WITH_TREASURE_HUNTER = register("random_chance_with_treasure_hunter", new RandomChanceWithTreasureHunterLootCondition.Serializer()); + + FOX_TYPE_CONDITION = register("fox_type", new FoxTypeLootCondition.Serializer()); + AXOLOTL_VARIANT_CONDITION = register("axolotl_variant", new AxolotlVariantLootCondition.Serializer()); SHULKER_COLOR_CONDITION = register("shulker_color", new ShulkerColorLootCondition.Serializer()); PARROT_VARIANT_CONDITION = register("parrot_variant", new ParrotVariantLootCondition.Serializer()); - MOOSHROOM_TYPE_CONDITION = register("mooshroom_type", new MooshroomTypeLootCondition.Serializer()); + MOOSHROOM_TYPE_CONDITION = register("mooshroom_type", new MooshroomTypeLootCondition.Serializer()); + FROG_VARIANT_CONDITION = register("frog_variant", new FrogVariantLootCondition.Serializer()); } } diff --git a/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootPoolModifiers.java b/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootPoolModifiers.java index e28b7e6120..6f03f5a968 100644 --- a/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootPoolModifiers.java +++ b/src/main/java/de/dafuqs/spectrum/loot/SpectrumLootPoolModifiers.java @@ -1,31 +1,22 @@ package de.dafuqs.spectrum.loot; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlock; -import de.dafuqs.spectrum.compat.gofish.GoFishCompat; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.mob_head.*; +import de.dafuqs.spectrum.compat.gofish.*; import de.dafuqs.spectrum.loot.conditions.*; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.fabricmc.fabric.api.loot.v2.LootTableEvents; -import net.minecraft.entity.passive.AxolotlEntity; -import net.minecraft.entity.passive.FoxEntity; -import net.minecraft.entity.passive.MooshroomEntity; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.loot.LootPool; -import net.minecraft.loot.condition.EntityPropertiesLootCondition; -import net.minecraft.loot.condition.RandomChanceLootCondition; -import net.minecraft.loot.context.LootContext; -import net.minecraft.loot.entry.ItemEntry; -import net.minecraft.loot.entry.LootTableEntry; -import net.minecraft.loot.provider.number.ConstantLootNumberProvider; -import net.minecraft.predicate.entity.EntityPredicate; -import net.minecraft.predicate.entity.FishingHookPredicate; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.fabric.api.loot.v2.*; +import net.minecraft.entity.passive.*; +import net.minecraft.item.*; +import net.minecraft.loot.*; +import net.minecraft.loot.condition.*; +import net.minecraft.loot.context.*; +import net.minecraft.loot.entry.*; +import net.minecraft.loot.provider.number.*; +import net.minecraft.predicate.entity.*; +import net.minecraft.util.*; -import java.util.HashMap; -import java.util.Map; +import java.util.*; public class SpectrumLootPoolModifiers { @@ -40,78 +31,81 @@ public class SpectrumLootPoolModifiers { // Spectrum head drops // ATTENTION: No specific enough loot tables exist for fox, axolotl, parrot and shulker variants. // Those are handled separately in setup() - put(new Identifier("entities/sheep/black"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_BLACK).asItem(), 0.01F)); - put(new Identifier("entities/sheep/blue"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_BLUE).asItem(), 0.01F)); - put(new Identifier("entities/sheep/brown"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_BROWN).asItem(), 0.01F)); - put(new Identifier("entities/sheep/cyan"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_CYAN).asItem(), 0.01F)); - put(new Identifier("entities/sheep/gray"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_GRAY).asItem(), 0.01F)); - put(new Identifier("entities/sheep/green"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_GREEN).asItem(), 0.01F)); - put(new Identifier("entities/sheep/light_blue"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_LIGHT_BLUE).asItem(), 0.01F)); - put(new Identifier("entities/sheep/light_gray"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_LIGHT_GRAY).asItem(), 0.01F)); - put(new Identifier("entities/sheep/lime"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_LIME).asItem(), 0.01F)); - put(new Identifier("entities/sheep/magenta"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_MAGENTA).asItem(), 0.01F)); - put(new Identifier("entities/sheep/orange"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_ORANGE).asItem(), 0.01F)); - put(new Identifier("entities/sheep/pink"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_PINK).asItem(), 0.01F)); - put(new Identifier("entities/sheep/purple"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_PURPLE).asItem(), 0.01F)); - put(new Identifier("entities/sheep/red"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_RED).asItem(), 0.01F)); - put(new Identifier("entities/sheep/white"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_WHITE).asItem(), 0.01F)); - put(new Identifier("entities/sheep/yellow"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_YELLOW).asItem(), 0.01F)); - put(new Identifier("entities/bat"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.BAT).asItem(), 0.01F)); - put(new Identifier("entities/blaze"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.BLAZE).asItem(), 0.01F)); - put(new Identifier("entities/cat"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CAT).asItem(), 0.01F)); - put(new Identifier("entities/cave_spider"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CAVE_SPIDER).asItem(), 0.01F)); - put(new Identifier("entities/chicken"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CHICKEN).asItem(), 0.01F)); - put(new Identifier("entities/cow"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.COW).asItem(), 0.01F)); - put(new Identifier("entities/donkey"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.DONKEY).asItem(), 0.01F)); - put(new Identifier("entities/drowned"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.DROWNED).asItem(), 0.01F)); - put(new Identifier("entities/elder_guardian"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ELDER_GUARDIAN).asItem(), 0.01F)); - put(new Identifier("entities/enderman"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ENDERMAN).asItem(), 0.01F)); - put(new Identifier("entities/endermite"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ENDERMITE).asItem(), 0.01F)); - put(new Identifier("entities/evoker"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.EVOKER).asItem(), 0.01F)); - put(new Identifier("entities/ghast"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GHAST).asItem(), 0.01F)); - put(new Identifier("entities/guardian"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GUARDIAN).asItem(), 0.01F)); - put(new Identifier("entities/hoglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.HOGLIN).asItem(), 0.01F)); - put(new Identifier("entities/horse"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.HORSE).asItem(), 0.01F)); - put(new Identifier("entities/husk"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.HUSK).asItem(), 0.01F)); - put(new Identifier("entities/illusioner"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ILLUSIONER).asItem(), 0.01F)); - put(new Identifier("entities/iron_golem"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.IRON_GOLEM).asItem(), 0.01F)); - put(new Identifier("entities/llama"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.LLAMA).asItem(), 0.01F)); - put(new Identifier("entities/magma_cube"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MAGMA_CUBE).asItem(), 0.01F)); - put(new Identifier("entities/mule"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MULE).asItem(), 0.01F)); - put(new Identifier("entities/ocelot"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.OCELOT).asItem(), 0.01F)); - put(new Identifier("entities/panda"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PANDA).asItem(), 0.01F)); - put(new Identifier("entities/phantom"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PHANTOM).asItem(), 0.01F)); - put(new Identifier("entities/pig"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PIG).asItem(), 0.01F)); - put(new Identifier("entities/piglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PIGLIN).asItem(), 0.01F)); - put(new Identifier("entities/polar_bear"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.POLAR_BEAR).asItem(), 0.01F)); - put(new Identifier("entities/pufferfish"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PUFFERFISH).asItem(), 0.01F)); - put(new Identifier("entities/rabbit"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.RABBIT).asItem(), 0.01F)); - put(new Identifier("entities/ravager"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.RAVAGER).asItem(), 0.01F)); - put(new Identifier("entities/salmon"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SALMON).asItem(), 0.01F)); - put(new Identifier("entities/silverfish"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SILVERFISH).asItem(), 0.01F)); - put(new Identifier("entities/slime"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SLIME).asItem(), 0.01F)); - put(new Identifier("entities/snow_golem"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SNOW_GOLEM).asItem(), 0.01F)); - put(new Identifier("entities/spider"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SPIDER).asItem(), 0.01F)); - put(new Identifier("entities/squid"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SQUID).asItem(), 0.01F)); - put(new Identifier("entities/stray"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.STRAY).asItem(), 0.01F)); - put(new Identifier("entities/strider"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.STRIDER).asItem(), 0.01F)); - put(new Identifier("entities/trader_llama"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.TRADER_LLAMA).asItem(), 0.01F)); - put(new Identifier("entities/turtle"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.TURTLE).asItem(), 0.01F)); - put(new Identifier("entities/vex"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.VEX).asItem(), 0.01F)); - put(new Identifier("entities/villager"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.VILLAGER).asItem(), 0.01F)); - put(new Identifier("entities/vindicator"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.VINDICATOR).asItem(), 0.01F)); - put(new Identifier("entities/wandering_trader"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WANDERING_TRADER).asItem(), 0.01F)); - put(new Identifier("entities/witch"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WITCH).asItem(), 0.01F)); + put(new Identifier("entities/sheep/black"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_BLACK).asItem(), 0.02F)); + put(new Identifier("entities/sheep/blue"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_BLUE).asItem(), 0.02F)); + put(new Identifier("entities/sheep/brown"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_BROWN).asItem(), 0.02F)); + put(new Identifier("entities/sheep/cyan"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_CYAN).asItem(), 0.02F)); + put(new Identifier("entities/sheep/gray"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_GRAY).asItem(), 0.02F)); + put(new Identifier("entities/sheep/green"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_GREEN).asItem(), 0.02F)); + put(new Identifier("entities/sheep/light_blue"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_LIGHT_BLUE).asItem(), 0.02F)); + put(new Identifier("entities/sheep/light_gray"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_LIGHT_GRAY).asItem(), 0.02F)); + put(new Identifier("entities/sheep/lime"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_LIME).asItem(), 0.02F)); + put(new Identifier("entities/sheep/magenta"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_MAGENTA).asItem(), 0.02F)); + put(new Identifier("entities/sheep/orange"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_ORANGE).asItem(), 0.02F)); + put(new Identifier("entities/sheep/pink"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_PINK).asItem(), 0.02F)); + put(new Identifier("entities/sheep/purple"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_PURPLE).asItem(), 0.02F)); + put(new Identifier("entities/sheep/red"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_RED).asItem(), 0.02F)); + put(new Identifier("entities/sheep/white"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_WHITE).asItem(), 0.02F)); + put(new Identifier("entities/sheep/yellow"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHEEP_YELLOW).asItem(), 0.02F)); + put(new Identifier("entities/bat"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.BAT).asItem(), 0.02F)); + put(new Identifier("entities/blaze"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.BLAZE).asItem(), 0.02F)); + put(new Identifier("entities/cat"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CAT).asItem(), 0.02F)); + put(new Identifier("entities/cave_spider"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CAVE_SPIDER).asItem(), 0.02F)); + put(new Identifier("entities/chicken"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CHICKEN).asItem(), 0.02F)); + put(new Identifier("entities/cow"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.COW).asItem(), 0.02F)); + put(new Identifier("entities/donkey"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.DONKEY).asItem(), 0.02F)); + put(new Identifier("entities/drowned"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.DROWNED).asItem(), 0.02F)); + put(new Identifier("entities/elder_guardian"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ELDER_GUARDIAN).asItem(), 0.02F)); + put(new Identifier("entities/enderman"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ENDERMAN).asItem(), 0.02F)); + put(new Identifier("entities/endermite"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ENDERMITE).asItem(), 0.02F)); + put(new Identifier("entities/evoker"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.EVOKER).asItem(), 0.02F)); + put(new Identifier("entities/ghast"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GHAST).asItem(), 0.02F)); + put(new Identifier("entities/guardian"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GUARDIAN).asItem(), 0.02F)); + put(new Identifier("entities/hoglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.HOGLIN).asItem(), 0.02F)); + put(new Identifier("entities/horse"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.HORSE).asItem(), 0.02F)); + put(new Identifier("entities/husk"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.HUSK).asItem(), 0.02F)); + put(new Identifier("entities/illusioner"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ILLUSIONER).asItem(), 0.02F)); + put(new Identifier("entities/iron_golem"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.IRON_GOLEM).asItem(), 0.02F)); + put(new Identifier("entities/llama"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.LLAMA).asItem(), 0.02F)); + put(new Identifier("entities/magma_cube"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MAGMA_CUBE).asItem(), 0.02F)); + put(new Identifier("entities/mule"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MULE).asItem(), 0.02F)); + put(new Identifier("entities/ocelot"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.OCELOT).asItem(), 0.02F)); + put(new Identifier("entities/panda"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PANDA).asItem(), 0.02F)); + put(new Identifier("entities/phantom"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PHANTOM).asItem(), 0.02F)); + put(new Identifier("entities/pig"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PIG).asItem(), 0.02F)); + put(new Identifier("entities/piglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PIGLIN).asItem(), 0.02F)); + put(new Identifier("entities/polar_bear"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.POLAR_BEAR).asItem(), 0.02F)); + put(new Identifier("entities/pufferfish"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PUFFERFISH).asItem(), 0.02F)); + put(new Identifier("entities/rabbit"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.RABBIT).asItem(), 0.02F)); + put(new Identifier("entities/ravager"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.RAVAGER).asItem(), 0.02F)); + put(new Identifier("entities/salmon"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SALMON).asItem(), 0.02F)); + put(new Identifier("entities/silverfish"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SILVERFISH).asItem(), 0.02F)); + put(new Identifier("entities/slime"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SLIME).asItem(), 0.02F)); + put(new Identifier("entities/snow_golem"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SNOW_GOLEM).asItem(), 0.02F)); + put(new Identifier("entities/spider"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SPIDER).asItem(), 0.02F)); + put(new Identifier("entities/squid"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SQUID).asItem(), 0.02F)); + put(new Identifier("entities/stray"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.STRAY).asItem(), 0.02F)); + put(new Identifier("entities/strider"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.STRIDER).asItem(), 0.02F)); + put(new Identifier("entities/trader_llama"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.TRADER_LLAMA).asItem(), 0.02F)); + put(new Identifier("entities/turtle"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.TURTLE).asItem(), 0.02F)); + put(new Identifier("entities/vex"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.VEX).asItem(), 0.02F)); + put(new Identifier("entities/villager"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.VILLAGER).asItem(), 0.02F)); + put(new Identifier("entities/vindicator"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.VINDICATOR).asItem(), 0.02F)); + put(new Identifier("entities/wandering_trader"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WANDERING_TRADER).asItem(), 0.02F)); + put(new Identifier("entities/witch"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WITCH).asItem(), 0.02F)); put(new Identifier("entities/wither"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WITHER).asItem(), 0.15F)); // he has 3 heads, after all! - put(new Identifier("entities/wolf"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WOLF).asItem(), 0.01F)); - put(new Identifier("entities/zoglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ZOGLIN).asItem(), 0.01F)); - put(new Identifier("entities/zombie_villager"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ZOMBIE_VILLAGER).asItem(), 0.01F)); - put(new Identifier("entities/zombified_piglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ZOMBIFIED_PIGLIN).asItem(), 0.01F)); - put(new Identifier("entities/bee"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.BEE).asItem(), 0.01F)); - put(new Identifier("entities/tropical_fish"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CLOWNFISH).asItem(), 0.01F)); - put(new Identifier("entities/goat"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GOAT).asItem(), 0.01F)); - put(new Identifier("entities/glow_squid"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GLOW_SQUID).asItem(), 0.01F)); - + put(new Identifier("entities/wolf"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WOLF).asItem(), 0.02F)); + put(new Identifier("entities/zoglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ZOGLIN).asItem(), 0.02F)); + put(new Identifier("entities/zombie_villager"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ZOMBIE_VILLAGER).asItem(), 0.02F)); + put(new Identifier("entities/zombified_piglin"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ZOMBIFIED_PIGLIN).asItem(), 0.02F)); + put(new Identifier("entities/bee"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.BEE).asItem(), 0.02F)); + put(new Identifier("entities/tropical_fish"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.CLOWNFISH).asItem(), 0.02F)); + put(new Identifier("entities/goat"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GOAT).asItem(), 0.02F)); + put(new Identifier("entities/glow_squid"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.GLOW_SQUID).asItem(), 0.02F)); + put(new Identifier("entities/warden"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.WARDEN).asItem(), 0.2F)); + put(new Identifier("entities/tadpole"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.TADPOLE).asItem(), 0.02F)); + put(new Identifier("entities/allay"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.ALLAY).asItem(), 0.02F)); + put(new Identifier("spectrum:entities/egg_laying_wooly_pig"), new TreasureHunterDropDefinition(SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.EGG_LAYING_WOOLY_PIG).asItem(), 0.1F)); }}; @@ -119,68 +113,74 @@ public static void setup() { LootTableEvents.MODIFY.register((resourceManager, lootManager, id, tableBuilder, source) -> { // Dungeon loot - if(id.equals(new Identifier("chests/simple_dungeon"))) { + if (id.equals(new Identifier("chests/simple_dungeon"))) { + /* TODO: add lockets to the loot pool, once it has a use tableBuilder.pool(new LootPool.Builder().rolls(ConstantLootNumberProvider.create(1)) .conditionally(RandomChanceLootCondition.builder(0.02F).build()) - .with(ItemEntry.builder(SpectrumItems.MYSTERIOUS_LOCKET).build())); + .with(ItemEntry.builder(SpectrumItems.MYSTERIOUS_LOCKET).build()));*/ - // Treasure hunter pools + // Treasure hunter pools } else if (trophyHunterLootPools.containsKey(id)) { TreasureHunterDropDefinition treasureHunterDropDefinition = trophyHunterLootPools.get(id); tableBuilder.pool(getLootPool(treasureHunterDropDefinition)); - // Some treasure hunter pools use custom loot conditions - // because vanillas are too generic (fox/snow fox both use "fox" loot table) + // Some treasure hunter pools use custom loot conditions + // because vanillas are too generic (fox/snow fox both use "fox" loot table) } else if (id.equals(new Identifier("entities/fox"))) { - tableBuilder.pool(getFoxLootPool(FoxEntity.Type.RED, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FOX).asItem(), 0.01F)); - tableBuilder.pool(getFoxLootPool(FoxEntity.Type.SNOW, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FOX_ARCTIC).asItem(), 0.01F)); + tableBuilder.pool(getFoxLootPool(FoxEntity.Type.RED, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FOX).asItem(), 0.02F)); + tableBuilder.pool(getFoxLootPool(FoxEntity.Type.SNOW, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FOX_ARCTIC).asItem(), 0.02F)); } else if (id.equals(new Identifier("entities/mooshroom"))) { - tableBuilder.pool(getMooshroomLootPool(MooshroomEntity.Type.BROWN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MOOSHROOM_BROWN).asItem(), 0.01F)); - tableBuilder.pool(getMooshroomLootPool(MooshroomEntity.Type.RED, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MOOSHROOM_RED).asItem(), 0.01F)); + tableBuilder.pool(getMooshroomLootPool(MooshroomEntity.Type.BROWN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MOOSHROOM_BROWN).asItem(), 0.02F)); + tableBuilder.pool(getMooshroomLootPool(MooshroomEntity.Type.RED, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.MOOSHROOM_RED).asItem(), 0.02F)); } else if (id.equals(new Identifier("entities/shulker"))) { - tableBuilder.pool(getShulkerLootPool(DyeColor.BLACK, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_BLACK).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.BLUE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_BLUE).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.BROWN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_BROWN).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.CYAN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_CYAN).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.GRAY, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_GRAY).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.GREEN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_GREEN).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.LIGHT_BLUE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_LIGHT_BLUE).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.LIGHT_GRAY, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_LIGHT_GRAY).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.LIME, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_LIME).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.MAGENTA, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_MAGENTA).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.ORANGE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_ORANGE).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.PINK, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_PINK).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.PURPLE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_PURPLE).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.RED, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_RED).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.WHITE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_WHITE).asItem(), 0.01F)); - tableBuilder.pool(getShulkerLootPool(DyeColor.YELLOW, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_YELLOW).asItem(), 0.01F)); + tableBuilder.pool(getShulkerLootPool(null, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.BLACK, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_BLACK).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.BLUE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_BLUE).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.BROWN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_BROWN).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.CYAN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_CYAN).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.GRAY, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_GRAY).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.GREEN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_GREEN).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.LIGHT_BLUE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_LIGHT_BLUE).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.LIGHT_GRAY, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_LIGHT_GRAY).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.LIME, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_LIME).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.MAGENTA, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_MAGENTA).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.ORANGE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_ORANGE).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.PINK, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_PINK).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.PURPLE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_PURPLE).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.RED, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_RED).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.WHITE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_WHITE).asItem(), 0.5F)); + tableBuilder.pool(getShulkerLootPool(DyeColor.YELLOW, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.SHULKER_YELLOW).asItem(), 0.5F)); } else if (id.equals(new Identifier("entities/axolotl"))) { - tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.BLUE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_BLUE).asItem(), 0.01F)); - tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.CYAN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_CYAN).asItem(), 0.01F)); - tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.GOLD, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_GOLD).asItem(), 0.01F)); - tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.LUCY, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_LEUCISTIC).asItem(), 0.01F)); - tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.WILD, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_BROWN).asItem(), 0.01F)); + tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.BLUE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_BLUE).asItem(), 0.02F)); + tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.CYAN, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_CYAN).asItem(), 0.02F)); + tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.GOLD, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_GOLD).asItem(), 0.02F)); + tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.LUCY, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_LEUCISTIC).asItem(), 0.02F)); + tableBuilder.pool(getAxolotlLootPool(AxolotlEntity.Variant.WILD, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.AXOLOTL_BROWN).asItem(), 0.02F)); } else if (id.equals(new Identifier("entities/parrot"))) { - tableBuilder.pool(getParrotLootPool(0, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_RED).asItem(), 0.01F)); - tableBuilder.pool(getParrotLootPool(1, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_BLUE).asItem(), 0.01F)); - tableBuilder.pool(getParrotLootPool(2, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_GREEN).asItem(), 0.01F)); - tableBuilder.pool(getParrotLootPool(3, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_CYAN).asItem(), 0.01F)); - tableBuilder.pool(getParrotLootPool(4, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_GRAY).asItem(), 0.01F)); - } else if(GoFishCompat.isLoaded()) { + tableBuilder.pool(getParrotLootPool(0, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_RED).asItem(), 0.02F)); + tableBuilder.pool(getParrotLootPool(1, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_BLUE).asItem(), 0.02F)); + tableBuilder.pool(getParrotLootPool(2, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_GREEN).asItem(), 0.02F)); + tableBuilder.pool(getParrotLootPool(3, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_CYAN).asItem(), 0.02F)); + tableBuilder.pool(getParrotLootPool(4, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.PARROT_GRAY).asItem(), 0.02F)); + } else if (id.equals(new Identifier("entities/frog"))) { + tableBuilder.pool(getFrogLootPool(FrogVariant.TEMPERATE, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FROG_TEMPERATE).asItem(), 0.02F)); + tableBuilder.pool(getFrogLootPool(FrogVariant.COLD, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FROG_COLD).asItem(), 0.02F)); + tableBuilder.pool(getFrogLootPool(FrogVariant.WARM, SpectrumBlocks.getMobHead(SpectrumSkullBlock.SpectrumSkullBlockType.FROG_WARM).asItem(), 0.02F)); + } else if (GoFishCompat.isLoaded()) { //Go-Fish compat: fishing of crates & go-fish fishies - if(id.equals(SpectrumCommon.locate("gameplay/fishing/lava/fishing"))) { + if (id.equals(SpectrumCommon.locate("gameplay/fishing/lava/fishing"))) { tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.NETHER_FISH_LOOT_TABLE_ID).weight(80).quality(-1).build())); - tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.NETHER_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().fishHook(FishingHookPredicate.of(true)).build())))); + tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.NETHER_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().typeSpecific(FishingHookPredicate.of(true)).build())))); } else if (id.equals(SpectrumCommon.locate("gameplay/fishing/end/fishing"))) { tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.END_FISH_LOOT_TABLE_ID).weight(90).quality(-1).build())); - tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.END_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().fishHook(FishingHookPredicate.of(true)).build())))); + tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.END_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().typeSpecific(FishingHookPredicate.of(true)).build())))); } else if (id.equals(SpectrumCommon.locate("gameplay/fishing/deeper_down/fishing"))) { - tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().fishHook(FishingHookPredicate.of(true)).build())))); + tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().typeSpecific(FishingHookPredicate.of(true)).build())))); } else if (id.equals(SpectrumCommon.locate("gameplay/fishing/mud/fishing"))) { - tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().fishHook(FishingHookPredicate.of(true)).build())))); + tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().typeSpecific(FishingHookPredicate.of(true)).build())))); } else if (id.equals(SpectrumCommon.locate("gameplay/fishing/liquid_crystal/fishing"))) { - tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().fishHook(FishingHookPredicate.of(true)).build())))); + tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().typeSpecific(FishingHookPredicate.of(true)).build())))); } else if (id.equals(SpectrumCommon.locate("gameplay/fishing/midnight_solution/fishing"))) { - tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().fishHook(FishingHookPredicate.of(true)).build())))); + tableBuilder.modifyPools(builder -> builder.with(LootTableEntry.builder(GoFishCompat.DEFAULT_CRATES_LOOT_TABLE_ID).weight(5).quality(2).conditionally(EntityPropertiesLootCondition.builder(LootContext.EntityTarget.THIS, new EntityPredicate.Builder().typeSpecific(FishingHookPredicate.of(true)).build())))); } } }); @@ -219,7 +219,7 @@ private static LootPool getShulkerLootPool(DyeColor dyeColor, Item item, float c .conditionally(ShulkerColorLootCondition.builder(dyeColor).build()) .with(ItemEntry.builder(item).build()).build(); } - + private static LootPool getAxolotlLootPool(AxolotlEntity.Variant variant, Item item, float chance) { return new LootPool.Builder() .rolls(ConstantLootNumberProvider.create(1)) @@ -227,7 +227,15 @@ private static LootPool getAxolotlLootPool(AxolotlEntity.Variant variant, Item i .conditionally(AxolotlVariantLootCondition.builder(variant).build()) .with(ItemEntry.builder(item).build()).build(); } - + + private static LootPool getFrogLootPool(FrogVariant variant, Item item, float chance) { + return new LootPool.Builder() + .rolls(ConstantLootNumberProvider.create(1)) + .conditionally(RandomChanceWithTreasureHunterLootCondition.builder(chance, item).build()) + .conditionally(FrogVariantLootCondition.builder(variant).build()) + .with(ItemEntry.builder(item).build()).build(); + } + private static LootPool getParrotLootPool(int variant, Item item, float chance) { return new LootPool.Builder() .rolls(ConstantLootNumberProvider.create(1)) @@ -235,7 +243,7 @@ private static LootPool getParrotLootPool(int variant, Item item, float chance) .conditionally(ParrotVariantLootCondition.builder(variant).build()) .with(ItemEntry.builder(item).build()).build(); } - + private static class TreasureHunterDropDefinition { public Item skullItem; public float treasureHunterMultiplier; diff --git a/src/main/java/de/dafuqs/spectrum/loot/conditions/FrogVariantLootCondition.java b/src/main/java/de/dafuqs/spectrum/loot/conditions/FrogVariantLootCondition.java new file mode 100644 index 0000000000..30c034c7cb --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/loot/conditions/FrogVariantLootCondition.java @@ -0,0 +1,61 @@ +package de.dafuqs.spectrum.loot.conditions; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonObject; +import com.google.gson.JsonSerializationContext; +import de.dafuqs.spectrum.loot.SpectrumLootConditionTypes; +import net.minecraft.entity.Entity; +import net.minecraft.entity.passive.FrogEntity; +import net.minecraft.entity.passive.FrogVariant; +import net.minecraft.loot.condition.LootCondition; +import net.minecraft.loot.condition.LootConditionType; +import net.minecraft.loot.context.LootContext; +import net.minecraft.loot.context.LootContextParameters; +import net.minecraft.util.Identifier; +import net.minecraft.util.JsonHelper; +import net.minecraft.util.JsonSerializer; +import net.minecraft.util.registry.Registry; + +public class FrogVariantLootCondition implements LootCondition { + + FrogVariant variant; + + private FrogVariantLootCondition(FrogVariant variant) { + this.variant = variant; + } + + public static Builder builder(FrogVariant variant) { + return () -> new FrogVariantLootCondition(variant); + } + + @Override + public LootConditionType getType() { + return SpectrumLootConditionTypes.FROG_VARIANT_CONDITION; + } + + @Override + public boolean test(LootContext lootContext) { + Entity entity = lootContext.get(LootContextParameters.THIS_ENTITY); + if (entity instanceof FrogEntity frogEntity) { + return frogEntity.getVariant().equals(variant); + } else { + return false; + } + } + + public static class Serializer implements JsonSerializer { + public Serializer() { + } + + public void toJson(JsonObject jsonObject, FrogVariantLootCondition frogVariantLootCondition, JsonSerializationContext jsonSerializationContext) { + jsonObject.addProperty("frog_variant", String.valueOf(Registry.FROG_VARIANT.getId(frogVariantLootCondition.variant))); + } + + public FrogVariantLootCondition fromJson(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) { + String variantString = JsonHelper.getString(jsonObject, "frog_variant"); + FrogVariant variant = Registry.FROG_VARIANT.get(Identifier.tryParse(variantString)); + return new FrogVariantLootCondition(variant); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/loot/conditions/ShulkerColorLootCondition.java b/src/main/java/de/dafuqs/spectrum/loot/conditions/ShulkerColorLootCondition.java index 6cfbef3d2c..9872cba65e 100644 --- a/src/main/java/de/dafuqs/spectrum/loot/conditions/ShulkerColorLootCondition.java +++ b/src/main/java/de/dafuqs/spectrum/loot/conditions/ShulkerColorLootCondition.java @@ -1,35 +1,27 @@ package de.dafuqs.spectrum.loot.conditions; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import de.dafuqs.spectrum.loot.SpectrumLootConditionTypes; -import net.minecraft.entity.Entity; -import net.minecraft.entity.mob.ShulkerEntity; -import net.minecraft.loot.condition.LootCondition; -import net.minecraft.loot.condition.LootConditionType; -import net.minecraft.loot.context.LootContext; -import net.minecraft.loot.context.LootContextParameters; -import net.minecraft.util.DyeColor; -import net.minecraft.util.JsonHelper; +import com.google.gson.*; +import de.dafuqs.spectrum.loot.*; +import net.minecraft.entity.*; +import net.minecraft.entity.mob.*; +import net.minecraft.loot.condition.*; +import net.minecraft.loot.context.*; import net.minecraft.util.JsonSerializer; -import org.jetbrains.annotations.NotNull; +import net.minecraft.util.*; +import org.jetbrains.annotations.*; public class ShulkerColorLootCondition implements LootCondition { - - @NotNull - DyeColor dyeColor; - - private ShulkerColorLootCondition(@NotNull DyeColor dyeColor) { + + private final @Nullable DyeColor dyeColor; + + private ShulkerColorLootCondition(@Nullable DyeColor dyeColor) { this.dyeColor = dyeColor; } - + public static Builder builder(DyeColor dyeColor) { - return () -> { - return new ShulkerColorLootCondition(dyeColor); - }; + return () -> new ShulkerColorLootCondition(dyeColor); } - + @Override public LootConditionType getType() { return SpectrumLootConditionTypes.SHULKER_COLOR_CONDITION; @@ -39,11 +31,11 @@ public LootConditionType getType() { public boolean test(LootContext lootContext) { Entity entity = lootContext.get(LootContextParameters.THIS_ENTITY); if (entity instanceof ShulkerEntity) { - DyeColor dyeColor = ((ShulkerEntity) entity).getColor(); - if (dyeColor == null) { - return this.dyeColor.equals(DyeColor.PURPLE); + @Nullable DyeColor shulkerColor = ((ShulkerEntity) entity).getColor(); + if (this.dyeColor == null) { + return shulkerColor == null; } else { - return this.dyeColor.equals(dyeColor); + return this.dyeColor.equals(shulkerColor); } } else { return false; @@ -55,11 +47,16 @@ public Serializer() { } public void toJson(JsonObject jsonObject, ShulkerColorLootCondition shulkerColorLootCondition, JsonSerializationContext jsonSerializationContext) { - jsonObject.addProperty("color", shulkerColorLootCondition.dyeColor.getName()); + if (shulkerColorLootCondition.dyeColor != null) { + jsonObject.addProperty("color", shulkerColorLootCondition.dyeColor.getName()); + } } public ShulkerColorLootCondition fromJson(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) { - String dyeColorString = JsonHelper.getString(jsonObject, "color"); + String dyeColorString = JsonHelper.getString(jsonObject, "color", ""); + if (dyeColorString.isEmpty()) { + new ShulkerColorLootCondition(null); + } return new ShulkerColorLootCondition(DyeColor.byName(dyeColorString, DyeColor.PURPLE)); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/AbstractHorseEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/AbstractHorseEntityMixin.java new file mode 100644 index 0000000000..c5a0fd4a8d --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/AbstractHorseEntityMixin.java @@ -0,0 +1,59 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.helpers.Support; +import de.dafuqs.spectrum.interfaces.PlayerOwned; +import de.dafuqs.spectrum.items.GravitableItem; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.passive.AbstractDonkeyEntity; +import net.minecraft.entity.passive.AbstractHorseEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.inventory.SimpleInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.world.ServerWorld; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(AbstractHorseEntity.class) +public abstract class AbstractHorseEntityMixin { + + @Shadow + protected SimpleInventory items; + + @Inject(at = @At("HEAD"), method = "tick()V") + public void tick(CallbackInfo callbackInfo) { + if ((Object) this instanceof AbstractDonkeyEntity thisEntity && thisEntity.world instanceof ServerWorld) { + + if (thisEntity.hasChest()) { + SimpleInventory var1 = this.items; + + double addedGravity = 0; + for (int i = 0; i < var1.size(); i++) { + ItemStack itemStack = var1.getStack(i); + if (!itemStack.isEmpty() && (itemStack.getItem() instanceof GravitableItem)) { + addedGravity += ((GravitableItem) itemStack.getItem()).applyGravityEffect(itemStack, thisEntity.getEntityWorld(), thisEntity); + } + } + + // about 3.1 stacks of paltaeria fragments will send an animal flying + // => trigger a hidden advancement + if (addedGravity > 0.081 && thisEntity.world.getTime() % 20 == 0) { + PlayerEntity ownerPlayerEntity = PlayerOwned.getPlayerEntityIfOnline(thisEntity.getOwnerUuid()); + if (ownerPlayerEntity != null) { + Support.grantAdvancementCriterion((ServerPlayerEntity) ownerPlayerEntity, "lategame/put_too_many_low_gravity_blocks_into_animal", "gravity"); + } + + // take damage when at height heights + // otherwise the animal would just be floating forever + if (thisEntity.getPos().y > thisEntity.getEntityWorld().getHeight() + 1000) { + thisEntity.damage(DamageSource.OUT_OF_WORLD, 10); + } + } + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ApplyBonusLootFunctionMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ApplyBonusLootFunctionMixin.java index 332bf1be94..456d1d6625 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ApplyBonusLootFunctionMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ApplyBonusLootFunctionMixin.java @@ -19,8 +19,12 @@ @Mixin(net.minecraft.loot.function.ApplyBonusLootFunction.class) public abstract class ApplyBonusLootFunctionMixin { - @Shadow @Final Enchantment enchantment; - @Shadow @Final ApplyBonusLootFunction.Formula formula; + @Shadow + @Final + Enchantment enchantment; + @Shadow + @Final + ApplyBonusLootFunction.Formula formula; @ModifyVariable(method = "process(Lnet/minecraft/item/ItemStack;Lnet/minecraft/loot/context/LootContext;)Lnet/minecraft/item/ItemStack;", at = @At("STORE"), ordinal = 1) public int spectrum$rerollBonusLoot(int oldValue, ItemStack stack, LootContext context) { @@ -30,9 +34,9 @@ public abstract class ApplyBonusLootFunctionMixin { Entity entity = context.get(LootContextParameters.THIS_ENTITY); if (itemStack != null && entity instanceof LivingEntity livingEntity) { int enchantmentLevel = EnchantmentHelper.getLevel(this.enchantment, itemStack); - if(enchantmentLevel > 0) { + if (enchantmentLevel > 0) { StatusEffectInstance effect = livingEntity.getStatusEffect(SpectrumStatusEffects.ANOTHER_ROLL); - if(effect != null) { + if (effect != null) { int rollCount = effect.getAmplifier() + 1; int highestRoll = oldValue; for (int i = 0; i < rollCount; i++) { diff --git a/src/main/java/de/dafuqs/spectrum/mixin/BlockMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/BlockMixin.java index 74509b2106..cdca672e90 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/BlockMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/BlockMixin.java @@ -33,9 +33,8 @@ import java.util.List; import java.util.Map; -// increased priority, cause https://github.com/Luligabi1/Incantationem/blob/b87d864cba60601c78c70c9999b6df37cce9fd03/src/main/java/me/luligabi/incantationem/mixin/BlockMixin.java#L60 would cancel the spectrum$getDroppedStacks call -// the use of @ModifyReturnValue ensues both end up compatible as soon as both mods use it -@Mixin(value = Block.class, priority = 999) +// the use of mixin extras @ModifyReturnValue ensues mods end up compatible when mods use it +@Mixin(value = Block.class) public abstract class BlockMixin { PlayerEntity spectrum$breakingPlayer; @@ -49,16 +48,16 @@ public abstract class BlockMixin { if (enchantmentMap.containsKey(SpectrumEnchantments.VOIDING)) { world.spawnParticles(ParticleTypes.SMOKE, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 10, 0.5, 0.5, 0.5, 0.05); droppedStacks.clear(); - // Resonance: drop itself - } else if(enchantmentMap.containsKey(SpectrumEnchantments.RESONANCE) && (state.isIn(SpectrumBlockTags.RESONANCE_HARVESTABLES) || state.getBlock() instanceof InfestedBlock) && SpectrumEnchantments.RESONANCE.canEntityUse(entity)) { + // Resonance: drop itself + } else if (enchantmentMap.containsKey(SpectrumEnchantments.RESONANCE) && (state.isIn(SpectrumBlockTags.RESONANCE_HARVESTABLES) || state.getBlock() instanceof InfestedBlock) && SpectrumEnchantments.RESONANCE.canEntityUse(entity)) { droppedStacks.clear(); droppedStacks.add(state.getBlock().asItem().getDefaultStack()); } if (droppedStacks.size() > 0) { // Resonance enchant: grant different drops for some items - if(enchantmentMap.containsKey(SpectrumEnchantments.RESONANCE) && SpectrumEnchantments.RESONANCE.canEntityUse(entity)) { - for(int i = 0; i < droppedStacks.size(); i++) { + if (enchantmentMap.containsKey(SpectrumEnchantments.RESONANCE) && SpectrumEnchantments.RESONANCE.canEntityUse(entity)) { + for (int i = 0; i < droppedStacks.size(); i++) { droppedStacks.set(i, ResonanceDropsDataLoader.applyResonance(droppedStacks.get(i))); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/BrewingRecipeRegistryMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/BrewingRecipeRegistryMixin.java index 1c1357868c..09162f89d1 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/BrewingRecipeRegistryMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/BrewingRecipeRegistryMixin.java @@ -16,7 +16,7 @@ public abstract class BrewingRecipeRegistryMixin { @Inject(method = "hasRecipe(Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)Z", at = @At("HEAD"), cancellable = true) private static void spectrum$disallowPigmentPotionInBrewingStand(ItemStack input, ItemStack ingredient, CallbackInfoReturnable cir) { Potion potion = PotionUtil.getPotion(input); - if(potion == SpectrumPotions.PIGMENT_POTION) { + if (potion == SpectrumPotions.PIGMENT_POTION) { cir.setReturnValue(false); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/BuddingAmethystBlockMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/BuddingAmethystBlockMixin.java index 662c321cf5..f72c82e306 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/BuddingAmethystBlockMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/BuddingAmethystBlockMixin.java @@ -8,23 +8,22 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.random.Random; 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.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import java.util.Random; - @Mixin(BuddingAmethystBlock.class) public abstract class BuddingAmethystBlockMixin { - @Inject(method = "randomTick(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Ljava/util/Random;)V", + @Inject(method = "randomTick(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/random/Random;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ServerWorld;setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;)Z", shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD) public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random, CallbackInfo ci, Direction direction, BlockPos offsetPos, BlockState originalOffsetState, Block blockToGrow, BlockState blockStateToGrow) { if (blockStateToGrow.isIn(SpectrumBlockTags.CRYSTAL_APOTHECARY_HARVESTABLE)) { - world.emitGameEvent(SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, offsetPos); + world.emitGameEvent(null, SpectrumGameEvents.CRYSTAL_APOTHECARY_HARVESTABLE_GROWN, offsetPos); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ChunkNoiseSamplerMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ChunkNoiseSamplerMixin.java index 24731e3a29..7671e68aa0 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ChunkNoiseSamplerMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ChunkNoiseSamplerMixin.java @@ -3,15 +3,12 @@ import com.google.common.collect.ImmutableList; import de.dafuqs.spectrum.deeper_down.DDOreVeinSampler; import net.minecraft.block.Blocks; -import net.minecraft.world.gen.chunk.AquiferSampler; -import net.minecraft.world.gen.chunk.Blender; -import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; -import net.minecraft.world.gen.chunk.ChunkNoiseSampler; +import net.minecraft.world.gen.chunk.*; import net.minecraft.world.gen.densityfunction.DensityFunction; import net.minecraft.world.gen.densityfunction.DensityFunctionTypes; +import net.minecraft.world.gen.noise.NoiseConfig; import net.minecraft.world.gen.noise.NoiseRouter; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -20,14 +17,12 @@ @Mixin(ChunkNoiseSampler.class) public abstract class ChunkNoiseSamplerMixin { - @Shadow protected abstract DensityFunction method_40529(DensityFunction densityFunction); - - @Inject(method = "(IIILnet/minecraft/world/gen/noise/NoiseRouter;IILnet/minecraft/world/gen/densityfunction/DensityFunctionTypes$class_7050;Lnet/minecraft/world/gen/chunk/ChunkGeneratorSettings;Lnet/minecraft/world/gen/chunk/AquiferSampler$FluidLevelSampler;Lnet/minecraft/world/gen/chunk/Blender;)V", + @Inject(method = "(ILnet/minecraft/world/gen/noise/NoiseConfig;IILnet/minecraft/world/gen/chunk/GenerationShapeConfig;Lnet/minecraft/world/gen/densityfunction/DensityFunctionTypes$Beardifying;Lnet/minecraft/world/gen/chunk/ChunkGeneratorSettings;Lnet/minecraft/world/gen/chunk/AquiferSampler$FluidLevelSampler;Lnet/minecraft/world/gen/chunk/Blender;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/gen/chunk/ChunkGeneratorSettings;oreVeins()Z"), locals = LocalCapture.CAPTURE_FAILHARD) - public void randomTick(int horizontalSize, int height, int minimumY, NoiseRouter noiseRouter, int x, int z, DensityFunctionTypes.class_7050 noiseType, ChunkGeneratorSettings chunkGeneratorSettings, AquiferSampler.FluidLevelSampler fluidLevelSampler, Blender blender, CallbackInfo callbackInfo, ImmutableList.Builder builder) { - if (chunkGeneratorSettings.defaultBlock() == Blocks.DEEPSLATE.getDefaultState()) { - builder.add(DDOreVeinSampler.create(noiseRouter.veinToggle().apply(this::method_40529), noiseRouter.veinRidged().apply(this::method_40529), noiseRouter.veinGap().apply(this::method_40529), noiseRouter.oreVeinsPositionalRandomFactory())); + public void spectrum$init(int horizontalCellCount, NoiseConfig noiseConfig, int startX, int startZ, GenerationShapeConfig generationShapeConfig, DensityFunctionTypes.Beardifying beardifying, ChunkGeneratorSettings chunkGeneratorSettings, AquiferSampler.FluidLevelSampler fluidLevelSampler, Blender blender, CallbackInfo ci, NoiseRouter noiseRouter, NoiseRouter noiseRouter2, ImmutableList.Builder builder, DensityFunction densityFunction) { + if (chunkGeneratorSettings.defaultBlock() == Blocks.DEEPSLATE.getDefaultState() && chunkGeneratorSettings.generationShapeConfig().minimumY() == -448) { + builder.add(DDOreVeinSampler.create(noiseRouter.veinToggle(), noiseRouter.veinRidged(), noiseRouter.veinGap(), noiseConfig.getOreRandomDeriver())); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/EndermanEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/EndermanEntityMixin.java index 0f11f0c8a9..5ffdc93d9d 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/EndermanEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/EndermanEntityMixin.java @@ -5,6 +5,7 @@ import net.minecraft.block.BlockState; import net.minecraft.entity.mob.EndermanEntity; import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -14,12 +15,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import java.util.Random; - @Mixin(EndermanEntity.class) public abstract class EndermanEntityMixin { - BlockState carriedBlockState = SpectrumBlocks.ENDER_TREASURE.getDefaultState(); + BlockState carriedBlockState = SpectrumBlocks.RADIATING_ENDER.getDefaultState(); @Shadow @Nullable @@ -48,7 +47,7 @@ private void init(CallbackInfo info) { @Inject(at = @At("RETURN"), method = "cannotDespawn()Z", cancellable = true) public void cannotDespawn(CallbackInfoReturnable cir) { - if (cir.getReturnValue() && this.getCarriedBlock() != null && this.getCarriedBlock().isOf(SpectrumBlocks.ENDER_TREASURE)) { + if (cir.getReturnValue() && this.getCarriedBlock() != null && this.getCarriedBlock().isOf(SpectrumBlocks.RADIATING_ENDER)) { cir.setReturnValue(false); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java index c7a4fecacd..d25d2a0c33 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/EntityApplyFluidsMixin.java @@ -27,7 +27,8 @@ public abstract class EntityApplyFluidsMixin { @Shadow private Set> submergedFluidTag; - @Shadow public abstract void readNbt(NbtCompound nbt); + @Shadow + public abstract void readNbt(NbtCompound nbt); @Inject(method = "isSubmergedIn(Lnet/minecraft/tag/TagKey;)Z", at = @At("RETURN"), cancellable = true) public void isSubmergedIn(TagKey fluidTag, CallbackInfoReturnable cir) { @@ -51,8 +52,8 @@ private boolean isInFluid(FluidState fluidState, TagKey tag) { @ModifyArg(method = "onSwimmingStart()V", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;addParticle(Lnet/minecraft/particle/ParticleEffect;DDDDDD)V"), index = 0) private ParticleEffect spectrum$modifySwimmingStartParticles(ParticleEffect particleEffect) { - Fluid fluid = ((Entity)(Object) this).world.getFluidState(((Entity)(Object) this).getBlockPos()).getFluid(); - if(fluid instanceof SpectrumFluid spectrumFluid) { + Fluid fluid = ((Entity) (Object) this).world.getFluidState(((Entity) (Object) this).getBlockPos()).getFluid(); + if (fluid instanceof SpectrumFluid spectrumFluid) { return spectrumFluid.getSplashParticle(); } return particleEffect; diff --git a/src/main/java/de/dafuqs/spectrum/mixin/EntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/EntityMixin.java index 412111f0d7..33159d974b 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/EntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/EntityMixin.java @@ -7,14 +7,14 @@ 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.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Entity.class) public abstract class EntityMixin { @Inject(method = "onKilledOther", at = @At("HEAD")) - private void spectrum$rememberKillOther(ServerWorld world, LivingEntity other, CallbackInfo ci) { - if((Object) this instanceof LivingEntity livingEntity && !livingEntity.getWorld().isClient) { + private void spectrum$rememberKillOther(ServerWorld world, LivingEntity other, CallbackInfoReturnable cir) { + if ((Object) this instanceof LivingEntity livingEntity && !livingEntity.getWorld().isClient) { LastKillComponent.rememberKillTick(livingEntity, livingEntity.getWorld().getTime()); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/EntityTypeMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/EntityTypeMixin.java index ca93659fe3..4895ccbe51 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/EntityTypeMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/EntityTypeMixin.java @@ -12,7 +12,7 @@ public abstract class EntityTypeMixin { @Inject(at = @At("RETURN"), method = "alwaysUpdateVelocity()Z", cancellable = true) public void alwaysUpdateVelocity(CallbackInfoReturnable cir) { - if (cir.getReturnValue() && ((Object) this == SpectrumEntityTypes.INVISIBLE_ITEM_FRAME || (Object) this == SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME)) { + if (cir.getReturnValue() && ((Object) this == SpectrumEntityTypes.PHANTOM_FRAME || (Object) this == SpectrumEntityTypes.GLOW_PHANTOM_FRAME)) { cir.setReturnValue(false); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ExplosionMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ExplosionMixin.java new file mode 100644 index 0000000000..7b648b4712 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/ExplosionMixin.java @@ -0,0 +1,25 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.entity.damage.*; +import net.minecraft.world.explosion.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; + +@Mixin(Explosion.class) +public class ExplosionMixin { + + @Shadow + @Final + private DamageSource damageSource; + + @Inject(method = "affectWorld(Z)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/AbstractFireBlock;getState(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState;")) + private void spectrum$modifyExplosion(boolean particles, CallbackInfo ci) { + if (this.damageSource == SpectrumDamageSources.INCANDESCENCE) { + PrimordialFireBlock.EXPLOSION_CAUSES_PRIMORDIAL_FIRE_FLAG = true; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/FirstStrikeEnchantmentMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/FirstStrikeEnchantmentMixin.java index 6c09728c20..17ee3f1bd3 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/FirstStrikeEnchantmentMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/FirstStrikeEnchantmentMixin.java @@ -22,7 +22,7 @@ public float applyAdditionalFirstStrikeEnchantmentDamage(float amount, DamageSou if (amount != 0F && target.getHealth() == target.getMaxHealth()) { ItemStack mainHandStack = livingAttacker.getMainHandStack(); int level = SpectrumEnchantmentHelper.getUsableLevel(SpectrumEnchantments.FIRST_STRIKE, mainHandStack, livingAttacker); - if(level > 0) { + if (level > 0) { float additionalDamage = getAdditionalFirstStrikeEnchantmentDamage(level); amount += additionalDamage; } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/FishingHookPredicateMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/FishingHookPredicateMixin.java index be3b3d1412..cfd148ecde 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/FishingHookPredicateMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/FishingHookPredicateMixin.java @@ -3,6 +3,8 @@ import de.dafuqs.spectrum.entity.entity.SpectrumFishingBobberEntity; import net.minecraft.entity.Entity; import net.minecraft.predicate.entity.FishingHookPredicate; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -11,9 +13,9 @@ @Mixin(FishingHookPredicate.class) public abstract class FishingHookPredicateMixin { - @Inject(method = "test(Lnet/minecraft/entity/Entity;)Z", at = @At(value = "HEAD"), cancellable = true) - public void spectrum$test(Entity entity, CallbackInfoReturnable cir) { - if ((Object) this != FishingHookPredicate.ANY && entity instanceof SpectrumFishingBobberEntity spectrumFishingBobberEntity && spectrumFishingBobberEntity.isInTheOpen()) { + @Inject(method = "test(Lnet/minecraft/entity/Entity;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/Vec3d;)Z", at = @At(value = "HEAD"), cancellable = true) + public void spectrum$test(Entity entity, ServerWorld world, Vec3d pos, CallbackInfoReturnable cir) { + if (this != FishingHookPredicate.ANY && entity instanceof SpectrumFishingBobberEntity spectrumFishingBobberEntity && spectrumFishingBobberEntity.isInTheOpen()) { cir.setReturnValue(true); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/GeodesGenerateWithGemstoneOresMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/GeodesGenerateWithGemstoneOresMixin.java index 3a22687896..f71cfdc050 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/GeodesGenerateWithGemstoneOresMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/GeodesGenerateWithGemstoneOresMixin.java @@ -1,21 +1,16 @@ package de.dafuqs.spectrum.mixin; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.tag.BlockTags; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.GeodeFeature; -import net.minecraft.world.gen.feature.GeodeFeatureConfig; -import net.minecraft.world.gen.feature.util.FeatureContext; -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 java.util.Random; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.tag.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; @Mixin(GeodeFeature.class) public abstract class GeodesGenerateWithGemstoneOresMixin { @@ -37,6 +32,7 @@ private void generateGemstoneOres(FeatureContext context) { if (gemBlock != null) { BlockState oreBlockState = getGemstoneOreForGeodeBlock(gemBlock); if (oreBlockState != null) { // do not handle other modded geodes + BlockState blackslagOreBlockState = getGemstoneBlackslagOreForGeodeBlock(gemBlock); BlockState deepslateOreBlockState = getGemstoneDeepslateOreForGeodeBlock(gemBlock); StructureWorldAccess world = context.getWorld(); Random random = context.getRandom(); @@ -47,12 +43,14 @@ private void generateGemstoneOres(FeatureContext context) { int xOffset = (random.nextInt(distance + 1) * 2 - distance); int yOffset = (random.nextInt(distance + 1) * 2 - distance); int zOffset = (random.nextInt(distance + 1) * 2 - distance); - + BlockPos pos = context.getOrigin().add(xOffset, yOffset, zOffset); BlockState state = world.getBlockState(pos); - if (state.isOf(Blocks.DEEPSLATE)) { + if (state.isIn(SpectrumBlockTags.BLACKSLAG_ORE_REPLACEABLES)) { + world.setBlockState(pos, blackslagOreBlockState, 3); + } else if (state.isIn(BlockTags.DEEPSLATE_ORE_REPLACEABLES)) { world.setBlockState(pos, deepslateOreBlockState, 3); - } else if (world.getBlockState(pos).isIn(BlockTags.BASE_STONE_OVERWORLD)) { + } else if (world.getBlockState(pos).isIn(BlockTags.STONE_ORE_REPLACEABLES)) { world.setBlockState(pos, oreBlockState, 3); } } @@ -106,5 +104,28 @@ private BlockState getGemstoneDeepslateOreForGeodeBlock(BlockState blockState) { } return null; } - + + /** + * Returns a matching ore block for a gemstone block + * Aka amethyst_block => amethyst_ore + * + * @param blockState The blockstate the geode generates with + * @return the matching ore for that block state. Does return null if no matching ore exists. For example if another mod adds additional geodes + */ + private BlockState getGemstoneBlackslagOreForGeodeBlock(BlockState blockState) { + Block block = blockState.getBlock(); + if (block.equals(Blocks.AMETHYST_BLOCK)) { + return SpectrumBlocks.BLACKSLAG_AMETHYST_ORE.getDefaultState(); + } else if (block.equals(SpectrumBlocks.CITRINE_BLOCK)) { + return SpectrumBlocks.BLACKSLAG_CITRINE_ORE.getDefaultState(); + } else if (block.equals(SpectrumBlocks.TOPAZ_BLOCK)) { + return SpectrumBlocks.BLACKSLAG_TOPAZ_ORE.getDefaultState(); + } else if (block.equals(SpectrumBlocks.ONYX_BLOCK)) { + return SpectrumBlocks.BLACKSLAG_ONYX_ORE.getDefaultState(); + } else if (block.equals(SpectrumBlocks.MOONSTONE_BLOCK)) { + return SpectrumBlocks.BLACKSLAG_MOONSTONE_ORE.getDefaultState(); + } + return null; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/GlassBottleItemMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/GlassBottleItemMixin.java index f0ac5bed38..676603d105 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/GlassBottleItemMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/GlassBottleItemMixin.java @@ -2,8 +2,8 @@ import de.dafuqs.revelationary.api.advancements.AdvancementHelper; import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.blocks.decay.ForfeitureBlock; import de.dafuqs.spectrum.blocks.decay.RuinBlock; -import de.dafuqs.spectrum.blocks.decay.TerrorBlock; import de.dafuqs.spectrum.registries.SpectrumBlocks; import de.dafuqs.spectrum.registries.SpectrumItems; import net.minecraft.block.BlockState; @@ -39,30 +39,48 @@ public abstract class GlassBottleItemMixin { locals = LocalCapture.CAPTURE_FAILHARD) public void onUse(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable cir, List list, ItemStack handStack, HitResult areaEffectCloudEntity, BlockPos blockPos) { BlockState blockState = world.getBlockState(blockPos); - if (blockState.isOf(SpectrumBlocks.FADING) && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_fading"))) { + + if (blockState.isOf(SpectrumBlocks.FADING) + && SpectrumCommon.CONFIG.CanPickUpFading + && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_fading"))) { + world.setBlockState(blockPos, Blocks.AIR.getDefaultState()); world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ITEM_BOTTLE_FILL_DRAGONBREATH, SoundCategory.NEUTRAL, 1.0F, 1.0F); cir.setReturnValue(TypedActionResult.success(this.fill(handStack, user, SpectrumItems.BOTTLE_OF_FADING.getDefaultStack()), world.isClient())); - } else if (blockState.isOf(SpectrumBlocks.FAILING) && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_failing"))) { + + } else if (blockState.isOf(SpectrumBlocks.FAILING) + && SpectrumCommon.CONFIG.CanPickUpFailing + && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_failing"))) { + world.setBlockState(blockPos, Blocks.AIR.getDefaultState()); world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ITEM_BOTTLE_FILL_DRAGONBREATH, SoundCategory.NEUTRAL, 1.0F, 1.0F); cir.setReturnValue(TypedActionResult.success(this.fill(handStack, user, SpectrumItems.BOTTLE_OF_FAILING.getDefaultStack()), world.isClient())); - } else if (blockState.isOf(SpectrumBlocks.RUIN) && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_ruin"))) { + + } else if (blockState.isOf(SpectrumBlocks.RUIN) + && SpectrumCommon.CONFIG.CanPickUpRuin + && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_ruin"))) { + if (blockState.get(RuinBlock.DECAY_STATE) == RuinBlock.DecayConversion.BEDROCK) { world.setBlockState(blockPos, Blocks.BEDROCK.getDefaultState()); } else { world.setBlockState(blockPos, Blocks.AIR.getDefaultState()); } + world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ITEM_BOTTLE_FILL_DRAGONBREATH, SoundCategory.NEUTRAL, 1.0F, 1.0F); cir.setReturnValue(TypedActionResult.success(this.fill(handStack, user, SpectrumItems.BOTTLE_OF_RUIN.getDefaultStack()), world.isClient())); - } else if (blockState.isOf(SpectrumBlocks.TERROR) && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_terror"))) { - if (blockState.get(TerrorBlock.DECAY_STATE) == TerrorBlock.DecayConversion.BEDROCK) { + + } else if (blockState.isOf(SpectrumBlocks.FORFEITURE) + && SpectrumCommon.CONFIG.CanPickUpForfeiture + && AdvancementHelper.hasAdvancement(user, SpectrumCommon.locate("progression/unlock_bottle_of_forfeiture"))) { + + if (blockState.get(ForfeitureBlock.DECAY_STATE) == ForfeitureBlock.DecayConversion.BEDROCK) { world.setBlockState(blockPos, Blocks.BEDROCK.getDefaultState()); } else { world.setBlockState(blockPos, Blocks.AIR.getDefaultState()); } + world.playSound(null, user.getX(), user.getY(), user.getZ(), SoundEvents.ITEM_BOTTLE_FILL_DRAGONBREATH, SoundCategory.NEUTRAL, 1.0F, 1.0F); - cir.setReturnValue(TypedActionResult.success(this.fill(handStack, user, SpectrumItems.BOTTLE_OF_TERROR.getDefaultStack()), world.isClient())); + cir.setReturnValue(TypedActionResult.success(this.fill(handStack, user, SpectrumItems.BOTTLE_OF_FORFEITURE.getDefaultStack()), world.isClient())); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/HorseBaseEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/HorseBaseEntityMixin.java deleted file mode 100644 index 594624c0f6..0000000000 --- a/src/main/java/de/dafuqs/spectrum/mixin/HorseBaseEntityMixin.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.dafuqs.spectrum.mixin; - -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.GravitableItem; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.passive.AbstractDonkeyEntity; -import net.minecraft.entity.passive.HorseBaseEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.SimpleInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(HorseBaseEntity.class) -public abstract class HorseBaseEntityMixin { - - @Shadow - protected SimpleInventory items; - - @Inject(at = @At("HEAD"), method = "tick()V") - public void tick(CallbackInfo callbackInfo) { - if ((Object) this instanceof AbstractDonkeyEntity thisEntity && thisEntity.world instanceof ServerWorld) { - - if (thisEntity.hasChest()) { - SimpleInventory var1 = this.items; - - double addedGravity = 0; - for (int i = 0; i < var1.size(); i++) { - ItemStack itemStack = var1.getStack(i); - if (!itemStack.isEmpty() && (itemStack.getItem() instanceof GravitableItem)) { - addedGravity += ((GravitableItem) itemStack.getItem()).applyGravityEffect(itemStack, thisEntity.getEntityWorld(), thisEntity); - } - } - - // about 3.1 stacks of paletur fragments will send an animal flying - // => trigger a hidden advancement - if (addedGravity > 0.081 && thisEntity.world.getTime() % 20 == 0) { - PlayerEntity ownerPlayerEntity = PlayerOwned.getPlayerEntityIfOnline(thisEntity.getOwnerUuid()); - if (ownerPlayerEntity != null) { - Support.grantAdvancementCriterion((ServerPlayerEntity) ownerPlayerEntity, "lategame/put_too_many_low_gravity_blocks_into_animal", "gravity"); - } - - // take damage when at height heights - // otherwise the animal would just be floating forever - if (thisEntity.getPos().y > thisEntity.getEntityWorld().getHeight() + 1000) { - thisEntity.damage(DamageSource.OUT_OF_WORLD, 10); - } - } - } - } - } - - -} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/InfestedBlockMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/InfestedBlockMixin.java index 19cad5c51e..8af3957877 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/InfestedBlockMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/InfestedBlockMixin.java @@ -1,18 +1,16 @@ package de.dafuqs.spectrum.mixin; -import de.dafuqs.spectrum.registries.SpectrumEnchantments; -import net.minecraft.block.BlockState; -import net.minecraft.block.InfestedBlock; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.mob.SilverfishEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.BlockPos; -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.CallbackInfo; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.mob.*; +import net.minecraft.item.*; +import net.minecraft.server.world.*; +import net.minecraft.util.math.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; @Mixin(InfestedBlock.class) public abstract class InfestedBlockMixin { @@ -20,8 +18,8 @@ public abstract class InfestedBlockMixin { /* * Do not spawn silverfish when block is broken with Resonance Tool */ - @Inject(at = @At("HEAD"), method = "onStacksDropped(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;)V", cancellable = true) - public void onStacksDropped(BlockState state, ServerWorld world, BlockPos pos, ItemStack stack, CallbackInfo ci) { + @Inject(at = @At("HEAD"), method = "onStacksDropped(Lnet/minecraft/block/BlockState;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/item/ItemStack;Z)V", cancellable = true) + public void onStacksDropped(BlockState state, ServerWorld world, BlockPos pos, ItemStack stack, boolean dropExperience, CallbackInfo ci) { if (EnchantmentHelper.getLevel(SpectrumEnchantments.RESONANCE, stack) > 0) { ci.cancel(); } else if (EnchantmentHelper.getLevel(SpectrumEnchantments.PEST_CONTROL, stack) > 0) { @@ -30,6 +28,10 @@ public void onStacksDropped(BlockState state, ServerWorld world, BlockPos pos, I world.spawnEntity(silverfishEntity); silverfishEntity.playSpawnEffects(); silverfishEntity.kill(); + + ExperienceOrbEntity experienceOrbEntity = new ExperienceOrbEntity(world, pos.getX() + 0.5D, pos.getY(), pos.getZ() + 0.5D, 10); + world.spawnEntity(experienceOrbEntity); + ci.cancel(); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ItemEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ItemEntityMixin.java index ad28c3a8e0..4ecc55ba3f 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ItemEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ItemEntityMixin.java @@ -1,9 +1,9 @@ package de.dafuqs.spectrum.mixin; import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.GravitableItem; import de.dafuqs.spectrum.inventories.AutoCompactingInventory; import de.dafuqs.spectrum.items.DamageAwareItem; +import de.dafuqs.spectrum.items.GravitableItem; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; import de.dafuqs.spectrum.recipe.anvil_crushing.AnvilCrushingRecipe; @@ -20,7 +20,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; @@ -43,9 +42,8 @@ public abstract class ItemEntityMixin { @Shadow public abstract void setNeverDespawn(); - @Shadow private int itemAge; - - @Shadow public abstract boolean damage(DamageSource source, float amount); + @Shadow + public abstract boolean damage(DamageSource source, float amount); @Inject(at = @At("TAIL"), method = "(Lnet/minecraft/world/World;DDDLnet/minecraft/item/ItemStack;DDD)V") public void ItemEntity(World world, double x, double y, double z, ItemStack stack, double velocityX, double velocityY, double velocityZ, CallbackInfo ci) { @@ -60,7 +58,7 @@ public void tick(CallbackInfo ci) { // protect damage proof enchanted item stacks from the void by letting them float above it ItemEntity thisItemEntity = ((ItemEntity) (Object) this); if (!thisItemEntity.hasNoGravity() && thisItemEntity.world.getTime() % 8 == 0) { - int worldMinY = thisItemEntity.world.getDimension().getMinimumY(); + int worldMinY = thisItemEntity.world.getDimension().minY(); if (!thisItemEntity.isOnGround() && thisItemEntity.getPos().getY() < worldMinY + 2 && EnchantmentHelper.getLevel(SpectrumEnchantments.STEADFAST, thisItemEntity.getStack()) > 0) { @@ -144,7 +142,7 @@ private void doAnvilCrafting(float damageAmount) { world.playSound(null, position.x, position.y, position.z, soundEvent, SoundCategory.PLAYERS, randomVolume, randomPitch); } - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) world, new BlockPos(position), recipe.getParticleEffectIdentifier(), recipe.getParticleCount()); + SpectrumS2CPacketSender.playParticleWithExactVelocity((ServerWorld) world, position, recipe.getParticleEffect(), recipe.getParticleCount(), Vec3d.ZERO); } } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ItemFrameEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ItemFrameEntityMixin.java index 5fa5aa9fe9..6db56d1347 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ItemFrameEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ItemFrameEntityMixin.java @@ -1,19 +1,16 @@ package de.dafuqs.spectrum.mixin; -import de.dafuqs.spectrum.items.magic_items.CelestialPocketWatchItem; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.entity.decoration.ItemFrameEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import de.dafuqs.spectrum.items.magic_items.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.entity.decoration.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.util.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; @Mixin(ItemFrameEntity.class) public abstract class ItemFrameEntityMixin { @@ -25,7 +22,7 @@ public abstract class ItemFrameEntityMixin { at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/decoration/ItemFrameEntity;setRotation(I)V")) public void interact(PlayerEntity player, Hand hand, CallbackInfoReturnable cir) { if (getHeldItemStack().isOf(SpectrumItems.CELESTIAL_POCKETWATCH) && (((ItemFrameEntity) (Object) this).world instanceof ServerWorld serverWorld)) { - CelestialPocketWatchItem.advanceTime((ServerPlayerEntity) player, serverWorld); + CelestialPocketWatchItem.tryAdvanceTime(serverWorld, (ServerPlayerEntity) player); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ItemStackMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ItemStackMixin.java index 6e87d99e8d..d6a80847b0 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ItemStackMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ItemStackMixin.java @@ -1,41 +1,33 @@ package de.dafuqs.spectrum.mixin; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.inventories.slots.SlotWithOnClickAction; -import de.dafuqs.spectrum.mixin.accessors.ItemAccessor; -import de.dafuqs.spectrum.registries.SpectrumEnchantments; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.attribute.EntityAttribute; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.screen.slot.Slot; -import net.minecraft.tag.TagKey; -import net.minecraft.util.ClickType; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.inventories.slots.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.attribute.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.screen.slot.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; -import java.util.Map; +import java.util.*; @Mixin(ItemStack.class) public abstract class ItemStackMixin { - + @Shadow public abstract boolean isIn(TagKey tag); - + @Shadow public abstract boolean isOf(Item item); - + // Injecting into onStackClicked instead of onClicked because onStackClicked is called first @Inject(at = @At("HEAD"), method = "onStackClicked", cancellable = true) public void spectrum$onStackClicked(Slot slot, ClickType clickType, PlayerEntity player, CallbackInfoReturnable cir) { @@ -45,7 +37,7 @@ public abstract class ItemStackMixin { } } } - + @Inject(at = @At("RETURN"), method = "getAttributeModifiers(Lnet/minecraft/entity/EquipmentSlot;)Lcom/google/common/collect/Multimap;", cancellable = true) public void spectrum$applyTightGripEnchantment(EquipmentSlot slot, CallbackInfoReturnable> cir) { int tightGripLevel = EnchantmentHelper.getLevel(SpectrumEnchantments.TIGHT_GRIP, (ItemStack) (Object) this); @@ -53,23 +45,23 @@ public abstract class ItemStackMixin { ImmutableMultimap.Builder builder = ImmutableMultimap.builder(); for (Map.Entry s : cir.getReturnValue().entries()) { if (s.getKey().equals(EntityAttributes.GENERIC_ATTACK_SPEED)) { - double newSpeed = s.getValue().getValue() * Math.max(0.25, 1.0 - tightGripLevel * 0.25); - builder.put(s.getKey(), new EntityAttributeModifier(ItemAccessor.getAttackSpeedModifierId(), "Weapon modifier", newSpeed, EntityAttributeModifier.Operation.ADDITION)); + double newAttackSpeed = s.getValue().getValue() * Math.max(0.25, 1 - tightGripLevel * SpectrumCommon.CONFIG.TightGripAttackSpeedBonusPercentPerLevel); + builder.put(s.getKey(), new EntityAttributeModifier(ItemAccessor.getAttackSpeedModifierId(), "Weapon modifier", newAttackSpeed, EntityAttributeModifier.Operation.ADDITION)); + cir.setReturnValue(builder.build()); } else { builder.put(s.getKey(), s.getValue()); } } - cir.setReturnValue(builder.build()); } } - + @Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getNbt()Lnet/minecraft/nbt/NbtCompound;"), method = "isDamageable()Z", cancellable = true) public void spectrum$checkIndestructibleEnchantment(CallbackInfoReturnable cir) { if (SpectrumCommon.CONFIG.IndestructibleEnchantmentEnabled && EnchantmentHelper.getLevel(SpectrumEnchantments.INDESTRUCTIBLE, (ItemStack) (Object) this) > 0) { cir.setReturnValue(false); } } - + // thank you so, so much @williewillus / @Botania for this snippet of code // https://github.com/VazkiiMods/Botania/blob/1.18.x/Fabric/src/main/java/vazkii/botania/fabric/mixin/FabricMixinItemStack.java @Inject(at = @At("HEAD"), method = "isOf(Lnet/minecraft/item/Item;)Z", cancellable = true) @@ -80,6 +72,6 @@ public abstract class ItemStackMixin { } } } - - + + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/LightningEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/LightningEntityMixin.java index 9070406d37..176409e111 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/LightningEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/LightningEntityMixin.java @@ -51,7 +51,7 @@ private void spawnLightningStone(@NotNull World world, BlockPos affectedBlockPos } if (world.isAir(aboveGroundBlockPos)) { - BlockState placementBlockState = SpectrumBlocks.STUCK_LIGHTNING_STONE.getDefaultState(); + BlockState placementBlockState = SpectrumBlocks.STUCK_STORM_STONE.getDefaultState(); if (placementBlockState.canPlaceAt(world, aboveGroundBlockPos)) { world.setBlockState(aboveGroundBlockPos, placementBlockState); } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/LivingEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/LivingEntityMixin.java index 061b625c0d..a9e06a27b6 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/LivingEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/LivingEntityMixin.java @@ -1,51 +1,39 @@ package de.dafuqs.spectrum.mixin; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.cca.azure_dike.AzureDikeProvider; -import de.dafuqs.spectrum.enchantments.DisarmingEnchantment; -import de.dafuqs.spectrum.interfaces.ArmorWithHitEffect; -import de.dafuqs.spectrum.items.ActivatableItem; -import de.dafuqs.spectrum.items.ApplyFoodEffectsCallback; -import de.dafuqs.spectrum.items.tools.DreamflayerItem; -import de.dafuqs.spectrum.items.trinkets.PuffCircletItem; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.cca.azure_dike.*; +import de.dafuqs.spectrum.enchantments.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.items.armor.*; +import de.dafuqs.spectrum.items.tools.*; +import de.dafuqs.spectrum.items.trinkets.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; import de.dafuqs.spectrum.registries.*; -import de.dafuqs.spectrum.status_effects.StackableStatusEffect; -import dev.emi.trinkets.api.SlotReference; -import dev.emi.trinkets.api.TrinketComponent; -import dev.emi.trinkets.api.TrinketsApi; -import net.minecraft.block.BlockState; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.damage.EntityDamageSource; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectCategory; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.mob.MobEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.sound.SoundCategory; -import net.minecraft.util.Pair; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyArg; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import de.dafuqs.spectrum.status_effects.*; +import dev.emi.trinkets.api.*; +import net.minecraft.block.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.effect.*; +import net.minecraft.entity.mob.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; -import java.util.List; -import java.util.Optional; +import java.util.*; @Mixin(LivingEntity.class) public abstract class LivingEntityMixin { @@ -61,27 +49,36 @@ public abstract class LivingEntityMixin { @Shadow public abstract boolean hasStatusEffect(StatusEffect effect); - @Shadow public abstract boolean blockedByShield(DamageSource source); - - @Shadow protected abstract void applyDamage(DamageSource source, float amount); - - @Shadow public abstract ItemStack getMainHandStack(); - - @Shadow @Nullable public abstract StatusEffectInstance getStatusEffect(StatusEffect effect); - - @Shadow public abstract boolean canHaveStatusEffect(StatusEffectInstance effect); - - @Shadow public abstract boolean removeStatusEffect(StatusEffect type); - - @Shadow public abstract boolean addStatusEffect(StatusEffectInstance effect); + @Shadow + public abstract boolean blockedByShield(DamageSource source); - @Shadow protected abstract void initDataTracker(); + @Shadow + public abstract ItemStack getMainHandStack(); + @Shadow + @Nullable + public abstract StatusEffectInstance getStatusEffect(StatusEffect effect); + + @Shadow + public abstract boolean canHaveStatusEffect(StatusEffectInstance effect); + + @Shadow + public abstract boolean removeStatusEffect(StatusEffect type); + + @Shadow + public abstract boolean addStatusEffect(StatusEffectInstance effect); + + @Shadow + protected ItemStack activeItemStack; + + @Shadow + public abstract boolean damage(DamageSource source, float amount); + @ModifyArg(method = "dropXp()V", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/ExperienceOrbEntity;spawn(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/Vec3d;I)V"), index = 2) protected int spectrum$applyExuberance(int originalXP) { return (int) (originalXP * spectrum$getExuberanceMod(this.attackingPlayer)); } - + private float spectrum$getExuberanceMod(PlayerEntity attackingPlayer) { if (attackingPlayer != null && SpectrumEnchantments.EXUBERANCE.canEntityUse(attackingPlayer)) { int exuberanceLevel = EnchantmentHelper.getEquipmentLevel(SpectrumEnchantments.EXUBERANCE, attackingPlayer); @@ -102,17 +99,16 @@ public abstract class LivingEntityMixin { int charges = AzureDikeProvider.getAzureDikeCharges(thisEntity); if (charges > 0) { AzureDikeProvider.absorbDamage(thisEntity, PuffCircletItem.FALL_DAMAGE_NEGATING_COST); - + thisEntity.fallDistance = 0; thisEntity.setVelocity(thisEntity.getVelocity().x, 0.5, thisEntity.getVelocity().z); - // TODO: fix. This breaks on dedicated server - /*if (thisEntity.world.isClient) { // it is split here so the particles spawn immediately, without network lag - SpectrumS2CPacketReceiver.playParticleWithPatternAndVelocityClient(thisEntity.getWorld(), thisEntity.getPos(), SpectrumParticleTypes.WHITE_CRAFTING, ParticlePattern.EIGHT, 0.4); - SpectrumS2CPacketReceiver.playParticleWithPatternAndVelocityClient(thisEntity.getWorld(), thisEntity.getPos(), SpectrumParticleTypes.BLUE_CRAFTING, ParticlePattern.EIGHT_OFFSET, 0.5); + if (thisEntity.world.isClient) { // it is split here so the particles spawn immediately, without network lag + ParticleHelper.playParticleWithPatternAndVelocityClient(thisEntity.getWorld(), thisEntity.getPos(), SpectrumParticleTypes.WHITE_CRAFTING, ParticlePattern.EIGHT, 0.4); + ParticleHelper.playParticleWithPatternAndVelocityClient(thisEntity.getWorld(), thisEntity.getPos(), SpectrumParticleTypes.BLUE_CRAFTING, ParticlePattern.EIGHT_OFFSET, 0.5); } else if (thisEntity instanceof ServerPlayerEntity serverPlayerEntity) { SpectrumS2CPacketSender.playParticleWithPatternAndVelocity(serverPlayerEntity, (ServerWorld) thisEntity.getWorld(), thisEntity.getPos(), SpectrumParticleTypes.WHITE_CRAFTING, ParticlePattern.EIGHT, 0.4); SpectrumS2CPacketSender.playParticleWithPatternAndVelocity(serverPlayerEntity, (ServerWorld) thisEntity.getWorld(), thisEntity.getPos(), SpectrumParticleTypes.BLUE_CRAFTING, ParticlePattern.EIGHT_OFFSET, 0.5); - }*/ + } thisEntity.getWorld().playSound(null, thisEntity.getBlockPos(), SpectrumSoundEvents.PUFF_CIRCLET_PFFT, SoundCategory.PLAYERS, 1.0F, 1.0F); } } @@ -124,7 +120,7 @@ public abstract class LivingEntityMixin { @ModifyVariable(at = @At("HEAD"), method = "damage(Lnet/minecraft/entity/damage/DamageSource;F)Z", argsOnly = true) public float spectrum$applyAzureDikeDamageProtection(float amount, DamageSource source) { @Nullable StatusEffectInstance vulnerability = getStatusEffect(SpectrumStatusEffects.VULNERABILITY); - if(vulnerability != null) { + if (vulnerability != null) { amount *= 1 + (SpectrumStatusEffects.VULNERABILITY_ADDITIONAL_DAMAGE_PERCENT_PER_LEVEL * vulnerability.getAmplifier()); } @@ -147,70 +143,38 @@ public abstract class LivingEntityMixin { } } } - - @ModifyVariable(method = "damage(Lnet/minecraft/entity/damage/DamageSource;F)Z", at = @At("HEAD"), argsOnly = true) - public float spectrum$applyDreamflayerDamage(float amount, DamageSource source) { - if(!(source.getAttacker() instanceof LivingEntity attacker)) - return amount; - + + @Inject(method = "damage(Lnet/minecraft/entity/damage/DamageSource;F)Z", at = @At("HEAD")) + public void spectrum$applyBonusDamage(DamageSource source, float amount, CallbackInfoReturnable cir) { LivingEntity target = (LivingEntity) (Object) this; - if (amount > 0 && source instanceof EntityDamageSource && source.getSource() instanceof LivingEntity livingSource) { - ItemStack mainHandStack = attacker.getMainHandStack(); - if (mainHandStack.isOf(SpectrumItems.DREAMFLAYER)) { - if(ActivatableItem.isActivated(mainHandStack)) { - float newDamage = DreamflayerItem.getDamageAfterModifier(amount, attacker, target); - - // deal 1/2 as magic damage - if (!source.isMagic() && newDamage >= 1.0F) { - this.applyDamage(DamageSource.magic(livingSource, livingSource), amount / 2); - } - - // deal 1/4 directly - // that has to hurt - float quarterDamage = newDamage / 4; - float h = target.getHealth(); - target.setHealth(h - quarterDamage); - target.getDamageTracker().onDamage(source, h, quarterDamage); - if (target.isDead()) { - target.onDeath(source); - } - - // deal 1/4 as normal damage - return quarterDamage; - } else { - float newDamage = DreamflayerItem.getDamageAfterModifier(amount, attacker, target); - - // deal 1/4 as magic damage - if (!source.isMagic() && newDamage >= 1.0F) { - this.applyDamage(DamageSource.magic(livingSource, livingSource), amount / 4); - } - // deal 3/4 as normal damage - return newDamage / 4 * 3; - } + + // SetHealth damage does exactly that + if (amount > 0 && source instanceof SpectrumDamageSources.SetHealthDamageSource) { + float h = target.getHealth(); + target.setHealth(h - amount); + target.getDamageTracker().onDamage(source, h, amount); + if (target.isDead()) { + target.onDeath(source); } + return; } - - return amount; - } - - /*@ModifyVariable(method = "damage(Lnet/minecraft/entity/damage/DamageSource;F)Z", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;applyDamage(Lnet/minecraft/entity/damage/DamageSource;F)V"), argsOnly = true) - public float spectrum$applyGraceDamage(float amount, DamageSource source) { - - if (attacker == null) - return amount; - var mainHand = attacker.getStackInHand(Hand.MAIN_HAND); - var offHand = attacker.getStackInHand(Hand.OFF_HAND); - var mainMod = Optional.ofNullable(mainHand.getModifier(SimpleDamageMultiplier.class)); - var offMod = Optional.ofNullable(offHand.getModifier(SimpleDamageMultiplier.class)); + // If this entity is hit with a SplitDamageItem, damage() get's called recursively for each type of damage dealt + if (!SpectrumDamageSources.recursiveDamage && amount > 0 && source instanceof EntityDamageSource && source.getSource() instanceof LivingEntity livingSource) { + ItemStack mainHandStack = livingSource.getMainHandStack(); + if (mainHandStack.getItem() instanceof SplitDamageItem splitDamageItem) { + SpectrumDamageSources.recursiveDamage = true; + SplitDamageItem.DamageComposition composition = splitDamageItem.getDamageComposition(livingSource, target, activeItemStack, amount); - if (mainMod.isPresent()) - amount = mainMod.get().apply(source, mainHand, amount); - if (offMod.isPresent()) - amount = offMod.get().apply(source, mainHand, amount); + for (Pair entry : composition.get()) { + damage(entry.getLeft(), entry.getRight()); + } - return amount; - }*/ + SpectrumDamageSources.recursiveDamage = false; + return; + } + } + } @Inject(at = @At("RETURN"), method = "tryUseTotem(Lnet/minecraft/entity/damage/DamageSource;)Z", cancellable = true) public void spectrum$checkForTotemPendant(DamageSource source, CallbackInfoReturnable cir) { @@ -244,15 +208,13 @@ public abstract class LivingEntityMixin { @Inject(method = "damage(Lnet/minecraft/entity/damage/DamageSource;F)Z", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;isDead()Z", ordinal = 1)) public void spectrum$TriggerArmorWithHitEffect(DamageSource source, float amount, CallbackInfoReturnable cir) { if (!((LivingEntity) (Object) this).world.isClient) { - if (((Object) this) instanceof MobEntity) { - MobEntity thisMobEntity = (MobEntity) (Object) this; + if (((Object) this) instanceof MobEntity thisMobEntity) { for (ItemStack armorItemStack : thisMobEntity.getArmorItems()) { if (armorItemStack.getItem() instanceof ArmorWithHitEffect) { ((ArmorWithHitEffect) armorItemStack.getItem()).onHit(armorItemStack, source, thisMobEntity, amount); } } - } else if (((Object) this) instanceof ServerPlayerEntity) { - ServerPlayerEntity thisPlayerEntity = (ServerPlayerEntity) (Object) this; + } else if (((Object) this) instanceof ServerPlayerEntity thisPlayerEntity) { for (ItemStack armorItemStack : thisPlayerEntity.getArmorItems()) { if (armorItemStack.getItem() instanceof ArmorWithHitEffect) { ((ArmorWithHitEffect) armorItemStack.getItem()).onHit(armorItemStack, source, thisPlayerEntity, amount); @@ -271,7 +233,7 @@ public abstract class LivingEntityMixin { @Inject(method = "setSprinting(Z)V", at = @At("HEAD"), cancellable = true) public void setSprinting(boolean sprinting, CallbackInfo ci) { - if(sprinting && ((LivingEntity) (Object) this).hasStatusEffect(SpectrumStatusEffects.SCARRED)) { + if (sprinting && ((LivingEntity) (Object) this).hasStatusEffect(SpectrumStatusEffects.SCARRED)) { ci.cancel(); } } @@ -280,14 +242,14 @@ public void setSprinting(boolean sprinting, CallbackInfo ci) { public void eat(ItemStack stack, World world, LivingEntity targetEntity, CallbackInfo ci) { Item item = stack.getItem(); if (item instanceof ApplyFoodEffectsCallback foodWithCallback) { - foodWithCallback.afterConsumption(world, stack, (LivingEntity)(Object) this); + foodWithCallback.afterConsumption(world, stack, (LivingEntity) (Object) this); } } @Inject(method = "addStatusEffect(Lnet/minecraft/entity/effect/StatusEffectInstance;Lnet/minecraft/entity/Entity;)Z", at = @At(value = "INVOKE", target = "Ljava/util/Map;get(Ljava/lang/Object;)Ljava/lang/Object;"), cancellable = true) public void spectrum$addStackableStatusEffect(StatusEffectInstance effect, Entity source, CallbackInfoReturnable cir) { - if(effect.getEffectType() instanceof StackableStatusEffect) { - if(!SpectrumStatusEffects.effectsAreGettingStacked) { + if (effect.getEffectType() instanceof StackableStatusEffect) { + if (!SpectrumStatusEffects.effectsAreGettingStacked) { if (this.canHaveStatusEffect(effect)) { StatusEffectInstance existingInstance = getStatusEffect(effect.getEffectType()); if (existingInstance != null) { diff --git a/src/main/java/de/dafuqs/spectrum/mixin/LoomContainerPatternSlotMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/LoomContainerPatternSlotMixin.java new file mode 100644 index 0000000000..9f910b8915 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/LoomContainerPatternSlotMixin.java @@ -0,0 +1,23 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.items.LoomPatternProvider; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.slot.Slot; +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; + +@Mixin(targets = "net.minecraft.screen.LoomScreenHandler$5") +public abstract class LoomContainerPatternSlotMixin extends Slot { + private LoomContainerPatternSlotMixin() { + super(null, 0, 0, 0); + } + + @Inject(method = "canInsert(Lnet/minecraft/item/ItemStack;)Z", at = @At("RETURN"), cancellable = true) + private void checkBppLoomPatternItem(ItemStack stack, CallbackInfoReturnable info) { + if (stack.getItem() instanceof LoomPatternProvider) { + info.setReturnValue(true); + } + } +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/LoomScreenHandlerMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/LoomScreenHandlerMixin.java new file mode 100644 index 0000000000..29226ceb34 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/LoomScreenHandlerMixin.java @@ -0,0 +1,58 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.items.LoomPatternProvider; +import net.minecraft.block.entity.BannerPattern; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.LoomScreenHandler; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.slot.Slot; +import net.minecraft.util.registry.RegistryEntry; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.List; + +@Mixin(LoomScreenHandler.class) +public abstract class LoomScreenHandlerMixin extends ScreenHandler { + + @Shadow + @Final + private Slot patternSlot; + + private LoomScreenHandlerMixin() { + super(null, 0); + } + + @Inject(method = "getPatternsFor(Lnet/minecraft/item/ItemStack;)Ljava/util/List;", at = @At("HEAD"), cancellable = true) + private void spectrum$getPatternsFor(ItemStack stack, CallbackInfoReturnable>> cir) { + if (stack.getItem() instanceof LoomPatternProvider loomPatternProvider) { + cir.setReturnValue(loomPatternProvider.getPatterns()); + } + } + + @Inject( + method = "transferSlot", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;", + ordinal = 0, + shift = At.Shift.BEFORE + ), + cancellable = true + ) + private void attemptBppPatternItemTransfer(PlayerEntity player, int slotIdx, CallbackInfoReturnable info) { + ItemStack stack = this.slots.get(slotIdx).getStack(); + + if (stack.getItem() instanceof LoomPatternProvider) { + if (!this.insertItem(stack, this.patternSlot.id, this.patternSlot.id + 1, false)) { + info.setReturnValue(ItemStack.EMPTY); + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/MixinAbstractFireBlock.java b/src/main/java/de/dafuqs/spectrum/mixin/MixinAbstractFireBlock.java new file mode 100644 index 0000000000..b94cb554f7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/MixinAbstractFireBlock.java @@ -0,0 +1,25 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; + +@Mixin(AbstractFireBlock.class) +public abstract class MixinAbstractFireBlock { + + @Inject(at = @At("HEAD"), method = "getState", cancellable = true) + private static void spectrum$getFireState(BlockView world, BlockPos pos, CallbackInfoReturnable cir) { + BlockPos blockpos = pos.down(); + BlockState blockstate = world.getBlockState(blockpos); + if (blockstate.isIn(SpectrumBlockTags.PRIMORDIAL_FIRE_BASE_BLOCKS) || PrimordialFireBlock.EXPLOSION_CAUSES_PRIMORDIAL_FIRE_FLAG) { + PrimordialFireBlock.EXPLOSION_CAUSES_PRIMORDIAL_FIRE_FLAG = false; + cir.setReturnValue((SpectrumBlocks.PRIMORDIAL_FIRE).getStateForPosition(world, pos)); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/MixinParticleManager.java b/src/main/java/de/dafuqs/spectrum/mixin/MixinParticleManager.java new file mode 100644 index 0000000000..0604427948 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/MixinParticleManager.java @@ -0,0 +1,33 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.particle.render.*; +import net.minecraft.client.particle.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; + +@Mixin(ParticleManager.class) +public class MixinParticleManager implements ExtendedParticleManager { + + @Unique + private final EarlyRenderingParticleContainer spectrum$earlyRenderingParticleContainer = new EarlyRenderingParticleContainer(); + + @Inject(method = "tick", at = @At(value = "INVOKE", target = "Ljava/util/Map;computeIfAbsent(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;"), locals = LocalCapture.CAPTURE_FAILHARD) + private void earlyRenderingHook(final CallbackInfo ci, final Particle particle) { + spectrum$earlyRenderingParticleContainer.add(particle); + } + + + @Inject(method = "tick", at = @At("RETURN")) + private void removeDeadHook(final CallbackInfo ci) { + spectrum$earlyRenderingParticleContainer.removeDead(); + } + + @Override + public void render(final MatrixStack matrices, final VertexConsumerProvider vertexConsumers, final Camera camera, final float tickDelta) { + spectrum$earlyRenderingParticleContainer.render(matrices, vertexConsumers, camera, tickDelta); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/MixinRenderLayers.java b/src/main/java/de/dafuqs/spectrum/mixin/MixinRenderLayers.java new file mode 100644 index 0000000000..edfbf16394 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/MixinRenderLayers.java @@ -0,0 +1,20 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.*; +import net.minecraft.block.*; +import net.minecraft.client.render.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; + +@Mixin(RenderLayers.class) +public class MixinRenderLayers { + + @Inject(method = "getBlockLayer", at = @At("HEAD"), cancellable = true) + private static void translucentHook(final BlockState state, final CallbackInfoReturnable cir) { + if (SpectrumClient.FORCE_TRANSLUCENT) { + cir.setReturnValue(RenderLayer.getTranslucent()); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/PlayerEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/PlayerEntityMixin.java index 76fb7546a2..aa6ab5322a 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/PlayerEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/PlayerEntityMixin.java @@ -1,48 +1,34 @@ package de.dafuqs.spectrum.mixin; -import com.google.common.collect.Maps; -import com.google.common.collect.Multimap; -import com.google.common.collect.Multimaps; -import de.dafuqs.additionalentityattributes.AdditionalEntityAttributes; -import de.dafuqs.spectrum.cca.LastKillComponent; -import de.dafuqs.spectrum.enchantments.ImprovedCriticalEnchantment; -import de.dafuqs.spectrum.entity.entity.SpectrumFishingBobberEntity; -import de.dafuqs.spectrum.helpers.SpectrumEnchantmentHelper; -import de.dafuqs.spectrum.interfaces.PlayerEntityAccessor; -import de.dafuqs.spectrum.items.ExperienceStorageItem; -import de.dafuqs.spectrum.items.trinkets.AttackRingItem; -import de.dafuqs.spectrum.items.trinkets.SpectrumTrinketItem; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.registries.SpectrumEnchantments; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumStatusEffects; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.attribute.EntityAttribute; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.Identifier; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import com.google.common.collect.*; +import de.dafuqs.additionalentityattributes.*; +import de.dafuqs.spectrum.cca.*; +import de.dafuqs.spectrum.enchantments.*; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.items.trinkets.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.entity.*; +import net.minecraft.entity.attribute.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; -import java.util.ArrayList; +import java.util.*; @Mixin(PlayerEntity.class) public abstract class PlayerEntityMixin implements PlayerEntityAccessor { - @Shadow public abstract Iterable getItemsHand(); - - @Shadow public abstract void increaseStat(Identifier stat, int amount); + @Shadow + public abstract Iterable getHandItems(); public SpectrumFishingBobberEntity spectrum$fishingBobber; @@ -94,7 +80,7 @@ public SpectrumFishingBobberEntity getSpectrumBobber() { @Inject(at = @At("HEAD"), method = "canFoodHeal()Z", cancellable = true) public void canFoodHeal(CallbackInfoReturnable cir) { PlayerEntity player = (PlayerEntity) (Object) this; - if(player.hasStatusEffect(SpectrumStatusEffects.SCARRED)) { + if (player.hasStatusEffect(SpectrumStatusEffects.SCARRED)) { cir.setReturnValue(false); } } @@ -103,10 +89,15 @@ public void canFoodHeal(CallbackInfoReturnable cir) { // experience is tried to get put in there first @ModifyVariable(at = @At("HEAD"), method = "addExperience(I)V", argsOnly = true) public int addExperience(int experience) { - for(ItemStack stack : getItemsHand()) { - if(stack.getItem() instanceof ExperienceStorageItem) { + if (experience < 0) { // draining XP, like Botanias Rosa Arcana + return experience; + } + + // if the player has a ExperienceStorageItem in hand add the XP to that + for (ItemStack stack : getHandItems()) { + if (!((PlayerEntity) (Object) this).isUsingItem() && stack.getItem() instanceof ExperienceStorageItem) { experience = ExperienceStorageItem.addStoredExperience(stack, experience); - if(experience == 0) { + if (experience == 0) { break; } } @@ -115,9 +106,9 @@ public int addExperience(int experience) { } @Inject(method = "onKilledOther", at = @At("HEAD")) - public void spectrum$rememberKillOther(ServerWorld world, LivingEntity other, CallbackInfo ci) { - if(world != null && !world.isClient) { - LastKillComponent.rememberKillTick((PlayerEntity)(Object) this, world.getTime()); + public void spectrum$rememberKillOther(ServerWorld world, LivingEntity other, CallbackInfoReturnable cir) { + if (world != null && !world.isClient) { + LastKillComponent.rememberKillTick((PlayerEntity) (Object) this, world.getTime()); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/PlayerInventoryMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/PlayerInventoryMixin.java index 2323bae7b8..ccf7df8cf9 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/PlayerInventoryMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/PlayerInventoryMixin.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.mixin; -import de.dafuqs.spectrum.interfaces.InventoryInsertionAcceptor; +import de.dafuqs.spectrum.items.InventoryInsertionAcceptor; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/de/dafuqs/spectrum/mixin/Plugin.java b/src/main/java/de/dafuqs/spectrum/mixin/Plugin.java deleted file mode 100644 index 04c39b861a..0000000000 --- a/src/main/java/de/dafuqs/spectrum/mixin/Plugin.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.dafuqs.spectrum.mixin; - -import com.llamalad7.mixinextras.MixinExtrasBootstrap; -import net.fabricmc.loader.api.FabricLoader; -import org.objectweb.asm.tree.ClassNode; -import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; -import org.spongepowered.asm.mixin.extensibility.IMixinInfo; - -import java.util.List; -import java.util.Set; - -public final class Plugin implements IMixinConfigPlugin { - - @Override - public void onLoad(String mixinPackage) { - MixinExtrasBootstrap.init(); - } - - @Override - public String getRefMapperConfig() { - return null; - } - - @Override - public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { - if (mixinClassName.equals("de.dafuqs.spectrum.mixin.ColoredLeavesBlockMixin")) { - return FabricLoader.getInstance().isModLoaded("botania"); - } else if (mixinClassName.equals("de.dafuqs.spectrum.mixin.client.ClientWorldReverbMixin")) { - return FabricLoader.getInstance().isModLoaded("limlib"); - } else { - return true; - } - } - - @Override - public void acceptTargets(Set myTargets, Set otherTargets) { - } - - @Override - public List getMixins() { - return List.of(); - } - - @Override - public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - } - - @Override - public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/PotionItemMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/PotionItemMixin.java index 3128ba9b35..95c88ac59b 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/PotionItemMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/PotionItemMixin.java @@ -1,24 +1,41 @@ package de.dafuqs.spectrum.mixin; -import net.minecraft.item.ItemStack; -import net.minecraft.item.PotionItem; -import net.minecraft.nbt.NbtCompound; -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 com.llamalad7.mixinextras.injector.*; +import net.minecraft.client.item.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.text.*; +import net.minecraft.world.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; + +import java.util.*; @Mixin(PotionItem.class) public abstract class PotionItemMixin { - - @Inject(method = "getMaxUseTime(Lnet/minecraft/item/ItemStack;)I", at = @At("RETURN"), cancellable = true) - private void spectrum$applyFastDrink(ItemStack stack, CallbackInfoReturnable cir) { - if (cir.getReturnValue() > 4) { - NbtCompound compound = stack.getNbt(); - if (compound != null && compound.contains("SpectrumFastDrinkable")) { - cir.setReturnValue(4); + + @ModifyReturnValue(method = "getMaxUseTime(Lnet/minecraft/item/ItemStack;)I", at = @At("RETURN")) + private int spectrum$modifyDrinkTime(int drinkTime, ItemStack stack) { + NbtCompound compound = stack.getNbt(); + if (compound != null && compound.contains("SpectrumAdditionalDrinkDuration", NbtElement.INT_TYPE)) { + int additionalDrinkDuration = compound.getInt("SpectrumAdditionalDrinkDuration"); + drinkTime += Math.max(4, drinkTime + additionalDrinkDuration); + } + return drinkTime; + } + + @Inject(method = "appendTooltip(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/item/TooltipContext;)V", at = @At("TAIL")) + public void spectrum$appendTooltip(ItemStack stack, World world, List tooltip, TooltipContext context, CallbackInfo ci) { + NbtCompound compound = stack.getNbt(); + if (compound != null && compound.contains("SpectrumAdditionalDrinkDuration", NbtElement.INT_TYPE)) { + int additionalDrinkDuration = compound.getInt("SpectrumAdditionalDrinkDuration"); + if (additionalDrinkDuration > 0) { + tooltip.add(Text.translatable("item.spectrum.potion.slower_to_drink")); + } else if (additionalDrinkDuration < 0) { + tooltip.add(Text.translatable("item.spectrum.potion.faster_to_drink")); } } } - + } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ProjectileEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ProjectileEntityMixin.java index 98204a7d3e..946b9ab1fa 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ProjectileEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ProjectileEntityMixin.java @@ -46,7 +46,7 @@ protected void onProjectileHit(EntityHitResult entityHitResult, CallbackInfo ci) boolean protect = false; StatusEffectInstance reboundInstance = livingEntity.getStatusEffect(SpectrumStatusEffects.PROJECTILE_REBOUND); - if(reboundInstance != null && entity.world.getRandom().nextFloat() < SpectrumStatusEffects.PROJECTILE_REBOUND_CHANCE_PER_LEVEL * reboundInstance.getAmplifier()) { + if (reboundInstance != null && entity.world.getRandom().nextFloat() < SpectrumStatusEffects.PROJECTILE_REBOUND_CHANCE_PER_LEVEL * reboundInstance.getAmplifier()) { protect = true; } else { Optional component = TrinketsApi.getTrinketComponent(livingEntity); @@ -62,7 +62,7 @@ protected void onProjectileHit(EntityHitResult entityHitResult, CallbackInfo ci) } } - if(protect) { + if (protect) { this.setVelocity(0, 0, 0, 0, 0); SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) thisEntity.getWorld(), thisEntity.getPos(), @@ -83,5 +83,4 @@ protected void onProjectileHit(EntityHitResult entityHitResult, CallbackInfo ci) } - } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceLootConditionMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceLootConditionMixin.java index 95796cb57c..978fe1d8e5 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceLootConditionMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceLootConditionMixin.java @@ -19,7 +19,7 @@ public abstract class RandomChanceLootConditionMixin { float chance; @Inject(at = @At("RETURN"), method = "test(Lnet/minecraft/loot/context/LootContext;)Z", cancellable = true) - public void applyRareLootEnchantment(LootContext lootContext, CallbackInfoReturnable cir) { + public void spectrum$applyRareLootEnchantment(LootContext lootContext, CallbackInfoReturnable cir) { // if the result was to not drop a drop before reroll // gets more probable with each additional level of Clovers Favor if (!cir.getReturnValue() && this.chance < 1.0F) { diff --git a/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceWithLootingLootConditionMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceWithLootingLootConditionMixin.java index 2603c31958..7668497efb 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceWithLootingLootConditionMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/RandomChanceWithLootingLootConditionMixin.java @@ -19,7 +19,7 @@ public abstract class RandomChanceWithLootingLootConditionMixin { float chance; @Inject(at = @At("RETURN"), method = "test(Lnet/minecraft/loot/context/LootContext;)Z", cancellable = true) - public void applyRareLootEnchantment(LootContext lootContext, CallbackInfoReturnable cir) { + public void spectrum$applyRareLootEnchantment(LootContext lootContext, CallbackInfoReturnable cir) { // if the result was to not drop a drop before reroll // gets more probable with each additional level of Clovers Favor if (!cir.getReturnValue() && this.chance < 1.0F) { diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerEntityMixin.java index 637483602f..f8a6849dae 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerEntityMixin.java @@ -35,7 +35,8 @@ public abstract class ServerPlayerEntityMixin { @Shadow public abstract ServerWorld getWorld(); - @Shadow public abstract void playerTick(); + @Shadow + public abstract void playerTick(); @Inject(at = @At("HEAD"), method = "onDeath(Lnet/minecraft/entity/damage/DamageSource;)V") protected void spectrum$dropPlayerHeadWithTreasureHunt(DamageSource source, CallbackInfo ci) { @@ -45,7 +46,7 @@ public abstract class ServerPlayerEntityMixin { @Inject(at = @At("TAIL"), method = "onDeath(Lnet/minecraft/entity/damage/DamageSource;)V") protected void spectrum$onDeath(DamageSource source, CallbackInfo ci) { ServerPlayerEntity player = (ServerPlayerEntity) (Object) this; - if(player.getWorld().getLevelProperties().isHardcore() || HardcoreDeathComponent.isInHardcore(player)) { + if (player.getWorld().getLevelProperties().isHardcore() || HardcoreDeathComponent.isInHardcore(player)) { HardcoreDeathComponent.addHardcoreDeath(player.getGameProfile()); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerGameModeFabricMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerGameModeFabricMixin.java new file mode 100644 index 0000000000..469f0eecf0 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerGameModeFabricMixin.java @@ -0,0 +1,30 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.items.tools.AoEBreakingTool; +import net.minecraft.item.ItemStack; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.server.network.ServerPlayerInteractionManager; +import net.minecraft.util.math.BlockPos; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(ServerPlayerInteractionManager.class) +public class ServerPlayerGameModeFabricMixin { + + @Shadow + @Final + protected ServerPlayerEntity player; + + @Inject(method = "tryBreakBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/Block;onBreak(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Lnet/minecraft/entity/player/PlayerEntity;)V")) + private void spectrum$tryBreakBlock(BlockPos pos, CallbackInfoReturnable cir) { + ServerPlayerEntity player = this.player; + ItemStack stack = player.getMainHandStack(); + if(stack.getItem() instanceof AoEBreakingTool tool) { + tool.onTryBreakBlock(stack, pos, player); + } + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerInteractionManagerMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerInteractionManagerMixin.java index 1ca59d2b9e..7bb2513c16 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerInteractionManagerMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/ServerPlayerInteractionManagerMixin.java @@ -14,13 +14,15 @@ @Mixin(ServerPlayerInteractionManager.class) public abstract class ServerPlayerInteractionManagerMixin { - @Shadow @Final protected ServerPlayerEntity player; + @Shadow + @Final + protected ServerPlayerEntity player; // If someone puts players out of spectator manually // forget about their hardcore death @Inject(at = @At("HEAD"), method = "setGameMode(Lnet/minecraft/world/GameMode;Lnet/minecraft/world/GameMode;)V") public void spectrum$mitigateFallDamageWithPuffCirclet(GameMode gameMode, GameMode previousGameMode, CallbackInfo ci) { - if(gameMode != GameMode.SPECTATOR && previousGameMode == GameMode.SPECTATOR && HardcoreDeathComponent.hasHardcoreDeath(player.getGameProfile())) { + if (gameMode != GameMode.SPECTATOR && previousGameMode == GameMode.SPECTATOR && HardcoreDeathComponent.hasHardcoreDeath(player.getGameProfile())) { HardcoreDeathComponent.removeHardcoreDeath(player.getGameProfile()); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/ShearsDispenserBehaviorMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/ShearsDispenserBehaviorMixin.java new file mode 100644 index 0000000000..1ad552103b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/ShearsDispenserBehaviorMixin.java @@ -0,0 +1,38 @@ +package de.dafuqs.spectrum.mixin; + +import de.dafuqs.spectrum.blocks.dd_deco.*; +import de.dafuqs.spectrum.blocks.jade_vines.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.block.dispenser.*; +import net.minecraft.item.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; +import net.minecraft.world.event.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; + +@Mixin(ShearsDispenserBehavior.class) +public class ShearsDispenserBehaviorMixin { + + @Inject(at = @At("HEAD"), method = "tryShearBlock(Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/util/math/BlockPos;)Z", cancellable = true) + private static void spectrum$shearsShearSawbladeHollyBushes(ServerWorld world, BlockPos pos, CallbackInfoReturnable cir) { + BlockState blockState = world.getBlockState(pos); + if (blockState.isOf(SpectrumBlocks.SAWBLADE_HOLLY_BUSH)) { + int age = blockState.get(SawbladeHollyBushBlock.AGE); + if (SawbladeHollyBushBlock.canBeSheared(age)) { + // we do not have the real shears item used in the dispenser here, but for the default loot table that does not make much of a difference + for (ItemStack stack : JadeVinePlantBlock.getHarvestedStacks(blockState, world, pos, world.getBlockEntity(pos), null, Items.SHEARS.getDefaultStack(), SawbladeHollyBushBlock.SAWBLADE_HOLLY_SHEARING_IDENTIFIER)) { + SawbladeHollyBushBlock.dropStack(world, pos, stack); + } + world.playSound(null, pos, SoundEvents.BLOCK_BEEHIVE_SHEAR, SoundCategory.BLOCKS, 1.0F, 0.8F + world.random.nextFloat() * 0.4F); + SawbladeHollyBushBlock.setAge(blockState, world, pos, age - 1); + world.emitGameEvent(null, GameEvent.SHEAR, pos); + cir.setReturnValue(true); + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/WitherEntityMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/WitherEntityMixin.java index 49c3246754..0a80a89d5e 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/WitherEntityMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/WitherEntityMixin.java @@ -25,8 +25,6 @@ private void spawnEntity(DamageSource source, int lootingMultiplier, boolean all if (cloversFavorLevel > 0) { int additionalCount = (int) (cloversFavorLevel / 2.0F + ((WitherEntity) (Object) this).getWorld().random.nextFloat() * cloversFavorLevel); itemEntity.getStack().setCount(itemEntity.getStack().getCount() + additionalCount); - - } } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/accessors/DimensionEffectsAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/accessors/DimensionEffectsAccessor.java new file mode 100644 index 0000000000..152204f120 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/accessors/DimensionEffectsAccessor.java @@ -0,0 +1,17 @@ +package de.dafuqs.spectrum.mixin.accessors; + +import it.unimi.dsi.fastutil.objects.*; +import net.minecraft.client.render.*; +import net.minecraft.util.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.gen.*; + +@Mixin(DimensionEffects.class) +public interface DimensionEffectsAccessor { + + @Accessor(value = "BY_IDENTIFIER") + static Object2ObjectMap getEffects() { + throw new AssertionError(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/accessors/InGameHudAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/accessors/InGameHudAccessor.java new file mode 100644 index 0000000000..cd91737d7d --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/accessors/InGameHudAccessor.java @@ -0,0 +1,17 @@ +package de.dafuqs.spectrum.mixin.accessors; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.gui.hud.InGameHud; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Environment(EnvType.CLIENT) +@Mixin(InGameHud.class) +public interface InGameHudAccessor { + @Accessor(value = "scaledWidth") + int getWidth(); + + @Accessor(value = "scaledHeight") + int getHeight(); +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/accessors/StructureFeatureAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/accessors/StructureFeatureAccessor.java deleted file mode 100644 index eb887ded8e..0000000000 --- a/src/main/java/de/dafuqs/spectrum/mixin/accessors/StructureFeatureAccessor.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.dafuqs.spectrum.mixin.accessors; - -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.StructureFeature; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(StructureFeature.class) -public interface StructureFeatureAccessor { - - @Invoker - static > F callRegister(String name, F structureFeature, GenerationStep.Feature step) { - throw new UnsupportedOperationException(); - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/accessors/TridentEntityAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/accessors/TridentEntityAccessor.java new file mode 100644 index 0000000000..13571c6e94 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/accessors/TridentEntityAccessor.java @@ -0,0 +1,34 @@ +package de.dafuqs.spectrum.mixin.accessors; + +import net.minecraft.entity.data.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.item.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.gen.*; + +@Mixin(TridentEntity.class) +public interface TridentEntityAccessor { + + @Accessor("LOYALTY") + static TrackedData spectrum$getLoyalty() { + return null; + } + + @Accessor("ENCHANTED") + static TrackedData spectrum$getEnchanted() { + return null; + } + + @Accessor("tridentStack") + ItemStack spectrum$getTridentStack(); + + @Accessor("tridentStack") + void spectrum$setTridentStack(ItemStack stack); + + @Accessor("dealtDamage") + boolean spectrum$hasDealtDamage(); + + @Accessor("dealtDamage") + void spectrum$setDealtDamage(boolean dealtDamage); + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/accessors/WorldRendererAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/accessors/WorldRendererAccessor.java new file mode 100644 index 0000000000..e2686ea2fe --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/accessors/WorldRendererAccessor.java @@ -0,0 +1,17 @@ +package de.dafuqs.spectrum.mixin.accessors; + +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.shape.VoxelShape; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(WorldRenderer.class) +public interface WorldRendererAccessor { + + @Invoker("drawCuboidShapeOutline") + static void invokeDrawCuboidShapeOutline(MatrixStack matrices, VertexConsumer vertexConsumer, VoxelShape shape, double offsetX, double offsetY, double offsetZ, float red, float green, float blue, float alpha) { + throw new AssertionError(); + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/BipedEntityModelMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/BipedEntityModelMixin.java new file mode 100644 index 0000000000..46871b1e6a --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/BipedEntityModelMixin.java @@ -0,0 +1,51 @@ +package de.dafuqs.spectrum.mixin.client; + +import de.dafuqs.spectrum.registries.SpectrumItems; +import dev.emi.trinkets.api.TrinketComponent; +import dev.emi.trinkets.api.TrinketsApi; +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.BipedEntityModel; +import net.minecraft.entity.LivingEntity; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Optional; + +@Mixin(BipedEntityModel.class) +public class BipedEntityModelMixin { + + @Shadow + @Final + public ModelPart rightArm; + @Shadow + @Final + public ModelPart leftArm; + @Shadow + @Final + public ModelPart rightLeg; + @Shadow + @Final + public ModelPart leftLeg; + + @Inject(method = {"setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V"}, at = @At("TAIL"), cancellable = true) + public void poseArms(LivingEntity livingEntity, float f, float g, float h, float i, float j, CallbackInfo ci) { + Optional trinketComponent = TrinketsApi.getTrinketComponent(livingEntity); + if (trinketComponent.isPresent() && trinketComponent.get().isEquipped(SpectrumItems.NEAT_RING)) { + this.rightLeg.pitch = 0; + this.rightLeg.yaw = 0; + this.leftLeg.pitch = 0; + this.leftLeg.yaw = 0; + + this.rightArm.pitch = (float) Math.PI / 2; + this.rightArm.yaw = -1.5F; + this.leftArm.pitch = (float) Math.PI / 2; + this.leftArm.yaw = 1.5F; + + ci.cancel(); + } + } +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/BlockOverlayRendererMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/BlockOverlayRendererMixin.java index e9d185ec60..76c39aa7b2 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/BlockOverlayRendererMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/BlockOverlayRendererMixin.java @@ -1,41 +1,33 @@ package de.dafuqs.spectrum.mixin.client; -import com.mojang.blaze3d.systems.RenderSystem; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.registries.SpectrumFluidTags; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.hud.InGameOverlayRenderer; +import com.mojang.blaze3d.systems.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.client.*; +import net.minecraft.client.gui.hud.*; import net.minecraft.client.render.*; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.Matrix4f; -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.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import net.minecraft.client.util.math.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; @Environment(EnvType.CLIENT) @Mixin(InGameOverlayRenderer.class) public abstract class BlockOverlayRendererMixin { - - // Since the hack in SpectrumFluid to allow swimming, sounds, particles for fluids - // this does now work because "isSubmergedIn()" only matches for water - private static final Identifier TEXTURE_IN_LIQUID_CRYSTAL = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/liquid_crystal_overlay.png"); - private static final Identifier TEXTURE_IN_MUD = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/mud_overlay.png"); - private static final Identifier TEXTURE_IN_MIDNIGHT_SOLUTION = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/midnight_solution_overlay.png"); - + @Inject(method = "renderOverlays(Lnet/minecraft/client/MinecraftClient;Lnet/minecraft/client/util/math/MatrixStack;)V", at = @At("TAIL"), locals = LocalCapture.CAPTURE_FAILSOFT) - private static void blockOverlay(MinecraftClient minecraftClient, MatrixStack matrixStack, CallbackInfo ci) { + private static void spectrum$renderFluidOverlay(MinecraftClient minecraftClient, MatrixStack matrixStack, CallbackInfo ci) { if (!minecraftClient.player.isSpectator()) { if (minecraftClient.player.isSubmergedIn(SpectrumFluidTags.LIQUID_CRYSTAL)) { - renderOverlay(minecraftClient, matrixStack, TEXTURE_IN_LIQUID_CRYSTAL, 0.6F); + renderOverlay(minecraftClient, matrixStack, SpectrumFluids.LIQUID_CRYSTAL_OVERLAY_TEXTURE, SpectrumFluids.LIQUID_CRYSTAL_OVERLAY_ALPHA); } else if (minecraftClient.player.isSubmergedIn(SpectrumFluidTags.MUD)) { - renderOverlay(minecraftClient, matrixStack, TEXTURE_IN_MUD, 0.995F); + renderOverlay(minecraftClient, matrixStack, SpectrumFluids.MUD_OVERLAY_TEXTURE, SpectrumFluids.MUD_OVERLAY_ALPHA); } else if (minecraftClient.player.isSubmergedIn(SpectrumFluidTags.MIDNIGHT_SOLUTION)) { - renderOverlay(minecraftClient, matrixStack, TEXTURE_IN_MIDNIGHT_SOLUTION, 0.995F); + renderOverlay(minecraftClient, matrixStack, SpectrumFluids.MIDNIGHT_SOLUTION_OVERLAY_TEXTURE, SpectrumFluids.MIDNIGHT_SOLUTION_OVERLAY_ALPHA); + } else if (minecraftClient.player.isSubmergedIn(SpectrumFluidTags.DRAGONROT)) { + renderOverlay(minecraftClient, matrixStack, SpectrumFluids.DRAGONROT_OVERLAY_TEXTURE, SpectrumFluids.DRAGONROT_OVERLAY_ALPHA); } } } @@ -58,8 +50,7 @@ private static void renderOverlay(MinecraftClient client, MatrixStack matrixStac bufferBuilder.vertex(matrix4f, 1.0F, -1.0F, -0.5F).texture(0.0F + m, 4.0F + n).next(); bufferBuilder.vertex(matrix4f, 1.0F, 1.0F, -0.5F).texture(0.0F + m, 0.0F + n).next(); bufferBuilder.vertex(matrix4f, -1.0F, 1.0F, -0.5F).texture(4.0F + m, 0.0F + n).next(); - bufferBuilder.end(); - BufferRenderer.draw(bufferBuilder); + BufferRenderer.drawWithShader(bufferBuilder.end()); RenderSystem.disableBlend(); } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/BuiltinModelItemRendererMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/BuiltinModelItemRendererMixin.java index 9b58359693..ec1dbd9f5e 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/BuiltinModelItemRendererMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/BuiltinModelItemRendererMixin.java @@ -1,24 +1,17 @@ package de.dafuqs.spectrum.mixin.client; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlock; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumWallSkullBlock; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.SkullBlockEntityModel; -import net.minecraft.client.render.item.BuiltinModelItemRenderer; -import net.minecraft.client.render.model.json.ModelTransformation; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -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.CallbackInfo; +import de.dafuqs.spectrum.blocks.mob_head.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.block.entity.*; +import net.minecraft.client.render.item.*; +import net.minecraft.client.render.model.json.*; +import net.minecraft.client.util.math.*; +import net.minecraft.item.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; @Environment(EnvType.CLIENT) @Mixin(BuiltinModelItemRenderer.class) @@ -28,8 +21,8 @@ public abstract class BuiltinModelItemRendererMixin { at = @At("HEAD"), cancellable = true) private void getModel(ItemStack stack, ModelTransformation.Mode mode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, CallbackInfo ci) { Item item = stack.getItem(); - if (item instanceof BlockItem) { - Block block = ((BlockItem) item).getBlock(); + if (item instanceof BlockItem blockItem) { + Block block = blockItem.getBlock(); if (block instanceof SpectrumSkullBlock || block instanceof SpectrumWallSkullBlock) { SpectrumSkullBlock.SpectrumSkullBlockType spectrumSkullBlockType = (SpectrumSkullBlock.SpectrumSkullBlockType) ((SpectrumSkullBlock) block).getSkullType(); RenderLayer renderLayer = SpectrumSkullBlockEntityRenderer.getRenderLayer(spectrumSkullBlockType); diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/CapeFeatureRendererMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/CapeFeatureRendererMixin.java index 93f0873fdd..abfd9cef4c 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/CapeFeatureRendererMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/CapeFeatureRendererMixin.java @@ -1,7 +1,7 @@ package de.dafuqs.spectrum.mixin.client; import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumModelLayers; +import de.dafuqs.spectrum.registries.client.SpectrumModelLayers; import de.dafuqs.spectrum.render.RenderingContext; import de.dafuqs.spectrum.render.armor.BedrockArmorCapeModel; import net.fabricmc.api.EnvType; @@ -30,74 +30,61 @@ @Mixin(CapeFeatureRenderer.class) public abstract class CapeFeatureRendererMixin extends FeatureRenderer> { - public CapeFeatureRendererMixin(FeatureRendererContext> ctx) { - super(ctx); - } - - @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/network/AbstractClientPlayerEntity;FFFFFF)V", at = @At("HEAD"), cancellable = true) - public void spectrum$renderBedrockCape(MatrixStack ms, VertexConsumerProvider vertices, int light, AbstractClientPlayerEntity player, float f, float g, float h, float j, float k, float l, CallbackInfo ci) { - // If the player has a cape already, or has disabled their cape from rendering, do not render custom cape - if (!player.isPartVisible(PlayerModelPart.CAPE) || player.getCapeTexture() != null) return; - - // Check if an Elytra is being rendered, and the Fabric Event, and cancel if necessary - if (RenderingContext.isElytraRendered || !LivingEntityFeatureRenderEvents.ALLOW_CAPE_RENDER.invoker().allowCapeRender(player)) - return; - - // Check for the chestplate, and begin rendering the cape if equipped - if (player.getEquippedStack(EquipmentSlot.CHEST).getItem() == SpectrumItems.BEDROCK_CHESTPLATE) { - - // Vanilla cape values - double x = MathHelper.lerpAngleDegrees(h / 2, (float) player.prevCapeX, (float) player.capeX) - - MathHelper.lerpAngleDegrees(h / 2, (float) player.prevX, (float) player.getX()); - double y = MathHelper.lerpAngleDegrees(h / 2, (float) player.prevCapeY, (float) player.capeY) - - MathHelper.lerpAngleDegrees(h / 2, (float) player.prevY, (float) player.getY()); - double z = MathHelper.lerpAngleDegrees(h / 2, (float) player.prevCapeZ, (float) player.capeZ) - - MathHelper.lerpAngleDegrees(h / 2, (float) player.prevZ, (float) player.getZ()); - float yaw = player.prevBodyYaw + (player.bodyYaw - player.prevBodyYaw); - double o = MathHelper.sin(yaw * (float) (Math.PI / 180.0)); - double p = -MathHelper.cos(yaw * (float) (Math.PI / 180.0)); - float q = (float) y * 10.0F; - q = MathHelper.clamp(q, -6.0F, 32.0F); - float r = (float) (x * o + z * p) * 100.0F; - r = MathHelper.clamp(r, 0.0F, 150.0F); - float s = (float) (x * p - z * o) * 100.0F; - s = MathHelper.clamp(s, -20.0F, 20.0F); - if (r < 0.0F) { - r = 0.0F; - } + public CapeFeatureRendererMixin(FeatureRendererContext> ctx) { + super(ctx); + } + /** + * Renders a custom flap on the front of the Bedrock Armor, as well as a custom cape render + */ + @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/network/AbstractClientPlayerEntity;FFFFFF)V", at = @At("HEAD"), cancellable = true) + public void spectrum$renderBedrockCape(MatrixStack ms, VertexConsumerProvider vertices, int light, AbstractClientPlayerEntity player, float f, float g, float h, float j, float k, float l, CallbackInfo ci) { + // If the player has disabled their cape from rendering, do not render + if (!player.isPartVisible(PlayerModelPart.CAPE)) return; - float t = MathHelper.lerp(h, player.prevStrideDistance, player.strideDistance); - q += MathHelper.sin(MathHelper.lerp(h, player.prevHorizontalSpeed, player.horizontalSpeed) * 6.0F) * 32.0F * t; + // Check for the chestplate, and begin rendering the cape if equipped + if (player.getEquippedStack(EquipmentSlot.CHEST).getItem() == SpectrumItems.BEDROCK_CHESTPLATE) { - if (player.isInSneakingPose()) { - q += 25.0F; - } + // Vanilla cape values + double x = MathHelper.lerpAngleDegrees(h / 2, (float) player.prevCapeX, (float) player.capeX) + - MathHelper.lerpAngleDegrees(h / 2, (float) player.prevX, (float) player.getX()); + double y = MathHelper.lerpAngleDegrees(h / 2, (float) player.prevCapeY, (float) player.capeY) + - MathHelper.lerpAngleDegrees(h / 2, (float) player.prevY, (float) player.getY()); + double z = MathHelper.lerpAngleDegrees(h / 2, (float) player.prevCapeZ, (float) player.capeZ) + - MathHelper.lerpAngleDegrees(h / 2, (float) player.prevZ, (float) player.getZ()); + float yaw = player.prevBodyYaw + (player.bodyYaw - player.prevBodyYaw); + double o = MathHelper.sin(yaw * (float) (Math.PI / 180.0)); + double p = -MathHelper.cos(yaw * (float) (Math.PI / 180.0)); + float q = (float) y * 10.0F; + q = MathHelper.clamp(q, -6.0F, 32.0F); + float r = (float) (x * o + z * p) * 100.0F; + r = MathHelper.clamp(r, 0.0F, 150.0F); + float capeZOffset = (float) (x * p - z * o) * 100.0F; + capeZOffset = MathHelper.clamp(capeZOffset, -20.0F, 20.0F); + if (r < 0.0F) { + r = 0.0F; + } - float backCapeRotation = MathHelper.clamp(6.0F + r / 2.0F + q, -30, 60); - float frontCapeRotation = MathHelper.clamp(-(6.0F + r / 2.0F + q), -25, 0); - // Transform and render the custom cape - ms.push(); - ms.translate(0, -0.05, 0.0); // Push up and backwards, then rotate - ms.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(backCapeRotation)); - ms.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(s / 2.0F)); - ms.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180.0F - s / 1.25F)); - ms.translate(0, 0.05, -0.325); // Move back down - if (player.isInSneakingPose()) { - ms.translate(0, 0.15, 0.125); - } - VertexConsumer vertexConsumer = vertices.getBuffer(RenderLayer.getEntitySolid(SpectrumModelLayers.BEDROCK_ARMOR_LOCATION)); - BedrockArmorCapeModel.CAPE_MODEL.render(ms, vertexConsumer, light, OverlayTexture.DEFAULT_UV); - ms.pop(); + float t = MathHelper.lerp(h, player.prevStrideDistance, player.strideDistance); + q += MathHelper.sin(MathHelper.lerp(h, player.prevHorizontalSpeed, player.horizontalSpeed) * 6.0F) * 32.0F * t; + + if (player.isInSneakingPose()) { + q += 25.0F; + } + + float frontCapeRotation = MathHelper.clamp(-(6.0F + r / 2.0F + q), -25, 0); // Transform and render front cloth + VertexConsumer vertexConsumer = vertices.getBuffer(RenderLayer.getEntitySolid(SpectrumModelLayers.BEDROCK_ARMOR_LOCATION)); ms.push(); ms.translate(0, 0.35, 0); ms.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(frontCapeRotation)); if (!player.isInSneakingPose()) { - ms.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(s / 2.0F)); + ms.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(capeZOffset / 2.0F)); } + + // Make some space for your legs if crouching ms.translate(0, -0.65, -0.15); if (player.isInSneakingPose()) { ms.translate(0, 0.05, 0.35); @@ -105,7 +92,29 @@ public CapeFeatureRendererMixin(FeatureRendererContext & ModelWithHead> { - + @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/entity/LivingEntity;FFFFFF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/ModelPart;rotate(Lnet/minecraft/client/util/math/MatrixStack;)V", shift = At.Shift.AFTER), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD) - private void render(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, T livingEntity, float animationProgress, float h, float j, float k, float l, float m, CallbackInfo ci, ItemStack itemStack, Item item, boolean bl) { + private void spectrum$renderSkull(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, T livingEntity, float animationProgress, float h, float j, float k, float l, float m, CallbackInfo ci, ItemStack itemStack, Item item, boolean bl) { if (item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof SpectrumSkullBlock spectrumSkullBlock) { m = 1.1875F; matrixStack.scale(m, -m, -m); if (bl) { matrixStack.translate(0.0D, 0.0625D, 0.0D); } - + matrixStack.translate(-0.5D, 0.0D, -0.5D); - + SpectrumSkullBlock.SpectrumSkullBlockType skullType = (SpectrumSkullBlock.SpectrumSkullBlockType) spectrumSkullBlock.getSkullType(); RenderLayer renderLayer = SpectrumSkullBlockEntityRenderer.getRenderLayer(skullType); SkullBlockEntityModel model = SpectrumSkullBlockEntityRenderer.getModel(skullType); diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/InGameHudMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/InGameHudMixin.java deleted file mode 100644 index c308e558c0..0000000000 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/InGameHudMixin.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.dafuqs.spectrum.mixin.client; - -import de.dafuqs.spectrum.registries.SpectrumStatusEffects; -import de.dafuqs.spectrum.render.HudRenderers; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.DrawableHelper; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.player.PlayerEntity; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Mutable; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Environment(EnvType.CLIENT) -@Mixin(InGameHud.class) -public abstract class InGameHudMixin extends DrawableHelper { - - @Shadow - @Final - @Mutable - private final MinecraftClient client; - @Shadow - private int scaledWidth; - @Shadow - private int scaledHeight; - - public InGameHudMixin(MinecraftClient client) { - this.client = client; - } - - @Inject(method = "renderHealthBar(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/entity/player/PlayerEntity;IIIIFIIIZ)V", at = @At(value = "TAIL")) - private void spectrum$renderStatusBars(MatrixStack matrices, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking, CallbackInfo ci) { - HudRenderers.renderAzureDike(matrices, scaledWidth, scaledHeight, player); - } - - @ModifyVariable(method = "renderHealthBar", at = @At("STORE"), ordinal = 7) - private int spectrum$showDivinityHardcoreHearts(int i, MatrixStack matrices, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking) { - if(player.hasStatusEffect(SpectrumStatusEffects.DIVINITY)) { - return 9 * 5; - } - return i; - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/ItemFrameEntityRendererMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/ItemFrameEntityRendererMixin.java index 787c9ba272..2b67017693 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/ItemFrameEntityRendererMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/ItemFrameEntityRendererMixin.java @@ -1,14 +1,12 @@ package de.dafuqs.spectrum.mixin.client; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.render.entity.ItemFrameEntityRenderer; -import net.minecraft.entity.decoration.ItemFrameEntity; -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.dafuqs.spectrum.entity.*; +import net.fabricmc.api.*; +import net.minecraft.client.render.entity.*; +import net.minecraft.entity.decoration.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; @Environment(EnvType.CLIENT) @Mixin(ItemFrameEntityRenderer.class) @@ -16,7 +14,7 @@ public abstract class ItemFrameEntityRendererMixin { @Inject(at = @At("HEAD"), method = "getLight(Lnet/minecraft/entity/decoration/ItemFrameEntity;II)I", cancellable = true) private void getLight(T itemFrame, int glowLight, int regularLight, CallbackInfoReturnable callbackInfoReturnable) { - if (itemFrame.getType() == SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME) { + if (itemFrame.getType() == SpectrumEntityTypes.GLOW_PHANTOM_FRAME) { // TODO: still needed? Redstone aware? callbackInfoReturnable.setReturnValue(glowLight); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/ItemRendererMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/ItemRendererMixin.java index 4f10ef2ffb..80661950c0 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/ItemRendererMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/ItemRendererMixin.java @@ -30,4 +30,9 @@ public abstract class ItemRendererMixin { SpectrumItemPredicates.currentItemRenderMode = renderMode; } + @Inject(at = @At("HEAD"), method = "innerRenderInGui(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;IIII)V") + private void spectrum$storeItemRenderMode3(LivingEntity entity, ItemStack itemStack, int x, int y, int seed, int depth, CallbackInfo ci) { + SpectrumItemPredicates.currentItemRenderMode = ModelTransformation.Mode.GUI; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/LightmapTextureManagerMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/LightmapTextureManagerMixin.java new file mode 100644 index 0000000000..2e3c813502 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/LightmapTextureManagerMixin.java @@ -0,0 +1,22 @@ +package de.dafuqs.spectrum.mixin.client; + +import com.llamalad7.mixinextras.injector.*; +import de.dafuqs.spectrum.deeper_down.*; +import net.minecraft.client.*; +import net.minecraft.client.render.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; + +@Mixin(LightmapTextureManager.class) + +public class LightmapTextureManagerMixin { + + @ModifyReturnValue(method = "getDarkness(Lnet/minecraft/entity/LivingEntity;FF)F", at = @At("RETURN")) + private static float spectrum$getDarkness(float original) { + if (DDDimension.DEEPER_DOWN_DIMENSION_KEY.equals(MinecraftClient.getInstance().player.world.getRegistryKey())) { + return Math.max(0.12F, original); + } + return original; + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/PotionItemClientMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/PotionItemClientMixin.java index 5b97a506ad..52f1703ec4 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/PotionItemClientMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/PotionItemClientMixin.java @@ -10,7 +10,6 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -27,7 +26,7 @@ public abstract class PotionItemClientMixin { private void spectrum$makePotionUnidentifiable(ItemStack stack, World world, List tooltip, TooltipContext context, CallbackInfo ci) { NbtCompound nbtCompound = stack.getNbt(); if (nbtCompound != null && nbtCompound.contains("spectrum_unidentifiable", NbtElement.BYTE_TYPE) && nbtCompound.getBoolean("spectrum_unidentifiable")) { - tooltip.add(new TranslatableText("item.spectrum.potion.tooltip.unidentifiable")); + tooltip.add(Text.translatable("item.spectrum.potion.tooltip.unidentifiable")); ci.cancel(); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/TranslationStorageMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/TranslationStorageMixin.java new file mode 100644 index 0000000000..ecd4ec4798 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/TranslationStorageMixin.java @@ -0,0 +1,49 @@ +package de.dafuqs.spectrum.mixin.client; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.resource.language.TranslationStorage; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.*; + +@Mixin(TranslationStorage.class) +public class TranslationStorageMixin { + + @Mutable + @Shadow + @Final + private Map translations; + + @Inject(method = "", at = @At("TAIL")) + private void addTranslations(Map translations, boolean rightToLeft, CallbackInfo ci) { + Calendar calendar = Calendar.getInstance(); + if(calendar.get(Calendar.MONTH) != Calendar.APRIL || calendar.get(Calendar.DAY_OF_MONTH) != 14) return; + + Map builder = new HashMap<>(translations); + builder.put("block.spectrum.crystallarieum", getCrystallarieuaeuieueum()); + + this.translations = builder; + } + + private static String getCrystallarieuaeuieueum() { + List possibilities = new ArrayList<>() {{ + add("Crystallarieum"); + add("Crystallerium"); + add("Crystallarium"); + add("Crystallium"); + add("Crystalleium"); + add("Crystallum"); + add("Crystallarieium"); + add("Christalerium"); + }}; + char c = MinecraftClient.getInstance().getSession().getUsername().toCharArray()[0]; + return possibilities.get((int) c % possibilities.size()); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/TransparentBlockMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/TransparentBlockMixin.java index cee29d8550..701d6aa7bd 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/TransparentBlockMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/TransparentBlockMixin.java @@ -18,8 +18,8 @@ public abstract class TransparentBlockMixin { @Inject(method = "isSideInvisible", at = @At("HEAD"), cancellable = true) public void dontRenderVanillaPlayerOnlyGlass(BlockState state, BlockState stateFrom, Direction direction, CallbackInfoReturnable callbackInfoReturnable) { - if (this.equals(Blocks.GLASS) && stateFrom.getBlock().equals(SpectrumBlocks.VANILLA_PLAYER_ONLY_GLASS) || - this.equals(Blocks.TINTED_GLASS) && stateFrom.getBlock().equals(SpectrumBlocks.TINTED_PLAYER_ONLY_GLASS)) { + if (this.equals(Blocks.GLASS) && stateFrom.getBlock().equals(SpectrumBlocks.VANILLA_SEMI_PERMEABLE_GLASS) || + this.equals(Blocks.TINTED_GLASS) && stateFrom.getBlock().equals(SpectrumBlocks.TINTED_SEMI_PERMEABLE_GLASS)) { callbackInfoReturnable.setReturnValue(true); } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/WorldRendererMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/client/WorldRendererMixin.java index f7d301a713..9ba55a0b21 100644 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/WorldRendererMixin.java +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/WorldRendererMixin.java @@ -1,48 +1,30 @@ package de.dafuqs.spectrum.mixin.client; -import de.dafuqs.spectrum.energy.InkPowered; -import de.dafuqs.spectrum.helpers.BuildingHelper; -import de.dafuqs.spectrum.items.magic_items.BuildingStaffItem; -import de.dafuqs.spectrum.items.magic_items.ExchangeStaffItem; -import de.dafuqs.spectrum.items.magic_items.PlacementStaffItem; -import de.dafuqs.spectrum.render.HudRenderers; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.ShapeContext; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.magic_items.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import de.dafuqs.spectrum.render.*; +import net.fabricmc.api.*; +import net.minecraft.block.*; +import net.minecraft.client.*; +import net.minecraft.client.network.*; import net.minecraft.client.render.*; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.hit.BlockHitResult; -import net.minecraft.util.hit.HitResult; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Matrix4f; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.profiler.Profiler; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import oshi.util.tuples.Triplet; +import net.minecraft.client.util.math.*; +import net.minecraft.client.world.*; +import net.minecraft.entity.*; +import net.minecraft.item.*; +import net.minecraft.util.hit.*; +import net.minecraft.util.math.*; +import net.minecraft.util.profiler.*; +import net.minecraft.util.shape.*; +import org.jetbrains.annotations.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; +import oshi.util.tuples.*; -import java.util.List; -import java.util.Optional; +import java.util.*; @Environment(EnvType.CLIENT) @Mixin(value = WorldRenderer.class) @@ -54,27 +36,18 @@ public abstract class WorldRendererMixin { @Shadow private ClientWorld world; + // if the mixin renders a bigger outline than the default 1:1. Cancels default outline @Unique private boolean renderedExtendedOutline = false; - @Shadow - private static void drawShapeOutline(MatrixStack matrixStack, VertexConsumer vertexConsumer, VoxelShape voxelShape, double d, double e, double f, float g, float h, float i, float j) { - } - - @Shadow - public abstract void scheduleTerrainUpdate(); - - @Shadow - public abstract void playSong(@Nullable SoundEvent song, BlockPos songPosition); - @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;FJZLnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/GameRenderer;Lnet/minecraft/client/render/LightmapTextureManager;Lnet/minecraft/util/math/Matrix4f;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/hit/HitResult;getType()Lnet/minecraft/util/hit/HitResult$Type;"), locals = LocalCapture.CAPTURE_FAILHARD) - private void renderExtendedBlockOutline(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f positionMatrix, CallbackInfo ci, Profiler profiler, boolean b, Vec3d vec3d, double d, double e, double f, Matrix4f matrix4f2, boolean b2, Frustum frustum2, float g, boolean b25, boolean b3, VertexConsumerProvider.Immediate immediate, HitResult hitResult2) { + private void renderExtendedBlockOutline(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f positionMatrix, CallbackInfo ci, Profiler profiler, boolean b, Vec3d vec3d, double d, double e, double f, Matrix4f matrix4f2, boolean b2, Frustum frustum2, float g, boolean b25, boolean b3, VertexConsumerProvider.Immediate immediate) { renderedExtendedOutline = false; HudRenderers.doNotRenderOverlay(); if (client.player != null && renderBlockOutline) { - for(ItemStack handStack : client.player.getItemsHand()) { + for (ItemStack handStack : client.player.getHandItems()) { Item handItem = handStack.getItem(); if (handItem instanceof PlacementStaffItem) { HitResult hitResult = this.client.crosshairTarget; @@ -98,17 +71,17 @@ private boolean renderPlacementStaffOutline(MatrixStack matrices, Camera camera, BlockState lookingAtState = this.world.getBlockState(lookingAtPos); ClientPlayerEntity player = client.player; - if (player.isCreative() || !BuildingStaffItem.isBlacklisted(lookingAtState)) { - Block lookingAtBlock = lookingAtState.getBlock(); - Item item = lookingAtBlock.asItem(); - VoxelShape shape = VoxelShapes.empty(); - - if (item != Items.AIR) { - int itemCountInInventory = Integer.MAX_VALUE; - int inkLimit = Integer.MAX_VALUE; - if (!player.isCreative()) { - Triplet inventoryItemAndCount = BuildingHelper.getBuildingItemCountInInventoryIncludingSimilars(player, lookingAtBlock); - item = inventoryItemAndCount.getB(); + if (player.isCreative() || BuildingStaffItem.canProcess(lookingAtState, this.world, lookingAtPos, player)) { + Block lookingAtBlock = lookingAtState.getBlock(); + Item item = lookingAtBlock.asItem(); + VoxelShape shape = VoxelShapes.empty(); + + if (item != Items.AIR) { + int itemCountInInventory = Integer.MAX_VALUE; + int inkLimit = Integer.MAX_VALUE; + if (!player.isCreative()) { + Triplet inventoryItemAndCount = BuildingHelper.getBuildingItemCountInInventoryIncludingSimilars(player, lookingAtBlock); + item = inventoryItemAndCount.getB(); itemCountInInventory = inventoryItemAndCount.getC(); inkLimit = (int) InkPowered.getAvailableInk(player, PlacementStaffItem.USED_COLOR) / PlacementStaffItem.INK_COST_PER_BLOCK; } @@ -116,7 +89,7 @@ private boolean renderPlacementStaffOutline(MatrixStack matrices, Camera camera, boolean sneaking = player.isSneaking(); if (itemCountInInventory == 0) { HudRenderers.setItemStackToRender(new ItemStack(item), 0, false); - } else if(inkLimit == 0) { + } else if (inkLimit == 0) { HudRenderers.setItemStackToRender(new ItemStack(item), 1, true); } else { int usableCount = Math.min(itemCountInInventory, inkLimit); @@ -131,7 +104,7 @@ private boolean renderPlacementStaffOutline(MatrixStack matrices, Camera camera, HudRenderers.setItemStackToRender(new ItemStack(item), positions.size(), false); VertexConsumer linesBuffer = immediate.getBuffer(RenderLayer.getLines()); - drawShapeOutline(matrices, linesBuffer, shape, (double) lookingAtPos.getX() - d, (double) lookingAtPos.getY() - e, (double) lookingAtPos.getZ() - f, 0.0F, 0.0F, 0.0F, 0.4F); + WorldRendererAccessor.invokeDrawCuboidShapeOutline(matrices, linesBuffer, shape, (double) lookingAtPos.getX() - d, (double) lookingAtPos.getY() - e, (double) lookingAtPos.getZ() - f, 0.0F, 0.0F, 0.0F, 0.4F); return true; } } @@ -146,24 +119,24 @@ private boolean renderExchangeStaffOutline(MatrixStack matrices, Camera camera, BlockState lookingAtState = this.world.getBlockState(lookingAtPos); ClientPlayerEntity player = client.player; - if (player.isCreative() || !BuildingStaffItem.isBlacklisted(lookingAtState)) { - Block lookingAtBlock = lookingAtState.getBlock(); - Optional exchangeBlock = ExchangeStaffItem.getBlockTarget(exchangeStaffItemStack); - if (exchangeBlock.isPresent() && exchangeBlock.get() != lookingAtBlock) { - Item exchangeBlockItem = exchangeBlock.get().asItem(); - VoxelShape shape = VoxelShapes.empty(); - - if (exchangeBlockItem != Items.AIR) { - int itemCountInInventory = Integer.MAX_VALUE; - int inkLimit = Integer.MAX_VALUE; - if (!player.isCreative()) { + if (player.isCreative() || BuildingStaffItem.canProcess(lookingAtState, this.world, lookingAtPos, player)) { + Block lookingAtBlock = lookingAtState.getBlock(); + Optional exchangeBlock = ExchangeStaffItem.getBlockTarget(exchangeStaffItemStack); + if (exchangeBlock.isPresent() && exchangeBlock.get() != lookingAtBlock) { + Item exchangeBlockItem = exchangeBlock.get().asItem(); + VoxelShape shape = VoxelShapes.empty(); + + if (exchangeBlockItem != Items.AIR) { + int itemCountInInventory = Integer.MAX_VALUE; + int inkLimit = Integer.MAX_VALUE; + if (!player.isCreative()) { itemCountInInventory = player.getInventory().count(exchangeBlockItem); inkLimit = (int) InkPowered.getAvailableInk(player, ExchangeStaffItem.USED_COLOR) / ExchangeStaffItem.INK_COST_PER_BLOCK; } if (itemCountInInventory == 0) { HudRenderers.setItemStackToRender(new ItemStack(exchangeBlockItem), 0, false); - } else if(inkLimit == 0) { + } else if (inkLimit == 0) { HudRenderers.setItemStackToRender(new ItemStack(exchangeBlockItem), 1, true); } else { int usableCount = Math.min(itemCountInInventory, inkLimit); @@ -176,9 +149,8 @@ private boolean renderExchangeStaffOutline(MatrixStack matrices, Camera camera, } HudRenderers.setItemStackToRender(new ItemStack(exchangeBlockItem), positions.size(), false); - VertexConsumer linesBuffer = immediate.getBuffer(RenderLayer.getLines()); - drawShapeOutline(matrices, linesBuffer, shape, (double) lookingAtPos.getX() - d, (double) lookingAtPos.getY() - e, (double) lookingAtPos.getZ() - f, 0.0F, 0.0F, 0.0F, 0.4F); + WorldRendererAccessor.invokeDrawCuboidShapeOutline(matrices, linesBuffer, shape, (double) lookingAtPos.getX() - d, (double) lookingAtPos.getY() - e, (double) lookingAtPos.getZ() - f, 0.0F, 0.0F, 0.0F, 0.4F); return true; } } diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/AccessorClientAdvancementManager.java b/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/AccessorClientAdvancementManager.java deleted file mode 100644 index 34eb91bce3..0000000000 --- a/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/AccessorClientAdvancementManager.java +++ /dev/null @@ -1,17 +0,0 @@ -package de.dafuqs.spectrum.mixin.client.accessors; - -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.AdvancementProgress; -import net.minecraft.client.network.ClientAdvancementManager; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -import java.util.Map; - -@Mixin(ClientAdvancementManager.class) -public interface AccessorClientAdvancementManager { - - @Accessor - Map getAdvancementProgresses(); - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/BakedOverrideAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/BakedOverrideAccessor.java new file mode 100644 index 0000000000..0b6541411f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/BakedOverrideAccessor.java @@ -0,0 +1,13 @@ +package de.dafuqs.spectrum.mixin.client.accessors; + +import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.json.ModelOverrideList; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ModelOverrideList.BakedOverride.class) +public interface BakedOverrideAccessor { + + @Accessor() + BakedModel getModel(); +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/ModelOverrideListAccessor.java b/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/ModelOverrideListAccessor.java new file mode 100644 index 0000000000..28560469d3 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/client/accessors/ModelOverrideListAccessor.java @@ -0,0 +1,12 @@ +package de.dafuqs.spectrum.mixin.client.accessors; + +import net.minecraft.client.render.model.json.ModelOverrideList; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ModelOverrideList.class) +public interface ModelOverrideListAccessor { + + @Accessor() + ModelOverrideList.BakedOverride[] getOverrides(); +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/compat/Plugin.java b/src/main/java/de/dafuqs/spectrum/mixin/compat/Plugin.java new file mode 100644 index 0000000000..f9664682c5 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/compat/Plugin.java @@ -0,0 +1,66 @@ +package de.dafuqs.spectrum.mixin.compat; + +import net.fabricmc.loader.api.FabricLoader; +import org.objectweb.asm.tree.ClassNode; +import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; +import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + +import java.util.List; +import java.util.Set; + +public final class Plugin implements IMixinConfigPlugin { + private static final String COMPAT_PACKAGE_ROOT; + private static final String COMPAT_PRESENT_KEY = "present"; + private static final FabricLoader LOADER = FabricLoader.getInstance(); + + static { + // Shorthand getting the plugin package to ensure not making trouble with other mixins + COMPAT_PACKAGE_ROOT = Plugin.class.getPackageName(); + } + + @Override + public void onLoad(String mixinPackage) { + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @Override + public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (!mixinClassName.startsWith(COMPAT_PACKAGE_ROOT)) { + return true; // We do not meddle with the others' work + } + String[] compatRoot = COMPAT_PACKAGE_ROOT.split("\\."); + String[] mixinPath = mixinClassName.split("\\."); + // The id of the mod the mixin depends on + String compatModId = mixinPath[compatRoot.length]; + // Whether the mixin is for when the mod is loaded or not + boolean isPresentMixin = mixinPath[compatRoot.length+1].equals(COMPAT_PRESENT_KEY); + + if (isPresentMixin) { + // We only load the mixin if the mod we want to be present is found + return LOADER.isModLoaded(compatModId); + } + return !LOADER.isModLoaded(compatModId); + } + + @Override + public void acceptTargets(Set myTargets, Set otherTargets) { + } + + @Override + public List getMixins() { + return List.of(); + } + + @Override + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } + + @Override + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/absent/InGameHudMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/absent/InGameHudMixin.java new file mode 100644 index 0000000000..c39a5e2fb8 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/absent/InGameHudMixin.java @@ -0,0 +1,51 @@ +package de.dafuqs.spectrum.mixin.compat.healthoverlay.absent; + +import de.dafuqs.spectrum.registries.SpectrumStatusEffects; +import de.dafuqs.spectrum.render.HudRenderers; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.DrawableHelper; +import net.minecraft.client.gui.hud.InGameHud; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.player.PlayerEntity; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Environment(EnvType.CLIENT) +@Mixin(InGameHud.class) +public abstract class InGameHudMixin extends DrawableHelper { + + @Shadow + @Final + @Mutable + private final MinecraftClient client; + @Shadow + private int scaledWidth; + @Shadow + private int scaledHeight; + + public InGameHudMixin(MinecraftClient client) { + this.client = client; + } + + @Inject(method = "renderHealthBar(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/entity/player/PlayerEntity;IIIIFIIIZ)V", at = @At(value = "TAIL")) + private void spectrum$renderStatusBars(MatrixStack matrices, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking, CallbackInfo ci) { + HudRenderers.renderAzureDike(matrices, scaledWidth, scaledHeight, player); + } + + @ModifyVariable(method = "renderHealthBar", at = @At("STORE"), ordinal = 7) + private int spectrum$showDivinityHardcoreHearts(int i, MatrixStack matrices, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking) { + if (player.hasStatusEffect(SpectrumStatusEffects.DIVINITY)) { + return 9 * 5; + } + return i; + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/present/HeartMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/present/HeartMixin.java new file mode 100644 index 0000000000..05b0178e68 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/present/HeartMixin.java @@ -0,0 +1,24 @@ +package de.dafuqs.spectrum.mixin.compat.healthoverlay.present; + +import de.dafuqs.spectrum.registries.SpectrumStatusEffects; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import terrails.healthoverlay.heart.Heart; + +@Environment(EnvType.CLIENT) +@Mixin(Heart.class) +public abstract class HeartMixin { + + @ModifyVariable(method = "draw(Lnet/minecraft/client/util/math/MatrixStack;IIZLterrails/healthoverlay/heart/HeartType;)V", at = @At("STORE"), ordinal = 1) + private boolean heartRendererRenderPlayerHeartsGetHealthInjector(boolean hardcore) { + if (!hardcore && MinecraftClient.getInstance().player.hasStatusEffect(SpectrumStatusEffects.DIVINITY)) { + return true; + } + return hardcore; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/present/InGameHudMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/present/InGameHudMixin.java new file mode 100644 index 0000000000..7d16866658 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/mixin/compat/healthoverlay/present/InGameHudMixin.java @@ -0,0 +1,27 @@ +package de.dafuqs.spectrum.mixin.compat.healthoverlay.present; + +import de.dafuqs.spectrum.mixin.accessors.*; +import de.dafuqs.spectrum.render.*; +import net.fabricmc.api.*; +import net.minecraft.client.*; +import net.minecraft.client.gui.hud.*; +import net.minecraft.client.util.math.*; +import net.minecraft.entity.player.*; +import org.spongepowered.asm.mixin.*; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.*; +import terrails.healthoverlay.render.*; + +@Environment(EnvType.CLIENT) +@Mixin(HeartRenderer.class) +public abstract class InGameHudMixin { + + // Execute the display after HealthOverlay did its own, to avoid conflict + @Inject(method = "renderPlayerHearts", at = @At("TAIL"), remap = false, locals = LocalCapture.CAPTURE_FAILEXCEPTION) + private void renderPlayerHeartsAzureDikeInjector(MatrixStack poseStack, PlayerEntity player, CallbackInfo ci) { + InGameHud hud = MinecraftClient.getInstance().inGameHud; + int scaledWidth = ((InGameHudAccessor) hud).getWidth(); + int scaledHeight = ((InGameHudAccessor) hud).getHeight(); + HudRenderers.renderAzureDike(poseStack, scaledWidth, scaledHeight, player); + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/mixin/mod_compat/ColoredLeavesBlockMixin.java b/src/main/java/de/dafuqs/spectrum/mixin/mod_compat/ColoredLeavesBlockMixin.java deleted file mode 100644 index 34873aa2da..0000000000 --- a/src/main/java/de/dafuqs/spectrum/mixin/mod_compat/ColoredLeavesBlockMixin.java +++ /dev/null @@ -1,59 +0,0 @@ -/*package de.dafuqs.spectrum.mixin; - -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.blocks.conditional.ColoredLeavesBlock; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import vazkii.botania.api.block.IHornHarvestable; - -@Mixin(ColoredLeavesBlock.class) -public abstract class ColoredLeavesBlockMixin implements IHornHarvestable { - - @Override - public boolean hasSpecialHornHarvest(World world, BlockPos pos, ItemStack stack, EnumHornType hornType) { - return true; - } - - @Override - public boolean hasSpecialHornHarvest(World level, BlockPos pos, ItemStack stack, EnumHornType hornType, @Nullable LivingEntity user) { - return true; - } - - @Override - public boolean canHornHarvest(World world, BlockPos pos, ItemStack stack, EnumHornType hornType) { - return false; - } - - @Override - public boolean canHornHarvest(World level, BlockPos pos, ItemStack stack, EnumHornType hornType, @Nullable LivingEntity user) { - if(hornType == EnumHornType.CANOPY && user instanceof PlayerEntity player) { - BlockState blockState = level.getBlockState(pos); - if (blockState.getBlock() instanceof ColoredLeavesBlock coloredLeavesBlock) { - return AdvancementHelper.hasAdvancement(player, coloredLeavesBlock.getCloakAdvancementIdentifier()); - } - } - return false; - } - - @Override - public void harvestByHorn(World world, BlockPos pos, ItemStack stack, EnumHornType hornType) { - this.harvestByHorn(world, pos, stack, hornType, null); - } - - @Override - public void harvestByHorn(World level, BlockPos pos, ItemStack stack, EnumHornType hornType, @Nullable LivingEntity user) { - BlockState blockState = level.getBlockState(pos); - BlockEntity blockEntity = level.getBlockEntity(pos); - Block.dropStacks(blockState, level, pos, blockEntity, user, stack); - } - -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketReceiver.java b/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketReceiver.java index c44ab3c9a3..3662ca8a07 100644 --- a/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketReceiver.java +++ b/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketReceiver.java @@ -5,11 +5,9 @@ import de.dafuqs.spectrum.energy.color.InkColor; import de.dafuqs.spectrum.helpers.InventoryHelper; import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.inventories.BedrockAnvilScreenHandler; -import de.dafuqs.spectrum.inventories.CompactingChestScreenHandler; -import de.dafuqs.spectrum.inventories.InkColorSelectedPacketReceiver; -import de.dafuqs.spectrum.inventories.ParticleSpawnerScreenHandler; +import de.dafuqs.spectrum.inventories.*; import de.dafuqs.spectrum.items.magic_items.EnderSpliceItem; +import de.dafuqs.spectrum.items.tools.WorkstaffItem; import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; import de.dafuqs.spectrum.registries.SpectrumItems; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; @@ -34,21 +32,18 @@ public class SpectrumC2SPacketReceiver { public static void registerC2SReceivers() { ServerPlayNetworking.registerGlobalReceiver(SpectrumC2SPackets.RENAME_ITEM_IN_BEDROCK_ANVIL_PACKET_ID, (server, player, handler, buf, responseSender) -> { - String name = buf.readString(); - - if (player.currentScreenHandler instanceof BedrockAnvilScreenHandler) { - BedrockAnvilScreenHandler bedrockAnvilScreenHandler = (BedrockAnvilScreenHandler) player.currentScreenHandler; + if (player.currentScreenHandler instanceof BedrockAnvilScreenHandler bedrockAnvilScreenHandler) { + String name = buf.readString(); String string = SharedConstants.stripInvalidChars(name); if (string.length() <= 50) { bedrockAnvilScreenHandler.setNewItemName(string); } } }); + ServerPlayNetworking.registerGlobalReceiver(SpectrumC2SPackets.ADD_LORE_IN_BEDROCK_ANVIL_PACKET_ID, (server, player, handler, buf, responseSender) -> { - String lore = buf.readString(); - - if (player.currentScreenHandler instanceof BedrockAnvilScreenHandler) { - BedrockAnvilScreenHandler bedrockAnvilScreenHandler = (BedrockAnvilScreenHandler) player.currentScreenHandler; + if (player.currentScreenHandler instanceof BedrockAnvilScreenHandler bedrockAnvilScreenHandler) { + String lore = buf.readString(); String string = SharedConstants.stripInvalidChars(lore); if (string.length() <= 256) { bedrockAnvilScreenHandler.setNewItemLore(string); @@ -92,7 +87,7 @@ public static void registerC2SReceivers() { // pay cost Ingredient payment = Ingredient.fromPacket(buf); - for(ItemStack remainder : InventoryHelper.removeFromInventoryWithRemainders(List.of(payment), player.getInventory())) { + for (ItemStack remainder : InventoryHelper.removeFromInventoryWithRemainders(List.of(payment), player.getInventory())) { InventoryHelper.smartAddToInventory(remainder, player.getInventory(), null); } @@ -123,26 +118,36 @@ public static void registerC2SReceivers() { ServerPlayNetworking.registerGlobalReceiver(SpectrumC2SPackets.INK_COLOR_SELECTED, (server, player, handler, buf, responseSender) -> { ScreenHandler screenHandler = player.currentScreenHandler; - if(screenHandler instanceof InkColorSelectedPacketReceiver inkColorSelectedPacketReceiver) { + if (screenHandler instanceof InkColorSelectedPacketReceiver inkColorSelectedPacketReceiver) { boolean isSelection = buf.readBoolean(); InkColor color; - if(isSelection) { + if (isSelection) { String inkColorString = buf.readString(); color = InkColor.of(inkColorString); } else { color = null; } + // send the newly selected color to all players that have the same gui open + // this is minus the player that selected that entry (since they have that info already) inkColorSelectedPacketReceiver.onInkColorSelectedPacket(color); - for(ServerPlayerEntity serverPlayer : server.getPlayerManager().getPlayerList()) { - if(serverPlayer.currentScreenHandler instanceof InkColorSelectedPacketReceiver receiver && receiver.getBlockEntity() != null && receiver.getBlockEntity() == inkColorSelectedPacketReceiver.getBlockEntity()) { + for (ServerPlayerEntity serverPlayer : server.getPlayerManager().getPlayerList()) { + if (serverPlayer.currentScreenHandler instanceof InkColorSelectedPacketReceiver receiver && receiver.getBlockEntity() != null && receiver.getBlockEntity() == inkColorSelectedPacketReceiver.getBlockEntity()) { SpectrumS2CPacketSender.sendInkColorSelected(color, serverPlayer); } } } }); + ServerPlayNetworking.registerGlobalReceiver(SpectrumC2SPackets.WORKSTAFF_TOGGLE_SELECTED, (server, player, handler, buf, responseSender) -> { + ScreenHandler screenHandler = player.currentScreenHandler; + if (screenHandler instanceof WorkstaffScreenHandler workstaffScreenHandler) { + WorkstaffItem.GUIToggle toggle = WorkstaffItem.GUIToggle.values()[buf.readInt()]; + workstaffScreenHandler.onWorkstaffToggleSelectionPacket(toggle); + } + }); + } } diff --git a/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketSender.java b/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketSender.java index 2b31aad965..6da007aa69 100644 --- a/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketSender.java +++ b/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPacketSender.java @@ -1,6 +1,7 @@ package de.dafuqs.spectrum.networking; import de.dafuqs.spectrum.energy.color.InkColor; +import de.dafuqs.spectrum.items.tools.WorkstaffItem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; @@ -33,7 +34,7 @@ public static void sendBindEnderSpliceToPlayer(PlayerEntity playerEntity) { public static void sendInkColorSelectedInGUI(@Nullable InkColor color) { PacketByteBuf packetByteBuf = PacketByteBufs.create(); - if(color == null) { + if (color == null) { packetByteBuf.writeBoolean(false); } else { packetByteBuf.writeBoolean(true); @@ -41,5 +42,11 @@ public static void sendInkColorSelectedInGUI(@Nullable InkColor color) { } ClientPlayNetworking.send(SpectrumC2SPackets.INK_COLOR_SELECTED, packetByteBuf); } + + public static void sendWorkstaffToggle(WorkstaffItem.GUIToggle toggle) { + PacketByteBuf packetByteBuf = PacketByteBufs.create(); + packetByteBuf.writeInt(toggle.ordinal()); + ClientPlayNetworking.send(SpectrumC2SPackets.WORKSTAFF_TOGGLE_SELECTED, packetByteBuf); + } } diff --git a/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPackets.java b/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPackets.java index dcb20ee25f..8f9d692e36 100644 --- a/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPackets.java +++ b/src/main/java/de/dafuqs/spectrum/networking/SpectrumC2SPackets.java @@ -12,6 +12,7 @@ public class SpectrumC2SPackets { public static final Identifier GUIDEBOOK_HINT_BOUGHT = SpectrumCommon.locate("guidebook_tip_used"); public static final Identifier BIND_ENDER_SPLICE_TO_PLAYER = SpectrumCommon.locate("bind_ender_splice_to_player"); public static final Identifier INK_COLOR_SELECTED = SpectrumCommon.locate("ink_color_select"); + public static final Identifier WORKSTAFF_TOGGLE_SELECTED = SpectrumCommon.locate("workstaff_toggle_select"); public static final Identifier CONFIRMATION_BUTTON_PRESSED = SpectrumCommon.locate("confirmation_button_pressed"); } diff --git a/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketReceiver.java b/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketReceiver.java index 371183460a..e2d3cfdb34 100644 --- a/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketReceiver.java +++ b/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketReceiver.java @@ -1,81 +1,49 @@ package de.dafuqs.spectrum.networking; -import de.dafuqs.spectrum.SpectrumClient; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.particle_spawner.ParticleSpawnerBlockEntity; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlock; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntity; -import de.dafuqs.spectrum.blocks.present.PresentBlock; -import de.dafuqs.spectrum.blocks.shooting_star.ShootingStarBlock; -import de.dafuqs.spectrum.energy.InkStorageBlockEntity; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.entity.entity.ShootingStarEntity; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.particle_spawner.*; +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import de.dafuqs.spectrum.blocks.pedestal.*; +import de.dafuqs.spectrum.blocks.present.*; +import de.dafuqs.spectrum.blocks.shooting_star.*; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.enums.*; import de.dafuqs.spectrum.helpers.ColorHelper; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.inventories.InkColorSelectedPacketReceiver; -import de.dafuqs.spectrum.mixin.client.accessors.BossBarHudAccessor; -import de.dafuqs.spectrum.particle.ParticlePattern; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.inventories.*; +import de.dafuqs.spectrum.mixin.client.accessors.*; +import de.dafuqs.spectrum.particle.*; import de.dafuqs.spectrum.particle.effect.*; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import de.dafuqs.spectrum.render.bossbar.SpectrumClientBossBar; -import de.dafuqs.spectrum.sound.CraftingBlockSoundInstance; -import de.dafuqs.spectrum.sound.DivinitySoundInstance; -import de.dafuqs.spectrum.sound.TakeOffBeltSoundInstance; -import de.dafuqs.spectrum.spells.InkSpellEffects; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.minecraft.block.Block; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.hud.BossBarHud; -import net.minecraft.client.gui.hud.ClientBossBar; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.particle.ItemStackParticleEffect; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.Vec3f; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import net.minecraft.world.dimension.DimensionType; -import org.jetbrains.annotations.NotNull; +import de.dafuqs.spectrum.registries.*; +import de.dafuqs.spectrum.render.bossbar.*; +import de.dafuqs.spectrum.sound.*; +import de.dafuqs.spectrum.spells.*; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.client.networking.v1.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.client.gui.hud.*; +import net.minecraft.client.network.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.screen.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.util.registry.*; +import net.minecraft.world.dimension.*; -import java.util.HashMap; -import java.util.Map; -import java.util.Random; -import java.util.UUID; +import java.util.*; @Environment(EnvType.CLIENT) public class SpectrumS2CPacketReceiver { public static void registerS2CReceivers() { - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_PARTICLE_AT_EXACT_BLOCK_POSITION_WITHOUT_VELOCITY_ID, (client, handler, buf, responseSender) -> { - BlockPos position = buf.readBlockPos(); - ParticleType particleType = Registry.PARTICLE_TYPE.get(buf.readIdentifier()); - int amount = buf.readInt(); - if (particleType instanceof ParticleEffect particleEffect) { - client.execute(() -> { - // Everything in this lambda is running on the render thread - for (int i = 0; i < amount; i++) { - client.getInstance().player.world.addParticle(particleEffect, position.getX() + 0.5, position.getY() + 0.5, position.getZ() + 0.5, 0, 0, 0); - } - }); - } - }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_PARTICLE_PACKET_WITH_RANDOM_OFFSET_AND_VELOCITY_ID, (client, handler, buf, responseSender) -> { + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_PARTICLE_WITH_RANDOM_OFFSET_AND_VELOCITY, (client, handler, buf, responseSender) -> { Vec3d position = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); ParticleType particleType = Registry.PARTICLE_TYPE.get(buf.readIdentifier()); int amount = buf.readInt(); @@ -84,7 +52,7 @@ public static void registerS2CReceivers() { if (particleType instanceof ParticleEffect particleEffect) { client.execute(() -> { // Everything in this lambda is running on the render thread - + Random random = client.world.random; for (int i = 0; i < amount; i++) { @@ -94,28 +62,31 @@ public static void registerS2CReceivers() { double randomVelocityX = randomVelocity.x - random.nextDouble() * randomVelocity.x * 2; double randomVelocityY = randomVelocity.y - random.nextDouble() * randomVelocity.y * 2; double randomVelocityZ = randomVelocity.z - random.nextDouble() * randomVelocity.z * 2; - - client.getInstance().player.world.addParticle(particleEffect, + + client.world.addParticle(particleEffect, position.getX() + randomOffsetX, position.getY() + randomOffsetY, position.getZ() + randomOffsetZ, randomVelocityX, randomVelocityY, randomVelocityZ); } }); } }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_PARTICLE_PACKET_WITH_EXACT_OFFSET_AND_VELOCITY_ID, (client, handler, buf, responseSender) -> { - Vec3d position = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); + + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_PARTICLE_WITH_EXACT_VELOCITY, (client, handler, buf, responseSender) -> { + double posX = buf.readDouble(); + double posY = buf.readDouble(); + double posZ = buf.readDouble(); ParticleType particleType = Registry.PARTICLE_TYPE.get(buf.readIdentifier()); int amount = buf.readInt(); - Vec3d randomOffset = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); - Vec3d velocity = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); + double velocityX = buf.readDouble(); + double velocityY = buf.readDouble(); + double velocityZ = buf.readDouble(); if (particleType instanceof ParticleEffect particleEffect) { client.execute(() -> { // Everything in this lambda is running on the render thread for (int i = 0; i < amount; i++) { - client.getInstance().player.world.addParticle(particleEffect, - position.getX() + randomOffset.x, position.getY() + randomOffset.y, position.getZ() + randomOffset.z, - velocity.x, velocity.y, velocity.z); + client.world.addParticle(particleEffect, + posX, posY, posZ, + velocityX, velocityY, velocityZ); } }); } @@ -129,42 +100,24 @@ public static void registerS2CReceivers() { if (particleType instanceof ParticleEffect particleEffect) { client.execute(() -> { // Everything in this lambda is running on the render thread - playParticleWithPatternAndVelocityClient(client.world, position, particleEffect, pattern, velocity); + ParticleHelper.playParticleWithPatternAndVelocityClient(client.world, position, particleEffect, pattern, velocity); }); } }); - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_LIGHT_CREATED_PACKET_ID, (client, handler, buf, responseSender) -> { - BlockPos position = buf.readBlockPos(); - client.execute(() -> { - Random random = client.world.random; - // Everything in this lambda is running on the render thread - for (int i = 0; i < 20; i++) { - client.getInstance().player.world.addParticle(SpectrumParticleTypes.SPARKLESTONE_SPARKLE, position.getX() + 0.5, position.getY() + 0.5, position.getZ() + 0.5, 0.3 - random.nextFloat() * 0.6, 0.3 - random.nextFloat() * 0.6, 0.3 - random.nextFloat() * 0.6); - } - }); - }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_SMALL_LIGHT_CREATED_PACKET_ID, (client, handler, buf, responseSender) -> { - BlockPos position = buf.readBlockPos(); - client.execute(() -> { - Random random = client.world.random; - // Everything in this lambda is running on the render thread - for (int i = 0; i < 4; i++) { - client.getInstance().player.world.addParticle(SpectrumParticleTypes.SPARKLESTONE_SPARKLE, position.getX() + 0.5, position.getY() + 0.5, position.getZ() + 0.5, 0.1 - random.nextFloat() * 0.2, 0.1 - random.nextFloat() * 0.2, 0.1 - random.nextFloat() * 0.2); - } - }); - }); - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.START_SKY_LERPING, (client, handler, buf, responseSender) -> { DimensionType dimensionType = client.world.getDimension(); long sourceTime = buf.readLong(); long targetTime = buf.readLong(); - SpectrumClient.skyLerper.trigger(dimensionType, sourceTime, client.getTickDelta(), targetTime); - - if (client.world.isSkyVisible(client.player.getBlockPos())) { - client.player.playSound(SpectrumSoundEvents.CELESTIAL_POCKET_WATCH_FLY_BY, SoundCategory.NEUTRAL, 0.15F, 1.0F); - } + + client.execute(() -> { + // Everything in this lambda is running on the render thread + SpectrumClient.skyLerper.trigger(dimensionType, sourceTime, client.getTickDelta(), targetTime); + if (client.world.isSkyVisible(client.player.getBlockPos())) { + client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.CELESTIAL_POCKET_WATCH_FLY_BY, SoundCategory.NEUTRAL, 0.15F, 1.0F, false); + } + }); + }); ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_PEDESTAL_CRAFTING_FINISHED_PARTICLE_PACKET_ID, (client, handler, buf, responseSender) -> { @@ -174,7 +127,7 @@ public static void registerS2CReceivers() { Random random = client.world.random; // Everything in this lambda is running on the render thread for (int i = 0; i < 10; i++) { - client.getInstance().player.world.addParticle(new ItemStackParticleEffect(ParticleTypes.ITEM, itemStack), position.getX() + 0.5, position.getY() + 1, position.getZ() + 0.5, 0.15 - random.nextFloat() * 0.3, random.nextFloat() * 0.15 + 0.1, 0.15 - random.nextFloat() * 0.3); + client.world.addParticle(new ItemStackParticleEffect(ParticleTypes.ITEM, itemStack), position.getX() + 0.5, position.getY() + 1, position.getZ() + 0.5, 0.15 - random.nextFloat() * 0.3, random.nextFloat() * 0.15 + 0.1, 0.15 - random.nextFloat() * 0.3); } }); }); @@ -187,7 +140,7 @@ public static void registerS2CReceivers() { client.execute(() -> { // Everything in this lambda is running on the render thread - ShootingStarEntity.playHitParticles(client.getInstance().player.world, x, y, z, shootingStarType, 25); + ShootingStarEntity.playHitParticles(client.world, x, y, z, shootingStarType, 25); }); }); @@ -200,7 +153,7 @@ public static void registerS2CReceivers() { Vec3f color = ColorHelper.getVec(dyeColor); float velocityModifier = 0.25F; for (Vec3d velocity : Support.VECTORS_16) { - client.getInstance().player.world.addParticle( + client.world.addParticle( new ParticleSpawnerParticleEffect(new Identifier("spectrum:particle/liquid_crystal_sparkle"), 0.0F, color, 1.5F, 40, false, true), sourcePos.x, sourcePos.y, sourcePos.z, velocity.x * velocityModifier, 0.0F, velocity.z * velocityModifier @@ -226,14 +179,14 @@ public static void registerS2CReceivers() { int randomLifetime = 30 + random.nextInt(20); // color1 - client.getInstance().player.world.addParticle( + client.world.addParticle( new ParticleSpawnerParticleEffect(new Identifier("spectrum:particle/liquid_crystal_sparkle"), 0.5F, colorVec1, 1.0F, randomLifetime, false, true), position.getX() + 0.5, position.getY() + 0.5, position.getZ(), 0.15 - random.nextFloat() * 0.3, random.nextFloat() * 0.15 + 0.1, 0.15 - random.nextFloat() * 0.3 ); // color2 - client.getInstance().player.world.addParticle( + client.world.addParticle( new ParticleSpawnerParticleEffect(new Identifier("spectrum:particle/liquid_crystal_sparkle"), 0.5F, colorVec2, 1.0F, randomLifetime, false, true), position.getX() + 0.5, position.getY(), position.getZ() + 0.5, 0.15 - random.nextFloat() * 0.3, random.nextFloat() * 0.15 + 0.1, 0.15 - random.nextFloat() * 0.3 @@ -260,80 +213,66 @@ public static void registerS2CReceivers() { PedestalBlockEntity.spawnCraftingStartParticles(client.world, position); }); }); - + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.CHANGE_PARTICLE_SPAWNER_SETTINGS_CLIENT_PACKET_ID, (client, handler, buf, responseSender) -> { BlockPos pos = buf.readBlockPos(); - if (client.getInstance().world.getBlockEntity(pos) instanceof ParticleSpawnerBlockEntity) { - ((ParticleSpawnerBlockEntity) client.getInstance().world.getBlockEntity(pos)).applySettings(buf); + if (client.world.getBlockEntity(pos) instanceof ParticleSpawnerBlockEntity) { + ((ParticleSpawnerBlockEntity) client.world.getBlockEntity(pos)).applySettings(buf); } }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.INITIATE_ITEM_TRANSFER, (client, handler, buf, responseSender) -> { - ItemTransfer itemTransfer = ItemTransfer.readFromBuf(buf); - BlockPos blockPos = itemTransfer.getOrigin(); + + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PASTEL_TRANSMISSION, (client, handler, buf, responseSender) -> { + UUID networkUUID = buf.readUuid(); + int travelTime = buf.readInt(); + PastelTransmission transmission = PastelTransmission.fromPacket(buf); + BlockPos spawnPos = transmission.getStartPos(); + int color = ColorHelper.getColorFromInt(networkUUID.hashCode()); + client.execute(() -> { // Everything in this lambda is running on the render thread - client.getInstance().player.world.addImportantParticle(new ItemTransferParticleEffect(itemTransfer), true, (double) blockPos.getX() + 0.5D, (double) blockPos.getY() + 0.5D, (double) blockPos.getZ() + 0.5D, 0.0D, 0.0D, 0.0D); + client.world.addParticle(new PastelTransmissionParticleEffect(transmission.getNodePositions(), transmission.getVariant().toStack(), travelTime, color), spawnPos.getX() + 0.5, spawnPos.getY() + 0.5, spawnPos.getZ() + 0.5, 0, 0, 0); }); }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.INITIATE_TRANSPHERE, (client, handler, buf, responseSender) -> { - Transphere transphere = Transphere.readFromBuf(buf); - BlockPos blockPos = transphere.getOrigin(); + + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.ITEM_TRANSMISSION, (client, handler, buf, responseSender) -> { + SimpleTransmission transmission = SimpleTransmission.readFromBuf(buf); client.execute(() -> { // Everything in this lambda is running on the render thread - client.getInstance().player.world.addImportantParticle(new TransphereParticleEffect(transphere), true, (double) blockPos.getX() + 0.5D, (double) blockPos.getY() + 0.5D, (double) blockPos.getZ() + 0.5D, 0.0D, 0.0D, 0.0D); + client.world.addImportantParticle(new ItemTransmissionParticleEffect(transmission.getDestination(), transmission.getArrivalInTicks()), true, transmission.getOrigin().getX(), transmission.getOrigin().getY(), transmission.getOrigin().getZ(), 0.0D, 0.0D, 0.0D); }); }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.INITIATE_EXPERIENCE_TRANSFER, (client, handler, buf, responseSender) -> { - ExperienceTransfer experienceTransfer = ExperienceTransfer.readFromBuf(buf); - BlockPos blockPos = experienceTransfer.getOrigin(); + + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.COLOR_TRANSMISSION, (client, handler, buf, responseSender) -> { + ColoredTransmission transmission = ColoredTransmission.readFromBuf(buf); client.execute(() -> { // Everything in this lambda is running on the render thread - client.getInstance().player.world.addImportantParticle(new ExperienceTransferParticleEffect(experienceTransfer), true, (double) blockPos.getX() + 0.5D, (double) blockPos.getY() + 0.5D, (double) blockPos.getZ() + 0.5D, 0.0D, 0.0D, 0.0D); + client.world.addImportantParticle(new ColoredTransmissionParticleEffect(transmission.getDestination(), transmission.getArrivalInTicks(), transmission.getDyeColor()), true, transmission.getOrigin().getX(), transmission.getOrigin().getY(), transmission.getOrigin().getZ(), 0.0D, 0.0D, 0.0D); }); }); - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.INITIATE_BLOCK_POS_EVENT_TRANSFER, (client, handler, buf, responseSender) -> { - BlockPosEventTransfer blockPosEventTransfer = BlockPosEventTransfer.readFromBuf(buf); - BlockPos blockPos = blockPosEventTransfer.getOrigin(); + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.EXPERIENCE_TRANSMISSION, (client, handler, buf, responseSender) -> { + SimpleTransmission transmission = SimpleTransmission.readFromBuf(buf); client.execute(() -> { // Everything in this lambda is running on the render thread - client.getInstance().player.world.addImportantParticle(new BlockPosEventTransferParticleEffect(blockPosEventTransfer), true, (double) blockPos.getX() + 0.5D, (double) blockPos.getY() + 0.5D, (double) blockPos.getZ() + 0.5D, 0.0D, 0.0D, 0.0D); + client.world.addImportantParticle(new ExperienceTransmissionParticleEffect(transmission.getDestination(), transmission.getArrivalInTicks()), true, transmission.getOrigin().getX(), transmission.getOrigin().getY(), transmission.getOrigin().getZ(), 0.0D, 0.0D, 0.0D); }); }); - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.INITIATE_WIRELESS_REDSTONE_TRANSMISSION, (client, handler, buf, responseSender) -> { - WirelessRedstoneTransmission wirelessRedstoneTransmission = WirelessRedstoneTransmission.readFromBuf(buf); - BlockPos blockPos = wirelessRedstoneTransmission.getOrigin(); + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.BLOCK_POS_EVENT_TRANSMISSION, (client, handler, buf, responseSender) -> { + SimpleTransmission transmission = SimpleTransmission.readFromBuf(buf); client.execute(() -> { // Everything in this lambda is running on the render thread - for (int i = 0; i < 10; i++) { - client.getInstance().player.world.addImportantParticle(new WirelessRedstoneTransmissionParticleEffect(wirelessRedstoneTransmission), true, (double) blockPos.getX() + 0.5D, (double) blockPos.getY() + 0.5D, (double) blockPos.getZ() + 0.5D, 0.0D, 0.0D, 0.0D); - } + client.world.addImportantParticle(new BlockPosEventTransmissionParticleEffect(transmission.getDestination(), transmission.getArrivalInTicks()), true, transmission.getOrigin().getX(), transmission.getOrigin().getY(), transmission.getOrigin().getZ(), 0.0D, 0.0D, 0.0D); }); }); - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_ITEM_ENTITY_ABSORBED_PARTICLE_EFFECT_PACKET_ID, (client, handler, buf, responseSender) -> { - double posX = buf.readDouble(); - double posY = buf.readDouble(); - double posZ = buf.readDouble(); - + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.WIRELESS_REDSTONE_TRANSMISSION, (client, handler, buf, responseSender) -> { + WirelessRedstoneTransmission transmission = WirelessRedstoneTransmission.readFromBuf(buf); client.execute(() -> { // Everything in this lambda is running on the render thread - client.getInstance().player.world.addParticle(SpectrumParticleTypes.BLUE_BUBBLE_POP, posX, posY, posZ, 0, 0, 0); - }); - }); - - ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_EXPERIENCE_ORB_ENTITY_ABSORBED_PARTICLE_EFFECT_PACKET_ID, (client, handler, buf, responseSender) -> { - double posX = buf.readDouble(); - double posY = buf.readDouble(); - double posZ = buf.readDouble(); - - client.execute(() -> { - // Everything in this lambda is running on the render thread - client.getInstance().player.world.addParticle(SpectrumParticleTypes.GREEN_BUBBLE_POP, posX, posY, posZ, 0, 0, 0); + for (int i = 0; i < 10; i++) { + client.world.addImportantParticle(new WirelessRedstoneTransmissionParticleEffect(transmission.getDestination(), transmission.getArrivalInTicks()), true, transmission.getOrigin().getX(), transmission.getOrigin().getY(), transmission.getOrigin().getZ(), 0.0D, 0.0D, 0.0D); + } }); }); @@ -367,7 +306,7 @@ public static void registerS2CReceivers() { client.execute(() -> { // Everything in this lambda is running on the render thread - BossBarHud bossBarHud = client.getInstance().inGameHud.getBossBarHud(); + BossBarHud bossBarHud = client.inGameHud.getBossBarHud(); Map bossBars = ((BossBarHudAccessor) bossBarHud).getBossBars(); if (bossBars.containsKey(bossBarUUID)) { ClientBossBar clientBossBar = bossBars.get(bossBarUUID); @@ -384,26 +323,26 @@ public static void registerS2CReceivers() { int colorEntries = buf.readInt(); Map colors = new HashMap<>(); - for(int i = 0; i < colorEntries; i++) { + for (int i = 0; i < colorEntries; i++) { colors.put(InkColor.of(buf.readString()), buf.readLong()); } client.execute(() -> { // Everything in this lambda is running on the render thread - BlockEntity blockEntity = client.getInstance().player.world.getBlockEntity(blockPos); - if(blockEntity instanceof InkStorageBlockEntity inkStorageBlockEntity) { + BlockEntity blockEntity = client.world.getBlockEntity(blockPos); + if (blockEntity instanceof InkStorageBlockEntity inkStorageBlockEntity) { inkStorageBlockEntity.getEnergyStorage().setEnergy(colors, colorTotal); } }); }); ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.INK_COLOR_SELECTED, (client, handler, buf, responseSender) -> { - ScreenHandler screenHandler = MinecraftClient.getInstance().player.currentScreenHandler; - if(screenHandler instanceof InkColorSelectedPacketReceiver inkColorSelectedPacketReceiver) { + ScreenHandler screenHandler = client.player.currentScreenHandler; + if (screenHandler instanceof InkColorSelectedPacketReceiver inkColorSelectedPacketReceiver) { boolean isSelection = buf.readBoolean(); InkColor color; - if(isSelection) { + if (isSelection) { String inkColorString = buf.readString(); color = InkColor.of(inkColorString); } else { @@ -431,7 +370,7 @@ public static void registerS2CReceivers() { int colorCount = buf.readInt(); Map colors = new HashMap<>(); - for(int i = 0; i < colorCount; i++) { + for (int i = 0; i < colorCount; i++) { DyeColor dyeColor = DyeColor.byId(buf.readByte()); int amount = buf.readByte(); colors.put(dyeColor, amount); @@ -439,36 +378,57 @@ public static void registerS2CReceivers() { client.execute(() -> { // Everything in this lambda is running on the render thread - PresentBlock.spawnParticles(MinecraftClient.getInstance().world, pos, colors); + PresentBlock.spawnParticles(client.world, pos, colors); }); }); ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_ASCENSION_APPLIED_EFFECTS, (client, handler, buf, responseSender) -> { client.execute(() -> { // Everything in this lambda is running on the render thread - MinecraftClient.getInstance().world.playSound(MinecraftClient.getInstance().player.getBlockPos(), SpectrumSoundEvents.FADING_PLACED, SoundCategory.PLAYERS, 1.0F, 1.0F, false); - SpectrumClient.minecraftClient.getSoundManager().play(new DivinitySoundInstance()); + client.world.playSound(client.player.getBlockPos(), SpectrumSoundEvents.FADING_PLACED, SoundCategory.PLAYERS, 1.0F, 1.0F, false); + client.getSoundManager().play(new DivinitySoundInstance()); }); }); ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.PLAY_DIVINITY_APPLIED_EFFECTS, (client, handler, buf, responseSender) -> { client.execute(() -> { // Everything in this lambda is running on the render thread - ClientPlayerEntity player = MinecraftClient.getInstance().player; + ClientPlayerEntity player = client.player; client.particleManager.addEmitter(player, SpectrumParticleTypes.DIVINITY, 30); - MinecraftClient.getInstance().gameRenderer.showFloatingItem(SpectrumItems.DIVINATION_HEART.getDefaultStack()); - MinecraftClient.getInstance().world.playSound(player.getBlockPos(), SpectrumSoundEvents.FAILING_PLACED, SoundCategory.PLAYERS, 1.0F, 1.0F, false); + client.gameRenderer.showFloatingItem(SpectrumItems.DIVINATION_HEART.getDefaultStack()); + client.world.playSound(player.getBlockPos(), SpectrumSoundEvents.FAILING_PLACED, SoundCategory.PLAYERS, 1.0F, 1.0F, false); - SpectrumS2CPacketReceiver.playParticleWithPatternAndVelocityClient(player.world, player.getPos(), SpectrumParticleTypes.WHITE_CRAFTING, ParticlePattern.SIXTEEN, 0.4); - SpectrumS2CPacketReceiver.playParticleWithPatternAndVelocityClient(player.world, player.getPos(), SpectrumParticleTypes.RED_CRAFTING, ParticlePattern.SIXTEEN, 0.4); + ParticleHelper.playParticleWithPatternAndVelocityClient(player.world, player.getPos(), SpectrumParticleTypes.WHITE_CRAFTING, ParticlePattern.SIXTEEN, 0.4); + ParticleHelper.playParticleWithPatternAndVelocityClient(player.world, player.getPos(), SpectrumParticleTypes.RED_CRAFTING, ParticlePattern.SIXTEEN, 0.4); }); }); - } - - public static void playParticleWithPatternAndVelocityClient(World world, Vec3d position, ParticleEffect particleEffect, @NotNull ParticlePattern pattern, double velocity) { - for (Vec3d vec3d : pattern.getVectors()) { - world.addParticle(particleEffect, position.getX(), position.getY(), position.getZ(), vec3d.x * velocity, vec3d.y * velocity, vec3d.z * velocity); - } + + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.MOONSTONE_BLAST, (client, handler, buf, responseSender) -> { + ClientPlayerEntity player = client.player; + + double x = buf.readDouble(); + double y = buf.readDouble(); + double z = buf.readDouble(); + float power = buf.readFloat(); + double playerVelocityX = buf.readDouble(); + double playerVelocityY = buf.readDouble(); + double playerVelocityZ = buf.readDouble(); + + client.execute(() -> { + MoonstoneStrike.create(client.world, null, null, x, y, z, power); + player.setVelocity(player.getVelocity().add(playerVelocityX, playerVelocityY, playerVelocityZ)); + }); + }); + + ClientPlayNetworking.registerGlobalReceiver(SpectrumS2CPackets.DISPLAY_HUD_MESSAGE, (client, handler, buf, responseSender) -> { + Text text = buf.readText(); + boolean tinted = buf.readBoolean(); + + client.execute(() -> { + client.inGameHud.setOverlayMessage(text, tinted); + }); + }); + } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketSender.java b/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketSender.java index e2f4371301..28c3383f2d 100644 --- a/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketSender.java +++ b/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPacketSender.java @@ -1,87 +1,48 @@ package de.dafuqs.spectrum.networking; -import de.dafuqs.spectrum.blocks.memory.MemoryBlockEntity; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntity; -import de.dafuqs.spectrum.blocks.pedestal.PedestalVariant; -import de.dafuqs.spectrum.energy.InkStorage; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.entity.entity.ShootingStarEntity; -import de.dafuqs.spectrum.particle.ParticlePattern; +import de.dafuqs.spectrum.blocks.memory.*; +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import de.dafuqs.spectrum.blocks.pedestal.*; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.particle.*; import de.dafuqs.spectrum.particle.effect.*; -import de.dafuqs.spectrum.registries.color.ColorRegistry; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; -import net.fabricmc.fabric.api.networking.v1.PlayerLookup; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.ExperienceOrbEntity; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.registries.color.*; +import de.dafuqs.spectrum.spells.*; +import net.fabricmc.fabric.api.networking.v1.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.particle.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.Collection; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; +import java.util.*; public class SpectrumS2CPacketSender { - - /** - * Play particle effect - * - * @param world the world of the pedestal - * @param position the pos of the particles - * @param particleEffectIdentifier The particle effect identifier to play - */ - public static void playParticleWithRandomOffsetAndVelocity(ServerWorld world, BlockPos position, Identifier particleEffectIdentifier, int amount) { - PacketByteBuf buf = PacketByteBufs.create(); - buf.writeBlockPos(position); - buf.writeIdentifier(particleEffectIdentifier); - buf.writeInt(amount); - // Iterate over all players tracking a position in the world and send the packet to each player - for (ServerPlayerEntity player : PlayerLookup.tracking(world, position)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_PARTICLE_AT_EXACT_BLOCK_POSITION_WITHOUT_VELOCITY_ID, buf); - } - } - + /** * Play particle effect * - * @param world the world of the pedestal + * @param world the world * @param position the pos of the particles * @param particleEffect The particle effect to play */ - public static void playParticleWithRandomOffsetAndVelocity(ServerWorld world, BlockPos position, ParticleType particleEffect, int amount) { - playParticleWithRandomOffsetAndVelocity(world, position, Registry.PARTICLE_TYPE.getId(particleEffect), amount); - } - - /** - * Play particle effect - * - * @param world the world of the pedestal - * @param position the pos of the particles - * @param particleEffectIdentifier The particle effect identifier to play - */ - public static void playParticleWithRandomOffsetAndVelocity(ServerWorld world, @NotNull Vec3d position, Identifier particleEffectIdentifier, int amount, @NotNull Vec3d randomOffset, @NotNull Vec3d randomVelocity) { + public static void playParticleWithRandomOffsetAndVelocity(ServerWorld world, Vec3d position, @NotNull ParticleEffect particleEffect, int amount, Vec3d randomOffset, Vec3d randomVelocity) { PacketByteBuf buf = PacketByteBufs.create(); buf.writeDouble(position.x); buf.writeDouble(position.y); buf.writeDouble(position.z); - buf.writeIdentifier(particleEffectIdentifier); + buf.writeIdentifier(Registry.PARTICLE_TYPE.getId(particleEffect.getType())); buf.writeInt(amount); buf.writeDouble(randomOffset.x); buf.writeDouble(randomOffset.y); @@ -92,63 +53,48 @@ public static void playParticleWithRandomOffsetAndVelocity(ServerWorld world, @N // Iterate over all players tracking a position in the world and send the packet to each player for (ServerPlayerEntity player : PlayerLookup.tracking(world, new BlockPos(position))) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_PARTICLE_PACKET_WITH_RANDOM_OFFSET_AND_VELOCITY_ID, buf); + ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_PARTICLE_WITH_RANDOM_OFFSET_AND_VELOCITY, buf); } } - + /** * Play particle effect * - * @param world the world of the pedestal + * @param world the world * @param position the pos of the particles * @param particleEffect The particle effect to play */ - public static void playParticleWithExactOffsetAndVelocity(ServerWorld world, Vec3d position, @NotNull ParticleEffect particleEffect, int amount, Vec3d randomOffset, Vec3d randomVelocity) { - playParticleWithExactOffsetAndVelocity(world, position, Registry.PARTICLE_TYPE.getId(particleEffect.getType()), amount, randomOffset, randomVelocity); + public static void playParticles(ServerWorld world, BlockPos position, ParticleEffect particleEffect, int amount) { + playParticleWithExactVelocity(world, Vec3d.ofCenter(position), particleEffect, amount, Vec3d.ZERO); } - + /** * Play particle effect * - * @param world the world of the pedestal + * @param world the world * @param position the pos of the particles * @param particleEffect The particle effect to play */ - public static void playParticleWithExactOffsetAndVelocity(ServerWorld world, Vec3d position, @NotNull ParticleEffect particleEffect, int amount) { - playParticleWithExactOffsetAndVelocity(world, position, Registry.PARTICLE_TYPE.getId(particleEffect.getType()), amount, Vec3d.ZERO, Vec3d.ZERO); - } - - /** - * Play anvil crafting particle effect - * - * @param world the world of the pedestal - * @param position the pos of the particles - * @param particleEffectIdentifier The particle effect identifier to play - */ - public static void playParticleWithExactOffsetAndVelocity(ServerWorld world, @NotNull Vec3d position, Identifier particleEffectIdentifier, int amount, @NotNull Vec3d randomOffset, @NotNull Vec3d velocity) { + public static void playParticleWithExactVelocity(ServerWorld world, @NotNull Vec3d position, @NotNull ParticleEffect particleEffect, int amount, @NotNull Vec3d velocity) { PacketByteBuf buf = PacketByteBufs.create(); buf.writeDouble(position.x); buf.writeDouble(position.y); buf.writeDouble(position.z); - buf.writeIdentifier(particleEffectIdentifier); + buf.writeIdentifier(Registry.PARTICLE_TYPE.getId(particleEffect.getType())); buf.writeInt(amount); - buf.writeDouble(randomOffset.x); - buf.writeDouble(randomOffset.y); - buf.writeDouble(randomOffset.z); buf.writeDouble(velocity.x); buf.writeDouble(velocity.y); buf.writeDouble(velocity.z); // Iterate over all players tracking a position in the world and send the packet to each player for (ServerPlayerEntity player : PlayerLookup.tracking(world, new BlockPos(position))) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_PARTICLE_PACKET_WITH_EXACT_OFFSET_AND_VELOCITY_ID, buf); + ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_PARTICLE_WITH_EXACT_VELOCITY, buf); } } - + /** * Play particles matching a spawn pattern - * - * @param world the world of the pedestal + * @param world the world * @param position the pos of the particles * @param particleEffect The particle effect to play */ @@ -163,51 +109,14 @@ public static void playParticleWithPatternAndVelocity(@Nullable PlayerEntity not // Iterate over all players tracking a position in the world and send the packet to each player for (ServerPlayerEntity player : PlayerLookup.tracking(world, new BlockPos(position))) { - if (notThisPlayerEntity == null || !player.equals(notThisPlayerEntity)) { + if (!player.equals(notThisPlayerEntity)) { ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_PARTICLE_PACKET_WITH_PATTERN_AND_VELOCITY_ID, buf); } } } - - /** - * Play anvil crafting particle effect - * - * @param world the world of the pedestal - * @param position the pos of the particles - * @param particleEffect The particle effect to play - */ - public static void playParticleWithRandomOffsetAndVelocity(ServerWorld world, Vec3d position, @NotNull ParticleEffect particleEffect, int amount, Vec3d randomOffset, Vec3d randomVelocity) { - playParticleWithRandomOffsetAndVelocity(world, position, Registry.PARTICLE_TYPE.getId(particleEffect.getType()), amount, randomOffset, randomVelocity); - } - - /** - * @param world the world of the pedestal - * @param blockPos the blockpos of the newly created light - */ - public static void sendLightCreatedParticle(World world, BlockPos blockPos) { - PacketByteBuf buf = PacketByteBufs.create(); - buf.writeBlockPos(blockPos); - // Iterate over all players tracking a position in the world and send the packet to each player - for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_LIGHT_CREATED_PACKET_ID, buf); - } - } - - /** - * @param world the world of the pedestal - * @param blockPos the blockpos of the newly created light - */ - public static void sendSmallLightCreatedParticle(World world, BlockPos blockPos) { - PacketByteBuf buf = PacketByteBufs.create(); - buf.writeBlockPos(blockPos); - // Iterate over all players tracking a position in the world and send the packet to each player - for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_SMALL_LIGHT_CREATED_PACKET_ID, buf); - } - } - + /** - * @param world the world of the pedestal + * @param world the world * @param blockPos the blockpos of the pedestal * @param itemStack the itemstack that was crafted */ @@ -229,92 +138,79 @@ public static void sendPlayFusionCraftingFinishedParticles(World world, BlockPos if (optionalItemColor.isPresent()) { buf.writeInt(optionalItemColor.get().ordinal()); - } else { - buf.writeInt(DyeColor.LIGHT_GRAY.ordinal()); - } - - // Iterate over all players tracking a position in the world and send the packet to each player - for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_FUSION_CRAFTING_FINISHED_PARTICLE_PACKET_ID, buf); - } - } - - public static void sendItemTransferPacket(ServerWorld world, @NotNull ItemTransfer itemTransfer) { - BlockPos blockPos = itemTransfer.getOrigin(); - + } else { + buf.writeInt(DyeColor.LIGHT_GRAY.ordinal()); + } + + // Iterate over all players tracking a position in the world and send the packet to each player + for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) world, blockPos)) { + ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_FUSION_CRAFTING_FINISHED_PARTICLE_PACKET_ID, buf); + } + } + + public static void sendPastelTransmission(PastelNetwork network, int travelTime, @NotNull PastelTransmission transfer) { PacketByteBuf buf = PacketByteBufs.create(); - ItemTransfer.writeToBuf(buf, itemTransfer); - - for (ServerPlayerEntity player : PlayerLookup.tracking(world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.INITIATE_ITEM_TRANSFER, buf); + buf.writeUuid(network.getUUID()); + buf.writeInt(travelTime); + PastelTransmission.writeToBuf(buf, transfer); + + for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) network.getWorld(), transfer.getStartPos())) { + ServerPlayNetworking.send(player, SpectrumS2CPackets.PASTEL_TRANSMISSION, buf); } } + + public static void sendItemTransferPacket(ServerWorld world, @NotNull SimpleTransmission transfer) { + BlockPos blockPos = new BlockPos(transfer.getOrigin()); + + PacketByteBuf buf = PacketByteBufs.create(); + SimpleTransmission.writeToBuf(buf, transfer); + + for (ServerPlayerEntity player : PlayerLookup.tracking(world, blockPos)) { + ServerPlayNetworking.send(player, SpectrumS2CPackets.ITEM_TRANSMISSION, buf); + } + } - public static void playTransphereParticle(ServerWorld world, @NotNull Transphere transphere) { - BlockPos blockPos = transphere.getOrigin(); + public static void playColorTransmission(ServerWorld world, @NotNull ColoredTransmission transfer) { + BlockPos blockPos = new BlockPos(transfer.getOrigin()); PacketByteBuf buf = PacketByteBufs.create(); - Transphere.writeToBuf(buf, transphere); + ColoredTransmission.writeToBuf(buf, transfer); for (ServerPlayerEntity player : PlayerLookup.tracking(world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.INITIATE_TRANSPHERE, buf); + ServerPlayNetworking.send(player, SpectrumS2CPackets.COLOR_TRANSMISSION, buf); } } - public static void sendExperienceOrbTransferPacket(ServerWorld world, @NotNull ExperienceTransfer experienceTransfer) { - BlockPos blockPos = experienceTransfer.getOrigin(); + public static void playExperienceTransmission(ServerWorld world, @NotNull SimpleTransmission transfer) { + BlockPos blockPos = new BlockPos(transfer.getOrigin()); PacketByteBuf buf = PacketByteBufs.create(); - ExperienceTransfer.writeToBuf(buf, experienceTransfer); + SimpleTransmission.writeToBuf(buf, transfer); for (ServerPlayerEntity player : PlayerLookup.tracking(world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.INITIATE_EXPERIENCE_TRANSFER, buf); + ServerPlayNetworking.send(player, SpectrumS2CPackets.EXPERIENCE_TRANSMISSION, buf); } } - public static void sendBlockPosEventTransferPacket(ServerWorld world, @NotNull BlockPosEventTransfer blockPosEventTransfer) { - BlockPos blockPos = blockPosEventTransfer.getOrigin(); + public static void playBlockPosEventTransmission(ServerWorld world, @NotNull SimpleTransmission transfer) { + BlockPos blockPos = new BlockPos(transfer.getOrigin()); PacketByteBuf buf = PacketByteBufs.create(); - BlockPosEventTransfer.writeToBuf(buf, blockPosEventTransfer); + SimpleTransmission.writeToBuf(buf, transfer); for (ServerPlayerEntity player : PlayerLookup.tracking(world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.INITIATE_BLOCK_POS_EVENT_TRANSFER, buf); + ServerPlayNetworking.send(player, SpectrumS2CPackets.BLOCK_POS_EVENT_TRANSMISSION, buf); } } - public static void sendWirelessRedstonePacket(ServerWorld world, @NotNull WirelessRedstoneTransmission wirelessRedstoneTransmission) { - BlockPos blockPos = wirelessRedstoneTransmission.getOrigin(); + public static void playWirelessRedstoneTransmission(ServerWorld world, @NotNull WirelessRedstoneTransmission wirelessRedstoneTransmission) { + BlockPos blockPos = new BlockPos(wirelessRedstoneTransmission.getOrigin()); PacketByteBuf buf = PacketByteBufs.create(); WirelessRedstoneTransmission.writeToBuf(buf, wirelessRedstoneTransmission); for (ServerPlayerEntity player : PlayerLookup.tracking(world, blockPos)) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.INITIATE_WIRELESS_REDSTONE_TRANSMISSION, buf); - } - } - - public static void sendPlayItemEntityAbsorbedParticle(World world, @NotNull ItemEntity itemEntity) { - PacketByteBuf buf = PacketByteBufs.create(); - buf.writeDouble(itemEntity.getPos().x); - buf.writeDouble(itemEntity.getPos().y); - buf.writeDouble(itemEntity.getPos().z); - - // Iterate over all players tracking a position in the world and send the packet to each player - for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) world, itemEntity.getBlockPos())) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_ITEM_ENTITY_ABSORBED_PARTICLE_EFFECT_PACKET_ID, buf); - } - } - - public static void sendPlayExperienceOrbEntityAbsorbedParticle(World world, @NotNull ExperienceOrbEntity experienceOrbEntity) { - PacketByteBuf buf = PacketByteBufs.create(); - buf.writeDouble(experienceOrbEntity.getPos().x); - buf.writeDouble(experienceOrbEntity.getPos().y); - buf.writeDouble(experienceOrbEntity.getPos().z); - - // Iterate over all players tracking a position in the world and send the packet to each player - for (ServerPlayerEntity player : PlayerLookup.tracking((ServerWorld) world, experienceOrbEntity.getBlockPos())) { - ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_EXPERIENCE_ORB_ENTITY_ABSORBED_PARTICLE_EFFECT_PACKET_ID, buf); + ServerPlayNetworking.send(player, SpectrumS2CPackets.WIRELESS_REDSTONE_TRANSMISSION, buf); } } @@ -423,7 +319,7 @@ public static void updateBlockEntityInk(BlockPos pos, InkStorage inkStorage, Ser Map colors = inkStorage.getEnergy(); buf.writeInt(colors.size()); - for(Map.Entry color : colors.entrySet()) { + for (Map.Entry color : colors.entrySet()) { buf.writeString(color.getKey().toString()); buf.writeLong(color.getValue()); } @@ -433,7 +329,7 @@ public static void updateBlockEntityInk(BlockPos pos, InkStorage inkStorage, Ser public static void sendInkColorSelected(@Nullable InkColor color, ServerPlayerEntity player) { PacketByteBuf packetByteBuf = PacketByteBufs.create(); - if(color == null) { + if (color == null) { packetByteBuf.writeBoolean(false); } else { packetByteBuf.writeBoolean(true); @@ -460,7 +356,7 @@ public static void playPresentOpeningParticles(ServerWorld serverWorld, BlockPos PacketByteBuf packetByteBuf = PacketByteBufs.create(); packetByteBuf.writeBlockPos(pos); packetByteBuf.writeInt(colors.size()); - for(Map.Entry color : colors.entrySet()) { + for (Map.Entry color : colors.entrySet()) { packetByteBuf.writeByte(color.getKey().getId()); packetByteBuf.writeByte(color.getValue()); } @@ -480,5 +376,31 @@ public static void playDivinityAppliedEffects(ServerPlayerEntity player) { buf.writeInt(player.getId()); ServerPlayNetworking.send(player, SpectrumS2CPackets.PLAY_DIVINITY_APPLIED_EFFECTS, buf); } - + + public static void sendMoonstoneBlast(ServerWorld serverWorld, MoonstoneStrike moonstoneStrike) { + + // Iterate over all players tracking a position in the world and send the packet to each player + for (ServerPlayerEntity player : PlayerLookup.tracking(serverWorld, new BlockPos(moonstoneStrike.getX(), moonstoneStrike.getY(), moonstoneStrike.getZ()))) { + Vec3d playerVelocity = moonstoneStrike.getAffectedPlayers().getOrDefault(player, Vec3d.ZERO); + + PacketByteBuf buf = PacketByteBufs.create(); + buf.writeDouble(moonstoneStrike.getX()); + buf.writeDouble(moonstoneStrike.getY()); + buf.writeDouble(moonstoneStrike.getZ()); + buf.writeFloat(moonstoneStrike.getPower()); + buf.writeDouble(playerVelocity.x); + buf.writeDouble(playerVelocity.y); + buf.writeDouble(playerVelocity.z); + + ServerPlayNetworking.send(player, SpectrumS2CPackets.MOONSTONE_BLAST, buf); + } + } + + public static void sendHudMessage(ServerPlayerEntity player, Text text, boolean tinted) { + PacketByteBuf buf = PacketByteBufs.create(); + buf.writeText(text); + buf.writeBoolean(tinted); + ServerPlayNetworking.send(player, SpectrumS2CPackets.DISPLAY_HUD_MESSAGE, buf); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPackets.java b/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPackets.java index 41178b3b25..f8c01ece87 100644 --- a/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPackets.java +++ b/src/main/java/de/dafuqs/spectrum/networking/SpectrumS2CPackets.java @@ -1,38 +1,45 @@ package de.dafuqs.spectrum.networking; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.util.Identifier; +import de.dafuqs.spectrum.*; +import net.minecraft.util.*; public class SpectrumS2CPackets { - - public static final Identifier PLAY_LIGHT_CREATED_PACKET_ID = SpectrumCommon.locate("play_light_created_particle"); - public static final Identifier PLAY_SMALL_LIGHT_CREATED_PACKET_ID = SpectrumCommon.locate("play_small_light_created_particle"); + + // Simple particles + public static final Identifier PLAY_PARTICLE_WITH_RANDOM_OFFSET_AND_VELOCITY = SpectrumCommon.locate("play_particle_random"); + public static final Identifier PLAY_PARTICLE_WITH_EXACT_VELOCITY = SpectrumCommon.locate("play_particle_exact"); + public static final Identifier PLAY_PARTICLE_PACKET_WITH_PATTERN_AND_VELOCITY_ID = SpectrumCommon.locate("play_particle_with_pattern_and_velocity"); + public static final Identifier PLAY_PEDESTAL_CRAFTING_FINISHED_PARTICLE_PACKET_ID = SpectrumCommon.locate("play_pedestal_crafting_finished_particle"); public static final Identifier PLAY_PEDESTAL_UPGRADED_PARTICLE_PACKET_ID = SpectrumCommon.locate("play_pedestal_upgraded_particle"); - public static final Identifier PLAY_PEDESTAL_START_CRAFTING_PARTICLE_PACKET_ID = SpectrumCommon.locate("play_pedestal_start_crafting_particle"); + public static final Identifier PLAY_PEDESTAL_START_CRAFTING_PARTICLE_PACKET_ID = SpectrumCommon.locate("play_pedestal_start_crafting_particle"); public static final Identifier PLAY_FUSION_CRAFTING_FINISHED_PARTICLE_PACKET_ID = SpectrumCommon.locate("play_fusion_crafting_finished_particle"); - public static final Identifier PLAY_PARTICLE_AT_EXACT_BLOCK_POSITION_WITHOUT_VELOCITY_ID = SpectrumCommon.locate("play_particle"); - public static final Identifier PLAY_PARTICLE_PACKET_WITH_RANDOM_OFFSET_AND_VELOCITY_ID = SpectrumCommon.locate("play_particle_with_offset"); - public static final Identifier PLAY_PARTICLE_PACKET_WITH_EXACT_OFFSET_AND_VELOCITY_ID = SpectrumCommon.locate("play_particle_with_random_offset_and_velocity"); - public static final Identifier PLAY_PARTICLE_PACKET_WITH_PATTERN_AND_VELOCITY_ID = SpectrumCommon.locate("play_particle_with_pattern_and_velocity"); - public static final Identifier CHANGE_PARTICLE_SPAWNER_SETTINGS_CLIENT_PACKET_ID = SpectrumCommon.locate("change_particle_spawner_settings_client"); - public static final Identifier INITIATE_ITEM_TRANSFER = SpectrumCommon.locate("initiate_item_transfer"); - public static final Identifier INITIATE_TRANSPHERE = SpectrumCommon.locate("initiate_transphere"); - public static final Identifier INITIATE_EXPERIENCE_TRANSFER = SpectrumCommon.locate("initiate_experience_transfer"); - public static final Identifier INITIATE_BLOCK_POS_EVENT_TRANSFER = SpectrumCommon.locate("block_pos_event_transfer"); - public static final Identifier INITIATE_WIRELESS_REDSTONE_TRANSMISSION = SpectrumCommon.locate("initiate_wireless_redstone_transmission"); - public static final Identifier PLAY_ITEM_ENTITY_ABSORBED_PARTICLE_EFFECT_PACKET_ID = SpectrumCommon.locate("item_entity_absorbed"); - public static final Identifier PLAY_EXPERIENCE_ORB_ENTITY_ABSORBED_PARTICLE_EFFECT_PACKET_ID = SpectrumCommon.locate("experience_orb_entity_absorbed"); + public static final Identifier PLAY_SHOOTING_STAR_PARTICLES = SpectrumCommon.locate("play_shooting_star_particles"); + public static final Identifier PLAY_INK_EFFECT_PARTICLES = SpectrumCommon.locate("play_ink_effect_particles"); + public static final Identifier PLAY_PRESENT_OPENING_PARTICLES = SpectrumCommon.locate("play_present_opening_particles"); + + // Complex particles + public static final Identifier ITEM_TRANSMISSION = SpectrumCommon.locate("item_transmission"); + public static final Identifier COLOR_TRANSMISSION = SpectrumCommon.locate("color_transmission"); + public static final Identifier EXPERIENCE_TRANSMISSION = SpectrumCommon.locate("experience_transmission"); + public static final Identifier BLOCK_POS_EVENT_TRANSMISSION = SpectrumCommon.locate("block_pos_event_transmission"); + public static final Identifier WIRELESS_REDSTONE_TRANSMISSION = SpectrumCommon.locate("wireless_redstone_transmission"); + public static final Identifier PASTEL_TRANSMISSION = SpectrumCommon.locate("pastel_transmission"); + + // Sounds public static final Identifier PLAY_BLOCK_BOUND_SOUND_INSTANCE = SpectrumCommon.locate("play_pedestal_crafting_sound_instance"); public static final Identifier PLAY_TAKE_OFF_BELT_SOUND_INSTANCE = SpectrumCommon.locate("play_take_off_belt_sound_instance"); - public static final Identifier PLAY_SHOOTING_STAR_PARTICLES = SpectrumCommon.locate("play_shooting_star_particles"); + + // Others + public static final Identifier CHANGE_PARTICLE_SPAWNER_SETTINGS_CLIENT_PACKET_ID = SpectrumCommon.locate("change_particle_spawner_settings_client"); public static final Identifier START_SKY_LERPING = SpectrumCommon.locate("start_sky_lerping"); public static final Identifier PLAY_MEMORY_MANIFESTING_PARTICLES = SpectrumCommon.locate("play_memory_manifesting_particles"); public static final Identifier UPDATE_BOSS_BAR = SpectrumCommon.locate("update_boss_bar"); public static final Identifier UPDATE_BLOCK_ENTITY_INK = SpectrumCommon.locate("update_block_entity_ink"); public static final Identifier INK_COLOR_SELECTED = SpectrumCommon.locate("ink_color_select"); - public static final Identifier PLAY_INK_EFFECT_PARTICLES = SpectrumCommon.locate("play_ink_effect_particles"); - public static final Identifier PLAY_PRESENT_OPENING_PARTICLES = SpectrumCommon.locate("play_present_opening_particles"); public static final Identifier PLAY_ASCENSION_APPLIED_EFFECTS = SpectrumCommon.locate("play_ascension_applied_effects"); public static final Identifier PLAY_DIVINITY_APPLIED_EFFECTS = SpectrumCommon.locate("play_divinity_applied_effects"); + public static final Identifier MOONSTONE_BLAST = SpectrumCommon.locate("moonstone_blast"); + public static final Identifier DISPLAY_HUD_MESSAGE = SpectrumCommon.locate("display_hud_message"); + } diff --git a/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleFactories.java b/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleFactories.java index ddb92ba7fa..34bf32aea9 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleFactories.java +++ b/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleFactories.java @@ -1,11 +1,12 @@ package de.dafuqs.spectrum.particle; +import de.dafuqs.spectrum.blocks.pastel_network.*; import de.dafuqs.spectrum.particle.client.*; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.client.particle.v1.*; +import net.minecraft.client.*; import net.minecraft.client.particle.*; -import net.minecraft.particle.DefaultParticleType; +import net.minecraft.particle.*; @Environment(EnvType.CLIENT) public class SpectrumParticleFactories { @@ -25,78 +26,97 @@ public static void register() { return particle; }); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.ITEM_TRANSFER, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { - ItemTransferParticle particle = new ItemTransferParticle(world, parameters.getItemTransfer(), parameters.getItemTransfer().getArrivalInTicks()); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.ITEM_TRANSMISSION, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { + TransmissionParticle particle = new TransmissionParticle(world, x, y, z, parameters.getDestination(), parameters.getArrivalInTicks()); particle.setSprite(provider); return particle; }); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.EXPERIENCE_TRANSFER, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { - ExperienceTransferParticle particle = new ExperienceTransferParticle(world, parameters.getExperienceTransfer(), parameters.getExperienceTransfer().getArrivalInTicks()); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.EXPERIENCE_TRANSMISSION, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { + TransmissionParticle particle = new TransmissionParticle(world, x, y, z, parameters.getDestination(), parameters.getArrivalInTicks()); particle.setSprite(provider); return particle; }); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.WIRELESS_REDSTONE_TRANSMISSION, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { - WirelessRedstoneTransmissionParticle particle = new WirelessRedstoneTransmissionParticle(world, parameters.getWirelessRedstoneTransmission(), parameters.getWirelessRedstoneTransmission().getArrivalInTicks()); + TransmissionParticle particle = new TransmissionParticle(world, x, y, z, parameters.getDestination(), parameters.getArrivalInTicks()); particle.setSprite(provider); return particle; }); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.TRANSPHERE, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { - TransphereParticle particle = new TransphereParticle(world, parameters.getTransphere(), parameters.getTransphere().getArrivalInTicks()); - particle.setSprite(provider); - return particle; - }); - - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.BLOCK_POS_EVENT_TRANSFER, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { - BlockPosEventTransferParticle particle = new BlockPosEventTransferParticle(world, parameters.getBlockPosEvent(), parameters.getBlockPosEvent().getArrivalInTicks()); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.COLORED_TRANSMISSION, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { + ColoredTransmissionParticle particle = new ColoredTransmissionParticle(world, x, y, z, parameters.getDestination(), parameters.getArrivalInTicks(), parameters.getDyeColor()); + particle.setSprite(provider); + return particle; + }); + + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.BLOCK_POS_EVENT_TRANSMISSION, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { + TransmissionParticle particle = new TransmissionParticle(world, x, y, z, parameters.getDestination(), parameters.getArrivalInTicks()); + particle.setSprite(provider); + return particle; + }); + + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.PASTEL_TRANSMISSION, provider -> (pastelTransmissionParticleEffect, world, x, y, z, velocityX, velocityY, velocityZ) -> { + PastelTransmissionParticle particle = new PastelTransmissionParticle(MinecraftClient.getInstance().getItemRenderer(), world, x, y, z, pastelTransmissionParticleEffect.getNodePositions(), pastelTransmissionParticleEffect.getStack(), pastelTransmissionParticleEffect.getTravelTime()); particle.setSprite(provider); + float[] color = PastelRenderHelper.unpackNormalizedColor(pastelTransmissionParticleEffect.getColor()); + particle.setColor(color[1], color[2], color[3]); return particle; }); - - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DIVINITY, HardcoreParticle.Factory::new); - - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SHOOTING_STAR, LitParticle.Factory::new); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SPARKLESTONE_SPARKLE, LitParticle.Factory::new); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SPARKLESTONE_SPARKLE_SMALL, LitParticle.Factory::new); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SPARKLESTONE_SPARKLE_TINY, LitParticle.Factory::new); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LIQUID_CRYSTAL_SPARKLE, LitParticle.Factory::new); + + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DIVINITY, HardcoreParticle.Factory::new); + + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SHOOTING_STAR, LitParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SHIMMERSTONE_SPARKLE, LitParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SHIMMERSTONE_SPARKLE_SMALL, LitParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SHIMMERSTONE_SPARKLE_TINY, LitParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LIQUID_CRYSTAL_SPARKLE, LitParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRAGONROT, BubblePopParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.VOID_FOG, VoidFogParticle.Factory::new); - ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MUD_POP, BubblePopParticle.Factory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MUD_POP, BubblePopParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.BLUE_BUBBLE_POP, BubblePopParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.GREEN_BUBBLE_POP, BubblePopParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.SPIRIT_SALLOW, WindParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DECAY_PLACE, CraftingParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.JADE_VINES, ZigZagParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.JADE_VINES_BLOOM, ZigZagParticle.Factory::new); - + + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MOONSTONE_STRIKE, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { + MoonstoneStrikeParticle.Factory factory = new MoonstoneStrikeParticle.Factory(); + return factory.createParticle(SpectrumParticleTypes.MOONSTONE_STRIKE, world, x, y, z, velocityX, velocityY, velocityZ); + }); + // Fluid Splash ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MUD_SPLASH, WaterSplashParticle.SplashFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LIQUID_CRYSTAL_SPLASH, WaterSplashParticle.SplashFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MIDNIGHT_SOLUTION_SPLASH, WaterSplashParticle.SplashFactory::new); - + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRAGONROT_SPLASH, WaterSplashParticle.SplashFactory::new); + // Fluid Dripping ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRIPPING_MUD, SpectrumBlockLeakParticles.DrippingMudFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRIPPING_LIQUID_CRYSTAL, SpectrumBlockLeakParticles.DrippingLiquidCrystalFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRIPPING_MIDNIGHT_SOLUTION, SpectrumBlockLeakParticles.DrippingMidnightSolutionFactory::new); + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRIPPING_DRAGONROT, SpectrumBlockLeakParticles.DrippingDragonrotFactory::new); // Fluid Falling ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.FALLING_MUD, SpectrumBlockLeakParticles.FallingMudFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.FALLING_LIQUID_CRYSTAL, SpectrumBlockLeakParticles.FallingLiquidCrystalFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.FALLING_MIDNIGHT_SOLUTION, SpectrumBlockLeakParticles.FallingMidnightSolutionFactory::new); - + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.FALLING_DRAGONROT, SpectrumBlockLeakParticles.FallingDragonrotFactory::new); + // Fluid Landing ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LANDING_MUD, SpectrumBlockLeakParticles.LandingMudFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LANDING_LIQUID_CRYSTAL, SpectrumBlockLeakParticles.LandingLiquidCrystalFactory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LANDING_MIDNIGHT_SOLUTION, SpectrumBlockLeakParticles.LandingMidnightSolutionFactory::new); - + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LANDING_DRAGONROT, SpectrumBlockLeakParticles.LandingDragonrotFactory::new); + // Fluid Fishing ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LAVA_FISHING, FishingParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MUD_FISHING, FishingParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.LIQUID_CRYSTAL_FISHING, FishingParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.MIDNIGHT_SOLUTION_FISHING, FishingParticle.Factory::new); - + ParticleFactoryRegistry.getInstance().register(SpectrumParticleTypes.DRAGONROT_FISHING, FishingParticle.Factory::new); + // Used for the colored spore blossoms registerColoredSporeBlossomParticles(SpectrumParticleTypes.BLACK_FALLING_SPORE_BLOSSOM, SpectrumParticleTypes.BLACK_SPORE_BLOSSOM_AIR, 0.1F, 0.1F, 0.1F); registerColoredSporeBlossomParticles(SpectrumParticleTypes.BLUE_FALLING_SPORE_BLOSSOM, SpectrumParticleTypes.BLUE_SPORE_BLOSSOM_AIR, 0.05F, 0.011F, 0.95F); @@ -183,7 +203,7 @@ public static void register() { registerColoredExplosionParticle(SpectrumParticleTypes.WHITE_EXPLOSION, 0.97F, 0.97F, 0.97F); registerColoredExplosionParticle(SpectrumParticleTypes.YELLOW_EXPLOSION, 0.93F, 0.93F, 0.0F); } - + public static void registerColoredExplosionParticle(DefaultParticleType particleType, float red, float green, float blue) { ParticleFactoryRegistry.getInstance().register(particleType, provider -> (parameters, world, x, y, z, velocityX, velocityY, velocityZ) -> { ExplosionLargeParticle.Factory factory = new ExplosionLargeParticle.Factory(provider); diff --git a/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleTypes.java b/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleTypes.java index 2daafcb537..fafcc02a03 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleTypes.java +++ b/src/main/java/de/dafuqs/spectrum/particle/SpectrumParticleTypes.java @@ -1,66 +1,71 @@ package de.dafuqs.spectrum.particle; -import com.mojang.serialization.Codec; -import de.dafuqs.spectrum.SpectrumCommon; +import com.mojang.serialization.*; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.particle.effect.*; -import net.fabricmc.fabric.api.particle.v1.FabricParticleTypes; -import net.minecraft.particle.DefaultParticleType; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.util.DyeColor; -import net.minecraft.util.registry.Registry; -import org.jetbrains.annotations.NotNull; +import net.fabricmc.fabric.api.particle.v1.*; +import net.minecraft.particle.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; +import org.jetbrains.annotations.*; -import java.util.function.Function; +import java.util.function.*; public class SpectrumParticleTypes { - - public static ParticleType PARTICLE_SPAWNER; - public static ParticleType PARTICLE_SPAWNER_ALWAYS_SHOW; - public static ParticleType ITEM_TRANSFER; - public static ParticleType EXPERIENCE_TRANSFER; - public static ParticleType WIRELESS_REDSTONE_TRANSMISSION; - public static ParticleType TRANSPHERE; - public static ParticleType BLOCK_POS_EVENT_TRANSFER; - - public static DefaultParticleType DIVINITY; - - public static DefaultParticleType SHOOTING_STAR; // Dummy entry to get the sprite registered - public static DefaultParticleType SPARKLESTONE_SPARKLE; - public static DefaultParticleType SPARKLESTONE_SPARKLE_SMALL; - public static DefaultParticleType SPARKLESTONE_SPARKLE_TINY; + + public static ParticleType PARTICLE_SPAWNER; + public static ParticleType PARTICLE_SPAWNER_ALWAYS_SHOW; + public static ParticleType ITEM_TRANSMISSION; + public static ParticleType EXPERIENCE_TRANSMISSION; + public static ParticleType WIRELESS_REDSTONE_TRANSMISSION; + public static ParticleType COLORED_TRANSMISSION; + public static ParticleType BLOCK_POS_EVENT_TRANSMISSION; + public static ParticleType PASTEL_TRANSMISSION; + + public static DefaultParticleType DIVINITY; + + public static DefaultParticleType SHOOTING_STAR; // Dummy entry to get the sprite registered + public static DefaultParticleType SHIMMERSTONE_SPARKLE; + public static DefaultParticleType SHIMMERSTONE_SPARKLE_SMALL; + public static DefaultParticleType SHIMMERSTONE_SPARKLE_TINY; public static DefaultParticleType VOID_FOG; - public static DefaultParticleType MUD_POP; - public static DefaultParticleType LIQUID_CRYSTAL_SPARKLE; public static DefaultParticleType BLUE_BUBBLE_POP; public static DefaultParticleType GREEN_BUBBLE_POP; public static DefaultParticleType SPIRIT_SALLOW; public static DefaultParticleType DECAY_PLACE; public static DefaultParticleType JADE_VINES; public static DefaultParticleType JADE_VINES_BLOOM; - + public static DefaultParticleType MOONSTONE_STRIKE; + + public static DefaultParticleType LAVA_FISHING; + public static DefaultParticleType MUD_SPLASH; - public static DefaultParticleType LIQUID_CRYSTAL_SPLASH; - public static DefaultParticleType MIDNIGHT_SOLUTION_SPLASH; - - public static DefaultParticleType LANDING_MUD; - public static DefaultParticleType LANDING_LIQUID_CRYSTAL; - public static DefaultParticleType LANDING_MIDNIGHT_SOLUTION; - public static DefaultParticleType FALLING_MUD; - public static DefaultParticleType FALLING_LIQUID_CRYSTAL; - public static DefaultParticleType FALLING_MIDNIGHT_SOLUTION; - public static DefaultParticleType DRIPPING_MUD; - public static DefaultParticleType DRIPPING_LIQUID_CRYSTAL; - public static DefaultParticleType DRIPPING_MIDNIGHT_SOLUTION; - - public static DefaultParticleType LAVA_FISHING; public static DefaultParticleType MUD_FISHING; + public static DefaultParticleType MUD_POP; + + public static DefaultParticleType LIQUID_CRYSTAL_SPLASH; + public static DefaultParticleType FALLING_LIQUID_CRYSTAL; + public static DefaultParticleType DRIPPING_LIQUID_CRYSTAL; + public static DefaultParticleType LANDING_LIQUID_CRYSTAL; public static DefaultParticleType LIQUID_CRYSTAL_FISHING; + public static DefaultParticleType LIQUID_CRYSTAL_SPARKLE; + + public static DefaultParticleType MIDNIGHT_SOLUTION_SPLASH; + public static DefaultParticleType FALLING_MIDNIGHT_SOLUTION; + public static DefaultParticleType DRIPPING_MIDNIGHT_SOLUTION; + public static DefaultParticleType LANDING_MIDNIGHT_SOLUTION; public static DefaultParticleType MIDNIGHT_SOLUTION_FISHING; - + + public static DefaultParticleType DRAGONROT_SPLASH; + public static DefaultParticleType FALLING_DRAGONROT; + public static DefaultParticleType DRIPPING_DRAGONROT; + public static DefaultParticleType LANDING_DRAGONROT; + public static DefaultParticleType DRAGONROT_FISHING; + public static DefaultParticleType DRAGONROT; + public static DefaultParticleType BLACK_FALLING_SPORE_BLOSSOM; public static DefaultParticleType BLUE_FALLING_SPORE_BLOSSOM; public static DefaultParticleType BROWN_FALLING_SPORE_BLOSSOM; @@ -178,50 +183,60 @@ public Codec getCodec() { } public static void register() { - PARTICLE_SPAWNER = register("particle_spawner", ParticleSpawnerParticleEffect.FACTORY, (particleType) -> ParticleSpawnerParticleEffect.CODEC, false); - PARTICLE_SPAWNER_ALWAYS_SHOW = register("particle_spawner_always_show", ParticleSpawnerParticleEffectAlwaysShow.FACTORY, (particleType) -> ParticleSpawnerParticleEffectAlwaysShow.CODEC, true); - ITEM_TRANSFER = register("item_transfer", ItemTransferParticleEffect.FACTORY, (particleType) -> ItemTransferParticleEffect.CODEC, false); - EXPERIENCE_TRANSFER = register("experience_transfer", ExperienceTransferParticleEffect.FACTORY, (particleType) -> ExperienceTransferParticleEffect.CODEC, false); - WIRELESS_REDSTONE_TRANSMISSION = register("wireless_redstone_transmission", WirelessRedstoneTransmissionParticleEffect.FACTORY, (particleType) -> WirelessRedstoneTransmissionParticleEffect.CODEC, false); - TRANSPHERE = register("transphere", TransphereParticleEffect.FACTORY, (particleType) -> TransphereParticleEffect.CODEC, false); - BLOCK_POS_EVENT_TRANSFER = register("block_pos_event_transfer", BlockPosEventTransferParticleEffect.FACTORY, (particleType) -> BlockPosEventTransferParticleEffect.CODEC, false); - - SPARKLESTONE_SPARKLE = register("sparklestone_sparkle", false); - SPARKLESTONE_SPARKLE_SMALL = register("sparklestone_sparkle_small", false); - SPARKLESTONE_SPARKLE_TINY = register("sparklestone_sparkle_tiny", false); - VOID_FOG = register("void_fog", false); - MUD_POP = register("mud_pop", false); - LIQUID_CRYSTAL_SPARKLE = register("liquid_crystal_sparkle", false); - BLUE_BUBBLE_POP = register("blue_bubble_pop", false); + PARTICLE_SPAWNER = register("particle_spawner", ParticleSpawnerParticleEffect.FACTORY, (particleType) -> ParticleSpawnerParticleEffect.CODEC, false); + PARTICLE_SPAWNER_ALWAYS_SHOW = register("particle_spawner_always_show", ParticleSpawnerParticleEffectAlwaysShow.FACTORY, (particleType) -> ParticleSpawnerParticleEffectAlwaysShow.CODEC, true); + ITEM_TRANSMISSION = register("item_transfer", ItemTransmissionParticleEffect.FACTORY, (particleType) -> ItemTransmissionParticleEffect.CODEC, false); + EXPERIENCE_TRANSMISSION = register("experience_transfer", ExperienceTransmissionParticleEffect.FACTORY, (particleType) -> ExperienceTransmissionParticleEffect.CODEC, false); + WIRELESS_REDSTONE_TRANSMISSION = register("wireless_redstone_transmission", WirelessRedstoneTransmissionParticleEffect.FACTORY, (particleType) -> WirelessRedstoneTransmissionParticleEffect.CODEC, false); + COLORED_TRANSMISSION = register("transphere", ColoredTransmissionParticleEffect.FACTORY, (particleType) -> ColoredTransmissionParticleEffect.CODEC, false); + BLOCK_POS_EVENT_TRANSMISSION = register("block_pos_event_transfer", BlockPosEventTransmissionParticleEffect.FACTORY, (particleType) -> BlockPosEventTransmissionParticleEffect.CODEC, false); + PASTEL_TRANSMISSION = register("pastel_transmission", PastelTransmissionParticleEffect.FACTORY, (particleType) -> PastelTransmissionParticleEffect.CODEC, false); + + SHIMMERSTONE_SPARKLE = register("shimmerstone_sparkle", false); + SHIMMERSTONE_SPARKLE_SMALL = register("shimmerstone_sparkle_small", false); + SHIMMERSTONE_SPARKLE_TINY = register("shimmerstone_sparkle_tiny", false); + VOID_FOG = register("void_fog", false); + + BLUE_BUBBLE_POP = register("blue_bubble_pop", false); GREEN_BUBBLE_POP = register("green_bubble_pop", false); + SPIRIT_SALLOW = register("spirit_sallow", false); DECAY_PLACE = register("decay_place", false); DIVINITY = register("divinity", false); SHOOTING_STAR = register("shooting_star", false); JADE_VINES = register("jade_vines", false); JADE_VINES_BLOOM = register("jade_vines_bloom", false); - + MOONSTONE_STRIKE = register("moonstone_strike", false); + + LAVA_FISHING = register("lava_fishing", false); + MUD_SPLASH = register("mud_splash", false); - LIQUID_CRYSTAL_SPLASH = register("liquid_crystal_splash", false); - MIDNIGHT_SOLUTION_SPLASH = register("midnight_solution_splash", false); - - LANDING_MUD = register("landing_mud", false); - LANDING_LIQUID_CRYSTAL = register("landing_liquid_crystal", false); - LANDING_MIDNIGHT_SOLUTION = register("landing_midnight_solution", false); - - FALLING_MUD = register("falling_mud", false); - FALLING_LIQUID_CRYSTAL = register("falling_liquid_crystal", false); - FALLING_MIDNIGHT_SOLUTION = register("falling_midnight_solution", false); - DRIPPING_MUD = register("dripping_mud", false); - DRIPPING_LIQUID_CRYSTAL = register("dripping_liquid_crystal", false); - DRIPPING_MIDNIGHT_SOLUTION = register("dripping_midnight_solution", false); - - LAVA_FISHING = register("lava_fishing", false); + FALLING_MUD = register("falling_mud", false); + LANDING_MUD = register("landing_mud", false); MUD_FISHING = register("mud_fishing", false); + MUD_POP = register("mud_pop", false); + + LIQUID_CRYSTAL_SPLASH = register("liquid_crystal_splash", false); + DRIPPING_LIQUID_CRYSTAL = register("dripping_liquid_crystal", false); + FALLING_LIQUID_CRYSTAL = register("falling_liquid_crystal", false); + LANDING_LIQUID_CRYSTAL = register("landing_liquid_crystal", false); LIQUID_CRYSTAL_FISHING = register("liquid_crystal_fishing", false); + LIQUID_CRYSTAL_SPARKLE = register("liquid_crystal_sparkle", false); + + MIDNIGHT_SOLUTION_SPLASH = register("midnight_solution_splash", false); + DRIPPING_MIDNIGHT_SOLUTION = register("dripping_midnight_solution", false); + FALLING_MIDNIGHT_SOLUTION = register("falling_midnight_solution", false); + LANDING_MIDNIGHT_SOLUTION = register("landing_midnight_solution", false); MIDNIGHT_SOLUTION_FISHING = register("midnight_solution_fishing", false); - + DRAGONROT = register("dragonrot", false); + + DRAGONROT_SPLASH = register("dragonrot_splash", false); + DRIPPING_DRAGONROT = register("dripping_dragonrot", false); + FALLING_DRAGONROT = register("falling_dragonrot", false); + LANDING_DRAGONROT = register("landing_dragonrot", false); + DRAGONROT_FISHING = register("dragonrot_fishing", false); + BLACK_FALLING_SPORE_BLOSSOM = register("black_falling_spore_blossom", false); BLUE_FALLING_SPORE_BLOSSOM = register("blue_falling_spore_blossom", false); BROWN_FALLING_SPORE_BLOSSOM = register("brown_falling_spore_blossom", false); diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/BlockPosEventTransferParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/BlockPosEventTransferParticle.java deleted file mode 100644 index 7fe8fc8e20..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/client/BlockPosEventTransferParticle.java +++ /dev/null @@ -1,103 +0,0 @@ -package de.dafuqs.spectrum.particle.client; - -import de.dafuqs.spectrum.particle.effect.BlockPosEventTransfer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.util.math.*; - -import java.util.Optional; -import java.util.function.Consumer; - -@Environment(EnvType.CLIENT) -public class BlockPosEventTransferParticle extends SpriteBillboardParticle { - - private final BlockPosEventTransfer blockPosEventTransfer; - private float field_28250; - private float field_28248; - - public BlockPosEventTransferParticle(ClientWorld clientWorld, BlockPosEventTransfer blockPosEventTransfer, int maxAge) { - super(clientWorld, ((float) blockPosEventTransfer.getOrigin().getX() + 0.5F), ((float) blockPosEventTransfer.getOrigin().getY() + 0.5F), ((float) blockPosEventTransfer.getOrigin().getZ() + 0.5F), 0.0D, 0.0D, 0.0D); - this.scale = 0.3F; - this.blockPosEventTransfer = blockPosEventTransfer; - this.maxAge = maxAge; - } - - public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { - float f = MathHelper.sin(((float) this.age + tickDelta - 6.2831855F) * 0.05F) * 2.0F; - float g = MathHelper.lerp(tickDelta, this.field_28248, this.field_28250); - float h = 1.0472F; - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(-h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(-3.1415927F + g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - } - - private void method_33078(VertexConsumer vertexConsumer, Camera camera, float f, Consumer consumer) { - Vec3d vec3d = camera.getPos(); - float g = (float) (MathHelper.lerp(f, this.prevPosX, this.x) - vec3d.getX()); - float h = (float) (MathHelper.lerp(f, this.prevPosY, this.y) - vec3d.getY()); - float i = (float) (MathHelper.lerp(f, this.prevPosZ, this.z) - vec3d.getZ()); - Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); - vec3f.normalize(); - Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); - consumer.accept(quaternion); - Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); - vec3f2.rotate(quaternion); - Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; - float j = this.getSize(f); - - for (int k = 0; k < 4; ++k) { - Vec3f vec3f3 = vec3fs[k]; - vec3f3.rotate(quaternion); - vec3f3.scale(j); - vec3f3.add(g, h, i); - } - - float l = this.getMinU(); - float m = this.getMaxU(); - float n = this.getMinV(); - float o = this.getMaxV(); - int p = this.getBrightness(f); - vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(m, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(m, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(l, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - } - - public int getBrightness(float tint) { - return 240; - } - - public ParticleTextureSheet getType() { - return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; - } - - public void tick() { - super.tick(); - Optional optional = this.blockPosEventTransfer.getDestination().getPos(this.world); - if (!optional.isPresent()) { - this.markDead(); - } else { - double d = (double) this.age / (double) this.maxAge; - BlockPos blockPos = this.blockPosEventTransfer.getOrigin(); - BlockPos blockPos2 = optional.get(); - this.x = MathHelper.lerp(d, (double) blockPos.getX() + 0.5D, (double) blockPos2.getX() + 0.5D); - this.y = MathHelper.lerp(d, (double) blockPos.getY() + 0.5D, (double) blockPos2.getY() + 0.5D); - this.z = MathHelper.lerp(d, (double) blockPos.getZ() + 0.5D, (double) blockPos2.getZ() + 0.5D); - this.field_28248 = this.field_28250; - this.field_28250 = (float) MathHelper.atan2(this.x - (double) blockPos2.getX(), this.z - (double) blockPos2.getZ()); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/ColoredTransmissionParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/ColoredTransmissionParticle.java new file mode 100644 index 0000000000..9b3bba6bf2 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/client/ColoredTransmissionParticle.java @@ -0,0 +1,69 @@ +package de.dafuqs.spectrum.particle.client; + +import de.dafuqs.spectrum.helpers.ColorHelper; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.Camera; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.util.DyeColor; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Quaternion; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.Vec3f; +import net.minecraft.world.event.PositionSource; + +import java.util.function.Consumer; + +@Environment(EnvType.CLIENT) +public class ColoredTransmissionParticle extends TransmissionParticle { + + public ColoredTransmissionParticle(ClientWorld world, double x, double y, double z, PositionSource positionSource, int maxAge, DyeColor dyeColor) { + super(world, x, y, z, positionSource, maxAge); + + Vec3f color = ColorHelper.getVec(dyeColor); + this.setColor(color.getX(), color.getY(), color.getZ()); + } + + @Override + public void render(VertexConsumer vertexConsumer, Camera camera, float tickDelta, Consumer transforms) { + Vec3d vec3d = camera.getPos(); + float f = (float) (MathHelper.lerp(tickDelta, this.prevPosX, this.x) - vec3d.getX()); + float g = (float) (MathHelper.lerp(tickDelta, this.prevPosY, this.y) - vec3d.getY()); + float h = (float) (MathHelper.lerp(tickDelta, this.prevPosZ, this.z) - vec3d.getZ()); + Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); + vec3f.normalize(); + Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); + transforms.accept(quaternion); + Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); + vec3f2.rotate(quaternion); + Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; + float i = this.getSize(tickDelta); + + if (this.angle == 0.0F) { + quaternion = camera.getRotation(); + } else { + quaternion = new Quaternion(camera.getRotation()); + float z = MathHelper.lerp(tickDelta, this.prevAngle, this.angle); + quaternion.hamiltonProduct(Vec3f.POSITIVE_Z.getRadialQuaternion(z)); + } + + for (int j = 0; j < 4; ++j) { + Vec3f vec3f3 = vec3fs[j]; + vec3f3.rotate(quaternion); + vec3f3.scale(i); + vec3f3.add(f, g, h); + } + + float k = this.getMinU(); + float l = this.getMaxU(); + float m = this.getMinV(); + float n = this.getMaxV(); + int o = this.getBrightness(tickDelta); + vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(l, m).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(k, m).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(k, n).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/CraftingParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/CraftingParticle.java index 3ff864f568..05f74eb3e3 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/client/CraftingParticle.java +++ b/src/main/java/de/dafuqs/spectrum/particle/client/CraftingParticle.java @@ -1,14 +1,14 @@ package de.dafuqs.spectrum.particle.client; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; +import net.fabricmc.api.*; import net.minecraft.client.particle.*; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.DefaultParticleType; -import net.minecraft.util.math.MathHelper; +import net.minecraft.client.world.*; +import net.minecraft.particle.*; +import net.minecraft.util.math.*; +@Environment(EnvType.CLIENT) public class CraftingParticle extends SpriteBillboardParticle { - + protected CraftingParticle(ClientWorld clientWorld, double x, double y, double z, double velocityX, double velocityY, double velocityZ) { super(clientWorld, x, y, z, velocityX, velocityY, velocityZ); this.gravityStrength = 0.0F; @@ -16,12 +16,12 @@ protected CraftingParticle(ClientWorld clientWorld, double x, double y, double z this.scale *= 0.75F; this.collidesWithWorld = false; } - + @Override public ParticleTextureSheet getType() { return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; } - + public int getBrightness(float tint) { float f = ((float) this.age + tint) / (float) this.maxAge; f = MathHelper.clamp(f, 0.0F, 1.0F); @@ -32,19 +32,19 @@ public int getBrightness(float tint) { if (j > 240) { j = 240; } - + return j | k << 16; } - + @Environment(EnvType.CLIENT) public static class Factory implements ParticleFactory { - + private final SpriteProvider spriteProvider; - + public Factory(SpriteProvider spriteProvider) { this.spriteProvider = spriteProvider; } - + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double x, double y, double z, double velocityX, double velocityY, double velocityZ) { CraftingParticle craftingParticle = new CraftingParticle(clientWorld, x, y, z, velocityX, velocityY, velocityZ); craftingParticle.setMaxAge((int) (8.0D / (clientWorld.random.nextDouble() * 0.8D + 0.2D))); @@ -52,5 +52,5 @@ public Particle createParticle(DefaultParticleType defaultParticleType, ClientWo return craftingParticle; } } - + } diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/ExperienceTransferParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/ExperienceTransferParticle.java deleted file mode 100644 index 0161bc7794..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/client/ExperienceTransferParticle.java +++ /dev/null @@ -1,103 +0,0 @@ -package de.dafuqs.spectrum.particle.client; - -import de.dafuqs.spectrum.particle.effect.ExperienceTransfer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.util.math.*; - -import java.util.Optional; -import java.util.function.Consumer; - -@Environment(EnvType.CLIENT) -public class ExperienceTransferParticle extends SpriteBillboardParticle { - - private final ExperienceTransfer experienceTransfer; - private float field_28250; - private float field_28248; - - public ExperienceTransferParticle(ClientWorld clientWorld, ExperienceTransfer experienceTransfer, int i) { - super(clientWorld, ((float) experienceTransfer.getOrigin().getX() + 0.5F), ((float) experienceTransfer.getOrigin().getY() + 0.5F), ((float) experienceTransfer.getOrigin().getZ() + 0.5F), 0.0D, 0.0D, 0.0D); - this.scale = 0.3F; - this.experienceTransfer = experienceTransfer; - this.maxAge = i; - } - - public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { - float f = MathHelper.sin(((float) this.age + tickDelta - 6.2831855F) * 0.05F) * 2.0F; - float g = MathHelper.lerp(tickDelta, this.field_28248, this.field_28250); - float h = 1.0472F; - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(-h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(-3.1415927F + g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - } - - private void method_33078(VertexConsumer vertexConsumer, Camera camera, float f, Consumer consumer) { - Vec3d vec3d = camera.getPos(); - float g = (float) (MathHelper.lerp(f, this.prevPosX, this.x) - vec3d.getX()); - float h = (float) (MathHelper.lerp(f, this.prevPosY, this.y) - vec3d.getY()); - float i = (float) (MathHelper.lerp(f, this.prevPosZ, this.z) - vec3d.getZ()); - Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); - vec3f.normalize(); - Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); - consumer.accept(quaternion); - Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); - vec3f2.rotate(quaternion); - Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; - float j = this.getSize(f); - - for (int k = 0; k < 4; ++k) { - Vec3f vec3f3 = vec3fs[k]; - vec3f3.rotate(quaternion); - vec3f3.scale(j); - vec3f3.add(g, h, i); - } - - float l = this.getMinU(); - float m = this.getMaxU(); - float n = this.getMinV(); - float o = this.getMaxV(); - int p = this.getBrightness(f); - vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(m, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(m, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(l, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - } - - public int getBrightness(float tint) { - return 240; - } - - public ParticleTextureSheet getType() { - return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; - } - - public void tick() { - super.tick(); - Optional optional = this.experienceTransfer.getDestination().getPos(this.world); - if (!optional.isPresent()) { - this.markDead(); - } else { - double d = (double) this.age / (double) this.maxAge; - BlockPos blockPos = this.experienceTransfer.getOrigin(); - BlockPos blockPos2 = optional.get(); - this.x = MathHelper.lerp(d, (double) blockPos.getX() + 0.5D, (double) blockPos2.getX() + 0.5D); - this.y = MathHelper.lerp(d, (double) blockPos.getY() + 0.5D, (double) blockPos2.getY() + 0.5D); - this.z = MathHelper.lerp(d, (double) blockPos.getZ() + 0.5D, (double) blockPos2.getZ() + 0.5D); - this.field_28248 = this.field_28250; - this.field_28250 = (float) MathHelper.atan2(this.x - (double) blockPos2.getX(), this.z - (double) blockPos2.getZ()); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/FixedVelocityParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/FixedVelocityParticle.java index c76b4073a0..f8f4e5fa06 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/client/FixedVelocityParticle.java +++ b/src/main/java/de/dafuqs/spectrum/particle/client/FixedVelocityParticle.java @@ -1,32 +1,32 @@ package de.dafuqs.spectrum.particle.client; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; +import net.fabricmc.api.*; import net.minecraft.client.particle.*; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.DefaultParticleType; -import net.minecraft.util.math.MathHelper; +import net.minecraft.client.world.*; +import net.minecraft.particle.*; +import net.minecraft.util.math.*; +@Environment(EnvType.CLIENT) public class FixedVelocityParticle extends SpriteBillboardParticle { - + protected FixedVelocityParticle(ClientWorld clientWorld, double x, double y, double z, double velocityX, double velocityY, double velocityZ) { super(clientWorld, x, y, z, velocityX, velocityY, velocityZ); this.gravityStrength = 0.0F; this.field_28787 = true; this.scale *= 0.75F; this.collidesWithWorld = false; - + // override the vanilla velocity randomization this.velocityX = velocityX; this.velocityY = velocityY; this.velocityZ = velocityZ; } - + @Override public ParticleTextureSheet getType() { return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; } - + public int getBrightness(float tint) { float f = ((float) this.age + tint) / (float) this.maxAge; f = MathHelper.clamp(f, 0.0F, 1.0F); @@ -37,19 +37,19 @@ public int getBrightness(float tint) { if (j > 240) { j = 240; } - + return j | k << 16; } - + @Environment(EnvType.CLIENT) public static class Factory implements ParticleFactory { - + private final SpriteProvider spriteProvider; - + public Factory(SpriteProvider spriteProvider) { this.spriteProvider = spriteProvider; } - + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double x, double y, double z, double velocityX, double velocityY, double velocityZ) { FixedVelocityParticle craftingParticle = new FixedVelocityParticle(clientWorld, x, y, z, velocityX, velocityY, velocityZ); craftingParticle.setMaxAge((int) (8.0D / (clientWorld.random.nextDouble() * 0.8D + 0.2D))); @@ -57,5 +57,5 @@ public Particle createParticle(DefaultParticleType defaultParticleType, ClientWo return craftingParticle; } } - + } diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/HardcoreParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/HardcoreParticle.java index aec886851c..d6e076ffc3 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/client/HardcoreParticle.java +++ b/src/main/java/de/dafuqs/spectrum/particle/client/HardcoreParticle.java @@ -11,34 +11,34 @@ @Environment(EnvType.CLIENT) public class HardcoreParticle extends AnimatedParticle { - - HardcoreParticle(ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ, SpriteProvider spriteProvider) { - super(world, x, y, z, spriteProvider, 1.25F); - this.velocityMultiplier = 0.6F; - this.velocityX = velocityX; - this.velocityY = velocityY; - this.velocityZ = velocityZ; - this.scale *= 0.75F; - this.maxAge = 60 + this.random.nextInt(12); - this.setSpriteForAge(spriteProvider); - if (this.random.nextInt(4) == 0) { - this.setColor(0.0F, 0.0F,0.0F); - } else { - this.setColor(0.2F + this.random.nextFloat() * 0.5F, this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F); - } - - } - - @Environment(EnvType.CLIENT) - public static class Factory implements ParticleFactory { - private final SpriteProvider spriteProvider; - - public Factory(SpriteProvider spriteProvider) { - this.spriteProvider = spriteProvider; - } - - public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i) { - return new HardcoreParticle(clientWorld, d, e, f, g, h, i, this.spriteProvider); - } - } + + HardcoreParticle(ClientWorld world, double x, double y, double z, double velocityX, double velocityY, double velocityZ, SpriteProvider spriteProvider) { + super(world, x, y, z, spriteProvider, 1.25F); + this.velocityMultiplier = 0.6F; + this.velocityX = velocityX; + this.velocityY = velocityY; + this.velocityZ = velocityZ; + this.scale *= 0.75F; + this.maxAge = 60 + this.random.nextInt(12); + this.setSpriteForAge(spriteProvider); + if (this.random.nextInt(4) == 0) { + this.setColor(0.0F, 0.0F, 0.0F); + } else { + this.setColor(0.2F + this.random.nextFloat() * 0.5F, this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F); + } + + } + + @Environment(EnvType.CLIENT) + public static class Factory implements ParticleFactory { + private final SpriteProvider spriteProvider; + + public Factory(SpriteProvider spriteProvider) { + this.spriteProvider = spriteProvider; + } + + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i) { + return new HardcoreParticle(clientWorld, d, e, f, g, h, i, this.spriteProvider); + } + } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/ItemTransferParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/ItemTransferParticle.java deleted file mode 100644 index 6ca250ac47..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/client/ItemTransferParticle.java +++ /dev/null @@ -1,103 +0,0 @@ -package de.dafuqs.spectrum.particle.client; - -import de.dafuqs.spectrum.particle.effect.ItemTransfer; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.util.math.*; - -import java.util.Optional; -import java.util.function.Consumer; - -@Environment(EnvType.CLIENT) -public class ItemTransferParticle extends SpriteBillboardParticle { - - private final ItemTransfer itemTransfer; - private float field_28250; - private float field_28248; - - public ItemTransferParticle(ClientWorld clientWorld, ItemTransfer itemTransfer, int i) { - super(clientWorld, ((float) itemTransfer.getOrigin().getX() + 0.5F), ((float) itemTransfer.getOrigin().getY() + 0.5F), ((float) itemTransfer.getOrigin().getZ() + 0.5F), 0.0D, 0.0D, 0.0D); - this.scale = 0.3F; - this.itemTransfer = itemTransfer; - this.maxAge = i; - } - - public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { - float f = MathHelper.sin(((float) this.age + tickDelta - 6.2831855F) * 0.05F) * 2.0F; - float g = MathHelper.lerp(tickDelta, this.field_28248, this.field_28250); - float h = 1.0472F; - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(-h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(-3.1415927F + g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - } - - private void method_33078(VertexConsumer vertexConsumer, Camera camera, float f, Consumer consumer) { - Vec3d vec3d = camera.getPos(); - float g = (float) (MathHelper.lerp(f, this.prevPosX, this.x) - vec3d.getX()); - float h = (float) (MathHelper.lerp(f, this.prevPosY, this.y) - vec3d.getY()); - float i = (float) (MathHelper.lerp(f, this.prevPosZ, this.z) - vec3d.getZ()); - Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); - vec3f.normalize(); - Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); - consumer.accept(quaternion); - Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); - vec3f2.rotate(quaternion); - Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; - float j = this.getSize(f); - - for (int k = 0; k < 4; ++k) { - Vec3f vec3f3 = vec3fs[k]; - vec3f3.rotate(quaternion); - vec3f3.scale(j); - vec3f3.add(g, h, i); - } - - float l = this.getMinU(); - float m = this.getMaxU(); - float n = this.getMinV(); - float o = this.getMaxV(); - int p = this.getBrightness(f); - vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(m, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(m, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(l, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - } - - public int getBrightness(float tint) { - return 240; - } - - public ParticleTextureSheet getType() { - return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; - } - - public void tick() { - super.tick(); - Optional optional = this.itemTransfer.getDestination().getPos(this.world); - if (!optional.isPresent()) { - this.markDead(); - } else { - double d = (double) this.age / (double) this.maxAge; - BlockPos blockPos = this.itemTransfer.getOrigin(); - BlockPos blockPos2 = optional.get(); - this.x = MathHelper.lerp(d, (double) blockPos.getX() + 0.5D, (double) blockPos2.getX() + 0.5D); - this.y = MathHelper.lerp(d, (double) blockPos.getY() + 0.5D, (double) blockPos2.getY() + 0.5D); - this.z = MathHelper.lerp(d, (double) blockPos.getZ() + 0.5D, (double) blockPos2.getZ() + 0.5D); - this.field_28248 = this.field_28250; - this.field_28250 = (float) MathHelper.atan2(this.x - (double) blockPos2.getX(), this.z - (double) blockPos2.getZ()); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/MoonstoneStrikeParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/MoonstoneStrikeParticle.java new file mode 100644 index 0000000000..1335368ff1 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/client/MoonstoneStrikeParticle.java @@ -0,0 +1,42 @@ +package de.dafuqs.spectrum.particle.client; + +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.particle.*; +import net.fabricmc.api.*; +import net.minecraft.client.particle.*; +import net.minecraft.client.world.*; +import net.minecraft.particle.*; +import net.minecraft.util.math.*; + +@Environment(EnvType.CLIENT) +public class MoonstoneStrikeParticle extends NoRenderParticle { + + private final static int MAX_AGE = 8; + + MoonstoneStrikeParticle(ClientWorld clientWorld, double d, double e, double f) { + super(clientWorld, d, e, f, 0.0, 0.0, 0.0); + } + + public void tick() { + if (this.age == 0) { + world.addParticle(SpectrumParticleTypes.WHITE_EXPLOSION, this.x, this.y, this.z, 0, 0, 0); + } + ParticleHelper.playParticleWithPatternAndVelocityClient(this.world, new Vec3d(this.x, this.y, this.z), SpectrumParticleTypes.WHITE_CRAFTING, ParticlePattern.EIGHT, 0.5F); + + this.age++; + if (this.age == MAX_AGE) { + this.markDead(); + } + } + + @Environment(EnvType.CLIENT) + public static class Factory implements ParticleFactory { + public Factory() { + } + + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i) { + return new MoonstoneStrikeParticle(clientWorld, d, e, f); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/PastelTransmissionParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/PastelTransmissionParticle.java new file mode 100644 index 0000000000..3dfa4cb0b3 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/client/PastelTransmissionParticle.java @@ -0,0 +1,136 @@ +package de.dafuqs.spectrum.particle.client; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.particle.render.*; +import net.fabricmc.api.*; +import net.minecraft.client.particle.*; +import net.minecraft.client.render.*; +import net.minecraft.client.render.item.*; +import net.minecraft.client.render.model.*; +import net.minecraft.client.render.model.json.*; +import net.minecraft.client.util.math.*; +import net.minecraft.client.world.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; + +import java.util.*; + +@Environment(EnvType.CLIENT) +public class PastelTransmissionParticle extends SpriteBillboardParticle implements EarlyRenderingParticle { + + private final ItemRenderer itemRenderer; + + private final List travelPositions; + private final ItemStack itemStack; + + public PastelTransmissionParticle(ItemRenderer itemRenderer, ClientWorld world, double x, double y, double z, List travelPositions, ItemStack stack, int travelTime) { + super(world, x, y, z, 0.0D, 0.0D, 0.0D); + this.itemRenderer = itemRenderer; + this.itemStack = stack; + this.scale = 0.25F; + + this.travelPositions = new ArrayList<>(); + for (BlockPos p : travelPositions) { + this.travelPositions.add(Vec3d.ofCenter(p)); + } + + this.maxAge = travelTime; + + // spawning sound & particles + Vec3d startPos = this.travelPositions.get(0); + world.playSound(startPos.getX(), startPos.getY() + 0.25, startPos.getZ(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, + 0.25F * SpectrumCommon.CONFIG.BlockSoundVolume, 0.9F + world.random.nextFloat() * 0.2F, true); + world.addParticle(ParticleTypes.BUBBLE_POP, startPos.getX(), startPos.getY() + 0.25, startPos.getZ(), 0, 0, 0); + } + + @Override + public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { + final Vec3d cameraPos = camera.getPos(); + final float x = (float) (MathHelper.lerp(tickDelta, prevPosX, this.x) - cameraPos.getX()); + final float y = (float) (MathHelper.lerp(tickDelta, prevPosY, this.y) - cameraPos.getY()); + final float z = (float) (MathHelper.lerp(tickDelta, prevPosZ, this.z) - cameraPos.getZ()); + final int light = getBrightness(tickDelta); + + final Quaternion quaternion = camera.getRotation(); + final Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; + final float size = getSize(tickDelta); + + for (int k = 0; k < 4; ++k) { + final Vec3f vec3f2 = vec3fs[k]; + vec3f2.rotate(quaternion); + vec3f2.scale(size); + vec3f2.add(x, y, z); + } + + final float minU = getMinU(); + final float maxU = getMaxU(); + final float minV = getMinV(); + final float maxV = getMaxV(); + vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(maxU, maxV).color(red, green, blue, alpha).light(light).next(); + vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(maxU, minV).color(red, green, blue, alpha).light(light).next(); + vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(minU, minV).color(red, green, blue, alpha).light(light).next(); + vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(minU, maxV).color(red, green, blue, alpha).light(light).next(); + } + + @Override + public int getBrightness(float tickDelta) { + return 240; + } + + @Override + public ParticleTextureSheet getType() { + return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; + } + + @Override + public void tick() { + this.age++; + + int vertexCount = this.travelPositions.size() - 1; + float travelPercent = (float) this.age / this.maxAge; + if (travelPercent >= 1.0F) { + Vec3d destination = this.travelPositions.get(vertexCount); + world.playSound(destination.getX(), destination.getY() + 0.25, destination.getZ(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, + 0.2F * SpectrumCommon.CONFIG.BlockSoundVolume, 0.7F + world.random.nextFloat() * 0.2F, true); + world.addParticle(ParticleTypes.BUBBLE_POP, destination.getX(), destination.getY() + 0.25, destination.getZ(), 0, 0, 0); + this.markDead(); + return; + } + + float progress = travelPercent * vertexCount; + int startNodeID = (int) progress; + this.prevPosX = this.x; + this.prevPosY = this.y; + this.prevPosZ = this.z; + + Vec3d source = this.travelPositions.get(startNodeID); + Vec3d destination = this.travelPositions.get(startNodeID + 1); + + float nodeProgress = progress % 1; + this.x = MathHelper.lerp(nodeProgress, source.x, destination.x); + this.y = MathHelper.lerp(nodeProgress, source.y, destination.y); + this.z = MathHelper.lerp(nodeProgress, source.z, destination.z); + } + + @Override + public void renderAsEntity(final MatrixStack matrixStack, final VertexConsumerProvider vertexConsumers, final Camera camera, final float tickDelta) { + final Vec3d cameraPos = camera.getPos(); + final float x = (float) (MathHelper.lerp(tickDelta, prevPosX, this.x)); + final float y = (float) (MathHelper.lerp(tickDelta, prevPosY, this.y)); + final float z = (float) (MathHelper.lerp(tickDelta, prevPosZ, this.z)); + + matrixStack.push(); + matrixStack.translate(x - cameraPos.x, y - cameraPos.y, z - cameraPos.z); + final int light = getBrightness(tickDelta); + matrixStack.multiply(camera.getRotation()); + matrixStack.translate(0, -0.2, 0); + + SpectrumClient.FORCE_TRANSLUCENT = true; + BakedModel bakedModel = itemRenderer.getModel(itemStack, world, null, getMaxAge()); + itemRenderer.renderItem(itemStack, ModelTransformation.Mode.GROUND, false, matrixStack, new TransparentVertexConsumerProvider(vertexConsumers), light, OverlayTexture.DEFAULT_UV, bakedModel); + SpectrumClient.FORCE_TRANSLUCENT = false; + matrixStack.pop(); + } +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/SpectrumBlockLeakParticles.java b/src/main/java/de/dafuqs/spectrum/particle/client/SpectrumBlockLeakParticles.java index 717365ee08..e139eb41dd 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/client/SpectrumBlockLeakParticles.java +++ b/src/main/java/de/dafuqs/spectrum/particle/client/SpectrumBlockLeakParticles.java @@ -1,21 +1,15 @@ package de.dafuqs.spectrum.particle.client; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumFluids; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.particle.BlockLeakParticle; -import net.minecraft.client.particle.Particle; -import net.minecraft.client.particle.ParticleFactory; -import net.minecraft.client.particle.SpriteProvider; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.particle.DefaultParticleType; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.client.particle.*; +import net.minecraft.client.world.*; +import net.minecraft.particle.*; @Environment(EnvType.CLIENT) public class SpectrumBlockLeakParticles { - - - @Environment(EnvType.CLIENT) + public static class LandingMudFactory implements ParticleFactory { protected final SpriteProvider spriteProvider; @@ -60,8 +54,7 @@ public Particle createParticle(DefaultParticleType defaultParticleType, ClientWo return blockLeakParticle; } } - - @Environment(EnvType.CLIENT) + public static class LandingLiquidCrystalFactory implements ParticleFactory { protected final SpriteProvider spriteProvider; @@ -106,8 +99,7 @@ public Particle createParticle(DefaultParticleType defaultParticleType, ClientWo return blockLeakParticle; } } - - @Environment(EnvType.CLIENT) + public static class LandingMidnightSolutionFactory implements ParticleFactory { protected final SpriteProvider spriteProvider; @@ -144,7 +136,7 @@ public static class DrippingMidnightSolutionFactory implements ParticleFactory { + protected final SpriteProvider spriteProvider; + + public LandingDragonrotFactory(SpriteProvider spriteProvider) { + this.spriteProvider = spriteProvider; + } + + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i) { + BlockLeakParticle blockLeakParticle = new BlockLeakParticle.Landing(clientWorld, d, e, f, SpectrumFluids.DRAGONROT); + blockLeakParticle.setColor(SpectrumFluids.DRAGONROT_COLOR.getX(), SpectrumFluids.DRAGONROT_COLOR.getY(), SpectrumFluids.DRAGONROT_COLOR.getZ()); + blockLeakParticle.setSprite(this.spriteProvider); + return blockLeakParticle; + } + } + + public static class FallingDragonrotFactory implements ParticleFactory { + protected final SpriteProvider spriteProvider; + + public FallingDragonrotFactory(SpriteProvider spriteProvider) { + this.spriteProvider = spriteProvider; + } + + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i) { + BlockLeakParticle blockLeakParticle = new BlockLeakParticle.ContinuousFalling(clientWorld, d, e, f, SpectrumFluids.DRAGONROT, SpectrumParticleTypes.LANDING_DRAGONROT); + blockLeakParticle.setColor(SpectrumFluids.DRAGONROT_COLOR.getX(), SpectrumFluids.DRAGONROT_COLOR.getY(), SpectrumFluids.DRAGONROT_COLOR.getZ()); + blockLeakParticle.setSprite(this.spriteProvider); + return blockLeakParticle; + } + } + + public static class DrippingDragonrotFactory implements ParticleFactory { + protected final SpriteProvider spriteProvider; + + public DrippingDragonrotFactory(SpriteProvider spriteProvider) { + this.spriteProvider = spriteProvider; + } + + public Particle createParticle(DefaultParticleType defaultParticleType, ClientWorld clientWorld, double d, double e, double f, double g, double h, double i) { + BlockLeakParticle blockLeakParticle = new BlockLeakParticle.Dripping(clientWorld, d, e, f, SpectrumFluids.DRAGONROT, SpectrumParticleTypes.FALLING_DRAGONROT); + blockLeakParticle.setColor(SpectrumFluids.DRAGONROT_COLOR.getX(), SpectrumFluids.DRAGONROT_COLOR.getY(), SpectrumFluids.DRAGONROT_COLOR.getZ()); + blockLeakParticle.setSprite(this.spriteProvider); + return blockLeakParticle; + } + } + } diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/TransmissionParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/TransmissionParticle.java new file mode 100644 index 0000000000..a60c7c3736 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/client/TransmissionParticle.java @@ -0,0 +1,115 @@ +package de.dafuqs.spectrum.particle.client; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.particle.ParticleTextureSheet; +import net.minecraft.client.particle.SpriteBillboardParticle; +import net.minecraft.client.render.Camera; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Quaternion; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.Vec3f; +import net.minecraft.world.event.PositionSource; + +import java.util.Optional; +import java.util.function.Consumer; + +@Environment(EnvType.CLIENT) +public class TransmissionParticle extends SpriteBillboardParticle { + + private final PositionSource positionSource; + private float current; + private float last; + + public TransmissionParticle(ClientWorld world, double x, double y, double z, PositionSource positionSource, int maxAge) { + super(world, x, y, z, 0.0D, 0.0D, 0.0D); + this.scale = 0.3F; + this.positionSource = positionSource; + this.maxAge = maxAge; + } + + @Override + public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { + float f = MathHelper.sin(((float) this.age + tickDelta - 6.2831855F) * 0.05F) * 2.0F; + float g = MathHelper.lerp(tickDelta, this.last, this.current); + float h = 1.0472F; + this.render(vertexConsumer, camera, tickDelta, (quaternion) -> { + quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(g)); + quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(-h)); + quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); + }); + this.render(vertexConsumer, camera, tickDelta, (quaternion) -> { + quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(3 * h + g)); + quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(h)); + quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); + }); + } + + public void render(VertexConsumer vertexConsumer, Camera camera, float tickDelta, Consumer transforms) { + Vec3d vec3d = camera.getPos(); + float f = (float) (MathHelper.lerp(tickDelta, this.prevPosX, this.x) - vec3d.getX()); + float g = (float) (MathHelper.lerp(tickDelta, this.prevPosY, this.y) - vec3d.getY()); + float h = (float) (MathHelper.lerp(tickDelta, this.prevPosZ, this.z) - vec3d.getZ()); + Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); + vec3f.normalize(); + Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); + transforms.accept(quaternion); + Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); + vec3f2.rotate(quaternion); + Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; + float i = this.getSize(tickDelta); + + for (int j = 0; j < 4; ++j) { + Vec3f vec3f3 = vec3fs[j]; + vec3f3.rotate(quaternion); + vec3f3.scale(i); + vec3f3.add(f, g, h); + } + + float k = this.getMinU(); + float l = this.getMaxU(); + float m = this.getMinV(); + float n = this.getMaxV(); + int o = this.getBrightness(tickDelta); + vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(l, m).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(k, m).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(k, n).color(this.red, this.green, this.blue, this.alpha).light(o).next(); + } + + @Override + public int getBrightness(float tint) { + return 240; + } + + @Override + public ParticleTextureSheet getType() { + return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; + } + + public void tick() { + this.prevPosX = this.x; + this.prevPosY = this.y; + this.prevPosZ = this.z; + if (this.age++ >= this.maxAge) { + this.markDead(); + } else { + Optional optional = this.positionSource.getPos(this.world); + if (optional.isEmpty()) { + this.markDead(); + } else { + int i = this.maxAge - this.age; + double d = 1.0D / (double) i; + Vec3d vec3d = optional.get(); + this.x = MathHelper.lerp(d, this.x, vec3d.getX()); + this.y = MathHelper.lerp(d, this.y, vec3d.getY()); + this.z = MathHelper.lerp(d, this.z, vec3d.getZ()); + this.last = this.current; + this.current = (float) MathHelper.atan2(this.x - vec3d.getX(), this.z - vec3d.getZ()); + } + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/TransphereParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/TransphereParticle.java deleted file mode 100644 index 49a6d718e9..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/client/TransphereParticle.java +++ /dev/null @@ -1,115 +0,0 @@ -package de.dafuqs.spectrum.particle.client; - -import de.dafuqs.spectrum.helpers.ColorHelper; -import de.dafuqs.spectrum.particle.effect.Transphere; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.util.math.*; - -import java.util.Optional; -import java.util.function.Consumer; - -@Environment(EnvType.CLIENT) -public class TransphereParticle extends SpriteBillboardParticle { - - private final Transphere transphere; - private float field_28250; - private float field_28248; - - public TransphereParticle(ClientWorld clientWorld, Transphere transphere, int i) { - super(clientWorld, ((float) transphere.getOrigin().getX() + 0.5F), ((float) transphere.getOrigin().getY() + 0.5F), ((float) transphere.getOrigin().getZ() + 0.5F), 0.0D, 0.0D, 0.0D); - this.scale = 0.2F; - this.transphere = transphere; - - Vec3f rgb = ColorHelper.getVec(transphere.getDyeColor()); - this.setColor(rgb.getX(), rgb.getY(), rgb.getZ()); - this.maxAge = i; - } - - public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { - float f = MathHelper.sin(((float) this.age + tickDelta - 6.2831855F) * 0.05F) * 2.0F; - float g = MathHelper.lerp(tickDelta, this.field_28248, this.field_28250); - float h = 1.0472F; - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(-h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(-3.1415927F + g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - } - - private void method_33078(VertexConsumer vertexConsumer, Camera camera, float tickDelta, Consumer consumer) { - Vec3d vec3d = camera.getPos(); - float g = (float) (MathHelper.lerp(tickDelta, this.prevPosX, this.x) - vec3d.getX()); - float h = (float) (MathHelper.lerp(tickDelta, this.prevPosY, this.y) - vec3d.getY()); - float i = (float) (MathHelper.lerp(tickDelta, this.prevPosZ, this.z) - vec3d.getZ()); - Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); - vec3f.normalize(); - Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); - consumer.accept(quaternion); - Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); - vec3f2.rotate(quaternion); - Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; - float j = this.getSize(tickDelta); - - if (this.angle == 0.0F) { - quaternion = camera.getRotation(); - } else { - quaternion = new Quaternion(camera.getRotation()); - float z = MathHelper.lerp(tickDelta, this.prevAngle, this.angle); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Z.getRadialQuaternion(z)); - } - - for (int k = 0; k < 4; ++k) { - Vec3f vec3f3 = vec3fs[k]; - vec3f3.rotate(quaternion); - vec3f3.scale(j); - vec3f3.add(g, h, i); - } - - float l = this.getMinU(); - float m = this.getMaxU(); - float n = this.getMinV(); - float o = this.getMaxV(); - int p = this.getBrightness(tickDelta); - vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(m, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(m, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(l, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - } - - public int getBrightness(float tint) { - return 240; - } - - public ParticleTextureSheet getType() { - return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; - } - - public void tick() { - super.tick(); - Optional optional = this.transphere.getDestination().getPos(this.world); - if (optional.isEmpty()) { - this.markDead(); - } else { - double d = (double) this.age / (double) this.maxAge; - BlockPos blockPos = this.transphere.getOrigin(); - BlockPos blockPos2 = optional.get(); - this.x = MathHelper.lerp(d, (double) blockPos.getX() + 0.5D, (double) blockPos2.getX() + 0.5D); - this.y = MathHelper.lerp(d, (double) blockPos.getY() + 0.5D, (double) blockPos2.getY() + 0.5D); - this.z = MathHelper.lerp(d, (double) blockPos.getZ() + 0.5D, (double) blockPos2.getZ() + 0.5D); - this.field_28248 = this.field_28250; - this.field_28250 = (float) MathHelper.atan2(this.x - (double) blockPos2.getX(), this.z - (double) blockPos2.getZ()); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/VoidFogParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/VoidFogParticle.java index a3882ac38f..067f0a5ba5 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/client/VoidFogParticle.java +++ b/src/main/java/de/dafuqs/spectrum/particle/client/VoidFogParticle.java @@ -5,8 +5,7 @@ import net.minecraft.client.particle.*; import net.minecraft.client.world.ClientWorld; import net.minecraft.particle.DefaultParticleType; - -import java.util.Random; +import net.minecraft.util.math.random.Random; @Environment(EnvType.CLIENT) public class VoidFogParticle extends SpriteBillboardParticle { diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/WindParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/WindParticle.java index 29d332f7fb..04d34ddbb9 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/client/WindParticle.java +++ b/src/main/java/de/dafuqs/spectrum/particle/client/WindParticle.java @@ -7,8 +7,7 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.particle.DefaultParticleType; import net.minecraft.util.math.Vec3d; - -import java.util.Random; +import net.minecraft.util.math.random.Random; @Environment(EnvType.CLIENT) public class WindParticle extends SpriteBillboardParticle { @@ -29,7 +28,7 @@ protected WindParticle(ClientWorld clientWorld, double x, double y, double z, do public void tick() { super.tick(); - Vec3d windStrength = wind.getWindStrength(world.getTime()); + Vec3d windStrength = wind.getWindStrength(world.getTime(), world.random); this.velocityX += windStrength.getX() * 0.004; this.velocityY += windStrength.getY() * 0.001; this.velocityZ += windStrength.getZ() * 0.004; diff --git a/src/main/java/de/dafuqs/spectrum/particle/client/WirelessRedstoneTransmissionParticle.java b/src/main/java/de/dafuqs/spectrum/particle/client/WirelessRedstoneTransmissionParticle.java deleted file mode 100644 index f9e93903a6..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/client/WirelessRedstoneTransmissionParticle.java +++ /dev/null @@ -1,103 +0,0 @@ -package de.dafuqs.spectrum.particle.client; - -import de.dafuqs.spectrum.particle.effect.WirelessRedstoneTransmission; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteBillboardParticle; -import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.util.math.*; - -import java.util.Optional; -import java.util.function.Consumer; - -@Environment(EnvType.CLIENT) -public class WirelessRedstoneTransmissionParticle extends SpriteBillboardParticle { - - private final WirelessRedstoneTransmission wirelessRedstoneTransmission; - private float field_28250; - private float field_28248; - - public WirelessRedstoneTransmissionParticle(ClientWorld clientWorld, WirelessRedstoneTransmission wirelessRedstoneTransmission, int i) { - super(clientWorld, ((float) wirelessRedstoneTransmission.getOrigin().getX() + 0.5F), ((float) wirelessRedstoneTransmission.getOrigin().getY() + 0.5F), ((float) wirelessRedstoneTransmission.getOrigin().getZ() + 0.5F), 0.0D, 0.0D, 0.0D); - this.scale = 0.3F; - this.wirelessRedstoneTransmission = wirelessRedstoneTransmission; - this.maxAge = i; - } - - public void buildGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta) { - float f = MathHelper.sin(((float) this.age + tickDelta - 6.2831855F) * 0.05F) * 2.0F; - float g = MathHelper.lerp(tickDelta, this.field_28248, this.field_28250); - float h = 1.0472F; - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(-h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - this.method_33078(vertexConsumer, camera, tickDelta, (quaternion) -> { - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(-3.1415927F + g)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_X.getRadialQuaternion(h)); - quaternion.hamiltonProduct(Vec3f.POSITIVE_Y.getRadialQuaternion(f)); - }); - } - - private void method_33078(VertexConsumer vertexConsumer, Camera camera, float f, Consumer consumer) { - Vec3d vec3d = camera.getPos(); - float g = (float) (MathHelper.lerp(f, this.prevPosX, this.x) - vec3d.getX()); - float h = (float) (MathHelper.lerp(f, this.prevPosY, this.y) - vec3d.getY()); - float i = (float) (MathHelper.lerp(f, this.prevPosZ, this.z) - vec3d.getZ()); - Vec3f vec3f = new Vec3f(0.5F, 0.5F, 0.5F); - vec3f.normalize(); - Quaternion quaternion = new Quaternion(vec3f, 0.0F, true); - consumer.accept(quaternion); - Vec3f vec3f2 = new Vec3f(-1.0F, -1.0F, 0.0F); - vec3f2.rotate(quaternion); - Vec3f[] vec3fs = new Vec3f[]{new Vec3f(-1.0F, -1.0F, 0.0F), new Vec3f(-1.0F, 1.0F, 0.0F), new Vec3f(1.0F, 1.0F, 0.0F), new Vec3f(1.0F, -1.0F, 0.0F)}; - float j = this.getSize(f); - - for (int k = 0; k < 4; ++k) { - Vec3f vec3f3 = vec3fs[k]; - vec3f3.rotate(quaternion); - vec3f3.scale(j); - vec3f3.add(g, h, i); - } - - float l = this.getMinU(); - float m = this.getMaxU(); - float n = this.getMinV(); - float o = this.getMaxV(); - int p = this.getBrightness(f); - vertexConsumer.vertex(vec3fs[0].getX(), vec3fs[0].getY(), vec3fs[0].getZ()).texture(m, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[1].getX(), vec3fs[1].getY(), vec3fs[1].getZ()).texture(m, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[2].getX(), vec3fs[2].getY(), vec3fs[2].getZ()).texture(l, n).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - vertexConsumer.vertex(vec3fs[3].getX(), vec3fs[3].getY(), vec3fs[3].getZ()).texture(l, o).color(this.red, this.green, this.blue, this.alpha).light(p).next(); - } - - public int getBrightness(float tint) { - return 240; - } - - public ParticleTextureSheet getType() { - return ParticleTextureSheet.PARTICLE_SHEET_TRANSLUCENT; - } - - public void tick() { - super.tick(); - Optional optional = this.wirelessRedstoneTransmission.getDestination().getPos(this.world); - if (!optional.isPresent()) { - this.markDead(); - } else { - double d = (double) this.age / (double) this.maxAge; - BlockPos blockPos = this.wirelessRedstoneTransmission.getOrigin(); - BlockPos blockPos2 = optional.get(); - this.x = MathHelper.lerp(d, (double) blockPos.getX() + 0.5D, (double) blockPos2.getX() + 0.5D); - this.y = MathHelper.lerp(d, (double) blockPos.getY() + 0.5D, (double) blockPos2.getY() + 0.5D); - this.z = MathHelper.lerp(d, (double) blockPos.getZ() + 0.5D, (double) blockPos2.getZ() + 0.5D); - this.field_28248 = this.field_28250; - this.field_28250 = (float) MathHelper.atan2(this.x - (double) blockPos2.getX(), this.z - (double) blockPos2.getZ()); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransfer.java b/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransfer.java deleted file mode 100644 index e73c4528f2..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransfer.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.datafixers.util.Function3; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.PositionSourceType; - -public class BlockPosEventTransfer { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(BlockPos.CODEC.fieldOf("origin").forGetter((experienceOrbTransfer) -> { - return experienceOrbTransfer.origin; - }), PositionSource.CODEC.fieldOf("destination").forGetter((experienceOrbTransfer) -> { - return experienceOrbTransfer.destination; - }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((experienceOrbTransfer) -> { - return experienceOrbTransfer.arrivalInTicks; - })).apply(instance, (Function3) (BlockPosEventTransfer::new)); - }); - private final BlockPos origin; - private final PositionSource destination; - private final int arrivalInTicks; - - public BlockPosEventTransfer(BlockPos origin, PositionSource destination, int arrivalInTicks) { - this.origin = origin; - this.destination = destination; - this.arrivalInTicks = arrivalInTicks; - } - - public BlockPosEventTransfer(Object origin, Object destination, Object arrivalInTicks) { - this((BlockPos) origin, (PositionSource) destination, (int) arrivalInTicks); - } - - public static BlockPosEventTransfer readFromBuf(PacketByteBuf buf) { - BlockPos blockPos = buf.readBlockPos(); - PositionSource positionSource = PositionSourceType.read(buf); - int i = buf.readVarInt(); - return new BlockPosEventTransfer(blockPos, positionSource, i); - } - - public static void writeToBuf(PacketByteBuf buf, BlockPosEventTransfer experienceTransfer) { - buf.writeBlockPos(experienceTransfer.origin); - PositionSourceType.write(experienceTransfer.destination, buf); - buf.writeVarInt(experienceTransfer.arrivalInTicks); - } - - public int getArrivalInTicks() { - return this.arrivalInTicks; - } - - public BlockPos getOrigin() { - return this.origin; - } - - public PositionSource getDestination() { - return this.destination; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransferParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransferParticleEffect.java deleted file mode 100644 index 29edae4771..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransferParticleEffect.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.event.BlockPositionSource; - -import java.util.Locale; -import java.util.function.Function; - -public class BlockPosEventTransferParticleEffect implements ParticleEffect { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(BlockPosEventTransfer.CODEC.fieldOf("block_pos_event").forGetter((blockPosEventTransferParticleEffect) -> { - return blockPosEventTransferParticleEffect.blockPosEvent; - })).apply(instance, (Function) (BlockPosEventTransferParticleEffect::new)); - }); - public static final Factory FACTORY = new Factory<>() { - public BlockPosEventTransferParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { - stringReader.expect(' '); - float f = (float) stringReader.readDouble(); - stringReader.expect(' '); - float g = (float) stringReader.readDouble(); - stringReader.expect(' '); - float h = (float) stringReader.readDouble(); - stringReader.expect(' '); - float i = (float) stringReader.readDouble(); - stringReader.expect(' '); - float j = (float) stringReader.readDouble(); - stringReader.expect(' '); - float k = (float) stringReader.readDouble(); - stringReader.expect(' '); - int l = stringReader.readInt(); - BlockPos blockPos = new BlockPos(f, g, h); - BlockPos blockPos2 = new BlockPos(i, j, k); - return new BlockPosEventTransferParticleEffect(new BlockPosEventTransfer(blockPos, new BlockPositionSource(blockPos2), l)); - } - - public BlockPosEventTransferParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { - BlockPosEventTransfer blockPosEventTransfer = BlockPosEventTransfer.readFromBuf(packetByteBuf); - return new BlockPosEventTransferParticleEffect(blockPosEventTransfer); - } - }; - - private final BlockPosEventTransfer blockPosEvent; - - public BlockPosEventTransferParticleEffect(BlockPosEventTransfer blockPosEvent) { - this.blockPosEvent = blockPosEvent; - } - - public BlockPosEventTransferParticleEffect(Object blockPosEvent) { - this((BlockPosEventTransfer) blockPosEvent); - } - - public void write(PacketByteBuf buf) { - BlockPosEventTransfer.writeToBuf(buf, this.blockPosEvent); - } - - public String asString() { - BlockPos blockPos = this.blockPosEvent.getOrigin(); - double d = blockPos.getX(); - double e = blockPos.getY(); - double f = blockPos.getZ(); - return String.format(Locale.ROOT, "%s %.2f %.2f %.2f %.2f %.2f %.2f %d", Registry.PARTICLE_TYPE.getId(this.getType()), d, e, f, d, e, f, this.blockPosEvent.getArrivalInTicks()); - } - - public ParticleType getType() { - return SpectrumParticleTypes.BLOCK_POS_EVENT_TRANSFER; - } - - public BlockPosEventTransfer getBlockPosEvent() { - return this.blockPosEvent; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransmissionParticleEffect.java new file mode 100644 index 0000000000..82222c2690 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/BlockPosEventTransmissionParticleEffect.java @@ -0,0 +1,53 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.particle.ParticleType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.event.BlockPositionSource; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class BlockPosEventTransmissionParticleEffect extends TransmissionParticleEffect { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(PositionSource.CODEC.fieldOf("destination").forGetter((effect) -> { + return effect.destination; + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((vibrationParticleEffect) -> { + return vibrationParticleEffect.arrivalInTicks; + })).apply(instance, BlockPosEventTransmissionParticleEffect::new); + }); + public static final Factory FACTORY = new Factory<>() { + public BlockPosEventTransmissionParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { + stringReader.expect(' '); + float f = (float) stringReader.readDouble(); + stringReader.expect(' '); + float g = (float) stringReader.readDouble(); + stringReader.expect(' '); + float h = (float) stringReader.readDouble(); + stringReader.expect(' '); + int i = stringReader.readInt(); + BlockPos blockPos = new BlockPos(f, g, h); + return new BlockPosEventTransmissionParticleEffect(new BlockPositionSource(blockPos), i); + } + + public BlockPosEventTransmissionParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { + PositionSource positionSource = PositionSourceType.read(packetByteBuf); + int i = packetByteBuf.readVarInt(); + return new BlockPosEventTransmissionParticleEffect(positionSource, i); + } + }; + + public BlockPosEventTransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks) { + super(positionSource, arrivalInTicks); + } + + public ParticleType getType() { + return SpectrumParticleTypes.BLOCK_POS_EVENT_TRANSMISSION; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ColoredTransmission.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ColoredTransmission.java new file mode 100644 index 0000000000..978ffbb31b --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/ColoredTransmission.java @@ -0,0 +1,74 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.datafixers.util.Function4; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.util.DyeColor; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class ColoredTransmission { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(Vec3d.CODEC.fieldOf("origin").forGetter((coloredTransmission) -> { + return coloredTransmission.origin; + }), PositionSource.CODEC.fieldOf("destination").forGetter((coloredTransmission) -> { + return coloredTransmission.destination; + }), Codec.INT.fieldOf("dye_color").forGetter((coloredTransmission) -> { + return coloredTransmission.dyeColor.getId(); + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((coloredTransmission) -> { + return coloredTransmission.arrivalInTicks; + })).apply(instance, (Function4) (ColoredTransmission::new)); + }); + private final Vec3d origin; + private final PositionSource destination; + private final int arrivalInTicks; + private final DyeColor dyeColor; + + public ColoredTransmission(Vec3d origin, PositionSource destination, int arrivalInTicks, DyeColor dyeColor) { + this.origin = origin; + this.destination = destination; + this.arrivalInTicks = arrivalInTicks; + this.dyeColor = dyeColor; + } + + public ColoredTransmission(Object origin, Object destination, Object arrivalInTicks, Object dyeColor) { + this((Vec3d) origin, (PositionSource) destination, (int) arrivalInTicks, DyeColor.values()[(int) dyeColor]); + } + + public static ColoredTransmission readFromBuf(PacketByteBuf buf) { + Vec3d origin = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); + PositionSource destination = PositionSourceType.read(buf); + int arrivalInTicks = buf.readVarInt(); + DyeColor dyeColor = DyeColor.byId(buf.readVarInt()); + return new ColoredTransmission(origin, destination, arrivalInTicks, dyeColor); + } + + public static void writeToBuf(PacketByteBuf buf, ColoredTransmission transfer) { + buf.writeDouble(transfer.origin.x); + buf.writeDouble(transfer.origin.y); + buf.writeDouble(transfer.origin.z); + PositionSourceType.write(transfer.destination, buf); + buf.writeVarInt(transfer.arrivalInTicks); + buf.writeVarInt(transfer.dyeColor.getId()); + } + + public int getArrivalInTicks() { + return this.arrivalInTicks; + } + + public Vec3d getOrigin() { + return this.origin; + } + + public PositionSource getDestination() { + return this.destination; + } + + public DyeColor getDyeColor() { + return this.dyeColor; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ColoredTransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ColoredTransmissionParticleEffect.java new file mode 100644 index 0000000000..3a3a9da1ba --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/ColoredTransmissionParticleEffect.java @@ -0,0 +1,71 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.particle.ParticleEffect; +import net.minecraft.particle.ParticleType; +import net.minecraft.util.DyeColor; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.event.BlockPositionSource; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class ColoredTransmissionParticleEffect extends TransmissionParticleEffect { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(PositionSource.CODEC.fieldOf("destination").forGetter((effect) -> { + return effect.destination; + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((effect) -> { + return effect.arrivalInTicks; + }), Codec.INT.fieldOf("dye_color").forGetter((effect) -> { + return effect.dyeColor.getId(); + })).apply(instance, ColoredTransmissionParticleEffect::new); + }); + public static final ParticleEffect.Factory FACTORY = new ParticleEffect.Factory<>() { + public ColoredTransmissionParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { + stringReader.expect(' '); + float f = (float) stringReader.readDouble(); + stringReader.expect(' '); + float g = (float) stringReader.readDouble(); + stringReader.expect(' '); + float h = (float) stringReader.readDouble(); + stringReader.expect(' '); + int i = stringReader.readInt(); + int dyeColorId = stringReader.readInt(); + BlockPos blockPos = new BlockPos(f, g, h); + return new ColoredTransmissionParticleEffect(new BlockPositionSource(blockPos), i, dyeColorId); + } + + public ColoredTransmissionParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { + PositionSource positionSource = PositionSourceType.read(packetByteBuf); + int i = packetByteBuf.readVarInt(); + int dyeColorId = packetByteBuf.readVarInt(); + return new ColoredTransmissionParticleEffect(positionSource, i, dyeColorId); + } + }; + + public DyeColor dyeColor; + + public ColoredTransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks, int dyeColorId) { + super(positionSource, arrivalInTicks); + this.dyeColor = DyeColor.byId(dyeColorId); + } + + public ColoredTransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks, DyeColor dyeColor) { + super(positionSource, arrivalInTicks); + this.dyeColor = dyeColor; + } + + public ParticleType getType() { + return SpectrumParticleTypes.COLORED_TRANSMISSION; + } + + public DyeColor getDyeColor() { + return dyeColor; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransfer.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransfer.java deleted file mode 100644 index 6446014c2b..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransfer.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.datafixers.util.Function3; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.PositionSourceType; - -public class ExperienceTransfer { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(BlockPos.CODEC.fieldOf("origin").forGetter((experienceOrbTransfer) -> { - return experienceOrbTransfer.origin; - }), PositionSource.CODEC.fieldOf("destination").forGetter((experienceOrbTransfer) -> { - return experienceOrbTransfer.destination; - }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((experienceOrbTransfer) -> { - return experienceOrbTransfer.arrivalInTicks; - })).apply(instance, (Function3) (ExperienceTransfer::new)); - }); - private final BlockPos origin; - private final PositionSource destination; - private final int arrivalInTicks; - - public ExperienceTransfer(BlockPos origin, PositionSource destination, int arrivalInTicks) { - this.origin = origin; - this.destination = destination; - this.arrivalInTicks = arrivalInTicks; - } - - public ExperienceTransfer(Object origin, Object destination, Object arrivalInTicks) { - this((BlockPos) origin, (PositionSource) destination, (int) arrivalInTicks); - } - - public static ExperienceTransfer readFromBuf(PacketByteBuf buf) { - BlockPos blockPos = buf.readBlockPos(); - PositionSource positionSource = PositionSourceType.read(buf); - int i = buf.readVarInt(); - return new ExperienceTransfer(blockPos, positionSource, i); - } - - public static void writeToBuf(PacketByteBuf buf, ExperienceTransfer experienceTransfer) { - buf.writeBlockPos(experienceTransfer.origin); - PositionSourceType.write(experienceTransfer.destination, buf); - buf.writeVarInt(experienceTransfer.arrivalInTicks); - } - - public int getArrivalInTicks() { - return this.arrivalInTicks; - } - - public BlockPos getOrigin() { - return this.origin; - } - - public PositionSource getDestination() { - return this.destination; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransferParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransferParticleEffect.java deleted file mode 100644 index 2e37202226..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransferParticleEffect.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.event.BlockPositionSource; - -import java.util.Locale; -import java.util.function.Function; - -public class ExperienceTransferParticleEffect implements ParticleEffect { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(ExperienceTransfer.CODEC.fieldOf("experience_transfer").forGetter((experienceTransferParticleEffect) -> { - return experienceTransferParticleEffect.experienceTransfer; - })).apply(instance, (Function) (ExperienceTransferParticleEffect::new)); - }); - public static final Factory FACTORY = new Factory<>() { - public ExperienceTransferParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { - stringReader.expect(' '); - float f = (float) stringReader.readDouble(); - stringReader.expect(' '); - float g = (float) stringReader.readDouble(); - stringReader.expect(' '); - float h = (float) stringReader.readDouble(); - stringReader.expect(' '); - float i = (float) stringReader.readDouble(); - stringReader.expect(' '); - float j = (float) stringReader.readDouble(); - stringReader.expect(' '); - float k = (float) stringReader.readDouble(); - stringReader.expect(' '); - int l = stringReader.readInt(); - BlockPos blockPos = new BlockPos(f, g, h); - BlockPos blockPos2 = new BlockPos(i, j, k); - return new ExperienceTransferParticleEffect(new ExperienceTransfer(blockPos, new BlockPositionSource(blockPos2), l)); - } - - public ExperienceTransferParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { - ExperienceTransfer experienceTransfer = ExperienceTransfer.readFromBuf(packetByteBuf); - return new ExperienceTransferParticleEffect(experienceTransfer); - } - }; - - private final ExperienceTransfer experienceTransfer; - - public ExperienceTransferParticleEffect(ExperienceTransfer experienceTransfer) { - this.experienceTransfer = experienceTransfer; - } - - public ExperienceTransferParticleEffect(Object experienceOrbTransfer) { - this((ExperienceTransfer) experienceOrbTransfer); - } - - public void write(PacketByteBuf buf) { - ExperienceTransfer.writeToBuf(buf, this.experienceTransfer); - } - - public String asString() { - BlockPos blockPos = this.experienceTransfer.getOrigin(); - double d = blockPos.getX(); - double e = blockPos.getY(); - double f = blockPos.getZ(); - return String.format(Locale.ROOT, "%s %.2f %.2f %.2f %.2f %.2f %.2f %d", Registry.PARTICLE_TYPE.getId(this.getType()), d, e, f, d, e, f, this.experienceTransfer.getArrivalInTicks()); - } - - public ParticleType getType() { - return SpectrumParticleTypes.EXPERIENCE_TRANSFER; - } - - public ExperienceTransfer getExperienceTransfer() { - return this.experienceTransfer; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransmissionParticleEffect.java new file mode 100644 index 0000000000..a0a281e077 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/ExperienceTransmissionParticleEffect.java @@ -0,0 +1,53 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.particle.ParticleType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.event.BlockPositionSource; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class ExperienceTransmissionParticleEffect extends TransmissionParticleEffect { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(PositionSource.CODEC.fieldOf("destination").forGetter((effect) -> { + return effect.destination; + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((vibrationParticleEffect) -> { + return vibrationParticleEffect.arrivalInTicks; + })).apply(instance, ExperienceTransmissionParticleEffect::new); + }); + public static final Factory FACTORY = new Factory<>() { + public ExperienceTransmissionParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { + stringReader.expect(' '); + float f = (float) stringReader.readDouble(); + stringReader.expect(' '); + float g = (float) stringReader.readDouble(); + stringReader.expect(' '); + float h = (float) stringReader.readDouble(); + stringReader.expect(' '); + int i = stringReader.readInt(); + BlockPos blockPos = new BlockPos(f, g, h); + return new ExperienceTransmissionParticleEffect(new BlockPositionSource(blockPos), i); + } + + public ExperienceTransmissionParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { + PositionSource positionSource = PositionSourceType.read(packetByteBuf); + int i = packetByteBuf.readVarInt(); + return new ExperienceTransmissionParticleEffect(positionSource, i); + } + }; + + public ExperienceTransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks) { + super(positionSource, arrivalInTicks); + } + + public ParticleType getType() { + return SpectrumParticleTypes.EXPERIENCE_TRANSMISSION; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransfer.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransfer.java deleted file mode 100644 index 2800dd438f..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransfer.java +++ /dev/null @@ -1,60 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.datafixers.util.Function3; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.PositionSourceType; - -public class ItemTransfer { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(BlockPos.CODEC.fieldOf("origin").forGetter((itemTransfer) -> { - return itemTransfer.origin; - }), PositionSource.CODEC.fieldOf("destination").forGetter((itemTransfer) -> { - return itemTransfer.destination; - }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((itemTransfer) -> { - return itemTransfer.arrivalInTicks; - })).apply(instance, (Function3) (ItemTransfer::new)); - }); - private final BlockPos origin; - private final PositionSource destination; - private final int arrivalInTicks; - - public ItemTransfer(BlockPos origin, PositionSource destination, int arrivalInTicks) { - this.origin = origin; - this.destination = destination; - this.arrivalInTicks = arrivalInTicks; - } - - public ItemTransfer(Object origin, Object destination, Object arrivalInTicks) { - this((BlockPos) origin, (PositionSource) destination, (int) arrivalInTicks); - } - - public static ItemTransfer readFromBuf(PacketByteBuf buf) { - BlockPos blockPos = buf.readBlockPos(); - PositionSource positionSource = PositionSourceType.read(buf); - int i = buf.readVarInt(); - return new ItemTransfer(blockPos, positionSource, i); - } - - public static void writeToBuf(PacketByteBuf buf, ItemTransfer itemTransfer) { - buf.writeBlockPos(itemTransfer.origin); - PositionSourceType.write(itemTransfer.destination, buf); - buf.writeVarInt(itemTransfer.arrivalInTicks); - } - - public int getArrivalInTicks() { - return this.arrivalInTicks; - } - - public BlockPos getOrigin() { - return this.origin; - } - - public PositionSource getDestination() { - return this.destination; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransferParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransferParticleEffect.java deleted file mode 100644 index ccb590f654..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransferParticleEffect.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.event.BlockPositionSource; - -import java.util.Locale; -import java.util.function.Function; - -public class ItemTransferParticleEffect implements ParticleEffect { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(ItemTransfer.CODEC.fieldOf("item_transfer").forGetter((itemTransferParticleEffect) -> { - return itemTransferParticleEffect.itemTransfer; - })).apply(instance, (Function) (ItemTransferParticleEffect::new)); - }); - public static final ParticleEffect.Factory FACTORY = new ParticleEffect.Factory<>() { - public ItemTransferParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { - stringReader.expect(' '); - float f = (float) stringReader.readDouble(); - stringReader.expect(' '); - float g = (float) stringReader.readDouble(); - stringReader.expect(' '); - float h = (float) stringReader.readDouble(); - stringReader.expect(' '); - float i = (float) stringReader.readDouble(); - stringReader.expect(' '); - float j = (float) stringReader.readDouble(); - stringReader.expect(' '); - float k = (float) stringReader.readDouble(); - stringReader.expect(' '); - int l = stringReader.readInt(); - BlockPos blockPos = new BlockPos(f, g, h); - BlockPos blockPos2 = new BlockPos(i, j, k); - return new ItemTransferParticleEffect(new ItemTransfer(blockPos, new BlockPositionSource(blockPos2), l)); - } - - public ItemTransferParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { - ItemTransfer itemTransfer = ItemTransfer.readFromBuf(packetByteBuf); - return new ItemTransferParticleEffect(itemTransfer); - } - }; - - private final ItemTransfer itemTransfer; - - public ItemTransferParticleEffect(ItemTransfer itemTransfer) { - this.itemTransfer = itemTransfer; - } - - public ItemTransferParticleEffect(Object itemTransfer) { - this((ItemTransfer) itemTransfer); - } - - public void write(PacketByteBuf buf) { - ItemTransfer.writeToBuf(buf, this.itemTransfer); - } - - public String asString() { - BlockPos blockPos = this.itemTransfer.getOrigin(); - double d = blockPos.getX(); - double e = blockPos.getY(); - double f = blockPos.getZ(); - return String.format(Locale.ROOT, "%s %.2f %.2f %.2f %.2f %.2f %.2f %d", Registry.PARTICLE_TYPE.getId(this.getType()), d, e, f, d, e, f, this.itemTransfer.getArrivalInTicks()); - } - - public ParticleType getType() { - return SpectrumParticleTypes.ITEM_TRANSFER; - } - - public ItemTransfer getItemTransfer() { - return this.itemTransfer; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransmissionParticleEffect.java new file mode 100644 index 0000000000..a2edc62df5 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/ItemTransmissionParticleEffect.java @@ -0,0 +1,53 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.particle.ParticleType; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.event.BlockPositionSource; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class ItemTransmissionParticleEffect extends TransmissionParticleEffect { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(PositionSource.CODEC.fieldOf("destination").forGetter((effect) -> { + return effect.destination; + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((vibrationParticleEffect) -> { + return vibrationParticleEffect.arrivalInTicks; + })).apply(instance, ItemTransmissionParticleEffect::new); + }); + public static final Factory FACTORY = new Factory<>() { + public ItemTransmissionParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { + stringReader.expect(' '); + float f = (float) stringReader.readDouble(); + stringReader.expect(' '); + float g = (float) stringReader.readDouble(); + stringReader.expect(' '); + float h = (float) stringReader.readDouble(); + stringReader.expect(' '); + int i = stringReader.readInt(); + BlockPos blockPos = new BlockPos(f, g, h); + return new ItemTransmissionParticleEffect(new BlockPositionSource(blockPos), i); + } + + public ItemTransmissionParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { + PositionSource positionSource = PositionSourceType.read(packetByteBuf); + int i = packetByteBuf.readVarInt(); + return new ItemTransmissionParticleEffect(positionSource, i); + } + }; + + public ItemTransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks) { + super(positionSource, arrivalInTicks); + } + + public ParticleType getType() { + return SpectrumParticleTypes.ITEM_TRANSMISSION; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/PastelTransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/PastelTransmissionParticleEffect.java new file mode 100644 index 0000000000..bb7b7d23a4 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/PastelTransmissionParticleEffect.java @@ -0,0 +1,127 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.brigadier.*; +import com.mojang.brigadier.exceptions.*; +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import de.dafuqs.spectrum.particle.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.particle.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; + +import java.util.*; + +public class PastelTransmissionParticleEffect implements ParticleEffect { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + Codec.list(BlockPos.CODEC).fieldOf("positions").forGetter((particleEffect) -> particleEffect.nodePositions), + ItemStack.CODEC.fieldOf("stack").forGetter((effect) -> effect.stack), + Codec.INT.fieldOf("travel_time").forGetter((particleEffect) -> particleEffect.travelTime), + Codec.INT.fieldOf("color").forGetter((particleEffect) -> particleEffect.color) + ).apply(instance, PastelTransmissionParticleEffect::new)); + + public static final Factory FACTORY = new Factory<>() { + public PastelTransmissionParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { + List posList = new ArrayList<>(); + + stringReader.expect(' '); + int travelTime = stringReader.readInt(); + + // TODO I don't care, really + stringReader.expect(' '); + int x1 = stringReader.readInt(); + stringReader.expect(' '); + int y1 = stringReader.readInt(); + stringReader.expect(' '); + int z1 = stringReader.readInt(); + + stringReader.expect(' '); + int x2 = stringReader.readInt(); + stringReader.expect(' '); + int y2 = stringReader.readInt(); + stringReader.expect(' '); + int z2 = stringReader.readInt(); + + stringReader.expect(' '); + int color = stringReader.readInt(); + + BlockPos sourcePos = new BlockPos(x1, y1, z1); + BlockPos destinationPos = new BlockPos(x2, y2, z2); + posList.add(sourcePos); + posList.add(destinationPos); + return new PastelTransmissionParticleEffect(posList, Items.STONE.getDefaultStack(), travelTime, color); + } + + public PastelTransmissionParticleEffect read(ParticleType particleType, PacketByteBuf buf) { + int posCount = buf.readInt(); + List posList = new ArrayList<>(); + for (int i = 0; i < posCount; i++) { + posList.add(buf.readBlockPos()); + } + ItemStack stack = buf.readItemStack(); + int travelTime = buf.readInt(); + int color = buf.readInt(); + return new PastelTransmissionParticleEffect(posList, stack, travelTime, color); + } + }; + + private final List nodePositions; + private final ItemStack stack; + private final int travelTime; + private final int color; + + public PastelTransmissionParticleEffect(List nodePositions, ItemStack stack, int travelTime, int color) { + this.nodePositions = nodePositions; + this.stack = stack; + this.travelTime = travelTime; + this.color = color; + } + + public ParticleType getType() { + return SpectrumParticleTypes.PASTEL_TRANSMISSION; + } + + @Override + public String asString() { + int nodeCount = this.nodePositions.size(); + BlockPos source = this.nodePositions.get(0); + BlockPos destination = this.nodePositions.get(this.nodePositions.size() - 1); + int d = source.getX(); + int e = source.getY(); + int f = source.getZ(); + int g = destination.getX(); + int h = destination.getY(); + int i = destination.getZ(); + return String.format(Locale.ROOT, "%s %d %d %d %d %d %d %d %d %d %d", Registry.PARTICLE_TYPE.getId(this.getType()), this.travelTime, nodeCount, d, e, f, g, h, i, this.color); + } + + @Override + public void write(PacketByteBuf buf) { + buf.writeInt(nodePositions.size()); + for (BlockPos pos : nodePositions) { + buf.writeBlockPos(pos); + } + buf.writeItemStack(stack); + buf.writeInt(travelTime); + buf.writeInt(color); + } + + public List getNodePositions() { + return this.nodePositions; + } + + public ItemStack getStack() { + return this.stack; + } + + public int getTravelTime() { + return this.travelTime; + } + + public int getColor() { + return this.color; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/SimpleTransmission.java b/src/main/java/de/dafuqs/spectrum/particle/effect/SimpleTransmission.java new file mode 100644 index 0000000000..9cc93770a4 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/SimpleTransmission.java @@ -0,0 +1,62 @@ +package de.dafuqs.spectrum.particle.effect; + +import com.mojang.datafixers.util.Function3; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +public class SimpleTransmission { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group(Vec3d.CODEC.fieldOf("origin").forGetter((itemTransfer) -> { + return itemTransfer.origin; + }), PositionSource.CODEC.fieldOf("destination").forGetter((itemTransfer) -> { + return itemTransfer.destination; + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((itemTransfer) -> { + return itemTransfer.arrivalInTicks; + })).apply(instance, (Function3) (SimpleTransmission::new)); + }); + private final Vec3d origin; + private final PositionSource destination; + private final int arrivalInTicks; + + public SimpleTransmission(Vec3d origin, PositionSource destination, int arrivalInTicks) { + this.origin = origin; + this.destination = destination; + this.arrivalInTicks = arrivalInTicks; + } + + public SimpleTransmission(Object origin, Object destination, Object arrivalInTicks) { + this((Vec3d) origin, (PositionSource) destination, (int) arrivalInTicks); + } + + public static SimpleTransmission readFromBuf(PacketByteBuf buf) { + Vec3d origin = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); + PositionSource positionSource = PositionSourceType.read(buf); + int i = buf.readVarInt(); + return new SimpleTransmission(origin, positionSource, i); + } + + public static void writeToBuf(PacketByteBuf buf, SimpleTransmission transfer) { + buf.writeDouble(transfer.origin.x); + buf.writeDouble(transfer.origin.y); + buf.writeDouble(transfer.origin.z); + PositionSourceType.write(transfer.destination, buf); + buf.writeVarInt(transfer.arrivalInTicks); + } + + public int getArrivalInTicks() { + return this.arrivalInTicks; + } + + public Vec3d getOrigin() { + return this.origin; + } + + public PositionSource getDestination() { + return this.destination; + } +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/TransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/TransmissionParticleEffect.java new file mode 100644 index 0000000000..7b4791feeb --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/TransmissionParticleEffect.java @@ -0,0 +1,43 @@ +package de.dafuqs.spectrum.particle.effect; + +import net.minecraft.network.PacketByteBuf; +import net.minecraft.particle.ParticleEffect; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; + +import java.util.Locale; + +public abstract class TransmissionParticleEffect implements ParticleEffect { + + protected final PositionSource destination; + protected final int arrivalInTicks; + + public TransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks) { + this.destination = positionSource; + this.arrivalInTicks = arrivalInTicks; + } + + public void write(PacketByteBuf buf) { + PositionSourceType.write(this.destination, buf); + buf.writeVarInt(this.arrivalInTicks); + } + + public String asString() { + Vec3d vec3d = this.destination.getPos(null).get(); + double d = vec3d.getX(); + double e = vec3d.getY(); + double f = vec3d.getZ(); + return String.format(Locale.ROOT, "%s %.2f %.2f %.2f %d", Registry.PARTICLE_TYPE.getId(this.getType()), d, e, f, this.arrivalInTicks); + } + + public PositionSource getDestination() { + return this.destination; + } + + public int getArrivalInTicks() { + return this.arrivalInTicks; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/Transphere.java b/src/main/java/de/dafuqs/spectrum/particle/effect/Transphere.java deleted file mode 100644 index 30cda1768e..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/Transphere.java +++ /dev/null @@ -1,72 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.datafixers.util.Function4; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.DyeColor; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.event.PositionSource; -import net.minecraft.world.event.PositionSourceType; - -public class Transphere { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(BlockPos.CODEC.fieldOf("origin").forGetter((transphere) -> { - return transphere.origin; - }), PositionSource.CODEC.fieldOf("destination").forGetter((transphere) -> { - return transphere.destination; - }), Codec.INT.fieldOf("dye_color").forGetter((transphere) -> { - return transphere.dyeColor.getId(); - }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((transphere) -> { - return transphere.arrivalInTicks; - })).apply(instance, (Function4) (Transphere::new)); - }); - private final BlockPos origin; - private final PositionSource destination; - private final int arrivalInTicks; - private final DyeColor dyeColor; - - public Transphere(BlockPos origin, PositionSource destination, int arrivalInTicks, DyeColor dyeColor) { - this.origin = origin; - this.destination = destination; - this.arrivalInTicks = arrivalInTicks; - this.dyeColor = dyeColor; - } - - public Transphere(Object origin, Object destination, Object arrivalInTicks, Object dyeColor) { - this((BlockPos) origin, (PositionSource) destination, (int) arrivalInTicks, DyeColor.values()[(int) dyeColor]); - } - - public static Transphere readFromBuf(PacketByteBuf buf) { - BlockPos blockPos = buf.readBlockPos(); - PositionSource positionSource = PositionSourceType.read(buf); - DyeColor dyeColor = DyeColor.byId(buf.readInt()); - int arrivalInTicks = buf.readVarInt(); - return new Transphere(blockPos, positionSource, arrivalInTicks, dyeColor); - } - - public static void writeToBuf(PacketByteBuf buf, Transphere transphere) { - buf.writeBlockPos(transphere.origin); - PositionSourceType.write(transphere.destination, buf); - buf.writeInt(transphere.getDyeColor().getId()); - buf.writeVarInt(transphere.arrivalInTicks); - } - - public int getArrivalInTicks() { - return this.arrivalInTicks; - } - - public BlockPos getOrigin() { - return this.origin; - } - - public PositionSource getDestination() { - return this.destination; - } - - public DyeColor getDyeColor() { - return this.dyeColor; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/TransphereParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/TransphereParticleEffect.java deleted file mode 100644 index bf74d7d997..0000000000 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/TransphereParticleEffect.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.dafuqs.spectrum.particle.effect; - -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.particle.ParticleEffect; -import net.minecraft.particle.ParticleType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.event.BlockPositionSource; - -import java.util.Locale; -import java.util.function.Function; - -public class TransphereParticleEffect implements ParticleEffect { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group(Transphere.CODEC.fieldOf("transphere").forGetter((transphereParticleEffect) -> { - return transphereParticleEffect.transphere; - })).apply(instance, (Function) (TransphereParticleEffect::new))); - - public static final Factory FACTORY = new Factory<>() { - public TransphereParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { - stringReader.expect(' '); - float f = (float) stringReader.readDouble(); - stringReader.expect(' '); - float g = (float) stringReader.readDouble(); - stringReader.expect(' '); - float h = (float) stringReader.readDouble(); - stringReader.expect(' '); - float i = (float) stringReader.readDouble(); - stringReader.expect(' '); - float j = (float) stringReader.readDouble(); - stringReader.expect(' '); - float k = (float) stringReader.readDouble(); - stringReader.expect(' '); - int l = stringReader.readInt(); - int p = stringReader.readInt(); - BlockPos blockPos = new BlockPos(f, g, h); - BlockPos blockPos2 = new BlockPos(i, j, k); - return new TransphereParticleEffect(new Transphere(blockPos, new BlockPositionSource(blockPos2), l, p)); - } - - public TransphereParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { - Transphere transphere = Transphere.readFromBuf(packetByteBuf); - return new TransphereParticleEffect(transphere); - } - }; - - private final Transphere transphere; - - public TransphereParticleEffect(Transphere transphere) { - this.transphere = transphere; - } - - public TransphereParticleEffect(Object transphere) { - this((Transphere) transphere); - } - - public void write(PacketByteBuf buf) { - Transphere.writeToBuf(buf, this.transphere); - } - - public String asString() { - BlockPos blockPos = this.transphere.getOrigin(); - double d = blockPos.getX(); - double e = blockPos.getY(); - double f = blockPos.getZ(); - return String.format(Locale.ROOT, "%s %.2f %.2f %.2f %.2f %.2f %.2f %d", Registry.PARTICLE_TYPE.getId(this.getType()), d, e, f, d, e, f, this.transphere.getArrivalInTicks()); - } - - public ParticleType getType() { - return SpectrumParticleTypes.TRANSPHERE; - } - - public Transphere getTransphere() { - return this.transphere; - } -} diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmission.java b/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmission.java index bced16a32b..a8544a2145 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmission.java +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmission.java @@ -4,14 +4,14 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.event.PositionSource; import net.minecraft.world.event.PositionSourceType; public class WirelessRedstoneTransmission { public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(BlockPos.CODEC.fieldOf("origin").forGetter((itemTransfer) -> { + return instance.group(Vec3d.CODEC.fieldOf("origin").forGetter((itemTransfer) -> { return itemTransfer.origin; }), PositionSource.CODEC.fieldOf("destination").forGetter((itemTransfer) -> { return itemTransfer.destination; @@ -19,38 +19,40 @@ public class WirelessRedstoneTransmission { return itemTransfer.arrivalInTicks; })).apply(instance, (Function3) (WirelessRedstoneTransmission::new)); }); - private final BlockPos origin; + private final Vec3d origin; private final PositionSource destination; private final int arrivalInTicks; - public WirelessRedstoneTransmission(BlockPos origin, PositionSource destination, int arrivalInTicks) { + public WirelessRedstoneTransmission(Vec3d origin, PositionSource destination, int arrivalInTicks) { this.origin = origin; this.destination = destination; this.arrivalInTicks = arrivalInTicks; } public WirelessRedstoneTransmission(Object origin, Object destination, Object arrivalInTicks) { - this((BlockPos) origin, (PositionSource) destination, (int) arrivalInTicks); + this((Vec3d) origin, (PositionSource) destination, (int) arrivalInTicks); } public static WirelessRedstoneTransmission readFromBuf(PacketByteBuf buf) { - BlockPos blockPos = buf.readBlockPos(); - PositionSource positionSource = PositionSourceType.read(buf); - int i = buf.readVarInt(); - return new WirelessRedstoneTransmission(blockPos, positionSource, i); + Vec3d origin = new Vec3d(buf.readDouble(), buf.readDouble(), buf.readDouble()); + PositionSource destination = PositionSourceType.read(buf); + int arrivalInTicks = buf.readVarInt(); + return new WirelessRedstoneTransmission(origin, destination, arrivalInTicks); } - public static void writeToBuf(PacketByteBuf buf, WirelessRedstoneTransmission itemTransfer) { - buf.writeBlockPos(itemTransfer.origin); - PositionSourceType.write(itemTransfer.destination, buf); - buf.writeVarInt(itemTransfer.arrivalInTicks); + public static void writeToBuf(PacketByteBuf buf, WirelessRedstoneTransmission transfer) { + buf.writeDouble(transfer.origin.x); + buf.writeDouble(transfer.origin.y); + buf.writeDouble(transfer.origin.z); + PositionSourceType.write(transfer.destination, buf); + buf.writeVarInt(transfer.arrivalInTicks); } public int getArrivalInTicks() { return this.arrivalInTicks; } - public BlockPos getOrigin() { + public Vec3d getOrigin() { return this.origin; } diff --git a/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmissionParticleEffect.java b/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmissionParticleEffect.java index fea28ba0c3..b814eb1726 100644 --- a/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmissionParticleEffect.java +++ b/src/main/java/de/dafuqs/spectrum/particle/effect/WirelessRedstoneTransmissionParticleEffect.java @@ -9,20 +9,21 @@ import net.minecraft.particle.ParticleEffect; import net.minecraft.particle.ParticleType; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.registry.Registry; import net.minecraft.world.event.BlockPositionSource; +import net.minecraft.world.event.PositionSource; +import net.minecraft.world.event.PositionSourceType; -import java.util.Locale; -import java.util.function.Function; - -public class WirelessRedstoneTransmissionParticleEffect implements ParticleEffect { +public class WirelessRedstoneTransmissionParticleEffect extends TransmissionParticleEffect { public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(WirelessRedstoneTransmission.CODEC.fieldOf("wireless_redstone_transmission").forGetter((itemTransferParticleEffect) -> { - return itemTransferParticleEffect.wirelessRedstoneTransmission; - })).apply(instance, (Function) (WirelessRedstoneTransmissionParticleEffect::new)); + return instance.group(PositionSource.CODEC.fieldOf("destination").forGetter((effect) -> { + return effect.destination; + }), Codec.INT.fieldOf("arrival_in_ticks").forGetter((vibrationParticleEffect) -> { + return vibrationParticleEffect.arrivalInTicks; + })).apply(instance, WirelessRedstoneTransmissionParticleEffect::new); }); - public static final Factory FACTORY = new Factory<>() { + + public static final ParticleEffect.Factory FACTORY = new ParticleEffect.Factory<>() { public WirelessRedstoneTransmissionParticleEffect read(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { stringReader.expect(' '); float f = (float) stringReader.readDouble(); @@ -31,51 +32,24 @@ public WirelessRedstoneTransmissionParticleEffect read(ParticleType particleType, PacketByteBuf packetByteBuf) { - ItemTransfer itemTransfer = ItemTransfer.readFromBuf(packetByteBuf); - return new WirelessRedstoneTransmissionParticleEffect(itemTransfer); + PositionSource positionSource = PositionSourceType.read(packetByteBuf); + int i = packetByteBuf.readVarInt(); + return new WirelessRedstoneTransmissionParticleEffect(positionSource, i); } }; - private final WirelessRedstoneTransmission wirelessRedstoneTransmission; - - public WirelessRedstoneTransmissionParticleEffect(WirelessRedstoneTransmission wirelessRedstoneTransmission) { - this.wirelessRedstoneTransmission = wirelessRedstoneTransmission; - } - - public WirelessRedstoneTransmissionParticleEffect(Object wirelessRedstoneTransmission) { - this((WirelessRedstoneTransmission) wirelessRedstoneTransmission); - } - - public void write(PacketByteBuf buf) { - WirelessRedstoneTransmission.writeToBuf(buf, this.wirelessRedstoneTransmission); - } - - public String asString() { - BlockPos blockPos = this.wirelessRedstoneTransmission.getOrigin(); - double d = blockPos.getX(); - double e = blockPos.getY(); - double f = blockPos.getZ(); - return String.format(Locale.ROOT, "%s %.2f %.2f %.2f %.2f %.2f %.2f %d", Registry.PARTICLE_TYPE.getId(this.getType()), d, e, f, d, e, f, this.wirelessRedstoneTransmission.getArrivalInTicks()); + public WirelessRedstoneTransmissionParticleEffect(PositionSource positionSource, int arrivalInTicks) { + super(positionSource, arrivalInTicks); } public ParticleType getType() { return SpectrumParticleTypes.WIRELESS_REDSTONE_TRANSMISSION; } - public WirelessRedstoneTransmission getWirelessRedstoneTransmission() { - return this.wirelessRedstoneTransmission; - } } diff --git a/src/main/java/de/dafuqs/spectrum/particle/render/EarlyRenderingParticle.java b/src/main/java/de/dafuqs/spectrum/particle/render/EarlyRenderingParticle.java new file mode 100644 index 0000000000..8e1f100450 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/render/EarlyRenderingParticle.java @@ -0,0 +1,10 @@ +package de.dafuqs.spectrum.particle.render; + +import net.fabricmc.api.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; + +@Environment(EnvType.CLIENT) +public interface EarlyRenderingParticle { + void renderAsEntity(final MatrixStack matrices, final VertexConsumerProvider vertexConsumers, final Camera camera, final float tickDelta); +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/particle/render/EarlyRenderingParticleContainer.java b/src/main/java/de/dafuqs/spectrum/particle/render/EarlyRenderingParticleContainer.java new file mode 100644 index 0000000000..2ccaa9bc9e --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/render/EarlyRenderingParticleContainer.java @@ -0,0 +1,36 @@ +package de.dafuqs.spectrum.particle.render; + +import com.google.common.collect.*; +import it.unimi.dsi.fastutil.objects.*; +import net.fabricmc.api.*; +import net.minecraft.client.particle.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; + +import java.util.*; + +@Environment(EnvType.CLIENT) +public class EarlyRenderingParticleContainer { + private static final int MAX_PARTICLES = 16384; + private final Map> particles = new Object2ReferenceOpenHashMap<>(); + + public void add(final Particle particle) { + if (particle instanceof EarlyRenderingParticle earlyRenderingParticle) { + particles.computeIfAbsent(particle.getType(), sheet -> EvictingQueue.create(MAX_PARTICLES)).add(earlyRenderingParticle); + } + } + + public void removeDead() { + for (final Queue particles : particles.values()) { + particles.removeIf(particle -> !((Particle) particle).isAlive()); + } + } + + public void render(final MatrixStack matrices, final VertexConsumerProvider vertexConsumers, final Camera camera, final float tickDelta) { + for (final Queue particles : particles.values()) { + for (final EarlyRenderingParticle particle : particles) { + particle.renderAsEntity(matrices, vertexConsumers, camera, tickDelta); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/particle/render/ExtendedParticleManager.java b/src/main/java/de/dafuqs/spectrum/particle/render/ExtendedParticleManager.java new file mode 100644 index 0000000000..d56eafcead --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/render/ExtendedParticleManager.java @@ -0,0 +1,10 @@ +package de.dafuqs.spectrum.particle.render; + +import net.fabricmc.api.*; +import net.minecraft.client.render.*; +import net.minecraft.client.util.math.*; + +@Environment(EnvType.CLIENT) +public interface ExtendedParticleManager { + void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, Camera camera, float tickDelta); +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/particle/render/TransparentVertexConsumerProvider.java b/src/main/java/de/dafuqs/spectrum/particle/render/TransparentVertexConsumerProvider.java new file mode 100644 index 0000000000..4624c90fd7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/render/TransparentVertexConsumerProvider.java @@ -0,0 +1,176 @@ +package de.dafuqs.spectrum.particle.render; + +import net.minecraft.client.render.*; +import net.minecraft.client.render.model.*; +import net.minecraft.client.util.math.*; +import net.minecraft.util.math.*; +import org.lwjgl.system.*; + +import java.nio.*; + +public class TransparentVertexConsumerProvider implements VertexConsumerProvider { + + private final VertexConsumerProvider delegate; + + public TransparentVertexConsumerProvider(final VertexConsumerProvider delegate) { + this.delegate = delegate; + } + + @Override + public VertexConsumer getBuffer(final RenderLayer layer) { + return new WrappedVertexConsumer(delegate.getBuffer(layer)); + } + + private static final class WrappedVertexConsumer implements VertexConsumer { + private final VertexConsumer delegate; + + private WrappedVertexConsumer(final VertexConsumer delegate) { + this.delegate = delegate; + } + + @Override + public VertexConsumer vertex(final double x, final double y, final double z) { + return delegate.vertex(x, y, z); + } + + @Override + public VertexConsumer color(final int red, final int green, final int blue, final int alpha) { + return delegate.color(red, green, blue, alpha >> 1); + } + + @Override + public VertexConsumer texture(final float u, final float v) { + return delegate.texture(u, v); + } + + @Override + public VertexConsumer overlay(final int u, final int v) { + return delegate.overlay(u, v); + } + + @Override + public VertexConsumer light(final int u, final int v) { + return delegate.light(u, v); + } + + @Override + public VertexConsumer normal(final float x, final float y, final float z) { + return delegate.normal(x, y, z); + } + + @Override + public void next() { + delegate.next(); + } + + @Override + public void vertex(final float x, final float y, final float z, final float red, final float green, final float blue, final float alpha, final float u, final float v, final int overlay, final int light, final float normalX, final float normalY, final float normalZ) { + delegate.vertex(x, y, z, red, green, blue, alpha * 0.5f, u, v, overlay, light, normalX, normalY, normalZ); + } + + @Override + public void fixedColor(final int red, final int green, final int blue, final int alpha) { + delegate.fixedColor(red, green, blue, alpha); + } + + @Override + public void unfixColor() { + delegate.unfixColor(); + } + + @Override + public VertexConsumer color(final float red, final float green, final float blue, final float alpha) { + return delegate.color(red, green, blue, alpha * 0.5F); + } + + @Override + public VertexConsumer color(final int argb) { + return color(ColorHelper.Argb.getRed(argb), ColorHelper.Argb.getGreen(argb), ColorHelper.Argb.getBlue(argb), ColorHelper.Argb.getAlpha(argb) >> 1); + } + + @Override + public VertexConsumer light(final int uv) { + return delegate.light(uv); + } + + @Override + public VertexConsumer overlay(final int uv) { + return delegate.overlay(uv); + } + + @Override + public void quad(final MatrixStack.Entry matrixEntry, final BakedQuad quad, final float red, final float green, final float blue, final int light, final int overlay) { + quad(matrixEntry, quad, new float[]{1.0F, 1.0F, 1.0F, 1.0F}, red, green, blue, new int[]{light, light, light, light}, overlay, false); + } + + @Override + public void quad(final MatrixStack.Entry matrixEntry, final BakedQuad quad, final float[] brightnesses, final float red, final float green, final float blue, final int[] lights, final int overlay, final boolean useQuadColorData) { + final float[] fs = new float[]{brightnesses[0], brightnesses[1], brightnesses[2], brightnesses[3]}; + final int[] is = new int[]{lights[0], lights[1], lights[2], lights[3]}; + final int[] js = quad.getVertexData(); + final Vec3i vec3i = quad.getFace().getVector(); + final Vec3f vec3f = new Vec3f((float) vec3i.getX(), (float) vec3i.getY(), (float) vec3i.getZ()); + final Matrix4f matrix4f = matrixEntry.getPositionMatrix(); + vec3f.transform(matrixEntry.getNormalMatrix()); + final int j = js.length / 8; + final MemoryStack memoryStack = MemoryStack.stackPush(); + + try { + final ByteBuffer byteBuffer = memoryStack.malloc(VertexFormats.POSITION_COLOR_TEXTURE_LIGHT_NORMAL.getVertexSizeByte()); + final IntBuffer intBuffer = byteBuffer.asIntBuffer(); + + for (int k = 0; k < j; ++k) { + intBuffer.clear(); + intBuffer.put(js, k * 8, 8); + final float f = byteBuffer.getFloat(0); + final float g = byteBuffer.getFloat(4); + final float h = byteBuffer.getFloat(8); + final float o; + final float p; + final float q; + float m; + float n; + if (useQuadColorData) { + final float l = (float) (byteBuffer.get(12) & 255) / 255.0F; + m = (float) (byteBuffer.get(13) & 255) / 255.0F; + n = (float) (byteBuffer.get(14) & 255) / 255.0F; + o = l * fs[k] * red; + p = m * fs[k] * green; + q = n * fs[k] * blue; + } else { + o = fs[k] * red; + p = fs[k] * green; + q = fs[k] * blue; + } + + final int r = is[k]; + m = byteBuffer.getFloat(16); + n = byteBuffer.getFloat(20); + final Vector4f vector4f = new Vector4f(f, g, h, 1.0F); + vector4f.transform(matrix4f); + vertex(vector4f.getX(), vector4f.getY(), vector4f.getZ(), o, p, q, 1.0F, m, n, overlay, r, vec3f.getX(), vec3f.getY(), vec3f.getZ()); + } + } catch (final Throwable var33) { + try { + memoryStack.close(); + } catch (final Throwable var32) { + var33.addSuppressed(var32); + } + + throw var33; + } + + memoryStack.close(); + } + + @Override + public VertexConsumer vertex(final Matrix4f matrix, final float x, final float y, final float z) { + return delegate.vertex(matrix, x, y, z); + } + + @Override + public VertexConsumer normal(final Matrix3f matrix, final float x, final float y, final float z) { + return delegate.normal(matrix, x, y, z); + } + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/particle/render/TransparentVertexConsumers.java b/src/main/java/de/dafuqs/spectrum/particle/render/TransparentVertexConsumers.java new file mode 100644 index 0000000000..ef8afade62 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/particle/render/TransparentVertexConsumers.java @@ -0,0 +1,4 @@ +package de.dafuqs.spectrum.particle.render; + +public class TransparentVertexConsumers { +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/progression/SpectrumAdvancementCriteria.java b/src/main/java/de/dafuqs/spectrum/progression/SpectrumAdvancementCriteria.java index 1e09690f82..e803271f2e 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/SpectrumAdvancementCriteria.java +++ b/src/main/java/de/dafuqs/spectrum/progression/SpectrumAdvancementCriteria.java @@ -1,10 +1,10 @@ package de.dafuqs.spectrum.progression; import de.dafuqs.spectrum.progression.advancement.*; -import net.fabricmc.fabric.mixin.object.builder.CriteriaAccessor; +import net.fabricmc.fabric.mixin.object.builder.*; public class SpectrumAdvancementCriteria { - + public static PedestalCraftingCriterion PEDESTAL_CRAFTING; public static FusionShrineCraftingCriterion FUSION_SHRINE_CRAFTING; public static CompletedMultiblockCriterion COMPLETED_MULTIBLOCK; @@ -36,7 +36,9 @@ public class SpectrumAdvancementCriteria { public static BloodOrchidPluckingCriterion BLOOD_ORCHID_PLUCKING; public static DivinityTickCriterion DIVINITY_TICK; public static ConsumedTeaWithSconeCriterion CONSUMED_TEA_WITH_SCONE; - + public static HummingstoneHymnCriterion CREATE_HUMMINGSTONE_HYMN; + public static PastelNetworkCreatingCriterion PASTEL_NETWORK_CREATING; + public static void register() { PEDESTAL_CRAFTING = CriteriaAccessor.callRegister(new PedestalCraftingCriterion()); FUSION_SHRINE_CRAFTING = CriteriaAccessor.callRegister(new FusionShrineCraftingCriterion()); @@ -69,6 +71,8 @@ public static void register() { BLOOD_ORCHID_PLUCKING = CriteriaAccessor.callRegister(new BloodOrchidPluckingCriterion()); DIVINITY_TICK = CriteriaAccessor.callRegister(new DivinityTickCriterion()); CONSUMED_TEA_WITH_SCONE = CriteriaAccessor.callRegister(new ConsumedTeaWithSconeCriterion()); + CREATE_HUMMINGSTONE_HYMN = CriteriaAccessor.callRegister(new HummingstoneHymnCriterion()); + PASTEL_NETWORK_CREATING = CriteriaAccessor.callRegister(new PastelNetworkCreatingCriterion()); } } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/progression/UnlockToastManager.java b/src/main/java/de/dafuqs/spectrum/progression/UnlockToastManager.java index 30dcb71136..f8df7d16b3 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/UnlockToastManager.java +++ b/src/main/java/de/dafuqs/spectrum/progression/UnlockToastManager.java @@ -2,7 +2,7 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.items.magic_items.PaintBrushItem; +import de.dafuqs.spectrum.items.magic_items.PaintbrushItem; import de.dafuqs.spectrum.progression.toast.MessageToast; import de.dafuqs.spectrum.progression.toast.UnlockedRecipeGroupToast; import de.dafuqs.spectrum.recipe.GatedRecipe; @@ -17,7 +17,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.recipe.RecipeType; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.Pair; import org.jetbrains.annotations.NotNull; @@ -36,8 +36,8 @@ public class UnlockToastManager { put(SpectrumCommon.locate("milestones/unlock_fourth_potion_workshop_reagent_slot"), new Pair<>(SpectrumBlocks.POTION_WORKSHOP.asItem().getDefaultStack(), "fourth_potion_reagent_unlocked")); put(SpectrumCommon.locate("midgame/spectrum_midgame"), new Pair<>(SpectrumBlocks.PEDESTAL_ONYX.asItem().getDefaultStack(), "second_advancement_tree_unlocked")); put(SpectrumCommon.locate("lategame/spectrum_lategame"), new Pair<>(SpectrumBlocks.PEDESTAL_MOONSTONE.asItem().getDefaultStack(), "third_advancement_tree_unlocked")); - put(PaintBrushItem.UNLOCK_COLORING_ADVANCEMENT_ID, new Pair<>(SpectrumItems.PAINTBRUSH.getDefaultStack(), "block_coloring_unlocked")); - put(PaintBrushItem.UNLOCK_INK_SLINGING_ADVANCEMENT_ID, new Pair<>(SpectrumItems.PAINTBRUSH.getDefaultStack(), "paint_flinging_unlocked")); + put(PaintbrushItem.UNLOCK_COLORING_ADVANCEMENT_ID, new Pair<>(SpectrumItems.PAINTBRUSH.getDefaultStack(), "block_coloring_unlocked")); + put(PaintbrushItem.UNLOCK_INK_SLINGING_ADVANCEMENT_ID, new Pair<>(SpectrumItems.PAINTBRUSH.getDefaultStack(), "paint_flinging_unlocked")); }}; public static void registerGatedRecipe(RecipeType recipeType, GatedRecipe gatedRecipe) { @@ -129,14 +129,14 @@ public static void processAdvancements(Set doneAdvancements) { private static void showGroupedRecipeUnlockToasts(List unlockedRecipes) { if (!unlockedRecipes.isEmpty()) { - TranslatableText singleText = unlockedRecipes.get(0).getSingleUnlockToastString(); - TranslatableText multipleText = unlockedRecipes.get(0).getMultipleUnlockToastString(); + Text singleText = unlockedRecipes.get(0).getSingleUnlockToastString(); + Text multipleText = unlockedRecipes.get(0).getMultipleUnlockToastString(); HashMap> groupedRecipes = new HashMap<>(); for (GatedRecipe recipe : unlockedRecipes) { if (!recipe.getOutput().isEmpty()) { // weather recipes - if(recipe.getGroup() == null) { + if (recipe.getGroup() == null) { SpectrumCommon.logWarning("Found a recipe with null group: " + recipe.getId().toString() + " Please report this. If you are Dafuqs and you are reading this: you messed up big time."); } diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/BrokenBlockPredicate.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/BrokenBlockPredicate.java index a1a6678b9e..f216a34d5b 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/advancement/BrokenBlockPredicate.java +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/BrokenBlockPredicate.java @@ -23,11 +23,11 @@ public class BrokenBlockPredicate { public static final BrokenBlockPredicate ANY; - + static { ANY = new BrokenBlockPredicate(null, null, StatePredicate.ANY); } - + @Nullable private final TagKey tag; @Nullable diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/CinderhearthSmeltingCriterion.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/CinderhearthSmeltingCriterion.java index eefdf625a7..4cd3675879 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/advancement/CinderhearthSmeltingCriterion.java +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/CinderhearthSmeltingCriterion.java @@ -1,17 +1,17 @@ package de.dafuqs.spectrum.progression.advancement; -import com.google.gson.JsonObject; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.advancement.criterion.AbstractCriterion; -import net.minecraft.advancement.criterion.AbstractCriterionConditions; -import net.minecraft.item.ItemStack; -import net.minecraft.predicate.NumberRange; -import net.minecraft.predicate.entity.AdvancementEntityPredicateDeserializer; -import net.minecraft.predicate.entity.AdvancementEntityPredicateSerializer; -import net.minecraft.predicate.entity.EntityPredicate; -import net.minecraft.predicate.item.ItemPredicate; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.Identifier; +import com.google.gson.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.item.*; +import net.minecraft.predicate.*; +import net.minecraft.predicate.entity.*; +import net.minecraft.predicate.item.*; +import net.minecraft.server.network.*; +import net.minecraft.util.*; + +import java.util.*; public class CinderhearthSmeltingCriterion extends AbstractCriterion { @@ -24,33 +24,37 @@ public Identifier getId() { public CinderhearthSmeltingCriterion.Conditions conditionsFromJson(JsonObject jsonObject, EntityPredicate.Extended extended, AdvancementEntityPredicateDeserializer advancementEntityPredicateDeserializer) { ItemPredicate input = ItemPredicate.fromJson(jsonObject.get("input")); ItemPredicate output = ItemPredicate.fromJson(jsonObject.get("output")); - NumberRange.FloatRange speedMultiplierRange = NumberRange.FloatRange.fromJson(jsonObject.get("speed_multiplier")); - NumberRange.FloatRange yieldMultiplierRange = NumberRange.FloatRange.fromJson(jsonObject.get("yield_multiplier")); - NumberRange.FloatRange experienceMultiplierRange = NumberRange.FloatRange.fromJson(jsonObject.get("experience_multiplier")); - - return new CinderhearthSmeltingCriterion.Conditions(extended, input, output, speedMultiplierRange, yieldMultiplierRange, experienceMultiplierRange); + NumberRange.IntRange experienceRange = NumberRange.IntRange.fromJson(jsonObject.get("gained_experience")); + NumberRange.IntRange speedMultiplierRange = NumberRange.IntRange.fromJson(jsonObject.get("speed_multiplier")); + NumberRange.IntRange yieldMultiplierRange = NumberRange.IntRange.fromJson(jsonObject.get("yield_multiplier")); + NumberRange.IntRange efficiencyMultiplierRange = NumberRange.IntRange.fromJson(jsonObject.get("efficiency_multiplier")); + NumberRange.IntRange experienceMultiplierRange = NumberRange.IntRange.fromJson(jsonObject.get("experience_multiplier")); + + return new CinderhearthSmeltingCriterion.Conditions(extended, input, output, experienceRange, speedMultiplierRange, yieldMultiplierRange, efficiencyMultiplierRange, experienceMultiplierRange); } - - public void trigger(ServerPlayerEntity player, ItemStack input, ItemStack output, float speedMultiplier, float yieldMultiplier, float experienceMultiplier) { - this.trigger(player, (conditions) -> { - return conditions.matches(input, output, speedMultiplier, yieldMultiplier, experienceMultiplier); - }); + + public void trigger(ServerPlayerEntity player, ItemStack input, List outputs, int experience, Upgradeable.UpgradeHolder upgrades) { + this.trigger(player, (conditions) -> conditions.matches(input, outputs, experience, upgrades)); } - + public static class Conditions extends AbstractCriterionConditions { - + private final ItemPredicate input; private final ItemPredicate output; - private final NumberRange.FloatRange speedMultiplierRange; - private final NumberRange.FloatRange yieldMultiplierRange; - private final NumberRange.FloatRange experienceMultiplierRange; - - public Conditions(EntityPredicate.Extended player, ItemPredicate input, ItemPredicate output, NumberRange.FloatRange speedMultiplierRange, NumberRange.FloatRange yieldMultiplierRange, NumberRange.FloatRange experienceMultiplierRange) { + private final NumberRange.IntRange experienceRange; + private final NumberRange.IntRange speedMultiplierRange; + private final NumberRange.IntRange yieldMultiplierRange; + private final NumberRange.IntRange efficiencyMultiplierRange; + private final NumberRange.IntRange experienceMultiplierRange; + + public Conditions(EntityPredicate.Extended player, ItemPredicate input, ItemPredicate output, NumberRange.IntRange experienceRange, NumberRange.IntRange speedMultiplierRange, NumberRange.IntRange yieldMultiplierRange, NumberRange.IntRange efficiencyMultiplierRange, NumberRange.IntRange experienceMultiplierRange) { super(ID, player); this.input = input; this.output = output; + this.experienceRange = experienceRange; this.speedMultiplierRange = speedMultiplierRange; this.yieldMultiplierRange = yieldMultiplierRange; + this.efficiencyMultiplierRange = efficiencyMultiplierRange; this.experienceMultiplierRange = experienceMultiplierRange; } @@ -58,16 +62,44 @@ public JsonObject toJson(AdvancementEntityPredicateSerializer predicateSerialize JsonObject jsonObject = super.toJson(predicateSerializer); jsonObject.add("input", this.input.toJson()); jsonObject.add("output", this.output.toJson()); + jsonObject.add("gained_experience", this.experienceRange.toJson()); jsonObject.add("speed_multiplier", this.speedMultiplierRange.toJson()); jsonObject.add("yield_multiplier", this.yieldMultiplierRange.toJson()); + jsonObject.add("efficiency_multiplier", this.efficiencyMultiplierRange.toJson()); jsonObject.add("experience_multiplier", this.experienceMultiplierRange.toJson()); return jsonObject; } - - public boolean matches(ItemStack input, ItemStack output, float speedMultiplier, float yieldMultiplier, float experienceMultiplier) { - return (this.input.test(input) && this.output.test(output) && this.speedMultiplierRange.test(speedMultiplier) && this.yieldMultiplierRange.test(yieldMultiplier) && this.experienceMultiplierRange.test(experienceMultiplier)); + + public boolean matches(ItemStack input, List outputs, int experience, Upgradeable.UpgradeHolder upgrades) { + if (!this.input.test(input)) { + return false; + } + if (!this.experienceRange.test(experience)) { + return false; + } + if (!this.speedMultiplierRange.test(upgrades.getRawValue(Upgradeable.UpgradeType.SPEED))) { + return false; + } + if (!this.yieldMultiplierRange.test(upgrades.getRawValue(Upgradeable.UpgradeType.YIELD))) { + return false; + } + if (!this.efficiencyMultiplierRange.test(upgrades.getRawValue(Upgradeable.UpgradeType.EFFICIENCY))) { + return false; + } + if (!this.experienceMultiplierRange.test(upgrades.getRawValue(Upgradeable.UpgradeType.EXPERIENCE))) { + return false; + } + if (this.output == ItemPredicate.ANY) { + return true; // empty output predicate + } + for (ItemStack output : outputs) { + if (this.output.test(output)) { + return true; + } + } + return false; } - + } } diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/ColorPredicate.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/ColorPredicate.java index 860e3f5950..fa1b604049 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/advancement/ColorPredicate.java +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/ColorPredicate.java @@ -12,7 +12,7 @@ public class ColorPredicate { public static final ColorPredicate ANY; - + static { ANY = new ColorPredicate(null); } diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/HummingstoneHymnCriterion.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/HummingstoneHymnCriterion.java new file mode 100644 index 0000000000..2aa573d36f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/HummingstoneHymnCriterion.java @@ -0,0 +1,54 @@ +package de.dafuqs.spectrum.progression.advancement; + +import com.google.gson.*; +import de.dafuqs.spectrum.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.predicate.entity.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; + +public class HummingstoneHymnCriterion extends AbstractCriterion { + + static final Identifier ID = SpectrumCommon.locate("hummingstone_hymn"); + + public static HummingstoneHymnCriterion.Conditions create(LocationPredicate location) { + return new HummingstoneHymnCriterion.Conditions(EntityPredicate.Extended.EMPTY, location); + } + + public Identifier getId() { + return ID; + } + + public HummingstoneHymnCriterion.Conditions conditionsFromJson(JsonObject jsonObject, EntityPredicate.Extended extended, AdvancementEntityPredicateDeserializer advancementEntityPredicateDeserializer) { + LocationPredicate locationPredicate = LocationPredicate.fromJson(jsonObject.get("location")); + return new HummingstoneHymnCriterion.Conditions(extended, locationPredicate); + } + + public void trigger(ServerPlayerEntity player, ServerWorld world, BlockPos pos) { + this.trigger(player, (conditions) -> { + return conditions.matches(world, pos); + }); + } + + public static class Conditions extends AbstractCriterionConditions { + private final LocationPredicate location; + + public Conditions(EntityPredicate.Extended player, LocationPredicate location) { + super(ID, player); + this.location = location; + } + + public JsonObject toJson(AdvancementEntityPredicateSerializer predicateSerializer) { + JsonObject jsonObject = super.toJson(predicateSerializer); + jsonObject.add("location", this.location.toJson()); + return jsonObject; + } + + public boolean matches(ServerWorld world, BlockPos pos) { + return this.location.test(world, (double) pos.getX() + 0.5, (double) pos.getY() + 0.5, (double) pos.getZ() + 0.5); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/InkProjectileKillingCriterion.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/InkProjectileKillingCriterion.java index 64ad52f95f..c50629f8a0 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/advancement/InkProjectileKillingCriterion.java +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/InkProjectileKillingCriterion.java @@ -22,96 +22,96 @@ import java.util.Set; public class InkProjectileKillingCriterion extends AbstractCriterion { - - static final Identifier ID = SpectrumCommon.locate("ink_projectile_killing"); - - public InkProjectileKillingCriterion() { - } - - public Identifier getId() { - return ID; - } - - public InkProjectileKillingCriterion.Conditions conditionsFromJson(JsonObject jsonObject, EntityPredicate.Extended extended, AdvancementEntityPredicateDeserializer advancementEntityPredicateDeserializer) { - EntityPredicate.Extended[] extendeds = EntityPredicate.Extended.requireInJson(jsonObject, "victims", advancementEntityPredicateDeserializer); - IntRange intRange = IntRange.fromJson(jsonObject.get("unique_entity_types")); - return new InkProjectileKillingCriterion.Conditions(extended, extendeds, intRange); - } - - public void trigger(ServerPlayerEntity player, Collection piercingKilledEntities) { - List list = Lists.newArrayList(); - Set> set = Sets.newHashSet(); - - for (Entity entity : piercingKilledEntities) { - set.add(entity.getType()); - list.add(EntityPredicate.createAdvancementEntityLootContext(player, entity)); - } - - this.trigger(player, (conditions) -> { - return conditions.matches(list, set.size()); - }); - } - - public static class Conditions extends AbstractCriterionConditions { - private final EntityPredicate.Extended[] victims; - private final IntRange uniqueEntityTypes; - - public Conditions(EntityPredicate.Extended player, EntityPredicate.Extended[] victims, IntRange uniqueEntityTypes) { - super(InkProjectileKillingCriterion.ID, player); - this.victims = victims; - this.uniqueEntityTypes = uniqueEntityTypes; - } - - public static InkProjectileKillingCriterion.Conditions create(EntityPredicate.Builder... victimPredicates) { - EntityPredicate.Extended[] extendeds = new EntityPredicate.Extended[victimPredicates.length]; - - for(int i = 0; i < victimPredicates.length; ++i) { - EntityPredicate.Builder builder = victimPredicates[i]; - extendeds[i] = EntityPredicate.Extended.ofLegacy(builder.build()); - } - - return new InkProjectileKillingCriterion.Conditions(EntityPredicate.Extended.EMPTY, extendeds, IntRange.ANY); - } - - public static InkProjectileKillingCriterion.Conditions create(IntRange uniqueEntityTypes) { - EntityPredicate.Extended[] extendeds = new EntityPredicate.Extended[0]; - return new InkProjectileKillingCriterion.Conditions(EntityPredicate.Extended.EMPTY, extendeds, uniqueEntityTypes); - } - - public boolean matches(Collection victimContexts, int uniqueEntityTypeCount) { - if (this.victims.length > 0) { - List list = Lists.newArrayList(victimContexts); - EntityPredicate.Extended[] var4 = this.victims; - int var5 = var4.length; - - for(int var6 = 0; var6 < var5; ++var6) { - EntityPredicate.Extended extended = var4[var6]; - boolean bl = false; - Iterator iterator = list.iterator(); - - while(iterator.hasNext()) { - LootContext lootContext = (LootContext)iterator.next(); - if (extended.test(lootContext)) { - iterator.remove(); - bl = true; - break; - } - } - - if (!bl) { - return false; - } - } - } - - return this.uniqueEntityTypes.test(uniqueEntityTypeCount); - } - - public JsonObject toJson(AdvancementEntityPredicateSerializer predicateSerializer) { - JsonObject jsonObject = super.toJson(predicateSerializer); - jsonObject.add("victims", EntityPredicate.Extended.toPredicatesJsonArray(this.victims, predicateSerializer)); - jsonObject.add("unique_entity_types", this.uniqueEntityTypes.toJson()); - return jsonObject; - } - } + + static final Identifier ID = SpectrumCommon.locate("ink_projectile_killing"); + + public InkProjectileKillingCriterion() { + } + + public Identifier getId() { + return ID; + } + + public InkProjectileKillingCriterion.Conditions conditionsFromJson(JsonObject jsonObject, EntityPredicate.Extended extended, AdvancementEntityPredicateDeserializer advancementEntityPredicateDeserializer) { + EntityPredicate.Extended[] extendeds = EntityPredicate.Extended.requireInJson(jsonObject, "victims", advancementEntityPredicateDeserializer); + IntRange intRange = IntRange.fromJson(jsonObject.get("unique_entity_types")); + return new InkProjectileKillingCriterion.Conditions(extended, extendeds, intRange); + } + + public void trigger(ServerPlayerEntity player, Collection piercingKilledEntities) { + List list = Lists.newArrayList(); + Set> set = Sets.newHashSet(); + + for (Entity entity : piercingKilledEntities) { + set.add(entity.getType()); + list.add(EntityPredicate.createAdvancementEntityLootContext(player, entity)); + } + + this.trigger(player, (conditions) -> { + return conditions.matches(list, set.size()); + }); + } + + public static class Conditions extends AbstractCriterionConditions { + private final EntityPredicate.Extended[] victims; + private final IntRange uniqueEntityTypes; + + public Conditions(EntityPredicate.Extended player, EntityPredicate.Extended[] victims, IntRange uniqueEntityTypes) { + super(InkProjectileKillingCriterion.ID, player); + this.victims = victims; + this.uniqueEntityTypes = uniqueEntityTypes; + } + + public static InkProjectileKillingCriterion.Conditions create(EntityPredicate.Builder... victimPredicates) { + EntityPredicate.Extended[] extendeds = new EntityPredicate.Extended[victimPredicates.length]; + + for (int i = 0; i < victimPredicates.length; ++i) { + EntityPredicate.Builder builder = victimPredicates[i]; + extendeds[i] = EntityPredicate.Extended.ofLegacy(builder.build()); + } + + return new InkProjectileKillingCriterion.Conditions(EntityPredicate.Extended.EMPTY, extendeds, IntRange.ANY); + } + + public static InkProjectileKillingCriterion.Conditions create(IntRange uniqueEntityTypes) { + EntityPredicate.Extended[] extendeds = new EntityPredicate.Extended[0]; + return new InkProjectileKillingCriterion.Conditions(EntityPredicate.Extended.EMPTY, extendeds, uniqueEntityTypes); + } + + public boolean matches(Collection victimContexts, int uniqueEntityTypeCount) { + if (this.victims.length > 0) { + List list = Lists.newArrayList(victimContexts); + EntityPredicate.Extended[] var4 = this.victims; + int var5 = var4.length; + + for (int var6 = 0; var6 < var5; ++var6) { + EntityPredicate.Extended extended = var4[var6]; + boolean bl = false; + Iterator iterator = list.iterator(); + + while (iterator.hasNext()) { + LootContext lootContext = (LootContext) iterator.next(); + if (extended.test(lootContext)) { + iterator.remove(); + bl = true; + break; + } + } + + if (!bl) { + return false; + } + } + } + + return this.uniqueEntityTypes.test(uniqueEntityTypeCount); + } + + public JsonObject toJson(AdvancementEntityPredicateSerializer predicateSerializer) { + JsonObject jsonObject = super.toJson(predicateSerializer); + jsonObject.add("victims", EntityPredicate.Extended.toPredicatesJsonArray(this.victims, predicateSerializer)); + jsonObject.add("unique_entity_types", this.uniqueEntityTypes.toJson()); + return jsonObject; + } + } } diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/PastelNetworkCreatingCriterion.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/PastelNetworkCreatingCriterion.java new file mode 100644 index 0000000000..fbf1e6e0c8 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/PastelNetworkCreatingCriterion.java @@ -0,0 +1,76 @@ +package de.dafuqs.spectrum.progression.advancement; + +import com.google.gson.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.pastel_network.network.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.predicate.*; +import net.minecraft.predicate.entity.*; +import net.minecraft.predicate.entity.EntityPredicate.*; +import net.minecraft.server.network.*; +import net.minecraft.util.*; + +public class PastelNetworkCreatingCriterion extends AbstractCriterion { + + static final Identifier ID = SpectrumCommon.locate("pastel_network_creation"); + + public Identifier getId() { + return ID; + } + + public PastelNetworkCreatingCriterion.Conditions conditionsFromJson(JsonObject jsonObject, Extended extended, AdvancementEntityPredicateDeserializer advancementEntityPredicateDeserializer) { + NumberRange.IntRange totalNodes = NumberRange.IntRange.fromJson(jsonObject.get("total_nodes")); + NumberRange.IntRange connectionNodes = NumberRange.IntRange.fromJson(jsonObject.get("connection_nodes")); + NumberRange.IntRange providerNodes = NumberRange.IntRange.fromJson(jsonObject.get("provider_nodes")); + NumberRange.IntRange storageNodes = NumberRange.IntRange.fromJson(jsonObject.get("storage_nodes")); + NumberRange.IntRange senderNodes = NumberRange.IntRange.fromJson(jsonObject.get("sender_nodes")); + NumberRange.IntRange gatherNodes = NumberRange.IntRange.fromJson(jsonObject.get("gather_nodes")); + + return new PastelNetworkCreatingCriterion.Conditions(extended, totalNodes, connectionNodes, providerNodes, storageNodes, senderNodes, gatherNodes); + } + + public void trigger(ServerPlayerEntity player, ServerPastelNetwork network) { + this.trigger(player, (conditions) -> { + return conditions.matches(network.getNodes(PastelNodeType.CONNECTION).size(), network.getNodes(PastelNodeType.PROVIDER).size(), + network.getNodes(PastelNodeType.STORAGE).size(), network.getNodes(PastelNodeType.SENDER).size(), network.getNodes(PastelNodeType.GATHER).size()); + }); + } + + public static class Conditions extends AbstractCriterionConditions { + + private final NumberRange.IntRange totalNodes; + private final NumberRange.IntRange connectionNodes; + private final NumberRange.IntRange providerNodes; + private final NumberRange.IntRange storageNodes; + private final NumberRange.IntRange senderNodes; + private final NumberRange.IntRange gatherNodes; + + public Conditions(Extended player, NumberRange.IntRange totalNodes, NumberRange.IntRange connectionNodes, NumberRange.IntRange providerNodes, NumberRange.IntRange storageNodes, NumberRange.IntRange senderNodes, NumberRange.IntRange gatherNodes) { + super(PastelNetworkCreatingCriterion.ID, player); + this.totalNodes = totalNodes; + this.connectionNodes = connectionNodes; + this.providerNodes = providerNodes; + this.storageNodes = storageNodes; + this.senderNodes = senderNodes; + this.gatherNodes = gatherNodes; + } + + public JsonObject toJson(AdvancementEntityPredicateSerializer predicateSerializer) { + JsonObject jsonObject = super.toJson(predicateSerializer); + jsonObject.add("total_nodes", this.totalNodes.toJson()); + jsonObject.add("connection_nodes", this.connectionNodes.toJson()); + jsonObject.add("provider_nodes", this.providerNodes.toJson()); + jsonObject.add("storage_nodes", this.storageNodes.toJson()); + jsonObject.add("sender_nodes", this.senderNodes.toJson()); + jsonObject.add("gather_nodes", this.gatherNodes.toJson()); + return jsonObject; + } + + public boolean matches(int connectionNodes, int providerNodes, int storageNodes, int senderNodes, int gatherNodes) { + return this.totalNodes.test(connectionNodes + providerNodes + storageNodes + senderNodes + gatherNodes) && this.connectionNodes.test(connectionNodes) && this.providerNodes.test(providerNodes) && this.storageNodes.test(storageNodes) && this.senderNodes.test(senderNodes) && this.gatherNodes.test(gatherNodes); + } + + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/PotionWorkshopBrewingCriterion.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/PotionWorkshopBrewingCriterion.java index dc4e5d08de..1aecfd5901 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/advancement/PotionWorkshopBrewingCriterion.java +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/PotionWorkshopBrewingCriterion.java @@ -60,8 +60,8 @@ public void trigger(ServerPlayerEntity player, ItemStack itemStack) { } List uniqueEffects = new ArrayList<>(); - for(StatusEffectInstance instance : effects) { - if(!uniqueEffects.contains(instance.getEffectType())) { + for (StatusEffectInstance instance : effects) { + if (!uniqueEffects.contains(instance.getEffectType())) { uniqueEffects.add(instance.getEffectType()); } } diff --git a/src/main/java/de/dafuqs/spectrum/progression/advancement/UpgradePlaceCriterion.java b/src/main/java/de/dafuqs/spectrum/progression/advancement/UpgradePlaceCriterion.java index d99c7e3684..c16bb33089 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/advancement/UpgradePlaceCriterion.java +++ b/src/main/java/de/dafuqs/spectrum/progression/advancement/UpgradePlaceCriterion.java @@ -1,27 +1,23 @@ package de.dafuqs.spectrum.progression.advancement; -import com.google.gson.JsonObject; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import net.minecraft.advancement.criterion.AbstractCriterion; -import net.minecraft.advancement.criterion.AbstractCriterionConditions; -import net.minecraft.predicate.BlockPredicate; -import net.minecraft.predicate.NumberRange; -import net.minecraft.predicate.entity.AdvancementEntityPredicateDeserializer; -import net.minecraft.predicate.entity.AdvancementEntityPredicateSerializer; -import net.minecraft.predicate.entity.EntityPredicate; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; +import com.google.gson.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import net.minecraft.advancement.criterion.*; +import net.minecraft.predicate.*; +import net.minecraft.predicate.entity.*; +import net.minecraft.server.network.*; +import net.minecraft.server.world.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; -import java.util.Map; +import java.util.*; public class UpgradePlaceCriterion extends AbstractCriterion { static final Identifier ID = SpectrumCommon.locate("upgrade_place"); - - public static UpgradePlaceCriterion.Conditions create(BlockPredicate blockPredicate, NumberRange.IntRange countRange, NumberRange.FloatRange speedRange, NumberRange.FloatRange experienceRange, NumberRange.FloatRange efficiencyRange, NumberRange.FloatRange yieldRange) { + + public static UpgradePlaceCriterion.Conditions create(BlockPredicate blockPredicate, NumberRange.IntRange countRange, NumberRange.IntRange speedRange, NumberRange.IntRange experienceRange, NumberRange.IntRange efficiencyRange, NumberRange.IntRange yieldRange) { return new UpgradePlaceCriterion.Conditions(EntityPredicate.Extended.EMPTY, blockPredicate, countRange, speedRange, experienceRange, efficiencyRange, yieldRange); } @@ -32,26 +28,26 @@ public Identifier getId() { public UpgradePlaceCriterion.Conditions conditionsFromJson(JsonObject jsonObject, EntityPredicate.Extended extended, AdvancementEntityPredicateDeserializer advancementEntityPredicateDeserializer) { BlockPredicate blockPredicate = BlockPredicate.fromJson(jsonObject.get("block")); NumberRange.IntRange countRange = NumberRange.IntRange.fromJson(jsonObject.get("count")); - NumberRange.FloatRange speedRange = NumberRange.FloatRange.fromJson(jsonObject.get("speed_mod")); - NumberRange.FloatRange experienceRange = NumberRange.FloatRange.fromJson(jsonObject.get("experience_mod")); - NumberRange.FloatRange efficiencyRange = NumberRange.FloatRange.fromJson(jsonObject.get("efficiency_mod")); - NumberRange.FloatRange yieldRange = NumberRange.FloatRange.fromJson(jsonObject.get("yield_mod")); + NumberRange.IntRange speedRange = NumberRange.IntRange.fromJson(jsonObject.get("speed_mod")); + NumberRange.IntRange experienceRange = NumberRange.IntRange.fromJson(jsonObject.get("experience_mod")); + NumberRange.IntRange efficiencyRange = NumberRange.IntRange.fromJson(jsonObject.get("efficiency_mod")); + NumberRange.IntRange yieldRange = NumberRange.IntRange.fromJson(jsonObject.get("yield_mod")); return new UpgradePlaceCriterion.Conditions(extended, blockPredicate, countRange, speedRange, experienceRange, efficiencyRange, yieldRange); } - - public void trigger(ServerPlayerEntity player, ServerWorld world, BlockPos pos, int upgradeCount, Map upgradeModifiers) { + + public void trigger(ServerPlayerEntity player, ServerWorld world, BlockPos pos, int upgradeCount, Map upgradeModifiers) { this.trigger(player, (conditions) -> conditions.matches(world, pos, upgradeCount, upgradeModifiers)); } - + public static class Conditions extends AbstractCriterionConditions { private final BlockPredicate blockPredicate; private final NumberRange.IntRange countRange; - private final NumberRange.FloatRange speedRange; - private final NumberRange.FloatRange experienceRange; - private final NumberRange.FloatRange efficiencyRange; - private final NumberRange.FloatRange yieldRange; - - public Conditions(EntityPredicate.Extended player, BlockPredicate blockPredicate, NumberRange.IntRange countRange, NumberRange.FloatRange speedRange, NumberRange.FloatRange experienceRange, NumberRange.FloatRange efficiencyRange, NumberRange.FloatRange yieldRange) { + private final NumberRange.IntRange speedRange; + private final NumberRange.IntRange experienceRange; + private final NumberRange.IntRange efficiencyRange; + private final NumberRange.IntRange yieldRange; + + public Conditions(EntityPredicate.Extended player, BlockPredicate blockPredicate, NumberRange.IntRange countRange, NumberRange.IntRange speedRange, NumberRange.IntRange experienceRange, NumberRange.IntRange efficiencyRange, NumberRange.IntRange yieldRange) { super(ID, player); this.blockPredicate = blockPredicate; this.countRange = countRange; @@ -71,14 +67,14 @@ public JsonObject toJson(AdvancementEntityPredicateSerializer predicateSerialize jsonObject.add("yield_mod", this.yieldRange.toJson()); return jsonObject; } - - public boolean matches(ServerWorld world, BlockPos pos, int upgradeCount, Map upgradeModifiers) { + + public boolean matches(ServerWorld world, BlockPos pos, int upgradeCount, Map upgradeModifiers) { return this.blockPredicate.test(world, pos) - && this.countRange.test(upgradeCount) - && this.speedRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.SPEED)) - && this.experienceRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.EXPERIENCE)) - && this.efficiencyRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.EFFICIENCY)) - && this.yieldRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.YIELD)); + && this.countRange.test(upgradeCount) + && this.speedRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.SPEED)) + && this.experienceRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.EXPERIENCE)) + && this.efficiencyRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.EFFICIENCY)) + && this.yieldRange.test(upgradeModifiers.get(Upgradeable.UpgradeType.YIELD)); } } diff --git a/src/main/java/de/dafuqs/spectrum/progression/toast/MessageToast.java b/src/main/java/de/dafuqs/spectrum/progression/toast/MessageToast.java index c8a56b333c..0af43315bc 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/toast/MessageToast.java +++ b/src/main/java/de/dafuqs/spectrum/progression/toast/MessageToast.java @@ -15,7 +15,6 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.text.OrderedText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; @@ -35,8 +34,8 @@ public class MessageToast implements Toast { public MessageToast(ItemStack itemStack, String text) { this.itemStack = itemStack; this.soundEvent = SpectrumSoundEvents.NEW_REVELATION; - this.titleText = new TranslatableText("spectrum.toast.message." + text + ".title"); - this.messageText = new TranslatableText("spectrum.toast.message." + text + ".text"); + this.titleText = Text.translatable("spectrum.toast.message." + text + ".title"); + this.messageText = Text.translatable("spectrum.toast.message." + text + ".text"); this.soundPlayed = false; } diff --git a/src/main/java/de/dafuqs/spectrum/progression/toast/RevelationToast.java b/src/main/java/de/dafuqs/spectrum/progression/toast/RevelationToast.java index d0e447b382..9f9f6cdef5 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/toast/RevelationToast.java +++ b/src/main/java/de/dafuqs/spectrum/progression/toast/RevelationToast.java @@ -14,7 +14,6 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.text.OrderedText; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; @@ -41,8 +40,8 @@ public static void showRevelationToast(MinecraftClient client, ItemStack itemSta @Override public Visibility draw(MatrixStack matrices, ToastManager manager, long startTime) { - Text title = new TranslatableText("spectrum.toast.revelation.title"); - Text text = new TranslatableText("spectrum.toast.revelation.text"); + Text title = Text.translatable("spectrum.toast.revelation.title"); + Text text = Text.translatable("spectrum.toast.revelation.text"); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, TEXTURE); diff --git a/src/main/java/de/dafuqs/spectrum/progression/toast/UnlockedRecipeGroupToast.java b/src/main/java/de/dafuqs/spectrum/progression/toast/UnlockedRecipeGroupToast.java index e467f9b33a..98bda0a54e 100644 --- a/src/main/java/de/dafuqs/spectrum/progression/toast/UnlockedRecipeGroupToast.java +++ b/src/main/java/de/dafuqs/spectrum/progression/toast/UnlockedRecipeGroupToast.java @@ -19,7 +19,6 @@ import net.minecraft.potion.PotionUtil; import net.minecraft.sound.SoundEvent; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import org.jetbrains.annotations.NotNull; @@ -44,15 +43,15 @@ public UnlockedRecipeGroupToast(Text title, Text text, List itemStack this.soundPlayed = false; } - public static void showRecipeToast(@NotNull MinecraftClient client, ItemStack itemStack, TranslatableText title) { + public static void showRecipeToast(@NotNull MinecraftClient client, ItemStack itemStack, Text title) { Text text = getTextForItemStack(itemStack); client.getToastManager().add(new UnlockedRecipeGroupToast(title, text, new ArrayList<>() {{ add(itemStack); }})); } - public static void showRecipeGroupToast(@NotNull MinecraftClient client, String groupName, List itemStacks, TranslatableText title) { - Text text = new TranslatableText("recipeGroup.spectrum." + groupName); + public static void showRecipeGroupToast(@NotNull MinecraftClient client, String groupName, List itemStacks, Text title) { + Text text = Text.translatable("recipeGroup.spectrum." + groupName); client.getToastManager().add(new UnlockedRecipeGroupToast(title, text, itemStacks)); } @@ -64,14 +63,14 @@ public static Text getTextForItemStack(@NotNull ItemStack itemStack) { Map enchantments = EnchantmentHelper.get(itemStack); if (enchantments.size() > 0) { Map.Entry firstEnchantment = enchantments.entrySet().iterator().next(); - return new TranslatableText(firstEnchantment.getKey().getTranslationKey()); + return Text.translatable(firstEnchantment.getKey().getTranslationKey()); } } else if (itemStack.isOf(Items.POTION)) { // special handling for potions // use the name of the first custom potion effect List effects = PotionUtil.getCustomPotionEffects(itemStack); if (effects.size() > 0) { - return new TranslatableText(effects.get(0).getTranslationKey()).append(" ").append(new TranslatableText("item.minecraft.potion")); + return Text.translatable(effects.get(0).getTranslationKey()).append(" ").append(Text.translatable("item.minecraft.potion")); } } return itemStack.getName(); diff --git a/src/main/java/de/dafuqs/spectrum/recipe/DescriptiveGatedRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/DescriptiveGatedRecipe.java index 52511179ce..53156818b5 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/DescriptiveGatedRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/DescriptiveGatedRecipe.java @@ -3,11 +3,12 @@ import net.minecraft.inventory.Inventory; import net.minecraft.item.Item; import net.minecraft.recipe.Recipe; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; public interface DescriptiveGatedRecipe extends Recipe, GatedRecipe { - TranslatableText getDescription(); + Text getDescription(); + Item getItem(); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipe.java index 9e389263b8..59a4cc0136 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipe.java @@ -8,7 +8,7 @@ import net.minecraft.inventory.Inventory; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeType; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; public interface GatedRecipe extends Recipe { @@ -16,6 +16,7 @@ public interface GatedRecipe extends Recipe { boolean canPlayerCraft(PlayerEntity playerEntity); Identifier getRequiredAdvancementIdentifier(); + boolean isSecret(); default void registerInToastManager(RecipeType recipeType, GatedRecipe gatedRecipe) { @@ -29,8 +30,8 @@ private void registerInToastManagerClient(RecipeType recipeType, GatedRecipe gat UnlockToastManager.registerGatedRecipe(recipeType, gatedRecipe); } - TranslatableText getSingleUnlockToastString(); + Text getSingleUnlockToastString(); - TranslatableText getMultipleUnlockToastString(); + Text getMultipleUnlockToastString(); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipeSerializer.java index 0ab8f343fd..91c75cb1fa 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/GatedRecipeSerializer.java @@ -26,7 +26,7 @@ default Identifier readRequiredAdvancementIdentifier(JsonObject jsonObject) { } default void writeNullableIdentifier(PacketByteBuf buf, @Nullable Identifier identifier) { - if(identifier == null) { + if (identifier == null) { buf.writeBoolean(false); } else { buf.writeBoolean(true); @@ -36,7 +36,7 @@ default void writeNullableIdentifier(PacketByteBuf buf, @Nullable Identifier ide default @Nullable Identifier readNullableIdentifier(PacketByteBuf buf) { boolean notNull = buf.readBoolean(); - if(notNull) { + if (notNull) { return buf.readIdentifier(); } return null; diff --git a/src/main/java/de/dafuqs/spectrum/recipe/GatedSpectrumRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/GatedSpectrumRecipe.java index 37e665199c..ee344079c3 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/GatedSpectrumRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/GatedSpectrumRecipe.java @@ -8,7 +8,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.Recipe; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; @@ -45,6 +45,7 @@ public boolean isSecret() { /** * The advancement the player has to have for the recipe be craftable + * * @return The advancement identifier. A null value means the player is always able to craft this recipe */ @Nullable @@ -63,13 +64,13 @@ public boolean canPlayerCraft(PlayerEntity playerEntity) { public abstract String getRecipeTypeShortID(); @Override - public TranslatableText getSingleUnlockToastString() { - return new TranslatableText("spectrum.toast." + getRecipeTypeShortID() + "_recipe_unlocked.title"); + public Text getSingleUnlockToastString() { + return Text.translatable("spectrum.toast." + getRecipeTypeShortID() + "_recipe_unlocked.title"); } @Override - public TranslatableText getMultipleUnlockToastString() { - return new TranslatableText("spectrum.toast." + getRecipeTypeShortID() + "_recipes_unlocked.title"); + public Text getMultipleUnlockToastString() { + return Text.translatable("spectrum.toast." + getRecipeTypeShortID() + "_recipes_unlocked.title"); } @Override diff --git a/src/main/java/de/dafuqs/spectrum/recipe/RecipeUtils.java b/src/main/java/de/dafuqs/spectrum/recipe/RecipeUtils.java index 7526e73c2a..79de7e871a 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/RecipeUtils.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/RecipeUtils.java @@ -13,6 +13,7 @@ import net.minecraft.nbt.NbtHelper; import net.minecraft.recipe.ShapedRecipe; import net.minecraft.util.JsonHelper; +import net.minecraft.util.registry.Registry; public class RecipeUtils { @@ -45,7 +46,7 @@ public static ItemStack itemStackWithNbtFromJson(JsonObject json) { } public static BlockState blockStateFromString(String string) throws CommandSyntaxException { - return new BlockArgumentParser(new StringReader(string), true).parse(false).getBlockState(); + return BlockArgumentParser.block(Registry.BLOCK, new StringReader(string), true).blockState(); } public static String blockStateToString(BlockState state) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/SpectrumRecipeTypes.java b/src/main/java/de/dafuqs/spectrum/recipe/SpectrumRecipeTypes.java index 879a4e57b3..6135e359b6 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/SpectrumRecipeTypes.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/SpectrumRecipeTypes.java @@ -1,35 +1,20 @@ package de.dafuqs.spectrum.recipe; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.recipe.anvil_crushing.AnvilCrushingRecipe; -import de.dafuqs.spectrum.recipe.anvil_crushing.AnvilCrushingRecipeSerializer; -import de.dafuqs.spectrum.recipe.cinderhearth.CinderhearthRecipe; -import de.dafuqs.spectrum.recipe.cinderhearth.CinderhearthRecipeSerializer; -import de.dafuqs.spectrum.recipe.crystallarieum.CrystallarieumRecipe; -import de.dafuqs.spectrum.recipe.crystallarieum.CrystallarieumRecipeSerializer; -import de.dafuqs.spectrum.recipe.enchanter.EnchanterRecipe; -import de.dafuqs.spectrum.recipe.enchanter.EnchanterRecipeSerializer; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipe; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipeSerializer; -import de.dafuqs.spectrum.recipe.fluid_converting.FluidConvertingRecipeSerializer; -import de.dafuqs.spectrum.recipe.fluid_converting.LiquidCrystalConvertingRecipe; -import de.dafuqs.spectrum.recipe.fluid_converting.MidnightSolutionConvertingRecipe; -import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipe; -import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipeSerializer; -import de.dafuqs.spectrum.recipe.ink_converting.InkConvertingRecipe; -import de.dafuqs.spectrum.recipe.ink_converting.InkConvertingRecipeSerializer; -import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipe; -import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipeSerializer; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.recipe.anvil_crushing.*; +import de.dafuqs.spectrum.recipe.cinderhearth.*; +import de.dafuqs.spectrum.recipe.crystallarieum.*; +import de.dafuqs.spectrum.recipe.enchanter.*; +import de.dafuqs.spectrum.recipe.enchantment_upgrade.*; +import de.dafuqs.spectrum.recipe.fluid_converting.*; +import de.dafuqs.spectrum.recipe.fusion_shrine.*; +import de.dafuqs.spectrum.recipe.ink_converting.*; +import de.dafuqs.spectrum.recipe.pedestal.*; import de.dafuqs.spectrum.recipe.potion_workshop.*; -import de.dafuqs.spectrum.recipe.spirit_instiller.SpiritInstillerRecipe; -import de.dafuqs.spectrum.recipe.spirit_instiller.SpiritInstillerRecipeSerializer; -import de.dafuqs.spectrum.recipe.titration_barrel.ITitrationBarrelRecipe; -import de.dafuqs.spectrum.recipe.titration_barrel.TitrationBarrelRecipe; -import de.dafuqs.spectrum.recipe.titration_barrel.TitrationBarrelRecipeSerializer; -import net.minecraft.recipe.Recipe; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.util.registry.Registry; +import de.dafuqs.spectrum.recipe.spirit_instiller.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import net.minecraft.recipe.*; +import net.minecraft.util.registry.*; public class SpectrumRecipeTypes { @@ -64,23 +49,27 @@ public class SpectrumRecipeTypes { public static final String POTION_WORKSHOP_REACTING_ID = "potion_workshop_reacting"; public static RecipeSerializer POTION_WORKSHOP_REACTING_SERIALIZER; public static RecipeType POTION_WORKSHOP_REACTING; - + public static final String LIQUID_CRYSTAL_CONVERTING_ID = "liquid_crystal_converting"; public static FluidConvertingRecipeSerializer LIQUID_CRYSTAL_CONVERTING_SERIALIZER; public static RecipeType LIQUID_CRYSTAL_CONVERTING; - + public static final String MIDNIGHT_SOLUTION_CONVERTING_ID = "midnight_solution_converting"; public static FluidConvertingRecipeSerializer MIDNIGHT_SOLUTION_CONVERTING_SERIALIZER; public static RecipeType MIDNIGHT_SOLUTION_CONVERTING; - + + public static final String DRAGONROT_CONVERTING_ID = "dragonrot_converting"; + public static FluidConvertingRecipeSerializer DRAGONROT_CONVERTING_SERIALIZER; + public static RecipeType DRAGONROT_CONVERTING; + public static final String SPIRIT_INSTILLING_ID = "spirit_instiller"; public static RecipeSerializer SPIRIT_INSTILLING_SERIALIZER; public static RecipeType SPIRIT_INSTILLING; - + public static final String INK_CONVERTING_ID = "ink_converting"; public static RecipeSerializer INK_CONVERTING_RECIPE_SERIALIZER; public static RecipeType INK_CONVERTING; - + public static final String CRYSTALLARIEUM_ID = "crystallarieum_growing"; public static RecipeSerializer CRYSTALLARIEUM_RECIPE_SERIALIZER; public static RecipeType CRYSTALLARIEUM; @@ -127,22 +116,25 @@ public static void registerSerializer() { POTION_WORKSHOP_CRAFTING_RECIPE_SERIALIZER = registerSerializer(POTION_WORKSHOP_CRAFTING_ID, new PotionWorkshopCraftingRecipeSerializer(PotionWorkshopCraftingRecipe::new)); POTION_WORKSHOP_CRAFTING = registerRecipeType(POTION_WORKSHOP_CRAFTING_ID); - + POTION_WORKSHOP_REACTING_SERIALIZER = registerSerializer(POTION_WORKSHOP_REACTING_ID, new PotionWorkshopReactingRecipeSerializer(PotionWorkshopReactingRecipe::new)); POTION_WORKSHOP_REACTING = registerRecipeType(POTION_WORKSHOP_REACTING_ID); - + LIQUID_CRYSTAL_CONVERTING_SERIALIZER = registerSerializer(LIQUID_CRYSTAL_CONVERTING_ID, new FluidConvertingRecipeSerializer<>(LiquidCrystalConvertingRecipe::new)); LIQUID_CRYSTAL_CONVERTING = registerRecipeType(LIQUID_CRYSTAL_CONVERTING_ID); - + MIDNIGHT_SOLUTION_CONVERTING_SERIALIZER = registerSerializer(MIDNIGHT_SOLUTION_CONVERTING_ID, new FluidConvertingRecipeSerializer<>(MidnightSolutionConvertingRecipe::new)); MIDNIGHT_SOLUTION_CONVERTING = registerRecipeType(MIDNIGHT_SOLUTION_CONVERTING_ID); - + + DRAGONROT_CONVERTING_SERIALIZER = registerSerializer(DRAGONROT_CONVERTING_ID, new FluidConvertingRecipeSerializer<>(DragonrotConvertingRecipe::new)); + DRAGONROT_CONVERTING = registerRecipeType(DRAGONROT_CONVERTING_ID); + SPIRIT_INSTILLING_SERIALIZER = registerSerializer(SPIRIT_INSTILLING_ID, new SpiritInstillerRecipeSerializer(SpiritInstillerRecipe::new)); SPIRIT_INSTILLING = registerRecipeType(SPIRIT_INSTILLING_ID); - + INK_CONVERTING_RECIPE_SERIALIZER = registerSerializer(INK_CONVERTING_ID, new InkConvertingRecipeSerializer(InkConvertingRecipe::new)); INK_CONVERTING = registerRecipeType(INK_CONVERTING_ID); - + CRYSTALLARIEUM_RECIPE_SERIALIZER = registerSerializer(CRYSTALLARIEUM_ID, new CrystallarieumRecipeSerializer(CrystallarieumRecipe::new)); CRYSTALLARIEUM = registerRecipeType(CRYSTALLARIEUM_ID); diff --git a/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipe.java index 5dc5d66e31..d0ee99243b 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipe.java @@ -5,6 +5,7 @@ import net.minecraft.block.Blocks; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; +import net.minecraft.particle.ParticleEffect; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.RecipeType; @@ -20,7 +21,7 @@ public class AnvilCrushingRecipe extends GatedSpectrumRecipe { protected final ItemStack outputItemStack; protected final float crushedItemsPerPointOfDamage; protected final float experience; - protected final Identifier particleEffect; + protected final Identifier particleEffectIdentifier; protected final int particleCount; protected final Identifier soundEvent; @@ -34,11 +35,11 @@ public AnvilCrushingRecipe(Identifier id, String group, boolean secret, Identifi this.outputItemStack = outputItemStack; this.crushedItemsPerPointOfDamage = crushedItemsPerPointOfDamage; this.experience = experience; - this.particleEffect = particleEffectIdentifier; + this.particleEffectIdentifier = particleEffectIdentifier; this.particleCount = particleCount; this.soundEvent = soundEventIdentifier; - if(requiredAdvancementIdentifier != null) { + if (requiredAdvancementIdentifier != null) { registerInToastManager(getType(), this); } } @@ -89,23 +90,23 @@ public DefaultedList getIngredients() { defaultedList.add(this.inputIngredient); return defaultedList; } - + public float getCrushedItemsPerPointOfDamage() { return crushedItemsPerPointOfDamage; } - + public SoundEvent getSoundEvent() { return Registry.SOUND_EVENT.get(soundEvent); } - - public Identifier getParticleEffectIdentifier() { - return particleEffect; + + public ParticleEffect getParticleEffect() { + return (ParticleEffect) Registry.PARTICLE_TYPE.get(particleEffectIdentifier); } - + public int getParticleCount() { return particleCount; } - + public float getExperience() { return experience; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipeSerializer.java index efe98e034b..14ca3e86aa 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/anvil_crushing/AnvilCrushingRecipeSerializer.java @@ -33,9 +33,7 @@ public AnvilCrushingRecipe read(Identifier identifier, JsonObject jsonObject) { ItemStack outputItemStack = RecipeUtils.itemStackWithNbtFromJson(JsonHelper.getObject(jsonObject, "result")); float crushedItemsPerPointOfDamage = JsonHelper.getFloat(jsonObject, "crushedItemsPerPointOfDamage"); float experience = JsonHelper.getFloat(jsonObject, "experience"); - - String particleEffectString = JsonHelper.getString(jsonObject, "particleEffectIdentifier"); - Identifier particleEffectIdentifier = new Identifier(particleEffectString); + Identifier particleEffectIdentifier = Identifier.tryParse(JsonHelper.getString(jsonObject, "particleEffectIdentifier")); int particleCount = 1; if (JsonHelper.hasNumber(jsonObject, "particleCount")) { @@ -58,7 +56,7 @@ public void write(PacketByteBuf packetByteBuf, AnvilCrushingRecipe recipe) { packetByteBuf.writeItemStack(recipe.outputItemStack); packetByteBuf.writeFloat(recipe.crushedItemsPerPointOfDamage); packetByteBuf.writeFloat(recipe.experience); - packetByteBuf.writeIdentifier(recipe.particleEffect); + packetByteBuf.writeIdentifier(recipe.particleEffectIdentifier); packetByteBuf.writeInt(recipe.particleCount); packetByteBuf.writeIdentifier(recipe.soundEvent); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipe.java index 6c922f585a..20bea0c3c1 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipe.java @@ -1,23 +1,18 @@ package de.dafuqs.spectrum.recipe.cinderhearth; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.recipe.GatedSpectrumRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.world.World; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; +import java.util.*; public class CinderhearthRecipe extends GatedSpectrumRecipe { @@ -27,10 +22,10 @@ public class CinderhearthRecipe extends GatedSpectrumRecipe { protected final int time; protected final float experience; protected final List> outputsWithChance; - + public CinderhearthRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, Ingredient inputIngredient, int time, float experience, List> outputsWithChance) { super(id, group, secret, requiredAdvancementIdentifier); - + this.inputIngredient = inputIngredient; this.time = time; this.experience = experience; @@ -101,14 +96,22 @@ public int getCraftingTime() { public List getRolledOutputs(Random random, float yieldMod) { List output = new ArrayList<>(); - for(Pair possibleOutput : this.outputsWithChance) { + for (Pair possibleOutput : this.outputsWithChance) { float chance = possibleOutput.getRight(); - if(chance >= 1.0 || random.nextFloat() < chance) { - ItemStack stack = possibleOutput.getLeft().copy(); - if(yieldMod > 1) { - stack.setCount(Math.min(stack.getMaxCount(), Support.getIntFromDecimalWithChance(stack.getCount() * yieldMod, random))); + if (chance >= 1.0 || random.nextFloat() < chance * yieldMod) { + ItemStack currentOutputStack = possibleOutput.getLeft(); + if (yieldMod > 1) { + int totalCount = Support.getIntFromDecimalWithChance(currentOutputStack.getCount() * yieldMod, random); + while (totalCount > 0) { // if the rolled count exceeds the max stack size we need to split them (unstackable items, counts > 64, ...) + int count = Math.min(totalCount, currentOutputStack.getMaxCount()); + ItemStack outputStack = currentOutputStack.copy(); + outputStack.setCount(count); + output.add(outputStack); + totalCount -= count; + } + } else { + output.add(currentOutputStack.copy()); } - output.add(stack); } } return output; @@ -116,7 +119,7 @@ public List getRolledOutputs(Random random, float yieldMod) { public List getPossibleOutputs() { List outputs = new ArrayList<>(); - for(Pair pair : this.outputsWithChance) { + for (Pair pair : this.outputsWithChance) { outputs.add(pair.getLeft()); } return outputs; diff --git a/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipeSerializer.java index 081d45a290..cff8fa61f8 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/cinderhearth/CinderhearthRecipeSerializer.java @@ -37,11 +37,11 @@ public CinderhearthRecipe read(Identifier identifier, JsonObject jsonObject) { float experience = JsonHelper.getFloat(jsonObject, "experience"); List> outputsWithChance = new ArrayList<>(); - for(JsonElement outputEntry : JsonHelper.getArray(jsonObject, "results")) { + for (JsonElement outputEntry : JsonHelper.getArray(jsonObject, "results")) { JsonObject outputObject = outputEntry.getAsJsonObject(); ItemStack outputStack = RecipeUtils.itemStackWithNbtFromJson(outputObject); float outputChance = 1.0F; - if(JsonHelper.hasNumber(outputObject, "chance")) { + if (JsonHelper.hasNumber(outputObject, "chance")) { outputChance = JsonHelper.getFloat(outputObject, "chance"); } outputsWithChance.add(new Pair<>(outputStack, outputChance)); @@ -59,9 +59,9 @@ public void write(PacketByteBuf packetByteBuf, CinderhearthRecipe recipe) { recipe.inputIngredient.write(packetByteBuf); packetByteBuf.writeInt(recipe.time); packetByteBuf.writeFloat(recipe.experience); - + packetByteBuf.writeInt(recipe.outputsWithChance.size()); - for(Pair output : recipe.outputsWithChance) { + for (Pair output : recipe.outputsWithChance) { packetByteBuf.writeItemStack(output.getLeft()); packetByteBuf.writeFloat(output.getRight()); } @@ -79,7 +79,7 @@ public CinderhearthRecipe read(Identifier identifier, PacketByteBuf packetByteBu int outputCount = packetByteBuf.readInt(); List> outputsWithChance = new ArrayList<>(outputCount); - for(int i = 0; i < outputCount; i++) { + for (int i = 0; i < outputCount; i++) { outputsWithChance.add(new Pair<>(packetByteBuf.readItemStack(), packetByteBuf.readFloat())); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearCraftingTabletRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearCraftingTabletRecipe.java index cb06bee988..ca4f7d36b7 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearCraftingTabletRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearCraftingTabletRecipe.java @@ -23,8 +23,8 @@ public boolean matches(CraftingInventory craftingInventory, World world) { for (int j = 0; j < craftingInventory.size(); ++j) { ItemStack itemStack = craftingInventory.getStack(j); if (!itemStack.isEmpty()) { - if(itemStack.getItem() instanceof CraftingTabletItem) { - if(!craftingTabletWithStoredRecipeFound && CraftingTabletItem.getStoredRecipe(world, itemStack) != null) { + if (itemStack.getItem() instanceof CraftingTabletItem) { + if (!craftingTabletWithStoredRecipeFound && CraftingTabletItem.getStoredRecipe(world, itemStack) != null) { craftingTabletWithStoredRecipeFound = true; } else { return false; @@ -47,7 +47,7 @@ public ItemStack craft(CraftingInventory craftingInventory) { return itemStack; } } - + return ItemStack.EMPTY; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearEnderSpliceRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearEnderSpliceRecipe.java index c9c34a94cd..79405fdb8a 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearEnderSpliceRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearEnderSpliceRecipe.java @@ -23,8 +23,8 @@ public boolean matches(CraftingInventory craftingInventory, World world) { for (int j = 0; j < craftingInventory.size(); ++j) { ItemStack itemStack = craftingInventory.getStack(j); if (!itemStack.isEmpty()) { - if(!enderSpliceFound && itemStack.getItem() instanceof EnderSpliceItem) { - if(EnderSpliceItem.hasTeleportTarget(itemStack)) { + if (!enderSpliceFound && itemStack.getItem() instanceof EnderSpliceItem) { + if (EnderSpliceItem.hasTeleportTarget(itemStack)) { enderSpliceFound = true; } else { return false; @@ -47,7 +47,7 @@ public ItemStack craft(CraftingInventory craftingInventory) { return itemStack; } } - + return ItemStack.EMPTY; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearInkRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearInkRecipe.java index 688d5b7c3a..14a323fcf6 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearInkRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearInkRecipe.java @@ -23,7 +23,7 @@ public boolean matches(CraftingInventory craftingInventory, World world) { for (int j = 0; j < craftingInventory.size(); ++j) { ItemStack itemStack = craftingInventory.getStack(j); if (!itemStack.isEmpty()) { - if(itemStack.getItem() instanceof InkStorageItem) { + if (itemStack.getItem() instanceof InkStorageItem) { inkStorageItemFound = true; } else { return false; @@ -43,7 +43,7 @@ public ItemStack craft(CraftingInventory craftingInventory) { return itemStack; } } - + return ItemStack.EMPTY; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearPotionFillableRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearPotionFillableRecipe.java index 26221952e0..848847aecb 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearPotionFillableRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crafting/ClearPotionFillableRecipe.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.recipe.crafting; -import de.dafuqs.spectrum.interfaces.PotionFillable; +import de.dafuqs.spectrum.items.PotionFillable; import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; import net.minecraft.recipe.RecipeSerializer; @@ -23,8 +23,8 @@ public boolean matches(CraftingInventory craftingInventory, World world) { for (int j = 0; j < craftingInventory.size(); ++j) { ItemStack itemStack = craftingInventory.getStack(j); if (!itemStack.isEmpty()) { - if(itemStack.getItem() instanceof PotionFillable potionFillable) { - if(potionFillable.isAtLeastPartiallyFilled(itemStack)) { + if (itemStack.getItem() instanceof PotionFillable potionFillable) { + if (potionFillable.isAtLeastPartiallyFilled(itemStack)) { potionFillableFound = true; } else { return false; @@ -47,7 +47,7 @@ public ItemStack craft(CraftingInventory craftingInventory) { return itemStack; } } - + return ItemStack.EMPTY; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crafting/WrapPresentRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/crafting/WrapPresentRecipe.java index 7d17810946..109105a93a 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crafting/WrapPresentRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crafting/WrapPresentRecipe.java @@ -51,14 +51,14 @@ public boolean matches(CraftingInventory craftingInventory, World world) { for (int j = 0; j < craftingInventory.size(); ++j) { ItemStack itemStack = craftingInventory.getStack(j); if (!itemStack.isEmpty()) { - if(itemStack.getItem() instanceof PresentItem) { - if(presentItemFound || PresentItem.isWrapped(itemStack)) { + if (itemStack.getItem() instanceof PresentItem) { + if (presentItemFound || PresentItem.isWrapped(itemStack)) { return false; } presentItemFound = true; - } else if(!wrappingItemFound && getVariantForStack(itemStack) != null) { + } else if (!wrappingItemFound && getVariantForStack(itemStack) != null) { wrappingItemFound = true; - } else if(!(itemStack.getItem() instanceof PigmentItem)) { + } else if (!(itemStack.getItem() instanceof PigmentItem)) { return false; } } @@ -76,16 +76,16 @@ public ItemStack craft(CraftingInventory craftingInventory) { ItemStack stack = craftingInventory.getStack(j); if (stack.getItem() instanceof PresentItem) { presentStack = stack.copy(); - } else if(stack.getItem() instanceof PigmentItem pigmentItem) { + } else if (stack.getItem() instanceof PigmentItem pigmentItem) { DyeColor color = pigmentItem.getColor(); - if(colors.containsKey(color)) { + if (colors.containsKey(color)) { colors.put(color, colors.get(color) + 1); } else { colors.put(color, 1); } } PresentBlock.Variant stackVariant = getVariantForStack(stack); - if(stackVariant != null) { + if (stackVariant != null) { variant = stackVariant; } } @@ -96,25 +96,25 @@ public ItemStack craft(CraftingInventory craftingInventory) { public @Nullable PresentBlock.Variant getVariantForStack(ItemStack stack) { Item item = stack.getItem(); - if(item == Items.RED_DYE) { + if (item == Items.RED_DYE) { return PresentBlock.Variant.RED; - } else if(item == Items.BLUE_DYE) { + } else if (item == Items.BLUE_DYE) { return PresentBlock.Variant.BLUE; - } else if(item == Items.CYAN_DYE) { + } else if (item == Items.CYAN_DYE) { return PresentBlock.Variant.CYAN; - } else if(item == Items.GREEN_DYE) { + } else if (item == Items.GREEN_DYE) { return PresentBlock.Variant.GREEN; - } else if(item == Items.PURPLE_DYE) { + } else if (item == Items.PURPLE_DYE) { return PresentBlock.Variant.PURPLE; - } else if(item == Items.CAKE) { + } else if (item == Items.CAKE) { return PresentBlock.Variant.CAKE; - } else if(stack.isIn(ItemTags.FLOWERS)) { + } else if (stack.isIn(ItemTags.FLOWERS)) { return PresentBlock.Variant.STRIPED; - } else if(item == Items.FIREWORK_STAR) { + } else if (item == Items.FIREWORK_STAR) { return PresentBlock.Variant.STARRY; - } else if(stack.isIn(ItemTags.SAPLINGS)) { + } else if (stack.isIn(ItemTags.SAPLINGS)) { return PresentBlock.Variant.WINTER; - } else if(item == Items.SPORE_BLOSSOM) { + } else if (item == Items.SPORE_BLOSSOM) { return PresentBlock.Variant.PRIDE; } return null; diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipe.java index 590bc668a0..62ec9176ce 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipe.java @@ -1,30 +1,24 @@ package de.dafuqs.spectrum.recipe.crystallarieum; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.recipe.GatedSpectrumRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.block.BlockState; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.block.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; public class CrystallarieumRecipe extends GatedSpectrumRecipe { - + public static final Identifier UNLOCK_IDENTIFIER = SpectrumCommon.locate("progression/unlock_crystallarieum"); - + protected final Ingredient inputIngredient; protected final List growthStages; protected final int secondsPerGrowthStage; @@ -32,13 +26,14 @@ public class CrystallarieumRecipe extends GatedSpectrumRecipe { protected final int inkPerSecond; protected final boolean growsWithoutCatalyst; protected final List catalysts; - + protected final List additionalOutputs; // these aren't actual outputs, but recipe managers will treat it as such, showing this recipe as a way to get them. Use for drops of the growth blocks, for example + protected final static Map ingredientMap = new HashMap<>(); protected final static Map stateMap = new HashMap<>(); - - public CrystallarieumRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, Ingredient inputIngredient, List growthStages, int secondsPerGrowthStage, InkColor inkColor, int inkPerSecond, boolean growsWithoutCatalyst, List catalysts) { + + public CrystallarieumRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, Ingredient inputIngredient, List growthStages, int secondsPerGrowthStage, InkColor inkColor, int inkPerSecond, boolean growsWithoutCatalyst, List catalysts, List additionalOutputs) { super(id, group, secret, requiredAdvancementIdentifier); - + this.inputIngredient = inputIngredient; this.growthStages = growthStages; this.secondsPerGrowthStage = secondsPerGrowthStage; @@ -46,9 +41,10 @@ public CrystallarieumRecipe(Identifier id, String group, boolean secret, Identif this.inkPerSecond = inkPerSecond; this.growsWithoutCatalyst = growsWithoutCatalyst; this.catalysts = catalysts; + this.additionalOutputs = additionalOutputs; ingredientMap.put(inputIngredient, this); - for(BlockState growthStage : growthStages) { + for (BlockState growthStage : growthStages) { stateMap.put(growthStage, this); } @@ -57,8 +53,8 @@ public CrystallarieumRecipe(Identifier id, String group, boolean secret, Identif @Nullable public static CrystallarieumRecipe getRecipeForStack(ItemStack itemStack) { - for(Map.Entry entry : ingredientMap.entrySet()) { - if(entry.getKey().test(itemStack)) { + for (Map.Entry entry : ingredientMap.entrySet()) { + if (entry.getKey().test(itemStack)) { return entry.getValue(); } } @@ -93,7 +89,7 @@ public boolean fits(int width, int height) { @Override public ItemStack getOutput() { List states = getGrowthStages(); - return states.get(states.size()-1).getBlock().asItem().getDefaultStack(); + return states.get(states.size() - 1).getBlock().asItem().getDefaultStack(); } @Override @@ -133,8 +129,8 @@ public Ingredient getIngredientStack() { } public Optional getCatalyst(ItemStack itemStack) { - for(CrystallarieumCatalyst catalyst : this.catalysts) { - if(catalyst.ingredient.test(itemStack)) { + for (CrystallarieumCatalyst catalyst : this.catalysts) { + if (catalyst.ingredient.test(itemStack)) { return Optional.of(catalyst); } } @@ -156,13 +152,17 @@ public InkColor getInkColor() { public int getInkPerSecond() { return inkPerSecond; } - + public boolean growsWithoutCatalyst() { return growsWithoutCatalyst; } - + public List getCatalysts() { return this.catalysts; } - + + public List getAdditionalOutputs() { + return additionalOutputs; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipeSerializer.java index 3ad5fb6998..6dff187a6e 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/crystallarieum/CrystallarieumRecipeSerializer.java @@ -1,20 +1,18 @@ package de.dafuqs.spectrum.recipe.crystallarieum; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.recipe.GatedRecipeSerializer; -import de.dafuqs.spectrum.recipe.RecipeUtils; -import net.minecraft.block.BlockState; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.recipe.Ingredient; -import net.minecraft.util.Identifier; -import net.minecraft.util.JsonHelper; +import com.google.gson.*; +import com.mojang.brigadier.exceptions.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.recipe.*; +import net.minecraft.block.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class CrystallarieumRecipeSerializer implements GatedRecipeSerializer { @@ -25,7 +23,7 @@ public CrystallarieumRecipeSerializer(CrystallarieumRecipeSerializer.RecipeFacto } public interface RecipeFactory { - CrystallarieumRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, Ingredient inputIngredient, List growthStages, int secondsPerGrowthStage, InkColor inkColor, int inkPerSecond, boolean growsWithoutCatalyst, List catalysts); + CrystallarieumRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, Ingredient inputIngredient, List growthStages, int secondsPerGrowthStage, InkColor inkColor, int inkPerSecond, boolean growsWithoutCatalyst, List catalysts, List additionalOutputs); } @Override @@ -51,14 +49,25 @@ public CrystallarieumRecipe read(Identifier identifier, JsonObject jsonObject) { InkColor inkColor = InkColor.of(JsonHelper.getString(jsonObject, "ink_color")); int inkPerSecond = JsonHelper.getInt(jsonObject, "ink_per_second"); boolean growsWithoutCatalyst = JsonHelper.getBoolean(jsonObject, "grows_without_catalyst"); - + List catalysts = new ArrayList<>(); - JsonArray catalystArray = JsonHelper.getArray(jsonObject, "catalysts"); - for (int i = 0; i < catalystArray.size(); i++) { - catalysts.add(CrystallarieumCatalyst.fromJson(catalystArray.get(i).getAsJsonObject())); + if (jsonObject.has("catalysts")) { + JsonArray catalystArray = JsonHelper.getArray(jsonObject, "catalysts"); + for (JsonElement jsonElement : catalystArray) { + catalysts.add(CrystallarieumCatalyst.fromJson(jsonElement.getAsJsonObject())); + } } - - return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, inputIngredient, growthStages, secondsPerGrowthStage, inkColor, inkPerSecond, growsWithoutCatalyst, catalysts); + List additionalOutputs = new ArrayList<>(); + if (jsonObject.has("additional_recipe_manager_outputs")) { + JsonArray additionalOutputArray = JsonHelper.getArray(jsonObject, "additional_recipe_manager_outputs"); + for (JsonElement jsonElement : additionalOutputArray) { + Identifier additionalOutputItemIdentifier = new Identifier(jsonElement.getAsString()); + ItemStack itemStack = new ItemStack(Registry.ITEM.getOrEmpty(additionalOutputItemIdentifier).orElseThrow(() -> new IllegalStateException("Item: " + additionalOutputItemIdentifier + " does not exist"))); + additionalOutputs.add(itemStack); + } + } + + return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, inputIngredient, growthStages, secondsPerGrowthStage, inkColor, inkPerSecond, growsWithoutCatalyst, catalysts, additionalOutputs); } @Override @@ -69,7 +78,7 @@ public void write(PacketByteBuf packetByteBuf, CrystallarieumRecipe recipe) { recipe.inputIngredient.write(packetByteBuf); packetByteBuf.writeInt(recipe.growthStages.size()); - for(BlockState state : recipe.growthStages) { + for (BlockState state : recipe.growthStages) { packetByteBuf.writeString(RecipeUtils.blockStateToString(state)); } packetByteBuf.writeInt(recipe.secondsPerGrowthStage); @@ -77,9 +86,13 @@ public void write(PacketByteBuf packetByteBuf, CrystallarieumRecipe recipe) { packetByteBuf.writeInt(recipe.inkPerSecond); packetByteBuf.writeBoolean(recipe.growsWithoutCatalyst); packetByteBuf.writeInt(recipe.catalysts.size()); - for(CrystallarieumCatalyst catalyst : recipe.catalysts) { + for (CrystallarieumCatalyst catalyst : recipe.catalysts) { catalyst.write(packetByteBuf); } + packetByteBuf.writeInt(recipe.additionalOutputs.size()); + for (ItemStack additionalOutput : recipe.additionalOutputs) { + packetByteBuf.writeItemStack(additionalOutput); + } } @Override @@ -91,7 +104,7 @@ public CrystallarieumRecipe read(Identifier identifier, PacketByteBuf packetByte Ingredient inputIngredient = Ingredient.fromPacket(packetByteBuf); List growthStages = new ArrayList<>(); int count = packetByteBuf.readInt(); - for(int i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { String blockStateString = packetByteBuf.readString(); try { growthStages.add(RecipeUtils.blockStateFromString(blockStateString)); @@ -100,18 +113,23 @@ public CrystallarieumRecipe read(Identifier identifier, PacketByteBuf packetByte return null; } } - + int secondsPerGrowthStage = packetByteBuf.readInt(); InkColor inkColor = InkColor.of(packetByteBuf.readString()); int inkPerSecond = packetByteBuf.readInt(); boolean growthWithoutCatalyst = packetByteBuf.readBoolean(); List catalysts = new ArrayList<>(); count = packetByteBuf.readInt(); - for(int i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { catalysts.add(CrystallarieumCatalyst.fromPacket(packetByteBuf)); } - - return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, inputIngredient, growthStages, secondsPerGrowthStage, inkColor, inkPerSecond, growthWithoutCatalyst, catalysts); + List additionalOutputs = new ArrayList<>(); + count = packetByteBuf.readInt(); + for (int i = 0; i < count; i++) { + additionalOutputs.add(packetByteBuf.readItemStack()); + } + + return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, inputIngredient, growthStages, secondsPerGrowthStage, inkColor, inkPerSecond, growthWithoutCatalyst, catalysts, additionalOutputs); } } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/enchantment_upgrade/EnchantmentUpgradeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/enchantment_upgrade/EnchantmentUpgradeRecipe.java index 11bac695f2..fb234ca02e 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/enchantment_upgrade/EnchantmentUpgradeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/enchantment_upgrade/EnchantmentUpgradeRecipe.java @@ -70,20 +70,21 @@ public boolean matches(Inventory inv, World world) { } Ingredient inputIngredient = inputs.get(1); - boolean ingredientFound = false; + int ingredientsFound = 0; for (int i = 1; i < 9; i++) { ItemStack currentStack = inv.getStack(i + 1); if (!currentStack.isEmpty()) { - if (inputIngredient.test(inv.getStack(i + 1))) { - ingredientFound = true; + ItemStack slotStack = inv.getStack(i + 1); + if (inputIngredient.test(slotStack)) { + ingredientsFound += slotStack.getCount(); } else { return false; } } } - return ingredientFound; + return ingredientsFound >= requiredItemCount; } return false; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/fluid_converting/DragonrotConvertingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/fluid_converting/DragonrotConvertingRecipe.java new file mode 100644 index 0000000000..9ae80101bf --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/recipe/fluid_converting/DragonrotConvertingRecipe.java @@ -0,0 +1,52 @@ +package de.dafuqs.spectrum.recipe.fluid_converting; + +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class DragonrotConvertingRecipe extends FluidConvertingRecipe { + + public static final Identifier UNLOCK_IDENTIFIER = SpectrumCommon.locate("lategame/interact_with_dragonrot"); + private static final Set outputItems = new HashSet<>(); + + public DragonrotConvertingRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, @NotNull Ingredient inputIngredient, ItemStack outputItemStack) { + super(id, group, secret, requiredAdvancementIdentifier, inputIngredient, outputItemStack); + outputItems.add(outputItemStack.getItem()); + } + + public static boolean isExistingOutputItem(@NotNull ItemStack itemStack) { + return outputItems.contains(itemStack.getItem()); + } + + @Override + public ItemStack createIcon() { + return new ItemStack(SpectrumItems.DRAGONROT_BUCKET); + } + + @Override + public RecipeSerializer getSerializer() { + return SpectrumRecipeTypes.DRAGONROT_CONVERTING_SERIALIZER; + } + + @Override + public RecipeType getType() { + return SpectrumRecipeTypes.DRAGONROT_CONVERTING; + } + + @Override + public Identifier getRecipeTypeUnlockIdentifier() { + return UNLOCK_IDENTIFIER; + } + + @Override + public String getRecipeTypeShortID() { + return SpectrumRecipeTypes.DRAGONROT_CONVERTING_ID; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipe.java index 9e1c996992..5e103f6a58 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipe.java @@ -1,29 +1,24 @@ package de.dafuqs.spectrum.recipe.fusion_shrine; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.fusion_shrine.FusionShrineBlockEntity; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.recipe.GatedSpectrumRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; -import java.util.Optional; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.fusion_shrine.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.fluid.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.world.*; +import org.jetbrains.annotations.*; + +import java.util.*; public class FusionShrineRecipe extends GatedSpectrumRecipe { @@ -40,7 +35,7 @@ public class FusionShrineRecipe extends GatedSpectrumRecipe { // - the player should not get XP // - Yield upgrades disabled (item multiplication) protected final boolean noBenefitsFromYieldUpgrades; - + protected final List worldConditions; @NotNull protected final FusionShrineRecipeWorldEffect startWorldEffect; @@ -50,25 +45,28 @@ public class FusionShrineRecipe extends GatedSpectrumRecipe { protected final FusionShrineRecipeWorldEffect finishWorldEffect; @Nullable protected final Text description; - + // copy all nbt data from the first stack in the ingredients to the output stack + protected final boolean copyNbt; + public FusionShrineRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, - List craftingInputs, Fluid fluidInput, ItemStack output, float experience, int craftingTime, boolean noBenefitsFromYieldUpgrades, - List worldConditions, FusionShrineRecipeWorldEffect startWorldEffect, List duringWorldEffects, FusionShrineRecipeWorldEffect finishWorldEffect, Text description) { + List craftingInputs, Fluid fluidInput, ItemStack output, float experience, int craftingTime, boolean noBenefitsFromYieldUpgrades, boolean copyNbt, + List worldConditions, FusionShrineRecipeWorldEffect startWorldEffect, List duringWorldEffects, FusionShrineRecipeWorldEffect finishWorldEffect, Text description) { super(id, group, secret, requiredAdvancementIdentifier); - + this.craftingInputs = craftingInputs; this.fluidInput = fluidInput; this.output = output; this.experience = experience; this.craftingTime = craftingTime; this.noBenefitsFromYieldUpgrades = noBenefitsFromYieldUpgrades; - + this.worldConditions = worldConditions; this.startWorldEffect = startWorldEffect; this.duringWorldEffects = duringWorldEffects; this.finishWorldEffect = finishWorldEffect; this.description = description; - + this.copyNbt = copyNbt; + registerInToastManager(getType(), this); } @@ -110,7 +108,7 @@ public RecipeType getType() { return SpectrumRecipeTypes.FUSION_SHRINE; } - // should not be used. Instead use getIngredientStacks(), which includes item counts + // should not be used. Instead, use getIngredientStacks(), which includes item counts @Override @Deprecated public DefaultedList getIngredients() { @@ -182,11 +180,11 @@ public Optional getDescription() { return Optional.of(this.description); } } - + public boolean areYieldUpgradesDisabled() { return noBenefitsFromYieldUpgrades; } - + @Override public Identifier getRecipeTypeUnlockIdentifier() { return UNLOCK_IDENTIFIER; @@ -198,6 +196,8 @@ public String getRecipeTypeShortID() { } public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) { + ItemStack firstStack = ItemStack.EMPTY; + int maxAmount = 1; if (!getOutput().isEmpty()) { maxAmount = getOutput().getMaxCount(); @@ -205,14 +205,17 @@ public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) for (int i = 0; i < fusionShrineBlockEntity.size(); i++) { ItemStack currentStack = fusionShrineBlockEntity.getStack(i); if (ingredientStack.test(currentStack)) { + if (firstStack.isEmpty()) { + firstStack = currentStack; + } int ingredientStackAmount = ingredientStack.getCount(); maxAmount = Math.min(maxAmount, currentStack.getCount() / ingredientStackAmount); break; } } } - - double efficiencyModifier = fusionShrineBlockEntity.getUpgrades().get(Upgradeable.UpgradeType.EFFICIENCY); + + double efficiencyModifier = fusionShrineBlockEntity.getUpgradeHolder().getEffectiveValue(Upgradeable.UpgradeType.EFFICIENCY); if (maxAmount > 0) { for (IngredientStack ingredientStack : getIngredientStacks()) { for (int i = 0; i < fusionShrineBlockEntity.size(); i++) { @@ -232,8 +235,8 @@ public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) } } else { for (IngredientStack ingredientStack : getIngredientStacks()) { - double efficiencyModifier = fusionShrineBlockEntity.getUpgrades().get(Upgradeable.UpgradeType.EFFICIENCY); - + double efficiencyModifier = fusionShrineBlockEntity.getUpgradeHolder().getEffectiveValue(Upgradeable.UpgradeType.EFFICIENCY); + for (int i = 0; i < fusionShrineBlockEntity.size(); i++) { ItemStack currentStack = fusionShrineBlockEntity.getStack(i); if (ingredientStack.test(currentStack)) { @@ -244,9 +247,29 @@ public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) } } } + + ItemStack output = getOutput().copy(); + if (this.copyNbt) { + output.setNbt(firstStack.getNbt()); + } + + spawnCraftingResultAndXP(world, fusionShrineBlockEntity, output, maxAmount, noBenefitsFromYieldUpgrades, experience); // spawn results + } + + protected void spawnCraftingResultAndXP(@NotNull World world, @NotNull FusionShrineBlockEntity fusionShrineBlockEntity, @NotNull ItemStack stack, int recipeCount, boolean yieldUpgradesDisabled, float experience) { + int resultAmountBeforeMod = recipeCount * stack.getCount(); + double yieldModifier = yieldUpgradesDisabled ? 1.0 : fusionShrineBlockEntity.getUpgradeHolder().getEffectiveValue(Upgradeable.UpgradeType.YIELD); + int resultAmountAfterMod = Support.getIntFromDecimalWithChance(resultAmountBeforeMod * yieldModifier, world.random); + + int intExperience = Support.getIntFromDecimalWithChance(recipeCount * experience, world.random); + MultiblockCrafter.spawnItemStackAsEntitySplitViaMaxCount(world, fusionShrineBlockEntity.getPos().up(2), stack, resultAmountAfterMod, MultiblockCrafter.RECIPE_STACK_VELOCITY); + + if (experience > 0) { + MultiblockCrafter.spawnExperience(world, fusionShrineBlockEntity.getPos(), intExperience); + } - fusionShrineBlockEntity.setFluid(Fluids.EMPTY); // empty the shrine - FusionShrineBlockEntity.spawnCraftingResultAndXP(world, fusionShrineBlockEntity, this, maxAmount); // spawn results + //only triggered on server side. Therefore, has to be sent to client via S2C packet + fusionShrineBlockEntity.grantPlayerFusionCraftingAdvancement(this, intExperience); } } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeSerializer.java index 38fba090aa..4a6c133387 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeSerializer.java @@ -1,26 +1,16 @@ package de.dafuqs.spectrum.recipe.fusion_shrine; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.recipe.GatedRecipeSerializer; -import de.dafuqs.spectrum.recipe.RecipeUtils; -import net.id.incubus_core.json.RecipeParser; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.text.LiteralText; -import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.JsonHelper; -import net.minecraft.util.registry.Registry; +import com.google.gson.*; +import de.dafuqs.spectrum.recipe.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; +import java.util.*; public class FusionShrineRecipeSerializer implements GatedRecipeSerializer { @@ -29,10 +19,11 @@ public class FusionShrineRecipeSerializer implements GatedRecipeSerializer recipeFactory) { this.recipeFactory = recipeFactory; } - + public interface RecipeFactory { - FusionShrineRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, List craftingInputs, Fluid fluidInput, ItemStack output, float experience, int craftingTime, boolean noBenefitsFromYieldUpgrades, - List worldConditions, FusionShrineRecipeWorldEffect startWorldEffect, List duringWorldEffects, FusionShrineRecipeWorldEffect finishWorldEffect, Text description); + FusionShrineRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, + List craftingInputs, Fluid fluidInput, ItemStack output, float experience, int craftingTime, boolean noBenefitsFromYieldUpgrades, boolean copyNbt, + List worldConditions, FusionShrineRecipeWorldEffect startWorldEffect, List duringWorldEffects, FusionShrineRecipeWorldEffect finishWorldEffect, Text description); } @Override @@ -40,16 +31,19 @@ public FusionShrineRecipe read(Identifier identifier, JsonObject jsonObject) { String group = readGroup(jsonObject); boolean secret = readSecret(jsonObject); Identifier requiredAdvancementIdentifier = readRequiredAdvancementIdentifier(jsonObject); - + JsonArray ingredientArray = JsonHelper.getArray(jsonObject, "ingredients"); List craftingInputs = RecipeParser.ingredientStacksFromJson(ingredientArray, ingredientArray.size()); - + if (craftingInputs.size() > 7) { + throw new JsonParseException("Recipe cannot have more than 7 ingredients. Has " + craftingInputs.size()); + } + Fluid fluid = Fluids.EMPTY; if (JsonHelper.hasString(jsonObject, "fluid")) { Identifier fluidIdentifier = Identifier.tryParse(JsonHelper.getString(jsonObject, "fluid")); fluid = Registry.FLUID.get(fluidIdentifier); if (fluid.getDefaultState().isEmpty()) { - SpectrumCommon.logError("Fusion Shrine Recipe " + identifier + " specifies fluid " + fluidIdentifier + " that does not exist! This recipe will not be craftable."); + throw new JsonParseException("Recipe specifies fluid " + fluidIdentifier + " that does not exist! This recipe will not be craftable."); } } @@ -96,14 +90,20 @@ public FusionShrineRecipe read(Identifier identifier, JsonObject jsonObject) { } else { finishWorldEffect = FusionShrineRecipeWorldEffect.NOTHING; } - TranslatableText description; + Text description; if (JsonHelper.hasString(jsonObject, "description")) { - description = new TranslatableText(JsonHelper.getString(jsonObject, "description")); + description = Text.translatable(JsonHelper.getString(jsonObject, "description")); } else { description = null; } - - return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, craftingInputs, fluid, output, experience, craftingTime, noBenefitsFromYieldUpgrades, worldConditions, startWorldEffect, duringWorldEffects, finishWorldEffect, description); + boolean copyNbt = JsonHelper.getBoolean(jsonObject, "copy_nbt", false); + if (copyNbt && output.isEmpty()) { + throw new JsonParseException("Recipe does have copy_nbt set, but has no output!"); + } + + return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, + craftingInputs, fluid, output, experience, craftingTime, noBenefitsFromYieldUpgrades, copyNbt, + worldConditions, startWorldEffect, duringWorldEffects, finishWorldEffect, description); } @@ -136,10 +136,11 @@ public void write(PacketByteBuf packetByteBuf, FusionShrineRecipe recipe) { } packetByteBuf.writeInt(recipe.finishWorldEffect.ordinal()); if (recipe.getDescription().isEmpty()) { - packetByteBuf.writeText(new LiteralText("")); + packetByteBuf.writeText(Text.literal("")); } else { packetByteBuf.writeText(recipe.getDescription().get()); } + packetByteBuf.writeBoolean(recipe.copyNbt); } @@ -171,10 +172,13 @@ public FusionShrineRecipe read(Identifier identifier, PacketByteBuf packetByteBu duringWorldEffects.add(FusionShrineRecipeWorldEffect.values()[packetByteBuf.readInt()]); } FusionShrineRecipeWorldEffect finishWorldEffect = FusionShrineRecipeWorldEffect.values()[packetByteBuf.readInt()]; - + Text description = packetByteBuf.readText(); - - return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, ingredients, fluid, output, experience, craftingTime, noBenefitsFromYieldUpgrades, worldConditions, startWorldEffect, duringWorldEffects, finishWorldEffect, description); + boolean copyNbt = packetByteBuf.readBoolean(); + + return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, + ingredients, fluid, output, experience, craftingTime, noBenefitsFromYieldUpgrades, copyNbt, + worldConditions, startWorldEffect, duringWorldEffects, finishWorldEffect, description); } } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldCondition.java b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldCondition.java index a0f782b46c..4dd9676297 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldCondition.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldCondition.java @@ -1,7 +1,9 @@ package de.dafuqs.spectrum.recipe.fusion_shrine; -import de.dafuqs.spectrum.helpers.TimeHelper; -import net.minecraft.world.World; +import de.dafuqs.spectrum.deeper_down.*; +import de.dafuqs.spectrum.helpers.*; +import net.minecraft.world.*; +import net.minecraft.world.dimension.*; public enum FusionShrineRecipeWorldCondition { DAY, @@ -15,8 +17,12 @@ public enum FusionShrineRecipeWorldCondition { CLEAR_SKY, RAIN, THUNDER, - NOT_THUNDER; - + NOT_THUNDER, + IS_OVERWORLD, + IS_NETHER, + IS_END, + IS_DEEPER_DOWN; + public boolean isMetCurrently(World world) { switch (this) { case DAY -> { @@ -55,6 +61,18 @@ public boolean isMetCurrently(World world) { case NOT_THUNDER -> { return !world.isThundering(); } + case IS_OVERWORLD -> { + return world.getRegistryKey().getValue().equals(DimensionTypes.OVERWORLD_ID); + } + case IS_NETHER -> { + return world.getRegistryKey().getValue().equals(DimensionTypes.THE_NETHER_ID); + } + case IS_END -> { + return world.getRegistryKey().getValue().equals(DimensionTypes.THE_END_ID); + } + case IS_DEEPER_DOWN -> { + return world.getRegistryKey().equals(DDDimension.DEEPER_DOWN_DIMENSION_KEY); + } } return false; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldEffect.java b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldEffect.java index caaf8c3799..ff21255178 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldEffect.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/FusionShrineRecipeWorldEffect.java @@ -1,20 +1,18 @@ package de.dafuqs.spectrum.recipe.fusion_shrine; -import de.dafuqs.spectrum.blocks.fluid.MidnightSolutionFluidBlock; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LightningEntity; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.Heightmap; +import de.dafuqs.spectrum.blocks.fluid.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.entity.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.explosion.*; -import java.util.Optional; +import java.util.*; /** * Effects that are played when crafting with the fusion shrine @@ -29,8 +27,12 @@ public enum FusionShrineRecipeWorldEffect { VISUAL_EXPLOSIONS_ON_SHRINE, SINGLE_VISUAL_EXPLOSION_ON_SHRINE, MAYBE_PLACE_MIDNIGHT_SOLUTION, - PLACE_MIDNIGHT_SOLUTION; - + PLACE_MIDNIGHT_SOLUTION, + EXPLOSIONS_AROUND_SHRINE, + EXPLOSIONS_AND_LIGHTNING_AROUND_SHRINE, + PLAY_GLASS_BREAKING_SOUND, + RIDICULOUSLY_SQUEAKY_FART; + public void doEffect(ServerWorld world, BlockPos shrinePos) { switch (this) { case WEATHER_CLEAR -> { @@ -69,12 +71,43 @@ public void doEffect(ServerWorld world, BlockPos shrinePos) { case VISUAL_EXPLOSIONS_ON_SHRINE -> { if (world.getRandom().nextFloat() < 0.1) { world.playSound(null, shrinePos.up(), SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 0.5F, 0.8F + world.random.nextFloat() * 0.4F); - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(world, shrinePos.up(), ParticleTypes.EXPLOSION, 1); + SpectrumS2CPacketSender.playParticles(world, shrinePos.up(), ParticleTypes.EXPLOSION, 1); + } + } + case EXPLOSIONS_AROUND_SHRINE -> { + if (world.getRandom().nextFloat() < 0.1) { + float randomX = shrinePos.getX() + 0.5F + 10 - world.getRandom().nextInt(20); + float randomY = shrinePos.getY() + 0.5F + 1 - world.getRandom().nextInt(3); + float randomZ = shrinePos.getZ() + 0.5F + 10 - world.getRandom().nextInt(20); + world.createExplosion(null, randomX, randomY, randomZ, 4, Explosion.DestructionType.NONE); + } + } + case EXPLOSIONS_AND_LIGHTNING_AROUND_SHRINE -> { + if (world.getRandom().nextFloat() < 0.1) { + float randomX = shrinePos.getX() + 0.5F + 10 - world.getRandom().nextInt(20); + float randomY = shrinePos.getY() + 0.5F + 1 - world.getRandom().nextInt(3); + float randomZ = shrinePos.getZ() + 0.5F + 10 - world.getRandom().nextInt(20); + world.createExplosion(null, randomX, randomY, randomZ, 4, Explosion.DestructionType.NONE); + } + if (world.getRandom().nextFloat() < 0.05F) { + int randomX = shrinePos.getX() + 12 - world.getRandom().nextInt(24); + int randomZ = shrinePos.getZ() + 12 - world.getRandom().nextInt(24); + + BlockPos randomTopPos = new BlockPos(randomX, world.getTopY(Heightmap.Type.WORLD_SURFACE, randomX, randomZ), randomZ); + LightningEntity lightningEntity = EntityType.LIGHTNING_BOLT.create(world); + if (lightningEntity != null) { + lightningEntity.refreshPositionAfterTeleport(Vec3d.ofBottomCenter(randomTopPos)); + lightningEntity.setCosmetic(false); + world.spawnEntity(lightningEntity); + } } } case SINGLE_VISUAL_EXPLOSION_ON_SHRINE -> { world.playSound(null, shrinePos.up(), SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 0.8F, 0.8F + world.random.nextFloat() * 0.4F); - SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity(world, shrinePos, ParticleTypes.EXPLOSION, 1); + SpectrumS2CPacketSender.playParticles(world, shrinePos, ParticleTypes.EXPLOSION, 1); + } + case PLAY_GLASS_BREAKING_SOUND -> { + world.playSound(null, shrinePos.up(), SoundEvents.BLOCK_GLASS_BREAK, SoundCategory.BLOCKS, 1.0F, 1.0F); } case PLACE_MIDNIGHT_SOLUTION, MAYBE_PLACE_MIDNIGHT_SOLUTION -> { if (this == PLACE_MIDNIGHT_SOLUTION || world.getRandom().nextFloat() < 0.05F) { @@ -85,6 +118,9 @@ public void doEffect(ServerWorld world, BlockPos shrinePos) { } } } + case RIDICULOUSLY_SQUEAKY_FART -> { + world.playSound(null, shrinePos.up(), SpectrumSoundEvents.SQUEAKER, SoundCategory.BLOCKS, 1.0F, 1.2F + world.random.nextFloat() * 0.4F); + } } } @@ -93,7 +129,9 @@ public void doEffect(ServerWorld world, BlockPos shrinePos) { * Otherwise, it will be triggered each tick of the recipe */ public boolean isOneTimeEffect(FusionShrineRecipeWorldEffect effect) { - return effect == LIGHTNING_ON_SHRINE || effect == SINGLE_VISUAL_EXPLOSION_ON_SHRINE || effect == WEATHER_CLEAR || effect == WEATHER_RAIN || effect == WEATHER_THUNDER; + return effect == LIGHTNING_ON_SHRINE || effect == SINGLE_VISUAL_EXPLOSION_ON_SHRINE + || effect == PLAY_GLASS_BREAKING_SOUND || effect == RIDICULOUSLY_SQUEAKY_FART + || effect == WEATHER_CLEAR || effect == WEATHER_RAIN || effect == WEATHER_THUNDER; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/dynamic/ShootingStarHardeningRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/dynamic/ShootingStarHardeningRecipe.java index 13d6208ec1..3742842426 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/dynamic/ShootingStarHardeningRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/fusion_shrine/dynamic/ShootingStarHardeningRecipe.java @@ -3,20 +3,18 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.blocks.fusion_shrine.FusionShrineBlockEntity; import de.dafuqs.spectrum.blocks.shooting_star.ShootingStarItem; -import de.dafuqs.spectrum.helpers.InventoryHelper; import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipe; import de.dafuqs.spectrum.recipe.fusion_shrine.FusionShrineRecipeWorldEffect; import de.dafuqs.spectrum.registries.SpectrumBlocks; +import de.dafuqs.spectrum.registries.SpectrumItemTags; import net.id.incubus_core.recipe.IngredientStack; import net.minecraft.fluid.Fluids; -import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.SpecialRecipeSerializer; import net.minecraft.text.Text; -import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; import net.minecraft.world.World; @@ -26,12 +24,12 @@ public class ShootingStarHardeningRecipe extends FusionShrineRecipe { public static final Identifier UNLOCK_IDENTIFIER = SpectrumCommon.locate("collect_all_shooting_star_variants"); - public static final Text DESCRIPTION = new TranslatableText("spectrum.recipe.fusion_shrine.explanation.shooting_star_hardening"); + public static final Text DESCRIPTION = Text.translatable("spectrum.recipe.fusion_shrine.explanation.shooting_star_hardening"); public static final RecipeSerializer SERIALIZER = new SpecialRecipeSerializer<>(ShootingStarHardeningRecipe::new); public ShootingStarHardeningRecipe(Identifier identifier) { - super(identifier, "", false, UNLOCK_IDENTIFIER, List.of(IngredientStack.of(Ingredient.ofItems(SpectrumBlocks.GLISTERING_SHOOTING_STAR.asItem())), IngredientStack.of(Ingredient.ofItems(Items.DIAMOND))), Fluids.WATER, getHardenedShootingStar(), - 5, 100, true, new ArrayList<>(), FusionShrineRecipeWorldEffect.NOTHING, new ArrayList<>(), FusionShrineRecipeWorldEffect.NOTHING, DESCRIPTION); + super(identifier, "", false, UNLOCK_IDENTIFIER, List.of(IngredientStack.of(Ingredient.fromTag(SpectrumItemTags.SHOOTING_STARS)), IngredientStack.of(Ingredient.ofItems(Items.DIAMOND))), Fluids.WATER, getHardenedShootingStar(), + 5, 100, true, true, new ArrayList<>(), FusionShrineRecipeWorldEffect.NOTHING, new ArrayList<>(), FusionShrineRecipeWorldEffect.NOTHING, DESCRIPTION); } private static ItemStack getHardenedShootingStar() { @@ -45,31 +43,6 @@ public RecipeSerializer getSerializer() { return SERIALIZER; } - @Override - public boolean matches(Inventory inv, World world) { - boolean shootingStarFound = false; - boolean diamondFound = false; - - for (int j = 0; j < inv.size(); ++j) { - ItemStack itemStack = inv.getStack(j); - if (!itemStack.isEmpty()) { - if (itemStack.getItem() instanceof ShootingStarItem) { - if (shootingStarFound) { - return false; - } - shootingStarFound = true; - } else if (itemStack.isOf(Items.DIAMOND)) { - if (diamondFound) { - return false; - } - diamondFound = true; - } - } - } - - return shootingStarFound && diamondFound; - } - @Override public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) { ItemStack shootingStarStack = ItemStack.EMPTY; @@ -78,7 +51,7 @@ public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) for (int j = 0; j < fusionShrineBlockEntity.size(); ++j) { ItemStack itemStack = fusionShrineBlockEntity.getStack(j); if (!itemStack.isEmpty()) { - if (itemStack.getItem() instanceof ShootingStarItem && itemStack.getCount() == 1) { + if (itemStack.getItem() instanceof ShootingStarItem) { shootingStarStack = itemStack; } else if (itemStack.isOf(Items.DIAMOND)) { diamondStack = itemStack; @@ -86,19 +59,16 @@ public void craft(World world, FusionShrineBlockEntity fusionShrineBlockEntity) } } - if(!shootingStarStack.isEmpty() && !diamondStack.isEmpty()) { + if (!shootingStarStack.isEmpty() && !diamondStack.isEmpty()) { int craftedAmount = Math.min(shootingStarStack.getCount(), diamondStack.getCount()); ItemStack hardenedStack = shootingStarStack.copy(); ShootingStarItem.setHardened(hardenedStack); - hardenedStack.setCount(craftedAmount); shootingStarStack.decrement(craftedAmount); diamondStack.decrement(craftedAmount); - InventoryHelper.smartAddToInventory(hardenedStack, fusionShrineBlockEntity, null); - fusionShrineBlockEntity.setFluid(Fluids.EMPTY); // empty the shrine - FusionShrineBlockEntity.spawnCraftingResultAndXP(world, fusionShrineBlockEntity, this, craftedAmount); // spawn results + spawnCraftingResultAndXP(world, fusionShrineBlockEntity, hardenedStack, craftedAmount, noBenefitsFromYieldUpgrades, experience); // spawn results } } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/ink_converting/InkConvertingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/ink_converting/InkConvertingRecipe.java index b41cbae96b..a69d6deee6 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/ink_converting/InkConvertingRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/ink_converting/InkConvertingRecipe.java @@ -29,7 +29,7 @@ public class InkConvertingRecipe extends GatedSpectrumRecipe { public InkConvertingRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, Ingredient inputIngredient, InkColor color, long amount) { super(id, group, secret, requiredAdvancementIdentifier); - + this.inputIngredient = inputIngredient; this.color = color; this.amount = amount; diff --git a/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipe.java index f7f069a5c0..22e507fc8d 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipe.java @@ -1,39 +1,27 @@ package de.dafuqs.spectrum.recipe.pedestal; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntity; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockItem; -import de.dafuqs.spectrum.blocks.pedestal.PedestalVariant; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.enums.BuiltinGemstoneColor; -import de.dafuqs.spectrum.enums.GemstoneColor; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.recipe.GatedSpectrumRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.entity.ItemEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.world.World; -import oshi.util.tuples.Triplet; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.pedestal.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.entity.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import oshi.util.tuples.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Random; +import java.util.*; public class PedestalCraftingRecipe extends GatedSpectrumRecipe { @@ -178,55 +166,18 @@ public Triplet getRecipeOrientation(Inventory inv) { @Override public ItemStack craft(Inventory inv) { + return this.output.copy(); + } + + public ItemStack craftAndDecrement(Inventory inv) { if (inv instanceof PedestalBlockEntity pedestal) { Triplet orientation = getRecipeOrientation(inv); - if(orientation == null) { + if (orientation == null) { return ItemStack.EMPTY; } + decrementIngredientStacks(pedestal, orientation); - for(int x = 0; x < this.width; x++) { - for(int y = 0; y < this.height; y++) { - int ingredientStackId = orientation.getC() ? ((this.width - 1) - x) + this.width * y : x + this.width * y; - int invStackId = (x + orientation.getA()) + 3 * (y + orientation.getB()); - - IngredientStack ingredientStackAtPos = this.craftingInputs.get(ingredientStackId); - ItemStack invStack = inv.getStack(invStackId); - if(!ingredientStackAtPos.test(invStack)) { - SpectrumCommon.logError("Looks like DaFuqs fucked up Spectrums Pedestal recipe matching. Go open up a report with the recipe that was crafted and an image of the pedestals contents, please! :)"); - } - - if (!invStack.isEmpty()) { - Item recipeReminderItem = this.skipRecipeRemainders() ? null : invStack.getItem().getRecipeRemainder(); - if (recipeReminderItem == null) { - invStack.decrement(ingredientStackAtPos.getCount()); - } else { - if (pedestal.getStack(invStackId).getCount() == ingredientStackAtPos.getCount()) { - ItemStack remainderStack = recipeReminderItem.getDefaultStack(); - remainderStack.setCount(ingredientStackAtPos.getCount()); - pedestal.setStack(invStackId, remainderStack); - } else { - pedestal.getStack(invStackId).decrement(ingredientStackAtPos.getCount()); - - ItemStack remainderStack = recipeReminderItem.getDefaultStack(); - ItemEntity itemEntity = new ItemEntity(pedestal.getWorld(), pedestal.getPos().getX() + 0.5, pedestal.getPos().getY() + 1, pedestal.getPos().getZ() + 0.5, remainderStack); - itemEntity.addVelocity(0, 0.05, 0); - pedestal.getWorld().spawnEntity(itemEntity); - } - } - } - - } - } - - // -X for all the pigment inputs - for (BuiltinGemstoneColor gemstoneColor : BuiltinGemstoneColor.values()) { - double efficiencyModifier = pedestal.getUpgradeValue(Upgradeable.UpgradeType.EFFICIENCY); - int gemstonePowderAmount = this.getGemstonePowderAmount(gemstoneColor); - int gemstonePowderAmountAfterMod = Support.getIntFromDecimalWithChance(gemstonePowderAmount / efficiencyModifier, pedestal.getWorld().random); - pedestal.getStack(PedestalBlockEntity.getSlotForGemstonePowder(gemstoneColor)).decrement(gemstonePowderAmountAfterMod); - } - - ItemStack recipeOutput = this.output.copy(); + ItemStack recipeOutput = craft(inv); PlayerEntity player = pedestal.getOwnerIfOnline(); if (player != null) { recipeOutput.onCraft(pedestal.getWorld(), player, recipeOutput.getCount()); @@ -236,6 +187,50 @@ public ItemStack craft(Inventory inv) { return ItemStack.EMPTY; } + protected void decrementIngredientStacks(PedestalBlockEntity pedestal, Triplet orientation) { + for (int x = 0; x < this.width; x++) { + for (int y = 0; y < this.height; y++) { + int ingredientStackId = orientation.getC() ? ((this.width - 1) - x) + this.width * y : x + this.width * y; + int invStackId = (x + orientation.getA()) + 3 * (y + orientation.getB()); + + IngredientStack ingredientStackAtPos = this.craftingInputs.get(ingredientStackId); + ItemStack invStack = pedestal.getStack(invStackId); + if (!ingredientStackAtPos.test(invStack)) { + SpectrumCommon.logError("Looks like DaFuqs fucked up Spectrums Pedestal recipe matching. Go open up a report with the recipe that was crafted and an image of the pedestals contents, please! :)"); + } + + if (!invStack.isEmpty()) { + Item recipeReminderItem = this.skipRecipeRemainders() ? null : invStack.getItem().getRecipeRemainder(); + if (recipeReminderItem == null) { + invStack.decrement(ingredientStackAtPos.getCount()); + } else { + if (pedestal.getStack(invStackId).getCount() == ingredientStackAtPos.getCount()) { + ItemStack remainderStack = recipeReminderItem.getDefaultStack(); + remainderStack.setCount(ingredientStackAtPos.getCount()); + pedestal.setStack(invStackId, remainderStack); + } else { + pedestal.getStack(invStackId).decrement(ingredientStackAtPos.getCount()); + + ItemStack remainderStack = recipeReminderItem.getDefaultStack(); + ItemEntity itemEntity = new ItemEntity(pedestal.getWorld(), pedestal.getPos().getX() + 0.5, pedestal.getPos().getY() + 1, pedestal.getPos().getZ() + 0.5, remainderStack); + itemEntity.addVelocity(0, 0.05, 0); + pedestal.getWorld().spawnEntity(itemEntity); + } + } + } + + } + } + + // -X for all the pigment inputs + for (BuiltinGemstoneColor gemstoneColor : BuiltinGemstoneColor.values()) { + double efficiencyModifier = pedestal.getUpgradeHolder().getEffectiveValue(Upgradeable.UpgradeType.EFFICIENCY); + int gemstonePowderAmount = this.getGemstonePowderAmount(gemstoneColor); + int gemstonePowderAmountAfterMod = Support.getIntFromDecimalWithChance(gemstonePowderAmount / efficiencyModifier, pedestal.getWorld().random); + pedestal.getStack(PedestalBlockEntity.getSlotForGemstonePowder(gemstoneColor)).decrement(gemstonePowderAmountAfterMod); + } + } + public PedestalRecipeTier getTier() { return this.tier; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipeSerializer.java index 679f7655d6..530351223d 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/pedestal/PedestalCraftingRecipeSerializer.java @@ -1,23 +1,16 @@ package de.dafuqs.spectrum.recipe.pedestal; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSyntaxException; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.enums.BuiltinGemstoneColor; -import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import de.dafuqs.spectrum.mixin.accessors.ShapedRecipeAccessor; -import de.dafuqs.spectrum.recipe.GatedRecipeSerializer; -import de.dafuqs.spectrum.recipe.RecipeUtils; -import net.id.incubus_core.json.RecipeParser; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.Identifier; -import net.minecraft.util.JsonHelper; -import net.minecraft.util.collection.DefaultedList; +import com.google.common.collect.*; +import com.google.gson.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.mixin.accessors.*; +import de.dafuqs.spectrum.recipe.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; import java.util.*; @@ -31,8 +24,8 @@ public PedestalCraftingRecipeSerializer(PedestalCraftingRecipeSerializer.RecipeF public interface RecipeFactory { PedestalCraftingRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, PedestalRecipeTier tier, int width, int height, - DefaultedList craftingInputs, HashMap gemInputs, - ItemStack output, float experience, int craftingTime, boolean skipRecipeRemainders, boolean noBenefitsFromYieldUpgrades); + DefaultedList craftingInputs, HashMap gemInputs, + ItemStack output, float experience, int craftingTime, boolean skipRecipeRemainders, boolean noBenefitsFromYieldUpgrades); } @Override @@ -59,15 +52,25 @@ public PedestalCraftingRecipe read(Identifier identifier, JsonObject jsonObject) HashMap gemInputs = new HashMap<>(); int amount = JsonHelper.getInt(jsonObject, "cyan", 0); - if(amount > 0) { gemInputs.put(BuiltinGemstoneColor.CYAN, amount); } + if (amount > 0) { + gemInputs.put(BuiltinGemstoneColor.CYAN, amount); + } amount = JsonHelper.getInt(jsonObject, "magenta", 0); - if(amount > 0) { gemInputs.put(BuiltinGemstoneColor.MAGENTA, amount); } + if (amount > 0) { + gemInputs.put(BuiltinGemstoneColor.MAGENTA, amount); + } amount = JsonHelper.getInt(jsonObject, "yellow", 0); - if(amount > 0) { gemInputs.put(BuiltinGemstoneColor.YELLOW, amount); } + if (amount > 0) { + gemInputs.put(BuiltinGemstoneColor.YELLOW, amount); + } amount = JsonHelper.getInt(jsonObject, "black", 0); - if(amount > 0) { gemInputs.put(BuiltinGemstoneColor.BLACK, amount); } + if (amount > 0) { + gemInputs.put(BuiltinGemstoneColor.BLACK, amount); + } amount = JsonHelper.getInt(jsonObject, "white", 0); - if(amount > 0) { gemInputs.put(BuiltinGemstoneColor.WHITE, amount); } + if (amount > 0) { + gemInputs.put(BuiltinGemstoneColor.WHITE, amount); + } boolean skipRecipeRemainders = false; if (JsonHelper.hasBoolean(jsonObject, "skip_recipe_remainders")) { @@ -76,49 +79,49 @@ public PedestalCraftingRecipe read(Identifier identifier, JsonObject jsonObject) return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, tier, width, height, craftingInputs, gemInputs, output, experience, craftingTime, skipRecipeRemainders, noBenefitsFromYieldUpgrades); } - + static DefaultedList createIngredientStackPatternMatrix(String[] pattern, Map symbols, int width, int height) { DefaultedList defaultedList = DefaultedList.ofSize(width * height, IngredientStack.EMPTY); Set set = Sets.newHashSet(symbols.keySet()); set.remove(" "); - - for(int i = 0; i < pattern.length; ++i) { - for(int j = 0; j < pattern[i].length(); ++j) { + + for (int i = 0; i < pattern.length; ++i) { + for (int j = 0; j < pattern[i].length(); ++j) { String string = pattern[i].substring(j, j + 1); var ingredient = symbols.get(string); if (ingredient == null) { throw new JsonSyntaxException("Pattern references symbol '" + string + "' but it's not defined in the key"); } - + set.remove(string); defaultedList.set(j + width * i, ingredient); } } - + if (!set.isEmpty()) { throw new JsonSyntaxException("Key defines symbols that aren't used in pattern: " + set); } else { return defaultedList; } } - + static Map readIngredientStackSymbols(JsonObject json) { Map map = Maps.newHashMap(); Iterator var2 = json.entrySet().iterator(); - - while(var2.hasNext()) { - Map.Entry entry = (Map.Entry)var2.next(); + + while (var2.hasNext()) { + Map.Entry entry = (Map.Entry) var2.next(); if (entry.getKey().length() != 1) { throw new JsonSyntaxException("Invalid key entry: '" + entry.getKey() + "' is an invalid symbol (must be 1 character only)."); } - + if (" ".equals(entry.getKey())) { throw new JsonSyntaxException("Invalid key entry: ' ' is a reserved symbol."); } - + map.put(entry.getKey(), RecipeParser.ingredientStackFromJson((JsonObject) entry.getValue())); } - + map.put(" ", IngredientStack.EMPTY); return map; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/pedestal/dynamic/StarCandyRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/pedestal/dynamic/StarCandyRecipe.java index 79ccdcddac..a94aeaacec 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/pedestal/dynamic/StarCandyRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/pedestal/dynamic/StarCandyRecipe.java @@ -1,11 +1,13 @@ package de.dafuqs.spectrum.recipe.pedestal.dynamic; import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntity; import de.dafuqs.spectrum.enums.BuiltinGemstoneColor; import de.dafuqs.spectrum.enums.PedestalRecipeTier; import de.dafuqs.spectrum.recipe.pedestal.PedestalCraftingRecipe; import de.dafuqs.spectrum.registries.SpectrumItems; import net.id.incubus_core.recipe.IngredientStack; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -14,6 +16,7 @@ import net.minecraft.recipe.SpecialRecipeSerializer; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; +import oshi.util.tuples.Triplet; import java.util.HashMap; import java.util.Random; @@ -24,7 +27,7 @@ public class StarCandyRecipe extends PedestalCraftingRecipe { public static final Random RANDOM = new Random(); public static final Identifier UNLOCK_IDENTIFIER = SpectrumCommon.locate("progression/unlock_star_candy"); - public static final float PURPLE_STAR_CANDY_CHANCE = 0.001F; + public static final float PURPLE_STAR_CANDY_CHANCE = 0.0025F; public static final HashMap GEMSTONE_POWDER_INPUTS = new HashMap<>() {{ put(BuiltinGemstoneColor.YELLOW, 1); }}; @@ -35,11 +38,27 @@ public StarCandyRecipe(Identifier id) { @Override public ItemStack craft(Inventory inv) { - if(RANDOM.nextFloat() < PURPLE_STAR_CANDY_CHANCE) { - return SpectrumItems.PURPLE_STAR_CANDY.getDefaultStack(); - } else { - return this.output.copy(); + if (inv instanceof PedestalBlockEntity pedestal) { + Triplet orientation = getRecipeOrientation(inv); + if (orientation == null) { + return ItemStack.EMPTY; + } + decrementIngredientStacks(pedestal, orientation); + + ItemStack recipeOutput; + if (RANDOM.nextFloat() < PURPLE_STAR_CANDY_CHANCE) { + recipeOutput = SpectrumItems.PURPLE_STAR_CANDY.getDefaultStack(); + } else { + recipeOutput = this.output.copy(); + } + + PlayerEntity player = pedestal.getOwnerIfOnline(); + if (player != null) { + recipeOutput.onCraft(pedestal.getWorld(), player, recipeOutput.getCount()); + } + return recipeOutput; } + return ItemStack.EMPTY; } private static DefaultedList generateInputs() { @@ -53,7 +72,7 @@ private static DefaultedList generateInputs() { inputs.add(IngredientStack.of(Ingredient.ofItems(SpectrumItems.AMARANTH_GRAINS))); inputs.add(IngredientStack.of(Ingredient.ofItems(SpectrumItems.AMARANTH_GRAINS))); inputs.add(IngredientStack.of(Ingredient.ofItems(SpectrumItems.AMARANTH_GRAINS))); - + return inputs; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionMod.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionMod.java index b8dca3c8bc..db235064b7 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionMod.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionMod.java @@ -1,8 +1,8 @@ package de.dafuqs.spectrum.recipe.potion_workshop; -import com.google.gson.JsonObject; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.JsonHelper; +import com.google.gson.*; +import net.minecraft.network.*; +import net.minecraft.util.*; public class PotionMod { public int flatDurationBonusTicks = 0; @@ -19,80 +19,84 @@ public class PotionMod { public float chanceToAddLastEffect = 0.0F; public float lastEffectPotencyModifier = 1.0F; - + public float flatYieldBonus = 0; - + public boolean makeSplashing = false; public boolean makeLingering = false; - + public boolean noParticles = false; public boolean unidentifiable = false; public boolean makeEffectsPositive = false; public boolean potentDecreasingEffect = false; public boolean negateDecreasingDuration = false; - public boolean fastDrinkable = false; - + public boolean randomColor = false; + public int additionalDrinkDurationTicks = 0; + public static PotionMod fromJson(JsonObject jsonObject) { PotionMod mod = new PotionMod(); - - if(JsonHelper.hasNumber(jsonObject, "flat_duration_bonus_ticks")) { + + if (JsonHelper.hasNumber(jsonObject, "flat_duration_bonus_ticks")) { mod.flatDurationBonusTicks += JsonHelper.getInt(jsonObject, "flat_duration_bonus_ticks"); } - if(JsonHelper.hasNumber(jsonObject, "flat_potency_bonus")) { + if (JsonHelper.hasNumber(jsonObject, "flat_potency_bonus")) { mod.flatPotencyBonus += JsonHelper.getFloat(jsonObject, "flat_potency_bonus"); } - if(JsonHelper.hasNumber(jsonObject, "multiplicative_duration_modifier")) { - mod.multiplicativeDurationModifier += JsonHelper.getFloat(jsonObject, "multiplicative_duration_modifier"); + if (JsonHelper.hasNumber(jsonObject, "multiplicative_duration_modifier")) { + mod.multiplicativeDurationModifier = JsonHelper.getFloat(jsonObject, "multiplicative_duration_modifier"); } - if(JsonHelper.hasNumber(jsonObject, "multiplicative_potency_modifier")) { - mod.multiplicativePotencyModifier += JsonHelper.getFloat(jsonObject, "multiplicative_potency_modifier"); + if (JsonHelper.hasNumber(jsonObject, "multiplicative_potency_modifier")) { + mod.multiplicativePotencyModifier = JsonHelper.getFloat(jsonObject, "multiplicative_potency_modifier"); } - if(JsonHelper.hasNumber(jsonObject, "flat_potency_bonus_positive_effects")) { + if (JsonHelper.hasNumber(jsonObject, "flat_potency_bonus_positive_effects")) { mod.flatPotencyBonusPositiveEffects += JsonHelper.getFloat(jsonObject, "flat_potency_bonus_positive_effects"); } - if(JsonHelper.hasNumber(jsonObject, "flat_potency_bonus_negative_effects")) { + if (JsonHelper.hasNumber(jsonObject, "flat_potency_bonus_negative_effects")) { mod.flatPotencyBonusNegativeEffects += JsonHelper.getFloat(jsonObject, "flat_potency_bonus_negative_effects"); } - if(JsonHelper.hasNumber(jsonObject, "additional_random_positive_effect_count")) { + if (JsonHelper.hasNumber(jsonObject, "additional_random_positive_effect_count")) { mod.additionalRandomPositiveEffectCount += JsonHelper.getFloat(jsonObject, "additional_random_positive_effect_count"); } - if(JsonHelper.hasNumber(jsonObject, "additional_random_negative_effect_count")) { + if (JsonHelper.hasNumber(jsonObject, "additional_random_negative_effect_count")) { mod.additionalRandomNegativeEffectCount += JsonHelper.getFloat(jsonObject, "additional_random_negative_effect_count"); } - if(JsonHelper.hasNumber(jsonObject, "chance_to_add_last_effect")) { + if (JsonHelper.hasNumber(jsonObject, "chance_to_add_last_effect")) { mod.chanceToAddLastEffect += JsonHelper.getFloat(jsonObject, "chance_to_add_last_effect"); } - if(JsonHelper.hasNumber(jsonObject, "last_effect_potency_modifier")) { - mod.lastEffectPotencyModifier += JsonHelper.getFloat(jsonObject, "last_effect_potency_modifier"); + if (JsonHelper.hasNumber(jsonObject, "last_effect_potency_modifier")) { + mod.lastEffectPotencyModifier = JsonHelper.getFloat(jsonObject, "last_effect_potency_modifier"); } - if(JsonHelper.hasNumber(jsonObject, "flat_yield_bonus")) { + if (JsonHelper.hasNumber(jsonObject, "flat_yield_bonus")) { mod.flatYieldBonus += JsonHelper.getFloat(jsonObject, "flat_yield_bonus"); } - if(JsonHelper.hasBoolean(jsonObject, "make_splashing")) { + if (JsonHelper.hasBoolean(jsonObject, "make_splashing")) { mod.makeSplashing = JsonHelper.getBoolean(jsonObject, "make_splashing"); } - if(JsonHelper.hasBoolean(jsonObject, "make_lingering")) { + if (JsonHelper.hasBoolean(jsonObject, "make_lingering")) { mod.makeLingering = JsonHelper.getBoolean(jsonObject, "make_lingering"); } - if(JsonHelper.hasBoolean(jsonObject, "no_particles")) { + if (JsonHelper.hasBoolean(jsonObject, "no_particles")) { mod.noParticles = JsonHelper.getBoolean(jsonObject, "no_particles"); } - if(JsonHelper.hasBoolean(jsonObject, "unidentifiable")) { + if (JsonHelper.hasBoolean(jsonObject, "unidentifiable")) { mod.unidentifiable = JsonHelper.getBoolean(jsonObject, "unidentifiable"); } - if(JsonHelper.hasBoolean(jsonObject, "make_effects_positive")) { + if (JsonHelper.hasBoolean(jsonObject, "make_effects_positive")) { mod.makeEffectsPositive = JsonHelper.getBoolean(jsonObject, "make_effects_positive"); } - if(JsonHelper.hasBoolean(jsonObject, "potent_decreasing_effect")) { + if (JsonHelper.hasBoolean(jsonObject, "potent_decreasing_effect")) { mod.potentDecreasingEffect = JsonHelper.getBoolean(jsonObject, "potent_decreasing_effect"); } - if(JsonHelper.hasBoolean(jsonObject, "negate_decreasing_duration")) { + if (JsonHelper.hasBoolean(jsonObject, "negate_decreasing_duration")) { mod.negateDecreasingDuration = JsonHelper.getBoolean(jsonObject, "negate_decreasing_duration"); } - if(JsonHelper.hasBoolean(jsonObject, "fast_drinkable")) { - mod.fastDrinkable = JsonHelper.getBoolean(jsonObject, "fast_drinkable"); + if (JsonHelper.hasNumber(jsonObject, "additional_drink_duration_ticks")) { + mod.additionalDrinkDurationTicks = JsonHelper.getInt(jsonObject, "additional_drink_duration_ticks"); } - + if (JsonHelper.hasBoolean(jsonObject, "random_color")) { + mod.randomColor = JsonHelper.getBoolean(jsonObject, "random_color"); + } + return mod; } @@ -115,7 +119,8 @@ public void write(PacketByteBuf packetByteBuf) { packetByteBuf.writeBoolean(makeEffectsPositive); packetByteBuf.writeBoolean(potentDecreasingEffect); packetByteBuf.writeBoolean(negateDecreasingDuration); - packetByteBuf.writeBoolean(fastDrinkable); + packetByteBuf.writeInt(additionalDrinkDurationTicks); + packetByteBuf.writeBoolean(randomColor); } public static PotionMod fromPacket(PacketByteBuf packetByteBuf) { @@ -138,7 +143,8 @@ public static PotionMod fromPacket(PacketByteBuf packetByteBuf) { potionMod.makeEffectsPositive = packetByteBuf.readBoolean(); potionMod.potentDecreasingEffect = packetByteBuf.readBoolean(); potionMod.negateDecreasingDuration = packetByteBuf.readBoolean(); - potionMod.fastDrinkable = packetByteBuf.readBoolean(); + potionMod.additionalDrinkDurationTicks = packetByteBuf.readInt(); + potionMod.randomColor = packetByteBuf.readBoolean(); return potionMod; } @@ -161,7 +167,8 @@ public PotionMod modify(PotionMod potionMod) { potionMod.makeEffectsPositive |= this.makeEffectsPositive; potionMod.potentDecreasingEffect |= this.potentDecreasingEffect; potionMod.negateDecreasingDuration |= this.negateDecreasingDuration; - potionMod.fastDrinkable |= this.fastDrinkable; + potionMod.additionalDrinkDurationTicks += this.additionalDrinkDurationTicks; + potionMod.randomColor |= this.randomColor; return potionMod; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipe.java index e94dd938ae..d9e993eddf 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipe.java @@ -1,39 +1,31 @@ package de.dafuqs.spectrum.recipe.potion_workshop; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PotionFillable; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumPotions; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.potion.PotionUtil; -import net.minecraft.potion.Potions; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.util.Identifier; -import net.minecraft.util.Pair; -import net.minecraft.util.collection.DefaultedList; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.energy.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.entity.effect.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.potion.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.random.Random; +import org.jetbrains.annotations.*; -import java.util.ArrayList; +import java.awt.*; import java.util.List; -import java.util.Random; +import java.util.*; public class PotionWorkshopBrewingRecipe extends PotionWorkshopRecipe { - public static final List availablePositiveEffects = new ArrayList<>(); - public static final List availablePositiveEffectDurations = new ArrayList<>(); - public static final List availablePositiveEffectPotencyMods = new ArrayList<>(); - public static final List availableNegativeEffects = new ArrayList<>(); - public static final List availableNegativeEffectDurations = new ArrayList<>(); - public static final List availableNegativeEffectPotencyMods = new ArrayList<>(); + public static final int BASE_POTION_COUNT_ON_BREWING = 3; + public static final int BASE_ARROW_COUNT_ON_BREWING = 12; + /** * When potionMod.potentDecreasingEffect is set each status effect is split into separate * instances defined in this list. First value is the new effects new potency mod, second the duration @@ -43,6 +35,36 @@ public class PotionWorkshopBrewingRecipe extends PotionWorkshopRecipe { add(new Pair<>(0.75F, 0.5F)); add(new Pair<>(0.25F, 1.0F)); }}; + + public static Map negativeToPositiveEffect = new HashMap<>() {{ + put(StatusEffects.BAD_OMEN, StatusEffects.HERO_OF_THE_VILLAGE); + put(StatusEffects.HUNGER, StatusEffects.SATURATION); + put(StatusEffects.INSTANT_DAMAGE, StatusEffects.INSTANT_HEALTH); + put(StatusEffects.MINING_FATIGUE, StatusEffects.HASTE); + put(StatusEffects.SLOWNESS, StatusEffects.SPEED); + put(StatusEffects.UNLUCK, StatusEffects.LUCK); + put(StatusEffects.WEAKNESS, StatusEffects.STRENGTH); + put(StatusEffects.WITHER, StatusEffects.REGENERATION); + }}; + + public static @Nullable PotionWorkshopBrewingRecipe getPositiveRecipe(@NotNull StatusEffect statusEffect) { + if (statusEffect.getCategory() == StatusEffectCategory.HARMFUL) { + StatusEffect positiveEffect = negativeToPositiveEffect.getOrDefault(statusEffect, null); + if(positiveEffect == null) { + return null; + } + for(PotionWorkshopBrewingRecipe positiveRecipe : positiveRecipes) { + if(positiveRecipe.statusEffect == positiveEffect) { + return positiveRecipe; + } + } + } + return null; + } + + public static final List positiveRecipes = new ArrayList<>(); + public static final List negativeRecipes = new ArrayList<>(); + protected final StatusEffect statusEffect; protected final int baseDurationTicks; protected final float potencyModifier; @@ -51,12 +73,15 @@ public class PotionWorkshopBrewingRecipe extends PotionWorkshopRecipe { protected final boolean applicableToTippedArrows; protected final boolean applicableToPotionFillabes; + protected final InkColor inkColor; + protected final int inkCost; + protected ItemStack cachedOutput; public PotionWorkshopBrewingRecipe(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, int craftingTime, Ingredient ingredient1, Ingredient ingredient2, Ingredient ingredient3, StatusEffect statusEffect, int baseDurationTicks, float potencyModifier, int color, - boolean applicableToPotions, boolean applicableToTippedArrows, boolean applicableToPotionFillabes) { + boolean applicableToPotions, boolean applicableToTippedArrows, boolean applicableToPotionFillabes, InkColor inkColor, int inkCost) { super(id, group, secret, requiredAdvancementIdentifier, craftingTime, color, ingredient1, ingredient2, ingredient3); this.statusEffect = statusEffect; @@ -65,25 +90,39 @@ public PotionWorkshopBrewingRecipe(Identifier id, String group, boolean secret, this.applicableToPotions = applicableToPotions; this.applicableToTippedArrows = applicableToTippedArrows; this.applicableToPotionFillabes = applicableToPotionFillabes; + this.inkColor = inkColor; + this.inkCost = inkCost; - if (statusEffect.isBeneficial()) { - if (!availablePositiveEffects.contains(statusEffect)) { - availablePositiveEffects.add(statusEffect); - availablePositiveEffectDurations.add(baseDurationTicks); - availablePositiveEffectPotencyMods.add(potencyModifier); + if (statusEffect.getCategory() == StatusEffectCategory.BENEFICIAL) { + boolean shouldAdd = true; + for (PotionWorkshopBrewingRecipe ae : positiveRecipes) { + if (ae.statusEffect == statusEffect) { + shouldAdd = false; + break; + } } - } else { - if (!availableNegativeEffects.contains(statusEffect)) { - availableNegativeEffects.add(statusEffect); - availableNegativeEffectDurations.add(baseDurationTicks); - availableNegativeEffectPotencyMods.add(potencyModifier); + if (shouldAdd) { + positiveRecipes.add(this); + } + } else if(statusEffect.getCategory() == StatusEffectCategory.HARMFUL) { + boolean shouldAdd = true; + for (PotionWorkshopBrewingRecipe ae : negativeRecipes) { + if (ae.statusEffect == statusEffect) { + shouldAdd = false; + break; + } + } + if (shouldAdd) { + negativeRecipes.add(this); } } + + registerInToastManager(getType(), this); } @Override public boolean isValidBaseIngredient(ItemStack itemStack) { - return (itemStack.isOf(Items.GLASS_BOTTLE) && applicableToPotions) || (itemStack.isOf(Items.ARROW) && applicableToTippedArrows) || itemStack.getItem() instanceof PotionFillable; + return (applicableToPotions && itemStack.isOf(Items.GLASS_BOTTLE)) || (applicableToTippedArrows && itemStack.isOf(Items.ARROW)) || (applicableToPotionFillabes && itemStack.getItem() instanceof PotionFillable); } public RecipeSerializer getSerializer() { @@ -113,7 +152,7 @@ public boolean isApplicableToPotionFillabes() { @Override public int getMinOutputCount(ItemStack baseItemStack) { - return baseItemStack.isOf(Items.GLASS_BOTTLE) ? 3 : 1; + return baseItemStack.isOf(Items.GLASS_BOTTLE) ? BASE_POTION_COUNT_ON_BREWING : 1; } @Override @@ -139,7 +178,7 @@ public DefaultedList getIngredients() { @Override public ItemStack getOutput() { if (this.cachedOutput == null) { - this.cachedOutput = brewRandomPotion(new PotionMod(), null, new Random()); + this.cachedOutput = brewRandomPotion(new PotionMod(), null, Random.create()); } return this.cachedOutput; } @@ -149,15 +188,15 @@ public ItemStack craft(Inventory inventory) { return null; } - public ItemStack brewRandomPotion(PotionMod potionMod, StatusEffect lastBrewedStatusEffect, Random random) { - List effects = new ArrayList<>(); + public ItemStack brewRandomPotion(PotionMod potionMod, PotionWorkshopBrewingRecipe lastRecipe, Random random) { + List effects = new ArrayList<>(); addMainEffect(potionMod, random, effects); addRandomAdditionalEffects(potionMod, random, effects); // last effect - if (lastBrewedStatusEffect != null && (potionMod.chanceToAddLastEffect >= 1 || random.nextFloat() < potionMod.chanceToAddLastEffect)) { - applyLastBrewedStatusEffect(potionMod, lastBrewedStatusEffect, random, effects); + if (lastRecipe != null && (potionMod.chanceToAddLastEffect >= 1 || random.nextFloat() < potionMod.chanceToAddLastEffect)) { + lastRecipe.addMainEffect(potionMod, random, effects); } // split durations, if set @@ -182,28 +221,28 @@ public ItemStack brewRandomPotion(PotionMod potionMod, StatusEffect lastBrewedSt PotionUtil.setPotion(itemStack, Potions.THICK); } else { PotionUtil.setPotion(itemStack, SpectrumPotions.PIGMENT_POTION); - PotionUtil.setCustomPotionEffects(itemStack, effects); + setCustomPotionEffects(itemStack, effects); } - - if (potionMod.fastDrinkable) { + + if (potionMod.additionalDrinkDurationTicks != 0) { NbtCompound compound = itemStack.getOrCreateNbt(); - compound.putBoolean("SpectrumFastDrinkable", true); + compound.putInt("SpectrumAdditionalDrinkDuration", potionMod.additionalDrinkDurationTicks); itemStack.setNbt(compound); } // potion color - setColor(itemStack, potionMod, effects); + setColor(itemStack, potionMod, effects.isEmpty(), random); return itemStack; } - public ItemStack getTippedArrows(PotionMod potionMod, StatusEffect lastBrewedStatusEffect, int amount, Random random) { - List effects = new ArrayList<>(); + public ItemStack getTippedArrows(PotionMod potionMod, PotionWorkshopBrewingRecipe lastRecipe, int amount, Random random) { + List effects = new ArrayList<>(); addMainEffect(potionMod, random, effects); addRandomAdditionalEffects(potionMod, random, effects); - if (lastBrewedStatusEffect != null && (potionMod.chanceToAddLastEffect >= 1 || random.nextFloat() < potionMod.chanceToAddLastEffect)) { - applyLastBrewedStatusEffect(potionMod, lastBrewedStatusEffect, random, effects); + if (lastRecipe != null && (potionMod.chanceToAddLastEffect >= 1 || random.nextFloat() < potionMod.chanceToAddLastEffect)) { + lastRecipe.addMainEffect(potionMod, random, effects); } // split durations, if set @@ -216,70 +255,75 @@ public ItemStack getTippedArrows(PotionMod potionMod, StatusEffect lastBrewedSta PotionUtil.setPotion(itemStack, Potions.THICK); } else { PotionUtil.setPotion(itemStack, SpectrumPotions.PIGMENT_POTION); - PotionUtil.setCustomPotionEffects(itemStack, effects); + setCustomPotionEffects(itemStack, effects); } - - setColor(itemStack, potionMod, effects); + + setColor(itemStack, potionMod, effects.isEmpty(), random); return itemStack; } - public void fillPotionFillable(ItemStack potionFillableStack, PotionMod potionMod, StatusEffect lastBrewedStatusEffect, Random random) { + public static void setCustomPotionEffects(ItemStack stack, List effects) { + List instances = new ArrayList<>(); + for(InkPoweredStatusEffectInstance e : effects) { + instances.add(e.getStatusEffectInstance()); + } + PotionUtil.setCustomPotionEffects(stack, instances); + } + + public void fillPotionFillable(ItemStack potionFillableStack, PotionMod potionMod, PotionWorkshopBrewingRecipe lastRecipe, Random random) { if (potionFillableStack.getItem() instanceof PotionFillable potionFillable) { - List newEffects = new ArrayList<>(); + List effects = new ArrayList<>(); - addMainEffect(potionMod, random, newEffects); - addRandomAdditionalEffects(potionMod, random, newEffects); - if (lastBrewedStatusEffect != null && (potionMod.chanceToAddLastEffect >= 1 || random.nextFloat() < potionMod.chanceToAddLastEffect)) { - applyLastBrewedStatusEffect(potionMod, lastBrewedStatusEffect, random, newEffects); + addMainEffect(potionMod, random, effects); + addRandomAdditionalEffects(potionMod, random, effects); + if (lastRecipe != null && (potionMod.chanceToAddLastEffect >= 1 || random.nextFloat() < potionMod.chanceToAddLastEffect)) { + lastRecipe.addMainEffect(potionMod, random, effects); } // split durations, if set if (potionMod.potentDecreasingEffect) { - newEffects = applyPotentDecreasingEffect(newEffects, random); + effects = applyPotentDecreasingEffect(effects, random); } - - potionFillable.addEffects(potionFillableStack, newEffects); - setColor(potionFillableStack, potionMod, newEffects); + + potionFillable.addOrUpgradeEffects(potionFillableStack, effects); + setColor(potionFillableStack, potionMod, effects.isEmpty(), random); } } - private void addMainEffect(PotionMod potionMod, Random random, List effects) { + private void addMainEffect(PotionMod potionMod, Random random, List effects) { if (potionMod.makeEffectsPositive) { - StatusEffect positiveEffect = StatusEffectHelper.getPositiveVariant(this.statusEffect); - if (positiveEffect != null) { - int index = availablePositiveEffects.indexOf(positiveEffect); - if (index != -1) { - int baseDuration = availablePositiveEffectDurations.get(index); - float basePotency = availablePositiveEffectPotencyMods.get(index); - effects.add(getStatusEffectInstance(positiveEffect, baseDuration, basePotency, potionMod, random)); - } + PotionWorkshopBrewingRecipe positiveRecipe = getPositiveRecipe(this.statusEffect); + if (positiveRecipe != null) { + effects.add(getStatusEffectInstance(potionMod, random)); + } else { + effects.add(getStatusEffectInstance(potionMod, random)); } } else { - StatusEffectInstance statusEffectInstance = getStatusEffectInstance(this.statusEffect, this.baseDurationTicks, this.potencyModifier, potionMod, random); + InkPoweredStatusEffectInstance statusEffectInstance = getStatusEffectInstance(potionMod, random); if (statusEffectInstance != null) { effects.add(statusEffectInstance); } } } - private void addRandomAdditionalEffects(PotionMod potionMod, Random random, List effects) { + private void addRandomAdditionalEffects(PotionMod potionMod, Random random, List effects) { // random positive ones - if (availablePositiveEffects.size() > 0) { + if (positiveRecipes.size() > 0) { int additionalPositiveEffects = Support.getIntFromDecimalWithChance(potionMod.additionalRandomPositiveEffectCount, random); for (int i = 0; i < additionalPositiveEffects; i++) { int r; int tries = 0; - StatusEffect selectedStatusEffect; + PotionWorkshopBrewingRecipe selectedStatusEffect; do { - r = random.nextInt(availablePositiveEffects.size()); - selectedStatusEffect = availablePositiveEffects.get(r); - if (isEffectInList(effects, selectedStatusEffect)) { + r = random.nextInt(positiveRecipes.size()); + selectedStatusEffect = positiveRecipes.get(r); + if (containsEffect(effects, selectedStatusEffect.statusEffect)) { selectedStatusEffect = null; tries++; } } while (selectedStatusEffect == null && tries < 5); if (selectedStatusEffect != null) { - StatusEffectInstance statusEffectInstance = getStatusEffectInstance(selectedStatusEffect, availablePositiveEffectDurations.get(r), availablePositiveEffectPotencyMods.get(r), potionMod, random); + InkPoweredStatusEffectInstance statusEffectInstance = getStatusEffectInstance(potionMod, random); if (statusEffectInstance != null) { effects.add(statusEffectInstance); } @@ -288,30 +332,31 @@ private void addRandomAdditionalEffects(PotionMod potionMod, Random random, List } // random negative ones - if (availableNegativeEffects.size() > 0) { + if (negativeRecipes.size() > 0) { int additionalNegativeEffects = Support.getIntFromDecimalWithChance(potionMod.additionalRandomNegativeEffectCount, random); for (int i = 0; i < additionalNegativeEffects; i++) { int r; int tries = 0; - StatusEffect selectedStatusEffect; + PotionWorkshopBrewingRecipe selectedRecipe; do { - r = random.nextInt(availableNegativeEffects.size()); - selectedStatusEffect = availableNegativeEffects.get(r); + r = random.nextInt(negativeRecipes.size()); + selectedRecipe = negativeRecipes.get(r); if (potionMod.makeEffectsPositive) { - StatusEffect positiveEffect = StatusEffectHelper.getPositiveVariant(selectedStatusEffect); - if (positiveEffect != null) { - selectedStatusEffect = positiveEffect; + selectedRecipe = this; + PotionWorkshopBrewingRecipe positiveRecipe = getPositiveRecipe(this.statusEffect); + if (positiveRecipe != null) { + selectedRecipe = positiveRecipe; } } - if (isEffectInList(effects, selectedStatusEffect)) { - selectedStatusEffect = null; + if (containsEffect(effects, selectedRecipe.statusEffect)) { + selectedRecipe = null; tries++; } - } while (selectedStatusEffect == null && tries < 5); - if (selectedStatusEffect != null) { - StatusEffectInstance statusEffectInstance = getStatusEffectInstance(selectedStatusEffect, availableNegativeEffectDurations.get(r), availableNegativeEffectPotencyMods.get(r), potionMod, random); + } while (selectedRecipe == null && tries < 5); + if (selectedRecipe != null) { + InkPoweredStatusEffectInstance statusEffectInstance = selectedRecipe.getStatusEffectInstance(potionMod, random); if (statusEffectInstance != null) { effects.add(statusEffectInstance); } @@ -320,58 +365,34 @@ private void addRandomAdditionalEffects(PotionMod potionMod, Random random, List } } - private boolean isEffectInList(List effects, StatusEffect selectedStatusEffect) { - for (StatusEffectInstance existingInstance : effects) { - if (existingInstance.getEffectType() == selectedStatusEffect) { + private boolean containsEffect(List effects, StatusEffect statusEffect) { + for (InkPoweredStatusEffectInstance existingInstance : effects) { + if (existingInstance.getStatusEffectInstance().getEffectType() == statusEffect) { return true; } } return false; } - - private void applyLastBrewedStatusEffect(PotionMod potionMod, StatusEffect lastBrewedStatusEffect, Random random, List effects) { - StatusEffect effect = lastBrewedStatusEffect; - if (potionMod.makeEffectsPositive) { - effect = StatusEffectHelper.getPositiveVariant(lastBrewedStatusEffect); - } - if (effect != null) { - int baseDuration = 0; - float basePotency = 0; - if (effect.isBeneficial()) { - int index = availablePositiveEffects.indexOf(effect); - if (index != -1) { - baseDuration = availablePositiveEffectDurations.get(index); - basePotency = availablePositiveEffectPotencyMods.get(index); - } - } else { - int index = availableNegativeEffects.indexOf(effect); - if (index != -1) { - baseDuration = availableNegativeEffectDurations.get(index); - basePotency = availableNegativeEffectPotencyMods.get(index); - } - } - - if (basePotency >= 0) { - StatusEffectInstance statusEffectInstance = getStatusEffectInstance(effect, baseDuration, basePotency * potionMod.lastEffectPotencyModifier, potionMod, random); - if (statusEffectInstance != null) { - effects.add(statusEffectInstance); - } - } - } - } - - public void setColor(ItemStack itemStack, PotionMod potionMod, List effects) { + + public void setColor(ItemStack itemStack, PotionMod potionMod, boolean potionWithNoEffects, Random random) { NbtCompound nbtCompound = itemStack.getNbt(); + boolean colored = false; + if (potionMod.randomColor) { + int randomColor = Color.getHSBColor(random.nextFloat(), 0.7F, 0.9F).getRGB(); + nbtCompound.putInt("CustomPotionColor", randomColor); + colored = true; + } if (potionMod.unidentifiable) { - nbtCompound.putInt("CustomPotionColor", 0x2f2f2f); // dark gray + if (!colored) { + nbtCompound.putInt("CustomPotionColor", 0x2f2f2f); // dark gray + } nbtCompound.putBoolean("spectrum_unidentifiable", true); // used in PotionItemMixin - itemStack.setNbt(nbtCompound); - } else if (effects.size() > 0) { + } else if (!colored && !potionWithNoEffects) { nbtCompound.putInt("CustomPotionColor", getColor()); } } - public @Nullable StatusEffectInstance getStatusEffectInstance(@NotNull StatusEffect statusEffect, int baseDurationTicks, float potencyModifier, @NotNull PotionMod potionMod, Random random) { + public @Nullable InkPoweredStatusEffectInstance getStatusEffectInstance(@NotNull PotionMod potionMod, Random random) { int durationTicks = 1; if (!statusEffect.isInstant()) { durationTicks = (int) (((baseDurationTicks * potionMod.multiplicativeDurationModifier) + potionMod.flatDurationBonusTicks)); @@ -394,22 +415,23 @@ public void setColor(ItemStack itemStack, PotionMod potionMod, List= 0 && (statusEffect.isInstant() || durationTicks > 0)) { - return new StatusEffectInstance(statusEffect, durationTicks, potency, !potionMod.noParticles, !potionMod.noParticles); + return new InkPoweredStatusEffectInstance(new StatusEffectInstance(statusEffect, durationTicks, potency, !potionMod.noParticles, !potionMod.noParticles), new InkCost(this.inkColor, this.inkCost)); } else { // when the effect is so borked that the effect would be too weak return null; } } - public List applyPotentDecreasingEffect(@NotNull List statusEffectInstances, Random random) { - List splitInstances = new ArrayList<>(); + public List applyPotentDecreasingEffect(@NotNull List statusEffectInstances, Random random) { + List splitInstances = new ArrayList<>(); - for (StatusEffectInstance instance : statusEffectInstances) { + for (InkPoweredStatusEffectInstance poweredInstance : statusEffectInstances) { + StatusEffectInstance instance = poweredInstance.getStatusEffectInstance(); for (Pair mods : SPLIT_EFFECT_POTENCY_AND_DURATION) { int newDuration = (int) (instance.getDuration() * mods.getRight()); int newAmplifier = Support.getIntFromDecimalWithChance(instance.getAmplifier() * mods.getLeft(), random); if (newAmplifier > 0) { - splitInstances.add(new StatusEffectInstance(instance.getEffectType(), newDuration, newAmplifier, instance.isAmbient(), instance.shouldShowParticles())); + splitInstances.add(new InkPoweredStatusEffectInstance(new StatusEffectInstance(instance.getEffectType(), newDuration, newAmplifier, instance.isAmbient(), instance.shouldShowParticles()), poweredInstance.getInkCost())); } } } @@ -421,6 +443,10 @@ public StatusEffect getStatusEffect() { return this.statusEffect; } + public Pair getInkCost() { + return new Pair<>(inkColor, inkCost); + } + @Override public String getRecipeTypeShortID() { return SpectrumRecipeTypes.POTION_WORKSHOP_BREWING_ID; diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipeSerializer.java index 24622635b9..7980ffe8d2 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopBrewingRecipeSerializer.java @@ -2,6 +2,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParseException; +import de.dafuqs.spectrum.energy.color.InkColor; import de.dafuqs.spectrum.recipe.GatedRecipeSerializer; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.network.PacketByteBuf; @@ -19,7 +20,9 @@ public PotionWorkshopBrewingRecipeSerializer(PotionWorkshopBrewingRecipeSerializ } public interface RecipeFactory { - PotionWorkshopBrewingRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, int craftingTime, Ingredient ingredient1, Ingredient ingredient2, Ingredient ingredient3, StatusEffect statusEffect, int baseDurationTicks, float potencyModifier, int color, boolean applicableToPotions, boolean applicableToTippedArrows, boolean applicableToPotionFillabes); + PotionWorkshopBrewingRecipe create(Identifier id, String group, boolean secret, Identifier requiredAdvancementIdentifier, int craftingTime, Ingredient ingredient1, Ingredient ingredient2, Ingredient ingredient3, + StatusEffect statusEffect, int baseDurationTicks, float potencyModifier, int color, + boolean applicableToPotions, boolean applicableToTippedArrows, boolean applicableToPotionFillabes, InkColor inkColor, int inkCost); } @Override @@ -56,7 +59,12 @@ public PotionWorkshopBrewingRecipe read(Identifier identifier, JsonObject jsonOb } StatusEffect statusEffect = Registry.STATUS_EFFECT.get(statusEffectIdentifier); - return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, craftingTime, ingredient1, ingredient2, ingredient3, statusEffect, baseDurationTicks, potencyModifier, color, applicableToPotions, applicableToTippedArrows, applicableToPotionFillabes); + InkColor inkColor = InkColor.of(JsonHelper.getString(jsonObject, "ink_color")); + int inkCost = JsonHelper.getInt(jsonObject, "ink_cost"); + + return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, craftingTime, ingredient1, ingredient2, ingredient3, + statusEffect, baseDurationTicks, potencyModifier, color, + applicableToPotions, applicableToTippedArrows, applicableToPotionFillabes, inkColor, inkCost); } @Override @@ -76,6 +84,9 @@ public void write(PacketByteBuf packetByteBuf, PotionWorkshopBrewingRecipe recip packetByteBuf.writeBoolean(recipe.applicableToPotions); packetByteBuf.writeBoolean(recipe.applicableToTippedArrows); packetByteBuf.writeBoolean(recipe.applicableToPotionFillabes); + + packetByteBuf.writeString(recipe.inkColor.toString()); + packetByteBuf.writeInt(recipe.inkCost); } @Override @@ -95,7 +106,13 @@ public PotionWorkshopBrewingRecipe read(Identifier identifier, PacketByteBuf pac boolean applicableToPotions = packetByteBuf.readBoolean(); boolean applicableToTippedArrows = packetByteBuf.readBoolean(); boolean applicableToPotionFillabes = packetByteBuf.readBoolean(); - return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, craftingTime, ingredient1, ingredient2, ingredient3, statusEffect, baseDurationTicks, potencyModifier, color, applicableToPotions, applicableToTippedArrows, applicableToPotionFillabes); + + InkColor inkColor = InkColor.of(packetByteBuf.readString()); + int inkCost = packetByteBuf.readInt(); + + return this.recipeFactory.create(identifier, group, secret, requiredAdvancementIdentifier, craftingTime, ingredient1, ingredient2, ingredient3, + statusEffect, baseDurationTicks, potencyModifier, color, + applicableToPotions, applicableToTippedArrows, applicableToPotionFillabes, inkColor, inkCost); } } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopCraftingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopCraftingRecipe.java index e2480dc9fd..d9aa0d3eec 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopCraftingRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopCraftingRecipe.java @@ -29,6 +29,8 @@ public PotionWorkshopCraftingRecipe(Identifier id, String group, boolean secret, this.baseIngredient = baseIngredient; this.requiredExperience = requiredExperience; this.consumeBaseIngredient = consumeBaseIngredient; + + registerInToastManager(getType(), this); } public Ingredient getBaseIngredient() { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipe.java index 38094bc4ad..c5a6be6c8c 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipe.java @@ -10,16 +10,16 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.RecipeType; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; +import net.minecraft.util.math.random.Random; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.List; -import java.util.Random; public class PotionWorkshopReactingRecipe extends GatedSpectrumRecipe implements DescriptiveGatedRecipe { @@ -86,9 +86,9 @@ public static boolean isReagent(Item item) { return reagents.containsKey(item); } - public TranslatableText getDescription() { + public Text getDescription() { Identifier identifier = Registry.ITEM.getId(this.item); - return new TranslatableText("spectrum.rei.potion_workshop_reacting." + identifier.getNamespace() + "." + identifier.getPath()); + return Text.translatable("spectrum.rei.potion_workshop_reacting." + identifier.getNamespace() + "." + identifier.getPath()); } public Item getItem() { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipeSerializer.java index a779157cb5..8384c34f1a 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopReactingRecipeSerializer.java @@ -62,7 +62,7 @@ public void write(PacketByteBuf packetByteBuf, PotionWorkshopReactingRecipe reci packetByteBuf.writeIdentifier(Registry.ITEM.getId(recipe.item)); packetByteBuf.writeInt(recipe.modifiers.size()); - for(PotionMod mod : recipe.modifiers) { + for (PotionMod mod : recipe.modifiers) { mod.write(packetByteBuf); } } @@ -77,7 +77,7 @@ public PotionWorkshopReactingRecipe read(Identifier identifier, PacketByteBuf pa List mods = new ArrayList<>(); int modCount = packetByteBuf.readInt(); - for(int i = 0; i < modCount; i++) { + for (int i = 0; i < modCount; i++) { mods.add(PotionMod.fromPacket(packetByteBuf)); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopRecipe.java index c588e09c2f..f5ca640deb 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/PotionWorkshopRecipe.java @@ -39,8 +39,6 @@ public PotionWorkshopRecipe(Identifier id, String group, boolean secret, Identif this.ingredient1 = ingredient1; this.ingredient2 = ingredient2; this.ingredient3 = ingredient3; - - registerInToastManager(getType(), this); } public List getOtherIngredients() { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/StatusEffectHelper.java b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/StatusEffectHelper.java index 26d2320c1b..fcd90b8049 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/StatusEffectHelper.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/potion_workshop/StatusEffectHelper.java @@ -1,32 +1,7 @@ package de.dafuqs.spectrum.recipe.potion_workshop; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectCategory; -import net.minecraft.entity.effect.StatusEffects; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; - public class StatusEffectHelper { - public static HashMap negativeToPositiveEffect = new HashMap<>() {{ - put(StatusEffects.BAD_OMEN, StatusEffects.HERO_OF_THE_VILLAGE); - put(StatusEffects.HUNGER, StatusEffects.SATURATION); - put(StatusEffects.INSTANT_DAMAGE, StatusEffects.INSTANT_HEALTH); - put(StatusEffects.MINING_FATIGUE, StatusEffects.HASTE); - put(StatusEffects.SLOWNESS, StatusEffects.SPEED); - put(StatusEffects.UNLUCK, StatusEffects.LUCK); - put(StatusEffects.WEAKNESS, StatusEffects.STRENGTH); - put(StatusEffects.WITHER, StatusEffects.REGENERATION); - }}; - - public static @Nullable StatusEffect getPositiveVariant(@NotNull StatusEffect statusEffect) { - if (statusEffect.getCategory() == StatusEffectCategory.HARMFUL) { - return negativeToPositiveEffect.getOrDefault(statusEffect, null); - } else { - return statusEffect; - } - } + } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/HardcorePlayerRevivalRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/HardcorePlayerRevivalRecipe.java index 601faedbdc..2c5a2baa9e 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/HardcorePlayerRevivalRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/HardcorePlayerRevivalRecipe.java @@ -38,9 +38,9 @@ public HardcorePlayerRevivalRecipe(Identifier identifier) { public ItemStack craft(Inventory inv) { if (inv instanceof SpiritInstillerBlockEntity spiritInstillerBlockEntity) { GameProfile gameProfile = getSkullOwner(inv.getStack(SpiritInstillerRecipe.CENTER_INGREDIENT)); - if(gameProfile != null) { + if (gameProfile != null) { ServerPlayerEntity revivedPlayer = SpectrumCommon.minecraftServer.getPlayerManager().getPlayer(gameProfile.getName()); - if(revivedPlayer != null) { + if (revivedPlayer != null) { HardcoreDeathComponent.removeHardcoreDeath(gameProfile); revivedPlayer.changeGameMode(SpectrumCommon.minecraftServer.getDefaultGameMode()); @@ -70,9 +70,9 @@ public ItemStack craft(Inventory inv) { @Override public boolean canCraftWithStacks(ItemStack instillerStack, ItemStack leftBowlStack, ItemStack rightBowlStack) { - if(instillerStack.isOf(Blocks.PLAYER_HEAD.asItem())) { + if (instillerStack.isOf(Blocks.PLAYER_HEAD.asItem())) { GameProfile gameProfile = getSkullOwner(instillerStack); - if(gameProfile == null) { + if (gameProfile == null) { return false; } @@ -87,7 +87,7 @@ public boolean canCraftWithStacks(ItemStack instillerStack, ItemStack leftBowlSt private GameProfile getSkullOwner(ItemStack instillerStack) { GameProfile gameProfile = null; NbtCompound nbtCompound = instillerStack.getNbt(); - if(nbtCompound != null) { + if (nbtCompound != null) { if (nbtCompound.contains("SkullOwner", 10)) { gameProfile = NbtHelper.toGameProfile(nbtCompound.getCompound("SkullOwner")); } else if (nbtCompound.contains("SkullOwner", 8) && !StringUtils.isBlank(nbtCompound.getString("SkullOwner"))) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipe.java index 6a0e1ed994..5b7728b8dc 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipe.java @@ -1,34 +1,28 @@ package de.dafuqs.spectrum.recipe.spirit_instiller; -import de.dafuqs.revelationary.api.advancements.AdvancementHelper; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.memory.MemoryItem; -import de.dafuqs.spectrum.blocks.spirit_instiller.SpiritInstillerBlockEntity; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.interfaces.PlayerOwned; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import de.dafuqs.spectrum.recipe.GatedSpectrumRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.registries.SpectrumItemTags; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.RecipeType; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import de.dafuqs.revelationary.api.advancements.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.memory.*; +import de.dafuqs.spectrum.blocks.spirit_instiller.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.interfaces.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.entity.player.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.server.network.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; public class SpiritInstillerRecipe extends GatedSpectrumRecipe { @@ -37,7 +31,7 @@ public class SpiritInstillerRecipe extends GatedSpectrumRecipe { public static final int CENTER_INGREDIENT = 0; public static final int FIRST_INGREDIENT = 1; public static final int SECOND_INGREDIENT = 2; - + protected final IngredientStack centerIngredient; protected final IngredientStack bowlIngredient1; protected final IngredientStack bowlIngredient2; @@ -112,18 +106,18 @@ public List getIngredientStacks() { public ItemStack craft(Inventory inv) { ItemStack resultStack = ItemStack.EMPTY; if (inv instanceof SpiritInstillerBlockEntity spiritInstillerBlockEntity) { - Map upgrades = spiritInstillerBlockEntity.getUpgrades(); + Upgradeable.UpgradeHolder upgradeHolder = spiritInstillerBlockEntity.getUpgradeHolder(); World world = spiritInstillerBlockEntity.getWorld(); BlockPos pos = spiritInstillerBlockEntity.getPos(); - + resultStack = getOutput().copy(); - + // Yield upgrade - if (!areYieldAndEfficiencyUpgradesDisabled() && upgrades.get(Upgradeable.UpgradeType.YIELD) != 1.0) { - int resultCountMod = Support.getIntFromDecimalWithChance(resultStack.getCount() * upgrades.get(Upgradeable.UpgradeType.YIELD), world.random); + if (!areYieldAndEfficiencyUpgradesDisabled() && upgradeHolder.getEffectiveValue(Upgradeable.UpgradeType.YIELD) != 1.0) { + int resultCountMod = Support.getIntFromDecimalWithChance(resultStack.getCount() * upgradeHolder.getEffectiveValue(Upgradeable.UpgradeType.YIELD), world.random); resultStack.setCount(resultCountMod); } - + if (resultStack.isOf(SpectrumBlocks.MEMORY.asItem())) { boolean makeUnrecognizable = spiritInstillerBlockEntity.getStack(0).isIn(SpectrumItemTags.MEMORY_BONDING_AGENTS_CONCEALABLE); if (makeUnrecognizable) { @@ -134,7 +128,7 @@ public ItemStack craft(Inventory inv) { // Calculate and spawn experience int awardedExperience = 0; if (getExperience() > 0) { - double experienceModifier = upgrades.get(Upgradeable.UpgradeType.EXPERIENCE); + double experienceModifier = upgradeHolder.getEffectiveValue(Upgradeable.UpgradeType.EXPERIENCE); float recipeExperienceBeforeMod = getExperience(); awardedExperience = Support.getIntFromDecimalWithChance(recipeExperienceBeforeMod * experienceModifier, world.random); MultiblockCrafter.spawnExperience(world, pos.up(), awardedExperience); @@ -186,17 +180,17 @@ public boolean canCraftWithStacks(ItemStack instillerStack, ItemStack leftBowlSt } @Override - public ItemStack createIcon() { + public ItemStack createIcon() { return new ItemStack(SpectrumBlocks.SPIRIT_INSTILLER); } @Override - public RecipeType getType() { + public RecipeType getType() { return SpectrumRecipeTypes.SPIRIT_INSTILLING; } @Override - public boolean fits(int width, int height) { + public boolean fits(int width, int height) { return width * height >= 3; } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipeSerializer.java index 843f1f69ba..72a660d03d 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/SpiritInstillerRecipeSerializer.java @@ -1,14 +1,11 @@ package de.dafuqs.spectrum.recipe.spirit_instiller; -import com.google.gson.JsonObject; -import de.dafuqs.spectrum.recipe.GatedRecipeSerializer; -import de.dafuqs.spectrum.recipe.RecipeUtils; -import net.id.incubus_core.json.RecipeParser; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.Identifier; -import net.minecraft.util.JsonHelper; +import com.google.gson.*; +import de.dafuqs.spectrum.recipe.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.util.*; public class SpiritInstillerRecipeSerializer implements GatedRecipeSerializer { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerChangeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerChangeRecipe.java index 87fa189e1d..5160015658 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerChangeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerChangeRecipe.java @@ -1,33 +1,31 @@ package de.dafuqs.spectrum.recipe.spirit_instiller.spawner; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.MultiblockCrafter; -import de.dafuqs.spectrum.blocks.item_bowl.ItemBowlBlockEntity; -import de.dafuqs.spectrum.blocks.spirit_instiller.SpiritInstillerBlockEntity; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.helpers.Support; -import de.dafuqs.spectrum.recipe.spirit_instiller.SpiritInstillerRecipe; -import de.dafuqs.spectrum.registries.SpectrumItemTags; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.id.incubus_core.recipe.IngredientStack; -import net.id.incubus_core.recipe.matchbook.Matchbook; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -import java.util.Map; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.*; +import de.dafuqs.spectrum.blocks.item_bowl.*; +import de.dafuqs.spectrum.blocks.spirit_instiller.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.recipe.spirit_instiller.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.id.incubus_core.recipe.matchbook.*; +import net.minecraft.block.entity.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.nbt.*; +import net.minecraft.recipe.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; public abstract class SpawnerChangeRecipe extends SpiritInstillerRecipe { public SpawnerChangeRecipe(Identifier identifier, IngredientStack ingredient) { - super(identifier, "spawner_manipulation", false, SpectrumCommon.locate("milestones/unlock_spawner_manipulation"), IngredientStack.of(Ingredient.fromTag(SpectrumItemTags.SPAWNERS)), ingredient, IngredientStack.of(Ingredient.ofItems(SpectrumItems.VEGETAL), Matchbook.empty(), null, 4), SpectrumItems.SPAWNER.getDefaultStack(), 0, 200, true); + super(identifier, "spawner_manipulation", false, SpectrumCommon.locate("milestones/unlock_spawner_manipulation"), + IngredientStack.of(Ingredient.fromTag(SpectrumItemTags.SPAWNERS)), ingredient, IngredientStack.of(Ingredient.ofItems(SpectrumItems.VEGETAL), Matchbook.empty(), null, 4), + SpectrumItems.SPAWNER.getDefaultStack(), 200, 0, true); } @Override @@ -65,8 +63,8 @@ public ItemStack craft(Inventory inv) { // Calculate and spawn experience int awardedExperience = 0; if (getExperience() > 0) { - Map upgrades = spiritInstillerBlockEntity.getUpgrades(); - double experienceModifier = upgrades.get(Upgradeable.UpgradeType.EXPERIENCE); + Upgradeable.UpgradeHolder upgrades = spiritInstillerBlockEntity.getUpgradeHolder(); + double experienceModifier = upgrades.getEffectiveValue(Upgradeable.UpgradeType.EXPERIENCE); float recipeExperienceBeforeMod = getExperience(); awardedExperience = Support.getIntFromDecimalWithChance(recipeExperienceBeforeMod * experienceModifier, world.random); MultiblockCrafter.spawnExperience(world, pos.up(), awardedExperience); @@ -91,9 +89,13 @@ public boolean canCraftWithStacks(ItemStack instillerStack, ItemStack leftBowlSt } // Overwrite these - @Override public abstract RecipeSerializer getSerializer(); + @Override + public abstract RecipeSerializer getSerializer(); + public abstract boolean canCraftWithBlockEntityTag(NbtCompound spawnerBlockEntityNbt, ItemStack leftBowlStack, ItemStack rightBowlStack); + public abstract NbtCompound getSpawnerResultNbt(NbtCompound spawnerBlockEntityNbt, ItemStack secondBowlStack, ItemStack centerStack); - public abstract TranslatableText getOutputLoreText(); + + public abstract Text getOutputLoreText(); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerCreatureChangeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerCreatureChangeRecipe.java index 2a388b5a34..8c397b07a5 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerCreatureChangeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerCreatureChangeRecipe.java @@ -9,7 +9,7 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; @@ -58,8 +58,8 @@ public RecipeSerializer getSerializer() { } @Override - public TranslatableText getOutputLoreText() { - return new TranslatableText("recipe.spectrum.spawner.lore.changed_creature"); + public Text getOutputLoreText() { + return Text.translatable("recipe.spectrum.spawner.lore.changed_creature"); } public NbtCompound getSpawnerResultNbt(NbtCompound spawnerBlockEntityNbt, ItemStack firstBowlStack, ItemStack secondBowlStack) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerMaxNearbyEntitiesChangeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerMaxNearbyEntitiesChangeRecipe.java index ab0000804a..32c4afaa61 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerMaxNearbyEntitiesChangeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerMaxNearbyEntitiesChangeRecipe.java @@ -9,7 +9,7 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; public class SpawnerMaxNearbyEntitiesChangeRecipe extends SpawnerChangeRecipe { @@ -34,8 +34,8 @@ public RecipeSerializer getSerializer() { } @Override - public TranslatableText getOutputLoreText() { - return new TranslatableText("recipe.spectrum.spawner.lore.increased_max_nearby_entities"); + public Text getOutputLoreText() { + return Text.translatable("recipe.spectrum.spawner.lore.increased_max_nearby_entities"); } public NbtCompound getSpawnerResultNbt(NbtCompound spawnerBlockEntityNbt, ItemStack firstBowlStack, ItemStack secondBowlStack) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerRequiredPlayerRangeChangeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerRequiredPlayerRangeChangeRecipe.java index 2616bc841d..fd3867d806 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerRequiredPlayerRangeChangeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerRequiredPlayerRangeChangeRecipe.java @@ -9,7 +9,7 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; public class SpawnerRequiredPlayerRangeChangeRecipe extends SpawnerChangeRecipe { @@ -17,7 +17,7 @@ public class SpawnerRequiredPlayerRangeChangeRecipe extends SpawnerChangeRecipe public static final RecipeSerializer SERIALIZER = new SpecialRecipeSerializer<>(SpawnerRequiredPlayerRangeChangeRecipe::new); public SpawnerRequiredPlayerRangeChangeRecipe(Identifier identifier) { - super(identifier, IngredientStack.of(Ingredient.ofItems(SpectrumItems.SCARLET_GEM), Matchbook.empty(), null, 4)); + super(identifier, IngredientStack.of(Ingredient.ofItems(SpectrumItems.STRATINE_GEM), Matchbook.empty(), null, 4)); } @Override @@ -34,8 +34,8 @@ public RecipeSerializer getSerializer() { } @Override - public TranslatableText getOutputLoreText() { - return new TranslatableText("recipe.spectrum.spawner.lore.increased_required_player_range"); + public Text getOutputLoreText() { + return Text.translatable("recipe.spectrum.spawner.lore.increased_required_player_range"); } public NbtCompound getSpawnerResultNbt(NbtCompound spawnerBlockEntityNbt, ItemStack firstBowlStack, ItemStack secondBowlStack) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnCountChangeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnCountChangeRecipe.java index c890823c3c..28f60ab0d1 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnCountChangeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnCountChangeRecipe.java @@ -9,7 +9,7 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; public class SpawnerSpawnCountChangeRecipe extends SpawnerChangeRecipe { @@ -34,8 +34,8 @@ public RecipeSerializer getSerializer() { } @Override - public TranslatableText getOutputLoreText() { - return new TranslatableText("recipe.spectrum.spawner.lore.increased_spawn_count"); + public Text getOutputLoreText() { + return Text.translatable("recipe.spectrum.spawner.lore.increased_spawn_count"); } public NbtCompound getSpawnerResultNbt(NbtCompound spawnerBlockEntityNbt, ItemStack firstBowlStack, ItemStack secondBowlStack) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnDelayChangeRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnDelayChangeRecipe.java index 4391a7cec0..97de1a2ae6 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnDelayChangeRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/spirit_instiller/spawner/SpawnerSpawnDelayChangeRecipe.java @@ -9,7 +9,7 @@ import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.RecipeSerializer; import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; public class SpawnerSpawnDelayChangeRecipe extends SpawnerChangeRecipe { @@ -34,8 +34,8 @@ public RecipeSerializer getSerializer() { } @Override - public TranslatableText getOutputLoreText() { - return new TranslatableText("recipe.spectrum.spawner.lore.decreased_spawn_delay"); + public Text getOutputLoreText() { + return Text.translatable("recipe.spectrum.spawner.lore.decreased_spawn_delay"); } public NbtCompound getSpawnerResultNbt(NbtCompound spawnerBlockEntityNbt, ItemStack firstBowlStack, ItemStack secondBowlStack) { diff --git a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/ITitrationBarrelRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/ITitrationBarrelRecipe.java index 35605f46b9..13bbfd510c 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/ITitrationBarrelRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/ITitrationBarrelRecipe.java @@ -1,20 +1,17 @@ package de.dafuqs.spectrum.recipe.titration_barrel; -import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.helpers.TimeHelper; -import de.dafuqs.spectrum.recipe.GatedRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.fluid.Fluid; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.recipe.Recipe; -import net.minecraft.recipe.RecipeType; -import net.minecraft.util.Identifier; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.fluid.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; -import java.util.List; +import java.util.*; /** * In contrast to most other Minecraft things, the titration barrel also counts the fermenting time @@ -36,12 +33,12 @@ public interface ITitrationBarrelRecipe extends Recipe, GatedRecipe { // the amount of bottles able to get out of a single barrel default int getOutputCountAfterAngelsShare(float temperature, long secondsFermented) { - if(getFermentationData() == null) { + if (getFermentationData() == null) { return getOutput().getCount(); } float angelsSharePercent = getAngelsSharePercent(secondsFermented, temperature); - if(angelsSharePercent > 0) { + if (angelsSharePercent > 0) { return (int) (getOutput().getCount() * Math.ceil(1F - angelsSharePercent / 100F)); } else { return (int) (getOutput().getCount() * Math.floor(1F - angelsSharePercent / 100F)); @@ -75,7 +72,5 @@ default RecipeType getType() { int getMinFermentationTimeHours(); TitrationBarrelRecipe.FermentationData getFermentationData(); - - - + } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipe.java index 59a85aee51..de0c332d88 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipe.java @@ -1,44 +1,31 @@ package de.dafuqs.spectrum.recipe.titration_barrel; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.helpers.Support; +import com.google.gson.*; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.helpers.TimeHelper; -import de.dafuqs.spectrum.items.food.beverages.BeverageItem; -import de.dafuqs.spectrum.items.food.beverages.properties.BeverageProperties; -import de.dafuqs.spectrum.items.food.beverages.properties.VariantBeverageProperties; -import de.dafuqs.spectrum.recipe.GatedSpectrumRecipe; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.fluid.Fluid; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.text.MutableText; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.Identifier; -import net.minecraft.util.JsonHelper; -import net.minecraft.util.collection.DefaultedList; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.food.beverages.*; +import de.dafuqs.spectrum.items.food.beverages.properties.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.entity.effect.*; +import net.minecraft.fluid.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.recipe.*; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class TitrationBarrelRecipe extends GatedSpectrumRecipe implements ITitrationBarrelRecipe { public static final ItemStack NOT_FERMENTED_LONG_ENOUGH_OUTPUT_STACK = Items.POTION.getDefaultStack(); - public static final ItemStack PURE_ALCOHOL_STACK = SpectrumItems.PURE_ALCOHOL.getDefaultStack(); protected final List inputStacks; protected final ItemStack outputItemStack; @@ -69,19 +56,21 @@ public static StatusEffectPotencyEntry read(PacketByteBuf packetByteBuf) { } } - public record StatusEffectEntry(StatusEffect statusEffect, int baseDuration, List potencyEntries) { + + public record StatusEffectEntry(StatusEffect statusEffect, int baseDuration, + List potencyEntries) { public static StatusEffectEntry fromJson(JsonObject jsonObject) { Identifier statusEffectIdentifier = Identifier.tryParse(JsonHelper.getString(jsonObject, "id")); StatusEffect statusEffect = Registry.STATUS_EFFECT.get(statusEffectIdentifier); - if(statusEffect == null) { + if (statusEffect == null) { SpectrumCommon.logError("Status effect " + statusEffectIdentifier + " does not exist in the status effect registry. Falling back to WEAKNESS"); statusEffect = StatusEffects.WEAKNESS; } int baseDuration = JsonHelper.getInt(jsonObject, "base_duration", 1200); List potencyEntries = new ArrayList<>(); - if(JsonHelper.hasArray(jsonObject, "potency")) { + if (JsonHelper.hasArray(jsonObject, "potency")) { JsonArray potencyArray = JsonHelper.getArray(jsonObject, "potency"); for (int i = 0; i < potencyArray.size(); i++) { JsonObject object = potencyArray.get(i).getAsJsonObject(); @@ -97,7 +86,7 @@ public void write(PacketByteBuf packetByteBuf) { packetByteBuf.writeString(Registry.STATUS_EFFECT.getId(this.statusEffect).toString()); packetByteBuf.writeInt(baseDuration); packetByteBuf.writeInt(this.potencyEntries.size()); - for(StatusEffectPotencyEntry potencyEntry : this.potencyEntries) { + for (StatusEffectPotencyEntry potencyEntry : this.potencyEntries) { potencyEntry.write(packetByteBuf); } } @@ -108,20 +97,22 @@ public static StatusEffectEntry read(PacketByteBuf packetByteBuf) { int baseDuration = packetByteBuf.readInt(); int potencyEntryCount = packetByteBuf.readInt(); List potencyEntries = new ArrayList<>(potencyEntryCount); - for(int i = 0; i < potencyEntryCount; i++) { + for (int i = 0; i < potencyEntryCount; i++) { potencyEntries.add(StatusEffectPotencyEntry.read(packetByteBuf)); } return new StatusEffectEntry(statusEffect, baseDuration, potencyEntries); } } - public record FermentationData(float fermentationSpeedMod, float angelsSharePercentPerMcDay, List statusEffectEntries) { + + public record FermentationData(float fermentationSpeedMod, float angelsSharePercentPerMcDay, + List statusEffectEntries) { public static FermentationData fromJson(JsonObject jsonObject) { float fermentationSpeedMod = JsonHelper.getFloat(jsonObject, "fermentation_speed_mod", 1.0F); float angelsSharePerMcDay = JsonHelper.getFloat(jsonObject, "angels_share_percent_per_mc_day", 0.1F); List statusEffectEntries = new ArrayList<>(); - if(JsonHelper.hasArray(jsonObject, "effects")) { + if (JsonHelper.hasArray(jsonObject, "effects")) { JsonArray effectsArray = JsonHelper.getArray(jsonObject, "effects"); for (int i = 0; i < effectsArray.size(); i++) { JsonObject object = effectsArray.get(i).getAsJsonObject(); @@ -135,7 +126,7 @@ public void write(PacketByteBuf packetByteBuf) { packetByteBuf.writeFloat(this.fermentationSpeedMod); packetByteBuf.writeFloat(this.angelsSharePercentPerMcDay); packetByteBuf.writeInt(this.statusEffectEntries.size()); - for(StatusEffectEntry statusEffectEntry : this.statusEffectEntries) { + for (StatusEffectEntry statusEffectEntry : this.statusEffectEntries) { statusEffectEntry.write(packetByteBuf); } } @@ -145,7 +136,7 @@ public static FermentationData read(PacketByteBuf packetByteBuf) { float angelsSharePerMcDay = packetByteBuf.readFloat(); int statusEffectEntryCount = packetByteBuf.readInt(); List statusEffectEntries = new ArrayList<>(statusEffectEntryCount); - for(int i = 0; i < statusEffectEntryCount; i++) { + for (int i = 0; i < statusEffectEntryCount; i++) { statusEffectEntries.add(StatusEffectEntry.read(packetByteBuf)); } return new FermentationData(fermentationSpeedMod, angelsSharePerMcDay, statusEffectEntries); @@ -190,31 +181,44 @@ public Item getTappingItem() { public int getMinFermentationTimeHours() { return this.minFermentationTimeHours; } - + @Override public FermentationData getFermentationData() { return this.fermentationData; } - + @Override public ItemStack craft(Inventory inventory) { return ItemStack.EMPTY; } - - @Override - public ItemStack getOutput() { - ItemStack stack = tapWith(1.0F, this.minFermentationTimeHours * 60L * 60L, 0.4F, 0.8F); // downfall & temperature are for plains + + public ItemStack getDefaultTap(int timeMultiplier) { + ItemStack stack = tapWith(1.0F, this.minFermentationTimeHours * 60L * 60L * timeMultiplier, 0.4F, 0.8F); // downfall & temperature are for plains stack.setCount(this.outputItemStack.getCount()); return stack; } - + + @Override + public ItemStack getOutput() { + return getDefaultTap(1); + } + + // used for display mods like REI to show recipe outputs with a few example fermentation times + public Collection getOutputVariations(List timeMultipliers) { + List list = new ArrayList<>(); + for (int timeMultiplier : timeMultipliers) { + list.add(getDefaultTap(timeMultiplier)); + } + return list; + } + public Fluid getFluid() { return fluid; } - + @Override public float getAngelsSharePerMcDay() { - if(this.fermentationData == null) { + if (this.fermentationData == null) { return 0; } return this.fermentationData.angelsSharePercentPerMcDay; @@ -228,67 +232,75 @@ public ItemStack tap(Inventory inventory, long secondsFermented, float downfall, } private ItemStack tapWith(float thickness, long secondsFermented, float downfall, float temperature) { - if(secondsFermented / 60 / 60 < this.minFermentationTimeHours) { + if (secondsFermented / 60 / 60 < this.minFermentationTimeHours) { return NOT_FERMENTED_LONG_ENOUGH_OUTPUT_STACK; } ItemStack stack = this.outputItemStack.copy(); stack.setCount(1); - if(this.fermentationData != null) { + if (this.fermentationData == null) { + return stack; + } else { float ageIngameDays = TimeHelper.minecraftDaysFromSeconds(secondsFermented); double alcPercent = 0; - if(this.fermentationData.fermentationSpeedMod > 0) { + if (this.fermentationData.fermentationSpeedMod > 0) { alcPercent = getAlcPercent(thickness, downfall, ageIngameDays); alcPercent = Math.max(0, alcPercent); } - if(alcPercent >= 100) { - return PURE_ALCOHOL_STACK; + if (alcPercent >= 100) { + return getPureAlcohol(ageIngameDays); } BeverageProperties properties; - if(stack.getItem() instanceof BeverageItem beverageItem) { + if (stack.getItem() instanceof BeverageItem beverageItem) { properties = beverageItem.getBeverageProperties(stack); } else { // if it's not a set beverage (custom recipe) assume VariantBeverage to add that tag properties = VariantBeverageProperties.getFromStack(stack); } - if(properties instanceof VariantBeverageProperties variantBeverageProperties) { + if (properties instanceof VariantBeverageProperties variantBeverageProperties) { float durationMultiplier = 1.5F - thickness / 2F; List effects = new ArrayList<>(); - for(StatusEffectEntry entry : this.fermentationData.statusEffectEntries) { + for (StatusEffectEntry entry : this.fermentationData.statusEffectEntries) { int potency = -1; int durationTicks = entry.baseDuration; - for(StatusEffectPotencyEntry potencyEntry : entry.potencyEntries) { - if(thickness >= potencyEntry.minThickness && alcPercent >= potencyEntry.minAlcPercent) { + for (StatusEffectPotencyEntry potencyEntry : entry.potencyEntries) { + if (thickness >= potencyEntry.minThickness && alcPercent >= potencyEntry.minAlcPercent) { potency = potencyEntry.potency; } } - if(potency > -1) { + if (potency > -1) { effects.add(new StatusEffectInstance(entry.statusEffect, (int) (durationTicks * durationMultiplier), potency)); } } - + variantBeverageProperties.statusEffects = effects; } - + properties.alcPercent = (int) alcPercent; properties.ageDays = (long) ageIngameDays; properties.thickness = thickness; return properties.getStack(stack); } - - return outputItemStack; } - + + protected static ItemStack getPureAlcohol(float ageIngameDays) { + ItemStack stack = SpectrumItems.PURE_ALCOHOL.getDefaultStack(); + BeverageProperties properties = BeverageProperties.getFromStack(stack); + properties.ageDays = (long) ageIngameDays; + properties.getStack(stack); + return stack; + } + protected double getAlcPercent(float thickness, float downfall, float ageIngameDays) { return Support.logBase(1 + this.fermentationData.fermentationSpeedMod, ageIngameDays * (0.5D + thickness / 2D) * (0.5D + downfall / 2D)); } - + protected float getThickness(int contentCount) { int inputStacksCount = 0; for (IngredientStack stack : inputStacks) { @@ -306,25 +318,25 @@ public RecipeSerializer getSerializer() { // but this way it might be easier for translations either way public static MutableText getDurationText(int minFermentationTimeHours, TitrationBarrelRecipe.FermentationData fermentationData) { MutableText text; - if(fermentationData == null) { - if(minFermentationTimeHours == 1) { - text = new TranslatableText("container.spectrum.rei.titration_barrel.time_hour"); - } else if(minFermentationTimeHours == 24) { - text = new TranslatableText("container.spectrum.rei.titration_barrel.time_day"); + if (fermentationData == null) { + if (minFermentationTimeHours == 1) { + text = Text.translatable("container.spectrum.rei.titration_barrel.time_hour"); + } else if (minFermentationTimeHours == 24) { + text = Text.translatable("container.spectrum.rei.titration_barrel.time_day"); } else if (minFermentationTimeHours > 72) { - text = new TranslatableText("container.spectrum.rei.titration_barrel.time_days", Support.getWithOneDecimalAfterComma(minFermentationTimeHours / 24F)); + text = Text.translatable("container.spectrum.rei.titration_barrel.time_days", Support.getWithOneDecimalAfterComma(minFermentationTimeHours / 24F)); } else { - text = new TranslatableText("container.spectrum.rei.titration_barrel.time_hours", minFermentationTimeHours); + text = Text.translatable("container.spectrum.rei.titration_barrel.time_hours", minFermentationTimeHours); } } else { - if(minFermentationTimeHours == 1) { - text = new TranslatableText("container.spectrum.rei.titration_barrel.at_least_time_hour"); - } else if(minFermentationTimeHours == 24) { - text = new TranslatableText("container.spectrum.rei.titration_barrel.at_least_time_day"); + if (minFermentationTimeHours == 1) { + text = Text.translatable("container.spectrum.rei.titration_barrel.at_least_time_hour"); + } else if (minFermentationTimeHours == 24) { + text = Text.translatable("container.spectrum.rei.titration_barrel.at_least_time_day"); } else if (minFermentationTimeHours > 72) { - text = new TranslatableText("container.spectrum.rei.titration_barrel.at_least_time_days", Support.getWithOneDecimalAfterComma(minFermentationTimeHours / 24F)); + text = Text.translatable("container.spectrum.rei.titration_barrel.at_least_time_days", Support.getWithOneDecimalAfterComma(minFermentationTimeHours / 24F)); } else { - text = new TranslatableText("container.spectrum.rei.titration_barrel.at_least_time_hours", minFermentationTimeHours); + text = Text.translatable("container.spectrum.rei.titration_barrel.at_least_time_hours", minFermentationTimeHours); } } return text; diff --git a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipeSerializer.java b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipeSerializer.java index 085b743aef..6875e07f2e 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipeSerializer.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/TitrationBarrelRecipeSerializer.java @@ -1,23 +1,16 @@ package de.dafuqs.spectrum.recipe.titration_barrel; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.recipe.GatedRecipeSerializer; -import de.dafuqs.spectrum.recipe.RecipeUtils; -import net.id.incubus_core.json.RecipeParser; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.Identifier; -import net.minecraft.util.JsonHelper; -import net.minecraft.util.registry.Registry; +import com.google.gson.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.recipe.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.fluid.*; +import net.minecraft.item.*; +import net.minecraft.network.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; -import java.util.List; +import java.util.*; public class TitrationBarrelRecipeSerializer implements GatedRecipeSerializer { @@ -53,12 +46,12 @@ public TitrationBarrelRecipe read(Identifier identifier, JsonObject jsonObject) int minTimeDays = JsonHelper.getInt(jsonObject, "min_fermentation_time_hours", 24); Item tappingItem = Items.AIR; - if(JsonHelper.hasString(jsonObject, "tapping_item")) { + if (JsonHelper.hasString(jsonObject, "tapping_item")) { tappingItem = Registry.ITEM.get(Identifier.tryParse(JsonHelper.getString(jsonObject, "tapping_item"))); } TitrationBarrelRecipe.FermentationData fermentationData = null; - if(JsonHelper.hasJsonObject(jsonObject, "fermentation_data")) { + if (JsonHelper.hasJsonObject(jsonObject, "fermentation_data")) { fermentationData = TitrationBarrelRecipe.FermentationData.fromJson(JsonHelper.getObject(jsonObject, "fermentation_data")); } @@ -81,7 +74,7 @@ public void write(PacketByteBuf packetByteBuf, TitrationBarrelRecipe recipe) { packetByteBuf.writeString(Registry.ITEM.getId(recipe.tappingItem).toString()); packetByteBuf.writeInt(recipe.minFermentationTimeHours); - if(recipe.fermentationData == null) { + if (recipe.fermentationData == null) { packetByteBuf.writeBoolean(false); } else { packetByteBuf.writeBoolean(true); @@ -101,7 +94,7 @@ public TitrationBarrelRecipe read(Identifier identifier, PacketByteBuf packetByt Fluid fluid = Fluids.EMPTY; Identifier fluidId = readNullableIdentifier(packetByteBuf); - if(fluidId != null) { + if (fluidId != null) { fluid = Registry.FLUID.get(fluidId); } @@ -110,7 +103,7 @@ public TitrationBarrelRecipe read(Identifier identifier, PacketByteBuf packetByt int minTimeDays = packetByteBuf.readInt(); TitrationBarrelRecipe.FermentationData fermentationData = null; - if(packetByteBuf.readBoolean()) { + if (packetByteBuf.readBoolean()) { fermentationData = TitrationBarrelRecipe.FermentationData.read(packetByteBuf); } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/JadeWineRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/JadeWineRecipe.java index 1088f54ab8..5b2c43a0ee 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/JadeWineRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/JadeWineRecipe.java @@ -1,31 +1,22 @@ package de.dafuqs.spectrum.recipe.titration_barrel.dynamic; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.helpers.InventoryHelper; -import de.dafuqs.spectrum.helpers.Support; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.helpers.TimeHelper; -import de.dafuqs.spectrum.items.food.beverages.BeverageItem; -import de.dafuqs.spectrum.items.food.beverages.properties.JadeWineBeverageProperties; -import de.dafuqs.spectrum.recipe.titration_barrel.TitrationBarrelRecipe; -import de.dafuqs.spectrum.registries.SpectrumItems; -import de.dafuqs.spectrum.registries.SpectrumStatusEffects; -import net.id.incubus_core.recipe.IngredientStack; -import net.id.incubus_core.recipe.matchbook.Matchbook; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.fluid.Fluids; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.util.Identifier; -import net.minecraft.world.World; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.food.beverages.properties.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.id.incubus_core.recipe.matchbook.*; +import net.minecraft.entity.effect.*; +import net.minecraft.fluid.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.util.*; +import net.minecraft.world.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class JadeWineRecipe extends TitrationBarrelRecipe { @@ -43,12 +34,12 @@ public class JadeWineRecipe extends TitrationBarrelRecipe { public JadeWineRecipe(Identifier identifier) { super(identifier, "", false, UNLOCK_IDENTIFIER, INGREDIENT_STACKS, Fluids.WATER, OUTPUT_STACK, TAPPING_ITEM, MIN_FERMENTATION_TIME_HOURS, new TitrationBarrelRecipe.FermentationData(0.075F, 0.1F, List.of())); } - + @Override - public ItemStack getOutput() { - ItemStack tappedStack = tapWith(1, 3, false, 1.0F, this.minFermentationTimeHours * 60L * 60L, 0.4F, 0.8F); // downfall & temperature are for plains - BeverageItem.setPreviewStack(tappedStack); - return tappedStack; + public ItemStack getDefaultTap(int timeMultiplier) { + ItemStack stack = tapWith(1, 3, false, 1.0F, this.minFermentationTimeHours * 60L * 60L * timeMultiplier, 0.4F, 0.8F); // downfall & temperature are for plains + stack.setCount(this.outputItemStack.getCount()); + return stack; } @Override @@ -60,47 +51,77 @@ public ItemStack tap(Inventory inventory, long secondsFermented, float downfall, float thickness = getThickness(bulbCount, petalCount); return tapWith(bulbCount, petalCount, nectar, thickness, secondsFermented, downfall, temperature); } - + public ItemStack tapWith(int bulbCount, int petalCount, boolean nectar, float thickness, long secondsFermented, float downfall, float temperature) { - if(secondsFermented / 60 / 60 < this.minFermentationTimeHours) { + if (secondsFermented / 60 / 60 < this.minFermentationTimeHours) { return NOT_FERMENTED_LONG_ENOUGH_OUTPUT_STACK; } double bloominess = getBloominess(bulbCount, petalCount); float ageIngameDays = TimeHelper.minecraftDaysFromSeconds(secondsFermented); - if(nectar) { + if (nectar) { ageIngameDays *= 1.5; } double alcPercent = getAlcPercentWithBloominess(ageIngameDays, downfall, bloominess, thickness); - if(alcPercent >= 100) { - return PURE_ALCOHOL_STACK; + if (alcPercent >= 100) { + return getPureAlcohol(ageIngameDays); } else { List effects = new ArrayList<>(); int effectDuration = 1200; - if(alcPercent >= 80) { effects.add(new StatusEffectInstance(SpectrumStatusEffects.PROJECTILE_REBOUND, effectDuration)); effectDuration *= 2; } - if(alcPercent >= 70) { effects.add(new StatusEffectInstance(StatusEffects.RESISTANCE, effectDuration)); effectDuration *= 2; } - if(alcPercent >= 60) { effects.add(new StatusEffectInstance(StatusEffects.HASTE, effectDuration)); effectDuration *= 2; } - if(alcPercent >= 40) { effects.add(new StatusEffectInstance(StatusEffects.FIRE_RESISTANCE, effectDuration)); effectDuration *= 2; } - if(alcPercent >= 20) { effects.add(new StatusEffectInstance(SpectrumStatusEffects.NOURISHING, effectDuration)); effectDuration *= 2; } - if(nectar) { effects.add(new StatusEffectInstance(SpectrumStatusEffects.IMMUNITY, effectDuration)); } + if (alcPercent >= 80) { + effects.add(new StatusEffectInstance(SpectrumStatusEffects.PROJECTILE_REBOUND, effectDuration)); + effectDuration *= 2; + } + if (alcPercent >= 70) { + effects.add(new StatusEffectInstance(StatusEffects.RESISTANCE, effectDuration)); + effectDuration *= 2; + } + if (alcPercent >= 60) { + effects.add(new StatusEffectInstance(StatusEffects.HASTE, effectDuration)); + effectDuration *= 2; + } + if (alcPercent >= 40) { + effects.add(new StatusEffectInstance(StatusEffects.FIRE_RESISTANCE, effectDuration)); + effectDuration *= 2; + } + if (alcPercent >= 20) { + effects.add(new StatusEffectInstance(SpectrumStatusEffects.NOURISHING, effectDuration)); + effectDuration *= 2; + } + if (nectar) { + effects.add(new StatusEffectInstance(SpectrumStatusEffects.IMMUNITY, effectDuration)); + } int nectarMod = nectar ? 3 : 1; effectDuration = 1200; - int alcAfterBloominess = (int) (alcPercent / (nectarMod + bloominess )); - if(alcAfterBloominess >= 40) { effects.add(new StatusEffectInstance(StatusEffects.BLINDNESS, effectDuration)); effectDuration *= 2; } - if(alcAfterBloominess >= 30) { effects.add(new StatusEffectInstance(StatusEffects.POISON, effectDuration)); effectDuration *= 2; } - if(alcAfterBloominess >= 20) { effects.add(new StatusEffectInstance(StatusEffects.NAUSEA, effectDuration)); effectDuration *= 2; } - if(alcAfterBloominess >= 10) { effects.add(new StatusEffectInstance(StatusEffects.WEAKNESS, effectDuration)); } + int alcAfterBloominess = (int) (alcPercent / (nectarMod + bloominess)); + if (alcAfterBloominess >= 40) { + effects.add(new StatusEffectInstance(StatusEffects.BLINDNESS, effectDuration)); + effectDuration *= 2; + } + if (alcAfterBloominess >= 30) { + effects.add(new StatusEffectInstance(StatusEffects.POISON, effectDuration)); + effectDuration *= 2; + } + if (alcAfterBloominess >= 20) { + effects.add(new StatusEffectInstance(StatusEffects.NAUSEA, effectDuration)); + effectDuration *= 2; + } + if (alcAfterBloominess >= 10) { + effects.add(new StatusEffectInstance(StatusEffects.WEAKNESS, effectDuration)); + } - return new JadeWineBeverageProperties((long) ageIngameDays, (int) alcPercent, thickness, (float) bloominess, nectar, effects).getStack(OUTPUT_STACK.copy()); + ItemStack outputStack = OUTPUT_STACK.copy(); + outputStack.setCount(1); + return new JadeWineBeverageProperties((long) ageIngameDays, (int) alcPercent, thickness, (float) bloominess, nectar, effects).getStack(outputStack); } } - + // bloominess reduces the possibility of negative effects to trigger (better on the tongue) // but also reduces the potency of positive effects a bit protected static double getBloominess(int bulbCount, int petalCount) { - if(bulbCount == 0) { + if (bulbCount == 0) { return 0; } return (double) petalCount / (double) bulbCount / 2F; @@ -128,12 +149,12 @@ public boolean matches(Inventory inventory, World world) { for (int i = 0; i < inventory.size(); i++) { ItemStack stack = inventory.getStack(i); - if(stack.isEmpty()) { + if (stack.isEmpty()) { continue; } - if(stack.isOf(SpectrumItems.GERMINATED_JADE_VINE_SEEDS)) { + if (stack.isOf(SpectrumItems.GERMINATED_JADE_VINE_SEEDS)) { bulbsFound = true; - } else if(!stack.isOf(SpectrumItems.JADE_VINE_PETALS) && !stack.isOf(SpectrumItems.MOONSTRUCK_NECTAR)) { + } else if (!stack.isOf(SpectrumItems.JADE_VINE_PETALS) && !stack.isOf(SpectrumItems.MOONSTRUCK_NECTAR)) { return false; } } diff --git a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/SuspiciousBrewRecipe.java b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/SuspiciousBrewRecipe.java index 1372f196f0..164b75a50a 100644 --- a/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/SuspiciousBrewRecipe.java +++ b/src/main/java/de/dafuqs/spectrum/recipe/titration_barrel/dynamic/SuspiciousBrewRecipe.java @@ -1,28 +1,22 @@ package de.dafuqs.spectrum.recipe.titration_barrel.dynamic; -import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.helpers.TimeHelper; -import de.dafuqs.spectrum.items.food.beverages.BeverageItem; -import de.dafuqs.spectrum.items.food.beverages.properties.StatusEffectBeverageProperties; -import de.dafuqs.spectrum.recipe.titration_barrel.TitrationBarrelRecipe; -import de.dafuqs.spectrum.registries.SpectrumItems; -import net.id.incubus_core.recipe.IngredientStack; -import net.minecraft.block.Block; -import net.minecraft.block.FlowerBlock; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.fluid.Fluids; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.BlockItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.SpecialRecipeSerializer; -import net.minecraft.tag.ItemTags; -import net.minecraft.util.Identifier; -import net.minecraft.world.World; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.food.beverages.*; +import de.dafuqs.spectrum.items.food.beverages.properties.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import de.dafuqs.spectrum.registries.*; +import net.id.incubus_core.recipe.*; +import net.minecraft.block.*; +import net.minecraft.entity.effect.*; +import net.minecraft.fluid.*; +import net.minecraft.inventory.*; +import net.minecraft.item.*; +import net.minecraft.recipe.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.world.*; import org.apache.commons.lang3.tuple.Pair; import java.util.*; @@ -44,13 +38,14 @@ public class SuspiciousBrewRecipe extends TitrationBarrelRecipe { public SuspiciousBrewRecipe(Identifier identifier) { super(identifier, "", false, UNLOCK_IDENTIFIER, INGREDIENT_STACKS, Fluids.WATER, OUTPUT_STACK, TAPPING_ITEM, MIN_FERMENTATION_TIME_HOURS, new TitrationBarrelRecipe.FermentationData(1.0F, 0.1F, List.of())); } - + @Override - public ItemStack getOutput() { + public ItemStack getDefaultTap(int timeMultiplier) { ItemStack flowerStack = Items.POPPY.getDefaultStack(); flowerStack.setCount(4); - ItemStack tappedStack = tapWith(List.of(flowerStack), 1.0F, this.minFermentationTimeHours * 60L * 60L, 0.4F, 0.8F); // downfall & temperature are for plains + ItemStack tappedStack = tapWith(List.of(flowerStack), 1.0F, this.minFermentationTimeHours * 60L * 60L * timeMultiplier, 0.4F, 0.8F); // downfall & temperature are for plains BeverageItem.setPreviewStack(tappedStack); + tappedStack.setCount(OUTPUT_STACK.getCount()); return tappedStack; } @@ -58,9 +53,9 @@ public ItemStack getOutput() { public ItemStack tap(Inventory inventory, long secondsFermented, float downfall, float temperature) { List stacks = new ArrayList<>(); int itemCount = 0; - for(int i = 0; i < inventory.size(); i++) { + for (int i = 0; i < inventory.size(); i++) { ItemStack stack = inventory.getStack(i); - if(!stack.isEmpty()) { + if (!stack.isEmpty()) { stacks.add(stack); itemCount += stack.getCount(); } @@ -70,23 +65,23 @@ public ItemStack tap(Inventory inventory, long secondsFermented, float downfall, } public ItemStack tapWith(List stacks, float thickness, long secondsFermented, float downfall, float temperature) { - if(secondsFermented / 60 / 60 < this.minFermentationTimeHours) { + if (secondsFermented / 60 / 60 < this.minFermentationTimeHours) { return NOT_FERMENTED_LONG_ENOUGH_OUTPUT_STACK; } float ageIngameDays = TimeHelper.minecraftDaysFromSeconds(secondsFermented); double alcPercent = getAlcPercent(thickness, downfall, ageIngameDays); - if(alcPercent >= 100) { - return PURE_ALCOHOL_STACK; + if (alcPercent >= 100) { + return getPureAlcohol(ageIngameDays); } else { // add up all stew effects with their durations from the input stacks Map stewEffects = new HashMap<>(); - for(ItemStack stack : stacks) { + for (ItemStack stack : stacks) { Optional> stewEffect = getStewEffectFrom(stack); - if(stewEffect.isPresent()) { + if (stewEffect.isPresent()) { StatusEffect effect = stewEffect.get().getLeft(); - int duration = stewEffect.get().getRight() * stack.getCount(); - if(stewEffects.containsKey(effect)) { + int duration = (int) (stewEffect.get().getRight() * (1 + Support.logBase(stack.getCount(), 2))); + if (stewEffects.containsKey(effect)) { stewEffects.put(effect, stewEffects.get(effect) + duration); } else { stewEffects.put(effect, duration); @@ -96,12 +91,14 @@ public ItemStack tapWith(List stacks, float thickness, long secondsFe List finalStatusEffects = new ArrayList<>(); double cappedAlcPercent = Math.min(alcPercent, 20D); - for(Map.Entry entry : stewEffects.entrySet()) { - int finalDurationTicks = (int) Math.pow(entry.getValue(), 1 + cappedAlcPercent * 0.1); + for (Map.Entry entry : stewEffects.entrySet()) { + int finalDurationTicks = (int) (entry.getValue() * Math.pow(2, 1 + cappedAlcPercent)); finalStatusEffects.add(new StatusEffectInstance(entry.getKey(), finalDurationTicks, 0)); } - return new StatusEffectBeverageProperties((long) ageIngameDays, (int) alcPercent, thickness, finalStatusEffects).getStack(OUTPUT_STACK.copy()); + ItemStack outputStack = OUTPUT_STACK.copy(); + outputStack.setCount(1); + return new StatusEffectBeverageProperties((long) ageIngameDays, (int) alcPercent, thickness, finalStatusEffects).getStack(outputStack); } } @@ -122,8 +119,8 @@ public boolean matches(Inventory inventory, World world) { boolean flowerFound = false; for (int i = 0; i < inventory.size(); i++) { ItemStack stack = inventory.getStack(i); - if(!stack.isEmpty()) { - if(stack.isIn(ItemTags.SMALL_FLOWERS)) { + if (!stack.isEmpty()) { + if (stack.isIn(ItemTags.SMALL_FLOWERS)) { flowerFound = true; } else { return false; diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumArmorMaterials.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumArmorMaterials.java index 2a7cf2dbb5..d95c53943d 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumArmorMaterials.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumArmorMaterials.java @@ -12,12 +12,12 @@ public enum SpectrumArmorMaterials implements ArmorMaterial { + GEMSTONE("gemstone", 9, + new int[]{SpectrumCommon.CONFIG.GemstoneArmorBootsProtection, SpectrumCommon.CONFIG.GemstoneArmorLeggingsProtection, SpectrumCommon.CONFIG.GemstoneArmorChestplateProtection, SpectrumCommon.CONFIG.GemstoneArmorHelmetProtection}, + 15, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SpectrumCommon.CONFIG.GemstoneArmorToughness, SpectrumCommon.CONFIG.GemstoneArmorKnockbackResistance, () -> Ingredient.fromTag(SpectrumItemTags.GEMSTONE_SHARDS)), BEDROCK("bedrock", 70, - new int[]{ SpectrumCommon.CONFIG.BedrockArmorBootsProtection, SpectrumCommon.CONFIG.BedrockArmorLeggingsProtection, SpectrumCommon.CONFIG.BedrockArmorChestplateProtection, SpectrumCommon.CONFIG.BedrockArmorHelmetProtection }, - 5, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, SpectrumCommon.CONFIG.BedrockArmorToughness, SpectrumCommon.CONFIG.BedrockArmorKnockbackResistance, Ingredient::empty), - EMERGENCY("gemstone", 9, - new int[]{ SpectrumCommon.CONFIG.GemstoneArmorBootsProtection, SpectrumCommon.CONFIG.GemstoneArmorLeggingsProtection, SpectrumCommon.CONFIG.GemstoneArmorChestplateProtection, SpectrumCommon.CONFIG.GemstoneArmorHelmetProtection }, - 15, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SpectrumCommon.CONFIG.GemstoneArmorToughness, SpectrumCommon.CONFIG.GemstoneArmorKnockbackResistance, () -> Ingredient.fromTag(SpectrumItemTags.GEMSTONE_SHARDS)); + new int[]{SpectrumCommon.CONFIG.BedrockArmorBootsProtection, SpectrumCommon.CONFIG.BedrockArmorLeggingsProtection, SpectrumCommon.CONFIG.BedrockArmorChestplateProtection, SpectrumCommon.CONFIG.BedrockArmorHelmetProtection}, + 5, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE, SpectrumCommon.CONFIG.BedrockArmorToughness, SpectrumCommon.CONFIG.BedrockArmorKnockbackResistance, Ingredient::empty); private static final int[] BASE_DURABILITY = new int[]{13, 15, 16, 11}; private final String name; diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatternTags.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatternTags.java new file mode 100644 index 0000000000..4668e77b24 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatternTags.java @@ -0,0 +1,18 @@ +package de.dafuqs.spectrum.registries; + +import de.dafuqs.spectrum.SpectrumCommon; +import net.minecraft.block.entity.BannerPattern; +import net.minecraft.tag.TagKey; +import net.minecraft.util.registry.Registry; + +public class SpectrumBannerPatternTags { + + public static TagKey SPECTRUM_LOGO_TAG = of("pattern_item/logo"); + public static TagKey AMETHYST_CLUSTER_TAG = of("pattern_item/amethyst_cluster"); + public static TagKey AMETHYST_SHARD_TAG = of("pattern_item/amethyst_shard"); + + private static TagKey of(String id) { + return TagKey.of(Registry.BANNER_PATTERN_KEY, SpectrumCommon.locate(id)); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatterns.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatterns.java index de3d54ee7a..ace319036d 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatterns.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBannerPatterns.java @@ -1,54 +1,65 @@ package de.dafuqs.spectrum.registries; import de.dafuqs.spectrum.SpectrumCommon; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPattern; -import io.github.fablabsmc.fablabs.api.bannerpattern.v1.LoomPatterns; +import net.minecraft.block.entity.BannerPattern; +import net.minecraft.tag.TagKey; +import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import net.minecraft.util.registry.RegistryEntry; public class SpectrumBannerPatterns { - public static LoomPattern SPECTRUM_LOGO; - public static LoomPattern AMETHYST_CLUSTER; - public static LoomPattern AMETHYST_SHARD; - public static LoomPattern CRAFTING_TABLET; - public static LoomPattern FOUR_LEAF_CLOVER; - public static LoomPattern INK_FLASK; - public static LoomPattern KNOWLEDGE_GEM; - public static LoomPattern MANUAL; - public static LoomPattern MULTITOOL; - public static LoomPattern NEOLITH; - public static LoomPattern PALETTE; - public static LoomPattern PIGMENT; - public static LoomPattern RAW_AZURITE; - public static LoomPattern SHIMMER; - public static LoomPattern VEGETAL; - public static LoomPattern BEDROCK_DUST; - public static LoomPattern SHIMMERSTONE; - public static LoomPattern JADE_VINE; + public static RegistryEntry SPECTRUM_LOGO; + public static RegistryEntry AMETHYST_CLUSTER; + public static RegistryEntry AMETHYST_SHARD; + public static RegistryEntry CRAFTING_TABLET; + public static RegistryEntry FOUR_LEAF_CLOVER; + public static RegistryEntry INK_FLASK; + public static RegistryEntry KNOWLEDGE_GEM; + public static RegistryEntry MANUAL; + public static RegistryEntry MULTITOOL; + public static RegistryEntry NEOLITH; + public static RegistryEntry PALETTE; + public static RegistryEntry PIGMENT; + public static RegistryEntry RAW_AZURITE; + public static RegistryEntry SHIMMER; + public static RegistryEntry VEGETAL; + public static RegistryEntry BEDROCK_DUST; + public static RegistryEntry SHIMMERSTONE; + public static RegistryEntry JADE_VINE; - private static LoomPattern register(String id, LoomPattern loomPattern) { - return Registry.register(LoomPatterns.REGISTRY, SpectrumCommon.locate(id), loomPattern); + public static TagKey SPECTRUM_LOGO_TAG = of("pattern_item/logo"); + public static TagKey AMETHYST_CLUSTER_TAG = of("pattern_item/amethyst_cluster"); + public static TagKey AMETHYST_SHARD_TAG = of("pattern_item/amethyst_shard"); + + private static TagKey of(String id) { + return TagKey.of(Registry.BANNER_PATTERN_KEY, new Identifier(id)); + } + + private static RegistryEntry registerPattern(String id, String shortId) { + BannerPattern pattern = Registry.register(Registry.BANNER_PATTERN, SpectrumCommon.locate(id), new BannerPattern(SpectrumCommon.MOD_ID + "_" + shortId)); + return Registry.BANNER_PATTERN.getEntry(Registry.BANNER_PATTERN.getKey(pattern).get()).get(); } public static void register() { - SPECTRUM_LOGO = register("logo", new LoomPattern(true)); - AMETHYST_CLUSTER = register("amethyst_cluster", new LoomPattern(true)); - AMETHYST_SHARD = register("amethyst_shard", new LoomPattern(true)); - CRAFTING_TABLET = register("crafting_tablet", new LoomPattern(true)); - FOUR_LEAF_CLOVER = register("four_leaf_clover", new LoomPattern(true)); - INK_FLASK = register("ink_flask", new LoomPattern(true)); - KNOWLEDGE_GEM = register("knowledge_gem", new LoomPattern(true)); - MANUAL = register("manual", new LoomPattern(true)); - MULTITOOL = register("multitool", new LoomPattern(true)); - NEOLITH = register("neolith", new LoomPattern(true)); - PALETTE = register("palette", new LoomPattern(true)); - PIGMENT = register("pigment", new LoomPattern(true)); - RAW_AZURITE = register("raw_azurite", new LoomPattern(true)); - SHIMMER = register("shimmer", new LoomPattern(true)); - VEGETAL = register("vegetal", new LoomPattern(true)); - BEDROCK_DUST = register("bedrock_dust", new LoomPattern(true)); - SHIMMERSTONE = register("shimmerstone", new LoomPattern(true)); - JADE_VINE = register("jade_vine", new LoomPattern(true)); + SPECTRUM_LOGO = registerPattern("logo", "l"); + AMETHYST_CLUSTER = registerPattern("amethyst_cluster", "acl"); + AMETHYST_SHARD = registerPattern("amethyst_shard", "as"); + CRAFTING_TABLET = registerPattern("crafting_tablet", "ct"); + FOUR_LEAF_CLOVER = registerPattern("four_leaf_clover", "flc"); + INK_FLASK = registerPattern("ink_flask", "if"); + KNOWLEDGE_GEM = registerPattern("knowledge_gem", "kg"); + MANUAL = registerPattern("guidebook", "man"); + MULTITOOL = registerPattern("multitool", "mul"); + NEOLITH = registerPattern("neolith", "neo"); + PALETTE = registerPattern("palette", "pql"); + PIGMENT = registerPattern("pigment", "pg"); + RAW_AZURITE = registerPattern("raw_azurite", "raz"); + SHIMMER = registerPattern("shimmer", "sh"); + VEGETAL = registerPattern("vegetal", "ve"); + BEDROCK_DUST = registerPattern("bedrock_dust", "bd"); + SHIMMERSTONE = registerPattern("shimmerstone", "sp"); + JADE_VINE = registerPattern("jade_vine", "jv"); } } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBiomeTags.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBiomeTags.java new file mode 100644 index 0000000000..f4cda54ce9 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBiomeTags.java @@ -0,0 +1,18 @@ +package de.dafuqs.spectrum.registries; + +import de.dafuqs.spectrum.SpectrumCommon; +import net.minecraft.tag.TagKey; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; + +public class SpectrumBiomeTags { + + public static final TagKey HAS_ANCIENT_RUINS = getReference("has_structure/ancient_ruins"); + public static final TagKey QUITOXIC_REEDS_GENERATING_IN = getReference("quitoxic_reeds_generating_in"); + public static final TagKey COLORED_TREES_GENERATING_IN = getReference("colored_trees_generating_in"); + + private static TagKey getReference(String id) { + return TagKey.of(Registry.BIOME_KEY, SpectrumCommon.locate(id)); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockEntities.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockEntities.java index bb1579f9aa..9a7de86a15 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockEntities.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockEntities.java @@ -1,75 +1,52 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.block_flooder.BlockFlooderBlockEntity; -import de.dafuqs.spectrum.blocks.bottomless_bundle.BottomlessBundleBlockEntity; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.amphora.*; +import de.dafuqs.spectrum.blocks.block_flooder.*; +import de.dafuqs.spectrum.blocks.bottomless_bundle.*; import de.dafuqs.spectrum.blocks.chests.*; -import de.dafuqs.spectrum.blocks.cinderhearth.CinderhearthBlockEntity; -import de.dafuqs.spectrum.blocks.crystallarieum.CrystallarieumBlockEntity; -import de.dafuqs.spectrum.blocks.crystallarieum.CrystallarieumBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.deeper_down_portal.DeeperDownPortalBlockEntity; -import de.dafuqs.spectrum.blocks.deeper_down_portal.DeeperDownPortalBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.enchanter.EnchanterBlockEntity; -import de.dafuqs.spectrum.blocks.enchanter.EnchanterBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.ender.EnderDropperBlockEntity; -import de.dafuqs.spectrum.blocks.ender.EnderHopperBlockEntity; -import de.dafuqs.spectrum.blocks.energy.ColorPickerBlockEntity; -import de.dafuqs.spectrum.blocks.energy.ColorPickerBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.energy.CrystalApothecaryBlockEntity; -import de.dafuqs.spectrum.blocks.fusion_shrine.FusionShrineBlockEntity; -import de.dafuqs.spectrum.blocks.fusion_shrine.FusionShrineBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.item_bowl.ItemBowlBlockEntity; -import de.dafuqs.spectrum.blocks.item_bowl.ItemBowlBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.item_roundel.ItemRoundelBlockEntity; -import de.dafuqs.spectrum.blocks.item_roundel.ItemRoundelBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.jade_vines.JadeVineRootsBlockEntity; -import de.dafuqs.spectrum.blocks.jade_vines.JadeVineRootsBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.memory.MemoryBlockEntity; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlockEntity; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.particle_spawner.CreativeParticleSpawnerBlockEntity; -import de.dafuqs.spectrum.blocks.particle_spawner.ParticleSpawnerBlockEntity; +import de.dafuqs.spectrum.blocks.cinderhearth.*; +import de.dafuqs.spectrum.blocks.crystallarieum.*; +import de.dafuqs.spectrum.blocks.dd_deco.*; +import de.dafuqs.spectrum.blocks.enchanter.*; +import de.dafuqs.spectrum.blocks.ender.*; +import de.dafuqs.spectrum.blocks.energy.*; +import de.dafuqs.spectrum.blocks.fusion_shrine.*; +import de.dafuqs.spectrum.blocks.item_bowl.*; +import de.dafuqs.spectrum.blocks.item_roundel.*; +import de.dafuqs.spectrum.blocks.jade_vines.*; +import de.dafuqs.spectrum.blocks.memory.*; +import de.dafuqs.spectrum.blocks.mob_head.*; +import de.dafuqs.spectrum.blocks.particle_spawner.*; import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntity; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.potion_workshop.PotionWorkshopBlockEntity; -import de.dafuqs.spectrum.blocks.present.PresentBlockEntity; -import de.dafuqs.spectrum.blocks.redstone.BlockPlacerBlockEntity; -import de.dafuqs.spectrum.blocks.redstone.PlayerDetectorBlockEntity; -import de.dafuqs.spectrum.blocks.redstone.RedstoneCalculatorBlockEntity; -import de.dafuqs.spectrum.blocks.redstone.RedstoneWirelessBlockEntity; -import de.dafuqs.spectrum.blocks.shooting_star.ShootingStarBlockEntity; -import de.dafuqs.spectrum.blocks.spirit_instiller.SpiritInstillerBlockEntity; -import de.dafuqs.spectrum.blocks.spirit_instiller.SpiritInstillerBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.spirit_sallow.OminousSaplingBlockEntity; -import de.dafuqs.spectrum.blocks.structure.PreservationControllerBlockEntity; -import de.dafuqs.spectrum.blocks.structure.PreservationRoundelBlockEntity; -import de.dafuqs.spectrum.blocks.structure.TreasureChestBlockEntity; -import de.dafuqs.spectrum.blocks.titration_barrel.TitrationBarrelBlockEntity; -import de.dafuqs.spectrum.blocks.upgrade.UpgradeBlock; -import de.dafuqs.spectrum.blocks.upgrade.UpgradeBlockBlockEntityRenderer; -import de.dafuqs.spectrum.blocks.upgrade.UpgradeBlockEntity; -import net.fabricmc.fabric.api.client.rendering.v1.BlockEntityRendererRegistry; -import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback; -import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; -import net.minecraft.block.Block; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.client.render.TexturedRenderLayers; -import net.minecraft.client.texture.SpriteAtlasTexture; -import net.minecraft.util.registry.Registry; +import de.dafuqs.spectrum.blocks.pedestal.*; +import de.dafuqs.spectrum.blocks.potion_workshop.*; +import de.dafuqs.spectrum.blocks.present.*; +import de.dafuqs.spectrum.blocks.redstone.*; +import de.dafuqs.spectrum.blocks.shooting_star.*; +import de.dafuqs.spectrum.blocks.spirit_instiller.*; +import de.dafuqs.spectrum.blocks.spirit_sallow.*; +import de.dafuqs.spectrum.blocks.structure.*; +import de.dafuqs.spectrum.blocks.titration_barrel.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import net.fabricmc.fabric.api.client.rendering.v1.*; +import net.fabricmc.fabric.api.event.client.*; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.*; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.client.render.*; +import net.minecraft.client.texture.*; +import net.minecraft.util.registry.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class SpectrumBlockEntities { - + public static BlockEntityType OMINOUS_SAPLING; public static BlockEntityType PEDESTAL; public static BlockEntityType FUSION_SHRINE; public static BlockEntityType ENCHANTER; - //public static BlockEntityType STONESETTING_WORKSHOP; public static BlockEntityType ITEM_BOWL; public static BlockEntityType ITEM_ROUNDEL; public static BlockEntityType PRESERVATION_ROUNDEL; @@ -79,7 +56,6 @@ public class SpectrumBlockEntities { public static BlockEntityType CREATIVE_PARTICLE_SPAWNER; public static BlockEntityType UPGRADE_BLOCK; public static BlockEntityType SKULL; - public static BlockEntityType DEEPER_DOWN_PORTAL; public static BlockEntityType SHOOTING_STAR; public static BlockEntityType BOTTOMLESS_BUNDLE; public static BlockEntityType POTION_WORKSHOP; @@ -92,9 +68,10 @@ public class SpectrumBlockEntities { public static BlockEntityType COMPACTING_CHEST; public static BlockEntityType RESTOCKING_CHEST; public static BlockEntityType PRIVATE_CHEST; - public static BlockEntityType SUCKING_CHEST; + public static BlockEntityType BLACK_HOLE_CHEST; public static BlockEntityType TREASURE_CHEST; - + public static BlockEntityType AMPHORA; + public static BlockEntityType PLAYER_DETECTOR; public static BlockEntityType REDSTONE_CALCULATOR; public static BlockEntityType REDSTONE_WIRELESS; @@ -105,25 +82,20 @@ public class SpectrumBlockEntities { public static BlockEntityType JADE_VINE_ROOTS; public static BlockEntityType PRESENT; public static BlockEntityType TITRATION_BARREL; - - public static BlockEntityType CONNECTION_NODE; - public static BlockEntityType PROVIDER_NODE; - public static BlockEntityType STORAGE_NODE; - public static BlockEntityType PUSHER_NODE; - public static BlockEntityType PULLER_NODE; - + public static BlockEntityType PASTEL_NODE; + public static BlockEntityType HUMMINGSTONE; + public static BlockEntityType PRESERVATION_CONTROLLER; - + private static BlockEntityType register(String id, FabricBlockEntityTypeBuilder.Factory factory, Block... blocks) { return Registry.register(Registry.BLOCK_ENTITY_TYPE, SpectrumCommon.locate(id), FabricBlockEntityTypeBuilder.create(factory, blocks).build()); } - + public static void register() { OMINOUS_SAPLING = register("ominous_sapling_block_entity", OminousSaplingBlockEntity::new, SpectrumBlocks.OMINOUS_SAPLING); PEDESTAL = register("pedestal_block_entity", PedestalBlockEntity::new, SpectrumBlocks.PEDESTAL_BASIC_AMETHYST, SpectrumBlocks.PEDESTAL_BASIC_TOPAZ, SpectrumBlocks.PEDESTAL_BASIC_CITRINE, SpectrumBlocks.PEDESTAL_ALL_BASIC, SpectrumBlocks.PEDESTAL_ONYX, SpectrumBlocks.PEDESTAL_MOONSTONE); FUSION_SHRINE = register("fusion_shrine_block_entity", FusionShrineBlockEntity::new, SpectrumBlocks.FUSION_SHRINE_BASALT, SpectrumBlocks.FUSION_SHRINE_CALCITE); ENCHANTER = register("enchanter_block_entity", EnchanterBlockEntity::new, SpectrumBlocks.ENCHANTER); - //STONESETTING_WORKSHOP = register("stonesetting_workshop", StonesettingWorkshopBlockEntity::new, SpectrumBlocks.STONESETTING_WORKSHOP); ITEM_BOWL = register("item_bowl_block_entity", ItemBowlBlockEntity::new, SpectrumBlocks.ITEM_BOWL_BASALT, SpectrumBlocks.ITEM_BOWL_CALCITE); ITEM_ROUNDEL = register("item_roundel", ItemRoundelBlockEntity::new, SpectrumBlocks.ITEM_ROUNDEL); PRESERVATION_ROUNDEL = register("preservation_roundel", PreservationRoundelBlockEntity::new, SpectrumBlocks.PRESERVATION_ROUNDEL); @@ -131,12 +103,12 @@ public static void register() { ENDER_HOPPER = register("ender_hopper", EnderHopperBlockEntity::new, SpectrumBlocks.ENDER_HOPPER); PARTICLE_SPAWNER = register("particle_spawner", ParticleSpawnerBlockEntity::new, SpectrumBlocks.PARTICLE_SPAWNER); CREATIVE_PARTICLE_SPAWNER = register("creative_particle_spawner", CreativeParticleSpawnerBlockEntity::new, SpectrumBlocks.CREATIVE_PARTICLE_SPAWNER); - DEEPER_DOWN_PORTAL = register("deeper_down_portal", DeeperDownPortalBlockEntity::new, SpectrumBlocks.DEEPER_DOWN_PORTAL); COMPACTING_CHEST = register("compacting_chest", CompactingChestBlockEntity::new, SpectrumBlocks.COMPACTING_CHEST); RESTOCKING_CHEST = register("restocking_chest", RestockingChestBlockEntity::new, SpectrumBlocks.RESTOCKING_CHEST); PRIVATE_CHEST = register("private_chest", PrivateChestBlockEntity::new, SpectrumBlocks.PRIVATE_CHEST); - SUCKING_CHEST = register("sucking_chest", SuckingChestBlockEntity::new, SpectrumBlocks.SUCKING_CHEST); + BLACK_HOLE_CHEST = register("black_hole_chest", BlackHoleChestBlockEntity::new, SpectrumBlocks.BLACK_HOLE_CHEST); TREASURE_CHEST = register("treasure_chest", TreasureChestBlockEntity::new, SpectrumBlocks.TREASURE_CHEST); + AMPHORA = register("amphora", AmphoraBlockEntity::new, SpectrumBlocks.CHESTNUT_NOXWOOD_AMPHORA, SpectrumBlocks.EBONY_NOXWOOD_AMPHORA, SpectrumBlocks.SLATE_NOXWOOD_AMPHORA, SpectrumBlocks.IVORY_NOXWOOD_AMPHORA); PLAYER_DETECTOR = register("player_detector", PlayerDetectorBlockEntity::new, SpectrumBlocks.PLAYER_DETECTOR); REDSTONE_CALCULATOR = register("redstone_calculator", RedstoneCalculatorBlockEntity::new, SpectrumBlocks.REDSTONE_CALCULATOR); REDSTONE_WIRELESS = register("redstone_wireless", RedstoneWirelessBlockEntity::new, SpectrumBlocks.REDSTONE_WIRELESS); @@ -154,22 +126,16 @@ public static void register() { CINDERHEARTH = register("cinderhearth", CinderhearthBlockEntity::new, SpectrumBlocks.CINDERHEARTH); PRESENT = register("present", PresentBlockEntity::new, SpectrumBlocks.PRESENT); TITRATION_BARREL = register("titration_barrel", TitrationBarrelBlockEntity::new, SpectrumBlocks.TITRATION_BARREL); - - // All the pastel network nodes - CONNECTION_NODE = register("connection_node", PastelNetworkConnectionNode::new, SpectrumBlocks.CONNECTION_NODE); - PROVIDER_NODE = register("provider_node", PastelNetworkProviderNodeBlockEntity::new, SpectrumBlocks.PROVIDER_NODE); - STORAGE_NODE = register("storage_node", PastelNetworkStorageNodeBlockEntity::new, SpectrumBlocks.STORAGE_NODE); - PUSHER_NODE = register("pusher_node", PastelNetworkPusherNodeBlockEntity::new, SpectrumBlocks.PUSHER_NODE); - PULLER_NODE = register("puller_node", PastelNetworkPullerNodeBlockEntity::new, SpectrumBlocks.PULLER_NODE); - + PASTEL_NODE = register("pastel_node", PastelNodeBlockEntity::new, SpectrumBlocks.CONNECTION_NODE, SpectrumBlocks.PROVIDER_NODE, SpectrumBlocks.STORAGE_NODE, SpectrumBlocks.SENDER_NODE, SpectrumBlocks.GATHER_NODE); PRESERVATION_CONTROLLER = register("preservation_controller", PreservationControllerBlockEntity::new, SpectrumBlocks.PRESERVATION_CONTROLLER); - + HUMMINGSTONE = register("hummingstone", HummingstoneBlockEntity::new, SpectrumBlocks.HUMMINGSTONE); + // All the upgrades - List upgradeBlocksList = UpgradeBlock.getRegisteredUpgradeBlocks(); + List upgradeBlocksList = UpgradeBlock.getUpgradeBlocks(); Block[] upgradeBlocksArray = new Block[upgradeBlocksList.size()]; upgradeBlocksArray = upgradeBlocksList.toArray(upgradeBlocksArray); UPGRADE_BLOCK = register("upgrade_block", UpgradeBlockEntity::new, upgradeBlocksArray); - + // All the skulls List skullBlocksList = new ArrayList<>(); skullBlocksList.addAll(SpectrumBlocks.getMobHeads()); @@ -186,7 +152,7 @@ public static void registerClient() { BlockEntityRendererRegistry.register(SpectrumBlockEntities.COMPACTING_CHEST, CompactingChestBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.RESTOCKING_CHEST, RestockingChestBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.TREASURE_CHEST, SpectrumChestBlockEntityRenderer::new); - BlockEntityRendererRegistry.register(SpectrumBlockEntities.SUCKING_CHEST, SuckingChestBlockEntityRenderer::new); + BlockEntityRendererRegistry.register(SpectrumBlockEntities.BLACK_HOLE_CHEST, BlackHoleChestBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.UPGRADE_BLOCK, UpgradeBlockBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.FUSION_SHRINE, FusionShrineBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.ENCHANTER, EnchanterBlockEntityRenderer::new); @@ -194,19 +160,11 @@ public static void registerClient() { BlockEntityRendererRegistry.register(SpectrumBlockEntities.ITEM_ROUNDEL, ItemRoundelBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.PRESERVATION_ROUNDEL, ItemRoundelBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.SKULL, SpectrumSkullBlockEntityRenderer::new); - BlockEntityRendererRegistry.register(SpectrumBlockEntities.DEEPER_DOWN_PORTAL, DeeperDownPortalBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.SPIRIT_INSTILLER, SpiritInstillerBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.JADE_VINE_ROOTS, JadeVineRootsBlockEntityRenderer::new); - //BlockEntityRendererRegistry.register(SpectrumBlockEntities.STONESETTING_WORKSHOP, StoneSettingWorkshopBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.CRYSTALLARIEUM, CrystallarieumBlockEntityRenderer::new); BlockEntityRendererRegistry.register(SpectrumBlockEntities.COLOR_PICKER, ColorPickerBlockEntityRenderer::new); - - BlockEntityRendererRegistry.register(SpectrumBlockEntities.CONNECTION_NODE, PastelNetworkNodeBlockEntityRenderer::new); - BlockEntityRendererRegistry.register(SpectrumBlockEntities.PROVIDER_NODE, PastelNetworkNodeBlockEntityRenderer::new); - BlockEntityRendererRegistry.register(SpectrumBlockEntities.STORAGE_NODE, PastelNetworkNodeBlockEntityRenderer::new); - BlockEntityRendererRegistry.register(SpectrumBlockEntities.PUSHER_NODE, PastelNetworkNodeBlockEntityRenderer::new); - BlockEntityRendererRegistry.register(SpectrumBlockEntities.PULLER_NODE, PastelNetworkNodeBlockEntityRenderer::new); - + registerTextureAtlasCallback(); } @@ -222,6 +180,7 @@ private static void registerTextureAtlasCallback() { //Register textures in block atlas ClientSpriteRegistryCallback.event(SpriteAtlasTexture.BLOCK_ATLAS_TEXTURE).register((texture, registry) -> { registry.register(SpectrumCommon.locate("entity/pedestal_upgrade_speed")); + registry.register(SpectrumCommon.locate("entity/pastel_line")); }); } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockMaterials.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockMaterials.java index 6a9b139c49..ec4e4e23a1 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockMaterials.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockMaterials.java @@ -1,11 +1,20 @@ package de.dafuqs.spectrum.registries; -import net.minecraft.block.MapColor; -import net.minecraft.block.Material; -import net.minecraft.block.piston.PistonBehavior; +import net.fabricmc.fabric.api.object.builder.v1.block.*; +import net.minecraft.block.*; +import net.minecraft.block.piston.*; public class SpectrumBlockMaterials { - + public static final Material DECAY = new Material(MapColor.BLACK, false, true, true, true, false, false, PistonBehavior.DESTROY); - + + private static Material fluid(MapColor mapColor) { + return new FabricMaterialBuilder(mapColor).allowsMovement().lightPassesThrough().notSolid().destroyedByPiston().replaceable().liquid().build(); + } + + public static final Material MUD = fluid(MapColor.TERRACOTTA_BROWN); + public static final Material LIQUID_CRYSTAL = fluid(MapColor.LIGHT_GRAY); + public static final Material MIDNIGHT_SOLUTION = fluid(MapColor.DARK_AQUA); + public static final Material DRAGONROT = fluid(MapColor.PALE_PURPLE); + } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockSoundGroups.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockSoundGroups.java index f7f8f8a680..ccbc836453 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockSoundGroups.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockSoundGroups.java @@ -31,7 +31,7 @@ public class SpectrumBlockSoundGroups { public static final BlockSoundGroup LARGE_MOONSTONE_BUD = new BlockSoundGroup(1.0F, 1.0F, SpectrumSoundEvents.BLOCK_LARGE_MOONSTONE_BUD_BREAK, SpectrumSoundEvents.BLOCK_MOONSTONE_CLUSTER_STEP, SpectrumSoundEvents.BLOCK_LARGE_MOONSTONE_BUD_PLACE, SpectrumSoundEvents.BLOCK_MOONSTONE_CLUSTER_HIT, SpectrumSoundEvents.BLOCK_MOONSTONE_CLUSTER_FALL); public static final BlockSoundGroup SPECTRAL_BLOCK = new BlockSoundGroup(1.0F, 1.0F, SpectrumSoundEvents.SPECTRAL_BLOCK_BREAK, SpectrumSoundEvents.SPECTRAL_BLOCK_STEP, SpectrumSoundEvents.SPECTRAL_BLOCK_PLACE, SpectrumSoundEvents.SPECTRAL_BLOCK_HIT, SpectrumSoundEvents.SPECTRAL_BLOCK_FALL); - public static final BlockSoundGroup WAND_LIGHT = new BlockSoundGroup(1.0F, 1.0F, SpectrumSoundEvents.LIGHT_STAFF_BREAK, SoundEvents.BLOCK_AMETHYST_CLUSTER_STEP, SpectrumSoundEvents.LIGHT_STAFF_PLACE, SpectrumSoundEvents.LIGHT_STAFF_BREAK, SpectrumSoundEvents.LIGHT_STAFF_BREAK); + public static final BlockSoundGroup WAND_LIGHT = new BlockSoundGroup(1.0F, 1.0F, SpectrumSoundEvents.RADIANCE_STAFF_BREAK, SoundEvents.BLOCK_AMETHYST_CLUSTER_STEP, SpectrumSoundEvents.RADIANCE_STAFF_PLACE, SpectrumSoundEvents.RADIANCE_STAFF_BREAK, SpectrumSoundEvents.RADIANCE_STAFF_BREAK); // MOB BLOCKS public static final BlockSoundGroup AXOLOTL_MOB_BLOCK = new BlockSoundGroup(1.0F, 1.0F, SoundEvents.ENTITY_AXOLOTL_DEATH, SoundEvents.BLOCK_WOOL_STEP, SoundEvents.ENTITY_AXOLOTL_IDLE_AIR, SoundEvents.ENTITY_AXOLOTL_HURT, SoundEvents.ENTITY_AXOLOTL_IDLE_AIR); diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockTags.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockTags.java index 5910aef92a..965bac0e37 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockTags.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlockTags.java @@ -1,53 +1,57 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.block.Block; -import net.minecraft.tag.TagKey; -import net.minecraft.util.registry.Registry; +import de.dafuqs.spectrum.*; +import net.minecraft.block.*; +import net.minecraft.tag.*; +import net.minecraft.util.registry.*; public class SpectrumBlockTags { // PLANTS - public static TagKey MERMAIDS_BRUSH_PLANTABLE = getReference("mermaids_brush_plantable"); - public static TagKey QUITOXIC_REEDS_PLANTABLE = getReference("quitoxic_reeds_plantable"); - public static TagKey BLACK_SLUDGE_BLOCKS = getReference("black_sludge_blocks"); - - public static final TagKey BLACKSLAG_ORE_REPLACEABLES = getReference("blackslag_ore_replaceables"); + public static final TagKey MERMAIDS_BRUSH_PLANTABLE = getReference("mermaids_brush_plantable"); + public static final TagKey QUITOXIC_REEDS_PLANTABLE = getReference("quitoxic_reeds_plantable"); + public static final TagKey DOOMBLOOM_PLANTABLE = getReference("doombloom_plantable"); + public static final TagKey SNAPPING_IVY_PLANTABLE = getReference("snapping_ivy_plantable"); + public static final TagKey ALOE_PLANTABLE = getReference("aloe_plantable"); + public static final TagKey ALOE_CONVERTED = getReference("aloe_converted"); // DECAY - public static TagKey DECAY = getReference("decay"); - public static TagKey DECAY_AWAY_CURABLES = getReference("decay_away_curables"); - public static TagKey FADING_CONVERSIONS = getReference("fading_conversions"); - public static TagKey FADING_SPECIAL_CONVERSIONS = getReference("fading_special_conversions"); - public static TagKey FAILING_SAFE = getReference("failing_safe"); - public static TagKey FAILING_CONVERSIONS = getReference("failing_conversions"); - public static TagKey FAILING_SPECIAL_CONVERSIONS = getReference("failing_special_conversions"); - public static TagKey RUIN_SAFE = getReference("ruin_safe"); - public static TagKey TERROR_SAFE = getReference("terror_safe"); - public static TagKey RUIN_BEDROCK_CONVERSIONS = getReference("decay_bedrock_conversions"); - public static TagKey BLACK_MATERIA_CONVERSIONS = getReference("black_materia_conversions"); - + public static final TagKey DECAY = getReference("decay"); + public static final TagKey DECAY_AWAY_CURABLES = getReference("decay_away_curables"); + public static final TagKey FADING_CONVERSIONS = getReference("fading_conversions"); + public static final TagKey FADING_SPECIAL_CONVERSIONS = getReference("fading_special_conversions"); + public static final TagKey FAILING_SAFE = getReference("failing_safe"); + public static final TagKey FAILING_CONVERSIONS = getReference("failing_conversions"); + public static final TagKey FAILING_SPECIAL_CONVERSIONS = getReference("failing_special_conversions"); + public static final TagKey RUIN_SAFE = getReference("ruin_safe"); + public static final TagKey FORFEITURE_SAFE = getReference("forfeiture_safe"); + public static final TagKey RUIN_BEDROCK_CONVERSIONS = getReference("decay_bedrock_conversions"); + public static final TagKey BLACK_MATERIA_CONVERSIONS = getReference("black_materia_conversions"); + // MISC - public static TagKey MAGICAL_LEAVES = getReference("magical_leaves"); - public static TagKey NATURES_STAFF_TICKABLE = getReference("natures_staff_tickable"); - public static TagKey NATURES_STAFF_STACKABLE = getReference("natures_staff_stackable"); - public static TagKey BUILDING_STAFFS_BLACKLISTED = getReference("building_staffs_blacklisted"); - public static TagKey CRYSTAL_APOTHECARY_HARVESTABLE = getReference("crystal_apothecary_harvestable"); - public static TagKey GEMSTONE_BUDS = getReference("gemstone_buds"); + public static final TagKey BLACK_SLUDGE_BLOCKS = getReference("black_sludge_blocks"); + public static final TagKey PRIMORDIAL_FIRE_BASE_BLOCKS = getReference("primordial_fire_base_blocks"); + public static final TagKey BLACKSLAG_ORE_REPLACEABLES = getReference("blackslag_ore_replaceables"); + public static final TagKey MAGICAL_LEAVES = getReference("magical_leaves"); + public static final TagKey NATURES_STAFF_TICKABLE = getReference("natures_staff_tickable"); + public static final TagKey NATURES_STAFF_STACKABLE = getReference("natures_staff_stackable"); + public static final TagKey BUILDING_STAFFS_BLACKLISTED = getReference("building_staffs_blacklisted"); + public static final TagKey CRYSTAL_APOTHECARY_HARVESTABLE = getReference("crystal_apothecary_harvestable"); + public static final TagKey GEMSTONE_BUDS = getReference("gemstone_buds"); public static final TagKey BASE_STONE_DEEPER_DOWN = getReference("base_stone_deeper_down"); - + public static final TagKey UNBREAKABLE_STRUCTURE_BLOCKS = getReference("unbreakable_structure_blocks"); + public static final TagKey RESONANCE_HARVESTABLES = getReference("resonance_harvestables"); + public static final TagKey SPAWNERS = getReference("spawners"); + // DEBUG - public static TagKey EXEMPT_FROM_MINEABLE_DEBUG_CHECK = getReference("exempt_from_mineable_debug_check"); - public static TagKey EXEMPT_FROM_LOOT_TABLE_DEBUG_CHECK = getReference("exempt_from_loot_table_debug_check"); - + public static final TagKey EXEMPT_FROM_MINEABLE_DEBUG_CHECK = getReference("exempt_from_mineable_debug_check"); + public static final TagKey EXEMPT_FROM_LOOT_TABLE_DEBUG_CHECK = getReference("exempt_from_loot_table_debug_check"); + // MEMORIES - public static TagKey MEMORY_NEVER_MANIFESTERS = getReference("memory_never_manifesters"); - public static TagKey MEMORY_FAST_MANIFESTERS = getReference("memory_fast_manifesters"); - public static TagKey MEMORY_VERY_FAST_MANIFESTERS = getReference("memory_very_fast_manifesters"); - - public static TagKey UNBREAKABLE_STRUCTURE_BLOCKS = getReference("unbreakable_structure_blocks"); - public static TagKey RESONANCE_HARVESTABLES = getReference("resonance_harvestables"); - public static TagKey SPAWNERS = getReference("spawners"); + public static final TagKey MEMORY_NEVER_MANIFESTERS = getReference("memory_never_manifesters"); + public static final TagKey MEMORY_FAST_MANIFESTERS = getReference("memory_fast_manifesters"); + public static final TagKey MEMORY_VERY_FAST_MANIFESTERS = getReference("memory_very_fast_manifesters"); + private static TagKey getReference(String id) { return TagKey.of(Registry.BLOCK_KEY, SpectrumCommon.locate(id)); diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlocks.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlocks.java index e11ad09935..51f522de4e 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlocks.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumBlocks.java @@ -1,126 +1,89 @@ package de.dafuqs.spectrum.registries; -import com.google.common.collect.BiMap; -import com.google.common.collect.EnumHashBiMap; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.blocks.*; -import de.dafuqs.spectrum.blocks.block_flooder.BlockFlooderBlock; -import de.dafuqs.spectrum.blocks.bottomless_bundle.BottomlessBundleBlock; -import de.dafuqs.spectrum.blocks.chests.CompactingChestBlock; -import de.dafuqs.spectrum.blocks.chests.PrivateChestBlock; -import de.dafuqs.spectrum.blocks.chests.RestockingChestBlock; -import de.dafuqs.spectrum.blocks.chests.SuckingChestBlock; -import de.dafuqs.spectrum.blocks.cinderhearth.CinderhearthBlock; +import de.dafuqs.spectrum.blocks.amphora.*; +import de.dafuqs.spectrum.blocks.block_flooder.*; +import de.dafuqs.spectrum.blocks.bottomless_bundle.*; +import de.dafuqs.spectrum.blocks.chests.*; +import de.dafuqs.spectrum.blocks.cinderhearth.*; import de.dafuqs.spectrum.blocks.conditional.*; -import de.dafuqs.spectrum.blocks.conditional.amaranth.AmaranthBushelBlock; -import de.dafuqs.spectrum.blocks.conditional.amaranth.AmaranthCropBlock; -import de.dafuqs.spectrum.blocks.conditional.amaranth.PottedAmaranthBushelBlock; -import de.dafuqs.spectrum.blocks.crystallarieum.CrystallarieumBlock; -import de.dafuqs.spectrum.blocks.crystallarieum.CrystallarieumGrowableBlock; -import de.dafuqs.spectrum.blocks.decay.DecayAwayBlock; -import de.dafuqs.spectrum.blocks.decay.FadingBlock; -import de.dafuqs.spectrum.blocks.decay.FailingBlock; -import de.dafuqs.spectrum.blocks.decay.TerrorBlock; +import de.dafuqs.spectrum.blocks.conditional.amaranth.*; +import de.dafuqs.spectrum.blocks.conditional.blood_orchid.*; +import de.dafuqs.spectrum.blocks.conditional.colored_tree.*; +import de.dafuqs.spectrum.blocks.crystallarieum.*; +import de.dafuqs.spectrum.blocks.dd_deco.*; +import de.dafuqs.spectrum.blocks.decay.*; import de.dafuqs.spectrum.blocks.decoration.*; -import de.dafuqs.spectrum.blocks.deeper_down_portal.DeeperDownPortalBlock; -import de.dafuqs.spectrum.blocks.enchanter.EnchanterBlock; -import de.dafuqs.spectrum.blocks.ender.EnderDropperBlock; -import de.dafuqs.spectrum.blocks.ender.EnderHopperBlock; -import de.dafuqs.spectrum.blocks.energy.ColorPickerBlock; -import de.dafuqs.spectrum.blocks.energy.CrystalApothecaryBlock; -import de.dafuqs.spectrum.blocks.energy.InkDuctBlock; -import de.dafuqs.spectrum.blocks.energy.InkwellBlock; -import de.dafuqs.spectrum.blocks.fluid.LiquidCrystalFluidBlock; -import de.dafuqs.spectrum.blocks.fluid.MidnightSolutionFluidBlock; -import de.dafuqs.spectrum.blocks.fluid.MudFluidBlock; -import de.dafuqs.spectrum.blocks.fusion_shrine.FusionShrineBlock; -import de.dafuqs.spectrum.blocks.gemstone.SpectrumBuddingBlock; -import de.dafuqs.spectrum.blocks.gemstone.SpectrumGemstoneBlock; -import de.dafuqs.spectrum.blocks.gravity.FloatBlock; -import de.dafuqs.spectrum.blocks.gravity.FloatBlockItem; -import de.dafuqs.spectrum.blocks.item_bowl.ItemBowlBlock; -import de.dafuqs.spectrum.blocks.item_roundel.ItemRoundelBlock; -import de.dafuqs.spectrum.blocks.jade_vines.JadeVineBulbBlock; -import de.dafuqs.spectrum.blocks.jade_vines.JadeVinePetalBlock; -import de.dafuqs.spectrum.blocks.jade_vines.JadeVinePlantBlock; -import de.dafuqs.spectrum.blocks.jade_vines.JadeVineRootsBlock; -import de.dafuqs.spectrum.blocks.lava_sponge.LavaSpongeBlock; -import de.dafuqs.spectrum.blocks.lava_sponge.WetLavaSpongeBlock; -import de.dafuqs.spectrum.blocks.lava_sponge.WetLavaSpongeItem; -import de.dafuqs.spectrum.blocks.melon.AttachedGlisteringStemBlock; -import de.dafuqs.spectrum.blocks.melon.GlisteringMelonBlock; -import de.dafuqs.spectrum.blocks.melon.GlisteringStemBlock; -import de.dafuqs.spectrum.blocks.memory.MemoryBlock; -import de.dafuqs.spectrum.blocks.memory.MemoryItem; +import de.dafuqs.spectrum.blocks.enchanter.*; +import de.dafuqs.spectrum.blocks.ender.*; +import de.dafuqs.spectrum.blocks.energy.*; +import de.dafuqs.spectrum.blocks.fluid.*; +import de.dafuqs.spectrum.blocks.furniture.*; +import de.dafuqs.spectrum.blocks.fusion_shrine.*; +import de.dafuqs.spectrum.blocks.gemstone.*; +import de.dafuqs.spectrum.blocks.gravity.*; +import de.dafuqs.spectrum.blocks.item_bowl.*; +import de.dafuqs.spectrum.blocks.item_roundel.*; +import de.dafuqs.spectrum.blocks.jade_vines.*; +import de.dafuqs.spectrum.blocks.lava_sponge.*; +import de.dafuqs.spectrum.blocks.melon.*; +import de.dafuqs.spectrum.blocks.memory.*; import de.dafuqs.spectrum.blocks.mob_blocks.*; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlock; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlockItem; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumWallSkullBlock; -import de.dafuqs.spectrum.blocks.particle_spawner.CreativeParticleSpawnerBlock; -import de.dafuqs.spectrum.blocks.particle_spawner.ParticleSpawnerBlock; -import de.dafuqs.spectrum.blocks.pastel_network.nodes.PastelNetworkNodeBlock; -import de.dafuqs.spectrum.blocks.pedestal.BuiltinPedestalVariant; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlock; -import de.dafuqs.spectrum.blocks.pedestal.PedestalBlockItem; -import de.dafuqs.spectrum.blocks.potion_workshop.PotionWorkshopBlock; -import de.dafuqs.spectrum.blocks.present.PresentBlock; -import de.dafuqs.spectrum.blocks.present.PresentItem; +import de.dafuqs.spectrum.blocks.mob_head.*; +import de.dafuqs.spectrum.blocks.particle_spawner.*; +import de.dafuqs.spectrum.blocks.pastel_network.nodes.*; +import de.dafuqs.spectrum.blocks.pedestal.*; +import de.dafuqs.spectrum.blocks.potion_workshop.*; +import de.dafuqs.spectrum.blocks.present.*; import de.dafuqs.spectrum.blocks.redstone.*; -import de.dafuqs.spectrum.blocks.rock_candy.RockCandy; -import de.dafuqs.spectrum.blocks.rock_candy.SugarStickBlock; -import de.dafuqs.spectrum.blocks.shooting_star.ShootingStarBlock; -import de.dafuqs.spectrum.blocks.shooting_star.ShootingStarItem; -import de.dafuqs.spectrum.blocks.spirit_instiller.SpiritInstillerBlock; +import de.dafuqs.spectrum.blocks.rock_candy.*; +import de.dafuqs.spectrum.blocks.shooting_star.*; +import de.dafuqs.spectrum.blocks.spirit_instiller.*; import de.dafuqs.spectrum.blocks.spirit_sallow.*; import de.dafuqs.spectrum.blocks.structure.*; -import de.dafuqs.spectrum.blocks.titration_barrel.TitrationBarrelBlock; -import de.dafuqs.spectrum.blocks.upgrade.UpgradeBlock; -import de.dafuqs.spectrum.blocks.upgrade.UpgradeBlockItem; -import de.dafuqs.spectrum.blocks.upgrade.Upgradeable; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.entity.entity.LivingMarkerEntity; -import de.dafuqs.spectrum.enums.BuiltinGemstoneColor; -import de.dafuqs.spectrum.items.IncandescentAmalgamItem; -import de.dafuqs.spectrum.items.conditional.FourLeafCloverItem; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.color.ItemColors; -import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; -import net.fabricmc.fabric.api.item.v1.FabricItemSettings; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.fabricmc.fabric.api.object.builder.v1.block.FabricMaterialBuilder; +import de.dafuqs.spectrum.blocks.titration_barrel.*; +import de.dafuqs.spectrum.blocks.upgrade.*; +import de.dafuqs.spectrum.blocks.weathering.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.enums.*; +import de.dafuqs.spectrum.items.*; +import de.dafuqs.spectrum.items.conditional.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.color.*; +import net.fabricmc.fabric.api.blockrenderlayer.v1.*; +import net.fabricmc.fabric.api.item.v1.*; +import net.fabricmc.fabric.api.object.builder.v1.block.*; import net.minecraft.block.*; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.mob.VexEntity; +import net.minecraft.block.AbstractBlock.*; +import net.minecraft.client.render.*; +import net.minecraft.entity.*; +import net.minecraft.entity.effect.*; +import net.minecraft.entity.mob.*; import net.minecraft.entity.projectile.*; -import net.minecraft.entity.projectile.thrown.SnowballEntity; -import net.minecraft.item.BlockItem; -import net.minecraft.particle.ParticleTypes; -import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; +import net.minecraft.entity.projectile.thrown.*; +import net.minecraft.item.*; +import net.minecraft.particle.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; import net.minecraft.state.property.Properties; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Rarity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Position; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.BlockView; -import net.minecraft.world.explosion.Explosion; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; +import net.minecraft.text.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.intprovider.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import net.minecraft.world.explosion.*; +import net.minecraft.world.gen.feature.*; +import org.jetbrains.annotations.*; -import java.util.Collection; -import java.util.Locale; +import java.util.*; +import java.util.function.*; -import static de.dafuqs.spectrum.SpectrumCommon.locate; -import static de.dafuqs.spectrum.registries.SpectrumItems.Tab; +import static de.dafuqs.spectrum.SpectrumCommon.*; +import static de.dafuqs.spectrum.registries.SpectrumItems.*; public class SpectrumBlocks { @@ -133,6 +96,10 @@ public class SpectrumBlocks { public static final Block PEDESTAL_ONYX = new PedestalBlock(PEDESTAL_SETTINGS, BuiltinPedestalVariant.ONYX); public static final Block PEDESTAL_MOONSTONE = new PedestalBlock(PEDESTAL_SETTINGS, BuiltinPedestalVariant.MOONSTONE); + private static final FabricBlockSettings FUSION_SHINE_BLOCK_SETTINGS = FabricBlockSettings.of(Material.STONE).strength(5.0F, 20.0F).requiresTool().nonOpaque().luminance(value -> value.get(FusionShrineBlock.LIGHT_LEVEL)); + public static final Block FUSION_SHRINE_BASALT = new FusionShrineBlock(FUSION_SHINE_BLOCK_SETTINGS); + public static final Block FUSION_SHRINE_CALCITE = new FusionShrineBlock(FUSION_SHINE_BLOCK_SETTINGS); + public static final Block ENCHANTER = new EnchanterBlock(FabricBlockSettings.of(Material.STONE).strength(5.0F, 8.0F).nonOpaque()); public static final Block ITEM_BOWL_BASALT = new ItemBowlBlock(FabricBlockSettings.of(Material.STONE).hardness(3.0f).nonOpaque()); public static final Block ITEM_BOWL_CALCITE = new ItemBowlBlock(FabricBlockSettings.of(Material.STONE).hardness(3.0f).nonOpaque()); @@ -144,25 +111,25 @@ public class SpectrumBlocks { public static final Block MEMORY = new MemoryBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.0F).nonOpaque().ticksRandomly()); // GEMS - public static final Block TOPAZ_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.TOPAZ_CLUSTER).luminance(6)); + public static final Block TOPAZ_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(SpectrumBlockSoundGroups.TOPAZ_CLUSTER).luminance(6)); public static final Block LARGE_TOPAZ_BUD = new AmethystClusterBlock(5, 3, FabricBlockSettings.copyOf(TOPAZ_CLUSTER).sounds(SpectrumBlockSoundGroups.LARGE_TOPAZ_BUD).luminance(6)); public static final Block MEDIUM_TOPAZ_BUD = new AmethystClusterBlock(4, 3, FabricBlockSettings.copyOf(TOPAZ_CLUSTER).sounds(SpectrumBlockSoundGroups.MEDIUM_TOPAZ_BUD).luminance(4)); public static final Block SMALL_TOPAZ_BUD = new AmethystClusterBlock(3, 4, FabricBlockSettings.copyOf(TOPAZ_CLUSTER).sounds(SpectrumBlockSoundGroups.SMALL_TOPAZ_BUD).luminance(2)); public static final Block BUDDING_TOPAZ = new SpectrumBuddingBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).ticksRandomly().sounds(SpectrumBlockSoundGroups.TOPAZ_BLOCK).requiresTool(), SMALL_TOPAZ_BUD, MEDIUM_TOPAZ_BUD, LARGE_TOPAZ_BUD, TOPAZ_CLUSTER, SpectrumSoundEvents.BLOCK_TOPAZ_BLOCK_HIT, SpectrumSoundEvents.BLOCK_TOPAZ_BLOCK_CHIME); public static final Block TOPAZ_BLOCK = new SpectrumGemstoneBlock(FabricBlockSettings.of(Material.AMETHYST, MapColor.BLUE).hardness(1.5F).sounds(SpectrumBlockSoundGroups.TOPAZ_BLOCK).requiresTool(), SpectrumSoundEvents.BLOCK_TOPAZ_BLOCK_HIT, SpectrumSoundEvents.BLOCK_TOPAZ_BLOCK_CHIME); - public static final Block CITRINE_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.CITRINE_CLUSTER).luminance(7)); + public static final Block CITRINE_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(SpectrumBlockSoundGroups.CITRINE_CLUSTER).luminance(7)); public static final Block LARGE_CITRINE_BUD = new AmethystClusterBlock(5, 3, FabricBlockSettings.copyOf(CITRINE_CLUSTER).sounds(SpectrumBlockSoundGroups.LARGE_CITRINE_BUD).luminance(7)); public static final Block MEDIUM_CITRINE_BUD = new AmethystClusterBlock(4, 3, FabricBlockSettings.copyOf(CITRINE_CLUSTER).sounds(SpectrumBlockSoundGroups.MEDIUM_CITRINE_BUD).luminance(5)); public static final Block SMALL_CITRINE_BUD = new AmethystClusterBlock(3, 4, FabricBlockSettings.copyOf(CITRINE_CLUSTER).sounds(SpectrumBlockSoundGroups.SMALL_CITRINE_BUD).luminance(3)); public static final Block BUDDING_CITRINE = new SpectrumBuddingBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).ticksRandomly().sounds(SpectrumBlockSoundGroups.CITRINE_BLOCK).requiresTool(), SMALL_CITRINE_BUD, MEDIUM_CITRINE_BUD, LARGE_CITRINE_BUD, CITRINE_CLUSTER, SpectrumSoundEvents.BLOCK_CITRINE_BLOCK_HIT, SpectrumSoundEvents.BLOCK_CITRINE_BLOCK_CHIME); public static final Block CITRINE_BLOCK = new SpectrumGemstoneBlock(FabricBlockSettings.of(Material.AMETHYST, MapColor.YELLOW).hardness(1.5f).sounds(SpectrumBlockSoundGroups.CITRINE_BLOCK).requiresTool(), SpectrumSoundEvents.BLOCK_CITRINE_BLOCK_HIT, SpectrumSoundEvents.BLOCK_CITRINE_BLOCK_CHIME); - public static final Block ONYX_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.ONYX_CLUSTER).luminance(3)); + public static final Block ONYX_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(SpectrumBlockSoundGroups.ONYX_CLUSTER).luminance(3)); public static final Block LARGE_ONYX_BUD = new AmethystClusterBlock(5, 3, FabricBlockSettings.copyOf(ONYX_CLUSTER).sounds(SpectrumBlockSoundGroups.LARGE_ONYX_BUD).luminance(5)); public static final Block MEDIUM_ONYX_BUD = new AmethystClusterBlock(4, 3, FabricBlockSettings.copyOf(ONYX_CLUSTER).sounds(SpectrumBlockSoundGroups.MEDIUM_ONYX_BUD).luminance(3)); public static final Block SMALL_ONYX_BUD = new AmethystClusterBlock(3, 4, FabricBlockSettings.copyOf(ONYX_CLUSTER).sounds(SpectrumBlockSoundGroups.SMALL_ONYX_BUD).luminance(1)); public static final Block BUDDING_ONYX = new SpectrumBuddingBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).ticksRandomly().sounds(SpectrumBlockSoundGroups.ONYX_BLOCK).requiresTool(), SMALL_ONYX_BUD, MEDIUM_ONYX_BUD, LARGE_ONYX_BUD, ONYX_CLUSTER, SpectrumSoundEvents.BLOCK_ONYX_BLOCK_HIT, SpectrumSoundEvents.BLOCK_ONYX_BLOCK_CHIME); public static final Block ONYX_BLOCK = new SpectrumGemstoneBlock(FabricBlockSettings.of(Material.AMETHYST, MapColor.BLACK).hardness(1.5F).sounds(SpectrumBlockSoundGroups.ONYX_BLOCK).requiresTool(), SpectrumSoundEvents.BLOCK_ONYX_BLOCK_HIT, SpectrumSoundEvents.BLOCK_ONYX_BLOCK_CHIME); - public static final Block MOONSTONE_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.MOONSTONE_CLUSTER).luminance(15)); + public static final Block MOONSTONE_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(SpectrumBlockSoundGroups.MOONSTONE_CLUSTER).luminance(15)); public static final Block LARGE_MOONSTONE_BUD = new AmethystClusterBlock(5, 3, FabricBlockSettings.copyOf(MOONSTONE_CLUSTER).sounds(SpectrumBlockSoundGroups.LARGE_MOONSTONE_BUD).luminance(10)); public static final Block MEDIUM_MOONSTONE_BUD = new AmethystClusterBlock(4, 3, FabricBlockSettings.copyOf(MOONSTONE_CLUSTER).sounds(SpectrumBlockSoundGroups.MEDIUM_MOONSTONE_BUD).luminance(8)); public static final Block SMALL_MOONSTONE_BUD = new AmethystClusterBlock(3, 4, FabricBlockSettings.copyOf(MOONSTONE_CLUSTER).sounds(SpectrumBlockSoundGroups.SMALL_MOONSTONE_BUD).luminance(6)); @@ -170,32 +137,97 @@ public class SpectrumBlocks { public static final Block MOONSTONE_BLOCK = new SpectrumGemstoneBlock(FabricBlockSettings.of(Material.AMETHYST, MapColor.WHITE).hardness(1.5F).sounds(SpectrumBlockSoundGroups.MOONSTONE_BLOCK).requiresTool(), SpectrumSoundEvents.BLOCK_MOONSTONE_BLOCK_HIT, SpectrumSoundEvents.BLOCK_MOONSTONE_BLOCK_CHIME); public static final Block SPECTRAL_SHARD_BLOCK = new SpectrumGemstoneBlock(FabricBlockSettings.of(Material.AMETHYST, MapColor.DIAMOND_BLUE).hardness(1.5F).sounds(SpectrumBlockSoundGroups.SPECTRAL_BLOCK).requiresTool(), SpectrumSoundEvents.SPECTRAL_BLOCK_HIT, SpectrumSoundEvents.SPECTRAL_BLOCK_CHIME); - public static final Block BEDROCK_STORAGE_BLOCK = new BlockWithTooltip(FabricBlockSettings.of(Material.METAL, MapColor.GRAY).requiresTool().strength(100.0F, 3600.0F), new TranslatableText("spectrum.tooltip.dragon_and_wither_immune")); + public static final Block BEDROCK_STORAGE_BLOCK = new BlockWithTooltip(FabricBlockSettings.of(Material.METAL, MapColor.GRAY).requiresTool().strength(100.0F, 3600.0F), Text.translatable("spectrum.tooltip.dragon_and_wither_immune")); - public static final Block BISMUTH_CLUSTER = new BismuthClusterBlock(9, 3, null, FabricBlockSettings.of(Material.AMETHYST).mapColor(MapColor.DARK_AQUA).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.CHAIN)); + public static final Block BISMUTH_CLUSTER = new BismuthClusterBlock(9, 3, null, FabricBlockSettings.of(Material.AMETHYST).mapColor(MapColor.DARK_AQUA).hardness(1.5F).nonOpaque().sounds(BlockSoundGroup.CHAIN)); public static final Block LARGE_BISMUTH_BUD = new BismuthClusterBlock(5, 3, BISMUTH_CLUSTER.getDefaultState(), FabricBlockSettings.copyOf(TOPAZ_CLUSTER).mapColor(MapColor.DARK_AQUA).sounds(BlockSoundGroup.CHAIN)); public static final Block SMALL_BISMUTH_BUD = new BismuthClusterBlock(3, 4, LARGE_BISMUTH_BUD.getDefaultState(), FabricBlockSettings.copyOf(TOPAZ_CLUSTER).mapColor(MapColor.DARK_AQUA).sounds(BlockSoundGroup.CHAIN)); - public static final Block BISMUTH_BLOCK = new Block(FabricBlockSettings.of(Material.METAL, MapColor.DARK_AQUA).requiresTool().strength(20.0F).sounds(BlockSoundGroup.CHAIN)); + public static final Block BISMUTH_BLOCK = new Block(FabricBlockSettings.of(Material.METAL, MapColor.DARK_AQUA).strength(20.0F).sounds(BlockSoundGroup.CHAIN)); public static final Block MALACHITE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.IRON_ORE).requiresTool(), UniformIntProvider.create(7, 11), locate("milestones/reveal_malachite"), Blocks.STONE.getDefaultState()); public static final Block DEEPSLATE_MALACHITE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.IRON_ORE).requiresTool(), UniformIntProvider.create(7, 11), locate("milestones/reveal_malachite"), Blocks.DEEPSLATE.getDefaultState()); - public static final Block MALACHITE_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.CHAIN)); - public static final Block LARGE_MALACHITE_BUD = new AmethystClusterBlock(5, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.CHAIN)); - public static final Block SMALL_MALACHITE_BUD = new AmethystClusterBlock(3, 4, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.CHAIN)); + public static final Block MALACHITE_CLUSTER = new AmethystClusterBlock(7, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(BlockSoundGroup.CHAIN)); + public static final Block LARGE_MALACHITE_BUD = new AmethystClusterBlock(5, 3, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(BlockSoundGroup.CHAIN)); + public static final Block SMALL_MALACHITE_BUD = new AmethystClusterBlock(3, 4, FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().sounds(BlockSoundGroup.CHAIN)); public static final Block MALACHITE_BLOCK = new Block(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).sounds(BlockSoundGroup.CHAIN)); // DD BLOCKS - public static final Block BLACKSLAG = new Block(FabricBlockSettings.copyOf(Blocks.DEEPSLATE).strength(6.0F, 5.0F)); + public static final Block BLACKSLAG = new PillarBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE).strength(5.0F, 7.0F)); + public static final Block INFESTED_BLACKSLAG = new InfestedBlock(BLACKSLAG, AbstractBlock.Settings.of(Material.ORGANIC_PRODUCT)); + public static final Block COBBLED_BLACKSLAG = new Block(FabricBlockSettings.copyOf(Blocks.DEEPSLATE).strength(6.0F, 7.0F)); + public static final Block COBBLED_BLACKSLAG_STAIRS = new StairsBlock(COBBLED_BLACKSLAG.getDefaultState(), AbstractBlock.Settings.copy(COBBLED_BLACKSLAG)); + public static final Block COBBLED_BLACKSLAG_SLAB = new SlabBlock(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG)); + public static final Block COBBLED_BLACKSLAG_WALL = new WallBlock(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG)); + public static final Block POLISHED_BLACKSLAG = new Block(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG).sounds(BlockSoundGroup.POLISHED_DEEPSLATE)); + public static final Block POLISHED_BLACKSLAG_STAIRS = new StairsBlock(POLISHED_BLACKSLAG.getDefaultState(), AbstractBlock.Settings.copy(POLISHED_BLACKSLAG)); + public static final Block POLISHED_BLACKSLAG_SLAB = new SlabBlock(AbstractBlock.Settings.copy(POLISHED_BLACKSLAG)); + public static final Block POLISHED_BLACKSLAG_WALL = new WallBlock(AbstractBlock.Settings.copy(POLISHED_BLACKSLAG)); + public static final Block BLACKSLAG_TILES = new Block(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG).sounds(BlockSoundGroup.DEEPSLATE_TILES)); + public static final Block BLACKSLAG_TILE_STAIRS = new StairsBlock(BLACKSLAG_TILES.getDefaultState(), AbstractBlock.Settings.copy(BLACKSLAG_TILES)); + public static final Block BLACKSLAG_TILE_SLAB = new SlabBlock(AbstractBlock.Settings.copy(BLACKSLAG_TILES)); + public static final Block BLACKSLAG_TILE_WALL = new WallBlock(AbstractBlock.Settings.copy(BLACKSLAG_TILES)); + public static final Block BLACKSLAG_BRICKS = new Block(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG).sounds(BlockSoundGroup.DEEPSLATE_BRICKS)); + public static final Block BLACKSLAG_BRICK_STAIRS = new StairsBlock(BLACKSLAG_BRICKS.getDefaultState(), AbstractBlock.Settings.copy(BLACKSLAG_BRICKS)); + public static final Block BLACKSLAG_BRICK_SLAB = new SlabBlock(AbstractBlock.Settings.copy(BLACKSLAG_BRICKS)); + public static final Block BLACKSLAG_BRICK_WALL = new WallBlock(AbstractBlock.Settings.copy(BLACKSLAG_BRICKS)); + public static final Block POLISHED_BLACKSLAG_PILLAR = new PillarBlock(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG).sounds(BlockSoundGroup.DEEPSLATE_BRICKS)); + + public static final Block CHISELED_POLISHED_BLACKSLAG = new Block(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG).sounds(BlockSoundGroup.DEEPSLATE_BRICKS)); + public static final Block ANCIENT_CHISELED_POLISHED_BLACKSLAG = new Block(AbstractBlock.Settings.copy(COBBLED_BLACKSLAG).sounds(BlockSoundGroup.DEEPSLATE_BRICKS)); + public static final Block CRACKED_BLACKSLAG_BRICKS = new Block(AbstractBlock.Settings.copy(BLACKSLAG_BRICKS)); + public static final Block CRACKED_BLACKSLAG_TILES = new Block(AbstractBlock.Settings.copy(BLACKSLAG_TILES)); + public static final Block POLISHED_BLACKSLAG_BUTTON = new StoneButtonBlock(AbstractBlock.Settings.of(Material.DECORATION).noCollision().strength(0.5F)); + public static final Block POLISHED_BLACKSLAG_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.MOBS, AbstractBlock.Settings.of(Material.STONE, MapColor.BLACK).requiresTool().noCollision().strength(0.5F)); + + + public static final Block SHALE_CLAY = new PillarBlock(AbstractBlock.Settings.copy(BLACKSLAG).sounds(BlockSoundGroup.MUD_BRICKS)); + + public static final Block POLISHED_SHALE_CLAY = new WeatheringBlock(Weathering.WeatheringLevel.UNAFFECTED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_POLISHED_SHALE_CLAY = new WeatheringBlock(Weathering.WeatheringLevel.EXPOSED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_POLISHED_SHALE_CLAY = new WeatheringBlock(Weathering.WeatheringLevel.WEATHERED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block POLISHED_SHALE_CLAY_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.UNAFFECTED, POLISHED_SHALE_CLAY.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block POLISHED_SHALE_CLAY_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.UNAFFECTED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_POLISHED_SHALE_CLAY_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.EXPOSED, EXPOSED_POLISHED_SHALE_CLAY.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_POLISHED_SHALE_CLAY_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.EXPOSED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_POLISHED_SHALE_CLAY_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.WEATHERED, WEATHERED_POLISHED_SHALE_CLAY.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_POLISHED_SHALE_CLAY_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.WEATHERED, AbstractBlock.Settings.copy(SHALE_CLAY)); + + public static final Block SHALE_CLAY_BRICKS = new WeatheringBlock(Weathering.WeatheringLevel.UNAFFECTED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_SHALE_CLAY_BRICKS = new WeatheringBlock(Weathering.WeatheringLevel.EXPOSED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_SHALE_CLAY_BRICKS = new WeatheringBlock(Weathering.WeatheringLevel.WEATHERED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block SHALE_CLAY_BRICK_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.UNAFFECTED, SHALE_CLAY_BRICKS.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block SHALE_CLAY_BRICK_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.UNAFFECTED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_SHALE_CLAY_BRICK_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.EXPOSED, EXPOSED_SHALE_CLAY_BRICKS.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_SHALE_CLAY_BRICK_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.EXPOSED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_SHALE_CLAY_BRICK_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.WEATHERED, WEATHERED_SHALE_CLAY_BRICKS.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_SHALE_CLAY_BRICK_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.WEATHERED, AbstractBlock.Settings.copy(SHALE_CLAY)); + + public static final Block SHALE_CLAY_TILES = new WeatheringBlock(Weathering.WeatheringLevel.UNAFFECTED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_SHALE_CLAY_TILES = new WeatheringBlock(Weathering.WeatheringLevel.EXPOSED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_SHALE_CLAY_TILES = new WeatheringBlock(Weathering.WeatheringLevel.WEATHERED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block SHALE_CLAY_TILE_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.UNAFFECTED, SHALE_CLAY_TILES.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block SHALE_CLAY_TILE_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.UNAFFECTED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_SHALE_CLAY_TILE_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.EXPOSED, EXPOSED_SHALE_CLAY_TILES.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block EXPOSED_SHALE_CLAY_TILE_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.EXPOSED, AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_SHALE_CLAY_TILE_STAIRS = new WeatheringStairsBlock(Weathering.WeatheringLevel.WEATHERED, WEATHERED_SHALE_CLAY_TILES.getDefaultState(), AbstractBlock.Settings.copy(SHALE_CLAY)); + public static final Block WEATHERED_SHALE_CLAY_TILE_SLAB = new WeatheringSlabBlock(Weathering.WeatheringLevel.WEATHERED, AbstractBlock.Settings.copy(SHALE_CLAY)); + + + public static final Block SLUSH = new PillarBlock(AbstractBlock.Settings.copy(BLACKSLAG).sounds(BlockSoundGroup.MUDDY_MANGROVE_ROOTS)); + public static final Block BLACK_MATERIA = new BlackMateriaBlock(FabricBlockSettings.copyOf(Blocks.SAND).ticksRandomly().breakInstantly()); - public static final Block SAG_LEAF = new BlackSludgePlantBlock(FabricBlockSettings.copyOf(Blocks.POPPY)); - public static final Block SAG_BUBBLE = new BlackSludgePlantBlock(FabricBlockSettings.copyOf(Blocks.POPPY)); - public static final Block SMALL_SAG_BUBBLE = new BlackSludgePlantBlock(FabricBlockSettings.copyOf(Blocks.POPPY)); - - + public static final Block BLACK_SLUDGE = new Block(FabricBlockSettings.copyOf(Blocks.SAND).ticksRandomly().breakInstantly()); + public static final Block SAG_LEAF = new BlackSludgePlantBlock(FabricBlockSettings.copyOf(Blocks.GRASS).mapColor(MapColor.TERRACOTTA_BLACK)); + public static final Block SAG_BUBBLE = new BlackSludgePlantBlock(FabricBlockSettings.copyOf(Blocks.GRASS).mapColor(MapColor.TERRACOTTA_BLACK)); + public static final Block SMALL_SAG_BUBBLE = new BlackSludgePlantBlock(FabricBlockSettings.copyOf(Blocks.GRASS).mapColor(MapColor.TERRACOTTA_BLACK)); + + public static final PrimordialFireBlock PRIMORDIAL_FIRE = new PrimordialFireBlock(AbstractBlock.Settings.of(Material.FIRE, MapColor.PURPLE).noCollision().breakInstantly().luminance((state) -> 10).sounds(BlockSoundGroup.WOOL)); + public static final Block SMOOTH_BASALT_SLAB = new SlabBlock(FabricBlockSettings.copyOf(Blocks.TUFF)); public static final Block SMOOTH_BASALT_WALL = new WallBlock(FabricBlockSettings.copyOf(Blocks.TUFF)); public static final Block SMOOTH_BASALT_STAIRS = new SpectrumStairsBlock(Blocks.TUFF.getDefaultState(), FabricBlockSettings.copyOf(Blocks.TUFF)); - public static final Block POLISHED_BASALT = new Block(FabricBlockSettings.of(Material.STONE).strength(2.0F, 5.0F)); + + public static final Block POLISHED_BASALT = new Block(FabricBlockSettings.of(Material.STONE).strength(2.0F, 5.0F).requiresTool()); public static final Block POLISHED_BASALT_PILLAR = new PillarBlock(FabricBlockSettings.copyOf(POLISHED_BASALT)); public static final Block POLISHED_BASALT_CREST = new CardinalFacingBlock(FabricBlockSettings.copyOf(POLISHED_BASALT)); public static final Block CHISELED_POLISHED_BASALT = new Block(FabricBlockSettings.copyOf(POLISHED_BASALT)); @@ -212,6 +244,18 @@ public class SpectrumBlocks { public static final Block CITRINE_CHISELED_BASALT = new Block(FabricBlockSettings.copyOf(BASALT_BRICKS).luminance(7)); public static final Block ONYX_CHISELED_BASALT = new Block(FabricBlockSettings.copyOf(BASALT_BRICKS).luminance(3)); public static final Block MOONSTONE_CHISELED_BASALT = new PillarBlock(FabricBlockSettings.copyOf(BASALT_BRICKS).luminance(12)); + + public static final Block BASALT_TILES = new Block(FabricBlockSettings.copyOf(POLISHED_BASALT)); + public static final Block AZURITE_CHISELED_BASALT = new Block(FabricBlockSettings.copyOf(CHISELED_POLISHED_BASALT)); + public static final Block MALACHITE_CHISELED_BASALT = new Block(FabricBlockSettings.copyOf(CHISELED_POLISHED_BASALT)); + public static final Block CRACKED_BASALT_TILES = new Block(FabricBlockSettings.copyOf(BASALT_TILES)); + public static final Block BASALT_TILE_STAIRS = new SpectrumStairsBlock(BASALT_TILES.getDefaultState(), FabricBlockSettings.copyOf(BASALT_TILES)); + public static final Block BASALT_TILE_SLAB = new SlabBlock(FabricBlockSettings.copyOf(BASALT_TILES)); + public static final Block BASALT_TILE_WALL = new WallBlock(FabricBlockSettings.copyOf(BASALT_TILES)); + public static final Block CRACKED_BASALT_BRICKS = new Block(FabricBlockSettings.copyOf(BASALT_BRICKS)); + public static final Block POLISHED_BASALT_BUTTON = new StoneButtonBlock(AbstractBlock.Settings.of(Material.DECORATION).noCollision().strength(0.5F)); + public static final Block POLISHED_BASALT_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.MOBS, AbstractBlock.Settings.of(Material.STONE, MapColor.BLACK).requiresTool().noCollision().strength(0.5F)); + public static final Block CALCITE_SLAB = new SlabBlock(FabricBlockSettings.copyOf(Blocks.CALCITE)); public static final Block CALCITE_WALL = new WallBlock(FabricBlockSettings.copyOf(Blocks.CALCITE)); public static final Block CALCITE_STAIRS = new SpectrumStairsBlock(Blocks.CALCITE.getDefaultState(), FabricBlockSettings.copyOf(Blocks.CALCITE)); @@ -233,6 +277,17 @@ public class SpectrumBlocks { public static final Block ONYX_CHISELED_CALCITE = new Block(FabricBlockSettings.copyOf(BASALT_BRICKS).luminance(5).luminance(3)); public static final Block MOONSTONE_CHISELED_CALCITE = new PillarBlock(FabricBlockSettings.copyOf(BASALT_BRICKS).luminance(5).luminance(12)); + public static final Block CALCITE_TILES = new Block(FabricBlockSettings.copyOf(POLISHED_CALCITE)); + public static final Block AZURITE_CHISELED_CALCITE = new Block(FabricBlockSettings.copyOf(CHISELED_POLISHED_CALCITE)); + public static final Block MALACHITE_CHISELED_CALCITE = new Block(FabricBlockSettings.copyOf(CHISELED_POLISHED_CALCITE)); + public static final Block CALCITE_TILE_STAIRS = new SpectrumStairsBlock(CALCITE_TILES.getDefaultState(), FabricBlockSettings.copyOf(CALCITE_TILES)); + public static final Block CALCITE_TILE_SLAB = new SlabBlock(FabricBlockSettings.copyOf(CALCITE_TILES)); + public static final Block CALCITE_TILE_WALL = new WallBlock(FabricBlockSettings.copyOf(CALCITE_TILES)); + public static final Block CRACKED_CALCITE_TILES = new Block(FabricBlockSettings.copyOf(CALCITE_TILES)); + public static final Block CRACKED_CALCITE_BRICKS = new Block(FabricBlockSettings.copyOf(CALCITE_BRICKS)); + public static final Block POLISHED_CALCITE_BUTTON = new StoneButtonBlock(AbstractBlock.Settings.of(Material.DECORATION).noCollision().strength(0.5F)); + public static final Block POLISHED_CALCITE_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.MOBS, AbstractBlock.Settings.of(Material.STONE, MapColor.BLACK).requiresTool().noCollision().strength(0.5F)); + // GEMSTONE LAMPS public static final Block TOPAZ_CALCITE_LAMP = new Block(FabricBlockSettings.copyOf(POLISHED_BASALT).luminance(15).nonOpaque()); public static final Block AMETHYST_CALCITE_LAMP = new Block(FabricBlockSettings.copyOf(POLISHED_BASALT).luminance(15).nonOpaque()); @@ -269,14 +324,14 @@ public class SpectrumBlocks { public static final Block MOONSTONE_DECOSTONE = new DecoStoneBlock(FabricBlockSettings.copyOf(MOONSTONE_BLOCK).hardness(3.0F).sounds(SpectrumBlockSoundGroups.MOONSTONE_CLUSTER).nonOpaque()); // PLAYER GLASS - public static final Block VANILLA_PLAYER_ONLY_GLASS = new AlternatePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(Blocks.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), Blocks.GLASS, false); - public static final Block TINTED_PLAYER_ONLY_GLASS = new AlternatePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(Blocks.TINTED_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), Blocks.TINTED_GLASS, true); - public static final Block RADIANT_PLAYER_ONLY_GLASS = new AlternatePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.RADIANT_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never).luminance((state) -> 15), SpectrumBlocks.RADIANT_GLASS, false); - public static final Block TOPAZ_PLAYER_ONLY_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.TOPAZ_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.CYAN); - public static final Block AMETHYST_PLAYER_ONLY_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.AMETHYST_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.MAGENTA); - public static final Block CITRINE_PLAYER_ONLY_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.CITRINE_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.YELLOW); - public static final Block ONYX_PLAYER_ONLY_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.ONYX_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.BLACK); - public static final Block MOONSTONE_PLAYER_ONLY_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.MOONSTONE_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.WHITE); + public static final Block VANILLA_SEMI_PERMEABLE_GLASS = new AlternatePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(Blocks.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), Blocks.GLASS, false); + public static final Block TINTED_SEMI_PERMEABLE_GLASS = new AlternatePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(Blocks.TINTED_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), Blocks.TINTED_GLASS, true); + public static final Block RADIANT_SEMI_PERMEABLE_GLASS = new AlternatePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.RADIANT_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never).luminance((state) -> 15), SpectrumBlocks.RADIANT_GLASS, false); + public static final Block TOPAZ_SEMI_PERMEABLE_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.TOPAZ_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.CYAN); + public static final Block AMETHYST_SEMI_PERMEABLE_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.AMETHYST_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.MAGENTA); + public static final Block CITRINE_SEMI_PERMEABLE_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.CITRINE_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.YELLOW); + public static final Block ONYX_SEMI_PERMEABLE_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.ONYX_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.BLACK); + public static final Block MOONSTONE_SEMI_PERMEABLE_GLASS = new GemstonePlayerOnlyGlassBlock(FabricBlockSettings.copyOf(SpectrumBlocks.MOONSTONE_GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never), BuiltinGemstoneColor.WHITE); // MELON public static final Block GLISTERING_MELON = new GlisteringMelonBlock(FabricBlockSettings.copyOf(Blocks.MELON)); @@ -296,17 +351,20 @@ public class SpectrumBlocks { // DECAY public static final Block FADING = new FadingBlock(FabricBlockSettings.of(SpectrumBlockMaterials.DECAY, MapColor.BLACK).ticksRandomly().strength(0.5F, 0.5F).allowsSpawning((state, world, pos, type) -> false), SpectrumBlockTags.FADING_CONVERSIONS, null, 1, 1F); public static final Block FAILING = new FailingBlock(FabricBlockSettings.copyOf(FADING).strength(20.0F, 50.0F), null, SpectrumBlockTags.FAILING_SAFE, 2, 2.5F); - public static final Block RUIN = new TerrorBlock(FabricBlockSettings.copyOf(FADING).strength(100.0F, 3600000.0F), null, SpectrumBlockTags.RUIN_SAFE, 3, 5F); - public static final Block TERROR = new TerrorBlock(FabricBlockSettings.copyOf(FADING).strength(100.0F, 3600000.0F), null, SpectrumBlockTags.TERROR_SAFE, 4, 7.5F); + public static final Block RUIN = new RuinBlock(FabricBlockSettings.copyOf(FADING).strength(100.0F, 3600000.0F), null, SpectrumBlockTags.RUIN_SAFE, 3, 5F); + public static final Block FORFEITURE = new ForfeitureBlock(FabricBlockSettings.copyOf(FADING).strength(100.0F, 3600000.0F), null, SpectrumBlockTags.FORFEITURE_SAFE, 4, 7.5F); public static final Block DECAY_AWAY = new DecayAwayBlock(FabricBlockSettings.copyOf(Blocks.DIRT)); - + + + private static AbstractBlock.Settings fluid(Material material) { + return AbstractBlock.Settings.of(material).noCollision().strength(100.0F).dropsNothing(); + } + // FLUIDS - public static final Material LIQUID_CRYSTAL_MATERIAL = (new FabricMaterialBuilder(MapColor.LIGHT_GRAY)).allowsMovement().lightPassesThrough().notSolid().destroyedByPiston().replaceable().liquid().build(); - public static final Material MUD_MATERIAL = (new FabricMaterialBuilder(MapColor.TERRACOTTA_BROWN)).allowsMovement().lightPassesThrough().notSolid().destroyedByPiston().replaceable().liquid().build(); - public static final Material MIDNIGHT_SOLUTION_MATERIAL = (new FabricMaterialBuilder(MapColor.DARK_AQUA)).allowsMovement().lightPassesThrough().notSolid().destroyedByPiston().replaceable().liquid().build(); - public static final Block LIQUID_CRYSTAL = new LiquidCrystalFluidBlock(SpectrumFluids.LIQUID_CRYSTAL, AbstractBlock.Settings.of(LIQUID_CRYSTAL_MATERIAL).noCollision().strength(100.0F).dropsNothing().luminance((state) -> 8)); - public static final Block MUD = new MudFluidBlock(SpectrumFluids.MUD, AbstractBlock.Settings.of(MUD_MATERIAL).noCollision().strength(100.0F).dropsNothing()); - public static final Block MIDNIGHT_SOLUTION = new MidnightSolutionFluidBlock(SpectrumFluids.MIDNIGHT_SOLUTION, AbstractBlock.Settings.of(MIDNIGHT_SOLUTION_MATERIAL).noCollision().strength(100.0F).dropsNothing()); + public static final Block LIQUID_CRYSTAL = new LiquidCrystalFluidBlock(SpectrumFluids.LIQUID_CRYSTAL, fluid(SpectrumBlockMaterials.LIQUID_CRYSTAL).luminance((state) -> 11)); + public static final Block MUD = new MudFluidBlock(SpectrumFluids.MUD, fluid(SpectrumBlockMaterials.MUD)); + public static final Block MIDNIGHT_SOLUTION = new MidnightSolutionFluidBlock(SpectrumFluids.MIDNIGHT_SOLUTION, fluid(SpectrumBlockMaterials.MIDNIGHT_SOLUTION)); + public static final Block DRAGONROT = new DragonrotFluidBlock(SpectrumFluids.DRAGONROT, fluid(SpectrumBlockMaterials.DRAGONROT).luminance((state) -> 15)); // ROCK CANDY public static final Block SUGAR_STICK = new SugarStickBlock(FabricBlockSettings.copyOf(Blocks.SMALL_AMETHYST_BUD).hardness(0.5F).luminance((state) -> 8 + state.get(Properties.AGE_2) * 3).ticksRandomly(), RockCandy.RockCandyVariant.SUGAR); @@ -317,12 +375,11 @@ public class SpectrumBlocks { public static final Block MOONSTONE_SUGAR_STICK = new SugarStickBlock(FabricBlockSettings.copyOf(SpectrumBlocks.SMALL_MOONSTONE_BUD).hardness(0.5F).luminance((state) -> 8 + state.get(Properties.AGE_2) * 3).ticksRandomly(), RockCandy.RockCandyVariant.MOONSTONE); // PASTEL NETWORK - public static final Block CONNECTION_NODE = new PastelNetworkNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.AMETHYST_CLUSTER), "block.spectrum.connection_node.tooltip"); - public static final Block PROVIDER_NODE = new PastelNetworkNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.AMETHYST_CLUSTER), "block.spectrum.provider_node.tooltip"); - public static final Block STORAGE_NODE = new PastelNetworkNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.TOPAZ_CLUSTER), "block.spectrum.storage_node.tooltip"); - public static final Block PUSHER_NODE = new PastelNetworkNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.CITRINE_CLUSTER), "block.spectrum.pusher_node.tooltip"); - public static final Block PULLER_NODE = new PastelNetworkNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.ONYX_CLUSTER), "block.spectrum.puller_node.tooltip"); - public static final Block INTERACTION_NODE = new Block(FabricBlockSettings.of(Material.AMETHYST).hardness(5.0F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.MOONSTONE_CLUSTER)); + public static final Block CONNECTION_NODE = new PastelNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.AMETHYST_CLUSTER), PastelNodeType.CONNECTION); + public static final Block PROVIDER_NODE = new PastelNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(BlockSoundGroup.AMETHYST_CLUSTER), PastelNodeType.PROVIDER); + public static final Block STORAGE_NODE = new PastelNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.TOPAZ_CLUSTER), PastelNodeType.STORAGE); + public static final Block SENDER_NODE = new PastelNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.CITRINE_CLUSTER), PastelNodeType.SENDER); + public static final Block GATHER_NODE = new PastelNodeBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.5F).nonOpaque().requiresTool().sounds(SpectrumBlockSoundGroups.ONYX_CLUSTER), PastelNodeType.GATHER); // ENERGY public static final Block COLOR_PICKER = new ColorPickerBlock(FabricBlockSettings.of(Material.STONE).hardness(3.0F).nonOpaque()); @@ -331,117 +388,244 @@ public class SpectrumBlocks { public static final Block CRYSTAL_APOTHECARY = new CrystalApothecaryBlock(FabricBlockSettings.of(Material.STONE).hardness(3.0F)); public static final Block BLACK_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.BLACK); - public static final Block BLACK_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.BLACK); - public static final Block BLACK_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.BLACK); - public static final Block BLACK_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.BLACK); - public static final Block BLACK_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.BLACK); - public static final Block BLACK_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.BLACK); - public static final Block BLACK_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.BLACK); + public static final Block BLACK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.BLACK); + public static final Block BLACK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.BLACK); + public static final Block BLACK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.BLACK); + public static final Block BLACK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.BLACK); + public static final Block BLACK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.BLACK); + public static final Block BLACK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.BLACK); public static final Block BLUE_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.BLUE); - public static final Block BLUE_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.BLUE); - public static final Block BLUE_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.BLUE); - public static final Block BLUE_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.BLUE); - public static final Block BLUE_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.BLUE); - public static final Block BLUE_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.BLUE); - public static final Block BLUE_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.BLUE); + public static final Block BLUE_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.BLUE); + public static final Block BLUE_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.BLUE); + public static final Block BLUE_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.BLUE); + public static final Block BLUE_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.BLUE); + public static final Block BLUE_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.BLUE); + public static final Block BLUE_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.BLUE); public static final Block BROWN_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.BROWN); - public static final Block BROWN_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.BROWN); - public static final Block BROWN_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.BROWN); - public static final Block BROWN_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.BROWN); - public static final Block BROWN_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.BROWN); - public static final Block BROWN_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.BROWN); - public static final Block BROWN_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.BROWN); + public static final Block BROWN_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.BROWN); + public static final Block BROWN_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.BROWN); + public static final Block BROWN_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.BROWN); + public static final Block BROWN_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.BROWN); + public static final Block BROWN_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.BROWN); + public static final Block BROWN_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.BROWN); public static final Block CYAN_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.CYAN); - public static final Block CYAN_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.CYAN); - public static final Block CYAN_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.CYAN); - public static final Block CYAN_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.CYAN); - public static final Block CYAN_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.CYAN); - public static final Block CYAN_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.CYAN); - public static final Block CYAN_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.CYAN); + public static final Block CYAN_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.CYAN); + public static final Block CYAN_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.CYAN); + public static final Block CYAN_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.CYAN); + public static final Block CYAN_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.CYAN); + public static final Block CYAN_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.CYAN); + public static final Block CYAN_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.CYAN); public static final Block GRAY_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.GRAY); - public static final Block GRAY_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.GRAY); - public static final Block GRAY_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.GRAY); - public static final Block GRAY_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.GRAY); - public static final Block GRAY_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.GRAY); - public static final Block GRAY_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.GRAY); - public static final Block GRAY_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.GRAY); + public static final Block GRAY_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.GRAY); + public static final Block GRAY_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.GRAY); + public static final Block GRAY_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.GRAY); + public static final Block GRAY_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.GRAY); + public static final Block GRAY_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.GRAY); + public static final Block GRAY_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.GRAY); public static final Block GREEN_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.GREEN); - public static final Block GREEN_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.GREEN); - public static final Block GREEN_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.GREEN); - public static final Block GREEN_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.GREEN); - public static final Block GREEN_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.GREEN); - public static final Block GREEN_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.GREEN); - public static final Block GREEN_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.GREEN); + public static final Block GREEN_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.GREEN); + public static final Block GREEN_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.GREEN); + public static final Block GREEN_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.GREEN); + public static final Block GREEN_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.GREEN); + public static final Block GREEN_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.GREEN); + public static final Block GREEN_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.GREEN); public static final Block LIGHT_BLUE_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.LIGHT_BLUE); - public static final Block LIGHT_BLUE_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.LIGHT_BLUE); - public static final Block LIGHT_BLUE_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.LIGHT_BLUE); - public static final Block LIGHT_BLUE_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.LIGHT_BLUE); - public static final Block LIGHT_BLUE_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.LIGHT_BLUE); - public static final Block LIGHT_BLUE_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.LIGHT_BLUE); - public static final Block LIGHT_BLUE_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.LIGHT_BLUE); + public static final Block LIGHT_BLUE_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.LIGHT_BLUE); + public static final Block LIGHT_BLUE_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.LIGHT_BLUE); + public static final Block LIGHT_BLUE_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.LIGHT_BLUE); + public static final Block LIGHT_BLUE_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.LIGHT_BLUE); + public static final Block LIGHT_BLUE_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.LIGHT_BLUE); + public static final Block LIGHT_BLUE_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.LIGHT_BLUE); public static final Block LIGHT_GRAY_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.LIGHT_GRAY); - public static final Block LIGHT_GRAY_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.LIGHT_GRAY); - public static final Block LIGHT_GRAY_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.LIGHT_GRAY); - public static final Block LIGHT_GRAY_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.LIGHT_GRAY); - public static final Block LIGHT_GRAY_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.LIGHT_GRAY); - public static final Block LIGHT_GRAY_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.LIGHT_GRAY); - public static final Block LIGHT_GRAY_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.LIGHT_GRAY); + public static final Block LIGHT_GRAY_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.LIGHT_GRAY); + public static final Block LIGHT_GRAY_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.LIGHT_GRAY); + public static final Block LIGHT_GRAY_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.LIGHT_GRAY); + public static final Block LIGHT_GRAY_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.LIGHT_GRAY); + public static final Block LIGHT_GRAY_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.LIGHT_GRAY); + public static final Block LIGHT_GRAY_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.LIGHT_GRAY); public static final Block LIME_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.LIME); - public static final Block LIME_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.LIME); - public static final Block LIME_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.LIME); - public static final Block LIME_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.LIME); - public static final Block LIME_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.LIME); - public static final Block LIME_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.LIME); - public static final Block LIME_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.LIME); + public static final Block LIME_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.LIME); + public static final Block LIME_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.LIME); + public static final Block LIME_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.LIME); + public static final Block LIME_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.LIME); + public static final Block LIME_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.LIME); + public static final Block LIME_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.LIME); public static final Block MAGENTA_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.MAGENTA); - public static final Block MAGENTA_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.MAGENTA); - public static final Block MAGENTA_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.MAGENTA); - public static final Block MAGENTA_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.MAGENTA); - public static final Block MAGENTA_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.MAGENTA); - public static final Block MAGENTA_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.MAGENTA); - public static final Block MAGENTA_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.MAGENTA); + public static final Block MAGENTA_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.MAGENTA); + public static final Block MAGENTA_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.MAGENTA); + public static final Block MAGENTA_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.MAGENTA); + public static final Block MAGENTA_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.MAGENTA); + public static final Block MAGENTA_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.MAGENTA); + public static final Block MAGENTA_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.MAGENTA); public static final Block ORANGE_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.ORANGE); - public static final Block ORANGE_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.ORANGE); - public static final Block ORANGE_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.ORANGE); - public static final Block ORANGE_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.ORANGE); - public static final Block ORANGE_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.ORANGE); - public static final Block ORANGE_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.ORANGE); - public static final Block ORANGE_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.ORANGE); + public static final Block ORANGE_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.ORANGE); + public static final Block ORANGE_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.ORANGE); + public static final Block ORANGE_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.ORANGE); + public static final Block ORANGE_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.ORANGE); + public static final Block ORANGE_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.ORANGE); + public static final Block ORANGE_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.ORANGE); public static final Block PINK_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.PINK); - public static final Block PINK_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.PINK); - public static final Block PINK_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.PINK); - public static final Block PINK_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.PINK); - public static final Block PINK_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.PINK); - public static final Block PINK_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.PINK); - public static final Block PINK_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.PINK); + public static final Block PINK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.PINK); + public static final Block PINK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.PINK); + public static final Block PINK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.PINK); + public static final Block PINK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.PINK); + public static final Block PINK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.PINK); + public static final Block PINK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.PINK); public static final Block PURPLE_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.PURPLE); - public static final Block PURPLE_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.PURPLE); - public static final Block PURPLE_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.PURPLE); - public static final Block PURPLE_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.PURPLE); - public static final Block PURPLE_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.PURPLE); - public static final Block PURPLE_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.PURPLE); - public static final Block PURPLE_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.PURPLE); + public static final Block PURPLE_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.PURPLE); + public static final Block PURPLE_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.PURPLE); + public static final Block PURPLE_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.PURPLE); + public static final Block PURPLE_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.PURPLE); + public static final Block PURPLE_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.PURPLE); + public static final Block PURPLE_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.PURPLE); public static final Block RED_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.RED); - public static final Block RED_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.RED); - public static final Block RED_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.RED); - public static final Block RED_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.RED); - public static final Block RED_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.RED); - public static final Block RED_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.RED); - public static final Block RED_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.RED); + public static final Block RED_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.RED); + public static final Block RED_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.RED); + public static final Block RED_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.RED); + public static final Block RED_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.RED); + public static final Block RED_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.RED); + public static final Block RED_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.RED); public static final Block WHITE_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.WHITE); - public static final Block WHITE_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.WHITE); - public static final Block WHITE_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.WHITE); - public static final Block WHITE_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.WHITE); - public static final Block WHITE_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.WHITE); - public static final Block WHITE_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.WHITE); - public static final Block WHITE_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.WHITE); + public static final Block WHITE_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.WHITE); + public static final Block WHITE_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.WHITE); + public static final Block WHITE_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.WHITE); + public static final Block WHITE_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.WHITE); + public static final Block WHITE_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.WHITE); + public static final Block WHITE_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.WHITE); public static final Block YELLOW_PLANKS = new ColoredPlankBlock(FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), DyeColor.YELLOW); - public static final Block YELLOW_PLANK_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.YELLOW); - public static final Block YELLOW_PLANK_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.YELLOW); - public static final Block YELLOW_PLANK_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.YELLOW); - public static final Block YELLOW_PLANK_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.YELLOW); - public static final Block YELLOW_PLANK_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.YELLOW); - public static final Block YELLOW_PLANK_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.YELLOW); + public static final Block YELLOW_STAIRS = new ColoredStairsBlock(BLACK_PLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), DyeColor.YELLOW); + public static final Block YELLOW_PRESSURE_PLATE = new ColoredPressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), DyeColor.YELLOW); + public static final Block YELLOW_FENCE = new ColoredFenceBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE), DyeColor.YELLOW); + public static final Block YELLOW_FENCE_GATE = new ColoredFenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), DyeColor.YELLOW); + public static final Block YELLOW_BUTTON = new ColoredWoodenButtonBlock(FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), DyeColor.YELLOW); + public static final Block YELLOW_SLAB = new ColoredSlabBlock(FabricBlockSettings.copyOf(Blocks.OAK_SLAB), DyeColor.YELLOW); + + + public static FabricBlockSettings noxcap(MapColor color) { + return FabricBlockSettings.copyOf(Blocks.CRIMSON_STEM).mapColor(color).strength(4.0F); + } + + public static AbstractBlock.Settings fungus(MapColor color) { + return AbstractBlock.Settings.of(Material.PLANT, color).breakInstantly().noCollision().sounds(BlockSoundGroup.FUNGUS); + } + + private static RegistryEntry> getConfiguredFeatureRegistryEntry(String id) { + return BuiltinRegistries.CONFIGURED_FEATURE.entryOf(RegistryKey.of(Registry.CONFIGURED_FEATURE_KEY, SpectrumCommon.locate(id))); + } + + public static final ToIntFunction LIT_PROVIDER = (state -> state.get(RedstoneLampBlock.LIT) ? 15 : 0); + + //DD FLORA + public static final Block SAWBLADE_GRASS = new SnowyBlock(AbstractBlock.Settings.copy(Blocks.PODZOL)); + public static final Block ROTTEN_GROUND = new MudBlock(AbstractBlock.Settings.copy(Blocks.MUD)); + public static final Block SHIMMEL = new MyceliumBlock(AbstractBlock.Settings.copy(Blocks.MYCELIUM)); + public static final Block OVERGROWN_BLACKSLAG = new SnowyBlock(AbstractBlock.Settings.copy(Blocks.PODZOL)); + public static final Block SLATE_NOXSHROOM = new GilledFungusBlock(fungus(MapColor.GRAY), () -> getConfiguredFeatureRegistryEntry("slate_noxfungus")); + public static final Block EBONY_NOXSHROOM = new GilledFungusBlock(fungus(MapColor.TERRACOTTA_BLACK), () -> getConfiguredFeatureRegistryEntry("ebony_noxfungus")); + public static final Block IVORY_NOXSHROOM = new GilledFungusBlock(fungus(MapColor.OFF_WHITE), () -> getConfiguredFeatureRegistryEntry("ivory_noxfungus")); + public static final Block CHESTNUT_NOXSHROOM = new GilledFungusBlock(fungus(MapColor.DULL_RED), () -> getConfiguredFeatureRegistryEntry("chestnut_noxfungus")); + + public static final PillarBlock STRIPPED_SLATE_NOXCAP_STEM = new PillarBlock(noxcap(MapColor.GRAY)); + public static final PillarBlock SLATE_NOXCAP_STEM = new StrippingLootPillarBlock(noxcap(MapColor.GRAY), STRIPPED_SLATE_NOXCAP_STEM, SpectrumCommon.locate("gameplay/stripping/slate_noxcap_stripping")); + public static final Block SLATE_NOXCAP_CAP = new Block(noxcap(MapColor.GRAY)); + public static final PillarBlock SLATE_NOXCAP_GILLS = new PillarBlock(noxcap(MapColor.DIAMOND_BLUE).luminance(12).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); + public static final Block SLATE_NOXWOOD_PLANKS = new Block(noxcap(MapColor.GRAY)); + public static final StairsBlock SLATE_NOXWOOD_STAIRS = new StairsBlock(SLATE_NOXWOOD_PLANKS.getDefaultState(), noxcap(MapColor.GRAY)); + public static final SlabBlock SLATE_NOXWOOD_SLAB = new SlabBlock(noxcap(MapColor.GRAY)); + public static final FenceBlock SLATE_NOXWOOD_FENCE = new FenceBlock(noxcap(MapColor.GRAY)); + public static final FenceGateBlock SLATE_NOXWOOD_FENCE_GATE = new FenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_WOOD)); + public static final Block SLATE_NOXWOOD_DOOR = new DoorBlock(noxcap(MapColor.GRAY)); + public static final Block SLATE_NOXWOOD_TRAPDOOR = new TrapdoorBlock(noxcap(MapColor.GRAY)); + public static final Block SLATE_NOXWOOD_BUTTON = new WoodenButtonBlock(noxcap(MapColor.GRAY)); + public static final Block SLATE_NOXWOOD_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, noxcap(MapColor.GRAY)); + public static final Block SLATE_NOXWOOD_BEAM = new PillarBlock(noxcap(MapColor.GRAY)); + public static final Block SLATE_NOXWOOD_AMPHORA = new AmphoraBlock(noxcap(MapColor.GRAY)); + public static final Block SLATE_NOXWOOD_LANTERN = new RedstoneLampBlock(noxcap(MapColor.GRAY).luminance(LIT_PROVIDER)); + public static final Block SLATE_NOXWOOD_LIGHT = new PillarBlock(noxcap(MapColor.GRAY).luminance(15)); + public static final Block SLATE_NOXWOOD_LAMP = new FlexLanternBlock(noxcap(MapColor.GRAY).luminance(13)); + + public static final PillarBlock STRIPPED_EBONY_NOXCAP_STEM = new PillarBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final PillarBlock EBONY_NOXCAP_STEM = new StrippingLootPillarBlock(noxcap(MapColor.TERRACOTTA_BLACK), STRIPPED_EBONY_NOXCAP_STEM, SpectrumCommon.locate("gameplay/stripping/ebony_noxcap_stripping")); + public static final Block EBONY_NOXCAP_CAP = new Block(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final PillarBlock EBONY_NOXCAP_GILLS = new PillarBlock(noxcap(MapColor.DIAMOND_BLUE).luminance(12).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); + public static final Block EBONY_NOXWOOD_PLANKS = new Block(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final StairsBlock EBONY_NOXWOOD_STAIRS = new StairsBlock(EBONY_NOXWOOD_PLANKS.getDefaultState(), noxcap(MapColor.TERRACOTTA_BLACK)); + public static final SlabBlock EBONY_NOXWOOD_SLAB = new SlabBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final FenceBlock EBONY_NOXWOOD_FENCE = new FenceBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final FenceGateBlock EBONY_NOXWOOD_FENCE_GATE = new FenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_WOOD)); + public static final Block EBONY_NOXWOOD_DOOR = new DoorBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final Block EBONY_NOXWOOD_TRAPDOOR = new TrapdoorBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final Block EBONY_NOXWOOD_BUTTON = new WoodenButtonBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final Block EBONY_NOXWOOD_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, noxcap(MapColor.TERRACOTTA_BLACK)); + public static final Block EBONY_NOXWOOD_BEAM = new PillarBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final Block EBONY_NOXWOOD_AMPHORA = new AmphoraBlock(noxcap(MapColor.TERRACOTTA_BLACK)); + public static final Block EBONY_NOXWOOD_LANTERN = new RedstoneLampBlock(noxcap(MapColor.TERRACOTTA_BLACK).luminance(LIT_PROVIDER)); + public static final Block EBONY_NOXWOOD_LIGHT = new PillarBlock(noxcap(MapColor.TERRACOTTA_BLACK).luminance(15)); + public static final Block EBONY_NOXWOOD_LAMP = new FlexLanternBlock(noxcap(MapColor.TERRACOTTA_BLACK).luminance(13)); + + public static final PillarBlock STRIPPED_IVORY_NOXCAP_STEM = new PillarBlock(noxcap(MapColor.OFF_WHITE)); + public static final PillarBlock IVORY_NOXCAP_STEM = new StrippingLootPillarBlock(noxcap(MapColor.OFF_WHITE), STRIPPED_IVORY_NOXCAP_STEM, SpectrumCommon.locate("gameplay/stripping/ivory_noxcap_stripping")); + public static final Block IVORY_NOXCAP_CAP = new Block(noxcap(MapColor.OFF_WHITE)); + public static final PillarBlock IVORY_NOXCAP_GILLS = new PillarBlock(noxcap(MapColor.DIAMOND_BLUE).luminance(12).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); + public static final Block IVORY_NOXWOOD_PLANKS = new Block(noxcap(MapColor.OFF_WHITE)); + public static final StairsBlock IVORY_NOXWOOD_STAIRS = new StairsBlock(IVORY_NOXWOOD_PLANKS.getDefaultState(), noxcap(MapColor.OFF_WHITE)); + public static final SlabBlock IVORY_NOXWOOD_SLAB = new SlabBlock(noxcap(MapColor.OFF_WHITE)); + public static final FenceBlock IVORY_NOXWOOD_FENCE = new FenceBlock(noxcap(MapColor.OFF_WHITE)); + public static final FenceGateBlock IVORY_NOXWOOD_FENCE_GATE = new FenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_WOOD)); + public static final Block IVORY_NOXWOOD_DOOR = new DoorBlock(noxcap(MapColor.OFF_WHITE)); + public static final Block IVORY_NOXWOOD_TRAPDOOR = new TrapdoorBlock(noxcap(MapColor.OFF_WHITE)); + public static final Block IVORY_NOXWOOD_BUTTON = new WoodenButtonBlock(noxcap(MapColor.OFF_WHITE)); + public static final Block IVORY_NOXWOOD_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, noxcap(MapColor.OFF_WHITE)); + public static final Block IVORY_NOXWOOD_BEAM = new PillarBlock(noxcap(MapColor.OFF_WHITE)); + public static final Block IVORY_NOXWOOD_AMPHORA = new AmphoraBlock(noxcap(MapColor.OFF_WHITE)); + public static final Block IVORY_NOXWOOD_LANTERN = new RedstoneLampBlock(noxcap(MapColor.OFF_WHITE).luminance(LIT_PROVIDER)); + public static final Block IVORY_NOXWOOD_LIGHT = new PillarBlock(noxcap(MapColor.OFF_WHITE).luminance(15)); + public static final Block IVORY_NOXWOOD_LAMP = new FlexLanternBlock(noxcap(MapColor.OFF_WHITE).luminance(13)); + + public static final PillarBlock STRIPPED_CHESTNUT_NOXCAP_STEM = new PillarBlock(noxcap(MapColor.DULL_RED)); + public static final PillarBlock CHESTNUT_NOXCAP_STEM = new StrippingLootPillarBlock(noxcap(MapColor.DULL_RED), STRIPPED_CHESTNUT_NOXCAP_STEM, SpectrumCommon.locate("gameplay/stripping/chestnut_noxcap_stripping")); + public static final Block CHESTNUT_NOXCAP_CAP = new Block(noxcap(MapColor.DULL_RED)); + public static final PillarBlock CHESTNUT_NOXCAP_GILLS = new PillarBlock(noxcap(MapColor.DIAMOND_BLUE).luminance(12).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); + public static final Block CHESTNUT_NOXWOOD_PLANKS = new Block(noxcap(MapColor.DULL_RED)); + public static final StairsBlock CHESTNUT_NOXWOOD_STAIRS = new StairsBlock(CHESTNUT_NOXWOOD_PLANKS.getDefaultState(), noxcap(MapColor.DULL_RED)); + public static final SlabBlock CHESTNUT_NOXWOOD_SLAB = new SlabBlock(noxcap(MapColor.DULL_RED)); + public static final FenceBlock CHESTNUT_NOXWOOD_FENCE = new FenceBlock(noxcap(MapColor.DULL_RED)); + public static final FenceGateBlock CHESTNUT_NOXWOOD_FENCE_GATE = new FenceGateBlock(FabricBlockSettings.copyOf(Blocks.OAK_WOOD)); + public static final Block CHESTNUT_NOXWOOD_DOOR = new DoorBlock(noxcap(MapColor.DULL_RED)); + public static final Block CHESTNUT_NOXWOOD_TRAPDOOR = new TrapdoorBlock(noxcap(MapColor.DULL_RED)); + public static final Block CHESTNUT_NOXWOOD_BUTTON = new WoodenButtonBlock(noxcap(MapColor.DULL_RED)); + public static final Block CHESTNUT_NOXWOOD_PRESSURE_PLATE = new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, noxcap(MapColor.DULL_RED)); + public static final Block CHESTNUT_NOXWOOD_BEAM = new PillarBlock(noxcap(MapColor.DULL_RED)); + public static final Block CHESTNUT_NOXWOOD_AMPHORA = new AmphoraBlock(noxcap(MapColor.DULL_RED)); + public static final Block CHESTNUT_NOXWOOD_LANTERN = new RedstoneLampBlock(noxcap(MapColor.DULL_RED).luminance(LIT_PROVIDER)); + public static final Block CHESTNUT_NOXWOOD_LIGHT = new PillarBlock(noxcap(MapColor.DULL_RED).luminance(15)); + public static final Block CHESTNUT_NOXWOOD_LAMP = new FlexLanternBlock(noxcap(MapColor.DULL_RED).luminance(13)); + + + public static AbstractBlock.Settings dragonjag(MapColor color) { + return AbstractBlock.Settings.of(Material.PLANT, color).hardness(1.0F).sounds(BlockSoundGroup.GRASS); + } + + public static final Block SMALL_RED_DRAGONJAG = new SmallDragonjagBlock(dragonjag(MapColor.DARK_RED), Dragonjag.Variant.RED); + public static final Block SMALL_GREEN_DRAGONJAG = new SmallDragonjagBlock(dragonjag(MapColor.PALE_GREEN), Dragonjag.Variant.GREEN); + public static final Block SMALL_PINK_DRAGONJAG = new SmallDragonjagBlock(dragonjag(MapColor.DARK_DULL_PINK), Dragonjag.Variant.PINK); + public static final Block SMALL_PURPLE_DRAGONJAG = new SmallDragonjagBlock(dragonjag(MapColor.PURPLE), Dragonjag.Variant.PURPLE); + public static final Block SMALL_BLACK_DRAGONJAG = new SmallDragonjagBlock(dragonjag(MapColor.TERRACOTTA_BLACK), Dragonjag.Variant.BLACK); + + public static final Block TALL_RED_DRAGONJAG = new TallDragonjagBlock(dragonjag(MapColor.DARK_RED), Dragonjag.Variant.RED); + public static final Block TALL_GREEN_DRAGONJAG = new TallDragonjagBlock(dragonjag(MapColor.PALE_GREEN), Dragonjag.Variant.GREEN); + public static final Block TALL_PINK_DRAGONJAG = new TallDragonjagBlock(dragonjag(MapColor.DARK_DULL_PINK), Dragonjag.Variant.PINK); + public static final Block TALL_PURPLE_DRAGONJAG = new TallDragonjagBlock(dragonjag(MapColor.PURPLE), Dragonjag.Variant.PURPLE); + public static final Block TALL_BLACK_DRAGONJAG = new TallDragonjagBlock(dragonjag(MapColor.TERRACOTTA_BLACK), Dragonjag.Variant.BLACK); + + public static final Block ALOE = new AloeBlock(AbstractBlock.Settings.of(Material.PLANT, MapColor.DARK_GREEN).hardness(1.0F).sounds(BlockSoundGroup.GRASS).noCollision().ticksRandomly().nonOpaque()); + public static final Block SAWBLADE_HOLLY_BUSH = new SawbladeHollyBushBlock(AbstractBlock.Settings.of(Material.PLANT, MapColor.TERRACOTTA_GREEN).sounds(BlockSoundGroup.GRASS).noCollision().ticksRandomly().breakInstantly().nonOpaque()); + public static final Block BRISTLE_SPROUTS = new BristleSproutsBlock(AbstractBlock.Settings.of(Material.PLANT, MapColor.PALE_GREEN).sounds(BlockSoundGroup.GRASS).noCollision().breakInstantly().nonOpaque()); + public static final Block DOOMBLOOM = new DoomBloomBlock(AbstractBlock.Settings.of(Material.PLANT, MapColor.PALE_GREEN).sounds(BlockSoundGroup.GRASS).noCollision().breakInstantly().nonOpaque()); + public static final Block SNAPPING_IVY = new SnappingIvyBlock(AbstractBlock.Settings.of(Material.PLANT, MapColor.PALE_GREEN).hardness(3.0F).noCollision().sounds(BlockSoundGroup.GRASS).nonOpaque()); + + public static final Block HUMMINGSTONE_GLASS = new GlassBlock(AbstractBlock.Settings.of(Material.GLASS, MapColor.PALE_YELLOW).strength(5.0F, 100.0F).nonOpaque().sounds(BlockSoundGroup.GLASS).luminance((state) -> 12).requiresTool()); + public static final Block HUMMINGSTONE = new HummingstoneBlock(AbstractBlock.Settings.copy(HUMMINGSTONE_GLASS).ticksRandomly()); // JADE VINES public static final Block JADE_VINE_ROOTS = new JadeVineRootsBlock(FabricBlockSettings.of(Material.PLANT, MapColor.PALE_GREEN).strength(0.1F).sounds(BlockSoundGroup.WOOL).ticksRandomly().luminance((state) -> state.get(JadeVineRootsBlock.DEAD) ? 0 : 4).nonOpaque()); @@ -451,33 +635,38 @@ public class SpectrumBlocks { public static final Block JADE_VINE_PETAL_CARPET = new CarpetBlock(FabricBlockSettings.of(Material.CARPET, MapColor.PALE_GREEN).strength(0.1F).nonOpaque().sounds(BlockSoundGroup.WOOL).luminance(3)); // ORES - public static final Block SPARKLESTONE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.IRON_ORE).requiresTool(), UniformIntProvider.create(2, 4), locate("milestones/reveal_sparklestone"), Blocks.STONE.getDefaultState()); - public static final Block DEEPSLATE_SPARKLESTONE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_IRON_ORE).requiresTool(), UniformIntProvider.create(2, 4), locate("milestones/reveal_sparklestone"), Blocks.DEEPSLATE.getDefaultState()); + public static final Block SHIMMERSTONE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.IRON_ORE).requiresTool(), UniformIntProvider.create(2, 4), locate("milestones/reveal_shimmerstone"), Blocks.STONE.getDefaultState()); + public static final Block DEEPSLATE_SHIMMERSTONE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_IRON_ORE).requiresTool(), UniformIntProvider.create(2, 4), locate("milestones/reveal_shimmerstone"), Blocks.DEEPSLATE.getDefaultState()); public static final Block AZURITE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.LAPIS_ORE).requiresTool(), UniformIntProvider.create(4, 7), locate("milestones/reveal_azurite"), Blocks.STONE.getDefaultState()); public static final Block DEEPSLATE_AZURITE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_LAPIS_ORE).requiresTool(), UniformIntProvider.create(4, 7), locate("milestones/reveal_azurite"), Blocks.DEEPSLATE.getDefaultState()); - public static final Block PALETUR_ORE = new CloakedOreBlock(FabricBlockSettings.of(Material.STONE, MapColor.DARK_RED).requiresTool().requiresTool().strength(3.0F, 3.0F).sounds(BlockSoundGroup.NETHER_ORE), UniformIntProvider.create(2, 4), locate("milestones/reveal_paletur"), Blocks.END_STONE.getDefaultState()); - public static final Block SCARLET_ORE = new CloakedOreBlock(FabricBlockSettings.of(Material.STONE, MapColor.PALE_YELLOW).requiresTool().strength(3.0F, 9.0F).requiresTool(), UniformIntProvider.create(3, 5), locate("milestones/reveal_scarlet"), Blocks.NETHERRACK.getDefaultState()); - public static final Block SPARKLESTONE_BLOCK = new SparklestoneBlock(FabricBlockSettings.of(Material.GLASS, MapColor.YELLOW).strength(2.0F).sounds(BlockSoundGroup.GLASS).luminance((state) -> 15)); + public static final Block BLACKSLAG_AZURITE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_LAPIS_ORE).requiresTool(), UniformIntProvider.create(4, 7), locate("milestones/reveal_azurite"), SpectrumBlocks.BLACKSLAG.getDefaultState()); + + public static final Block PALTAERIA_ORE = new CloakedOreBlock(FabricBlockSettings.of(Material.STONE, MapColor.DARK_RED).requiresTool().requiresTool().strength(3.0F, 3.0F).sounds(BlockSoundGroup.NETHER_ORE), UniformIntProvider.create(2, 4), locate("milestones/reveal_paltaeria"), Blocks.END_STONE.getDefaultState()); + public static final Block STRATINE_ORE = new CloakedOreBlock(FabricBlockSettings.of(Material.STONE, MapColor.PALE_YELLOW).requiresTool().strength(3.0F, 9.0F).requiresTool(), UniformIntProvider.create(3, 5), locate("milestones/reveal_stratine"), Blocks.NETHERRACK.getDefaultState()); + public static final Block SHIMMERSTONE_BLOCK = new SparklestoneBlock(FabricBlockSettings.of(Material.GLASS, MapColor.YELLOW).strength(2.0F).sounds(BlockSoundGroup.GLASS).luminance((state) -> 15)); public static final Block AZURITE_BLOCK = new SpectrumFacingBlock(FabricBlockSettings.copyOf(Blocks.LAPIS_BLOCK)); - public static final FloatBlock PALETUR_FRAGMENT_BLOCK = new FloatBlock(FabricBlockSettings.of(Material.METAL, MapColor.LIGHT_BLUE).requiresTool().strength(5.0F, 6.0F).sounds(BlockSoundGroup.METAL), 0.2F); - public static final FloatBlock SCARLET_FRAGMENT_BLOCK = new FloatBlock(FabricBlockSettings.of(Material.METAL, MapColor.DARK_RED).requiresTool().strength(5.0F, 6.0F).sounds(BlockSoundGroup.METAL), -0.2F); + public static final FloatBlock PALTAERIA_FRAGMENT_BLOCK = new FloatBlock(FabricBlockSettings.of(Material.METAL, MapColor.LIGHT_BLUE).requiresTool().strength(5.0F, 6.0F).sounds(BlockSoundGroup.METAL), 0.2F); + public static final FloatBlock STRATINE_FRAGMENT_BLOCK = new FloatBlock(FabricBlockSettings.of(Material.METAL, MapColor.DARK_RED).requiresTool().strength(5.0F, 6.0F).sounds(BlockSoundGroup.METAL), -0.2F); public static final FloatBlock HOVER_BLOCK = new FloatBlock(FabricBlockSettings.of(Material.METAL, MapColor.DIAMOND_BLUE).requiresTool().strength(5.0F, 6.0F).sounds(BlockSoundGroup.METAL), 0.0F); - + public static final Block DRAGONBONE = new PillarBlock(AbstractBlock.Settings.copy(Blocks.OBSIDIAN).sounds(BlockSoundGroup.BONE)); + + public static final Block BLACKSLAG_COAL_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_COAL_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE), UniformIntProvider.create(0, 2)); + public static final Block BLACKSLAG_COPPER_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_COPPER_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE)); public static final Block BLACKSLAG_IRON_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_IRON_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE)); public static final Block BLACKSLAG_GOLD_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_GOLD_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE)); public static final Block BLACKSLAG_LAPIS_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_LAPIS_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE), UniformIntProvider.create(2, 5)); public static final Block BLACKSLAG_DIAMOND_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_DIAMOND_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE), UniformIntProvider.create(3, 7)); public static final Block BLACKSLAG_REDSTONE_ORE = new RedstoneOreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_REDSTONE_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE)); public static final Block BLACKSLAG_EMERALD_ORE = new OreBlock(FabricBlockSettings.copyOf(Blocks.DEEPSLATE_EMERALD_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE)); - public static final Block BLACKSLAG_SPARKLESTONE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(DEEPSLATE_SPARKLESTONE_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE), UniformIntProvider.create(2, 4), locate("milestones/reveal_sparklestone"), BLACKSLAG.getDefaultState()); + public static final Block BLACKSLAG_SHIMMERSTONE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(DEEPSLATE_SHIMMERSTONE_ORE).strength(6.0F, 5.0F).sounds(BlockSoundGroup.DEEPSLATE), UniformIntProvider.create(2, 4), locate("milestones/reveal_shimmerstone"), BLACKSLAG.getDefaultState()); public static final Block BLACKSLAG_MALACHITE_ORE = new CloakedOreBlock(FabricBlockSettings.copyOf(DEEPSLATE_MALACHITE_ORE), UniformIntProvider.create(7, 11), locate("milestones/reveal_malachite"), BLACKSLAG.getDefaultState()); // FUNCTIONAL BLOCKS public static final Block PRIVATE_CHEST = new PrivateChestBlock(FabricBlockSettings.of(Material.STONE).requiresTool().strength(-1.0F, 3600000.0F).sounds(BlockSoundGroup.STONE)); public static final Block COMPACTING_CHEST = new CompactingChestBlock(FabricBlockSettings.of(Material.STONE).requiresTool().strength(4.0F, 4.0F).sounds(BlockSoundGroup.STONE)); public static final Block RESTOCKING_CHEST = new RestockingChestBlock(FabricBlockSettings.of(Material.STONE).requiresTool().strength(4.0F, 4.0F).sounds(BlockSoundGroup.STONE)); - public static final Block SUCKING_CHEST = new SuckingChestBlock(FabricBlockSettings.of(Material.STONE).requiresTool().strength(4.0F, 4.0F).sounds(BlockSoundGroup.STONE)); + public static final Block BLACK_HOLE_CHEST = new BlackHoleChestBlock(FabricBlockSettings.of(Material.STONE).requiresTool().strength(4.0F, 4.0F).sounds(BlockSoundGroup.STONE)); public static final Block PARTICLE_SPAWNER = new ParticleSpawnerBlock(FabricBlockSettings.of(Material.AMETHYST).requiresTool().strength(5.0F, 6.0F).sounds(BlockSoundGroup.AMETHYST_BLOCK).nonOpaque()); public static final Block CREATIVE_PARTICLE_SPAWNER = new CreativeParticleSpawnerBlock(FabricBlockSettings.copyOf(SpectrumBlocks.PARTICLE_SPAWNER).strength(-1.0F, 3600000.8F).dropsNothing().allowsSpawning(SpectrumBlocks::never)); public static final Block BEDROCK_ANVIL = new BedrockAnvilBlock(FabricBlockSettings.copyOf(Blocks.ANVIL).requiresTool().strength(8.0F, 8.0F).sounds(BlockSoundGroup.METAL)); @@ -487,13 +676,12 @@ public class SpectrumBlocks { public static final Block BLAZING_CRYSTAL = new Block(FabricBlockSettings.copyOf(Blocks.GLOWSTONE)); public static final Block RESONANT_LILY = new FlowerBlock(StatusEffects.INSTANT_HEALTH, 5, FabricBlockSettings.copyOf(Blocks.POPPY)); - public static final Block QUITOXIC_REEDS = new QuitoxicReedsBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.GRASS).ticksRandomly()); + public static final Block QUITOXIC_REEDS = new QuitoxicReedsBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.GRASS).offsetType(AbstractBlock.OffsetType.XYZ).ticksRandomly()); public static final Block MERMAIDS_BRUSH = new MermaidsBrushBlock(FabricBlockSettings.of(Material.REPLACEABLE_UNDERWATER_PLANT).noCollision().breakInstantly().sounds(BlockSoundGroup.WET_GRASS).ticksRandomly().luminance(value -> 3)); + public static final Block RADIATING_ENDER = new EnderTreasureBlock(FabricBlockSettings.copyOf(Blocks.EMERALD_BLOCK)); public static final Block AMARANTH = new AmaranthCropBlock(FabricBlockSettings.of(Material.PLANT).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)); public static final Block AMARANTH_BUSHEL = new AmaranthBushelBlock(FabricBlockSettings.of(Material.PLANT).noCollision().breakInstantly().sounds(BlockSoundGroup.CROP)); - public static final Block POTTED_AMARANTH_BUSHEL = new PottedAmaranthBushelBlock(AMARANTH_BUSHEL, AbstractBlock.Settings.of(Material.DECORATION).breakInstantly().nonOpaque()); - public static final Block ENDER_TREASURE = new EnderTreasureBlock(FabricBlockSettings.copyOf(Blocks.EMERALD_BLOCK)); public static final Block CRACKED_END_PORTAL_FRAME = new CrackedEndPortalFrameBlock(FabricBlockSettings.copyOf(Blocks.END_PORTAL_FRAME)); public static final Block LAVA_SPONGE = new LavaSpongeBlock(FabricBlockSettings.copyOf(Blocks.SPONGE)); public static final Block WET_LAVA_SPONGE = new WetLavaSpongeBlock(FabricBlockSettings.copyOf(Blocks.WET_SPONGE).luminance(9).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); @@ -506,7 +694,7 @@ public class SpectrumBlocks { public static final Block REDSTONE_TIMER = new RedstoneTimerBlock(FabricBlockSettings.copyOf(Blocks.REPEATER)); public static final Block REDSTONE_WIRELESS = new RedstoneWirelessBlock(FabricBlockSettings.copyOf(Blocks.REPEATER)); public static final Block BLOCK_PLACER = new BlockPlacerBlock(FabricBlockSettings.copyOf(Blocks.DISPENSER)); - public static final Block ENDER_DROPPER = new EnderDropperBlock(FabricBlockSettings.copyOf(Blocks.DROPPER).requiresTool().strength(15F, 60.0F)); + public static final EnderDropperBlock ENDER_DROPPER = new EnderDropperBlock(FabricBlockSettings.copyOf(Blocks.DROPPER).requiresTool().strength(15F, 60.0F)); public static final Block ENDER_HOPPER = new EnderHopperBlock(FabricBlockSettings.copyOf(Blocks.HOPPER).requiresTool().strength(15F, 60.0F)); public static final Block SPIRIT_SALLOW_LEAVES = new SpiritSallowLeavesBlock(FabricBlockSettings.copyOf(Blocks.OAK_LEAVES).luminance((state) -> 8)); @@ -527,32 +715,27 @@ public class SpectrumBlocks { public static final Block WHITE_SPIRIT_SALLOW_VINES_BODY = new SpiritVinesBodyBlock(FabricBlockSettings.copyOf(spiritVinesBlockSettings).mapColor(MapColor.TERRACOTTA_WHITE), BuiltinGemstoneColor.WHITE); public static final Block WHITE_SPIRIT_SALLOW_VINES_HEAD = new SpiritVinesHeadBlock(FabricBlockSettings.copyOf(spiritVinesBlockSettings).mapColor(MapColor.TERRACOTTA_WHITE), BuiltinGemstoneColor.WHITE); - public static final Block STUCK_LIGHTNING_STONE = new LightningStoneBlock(FabricBlockSettings.of(Material.SNOW_LAYER, MapColor.PALE_YELLOW).noCollision().breakInstantly().sounds(BlockSoundGroup.SMALL_AMETHYST_BUD)); + public static final Block STUCK_STORM_STONE = new StormStoneBlock(FabricBlockSettings.of(Material.SNOW_LAYER, MapColor.PALE_YELLOW).noCollision().breakInstantly().sounds(BlockSoundGroup.SMALL_AMETHYST_BUD)); public static final Block DEEPER_DOWN_PORTAL = new DeeperDownPortalBlock(FabricBlockSettings.copyOf(Blocks.END_PORTAL)); - public static final Block UPGRADE_SPEED = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.SPEED, 0.5F); - public static final Block UPGRADE_SPEED2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.SPEED, 2.0F); - public static final Block UPGRADE_SPEED3 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.SPEED, 8.0F); - public static final Block UPGRADE_EFFICIENCY = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EFFICIENCY, 0.05F); - public static final Block UPGRADE_EFFICIENCY2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EFFICIENCY, 0.25F); - public static final Block UPGRADE_YIELD = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.YIELD, 0.05F); - public static final Block UPGRADE_YIELD2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.YIELD, 0.25F); - public static final Block UPGRADE_EXPERIENCE = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EXPERIENCE, 1.0F); - public static final Block UPGRADE_EXPERIENCE2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EXPERIENCE, 4.0F); + public static final Block UPGRADE_SPEED = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.SPEED, 1, DyeColor.MAGENTA); + public static final Block UPGRADE_SPEED2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.SPEED, 2, DyeColor.MAGENTA); + public static final Block UPGRADE_SPEED3 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.SPEED, 8, DyeColor.MAGENTA); + public static final Block UPGRADE_EFFICIENCY = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EFFICIENCY, 1, DyeColor.YELLOW); + public static final Block UPGRADE_EFFICIENCY2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EFFICIENCY, 4, DyeColor.YELLOW); + public static final Block UPGRADE_YIELD = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.YIELD, 1, DyeColor.CYAN); + public static final Block UPGRADE_YIELD2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.YIELD, 4, DyeColor.CYAN); + public static final Block UPGRADE_EXPERIENCE = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EXPERIENCE, 1, DyeColor.PURPLE); + public static final Block UPGRADE_EXPERIENCE2 = new UpgradeBlock(FabricBlockSettings.copyOf(SpectrumBlocks.POLISHED_BASALT), Upgradeable.UpgradeType.EXPERIENCE, 4, DyeColor.PURPLE); public static final Block REDSTONE_SAND = new RedstoneGravityBlock(FabricBlockSettings.copyOf(Blocks.SAND)); public static final Block ENDER_GLASS = new RedstoneTransparencyBlock(FabricBlockSettings.copyOf(Blocks.GLASS).nonOpaque() .allowsSpawning((state, world, pos, entityType) -> state.get(RedstoneTransparencyBlock.TRANSPARENCY_STATE) == RedstoneTransparencyBlock.TransparencyState.SOLID) .solidBlock(SpectrumBlocks::never).suffocates((state, world, pos) -> state.get(RedstoneTransparencyBlock.TRANSPARENCY_STATE) == RedstoneTransparencyBlock.TransparencyState.SOLID) .blockVision((state, world, pos) -> state.get(RedstoneTransparencyBlock.TRANSPARENCY_STATE) == RedstoneTransparencyBlock.TransparencyState.SOLID)); - public static final Block CLOVER = new CloverBlock(FabricBlockSettings.copyOf(Blocks.GRASS)); - public static final Block FOUR_LEAF_CLOVER = new FourLeafCloverBlock(FabricBlockSettings.copyOf(Blocks.GRASS)); - public static final Block BLOOD_ORCHID = new BloodOrchidBlock(StatusEffects.BAD_OMEN, 10, FabricBlockSettings.copyOf(Blocks.POPPY).ticksRandomly()); - private static final FabricBlockSettings FUSION_SHINE_BLOCK_SETTINGS = FabricBlockSettings.of(Material.STONE).strength(5.0F, 20.0F).requiresTool().nonOpaque().luminance(value -> value.get(FusionShrineBlock.LIGHT_LEVEL)); - public static final Block FUSION_SHRINE_BASALT = new FusionShrineBlock(FUSION_SHINE_BLOCK_SETTINGS); - public static final Block FUSION_SHRINE_CALCITE = new FusionShrineBlock(FUSION_SHINE_BLOCK_SETTINGS); - - //public static final Block STONESETTING_WORKSHOP = new StonesettingWorkshopBlock(FabricBlockSettings.copyOf(POLISHED_BASALT).nonOpaque().solidBlock(SpectrumBlocks::never).blockVision(SpectrumBlocks::never)); + public static final Block CLOVER = new CloverBlock(FabricBlockSettings.copyOf(Blocks.GRASS).offsetType(AbstractBlock.OffsetType.XZ)); + public static final Block FOUR_LEAF_CLOVER = new FourLeafCloverBlock(FabricBlockSettings.copyOf(Blocks.GRASS).offsetType(AbstractBlock.OffsetType.XZ)); + public static final Block BLOOD_ORCHID = new BloodOrchidBlock(StatusEffects.BAD_OMEN, 10, FabricBlockSettings.copyOf(Blocks.POPPY).offsetType(AbstractBlock.OffsetType.NONE).ticksRandomly()); private static final FabricBlockSettings gemOreBlockSettings = FabricBlockSettings.copyOf(Blocks.IRON_ORE).requiresTool(); private static final UniformIntProvider gemOreExperienceProvider = UniformIntProvider.create(1, 4); @@ -560,14 +743,21 @@ public class SpectrumBlocks { public static final Block AMETHYST_ORE = new GemstoneOreBlock(gemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.MAGENTA, locate("hidden/collect_shards/collect_amethyst_shard"), Blocks.STONE.getDefaultState()); public static final Block CITRINE_ORE = new GemstoneOreBlock(gemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.YELLOW, locate("hidden/collect_shards/collect_citrine_shard"), Blocks.STONE.getDefaultState()); public static final Block ONYX_ORE = new GemstoneOreBlock(gemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.BLACK, locate("create_onyx_shard"), Blocks.STONE.getDefaultState()); - public static final Block MOONSTONE_ORE = new GemstoneOreBlock(gemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.WHITE, locate("midgame/collect_moonstone_shard"), Blocks.STONE.getDefaultState()); + public static final Block MOONSTONE_ORE = new GemstoneOreBlock(gemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.WHITE, locate("lategame/collect_moonstone_shard"), Blocks.STONE.getDefaultState()); private static final FabricBlockSettings deepslateGemOreBlockSettings = FabricBlockSettings.copyOf(Blocks.DEEPSLATE_IRON_ORE); public static final Block DEEPSLATE_TOPAZ_ORE = new GemstoneOreBlock(deepslateGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.CYAN, locate("hidden/collect_shards/collect_topaz_shard"), Blocks.DEEPSLATE.getDefaultState()); public static final Block DEEPSLATE_AMETHYST_ORE = new GemstoneOreBlock(deepslateGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.MAGENTA, locate("hidden/collect_shards/collect_amethyst_shard"), Blocks.DEEPSLATE.getDefaultState()); public static final Block DEEPSLATE_CITRINE_ORE = new GemstoneOreBlock(deepslateGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.YELLOW, locate("hidden/collect_shards/collect_citrine_shard"), Blocks.DEEPSLATE.getDefaultState()); public static final Block DEEPSLATE_ONYX_ORE = new GemstoneOreBlock(deepslateGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.BLACK, locate("create_onyx_shard"), Blocks.DEEPSLATE.getDefaultState()); - public static final Block DEEPSLATE_MOONSTONE_ORE = new GemstoneOreBlock(deepslateGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.WHITE, locate("midgame/collect_moonstone_shard"), Blocks.DEEPSLATE.getDefaultState()); + public static final Block DEEPSLATE_MOONSTONE_ORE = new GemstoneOreBlock(deepslateGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.WHITE, locate("lategame/collect_moonstone_shard"), Blocks.DEEPSLATE.getDefaultState()); + + private static final FabricBlockSettings blackslagGemOreBlockSettings = FabricBlockSettings.copyOf(SpectrumBlocks.BLACKSLAG); + public static final Block BLACKSLAG_TOPAZ_ORE = new GemstoneOreBlock(blackslagGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.CYAN, locate("hidden/collect_shards/collect_topaz_shard"), SpectrumBlocks.BLACKSLAG.getDefaultState()); + public static final Block BLACKSLAG_AMETHYST_ORE = new GemstoneOreBlock(blackslagGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.MAGENTA, locate("hidden/collect_shards/collect_amethyst_shard"), SpectrumBlocks.BLACKSLAG.getDefaultState()); + public static final Block BLACKSLAG_CITRINE_ORE = new GemstoneOreBlock(blackslagGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.YELLOW, locate("hidden/collect_shards/collect_citrine_shard"), SpectrumBlocks.BLACKSLAG.getDefaultState()); + public static final Block BLACKSLAG_ONYX_ORE = new GemstoneOreBlock(blackslagGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.BLACK, locate("create_onyx_shard"), SpectrumBlocks.BLACKSLAG.getDefaultState()); + public static final Block BLACKSLAG_MOONSTONE_ORE = new GemstoneOreBlock(blackslagGemOreBlockSettings, gemOreExperienceProvider, BuiltinGemstoneColor.WHITE, locate("lategame/collect_moonstone_shard"), SpectrumBlocks.BLACKSLAG.getDefaultState()); private static final FabricBlockSettings gemstoneStorageBlockSettings = FabricBlockSettings.of(Material.AMETHYST).requiresTool().strength(5.0F, 6.0F); public static final Block TOPAZ_STORAGE_BLOCK = new Block(gemstoneStorageBlockSettings); @@ -632,6 +822,27 @@ public class SpectrumBlocks { public static final Block WHITE_LOG = new ColoredLogBlock(coloredLogBlockSettings, DyeColor.WHITE); public static final Block YELLOW_LOG = new ColoredLogBlock(coloredLogBlockSettings, DyeColor.YELLOW); + // POTTED PLANTS + private static final Settings POTTED_PLANT_SETTINGS = AbstractBlock.Settings.of(Material.DECORATION).breakInstantly().nonOpaque(); + public static final Block POTTED_AMARANTH_BUSHEL = new PottedAmaranthBushelBlock(AMARANTH_BUSHEL, POTTED_PLANT_SETTINGS); + public static final Block POTTED_BLOOD_ORCHID = new PottedBloodOrchidBlock(BLOOD_ORCHID, POTTED_PLANT_SETTINGS); + public static final Block POTTED_BLACK_SAPLING = new PottedColoredSaplingBlock(BLACK_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_BLUE_SAPLING = new PottedColoredSaplingBlock(BLUE_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_BROWN_SAPLING = new PottedColoredSaplingBlock(BROWN_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_CYAN_SAPLING = new PottedColoredSaplingBlock(CYAN_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_GRAY_SAPLING = new PottedColoredSaplingBlock(GRAY_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_GREEN_SAPLING = new PottedColoredSaplingBlock(GREEN_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_LIGHT_BLUE_SAPLING = new PottedColoredSaplingBlock(LIGHT_BLUE_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_LIGHT_GRAY_SAPLING = new PottedColoredSaplingBlock(LIGHT_GRAY_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_LIME_SAPLING = new PottedColoredSaplingBlock(LIME_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_MAGENTA_SAPLING = new PottedColoredSaplingBlock(MAGENTA_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_ORANGE_SAPLING = new PottedColoredSaplingBlock(ORANGE_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_PINK_SAPLING = new PottedColoredSaplingBlock(PINK_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_PURPLE_SAPLING = new PottedColoredSaplingBlock(PURPLE_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_RED_SAPLING = new PottedColoredSaplingBlock(RED_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_WHITE_SAPLING = new PottedColoredSaplingBlock(WHITE_SAPLING, POTTED_PLANT_SETTINGS); + public static final Block POTTED_YELLOW_SAPLING = new PottedColoredSaplingBlock(YELLOW_SAPLING, POTTED_PLANT_SETTINGS); + // FLAT COLORED BLOCKS private static final FabricBlockSettings flatColoredBlockBlockSettings = FabricBlockSettings.of(Material.STONE).hardness(2.5F).requiresTool().luminance(1).postProcess(SpectrumBlocks::always).emissiveLighting(SpectrumBlocks::always); public static final Block BLACK_GLOWBLOCK = new GlowBlock(flatColoredBlockBlockSettings, DyeColor.BLACK); @@ -708,15 +919,16 @@ public class SpectrumBlocks { public static final Block WHITE_SPORE_BLOSSOM = new ColoredSporeBlossomBlock(sporeBlossomBlockSettings, DyeColor.WHITE); public static final Block YELLOW_SPORE_BLOSSOM = new ColoredSporeBlossomBlock(sporeBlossomBlockSettings, DyeColor.YELLOW); - // SPARKLESTONE LIGHTS - private static final FabricBlockSettings sparklestoneLightBlockSettings = FabricBlockSettings.of(Material.STONE).strength(1.0F, 1.0F).nonOpaque().luminance(15); - public static final Block BASALT_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); - public static final Block CALCITE_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); - public static final Block STONE_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); - public static final Block GRANITE_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); - public static final Block DIORITE_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); - public static final Block ANDESITE_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); - public static final Block DEEPSLATE_SPARKLESTONE_LIGHT = new SparklestoneLightBlock(sparklestoneLightBlockSettings); + // SHIMMERSTONE LIGHTS + private static final FabricBlockSettings shimmerstoneLightBlockSettings = FabricBlockSettings.of(Material.STONE).strength(1.0F, 1.0F).nonOpaque().luminance(15); + public static final Block BASALT_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block CALCITE_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block STONE_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block GRANITE_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block DIORITE_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block ANDESITE_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block DEEPSLATE_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); + public static final Block BLACKSLAG_SHIMMERSTONE_LIGHT = new ShimmerstoneLightBlock(shimmerstoneLightBlockSettings); // CRYSTALLARIEUM public static final Block SMALL_COAL_BUD = new CrystallarieumGrowableBlock(FabricBlockSettings.of(Material.AMETHYST).hardness(1.0f).mapColor(Blocks.COAL_BLOCK.getDefaultMapColor()).requiresTool().nonOpaque(), CrystallarieumGrowableBlock.GrowthStage.SMALL); @@ -792,27 +1004,28 @@ public class SpectrumBlocks { public static final Block PURE_GLOBETTE_END_BLOCK = new Block(FabricBlockSettings.copyOf(Blocks.QUARTZ_BLOCK)); // STRUCTURE BLOCKS - private static final FabricBlockSettings preservationBlockSettings = FabricBlockSettings.of(Material.STONE).strength(-1.0F, 3600000.0F).dropsNothing().allowsSpawning(SpectrumBlocks::never); + private static final AbstractBlock.Settings PRESERVATION_BLOCK_SETTINGS = FabricBlockSettings.of(Material.STONE).strength(-1.0F, 3600000.0F).dropsNothing().allowsSpawning(SpectrumBlocks::never); - public static final Block PRESERVATION_CONTROLLER = new PreservationControllerBlock(FabricBlockSettings.of(Material.STONE).strength(-1.0F, 3600000.0F).dropsNothing().luminance(1).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); - public static final Block DIKE_GATE = new DikeGateBlock(FabricBlockSettings.of(Material.GLASS).strength(-1.0F, 3600000.0F).dropsNothing().luminance(3).sounds(BlockSoundGroup.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never)); - public static final Block INVISIBLE_WALL = new InvisibleWallBlock(FabricBlockSettings.of(Material.GLASS).strength(-1.0F, 3600000.0F).dropsNothing().luminance(3).sounds(BlockSoundGroup.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).blockVision(SpectrumBlocks::never)); + public static final Block PRESERVATION_CONTROLLER = new PreservationControllerBlock(FabricBlockSettings.of(Material.STONE).strength(-1.0F, 3600000.0F).dropsNothing().luminance(value -> 1).emissiveLighting(SpectrumBlocks::always).postProcess(SpectrumBlocks::always)); + public static final Block DIKE_GATE = new DikeGateBlock(FabricBlockSettings.of(Material.GLASS).strength(-1.0F, 3600000.0F).dropsNothing().luminance(value -> 3).sounds(BlockSoundGroup.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never)); + public static final Block INVISIBLE_WALL = new InvisibleWallBlock(FabricBlockSettings.of(Material.GLASS).strength(-1.0F, 3600000.0F).dropsNothing().luminance(value -> 3).sounds(BlockSoundGroup.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).blockVision(SpectrumBlocks::never)); public static final Block TREASURE_CHEST = new TreasureChestBlock(FabricBlockSettings.copyOf(Blocks.CHEST).strength(-1.0F, 3600000.0F)); - public static final Block PRESERVATION_STONE = new Block(preservationBlockSettings); + public static final Block DOWNSTONE = new Block(PRESERVATION_BLOCK_SETTINGS); // "raw" preservation stone, used in the Deeper Down bottom in place of bedrock + public static final Block PRESERVATION_STONE = new Block(PRESERVATION_BLOCK_SETTINGS); public static final Block POWDER_CHISELED_PRESERVATION_STONE = new Block(FabricBlockSettings.copyOf(PRESERVATION_STONE).luminance(2)); public static final Block DIKE_CHISELED_PRESERVATION_STONE = new Block(FabricBlockSettings.copyOf(PRESERVATION_STONE).luminance(6)); - public static final Block DIKE_GATE_FOUNTAIN = new SpectrumFacingBlock(preservationBlockSettings); - public static final Block PRESERVATION_BRICKS = new Block(preservationBlockSettings); - public static final Block SHIMMERING_PRESERVATION_BRICKS = new Block(FabricBlockSettings.copyOf(preservationBlockSettings).luminance(5)); - public static final Block COURIER_STATUE = new StatueBlock(preservationBlockSettings); - private static final FabricBlockSettings preservationGlassBlockSettings = FabricBlockSettings.of(Material.GLASS).strength(-1.0F, 3600000.0F).dropsNothing().sounds(BlockSoundGroup.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never); - public static final Block PRESERVATION_GLASS = new GlassBlock(preservationGlassBlockSettings); + public static final Block DIKE_GATE_FOUNTAIN = new SpectrumFacingBlock(PRESERVATION_BLOCK_SETTINGS); + public static final Block PRESERVATION_BRICKS = new Block(PRESERVATION_BLOCK_SETTINGS); + public static final Block SHIMMERING_PRESERVATION_BRICKS = new Block(FabricBlockSettings.copyOf(PRESERVATION_BLOCK_SETTINGS).luminance(5)); + public static final Block COURIER_STATUE = new StatueBlock(PRESERVATION_BLOCK_SETTINGS); + + public static final Block PRESERVATION_GLASS = new GlassBlock(FabricBlockSettings.of(Material.GLASS).strength(-1.0F, 3600000.0F).dropsNothing().sounds(BlockSoundGroup.GLASS).nonOpaque().allowsSpawning(SpectrumBlocks::never).solidBlock(SpectrumBlocks::never).suffocates(SpectrumBlocks::never).blockVision(SpectrumBlocks::never)); public static final Block TINTED_PRESERVATION_GLASS = new GlassBlock(FabricBlockSettings.copyOf(PRESERVATION_GLASS).luminance(12).strength(Float.MAX_VALUE, 3600000.0F)); public static final Block PRESERVATION_ROUNDEL = new PreservationRoundelBlock(FabricBlockSettings.copyOf(PRESERVATION_STONE).nonOpaque()); - private static final BiMap MOB_HEADS = EnumHashBiMap.create(SpectrumSkullBlock.SpectrumSkullBlockType.class); - private static final BiMap MOB_WALL_HEADS = EnumHashBiMap.create(SpectrumSkullBlock.SpectrumSkullBlockType.class); + public static final BiMap MOB_HEADS = EnumHashBiMap.create(SpectrumSkullBlock.SpectrumSkullBlockType.class); + public static final BiMap MOB_WALL_HEADS = EnumHashBiMap.create(SpectrumSkullBlock.SpectrumSkullBlockType.class); private static final FabricBlockSettings shootingStartBlockSettings = FabricBlockSettings.copyOf(Blocks.STONE).nonOpaque(); public static final ShootingStarBlock GLISTERING_SHOOTING_STAR = new ShootingStarBlock(shootingStartBlockSettings, ShootingStarBlock.Type.GLISTERING); @@ -917,15 +1130,15 @@ public ProjectileEntity createProjectile(ServerWorld world, BlockPos mobBlockPos public static final Block WITHER_MOB_BLOCK = new ExplosionMobBlock(FabricBlockSettings.copyOf(mobBlockSettings).sounds(SpectrumBlockSoundGroups.WITHER_MOB_BLOCK), ParticleTypes.EXPLOSION, 7.0F, true, Explosion.DestructionType.BREAK); public static final Block WITHER_SKELETON_MOB_BLOCK = new StatusEffectMobBlock(FabricBlockSettings.copyOf(mobBlockSettings).sounds(SpectrumBlockSoundGroups.WITHER_SKELETON_MOB_BLOCK), ParticleTypes.ENCHANTED_HIT, StatusEffects.WITHER, 0, 100); public static final Block ZOMBIE_MOB_BLOCK = new StatusEffectMobBlock(FabricBlockSettings.copyOf(mobBlockSettings).sounds(SpectrumBlockSoundGroups.ZOMBIE_MOB_BLOCK), ParticleTypes.ENCHANTED_HIT, StatusEffects.HUNGER, 7, 200); - + private static boolean never(BlockState state, BlockView world, BlockPos pos, EntityType type) { return false; } - + private static boolean always(BlockState state, BlockView world, BlockPos pos) { return true; } - + private static boolean never(BlockState state, BlockView world, BlockPos pos) { return false; } @@ -961,7 +1174,6 @@ public static void register() { registerBlockWithItem("pedestal_moonstone", PEDESTAL_MOONSTONE, new PedestalBlockItem(PEDESTAL_MOONSTONE, Tab.GENERAL.settings(1), BuiltinPedestalVariant.MOONSTONE, "item.spectrum.pedestal.tooltip.moonstone"), DyeColor.WHITE); registerBlockWithItem("fusion_shrine_basalt", FUSION_SHRINE_BASALT, Tab.GENERAL.settings(1), DyeColor.GRAY); registerBlockWithItem("fusion_shrine_calcite", FUSION_SHRINE_CALCITE, Tab.GENERAL.settings(1), DyeColor.GRAY); - //registerBlockWithItem("stonesetting_workshop", STONESETTING_WORKSHOP, generalItemSettingsSingle, DyeColor.WHITE); registerBlockWithItem("enchanter", ENCHANTER, Tab.GENERAL.settings(1), DyeColor.PURPLE); registerBlockWithItem("item_bowl_basalt", ITEM_BOWL_BASALT, Tab.GENERAL.settings(16), DyeColor.PINK); registerBlockWithItem("item_bowl_calcite", ITEM_BOWL_CALCITE, Tab.GENERAL.settings(16), DyeColor.PINK); @@ -987,7 +1199,7 @@ public static void register() { registerBlockWithItem("memory", MEMORY, new MemoryItem(MEMORY, Tab.GENERAL.settings(Rarity.UNCOMMON)), DyeColor.LIGHT_GRAY); - + registerPastelNetworkNodes(Tab.GENERAL.settings(16)); registerStoneBlocks(Tab.DECORATION.settings()); registerGemBlocks(Tab.RESOURCES.settings()); @@ -1009,6 +1221,7 @@ public static void register() { registerGlowBlocks(Tab.DECORATION.settings()); registerSporeBlossoms(Tab.DECORATION.settings()); registerColoredWood(Tab.COLORED_WOOD.settings()); + registerDDFlora(Tab.DECORATION.settings()); registerRedstone(Tab.GENERAL.settings()); registerMagicalBlocks(Tab.GENERAL.settings()); registerMobBlocks(Tab.MOB_HEADS.settings()); @@ -1024,27 +1237,30 @@ public static void register() { registerBlock("fading", FADING); registerBlock("failing", FAILING); registerBlock("ruin", RUIN); - registerBlock("terror", TERROR); + registerBlock("forfeiture", FORFEITURE); registerBlock("decay_away", DECAY_AWAY); // Fluids + Products registerBlock("mud", MUD); registerBlock("liquid_crystal", LIQUID_CRYSTAL); registerBlock("midnight_solution", MIDNIGHT_SOLUTION); - + registerBlock("dragonrot", DRAGONROT); + registerBlockWithItem("black_materia", BLACK_MATERIA, Tab.GENERAL.settings(), DyeColor.GRAY); registerBlockWithItem("frostbite_crystal", FROSTBITE_CRYSTAL, Tab.GENERAL.settings(), DyeColor.LIGHT_BLUE); registerBlockWithItem("blazing_crystal", BLAZING_CRYSTAL, Tab.GENERAL.settings(), DyeColor.ORANGE); registerBlockWithItem("resonant_lily", RESONANT_LILY, Tab.GENERAL.settings(), DyeColor.GREEN); registerBlockWithItem("clover", CLOVER, Tab.RESOURCES.settings(), DyeColor.LIME); registerBlockWithItem("four_leaf_clover", FOUR_LEAF_CLOVER, new FourLeafCloverItem(FOUR_LEAF_CLOVER, Tab.RESOURCES.settings(), locate("milestones/reveal_four_leaf_clover"), CLOVER.asItem()), DyeColor.LIME); - registerBlockWithItem("blood_orchid", BLOOD_ORCHID, Tab.RESOURCES.settings(), DyeColor.RED); registerBlockWithItem("incandescent_amalgam", INCANDESCENT_AMALGAM, new IncandescentAmalgamItem(INCANDESCENT_AMALGAM, Tab.EQUIPMENT.settings(16).food(SpectrumFoodComponents.INCANDESCENT_AMALGAM)), DyeColor.RED); + registerBlockWithItem("blood_orchid", BLOOD_ORCHID, Tab.RESOURCES.settings(), DyeColor.RED); + registerBlock("potted_blood_orchid", POTTED_BLOOD_ORCHID); + // Worldgen registerBlockWithItem("quitoxic_reeds", QUITOXIC_REEDS, Tab.RESOURCES.settings(), DyeColor.PURPLE); registerBlockWithItem("mermaids_brush", MERMAIDS_BRUSH, Tab.RESOURCES.settings(), DyeColor.LIGHT_BLUE); - registerBlockWithItem("ender_treasure", ENDER_TREASURE, Tab.RESOURCES.settings(), DyeColor.PURPLE); + registerBlockWithItem("radiating_ender", RADIATING_ENDER, Tab.RESOURCES.settings(), DyeColor.PURPLE); registerBlock("amaranth", AMARANTH); registerBlockWithItem("amaranth_bushel", AMARANTH_BUSHEL, Tab.RESOURCES.settings(), DyeColor.RED); @@ -1052,21 +1268,132 @@ public static void register() { registerBlockWithItem("bedrock_anvil", BEDROCK_ANVIL, Tab.GENERAL.settings(), DyeColor.BLACK); registerBlockWithItem("cracked_end_portal_frame", CRACKED_END_PORTAL_FRAME, Tab.GENERAL.settings(), DyeColor.PURPLE); - + + registerBlockWithItem("black_sludge", BLACK_SLUDGE, Tab.DECORATION.settings(), DyeColor.GRAY); + // Technical Blocks without items registerBlock("sag_leaf", SAG_LEAF); registerBlock("sag_bubble", SAG_BUBBLE); registerBlock("small_sag_bubble", SMALL_SAG_BUBBLE); + + registerBlock("primordial_fire", PRIMORDIAL_FIRE); registerBlock("deeper_down_portal", DEEPER_DOWN_PORTAL); registerBlock("glistering_melon_stem", GLISTERING_MELON_STEM); registerBlock("attached_glistering_melon_stem", ATTACHED_GLISTERING_MELON_STEM); - registerBlock("stuck_lightning_stone", STUCK_LIGHTNING_STONE); + registerBlock("stuck_storm_stone", STUCK_STORM_STONE); registerBlock("wand_light", WAND_LIGHT_BLOCK); registerBlock("decaying_light", DECAYING_LIGHT_BLOCK); registerBlock("block_flooder", BLOCK_FLOODER); registerBlock("bottomless_bundle", BOTTOMLESS_BUNDLE); } + private static void registerDDFlora(FabricItemSettings settings) { + registerBlockWithItem("sawblade_grass", SAWBLADE_GRASS, settings, DyeColor.LIME); + registerBlockWithItem("rotten_ground", ROTTEN_GROUND, settings, DyeColor.LIME); + registerBlockWithItem("shimmel", SHIMMEL, settings, DyeColor.LIME); + registerBlockWithItem("overgrown_blackslag", OVERGROWN_BLACKSLAG, settings, DyeColor.LIME); + + registerBlockWithItem("slate_noxshroom", SLATE_NOXSHROOM, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxcap_cap", SLATE_NOXCAP_CAP, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxcap_stem", SLATE_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("stripped_slate_noxcap_stem", STRIPPED_SLATE_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxcap_gills", SLATE_NOXCAP_GILLS, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_planks", SLATE_NOXWOOD_PLANKS, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_stairs", SLATE_NOXWOOD_STAIRS, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_slab", SLATE_NOXWOOD_SLAB, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_fence", SLATE_NOXWOOD_FENCE, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_fence_gate", SLATE_NOXWOOD_FENCE_GATE, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_door", SLATE_NOXWOOD_DOOR, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_trapdoor", SLATE_NOXWOOD_TRAPDOOR, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_pressure_plate", SLATE_NOXWOOD_PRESSURE_PLATE, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_button", SLATE_NOXWOOD_BUTTON, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_beam", SLATE_NOXWOOD_BEAM, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_amphora", SLATE_NOXWOOD_AMPHORA, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_lantern", SLATE_NOXWOOD_LANTERN, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_light", SLATE_NOXWOOD_LIGHT, settings, DyeColor.LIME); + registerBlockWithItem("slate_noxwood_lamp", SLATE_NOXWOOD_LAMP, settings, DyeColor.LIME); + + registerBlockWithItem("ebony_noxshroom", EBONY_NOXSHROOM, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxcap_cap", EBONY_NOXCAP_CAP, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxcap_stem", EBONY_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("stripped_ebony_noxcap_stem", STRIPPED_EBONY_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxcap_gills", EBONY_NOXCAP_GILLS, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_planks", EBONY_NOXWOOD_PLANKS, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_stairs", EBONY_NOXWOOD_STAIRS, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_slab", EBONY_NOXWOOD_SLAB, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_fence", EBONY_NOXWOOD_FENCE, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_fence_gate", EBONY_NOXWOOD_FENCE_GATE, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_door", EBONY_NOXWOOD_DOOR, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_trapdoor", EBONY_NOXWOOD_TRAPDOOR, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_pressure_plate", EBONY_NOXWOOD_PRESSURE_PLATE, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_button", EBONY_NOXWOOD_BUTTON, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_beam", EBONY_NOXWOOD_BEAM, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_amphora", EBONY_NOXWOOD_AMPHORA, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_lantern", EBONY_NOXWOOD_LANTERN, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_light", EBONY_NOXWOOD_LIGHT, settings, DyeColor.LIME); + registerBlockWithItem("ebony_noxwood_lamp", EBONY_NOXWOOD_LAMP, settings, DyeColor.LIME); + + registerBlockWithItem("ivory_noxshroom", IVORY_NOXSHROOM, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxcap_cap", IVORY_NOXCAP_CAP, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxcap_stem", IVORY_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("stripped_ivory_noxcap_stem", STRIPPED_IVORY_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxcap_gills", IVORY_NOXCAP_GILLS, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_planks", IVORY_NOXWOOD_PLANKS, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_stairs", IVORY_NOXWOOD_STAIRS, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_slab", IVORY_NOXWOOD_SLAB, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_fence", IVORY_NOXWOOD_FENCE, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_fence_gate", IVORY_NOXWOOD_FENCE_GATE, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_door", IVORY_NOXWOOD_DOOR, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_trapdoor", IVORY_NOXWOOD_TRAPDOOR, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_pressure_plate", IVORY_NOXWOOD_PRESSURE_PLATE, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_button", IVORY_NOXWOOD_BUTTON, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_beam", IVORY_NOXWOOD_BEAM, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_amphora", IVORY_NOXWOOD_AMPHORA, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_lantern", IVORY_NOXWOOD_LANTERN, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_light", IVORY_NOXWOOD_LIGHT, settings, DyeColor.LIME); + registerBlockWithItem("ivory_noxwood_lamp", IVORY_NOXWOOD_LAMP, settings, DyeColor.LIME); + + registerBlockWithItem("chestnut_noxshroom", CHESTNUT_NOXSHROOM, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxcap_cap", CHESTNUT_NOXCAP_CAP, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxcap_stem", CHESTNUT_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("stripped_chestnut_noxcap_stem", STRIPPED_CHESTNUT_NOXCAP_STEM, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxcap_gills", CHESTNUT_NOXCAP_GILLS, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_planks", CHESTNUT_NOXWOOD_PLANKS, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_stairs", CHESTNUT_NOXWOOD_STAIRS, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_slab", CHESTNUT_NOXWOOD_SLAB, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_fence", CHESTNUT_NOXWOOD_FENCE, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_fence_gate", CHESTNUT_NOXWOOD_FENCE_GATE, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_door", CHESTNUT_NOXWOOD_DOOR, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_trapdoor", CHESTNUT_NOXWOOD_TRAPDOOR, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_pressure_plate", CHESTNUT_NOXWOOD_PRESSURE_PLATE, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_button", CHESTNUT_NOXWOOD_BUTTON, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_beam", CHESTNUT_NOXWOOD_BEAM, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_amphora", CHESTNUT_NOXWOOD_AMPHORA, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_lantern", CHESTNUT_NOXWOOD_LANTERN, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_light", CHESTNUT_NOXWOOD_LIGHT, settings, DyeColor.LIME); + registerBlockWithItem("chestnut_noxwood_lamp", CHESTNUT_NOXWOOD_LAMP, settings, DyeColor.LIME); + + registerBlockWithItem("small_red_dragonjag", SMALL_RED_DRAGONJAG, settings, DyeColor.LIME); + registerBlockWithItem("small_green_dragonjag", SMALL_GREEN_DRAGONJAG, settings, DyeColor.LIME); + registerBlockWithItem("small_pink_dragonjag", SMALL_PINK_DRAGONJAG, settings, DyeColor.LIME); + registerBlockWithItem("small_purple_dragonjag", SMALL_PURPLE_DRAGONJAG, settings, DyeColor.LIME); + registerBlockWithItem("small_black_dragonjag", SMALL_BLACK_DRAGONJAG, settings, DyeColor.LIME); + registerBlock("tall_red_dragonjag", TALL_RED_DRAGONJAG); + registerBlock("tall_green_dragonjag", TALL_GREEN_DRAGONJAG); + registerBlock("tall_pink_dragonjag", TALL_PINK_DRAGONJAG); + registerBlock("tall_purple_dragonjag", TALL_PURPLE_DRAGONJAG); + registerBlock("tall_black_dragonjag", TALL_BLACK_DRAGONJAG); + + registerBlock("aloe", ALOE); + registerBlock("sawblade_holly_bush", SAWBLADE_HOLLY_BUSH); + registerBlockWithItem("bristle_sprouts", BRISTLE_SPROUTS, settings, DyeColor.LIME); + registerBlockWithItem("doombloom", DOOMBLOOM, settings, DyeColor.BLACK); + registerBlockWithItem("snapping_ivy", SNAPPING_IVY, settings, DyeColor.RED); + + registerBlockWithItem("hummingstone", HUMMINGSTONE, settings, DyeColor.LIME); + registerBlockWithItem("hummingstone_glass", HUMMINGSTONE_GLASS, settings, DyeColor.LIME); + } + private static void registerCrystallarieumGrowingBlocks(FabricItemSettings settings) { // vanilla registerBlockWithItem("small_coal_bud", SMALL_COAL_BUD, settings, DyeColor.BROWN); @@ -1160,7 +1487,7 @@ private static void registerMagicalBlocks(FabricItemSettings settings) { registerBlockWithItem("private_chest", PRIVATE_CHEST, settings, DyeColor.BLUE); registerBlockWithItem("compacting_chest", COMPACTING_CHEST, settings, DyeColor.YELLOW); registerBlockWithItem("restocking_chest", RESTOCKING_CHEST, settings, DyeColor.YELLOW); - registerBlockWithItem("sucking_chest", SUCKING_CHEST, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("black_hole_chest", BLACK_HOLE_CHEST, settings, DyeColor.LIGHT_GRAY); registerBlockWithItem("ender_hopper", ENDER_HOPPER, settings, DyeColor.PURPLE); registerBlockWithItem("ender_dropper", ENDER_DROPPER, settings, DyeColor.PURPLE); @@ -1221,15 +1548,16 @@ private static void registerSpiritTree(FabricItemSettings settings) { } private static void registerOreBlocks(FabricItemSettings settings, FabricItemSettings settingsFireproof) { - registerBlockWithItem("sparklestone_ore", SPARKLESTONE_ORE, settings, DyeColor.YELLOW); - registerBlockWithItem("deepslate_sparklestone_ore", DEEPSLATE_SPARKLESTONE_ORE, settings, DyeColor.YELLOW); - registerBlockWithItem("blackslag_sparklestone_ore", BLACKSLAG_SPARKLESTONE_ORE, settings, DyeColor.YELLOW); + registerBlockWithItem("shimmerstone_ore", SHIMMERSTONE_ORE, settings, DyeColor.YELLOW); + registerBlockWithItem("deepslate_shimmerstone_ore", DEEPSLATE_SHIMMERSTONE_ORE, settings, DyeColor.YELLOW); + registerBlockWithItem("blackslag_shimmerstone_ore", BLACKSLAG_SHIMMERSTONE_ORE, settings, DyeColor.YELLOW); registerBlockWithItem("azurite_ore", AZURITE_ORE, settings, DyeColor.BLUE); registerBlockWithItem("deepslate_azurite_ore", DEEPSLATE_AZURITE_ORE, settings, DyeColor.BLUE); + registerBlockWithItem("blackslag_azurite_ore", BLACKSLAG_AZURITE_ORE, settings, DyeColor.BLUE); - registerBlockWithItem("scarlet_ore", SCARLET_ORE, new FloatBlockItem(SCARLET_ORE, settingsFireproof, 1.01F), DyeColor.RED); - registerBlockWithItem("paletur_ore", PALETUR_ORE, new FloatBlockItem(PALETUR_ORE, settings, 0.99F), DyeColor.CYAN); + registerBlockWithItem("stratine_ore", STRATINE_ORE, new FloatBlockItem(STRATINE_ORE, settingsFireproof, 1.01F), DyeColor.RED); + registerBlockWithItem("paltaeria_ore", PALTAERIA_ORE, new FloatBlockItem(PALTAERIA_ORE, settings, 0.99F), DyeColor.CYAN); registerBlockWithItem("small_bismuth_bud", SMALL_BISMUTH_BUD, Tab.RESOURCES.settings(Rarity.UNCOMMON), DyeColor.CYAN); registerBlockWithItem("large_bismuth_bud", LARGE_BISMUTH_BUD, Tab.RESOURCES.settings(Rarity.UNCOMMON), DyeColor.CYAN); @@ -1244,8 +1572,8 @@ private static void registerOreBlocks(FabricItemSettings settings, FabricItemSet registerBlockWithItem("malachite_cluster", MALACHITE_CLUSTER, Tab.RESOURCES.settings(Rarity.UNCOMMON), DyeColor.GREEN); registerBlockWithItem("malachite_block", MALACHITE_BLOCK, Tab.RESOURCES.settings(Rarity.UNCOMMON), DyeColor.GREEN); - registerBlockWithItem("blackslag", BLACKSLAG, settings, DyeColor.BLACK); registerBlockWithItem("blackslag_coal_ore", BLACKSLAG_COAL_ORE, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_copper_ore", BLACKSLAG_COPPER_ORE, settings, DyeColor.BLACK); registerBlockWithItem("blackslag_iron_ore", BLACKSLAG_IRON_ORE, settings, DyeColor.BROWN); registerBlockWithItem("blackslag_gold_ore", BLACKSLAG_GOLD_ORE, settings, DyeColor.YELLOW); registerBlockWithItem("blackslag_diamond_ore", BLACKSLAG_DIAMOND_ORE, settings, DyeColor.LIGHT_BLUE); @@ -1266,10 +1594,11 @@ private static void registerOreStorageBlocks(FabricItemSettings settings, Fabric registerBlockWithItem("spectral_shard_block", SPECTRAL_SHARD_BLOCK, Tab.DECORATION.settings(Rarity.RARE), DyeColor.WHITE); registerBlockWithItem("azurite_block", AZURITE_BLOCK, Tab.DECORATION.settings(), DyeColor.BLUE); - registerBlockWithItem("sparklestone_block", SPARKLESTONE_BLOCK, Tab.DECORATION.settings(), DyeColor.YELLOW); - registerBlockWithItem("scarlet_fragment_block", SCARLET_FRAGMENT_BLOCK, new FloatBlockItem(SCARLET_FRAGMENT_BLOCK, settingsFireproof, 1.02F), DyeColor.RED); - registerBlockWithItem("paletur_fragment_block", PALETUR_FRAGMENT_BLOCK, new FloatBlockItem(PALETUR_FRAGMENT_BLOCK, settings, 0.98F), DyeColor.CYAN); + registerBlockWithItem("shimmerstone_block", SHIMMERSTONE_BLOCK, Tab.DECORATION.settings(), DyeColor.YELLOW); + registerBlockWithItem("stratine_fragment_block", STRATINE_FRAGMENT_BLOCK, new FloatBlockItem(STRATINE_FRAGMENT_BLOCK, settingsFireproof, 1.02F), DyeColor.RED); + registerBlockWithItem("paltaeria_fragment_block", PALTAERIA_FRAGMENT_BLOCK, new FloatBlockItem(PALTAERIA_FRAGMENT_BLOCK, settings, 0.98F), DyeColor.CYAN); registerBlockWithItem("hover_block", HOVER_BLOCK, new FloatBlockItem(HOVER_BLOCK, settings, 0.996F), DyeColor.GREEN); + registerBlockWithItem("dragonbone", DRAGONBONE, Tab.DECORATION.settings().rarity(Rarity.UNCOMMON), DyeColor.GREEN); } private static void registerColoredLamps(FabricItemSettings settings) { @@ -1302,15 +1631,15 @@ private static void registerGemstoneGlass(FabricItemSettings settings) { } private static void registerPlayerOnlyGlass(FabricItemSettings settings) { - registerBlockWithItem("vanilla_player_only_glass", VANILLA_PLAYER_ONLY_GLASS, settings, DyeColor.WHITE); - registerBlockWithItem("tinted_player_only_glass", TINTED_PLAYER_ONLY_GLASS, settings, DyeColor.BLACK); - registerBlockWithItem("glowing_player_only_glass", RADIANT_PLAYER_ONLY_GLASS, settings, DyeColor.YELLOW); - - registerBlockWithItem("topaz_player_only_glass", TOPAZ_PLAYER_ONLY_GLASS, settings, DyeColor.CYAN); - registerBlockWithItem("amethyst_player_only_glass", AMETHYST_PLAYER_ONLY_GLASS, settings, DyeColor.MAGENTA); - registerBlockWithItem("citrine_player_only_glass", CITRINE_PLAYER_ONLY_GLASS, settings, DyeColor.YELLOW); - registerBlockWithItem("onyx_player_only_glass", ONYX_PLAYER_ONLY_GLASS, settings, DyeColor.BLACK); - registerBlockWithItem("moonstone_player_only_glass", MOONSTONE_PLAYER_ONLY_GLASS, settings, DyeColor.WHITE); + registerBlockWithItem("vanilla_semi_permeable_glass", VANILLA_SEMI_PERMEABLE_GLASS, settings, DyeColor.WHITE); + registerBlockWithItem("tinted_semi_permeable_glass", TINTED_SEMI_PERMEABLE_GLASS, settings, DyeColor.BLACK); + registerBlockWithItem("glowing_semi_permeable_glass", RADIANT_SEMI_PERMEABLE_GLASS, settings, DyeColor.YELLOW); + + registerBlockWithItem("topaz_semi_permeable_glass", TOPAZ_SEMI_PERMEABLE_GLASS, settings, DyeColor.CYAN); + registerBlockWithItem("amethyst_semi_permeable_glass", AMETHYST_SEMI_PERMEABLE_GLASS, settings, DyeColor.MAGENTA); + registerBlockWithItem("citrine_semi_permeable_glass", CITRINE_SEMI_PERMEABLE_GLASS, settings, DyeColor.YELLOW); + registerBlockWithItem("onyx_semi_permeable_glass", ONYX_SEMI_PERMEABLE_GLASS, settings, DyeColor.BLACK); + registerBlockWithItem("moonstone_semi_permeable_glass", MOONSTONE_SEMI_PERMEABLE_GLASS, settings, DyeColor.WHITE); } private static void registerGemstoneChimes(FabricItemSettings settings) { @@ -1334,10 +1663,6 @@ private static void registerStoneBlocks(FabricItemSettings settings) { registerBlockWithItem("smooth_basalt_wall", SMOOTH_BASALT_WALL, settings, DyeColor.BROWN); registerBlockWithItem("smooth_basalt_stairs", SMOOTH_BASALT_STAIRS, settings, DyeColor.BROWN); - registerBlockWithItem("calcite_slab", CALCITE_SLAB, settings, DyeColor.BROWN); - registerBlockWithItem("calcite_wall", CALCITE_WALL, settings, DyeColor.BROWN); - registerBlockWithItem("calcite_stairs", CALCITE_STAIRS, settings, DyeColor.BROWN); - registerBlockWithItem("polished_basalt", POLISHED_BASALT, settings, DyeColor.BROWN); registerBlockWithItem("polished_basalt_pillar", POLISHED_BASALT_PILLAR, settings, DyeColor.BROWN); registerBlockWithItem("polished_basalt_crest", POLISHED_BASALT_CREST, settings, DyeColor.BROWN); @@ -1346,10 +1671,29 @@ private static void registerStoneBlocks(FabricItemSettings settings) { registerBlockWithItem("polished_basalt_slab", POLISHED_BASALT_SLAB, settings, DyeColor.BROWN); registerBlockWithItem("polished_basalt_wall", POLISHED_BASALT_WALL, settings, DyeColor.BROWN); registerBlockWithItem("polished_basalt_stairs", POLISHED_BASALT_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("basalt_bricks", BASALT_BRICKS, settings, DyeColor.BROWN); registerBlockWithItem("basalt_brick_slab", BASALT_BRICK_SLAB, settings, DyeColor.BROWN); registerBlockWithItem("basalt_brick_wall", BASALT_BRICK_WALL, settings, DyeColor.BROWN); registerBlockWithItem("basalt_brick_stairs", BASALT_BRICK_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("cracked_basalt_bricks", CRACKED_BASALT_BRICKS, settings, DyeColor.BROWN); + + registerBlockWithItem("basalt_tiles", BASALT_TILES, settings, DyeColor.BROWN); + registerBlockWithItem("basalt_tile_stairs", BASALT_TILE_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("basalt_tile_slab", BASALT_TILE_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("basalt_tile_wall", BASALT_TILE_WALL, settings, DyeColor.BROWN); + registerBlockWithItem("cracked_basalt_tiles", CRACKED_BASALT_TILES, settings, DyeColor.BROWN); + + registerBlockWithItem("azurite_chiseled_basalt", AZURITE_CHISELED_BASALT, settings, DyeColor.BROWN); + registerBlockWithItem("malachite_chiseled_basalt", MALACHITE_CHISELED_BASALT, settings, DyeColor.BROWN); + + registerBlockWithItem("polished_basalt_button", POLISHED_BASALT_BUTTON, settings, DyeColor.BROWN); + registerBlockWithItem("polished_basalt_pressure_plate", POLISHED_BASALT_PRESSURE_PLATE, settings, DyeColor.BROWN); + + + registerBlockWithItem("calcite_slab", CALCITE_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("calcite_wall", CALCITE_WALL, settings, DyeColor.BROWN); + registerBlockWithItem("calcite_stairs", CALCITE_STAIRS, settings, DyeColor.BROWN); registerBlockWithItem("polished_calcite", POLISHED_CALCITE, settings, DyeColor.BROWN); registerBlockWithItem("polished_calcite_pillar", POLISHED_CALCITE_PILLAR, settings, DyeColor.BROWN); @@ -1359,10 +1703,92 @@ private static void registerStoneBlocks(FabricItemSettings settings) { registerBlockWithItem("polished_calcite_slab", POLISHED_CALCITE_SLAB, settings, DyeColor.BROWN); registerBlockWithItem("polished_calcite_wall", POLISHED_CALCITE_WALL, settings, DyeColor.BROWN); registerBlockWithItem("polished_calcite_stairs", POLISHED_CALCITE_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("calcite_bricks", CALCITE_BRICKS, settings, DyeColor.BROWN); registerBlockWithItem("calcite_brick_slab", CALCITE_BRICK_SLAB, settings, DyeColor.BROWN); registerBlockWithItem("calcite_brick_wall", CALCITE_BRICK_WALL, settings, DyeColor.BROWN); registerBlockWithItem("calcite_brick_stairs", CALCITE_BRICK_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("cracked_calcite_bricks", CRACKED_CALCITE_BRICKS, settings, DyeColor.BROWN); + + registerBlockWithItem("calcite_tiles", CALCITE_TILES, settings, DyeColor.BROWN); + registerBlockWithItem("calcite_tile_stairs", CALCITE_TILE_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("calcite_tile_slab", CALCITE_TILE_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("calcite_tile_wall", CALCITE_TILE_WALL, settings, DyeColor.BROWN); + registerBlockWithItem("cracked_calcite_tiles", CRACKED_CALCITE_TILES, settings, DyeColor.BROWN); + + registerBlockWithItem("azurite_chiseled_calcite", AZURITE_CHISELED_CALCITE, settings, DyeColor.BROWN); + registerBlockWithItem("malachite_chiseled_calcite", MALACHITE_CHISELED_CALCITE, settings, DyeColor.BROWN); + + registerBlockWithItem("polished_calcite_button", POLISHED_CALCITE_BUTTON, settings, DyeColor.BROWN); + registerBlockWithItem("polished_calcite_pressure_plate", POLISHED_CALCITE_PRESSURE_PLATE, settings, DyeColor.BROWN); + + + registerBlockWithItem("blackslag", BLACKSLAG, settings, DyeColor.BLACK); + registerBlockWithItem("cobbled_blackslag", COBBLED_BLACKSLAG, settings, DyeColor.BLACK); + registerBlockWithItem("cobbled_blackslag_stairs", COBBLED_BLACKSLAG_STAIRS, settings, DyeColor.BLACK); + registerBlockWithItem("cobbled_blackslag_slab", COBBLED_BLACKSLAG_SLAB, settings, DyeColor.BLACK); + registerBlockWithItem("cobbled_blackslag_wall", COBBLED_BLACKSLAG_WALL, settings, DyeColor.BLACK); + registerBlockWithItem("polished_blackslag", POLISHED_BLACKSLAG, settings, DyeColor.BLACK); + registerBlockWithItem("polished_blackslag_stairs", POLISHED_BLACKSLAG_STAIRS, settings, DyeColor.BLACK); + registerBlockWithItem("polished_blackslag_slab", POLISHED_BLACKSLAG_SLAB, settings, DyeColor.BLACK); + registerBlockWithItem("polished_blackslag_wall", POLISHED_BLACKSLAG_WALL, settings, DyeColor.BLACK); + + registerBlockWithItem("blackslag_tiles", BLACKSLAG_TILES, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_tile_stairs", BLACKSLAG_TILE_STAIRS, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_tile_slab", BLACKSLAG_TILE_SLAB, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_tile_wall", BLACKSLAG_TILE_WALL, settings, DyeColor.BLACK); + registerBlockWithItem("cracked_blackslag_tiles", CRACKED_BLACKSLAG_TILES, settings, DyeColor.BLACK); + + registerBlockWithItem("blackslag_bricks", BLACKSLAG_BRICKS, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_brick_stairs", BLACKSLAG_BRICK_STAIRS, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_brick_slab", BLACKSLAG_BRICK_SLAB, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_brick_wall", BLACKSLAG_BRICK_WALL, settings, DyeColor.BLACK); + registerBlockWithItem("cracked_blackslag_bricks", CRACKED_BLACKSLAG_BRICKS, settings, DyeColor.BLACK); + + registerBlockWithItem("polished_blackslag_pillar", POLISHED_BLACKSLAG_PILLAR, settings, DyeColor.BLACK); + registerBlockWithItem("chiseled_polished_blackslag", CHISELED_POLISHED_BLACKSLAG, settings, DyeColor.BLACK); + registerBlockWithItem("ancient_chiseled_polished_blackslag", ANCIENT_CHISELED_POLISHED_BLACKSLAG, Tab.DECORATION.settings(Rarity.UNCOMMON), DyeColor.BLACK); + registerBlockWithItem("polished_blackslag_button", POLISHED_BLACKSLAG_BUTTON, settings, DyeColor.BLACK); + registerBlockWithItem("polished_blackslag_pressure_plate", POLISHED_BLACKSLAG_PRESSURE_PLATE, settings, DyeColor.BLACK); + registerBlockWithItem("infested_blackslag", INFESTED_BLACKSLAG, settings, DyeColor.BLACK); + + + registerBlockWithItem("shale_clay", SHALE_CLAY, settings, DyeColor.BROWN); + + registerBlockWithItem("polished_shale_clay", POLISHED_SHALE_CLAY, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_polished_shale_clay", EXPOSED_POLISHED_SHALE_CLAY, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_polished_shale_clay", WEATHERED_POLISHED_SHALE_CLAY, settings, DyeColor.BROWN); + + registerBlockWithItem("polished_shale_clay_stairs", POLISHED_SHALE_CLAY_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("polished_shale_clay_slab", POLISHED_SHALE_CLAY_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_polished_shale_clay_stairs", EXPOSED_POLISHED_SHALE_CLAY_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_polished_shale_clay_slab", EXPOSED_POLISHED_SHALE_CLAY_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_polished_shale_clay_stairs", WEATHERED_POLISHED_SHALE_CLAY_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_polished_shale_clay_slab", WEATHERED_POLISHED_SHALE_CLAY_SLAB, settings, DyeColor.BROWN); + + registerBlockWithItem("shale_clay_bricks", SHALE_CLAY_BRICKS, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_shale_clay_bricks", EXPOSED_SHALE_CLAY_BRICKS, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_shale_clay_bricks", WEATHERED_SHALE_CLAY_BRICKS, settings, DyeColor.BROWN); + + registerBlockWithItem("shale_clay_brick_stairs", SHALE_CLAY_BRICK_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("shale_clay_brick_slab", SHALE_CLAY_BRICK_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_shale_clay_brick_stairs", EXPOSED_SHALE_CLAY_BRICK_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_shale_clay_brick_slab", EXPOSED_SHALE_CLAY_BRICK_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_shale_clay_brick_stairs", WEATHERED_SHALE_CLAY_BRICK_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_shale_clay_brick_slab", WEATHERED_SHALE_CLAY_BRICK_SLAB, settings, DyeColor.BROWN); + + registerBlockWithItem("shale_clay_tiles", SHALE_CLAY_TILES, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_shale_clay_tiles", EXPOSED_SHALE_CLAY_TILES, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_shale_clay_tiles", WEATHERED_SHALE_CLAY_TILES, settings, DyeColor.BROWN); + + registerBlockWithItem("shale_clay_tile_stairs", SHALE_CLAY_TILE_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("shale_clay_tile_slab", SHALE_CLAY_TILE_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_shale_clay_tile_stairs", EXPOSED_SHALE_CLAY_TILE_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("exposed_shale_clay_tile_slab", EXPOSED_SHALE_CLAY_TILE_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_shale_clay_tile_stairs", WEATHERED_SHALE_CLAY_TILE_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("weathered_shale_clay_tile_slab", WEATHERED_SHALE_CLAY_TILE_SLAB, settings, DyeColor.BROWN); + + registerBlockWithItem("slush", SLUSH, settings, DyeColor.BROWN); } private static void registerRunes(FabricItemSettings settings) { @@ -1445,6 +1871,23 @@ private static void registerColoredWood(FabricItemSettings settings) { registerBlockWithItem("red_sapling", RED_SAPLING, settings, DyeColor.RED); registerBlockWithItem("black_sapling", BLACK_SAPLING, settings, DyeColor.BLACK); + registerBlock("potted_white_sapling", POTTED_WHITE_SAPLING); + registerBlock("potted_orange_sapling", POTTED_ORANGE_SAPLING); + registerBlock("potted_magenta_sapling", POTTED_MAGENTA_SAPLING); + registerBlock("potted_light_blue_sapling", POTTED_LIGHT_BLUE_SAPLING); + registerBlock("potted_yellow_sapling", POTTED_YELLOW_SAPLING); + registerBlock("potted_lime_sapling", POTTED_LIME_SAPLING); + registerBlock("potted_pink_sapling", POTTED_PINK_SAPLING); + registerBlock("potted_gray_sapling", POTTED_GRAY_SAPLING); + registerBlock("potted_light_gray_sapling", POTTED_LIGHT_GRAY_SAPLING); + registerBlock("potted_cyan_sapling", POTTED_CYAN_SAPLING); + registerBlock("potted_purple_sapling", POTTED_PURPLE_SAPLING); + registerBlock("potted_blue_sapling", POTTED_BLUE_SAPLING); + registerBlock("potted_brown_sapling", POTTED_BROWN_SAPLING); + registerBlock("potted_green_sapling", POTTED_GREEN_SAPLING); + registerBlock("potted_red_sapling", POTTED_RED_SAPLING); + registerBlock("potted_black_sapling", POTTED_BLACK_SAPLING); + registerBlockWithItem("white_planks", WHITE_PLANKS, settings, DyeColor.WHITE); registerBlockWithItem("orange_planks", ORANGE_PLANKS, settings, DyeColor.ORANGE); registerBlockWithItem("magenta_planks", MAGENTA_PLANKS, settings, DyeColor.MAGENTA); @@ -1462,107 +1905,107 @@ private static void registerColoredWood(FabricItemSettings settings) { registerBlockWithItem("red_planks", RED_PLANKS, settings, DyeColor.RED); registerBlockWithItem("black_planks", BLACK_PLANKS, settings, DyeColor.BLACK); - registerBlockWithItem("white_plank_stairs", WHITE_PLANK_STAIRS, settings, DyeColor.WHITE); - registerBlockWithItem("orange_plank_stairs", ORANGE_PLANK_STAIRS, settings, DyeColor.ORANGE); - registerBlockWithItem("magenta_plank_stairs", MAGENTA_PLANK_STAIRS, settings, DyeColor.MAGENTA); - registerBlockWithItem("light_blue_plank_stairs", LIGHT_BLUE_PLANK_STAIRS, settings, DyeColor.LIGHT_BLUE); - registerBlockWithItem("yellow_plank_stairs", YELLOW_PLANK_STAIRS, settings, DyeColor.YELLOW); - registerBlockWithItem("lime_plank_stairs", LIME_PLANK_STAIRS, settings, DyeColor.LIME); - registerBlockWithItem("pink_plank_stairs", PINK_PLANK_STAIRS, settings, DyeColor.PINK); - registerBlockWithItem("gray_plank_stairs", GRAY_PLANK_STAIRS, settings, DyeColor.GRAY); - registerBlockWithItem("light_gray_plank_stairs", LIGHT_GRAY_PLANK_STAIRS, settings, DyeColor.LIGHT_GRAY); - registerBlockWithItem("cyan_plank_stairs", CYAN_PLANK_STAIRS, settings, DyeColor.CYAN); - registerBlockWithItem("purple_plank_stairs", PURPLE_PLANK_STAIRS, settings, DyeColor.PURPLE); - registerBlockWithItem("blue_plank_stairs", BLUE_PLANK_STAIRS, settings, DyeColor.BLUE); - registerBlockWithItem("brown_plank_stairs", BROWN_PLANK_STAIRS, settings, DyeColor.BROWN); - registerBlockWithItem("green_plank_stairs", GREEN_PLANK_STAIRS, settings, DyeColor.GREEN); - registerBlockWithItem("red_plank_stairs", RED_PLANK_STAIRS, settings, DyeColor.RED); - registerBlockWithItem("black_plank_stairs", BLACK_PLANK_STAIRS, settings, DyeColor.BLACK); - - registerBlockWithItem("white_plank_pressure_plate", WHITE_PLANK_PRESSURE_PLATE, settings, DyeColor.WHITE); - registerBlockWithItem("orange_plank_pressure_plate", ORANGE_PLANK_PRESSURE_PLATE, settings, DyeColor.ORANGE); - registerBlockWithItem("magenta_plank_pressure_plate", MAGENTA_PLANK_PRESSURE_PLATE, settings, DyeColor.MAGENTA); - registerBlockWithItem("light_blue_plank_pressure_plate", LIGHT_BLUE_PLANK_PRESSURE_PLATE, settings, DyeColor.LIGHT_BLUE); - registerBlockWithItem("yellow_plank_pressure_plate", YELLOW_PLANK_PRESSURE_PLATE, settings, DyeColor.YELLOW); - registerBlockWithItem("lime_plank_pressure_plate", LIME_PLANK_PRESSURE_PLATE, settings, DyeColor.LIME); - registerBlockWithItem("pink_plank_pressure_plate", PINK_PLANK_PRESSURE_PLATE, settings, DyeColor.PINK); - registerBlockWithItem("gray_plank_pressure_plate", GRAY_PLANK_PRESSURE_PLATE, settings, DyeColor.GRAY); - registerBlockWithItem("light_gray_plank_pressure_plate", LIGHT_GRAY_PLANK_PRESSURE_PLATE, settings, DyeColor.LIGHT_GRAY); - registerBlockWithItem("cyan_plank_pressure_plate", CYAN_PLANK_PRESSURE_PLATE, settings, DyeColor.CYAN); - registerBlockWithItem("purple_plank_pressure_plate", PURPLE_PLANK_PRESSURE_PLATE, settings, DyeColor.PURPLE); - registerBlockWithItem("blue_plank_pressure_plate", BLUE_PLANK_PRESSURE_PLATE, settings, DyeColor.BLUE); - registerBlockWithItem("brown_plank_pressure_plate", BROWN_PLANK_PRESSURE_PLATE, settings, DyeColor.BROWN); - registerBlockWithItem("green_plank_pressure_plate", GREEN_PLANK_PRESSURE_PLATE, settings, DyeColor.GREEN); - registerBlockWithItem("red_plank_pressure_plate", RED_PLANK_PRESSURE_PLATE, settings, DyeColor.RED); - registerBlockWithItem("black_plank_pressure_plate", BLACK_PLANK_PRESSURE_PLATE, settings, DyeColor.BLACK); - - registerBlockWithItem("white_plank_fence", WHITE_PLANK_FENCE, settings, DyeColor.WHITE); - registerBlockWithItem("orange_plank_fence", ORANGE_PLANK_FENCE, settings, DyeColor.ORANGE); - registerBlockWithItem("magenta_plank_fence", MAGENTA_PLANK_FENCE, settings, DyeColor.MAGENTA); - registerBlockWithItem("light_blue_plank_fence", LIGHT_BLUE_PLANK_FENCE, settings, DyeColor.LIGHT_BLUE); - registerBlockWithItem("yellow_plank_fence", YELLOW_PLANK_FENCE, settings, DyeColor.YELLOW); - registerBlockWithItem("lime_plank_fence", LIME_PLANK_FENCE, settings, DyeColor.LIME); - registerBlockWithItem("pink_plank_fence", PINK_PLANK_FENCE, settings, DyeColor.PINK); - registerBlockWithItem("gray_plank_fence", GRAY_PLANK_FENCE, settings, DyeColor.GRAY); - registerBlockWithItem("light_gray_plank_fence", LIGHT_GRAY_PLANK_FENCE, settings, DyeColor.LIGHT_GRAY); - registerBlockWithItem("cyan_plank_fence", CYAN_PLANK_FENCE, settings, DyeColor.CYAN); - registerBlockWithItem("purple_plank_fence", PURPLE_PLANK_FENCE, settings, DyeColor.PURPLE); - registerBlockWithItem("blue_plank_fence", BLUE_PLANK_FENCE, settings, DyeColor.BLUE); - registerBlockWithItem("brown_plank_fence", BROWN_PLANK_FENCE, settings, DyeColor.BROWN); - registerBlockWithItem("green_plank_fence", GREEN_PLANK_FENCE, settings, DyeColor.GREEN); - registerBlockWithItem("red_plank_fence", RED_PLANK_FENCE, settings, DyeColor.RED); - registerBlockWithItem("black_plank_fence", BLACK_PLANK_FENCE, settings, DyeColor.BLACK); - - registerBlockWithItem("white_plank_fence_gate", WHITE_PLANK_FENCE_GATE, settings, DyeColor.WHITE); - registerBlockWithItem("orange_plank_fence_gate", ORANGE_PLANK_FENCE_GATE, settings, DyeColor.ORANGE); - registerBlockWithItem("magenta_plank_fence_gate", MAGENTA_PLANK_FENCE_GATE, settings, DyeColor.MAGENTA); - registerBlockWithItem("light_blue_plank_fence_gate", LIGHT_BLUE_PLANK_FENCE_GATE, settings, DyeColor.LIGHT_BLUE); - registerBlockWithItem("yellow_plank_fence_gate", YELLOW_PLANK_FENCE_GATE, settings, DyeColor.YELLOW); - registerBlockWithItem("lime_plank_fence_gate", LIME_PLANK_FENCE_GATE, settings, DyeColor.LIME); - registerBlockWithItem("pink_plank_fence_gate", PINK_PLANK_FENCE_GATE, settings, DyeColor.PINK); - registerBlockWithItem("gray_plank_fence_gate", GRAY_PLANK_FENCE_GATE, settings, DyeColor.GRAY); - registerBlockWithItem("light_gray_plank_fence_gate", LIGHT_GRAY_PLANK_FENCE_GATE, settings, DyeColor.LIGHT_GRAY); - registerBlockWithItem("cyan_plank_fence_gate", CYAN_PLANK_FENCE_GATE, settings, DyeColor.CYAN); - registerBlockWithItem("purple_plank_fence_gate", PURPLE_PLANK_FENCE_GATE, settings, DyeColor.PURPLE); - registerBlockWithItem("blue_plank_fence_gate", BLUE_PLANK_FENCE_GATE, settings, DyeColor.BLUE); - registerBlockWithItem("brown_plank_fence_gate", BROWN_PLANK_FENCE_GATE, settings, DyeColor.BROWN); - registerBlockWithItem("green_plank_fence_gate", GREEN_PLANK_FENCE_GATE, settings, DyeColor.GREEN); - registerBlockWithItem("red_plank_fence_gate", RED_PLANK_FENCE_GATE, settings, DyeColor.RED); - registerBlockWithItem("black_plank_fence_gate", BLACK_PLANK_FENCE_GATE, settings, DyeColor.BLACK); - - registerBlockWithItem("white_plank_button", WHITE_PLANK_BUTTON, settings, DyeColor.WHITE); - registerBlockWithItem("orange_plank_button", ORANGE_PLANK_BUTTON, settings, DyeColor.ORANGE); - registerBlockWithItem("magenta_plank_button", MAGENTA_PLANK_BUTTON, settings, DyeColor.MAGENTA); - registerBlockWithItem("light_blue_plank_button", LIGHT_BLUE_PLANK_BUTTON, settings, DyeColor.LIGHT_BLUE); - registerBlockWithItem("yellow_plank_button", YELLOW_PLANK_BUTTON, settings, DyeColor.YELLOW); - registerBlockWithItem("lime_plank_button", LIME_PLANK_BUTTON, settings, DyeColor.LIME); - registerBlockWithItem("pink_plank_button", PINK_PLANK_BUTTON, settings, DyeColor.PINK); - registerBlockWithItem("gray_plank_button", GRAY_PLANK_BUTTON, settings, DyeColor.GRAY); - registerBlockWithItem("light_gray_plank_button", LIGHT_GRAY_PLANK_BUTTON, settings, DyeColor.LIGHT_GRAY); - registerBlockWithItem("cyan_plank_button", CYAN_PLANK_BUTTON, settings, DyeColor.CYAN); - registerBlockWithItem("purple_plank_button", PURPLE_PLANK_BUTTON, settings, DyeColor.PURPLE); - registerBlockWithItem("blue_plank_button", BLUE_PLANK_BUTTON, settings, DyeColor.BLUE); - registerBlockWithItem("brown_plank_button", BROWN_PLANK_BUTTON, settings, DyeColor.BROWN); - registerBlockWithItem("green_plank_button", GREEN_PLANK_BUTTON, settings, DyeColor.GREEN); - registerBlockWithItem("red_plank_button", RED_PLANK_BUTTON, settings, DyeColor.RED); - registerBlockWithItem("black_plank_button", BLACK_PLANK_BUTTON, settings, DyeColor.BLACK); - - registerBlockWithItem("white_plank_slab", WHITE_PLANK_SLAB, settings, DyeColor.WHITE); - registerBlockWithItem("orange_plank_slab", ORANGE_PLANK_SLAB, settings, DyeColor.ORANGE); - registerBlockWithItem("magenta_plank_slab", MAGENTA_PLANK_SLAB, settings, DyeColor.MAGENTA); - registerBlockWithItem("light_blue_plank_slab", LIGHT_BLUE_PLANK_SLAB, settings, DyeColor.LIGHT_BLUE); - registerBlockWithItem("yellow_plank_slab", YELLOW_PLANK_SLAB, settings, DyeColor.YELLOW); - registerBlockWithItem("lime_plank_slab", LIME_PLANK_SLAB, settings, DyeColor.LIME); - registerBlockWithItem("pink_plank_slab", PINK_PLANK_SLAB, settings, DyeColor.PINK); - registerBlockWithItem("gray_plank_slab", GRAY_PLANK_SLAB, settings, DyeColor.GRAY); - registerBlockWithItem("light_gray_plank_slab", LIGHT_GRAY_PLANK_SLAB, settings, DyeColor.LIGHT_GRAY); - registerBlockWithItem("cyan_plank_slab", CYAN_PLANK_SLAB, settings, DyeColor.CYAN); - registerBlockWithItem("purple_plank_slab", PURPLE_PLANK_SLAB, settings, DyeColor.PURPLE); - registerBlockWithItem("blue_plank_slab", BLUE_PLANK_SLAB, settings, DyeColor.BLUE); - registerBlockWithItem("brown_plank_slab", BROWN_PLANK_SLAB, settings, DyeColor.BROWN); - registerBlockWithItem("green_plank_slab", GREEN_PLANK_SLAB, settings, DyeColor.GREEN); - registerBlockWithItem("red_plank_slab", RED_PLANK_SLAB, settings, DyeColor.RED); - registerBlockWithItem("black_plank_slab", BLACK_PLANK_SLAB, settings, DyeColor.BLACK); + registerBlockWithItem("white_stairs", WHITE_STAIRS, settings, DyeColor.WHITE); + registerBlockWithItem("orange_stairs", ORANGE_STAIRS, settings, DyeColor.ORANGE); + registerBlockWithItem("magenta_stairs", MAGENTA_STAIRS, settings, DyeColor.MAGENTA); + registerBlockWithItem("light_blue_stairs", LIGHT_BLUE_STAIRS, settings, DyeColor.LIGHT_BLUE); + registerBlockWithItem("yellow_stairs", YELLOW_STAIRS, settings, DyeColor.YELLOW); + registerBlockWithItem("lime_stairs", LIME_STAIRS, settings, DyeColor.LIME); + registerBlockWithItem("pink_stairs", PINK_STAIRS, settings, DyeColor.PINK); + registerBlockWithItem("gray_stairs", GRAY_STAIRS, settings, DyeColor.GRAY); + registerBlockWithItem("light_gray_stairs", LIGHT_GRAY_STAIRS, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("cyan_stairs", CYAN_STAIRS, settings, DyeColor.CYAN); + registerBlockWithItem("purple_stairs", PURPLE_STAIRS, settings, DyeColor.PURPLE); + registerBlockWithItem("blue_stairs", BLUE_STAIRS, settings, DyeColor.BLUE); + registerBlockWithItem("brown_stairs", BROWN_STAIRS, settings, DyeColor.BROWN); + registerBlockWithItem("green_stairs", GREEN_STAIRS, settings, DyeColor.GREEN); + registerBlockWithItem("red_stairs", RED_STAIRS, settings, DyeColor.RED); + registerBlockWithItem("black_stairs", BLACK_STAIRS, settings, DyeColor.BLACK); + + registerBlockWithItem("white_pressure_plate", WHITE_PRESSURE_PLATE, settings, DyeColor.WHITE); + registerBlockWithItem("orange_pressure_plate", ORANGE_PRESSURE_PLATE, settings, DyeColor.ORANGE); + registerBlockWithItem("magenta_pressure_plate", MAGENTA_PRESSURE_PLATE, settings, DyeColor.MAGENTA); + registerBlockWithItem("light_blue_pressure_plate", LIGHT_BLUE_PRESSURE_PLATE, settings, DyeColor.LIGHT_BLUE); + registerBlockWithItem("yellow_pressure_plate", YELLOW_PRESSURE_PLATE, settings, DyeColor.YELLOW); + registerBlockWithItem("lime_pressure_plate", LIME_PRESSURE_PLATE, settings, DyeColor.LIME); + registerBlockWithItem("pink_pressure_plate", PINK_PRESSURE_PLATE, settings, DyeColor.PINK); + registerBlockWithItem("gray_pressure_plate", GRAY_PRESSURE_PLATE, settings, DyeColor.GRAY); + registerBlockWithItem("light_gray_pressure_plate", LIGHT_GRAY_PRESSURE_PLATE, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("cyan_pressure_plate", CYAN_PRESSURE_PLATE, settings, DyeColor.CYAN); + registerBlockWithItem("purple_pressure_plate", PURPLE_PRESSURE_PLATE, settings, DyeColor.PURPLE); + registerBlockWithItem("blue_pressure_plate", BLUE_PRESSURE_PLATE, settings, DyeColor.BLUE); + registerBlockWithItem("brown_pressure_plate", BROWN_PRESSURE_PLATE, settings, DyeColor.BROWN); + registerBlockWithItem("green_pressure_plate", GREEN_PRESSURE_PLATE, settings, DyeColor.GREEN); + registerBlockWithItem("red_pressure_plate", RED_PRESSURE_PLATE, settings, DyeColor.RED); + registerBlockWithItem("black_pressure_plate", BLACK_PRESSURE_PLATE, settings, DyeColor.BLACK); + + registerBlockWithItem("white_fence", WHITE_FENCE, settings, DyeColor.WHITE); + registerBlockWithItem("orange_fence", ORANGE_FENCE, settings, DyeColor.ORANGE); + registerBlockWithItem("magenta_fence", MAGENTA_FENCE, settings, DyeColor.MAGENTA); + registerBlockWithItem("light_blue_fence", LIGHT_BLUE_FENCE, settings, DyeColor.LIGHT_BLUE); + registerBlockWithItem("yellow_fence", YELLOW_FENCE, settings, DyeColor.YELLOW); + registerBlockWithItem("lime_fence", LIME_FENCE, settings, DyeColor.LIME); + registerBlockWithItem("pink_fence", PINK_FENCE, settings, DyeColor.PINK); + registerBlockWithItem("gray_fence", GRAY_FENCE, settings, DyeColor.GRAY); + registerBlockWithItem("light_gray_fence", LIGHT_GRAY_FENCE, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("cyan_fence", CYAN_FENCE, settings, DyeColor.CYAN); + registerBlockWithItem("purple_fence", PURPLE_FENCE, settings, DyeColor.PURPLE); + registerBlockWithItem("blue_fence", BLUE_FENCE, settings, DyeColor.BLUE); + registerBlockWithItem("brown_fence", BROWN_FENCE, settings, DyeColor.BROWN); + registerBlockWithItem("green_fence", GREEN_FENCE, settings, DyeColor.GREEN); + registerBlockWithItem("red_fence", RED_FENCE, settings, DyeColor.RED); + registerBlockWithItem("black_fence", BLACK_FENCE, settings, DyeColor.BLACK); + + registerBlockWithItem("white_fence_gate", WHITE_FENCE_GATE, settings, DyeColor.WHITE); + registerBlockWithItem("orange_fence_gate", ORANGE_FENCE_GATE, settings, DyeColor.ORANGE); + registerBlockWithItem("magenta_fence_gate", MAGENTA_FENCE_GATE, settings, DyeColor.MAGENTA); + registerBlockWithItem("light_blue_fence_gate", LIGHT_BLUE_FENCE_GATE, settings, DyeColor.LIGHT_BLUE); + registerBlockWithItem("yellow_fence_gate", YELLOW_FENCE_GATE, settings, DyeColor.YELLOW); + registerBlockWithItem("lime_fence_gate", LIME_FENCE_GATE, settings, DyeColor.LIME); + registerBlockWithItem("pink_fence_gate", PINK_FENCE_GATE, settings, DyeColor.PINK); + registerBlockWithItem("gray_fence_gate", GRAY_FENCE_GATE, settings, DyeColor.GRAY); + registerBlockWithItem("light_gray_fence_gate", LIGHT_GRAY_FENCE_GATE, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("cyan_fence_gate", CYAN_FENCE_GATE, settings, DyeColor.CYAN); + registerBlockWithItem("purple_fence_gate", PURPLE_FENCE_GATE, settings, DyeColor.PURPLE); + registerBlockWithItem("blue_fence_gate", BLUE_FENCE_GATE, settings, DyeColor.BLUE); + registerBlockWithItem("brown_fence_gate", BROWN_FENCE_GATE, settings, DyeColor.BROWN); + registerBlockWithItem("green_fence_gate", GREEN_FENCE_GATE, settings, DyeColor.GREEN); + registerBlockWithItem("red_fence_gate", RED_FENCE_GATE, settings, DyeColor.RED); + registerBlockWithItem("black_fence_gate", BLACK_FENCE_GATE, settings, DyeColor.BLACK); + + registerBlockWithItem("white_button", WHITE_BUTTON, settings, DyeColor.WHITE); + registerBlockWithItem("orange_button", ORANGE_BUTTON, settings, DyeColor.ORANGE); + registerBlockWithItem("magenta_button", MAGENTA_BUTTON, settings, DyeColor.MAGENTA); + registerBlockWithItem("light_blue_button", LIGHT_BLUE_BUTTON, settings, DyeColor.LIGHT_BLUE); + registerBlockWithItem("yellow_button", YELLOW_BUTTON, settings, DyeColor.YELLOW); + registerBlockWithItem("lime_button", LIME_BUTTON, settings, DyeColor.LIME); + registerBlockWithItem("pink_button", PINK_BUTTON, settings, DyeColor.PINK); + registerBlockWithItem("gray_button", GRAY_BUTTON, settings, DyeColor.GRAY); + registerBlockWithItem("light_gray_button", LIGHT_GRAY_BUTTON, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("cyan_button", CYAN_BUTTON, settings, DyeColor.CYAN); + registerBlockWithItem("purple_button", PURPLE_BUTTON, settings, DyeColor.PURPLE); + registerBlockWithItem("blue_button", BLUE_BUTTON, settings, DyeColor.BLUE); + registerBlockWithItem("brown_button", BROWN_BUTTON, settings, DyeColor.BROWN); + registerBlockWithItem("green_button", GREEN_BUTTON, settings, DyeColor.GREEN); + registerBlockWithItem("red_button", RED_BUTTON, settings, DyeColor.RED); + registerBlockWithItem("black_button", BLACK_BUTTON, settings, DyeColor.BLACK); + + registerBlockWithItem("white_slab", WHITE_SLAB, settings, DyeColor.WHITE); + registerBlockWithItem("orange_slab", ORANGE_SLAB, settings, DyeColor.ORANGE); + registerBlockWithItem("magenta_slab", MAGENTA_SLAB, settings, DyeColor.MAGENTA); + registerBlockWithItem("light_blue_slab", LIGHT_BLUE_SLAB, settings, DyeColor.LIGHT_BLUE); + registerBlockWithItem("yellow_slab", YELLOW_SLAB, settings, DyeColor.YELLOW); + registerBlockWithItem("lime_slab", LIME_SLAB, settings, DyeColor.LIME); + registerBlockWithItem("pink_slab", PINK_SLAB, settings, DyeColor.PINK); + registerBlockWithItem("gray_slab", GRAY_SLAB, settings, DyeColor.GRAY); + registerBlockWithItem("light_gray_slab", LIGHT_GRAY_SLAB, settings, DyeColor.LIGHT_GRAY); + registerBlockWithItem("cyan_slab", CYAN_SLAB, settings, DyeColor.CYAN); + registerBlockWithItem("purple_slab", PURPLE_SLAB, settings, DyeColor.PURPLE); + registerBlockWithItem("blue_slab", BLUE_SLAB, settings, DyeColor.BLUE); + registerBlockWithItem("brown_slab", BROWN_SLAB, settings, DyeColor.BROWN); + registerBlockWithItem("green_slab", GREEN_SLAB, settings, DyeColor.GREEN); + registerBlockWithItem("red_slab", RED_SLAB, settings, DyeColor.RED); + registerBlockWithItem("black_slab", BLACK_SLAB, settings, DyeColor.BLACK); } private static void registerGlowBlocks(FabricItemSettings settings) { @@ -1585,13 +2028,14 @@ private static void registerGlowBlocks(FabricItemSettings settings) { } public static void registerSparklestoneLights(FabricItemSettings settings) { - registerBlockWithItem("basalt_sparklestone_light", BASALT_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); - registerBlockWithItem("calcite_sparklestone_light", CALCITE_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); - registerBlockWithItem("stone_sparklestone_light", STONE_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); - registerBlockWithItem("granite_sparklestone_light", GRANITE_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); - registerBlockWithItem("diorite_sparklestone_light", DIORITE_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); - registerBlockWithItem("andesite_sparklestone_light", ANDESITE_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); - registerBlockWithItem("deepslate_sparklestone_light", DEEPSLATE_SPARKLESTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("basalt_shimmerstone_light", BASALT_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("calcite_shimmerstone_light", CALCITE_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("stone_shimmerstone_light", STONE_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("granite_shimmerstone_light", GRANITE_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("diorite_shimmerstone_light", DIORITE_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("andesite_shimmerstone_light", ANDESITE_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("deepslate_shimmerstone_light", DEEPSLATE_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); + registerBlockWithItem("blackslag_shimmerstone_light", BLACKSLAG_SHIMMERSTONE_LIGHT, settings, DyeColor.YELLOW); } public static void registerShootingStarBlocks(FabricItemSettings settings) { @@ -1606,9 +2050,8 @@ public static void registerPastelNetworkNodes(FabricItemSettings settings) { registerBlockWithItem("connection_node", CONNECTION_NODE, settings, DyeColor.GREEN); registerBlockWithItem("provider_node", PROVIDER_NODE, settings, DyeColor.GREEN); registerBlockWithItem("storage_node", STORAGE_NODE, settings, DyeColor.GREEN); - registerBlockWithItem("pusher_node", PUSHER_NODE, settings, DyeColor.GREEN); - registerBlockWithItem("puller_node", PULLER_NODE, settings, DyeColor.GREEN); - registerBlockWithItem("interaction_node", INTERACTION_NODE, settings, DyeColor.GREEN); + registerBlockWithItem("sender_node", SENDER_NODE, settings, DyeColor.GREEN); + registerBlockWithItem("gather_node", GATHER_NODE, settings, DyeColor.GREEN); } public static void registerSporeBlossoms(FabricItemSettings settings) { @@ -1658,7 +2101,6 @@ private static void registerGemBlocks(FabricItemSettings settings) { registerBlockWithItem("medium_moonstone_bud", MEDIUM_MOONSTONE_BUD, settings, DyeColor.WHITE); registerBlockWithItem("large_moonstone_bud", LARGE_MOONSTONE_BUD, settings, DyeColor.WHITE); registerBlockWithItem("moonstone_cluster", MOONSTONE_CLUSTER, settings, DyeColor.WHITE); - } private static void registerGemOreBlocks(FabricItemSettings settings) { @@ -1675,10 +2117,18 @@ private static void registerGemOreBlocks(FabricItemSettings settings) { registerBlockWithItem("deepslate_citrine_ore", DEEPSLATE_CITRINE_ORE, settings, DyeColor.YELLOW); registerBlockWithItem("deepslate_onyx_ore", DEEPSLATE_ONYX_ORE, settings, DyeColor.BLACK); registerBlockWithItem("deepslate_moonstone_ore", DEEPSLATE_MOONSTONE_ORE, settings, DyeColor.WHITE); + + // blackslag ores + registerBlockWithItem("blackslag_topaz_ore", BLACKSLAG_TOPAZ_ORE, settings, DyeColor.CYAN); + registerBlockWithItem("blackslag_amethyst_ore", BLACKSLAG_AMETHYST_ORE, settings, DyeColor.MAGENTA); + registerBlockWithItem("blackslag_citrine_ore", BLACKSLAG_CITRINE_ORE, settings, DyeColor.YELLOW); + registerBlockWithItem("blackslag_onyx_ore", BLACKSLAG_ONYX_ORE, settings, DyeColor.BLACK); + registerBlockWithItem("blackslag_moonstone_ore", BLACKSLAG_MOONSTONE_ORE, settings, DyeColor.WHITE); } private static void registerStructureBlocks(FabricItemSettings settings) { - registerBlockWithItem("preservation_controller", PRESERVATION_CONTROLLER, settings, DyeColor.BLUE); + registerBlockWithItem("downstone", DOWNSTONE, settings, DyeColor.BLUE); + registerBlockWithItem("preservation_stone", PRESERVATION_STONE, settings, DyeColor.BLUE); registerBlockWithItem("preservation_bricks", PRESERVATION_BRICKS, settings, DyeColor.BLUE); registerBlockWithItem("shimmering_preservation_bricks", SHIMMERING_PRESERVATION_BRICKS, settings, DyeColor.BLUE); @@ -1689,6 +2139,7 @@ private static void registerStructureBlocks(FabricItemSettings settings) { registerBlockWithItem("preservation_roundel", PRESERVATION_ROUNDEL, settings, DyeColor.BLUE); registerBlockWithItem("dike_gate_fountain", DIKE_GATE_FOUNTAIN, settings, DyeColor.BLUE); registerBlockWithItem("dike_gate", DIKE_GATE, settings, DyeColor.BLUE); + registerBlockWithItem("preservation_controller", PRESERVATION_CONTROLLER, settings, DyeColor.BLUE); registerBlockWithItem("invisible_wall", INVISIBLE_WALL, settings, DyeColor.BLUE); registerBlockWithItem("courier_statue", COURIER_STATUE, settings, DyeColor.BLUE); registerBlockWithItem("treasure_chest", TREASURE_CHEST, settings, DyeColor.BLUE); @@ -1823,12 +2274,12 @@ public static Block getMobWallHead(SpectrumSkullBlock.SpectrumSkullBlockType sku } public static void registerClient() { - + // Crafting Stations BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), PEDESTAL_BASIC_AMETHYST, PEDESTAL_BASIC_CITRINE, PEDESTAL_BASIC_TOPAZ, PEDESTAL_ALL_BASIC, PEDESTAL_ONYX, PEDESTAL_MOONSTONE); BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), FUSION_SHRINE_BASALT, FUSION_SHRINE_CALCITE); BlockRenderLayerMap.INSTANCE.putBlock(ENCHANTER, RenderLayer.getCutout()); - + // Gemstones BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TOPAZ_CLUSTER, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_TOPAZ_BUD, RenderLayer.getCutout()); @@ -1862,34 +2313,55 @@ public static void registerClient() { BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ONYX_GLASS, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.RADIANT_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.RADIANT_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TINTED_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.RADIANT_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TINTED_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.VANILLA_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TOPAZ_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.AMETHYST_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CITRINE_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.MOONSTONE_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ONYX_PLAYER_ONLY_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.VANILLA_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TOPAZ_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.AMETHYST_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CITRINE_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.MOONSTONE_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ONYX_SEMI_PERMEABLE_GLASS, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ENDER_GLASS, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.PARTICLE_SPAWNER, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CREATIVE_PARTICLE_SPAWNER, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CRYSTALLARIEUM, RenderLayer.getTranslucent()); - // Gem lamps + // Gemstone Lights BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TOPAZ_CALCITE_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.AMETHYST_CALCITE_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CITRINE_CALCITE_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.MOONSTONE_CALCITE_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ONYX_CALCITE_LAMP, RenderLayer.getTranslucent()); + // Gemstone Lamps BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TOPAZ_BASALT_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.AMETHYST_BASALT_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CITRINE_BASALT_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.MOONSTONE_BASALT_LAMP, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ONYX_BASALT_LAMP, RenderLayer.getTranslucent()); + // Noxwood + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.IVORY_NOXWOOD_DOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.IVORY_NOXWOOD_TRAPDOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.EBONY_NOXWOOD_DOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.EBONY_NOXWOOD_TRAPDOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SLATE_NOXWOOD_DOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SLATE_NOXWOOD_TRAPDOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CHESTNUT_NOXWOOD_DOOR, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CHESTNUT_NOXWOOD_TRAPDOOR, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SLATE_NOXWOOD_LAMP, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.EBONY_NOXWOOD_LAMP, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.IVORY_NOXWOOD_LAMP, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CHESTNUT_NOXWOOD_LAMP, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SLATE_NOXWOOD_LIGHT, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.EBONY_NOXWOOD_LIGHT, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.IVORY_NOXWOOD_LIGHT, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CHESTNUT_NOXWOOD_LIGHT, RenderLayer.getTranslucent()); + // Saplings BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BLACK_SAPLING, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BLUE_SAPLING, RenderLayer.getCutout()); @@ -1908,6 +2380,24 @@ public static void registerClient() { BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.WHITE_SAPLING, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.YELLOW_SAPLING, RenderLayer.getCutout()); + // Potted Saplings + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_BLACK_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_BLUE_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_BROWN_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_CYAN_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_GRAY_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_GREEN_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_LIGHT_BLUE_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_LIGHT_GRAY_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_LIME_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_MAGENTA_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_ORANGE_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_PINK_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_PURPLE_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_RED_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_WHITE_SAPLING, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_YELLOW_SAPLING, RenderLayer.getCutout()); + // Spore Blossoms BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BLACK_SPORE_BLOSSOM, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BLUE_SPORE_BLOSSOM, RenderLayer.getCutout()); @@ -1960,7 +2450,7 @@ public static void registerClient() { // Others BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.PRESENT, RenderLayer.getCutout()); - + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.GLISTERING_MELON_STEM, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ATTACHED_GLISTERING_MELON_STEM, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.OMINOUS_SAPLING, RenderLayer.getCutout()); @@ -1982,6 +2472,7 @@ public static void registerClient() { BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_AMARANTH_BUSHEL, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BLOOD_ORCHID, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.POTTED_BLOOD_ORCHID, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.DIKE_GATE, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.INVISIBLE_WALL, RenderLayer.getTranslucent()); @@ -2000,17 +2491,17 @@ public static void registerClient() { BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.QUITOXIC_REEDS, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.MERMAIDS_BRUSH, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.RESONANT_LILY, RenderLayer.getCutout()); - BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.STUCK_LIGHTNING_STONE, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.STUCK_STORM_STONE, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CLOVER, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.FOUR_LEAF_CLOVER, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ETHEREAL_PLATFORM, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.UNIVERSE_SPYHOLE, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BOTTOMLESS_BUNDLE, RenderLayer.getCutout()); - + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SAG_LEAF, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SAG_BUBBLE, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_SAG_BUBBLE, RenderLayer.getCutout()); - + // Mob Blocks BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.AXOLOTL_MOB_BLOCK, RenderLayer.getTranslucent()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BAT_MOB_BLOCK, RenderLayer.getTranslucent()); @@ -2121,6 +2612,32 @@ public static void registerClient() { BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_MALACHITE_BUD, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.LARGE_MALACHITE_BUD, RenderLayer.getCutout()); BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.MALACHITE_CLUSTER, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_GREEN_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_RED_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_PINK_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_PURPLE_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SMALL_BLACK_DRAGONJAG, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TALL_GREEN_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TALL_RED_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TALL_PINK_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TALL_PURPLE_DRAGONJAG, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.TALL_BLACK_DRAGONJAG, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.ALOE, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SAWBLADE_HOLLY_BUSH, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.BRISTLE_SPROUTS, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.DOOMBLOOM, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SNAPPING_IVY, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.SLATE_NOXSHROOM, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.IVORY_NOXSHROOM, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.EBONY_NOXSHROOM, RenderLayer.getCutout()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.CHESTNUT_NOXSHROOM, RenderLayer.getCutout()); + + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.HUMMINGSTONE, RenderLayer.getTranslucent()); + BlockRenderLayerMap.INSTANCE.putBlock(SpectrumBlocks.HUMMINGSTONE_GLASS, RenderLayer.getTranslucent()); } - + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumCommands.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumCommands.java index b6db268026..a159a8c35e 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumCommands.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumCommands.java @@ -3,12 +3,12 @@ import de.dafuqs.spectrum.commands.PrintConfigCommand; import de.dafuqs.spectrum.commands.SanityCommand; import de.dafuqs.spectrum.commands.ShootingStarCommand; -import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; +import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; public class SpectrumCommands { public static void register() { - CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> { + CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> { ShootingStarCommand.register(dispatcher); SanityCommand.register(dispatcher); PrintConfigCommand.register(dispatcher); diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumCompostableBlocks.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumCompostableBlocks.java new file mode 100644 index 0000000000..f403970d73 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumCompostableBlocks.java @@ -0,0 +1,17 @@ +package de.dafuqs.spectrum.registries; + +import de.dafuqs.spectrum.blocks.conditional.colored_tree.ColoredLeavesBlock; +import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; +import net.minecraft.util.DyeColor; + +public class SpectrumCompostableBlocks { + + public static void register() { + CompostingChanceRegistry.INSTANCE.add(SpectrumBlocks.CLOVER.asItem(), 0.25F); + CompostingChanceRegistry.INSTANCE.add(SpectrumBlocks.FOUR_LEAF_CLOVER.asItem(), 0.25F); + + for (DyeColor dyeColor : DyeColor.values()) { + CompostingChanceRegistry.INSTANCE.add(ColoredLeavesBlock.byColor(dyeColor), 0.6F); + } + } +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumComposting.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumComposting.java deleted file mode 100644 index 254bb5b171..0000000000 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumComposting.java +++ /dev/null @@ -1,17 +0,0 @@ -package de.dafuqs.spectrum.registries; - -import de.dafuqs.spectrum.blocks.conditional.ColoredLeavesBlock; -import net.fabricmc.fabric.api.registry.CompostingChanceRegistry; -import net.minecraft.util.DyeColor; - -public class SpectrumComposting { - - public static void register() { - CompostingChanceRegistry.INSTANCE.add(SpectrumBlocks.CLOVER.asItem(), 0.25F); - CompostingChanceRegistry.INSTANCE.add(SpectrumBlocks.FOUR_LEAF_CLOVER.asItem(), 0.25F); - - for (DyeColor dyeColor : DyeColor.values()) { - CompostingChanceRegistry.INSTANCE.add(ColoredLeavesBlock.byColor(dyeColor), 0.6F); - } - } -} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumDamageSources.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumDamageSources.java index ce88ff347e..28ca529f3e 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumDamageSources.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumDamageSources.java @@ -1,13 +1,15 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.entity.entity.InkProjectileEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.entity.damage.ProjectileDamageSource; -import org.jetbrains.annotations.Nullable; +import de.dafuqs.spectrum.entity.entity.*; +import de.dafuqs.spectrum.spells.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import org.jetbrains.annotations.*; public class SpectrumDamageSources { - + + public static boolean recursiveDamage = false; + public static final DamageSource DECAY = new SpectrumDamageSource("spectrum_decay"); public static final DamageSource FLOATBLOCK = new SpectrumDamageSource("spectrum_floatblock").setFromFalling().setNeutral(); public static final DamageSource SHOOTING_STAR = new SpectrumDamageSource("spectrum_shooting_star").setFromFalling().setNeutral().setProjectile(); @@ -15,19 +17,38 @@ public class SpectrumDamageSources { public static final DamageSource DIKE_GATE = new SpectrumDamageSource("spectrum_dike_gate").setNeutral(); public static final DamageSource INCANDESCENCE = new SpectrumDamageSource("spectrum_incandescence").setNeutral().setUsesMagic().setExplosive(); - + public static DamageSource inkProjectile(InkProjectileEntity projectile, @Nullable Entity attacker) { return (new ProjectileDamageSource("spectrum_ink_projectile", projectile, attacker)).setProjectile(); } - + + public static DamageSource moonstoneBlast(@Nullable MoonstoneStrike moonstoneStrike) { + return moonstoneBlast(moonstoneStrike != null ? moonstoneStrike.getCausingEntity() : null); + } + + public static DamageSource moonstoneBlast(@Nullable LivingEntity attacker) { + return attacker != null ? (new EntityDamageSource("moonstone_blast.player", attacker).setExplosive()) : (new DamageSource("moonstone_blast").setExplosive()); + } + + public static DamageSource setHealth(LivingEntity attacker) { + return new SetHealthDamageSource("set_health", attacker); + } + + public static class SetHealthDamageSource extends EntityDamageSource { + + public SetHealthDamageSource(String name, LivingEntity attacker) { + super(name, attacker); + } + } + public static class SpectrumDamageSource extends DamageSource { - + private boolean dropsPlayerLoot = false; - + protected SpectrumDamageSource(String name) { super(name); } - + @Override public SpectrumDamageSource setUnblockable() { super.setUnblockable(); diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumDispenserBehaviors.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumDispenserBehaviors.java new file mode 100644 index 0000000000..442683f586 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumDispenserBehaviors.java @@ -0,0 +1,34 @@ +package de.dafuqs.spectrum.registries; + +import de.dafuqs.spectrum.blocks.bottomless_bundle.*; +import de.dafuqs.spectrum.blocks.shooting_star.*; +import net.minecraft.block.*; +import net.minecraft.block.dispenser.*; +import net.minecraft.item.*; + +public class SpectrumDispenserBehaviors { + + public static void register() { + DispenserBehavior fluidBucketBehavior = SpectrumBlocks.ENDER_DROPPER.getDefaultBehaviorForItem(Items.WATER_BUCKET.getDefaultStack()); + DispenserBehavior armorEquipBehavior = SpectrumBlocks.ENDER_DROPPER.getDefaultBehaviorForItem(Items.PLAYER_HEAD.getDefaultStack()); + + DispenserBlock.registerBehavior(SpectrumItems.BOTTOMLESS_BUNDLE, new BottomlessBundleItem.BottomlessBundlePlacementDispenserBehavior()); + DispenserBlock.registerBehavior(SpectrumBlocks.COLORFUL_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); + DispenserBlock.registerBehavior(SpectrumBlocks.FIERY_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); + DispenserBlock.registerBehavior(SpectrumBlocks.GEMSTONE_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); + DispenserBlock.registerBehavior(SpectrumBlocks.GLISTERING_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); + DispenserBlock.registerBehavior(SpectrumBlocks.PRISTINE_SHOOTING_STAR.asItem(), new ShootingStarBlock.ShootingStarBlockDispenserBehavior()); + DispenserBlock.registerBehavior(SpectrumItems.BEDROCK_SHEARS.asItem(), new ShearsDispenserBehavior()); + + DispenserBlock.registerBehavior(SpectrumItems.MUD_BUCKET, fluidBucketBehavior); + DispenserBlock.registerBehavior(SpectrumItems.LIQUID_CRYSTAL_BUCKET, fluidBucketBehavior); + DispenserBlock.registerBehavior(SpectrumItems.MIDNIGHT_SOLUTION_BUCKET, fluidBucketBehavior); + + for (Block skullBlock : SpectrumBlocks.MOB_HEADS.values()) { + DispenserBlock.registerBehavior(skullBlock, armorEquipBehavior); + } + + } + + +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFlammableBlocks.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFlammableBlocks.java index e856645d30..589fb97b1f 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFlammableBlocks.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFlammableBlocks.java @@ -1,7 +1,7 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.blocks.conditional.ColoredLeavesBlock; -import de.dafuqs.spectrum.blocks.conditional.ColoredLogBlock; +import de.dafuqs.spectrum.blocks.conditional.colored_tree.ColoredLeavesBlock; +import de.dafuqs.spectrum.blocks.conditional.colored_tree.ColoredLogBlock; import de.dafuqs.spectrum.blocks.decoration.*; import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; import net.minecraft.util.DyeColor; @@ -9,6 +9,8 @@ public class SpectrumFlammableBlocks { public static void register() { + + // ignite odds, burn odds FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CLOVER, 60, 100); for (DyeColor dyeColor : DyeColor.values()) { @@ -20,6 +22,56 @@ public static void register() { FlammableBlockRegistry.getDefaultInstance().add(ColoredFenceGateBlock.byColor(dyeColor), 5, 20); FlammableBlockRegistry.getDefaultInstance().add(ColoredStairsBlock.byColor(dyeColor), 5, 20); } + + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.STRIPPED_SLATE_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXCAP_CAP, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXCAP_GILLS, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_PLANKS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_SLAB, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_FENCE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_FENCE_GATE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_STAIRS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_BEAM, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.SLATE_NOXWOOD_LIGHT, 5, 20); + + + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.STRIPPED_EBONY_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXCAP_CAP, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXCAP_GILLS, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_PLANKS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_SLAB, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_FENCE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_FENCE_GATE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_STAIRS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_BEAM, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.EBONY_NOXWOOD_LIGHT, 5, 20); + + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.STRIPPED_IVORY_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXCAP_CAP, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXCAP_GILLS, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_PLANKS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_SLAB, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_FENCE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_FENCE_GATE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_STAIRS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_BEAM, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.IVORY_NOXWOOD_LIGHT, 5, 20); + + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.STRIPPED_CHESTNUT_NOXCAP_STEM, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXCAP_CAP, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXCAP_GILLS, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_PLANKS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_SLAB, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_FENCE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_FENCE_GATE, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_STAIRS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_BEAM, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(SpectrumBlocks.CHESTNUT_NOXWOOD_LIGHT, 5, 20); + } } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluidTags.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluidTags.java index 0bcf5e33e8..9890ed689d 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluidTags.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluidTags.java @@ -1,24 +1,25 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.fluid.Fluid; -import net.minecraft.tag.TagKey; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; +import de.dafuqs.spectrum.*; +import net.minecraft.fluid.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; public class SpectrumFluidTags { - + public static TagKey SWIMMABLE_FLUID = register("swimmable_fluid"); public static TagKey MIDNIGHT_SOLUTION_CONVERTED = register("midnight_solution_converted"); - + public static TagKey LAGOON_ROD_FISHABLE_IN = register("lagoon_rod_fishable_in"); public static TagKey MOLTEN_ROD_FISHABLE_IN = register("molten_rod_fishable_in"); public static TagKey BEDROCK_ROD_FISHABLE_IN = register("bedrock_rod_fishable_in"); - + public static TagKey LIQUID_CRYSTAL = register("liquid_crystal"); public static TagKey MUD = register("mud"); public static TagKey MIDNIGHT_SOLUTION = register("midnight_solution"); - + public static TagKey DRAGONROT = register("dragonrot"); + private static TagKey register(String id) { return TagKey.of(Registry.FLUID_KEY, new Identifier(SpectrumCommon.MOD_ID + ":" + id)); } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluids.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluids.java index e618157397..31974ab7f8 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluids.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFluids.java @@ -1,58 +1,60 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.fluid.LiquidCrystalFluid; -import de.dafuqs.spectrum.blocks.fluid.MidnightSolutionFluid; -import de.dafuqs.spectrum.blocks.fluid.MudFluid; -import de.dafuqs.spectrum.registries.color.ItemColors; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; -import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler; -import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry; -import net.fabricmc.fabric.api.event.client.ClientSpriteRegistryCallback; -import net.fabricmc.fabric.api.resource.ResourceManagerHelper; -import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.texture.Sprite; -import net.minecraft.client.texture.SpriteAtlasTexture; -import net.minecraft.fluid.FlowableFluid; -import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.FluidState; -import net.minecraft.resource.ResourceManager; -import net.minecraft.resource.ResourceType; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3f; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.BlockRenderView; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.fluid.*; +import de.dafuqs.spectrum.registries.color.*; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.blockrenderlayer.v1.*; +import net.fabricmc.fabric.api.client.render.fluid.v1.*; +import net.fabricmc.fabric.api.event.client.*; +import net.fabricmc.fabric.api.resource.*; +import net.minecraft.client.*; +import net.minecraft.client.render.*; +import net.minecraft.client.texture.*; +import net.minecraft.fluid.*; +import net.minecraft.resource.*; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; -import java.util.function.Function; +import java.util.function.*; public class SpectrumFluids { - + // LIQUID CRYSTAL public static final FlowableFluid LIQUID_CRYSTAL = new LiquidCrystalFluid.StillLiquidCrystal(); public static final FlowableFluid FLOWING_LIQUID_CRYSTAL = new LiquidCrystalFluid.FlowingLiquidCrystal(); public static final Vec3f LIQUID_CRYSTAL_COLOR = new Vec3f(0.7f, 0.67f, 0.81f); - + public static final Identifier LIQUID_CRYSTAL_OVERLAY_TEXTURE = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/liquid_crystal_overlay.png"); + public static final float LIQUID_CRYSTAL_OVERLAY_ALPHA = 0.6F; + // MUD public static final FlowableFluid MUD = new MudFluid.StillMud(); public static final FlowableFluid FLOWING_MUD = new MudFluid.FlowingMud(); public static final Vec3f MUD_COLOR = new Vec3f(0.26f, 0.14f, 0.01f); - + public static final Identifier MUD_OVERLAY_TEXTURE = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/mud_overlay.png"); + public static final float MUD_OVERLAY_ALPHA = 0.995F; + // MIDNIGHT SOLUTION public static final FlowableFluid MIDNIGHT_SOLUTION = new MidnightSolutionFluid.StillMidnightSolution(); public static final FlowableFluid FLOWING_MIDNIGHT_SOLUTION = new MidnightSolutionFluid.FlowingMidnightSolution(); public static final Vec3f MIDNIGHT_SOLUTION_COLOR = new Vec3f(0.07f, 0.07f, 0.2f); - + public static final Identifier MIDNIGHT_SOLUTION_OVERLAY_TEXTURE = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/midnight_solution_overlay.png"); + public static final float MIDNIGHT_SOLUTION_OVERLAY_ALPHA = 0.995F; + + // DRAGONROT + public static final FlowableFluid DRAGONROT = new DragonrotFluid.StillDragonrot(); + public static final FlowableFluid FLOWING_DRAGONROT = new DragonrotFluid.FlowingDragonrot(); + public static final Vec3f DRAGONROT_COLOR = new Vec3f(0.56f, 0.13f, 0.63f); + public static final Identifier DRAGONROT_OVERLAY_TEXTURE = new Identifier(SpectrumCommon.MOD_ID + ":textures/misc/dragonrot_overlay.png"); + public static final float DRAGONROT_OVERLAY_ALPHA = 0.995F; + private static void registerFluid(String name, Fluid fluid, DyeColor dyeColor) { Registry.register(Registry.FLUID, SpectrumCommon.locate(name), fluid); ItemColors.FLUID_COLORS.registerColorMapping(fluid, dyeColor); } - + public static void register() { registerFluid("liquid_crystal", LIQUID_CRYSTAL, DyeColor.LIGHT_GRAY); registerFluid("flowing_liquid_crystal", FLOWING_LIQUID_CRYSTAL, DyeColor.LIGHT_GRAY); @@ -60,18 +62,23 @@ public static void register() { registerFluid("flowing_mud", FLOWING_MUD, DyeColor.BROWN); registerFluid("midnight_solution", MIDNIGHT_SOLUTION, DyeColor.GRAY); registerFluid("flowing_midnight_solution", FLOWING_MIDNIGHT_SOLUTION, DyeColor.GRAY); + registerFluid("dragonrot", DRAGONROT, DyeColor.PURPLE); + registerFluid("flowing_dragonrot", FLOWING_DRAGONROT, DyeColor.PURPLE); } @Environment(EnvType.CLIENT) public static void registerClient() { setupFluidRendering(LIQUID_CRYSTAL, FLOWING_LIQUID_CRYSTAL, "liquid_crystal", 0xcbbbcb); BlockRenderLayerMap.INSTANCE.putFluids(RenderLayer.getTranslucent(), LIQUID_CRYSTAL, FLOWING_LIQUID_CRYSTAL); - + setupFluidRendering(MUD, FLOWING_MUD, "mud", 0x4e2e0a); BlockRenderLayerMap.INSTANCE.putFluids(RenderLayer.getTranslucent(), MUD, FLOWING_MUD); - + setupFluidRendering(MIDNIGHT_SOLUTION, FLOWING_MIDNIGHT_SOLUTION, "midnight_solution", 0x11183b); BlockRenderLayerMap.INSTANCE.putFluids(RenderLayer.getTranslucent(), MIDNIGHT_SOLUTION, FLOWING_MIDNIGHT_SOLUTION); + + setupFluidRendering(DRAGONROT, FLOWING_DRAGONROT, "dragonrot", 0x592b6f); + BlockRenderLayerMap.INSTANCE.putFluids(RenderLayer.getTranslucent(), DRAGONROT, FLOWING_DRAGONROT); } @Environment(EnvType.CLIENT) diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFoodComponents.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFoodComponents.java index 04580c61af..f4bce4152f 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumFoodComponents.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumFoodComponents.java @@ -1,9 +1,8 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.status_effects.AscensionStatusEffect; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.item.FoodComponent; +import de.dafuqs.spectrum.status_effects.*; +import net.minecraft.entity.effect.*; +import net.minecraft.item.*; public class SpectrumFoodComponents { @@ -35,11 +34,11 @@ public class SpectrumFoodComponents { .hunger(4).saturationModifier(0.2F).alwaysEdible() .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.ANOTHER_ROLL, 1200), 1.0F) .build(); - + public static final FoodComponent TRIPLE_MEAT_POT_PIE = new FoodComponent.Builder() .hunger(20).saturationModifier(1.2F) - .statusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 100) ,1.0f) - .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.NOURISHING, 12000, 1) ,1.0f) + .statusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 100), 1.0f) + .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.NOURISHING, 12000, 1), 1.0f) .build(); public static final FoodComponent GLISTERING_JELLY_TEA = new FoodComponent.Builder() @@ -59,9 +58,9 @@ public class SpectrumFoodComponents { public static final FoodComponent RESTORATION_TEA_SCONE_BONUS = new FoodComponent.Builder() .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.IMMUNITY, 1800), 1.0F) .build(); - + public static final FoodComponent BODACIOUS_BERRY_BAR = new FoodComponent.Builder() - .hunger(8).saturationModifier(0.5F) + .hunger(8).saturationModifier(0.6F) .statusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 600, 2), 1.0F) .statusEffect(new StatusEffectInstance(StatusEffects.HEALTH_BOOST, 1800, 4), 1.0F) .build(); @@ -75,17 +74,9 @@ public class SpectrumFoodComponents { .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.FRENZY, 800, 0), 1.0F) .build(); - public static final FoodComponent INFUSED_BEVERAGE = new FoodComponent.Builder() - .hunger(2).saturationModifier(0.2F) - .build(); - - public static final FoodComponent SUSPICIOUS_BREW = new FoodComponent.Builder() - .hunger(2).saturationModifier(0.2F) - .build(); - - public static final FoodComponent JADE_WINE = new FoodComponent.Builder() - .hunger(2).saturationModifier(0.2F).alwaysEdible() - .build(); + public static final FoodComponent BEVERAGE = new FoodComponent.Builder() + .hunger(2).saturationModifier(0.2F) + .build(); public static final FoodComponent PURE_ALCOHOL = new FoodComponent.Builder() .hunger(2).saturationModifier(0.2F).alwaysEdible() @@ -94,25 +85,14 @@ public class SpectrumFoodComponents { .statusEffect(new StatusEffectInstance(StatusEffects.WEAKNESS, 20 * 60, 2), 1.0F) .build(); - public static final FoodComponent CHRYSOCOLLA = new FoodComponent.Builder() - .hunger(2).saturationModifier(0.2F).alwaysEdible() - .statusEffect(new StatusEffectInstance(StatusEffects.POISON, 20 * 15, 4), 1.0F) - .statusEffect(new StatusEffectInstance(StatusEffects.NAUSEA, 20 * 30, 2), 1.0F) - .statusEffect(new StatusEffectInstance(StatusEffects.WEAKNESS, 20 * 60, 2), 1.0F) - .build(); - - public static final FoodComponent MOONSHINE = new FoodComponent.Builder() - .hunger(2).saturationModifier(0.2F).alwaysEdible() - .build(); - public static final FoodComponent KIMCHI = new FoodComponent.Builder() .hunger(6).saturationModifier(0.6F) .build(); - + public static final FoodComponent CLOTTED_CREAM = new FoodComponent.Builder() .alwaysEdible() .build(); - + public static final FoodComponent FRESH_CHOCOLATE = new FoodComponent.Builder() .snack().hunger(4).saturationModifier(0.6F) .build(); @@ -129,12 +109,12 @@ public class SpectrumFoodComponents { public static final FoodComponent SCONE = new FoodComponent.Builder() .snack().hunger(3).saturationModifier(0.6F) .build(); - + public static final FoodComponent FREIGEIST = new FoodComponent.Builder() .hunger(2).saturationModifier(0.2F).alwaysEdible() .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.ASCENSION, AscensionStatusEffect.MUSIC_INTRO_TICKS), 1.0F) .build(); - + public static final FoodComponent INCANDESCENT_AMALGAM = new FoodComponent.Builder() .hunger(1).saturationModifier(0.2F).alwaysEdible() .build(); @@ -227,10 +207,35 @@ public class SpectrumFoodComponents { .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.NOURISHING, 1200), 0.2F) .statusEffect(new StatusEffectInstance(StatusEffects.HUNGER, 1200), 0.2F) .build(); - + public static final FoodComponent DEMON_TRIFLE = new FoodComponent.Builder() .hunger(10).saturationModifier(0.2F) .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.FRENZY, 1200), 2.0F / 3.0F) .build(); - + + public static final FoodComponent MYCEYLON_APPLE_PIE = new FoodComponent.Builder().hunger(10).saturationModifier(0.3F).build(); + + public static final FoodComponent MYCEYLON_PUMPKIN_PIE = new FoodComponent.Builder().hunger(10).saturationModifier(0.3F).build(); + + public static final FoodComponent MYCEYLON_COOKIE = new FoodComponent.Builder().hunger(2).saturationModifier(0.1F).build(); + + public static final FoodComponent ALOE_LEAF = new FoodComponent.Builder().hunger(2).saturationModifier(0.1F).build(); + + public static final FoodComponent PRICKLY_BAYLEAF = new FoodComponent.Builder().hunger(1).saturationModifier(0.3F) + .statusEffect(new StatusEffectInstance(StatusEffects.INSTANT_DAMAGE, 0, 0), 0.6F) + .build(); + + public static final FoodComponent SPIKED_POTATOES = new FoodComponent.Builder().hunger(8).saturationModifier(0.8F).build(); + + public static final FoodComponent TRIPLE_MEAT_POT_STEW = new FoodComponent.Builder() + .hunger(20).saturationModifier(1.2F).meat() + .statusEffect(new StatusEffectInstance(StatusEffects.REGENERATION, 100), 1.0f) + .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.NOURISHING, 12000, 1), 1.0f) + .build(); + + public static final FoodComponent DRAGONBONE_BROTH = new FoodComponent.Builder() + .hunger(6).saturationModifier(0.6F).meat() + .statusEffect(new StatusEffectInstance(SpectrumStatusEffects.MAGIC_ANNULATION, 2400, 1), 1.0f) + .build(); + } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemGroups.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemGroups.java index d6f5ccd7dd..aef9784018 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemGroups.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemGroups.java @@ -1,31 +1,24 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.mob_head.SpectrumSkullBlock; -import de.dafuqs.spectrum.energy.color.InkColor; -import de.dafuqs.spectrum.helpers.SpectrumEnchantmentHelper; -import de.dafuqs.spectrum.items.food.beverages.BeverageItem; -import de.dafuqs.spectrum.items.magic_items.BottomlessBundleItem; -import de.dafuqs.spectrum.items.magic_items.KnowledgeGemItem; -import de.dafuqs.spectrum.recipe.SpectrumRecipeTypes; -import de.dafuqs.spectrum.recipe.enchantment_upgrade.EnchantmentUpgradeRecipe; -import de.dafuqs.spectrum.recipe.spirit_instiller.SpiritInstillerRecipe; -import de.dafuqs.spectrum.recipe.titration_barrel.ITitrationBarrelRecipe; -import io.wispforest.owo.itemgroup.Icon; -import io.wispforest.owo.itemgroup.OwoItemGroup; -import io.wispforest.owo.itemgroup.gui.ItemGroupButton; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.EnchantmentLevelEntry; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.item.EnchantedBookItem; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DefaultedList; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.bottomless_bundle.*; +import de.dafuqs.spectrum.blocks.mob_head.*; +import de.dafuqs.spectrum.energy.color.*; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.food.beverages.*; +import de.dafuqs.spectrum.items.magic_items.*; +import de.dafuqs.spectrum.recipe.*; +import de.dafuqs.spectrum.recipe.enchantment_upgrade.*; +import de.dafuqs.spectrum.recipe.spirit_instiller.*; +import de.dafuqs.spectrum.recipe.titration_barrel.*; +import io.wispforest.owo.itemgroup.*; +import io.wispforest.owo.itemgroup.gui.*; +import net.minecraft.enchantment.*; +import net.minecraft.item.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; -import java.util.HashMap; -import java.util.Map; +import java.util.*; public class SpectrumItemGroups { @@ -91,6 +84,7 @@ public void appendStacks(DefaultedList stacks) { stacks.add(SpectrumItems.HEARTSINGERS_REWARD_RING.getFullStack()); stacks.add(SpectrumItems.GLOVES_OF_DAWNS_GRASP.getFullStack()); stacks.add(SpectrumItems.SHIELDGRASP_AMULET.getFullStack()); + stacks.add(SpectrumItems.RING_OF_PURSUIT.getFullStack()); // Bottomless Bundles willed with useful, basic materials stacks.add(BottomlessBundleItem.getWithBlockAndCount(Items.COBBLESTONE.getDefaultStack(), 20000)); @@ -104,8 +98,8 @@ public void appendStacks(DefaultedList stacks) { // Fully Enchanted Enchanter Enchantables stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.BOTTOMLESS_BUNDLE, Enchantments.POWER, SpectrumEnchantments.VOIDING)); stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.ENDER_SPLICE, Enchantments.UNBREAKING, SpectrumEnchantments.RESONANCE)); - stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.EXCHANGE_STAFF, Enchantments.FORTUNE)); - stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.EXCHANGE_STAFF, Enchantments.SILK_TOUCH)); + stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.EXCHANGING_STAFF, Enchantments.FORTUNE)); + stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.EXCHANGING_STAFF, Enchantments.SILK_TOUCH)); stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.KNOWLEDGE_GEM, Enchantments.EFFICIENCY, Enchantments.QUICK_CHARGE)); stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.NATURES_STAFF, Enchantments.EFFICIENCY)); stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.RADIANCE_STAFF, Enchantments.INFINITY)); @@ -114,38 +108,40 @@ public void appendStacks(DefaultedList stacks) { stacks.add(SpectrumEnchantmentHelper.getMaxEnchantedStack(SpectrumItems.TAKE_OFF_BELT, Enchantments.POWER, Enchantments.FEATHER_FALLING)); // Infused Beverage Variants - for (ITitrationBarrelRecipe recipe : SpectrumCommon.minecraftServer.getRecipeManager().listAllOfType(SpectrumRecipeTypes.TITRATION_BARREL)) { - ItemStack output = recipe.getOutput().copy(); - if(output.getItem() instanceof BeverageItem) { - output.setCount(1); - stacks.add(output); + if (SpectrumCommon.minecraftServer != null) { + for (ITitrationBarrelRecipe recipe : SpectrumCommon.minecraftServer.getRecipeManager().listAllOfType(SpectrumRecipeTypes.TITRATION_BARREL)) { + ItemStack output = recipe.getOutput().copy(); + if (output.getItem() instanceof BeverageItem) { + output.setCount(1); + stacks.add(output); + } } - } - - // Enchanted books with the max upgrade level available via Enchantment Upgrading - HashMap highestEnchantmentLevels = new HashMap<>(); - for (EnchantmentUpgradeRecipe enchantmentUpgradeRecipe : SpectrumCommon.minecraftServer.getRecipeManager().listAllOfType(SpectrumRecipeTypes.ENCHANTMENT_UPGRADE)) { - Enchantment enchantment = enchantmentUpgradeRecipe.getEnchantment(); - int destinationLevel = enchantmentUpgradeRecipe.getEnchantmentDestinationLevel(); - if (highestEnchantmentLevels.containsKey(enchantment)) { - if (highestEnchantmentLevels.get(enchantment) < destinationLevel) { + + // Enchanted books with the max upgrade level available via Enchantment Upgrading + HashMap highestEnchantmentLevels = new HashMap<>(); + for (EnchantmentUpgradeRecipe enchantmentUpgradeRecipe : SpectrumCommon.minecraftServer.getRecipeManager().listAllOfType(SpectrumRecipeTypes.ENCHANTMENT_UPGRADE)) { + Enchantment enchantment = enchantmentUpgradeRecipe.getEnchantment(); + int destinationLevel = enchantmentUpgradeRecipe.getEnchantmentDestinationLevel(); + if (highestEnchantmentLevels.containsKey(enchantment)) { + if (highestEnchantmentLevels.get(enchantment) < destinationLevel) { + highestEnchantmentLevels.put(enchantment, destinationLevel); + } + } else { highestEnchantmentLevels.put(enchantment, destinationLevel); } - } else { - highestEnchantmentLevels.put(enchantment, destinationLevel); } - } - for (Map.Entry s : highestEnchantmentLevels.entrySet()) { - if (s.getValue() > s.getKey().getMaxLevel()) { - stacks.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(s.getKey(), s.getValue()))); + for (Map.Entry s : highestEnchantmentLevels.entrySet()) { + if (s.getValue() > s.getKey().getMaxLevel()) { + stacks.add(EnchantedBookItem.forEnchantment(new EnchantmentLevelEntry(s.getKey(), s.getValue()))); + } } - } - - // all memories that have spirit instiller recipes - Item memoryItem = SpectrumBlocks.MEMORY.asItem(); - for (SpiritInstillerRecipe recipe : SpectrumCommon.minecraftServer.getRecipeManager().listAllOfType(SpectrumRecipeTypes.SPIRIT_INSTILLING)) { - if (recipe.getOutput().isOf(memoryItem)) { - stacks.add(recipe.getOutput()); + + // all memories that have spirit instiller recipes + Item memoryItem = SpectrumBlocks.MEMORY.asItem(); + for (SpiritInstillerRecipe recipe : SpectrumCommon.minecraftServer.getRecipeManager().listAllOfType(SpectrumRecipeTypes.SPIRIT_INSTILLING)) { + if (recipe.getOutput().isOf(memoryItem)) { + stacks.add(recipe.getOutput()); + } } } } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemStackDamageImmunities.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemStackDamageImmunities.java index 8194fce98e..79a724d0be 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemStackDamageImmunities.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemStackDamageImmunities.java @@ -1,14 +1,10 @@ package de.dafuqs.spectrum.registries; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; +import net.minecraft.enchantment.*; +import net.minecraft.entity.damage.*; +import net.minecraft.item.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; +import java.util.*; public class SpectrumItemStackDamageImmunities { @@ -29,6 +25,12 @@ public static void registerDefaultItemStackImmunities() { SpectrumItemStackDamageImmunities.addImmunity(SpectrumBlocks.WET_LAVA_SPONGE.asItem(), DamageSource.IN_FIRE); SpectrumItemStackDamageImmunities.addImmunity(SpectrumBlocks.WET_LAVA_SPONGE.asItem(), DamageSource.ON_FIRE); SpectrumItemStackDamageImmunities.addImmunity(SpectrumBlocks.WET_LAVA_SPONGE.asItem(), DamageSource.LAVA); + SpectrumItemStackDamageImmunities.addImmunity(SpectrumBlocks.DOOMBLOOM.asItem(), DamageSource.IN_FIRE); + SpectrumItemStackDamageImmunities.addImmunity(SpectrumBlocks.DOOMBLOOM.asItem(), DamageSource.ON_FIRE); + SpectrumItemStackDamageImmunities.addImmunity(SpectrumBlocks.DOOMBLOOM.asItem(), DamageSource.LAVA); + SpectrumItemStackDamageImmunities.addImmunity(SpectrumItems.DOOMBLOOM_SEED, DamageSource.IN_FIRE); + SpectrumItemStackDamageImmunities.addImmunity(SpectrumItems.DOOMBLOOM_SEED, DamageSource.ON_FIRE); + SpectrumItemStackDamageImmunities.addImmunity(SpectrumItems.DOOMBLOOM_SEED, DamageSource.LAVA); } public static void addImmunity(Item item, DamageSource damageSource) { diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemTags.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemTags.java index fd4ef1a4dc..8339a94df6 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemTags.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItemTags.java @@ -23,6 +23,8 @@ public class SpectrumItemTags { public static final TagKey SPAWNERS = getReference("spawners"); public static final TagKey INDESTRUCTIBLE_BLACKLISTED = getReference("indestructible_blacklisted"); public static final TagKey NO_CINDERHEARTH_DOUBLING = getReference("no_cinderhearth_doubling"); + public static final TagKey SHOOTING_STARS = getReference("shooting_stars"); + public static final TagKey GLASS_ARROWS = getReference("glass_arrows"); private static TagKey getReference(String id) { return TagKey.of(Registry.ITEM_KEY, SpectrumCommon.locate(id)); diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItems.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItems.java index e761f3885f..60591f4b12 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumItems.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumItems.java @@ -1,42 +1,34 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.revelationary.api.revelations.RevelationAware; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.gravity.CloakedFloatItem; -import de.dafuqs.spectrum.blocks.jade_vines.GerminatedJadeVineSeedsItem; -import de.dafuqs.spectrum.blocks.rock_candy.RockCandy; -import de.dafuqs.spectrum.blocks.rock_candy.RockCandyItem; -import de.dafuqs.spectrum.entity.SpectrumEntityTypes; -import de.dafuqs.spectrum.enums.BuiltinGemstoneColor; +import de.dafuqs.revelationary.api.revelations.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.bottomless_bundle.*; +import de.dafuqs.spectrum.blocks.gravity.*; +import de.dafuqs.spectrum.blocks.jade_vines.*; +import de.dafuqs.spectrum.blocks.rock_candy.*; +import de.dafuqs.spectrum.entity.*; +import de.dafuqs.spectrum.enums.*; import de.dafuqs.spectrum.items.*; -import de.dafuqs.spectrum.items.armor.BedrockArmorItem; -import de.dafuqs.spectrum.items.armor.GemstoneArmorItem; +import de.dafuqs.spectrum.items.armor.*; import de.dafuqs.spectrum.items.conditional.CloakedItem; -import de.dafuqs.spectrum.items.conditional.CloakedItemWithLoomPattern; -import de.dafuqs.spectrum.items.conditional.GemstonePowderItem; -import de.dafuqs.spectrum.items.conditional.LightningStoneItem; +import de.dafuqs.spectrum.items.conditional.*; import de.dafuqs.spectrum.items.energy.*; import de.dafuqs.spectrum.items.food.*; import de.dafuqs.spectrum.items.food.beverages.*; -import de.dafuqs.spectrum.items.item_frame.InvisibleGlowItemFrameItem; -import de.dafuqs.spectrum.items.item_frame.InvisibleItemFrameItem; +import de.dafuqs.spectrum.items.item_frame.*; import de.dafuqs.spectrum.items.magic_items.*; import de.dafuqs.spectrum.items.tools.*; import de.dafuqs.spectrum.items.trinkets.*; -import de.dafuqs.spectrum.registries.color.ItemColors; -import io.wispforest.owo.itemgroup.OwoItemGroup; -import io.wispforest.owo.itemgroup.OwoItemSettings; -import net.fabricmc.fabric.api.registry.FuelRegistry; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.entity.EquipmentSlot; +import de.dafuqs.spectrum.registries.color.*; +import io.wispforest.owo.itemgroup.*; +import net.fabricmc.fabric.api.registry.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; import net.minecraft.item.*; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.Rarity; -import net.minecraft.util.registry.Registry; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; -import java.util.Map; +import java.util.*; import static de.dafuqs.spectrum.registries.SpectrumFluids.*; @@ -80,7 +72,7 @@ public OwoItemSettings settings(int maxCount, Rarity rarity) { // Main items public static final Item GUIDEBOOK = new GuidebookItem(Tab.EQUIPMENT.settings(1)); - public static final Item PAINTBRUSH = new PaintBrushItem(Tab.EQUIPMENT.settings(1)); + public static final Item PAINTBRUSH = new PaintbrushItem(Tab.EQUIPMENT.settings(1)); public static final Item CRAFTING_TABLET = new CraftingTabletItem(Tab.EQUIPMENT.settings(1)); public static final Item PEDESTAL_TIER_1_STRUCTURE_PLACER = new StructurePlacerItem(Tab.GENERAL.settings(1), SpectrumCommon.locate("pedestal_simple_structure_place")); @@ -98,12 +90,11 @@ public OwoItemSettings settings(int maxCount, Rarity rarity) { public static final Item MOONSTONE_SHARD = new CloakedItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("midgame/break_decayed_bedrock"), Items.WHITE_DYE); public static final Item SPECTRAL_SHARD = new CloakedItem(Tab.RESOURCES.settings(Rarity.RARE), SpectrumCommon.locate("lategame/build_complex_pedestal_structure"), Items.LIGHT_GRAY_DYE); - private static final Identifier GEMSTONE_POWDER_CLOAK_IDENTIFIER = SpectrumCommon.locate("place_pedestal"); - public static final Item TOPAZ_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), GEMSTONE_POWDER_CLOAK_IDENTIFIER, BuiltinGemstoneColor.CYAN); - public static final Item AMETHYST_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), GEMSTONE_POWDER_CLOAK_IDENTIFIER, BuiltinGemstoneColor.MAGENTA); - public static final Item CITRINE_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), GEMSTONE_POWDER_CLOAK_IDENTIFIER, BuiltinGemstoneColor.YELLOW); + public static final Item TOPAZ_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("hidden/collect_shards/collect_topaz_shard"), BuiltinGemstoneColor.CYAN); + public static final Item AMETHYST_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("hidden/collect_shards/collect_amethyst_shard"), BuiltinGemstoneColor.MAGENTA); + public static final Item CITRINE_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("hidden/collect_shards/collect_citrine_shard"), BuiltinGemstoneColor.YELLOW); public static final Item ONYX_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("create_onyx_shard"), BuiltinGemstoneColor.BLACK); - public static final Item MOONSTONE_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("midgame/collect_moonstone_shard"), BuiltinGemstoneColor.WHITE); + public static final Item MOONSTONE_POWDER = new GemstonePowderItem(Tab.RESOURCES.settings(), SpectrumCommon.locate("lategame/collect_moonstone_shard"), BuiltinGemstoneColor.WHITE); // Pigment public static final Item BLACK_PIGMENT = new PigmentItem(Tab.RESOURCES.settings(), DyeColor.BLACK); @@ -124,21 +115,21 @@ public OwoItemSettings settings(int maxCount, Rarity rarity) { public static final Item YELLOW_PIGMENT = new PigmentItem(Tab.RESOURCES.settings(), DyeColor.YELLOW); // Preenchanted tools - public static final Item MULTITOOL = new MultiToolItem(ToolMaterials.IRON, 2, -2.4F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(ToolMaterials.IRON.getDurability())); - public static final Item SILKER_PICKAXE = new SpectrumPickaxeItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())) { + public static final Item MULTITOOL = new PreenchantedMultiToolItem(ToolMaterials.IRON, 2, -2.4F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(ToolMaterials.IRON.getDurability())); + public static final Item TENDER_PICKAXE = new SpectrumPickaxeItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())) { @Override public Map getDefaultEnchantments() { return Map.of(Enchantments.SILK_TOUCH, 1); } }; - public static final Item FORTUNE_PICKAXE = new SpectrumPickaxeItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())) { + public static final Item LUCKY_PICKAXE = new SpectrumPickaxeItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())) { @Override public Map getDefaultEnchantments() { return Map.of(Enchantments.FORTUNE, 3); } }; - public static final Item LOOTING_FALCHION = new LootingFalchionItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 4, -2.2F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())); - public static final Item VOIDING_PICKAXE = new VoidingPickaxeItem(SpectrumToolMaterials.ToolMaterial.VOIDING, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.VOIDING.getDurability())); + public static final Item RAZOR_FALCHION = new RazorFalchionItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 4, -2.2F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())); + public static final Item OBLIVION_PICKAXE = new OblivionPickaxeItem(SpectrumToolMaterials.ToolMaterial.VOIDING, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.VOIDING.getDurability())); public static final Item RESONANT_PICKAXE = new SpectrumPickaxeItem(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.UNCOMMON).maxDamage(SpectrumToolMaterials.ToolMaterial.LOW_HEALTH.getDurability())) { @Override public Map getDefaultEnchantments() { @@ -147,8 +138,8 @@ public Map getDefaultEnchantments() { }; public static final SpectrumFishingRodItem LAGOON_ROD = new LagoonRodItem(Tab.EQUIPMENT.settings().maxDamage(256)); public static final SpectrumFishingRodItem MOLTEN_ROD = new MoltenRodItem(Tab.EQUIPMENT.settings().maxDamage(256)); - - // Bedrock Tools + + // Bedrock Tools public static final SpectrumToolMaterials.ToolMaterial BEDROCK_MATERIAL = SpectrumToolMaterials.ToolMaterial.BEDROCK; public static final ToolItem BEDROCK_PICKAXE = new BedrockPickaxeItem(BEDROCK_MATERIAL, 1, -2.8F, Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(SpectrumToolMaterials.ToolMaterial.BEDROCK.getDurability())); public static final ToolItem BEDROCK_AXE = new BedrockAxeItem(BEDROCK_MATERIAL, 5, -3.0F, Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(SpectrumToolMaterials.ToolMaterial.BEDROCK.getDurability())); @@ -159,12 +150,38 @@ public Map getDefaultEnchantments() { public static final BedrockCrossbowItem BEDROCK_CROSSBOW = new BedrockCrossbowItem(Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(SpectrumToolMaterials.ToolMaterial.BEDROCK.getDurability())); public static final BedrockShearsItem BEDROCK_SHEARS = new BedrockShearsItem(Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(SpectrumToolMaterials.ToolMaterial.BEDROCK.getDurability())); public static final SpectrumFishingRodItem BEDROCK_FISHING_ROD = new BedrockFishingRodItem(Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(SpectrumToolMaterials.ToolMaterial.BEDROCK.getDurability())); - - public static final SwordItem DREAMFLAYER = new DreamflayerItem(SpectrumToolMaterials.ToolMaterial.DREAMFLAYER, 3, -1.8F, Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); - // Graces - //public static OwoItemSettings graceSettings = new OwoItemSettings().group(SpectrumItemGroups.ITEM_GROUP_GENERAL).tab(3Rarity.RARE1).fireproof(); - //public static final CrystalGraceItem WHITE_CRYSTAL_GRACE = new CrystalGraceItem(ColorPool.WHITE, graceSettings, "ooooo go stick my dick in Azzy's ass oooo"); + public static final Item MOONSTONE_CORE = new Item(Tab.EQUIPMENT.settings(8, Rarity.RARE)); + + public static final SpectrumToolMaterials.ToolMaterial MALACHITE = SpectrumToolMaterials.ToolMaterial.MALACHITE; + public static final ToolItem MALACHITE_WORKSTAFF = new WorkstaffItem(MALACHITE, 1, -3.2F, Tab.EQUIPMENT.settings(1, Rarity.RARE)); + public static final ToolItem MALACHITE_ULTRA_GREATSWORD = new GreatswordItem(MALACHITE, 4, -3.0F, 1.0F, Tab.EQUIPMENT.settings(1, Rarity.RARE)); + public static final MalachiteCrossbowItem MALACHITE_CROSSBOW = new MalachiteCrossbowItem(Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(MALACHITE.getDurability())); + public static final MalachiteBidentItem MALACHITE_BIDENT = new MalachiteBidentItem(Tab.EQUIPMENT.settings(1, Rarity.RARE).maxDamage(MALACHITE.getDurability())); + + // variants by socketing a moonstone core + public static final SpectrumToolMaterials.ToolMaterial GLASS_CREST = SpectrumToolMaterials.ToolMaterial.GLASS_CREST; + public static final ToolItem GLASS_CREST_WORKSTAFF = new RangedWorkstaffItem(GLASS_CREST, 1, -2.8F, Tab.EQUIPMENT.settings(1, Rarity.RARE)); + public static final ToolItem GLASS_CREST_ULTRA_GREATSWORD = new GlassCrestGreatswordItem(GLASS_CREST, 4, -2.8F, 1.0F, 32, 8, Tab.EQUIPMENT.settings(1, Rarity.RARE)); + // riptide w/o weather requirement; damages enemies on touch; iframes? + public static final MalachiteBidentItem FEROCIOUS_GLASS_CREST_BIDENT = new MalachiteBidentItem(Tab.EQUIPMENT.settings(1, Rarity.RARE).maxDamage(GLASS_CREST.getDurability())); + // gets shot as copy instead of getting removed from the player's inv + // no fractal non-moon variant? + public static final MalachiteBidentItem FRACTAL_GLASS_CREST_BIDENT = new MalachiteBidentItem(Tab.EQUIPMENT.settings(1, Rarity.RARE).maxDamage(GLASS_CREST.getDurability())); + // right click ability: able to overload an already loaded arrow + public static final GlassCrestCrossbowItem GLASS_CREST_CROSSBOW = new GlassCrestCrossbowItem(Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(GLASS_CREST.getDurability())); + + // able to pass through translucent blocks, like glass; render as rays of light + public static final ArrowItem MALACHITE_GLASS_ARROW = new GlassArrowItem(Tab.EQUIPMENT.settings(Rarity.RARE), GlassArrowItem.Variant.MALACHITE); + public static final ArrowItem TOPAZ_GLASS_ARROW = new GlassArrowItem(Tab.EQUIPMENT.settings(Rarity.RARE), GlassArrowItem.Variant.TOPAZ); + public static final ArrowItem AMETHYST_GLASS_ARROW = new GlassArrowItem(Tab.EQUIPMENT.settings(Rarity.RARE), GlassArrowItem.Variant.AMETHYST); + public static final ArrowItem CITRINE_GLASS_ARROW = new GlassArrowItem(Tab.EQUIPMENT.settings(Rarity.RARE), GlassArrowItem.Variant.CITRINE); + public static final ArrowItem ONYX_GLASS_ARROW = new GlassArrowItem(Tab.EQUIPMENT.settings(Rarity.RARE), GlassArrowItem.Variant.ONYX); // pulls entities + public static final ArrowItem MOONSTONE_GLASS_ARROW = new GlassArrowItem(Tab.EQUIPMENT.settings(Rarity.RARE), GlassArrowItem.Variant.MOONSTONE); + + // Special tools + public static final SwordItem DREAMFLAYER = new DreamflayerItem(SpectrumToolMaterials.ToolMaterial.DREAMFLAYER, 3, -1.8F, Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); + public static final SwordItem NIGHTFALLS_BLADE = new NightfallsBladeItem(SpectrumToolMaterials.ToolMaterial.NIGHTFALL, 0, -3.4F, Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); // Bedrock Armor public static final Item BEDROCK_HELMET = new BedrockArmorItem(SpectrumArmorMaterials.BEDROCK, EquipmentSlot.HEAD, Tab.EQUIPMENT.settings(Rarity.RARE).fireproof().maxDamage(-1)) { @@ -193,11 +210,10 @@ public Map getDefaultEnchantments() { }; // Armor - public static final ArmorMaterial EMERGENCY_ARMOR_MATERIAL = SpectrumArmorMaterials.EMERGENCY; - public static final Item EMERGENCY_HELMET = new GemstoneArmorItem(EMERGENCY_ARMOR_MATERIAL, EquipmentSlot.HEAD, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.EMERGENCY.getDurability(EquipmentSlot.HEAD))); - public static final Item EMERGENCY_CHESTPLATE = new GemstoneArmorItem(EMERGENCY_ARMOR_MATERIAL, EquipmentSlot.CHEST, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.EMERGENCY.getDurability(EquipmentSlot.CHEST))); - public static final Item EMERGENCY_LEGGINGS = new GemstoneArmorItem(EMERGENCY_ARMOR_MATERIAL, EquipmentSlot.LEGS, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.EMERGENCY.getDurability(EquipmentSlot.LEGS))); - public static final Item EMERGENCY_BOOTS = new GemstoneArmorItem(EMERGENCY_ARMOR_MATERIAL, EquipmentSlot.FEET, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.EMERGENCY.getDurability(EquipmentSlot.FEET))); + public static final Item FETCHLING_HELMET = new GemstoneArmorItem(SpectrumArmorMaterials.GEMSTONE, EquipmentSlot.HEAD, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.GEMSTONE.getDurability(EquipmentSlot.HEAD))); + public static final Item FEROCIOUS_CHESTPLATE = new GemstoneArmorItem(SpectrumArmorMaterials.GEMSTONE, EquipmentSlot.CHEST, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.GEMSTONE.getDurability(EquipmentSlot.CHEST))); + public static final Item SYLPH_LEGGINGS = new GemstoneArmorItem(SpectrumArmorMaterials.GEMSTONE, EquipmentSlot.LEGS, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.GEMSTONE.getDurability(EquipmentSlot.LEGS))); + public static final Item OREAD_BOOTS = new GemstoneArmorItem(SpectrumArmorMaterials.GEMSTONE, EquipmentSlot.FEET, Tab.EQUIPMENT.settings(Rarity.RARE).maxDamage(SpectrumArmorMaterials.GEMSTONE.getDurability(EquipmentSlot.FEET))); // Decay drops public static final Item VEGETAL = new CloakedItemWithLoomPattern(Tab.RESOURCES.settings(), SpectrumCommon.locate("craft_bottle_of_fading"), Items.GUNPOWDER, SpectrumBannerPatterns.VEGETAL); @@ -206,40 +222,45 @@ public Map getDefaultEnchantments() { public static final MidnightAberrationItem MIDNIGHT_ABERRATION = new MidnightAberrationItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("midgame/create_midnight_aberration"), SpectrumItems.SPECTRAL_SHARD); public static final Item MIDNIGHT_CHIP = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("midgame/create_midnight_aberration"), Items.GRAY_DYE); - - public static final Item BISMUTH_FLAKE = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("midgame/enter_dimension"), Items.CYAN_DYE); - public static final Item BISMUTH_CRYSTAL = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("midgame/enter_dimension"), Items.CYAN_DYE); - - public static final Item RAW_MALACHITE = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("milestones/reveal_malachite"), Items.GREEN_DYE); - public static final Item MALACHITE_CRYSTAL = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("milestones/reveal_malachite"), Items.GREEN_DYE); - - // Fluid Buckets - public static final Item LIQUID_CRYSTAL_BUCKET = new BucketItem(LIQUID_CRYSTAL, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); - public static final Item MUD_BUCKET = new BucketItem(MUD, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); - public static final Item MIDNIGHT_SOLUTION_BUCKET = new BucketItem(MIDNIGHT_SOLUTION, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); - - // Decay bottles - public static final Item BOTTLE_OF_FADING = new DecayPlacerItem(SpectrumBlocks.FADING, Tab.EQUIPMENT.settings(16)); - public static final Item BOTTLE_OF_FAILING = new DecayPlacerItem(SpectrumBlocks.FAILING, Tab.EQUIPMENT.settings(16)); - public static final Item BOTTLE_OF_RUIN = new DecayPlacerItem(SpectrumBlocks.RUIN, Tab.EQUIPMENT.settings(16)); - public static final Item BOTTLE_OF_TERROR = new DecayPlacerItem(SpectrumBlocks.TERROR, Tab.EQUIPMENT.settings(16)); - public static final Item BOTTLE_OF_DECAY_AWAY = new DecayPlacerItem(SpectrumBlocks.DECAY_AWAY, Tab.EQUIPMENT.settings(16)); - - // Resources - public static final CloakedItem SPARKLESTONE_GEM = new CloakedItemWithLoomPattern(Tab.RESOURCES.settings(), ((RevelationAware) SpectrumBlocks.SPARKLESTONE_ORE).getCloakAdvancementIdentifier(), Items.YELLOW_DYE, SpectrumBannerPatterns.SHIMMERSTONE); + + public static final Item BISMUTH_FLAKE = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("midgame/enter_dimension"), Items.CYAN_DYE); + public static final Item BISMUTH_CRYSTAL = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("midgame/enter_dimension"), Items.CYAN_DYE); + + public static final Item RAW_MALACHITE = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("milestones/reveal_malachite"), Items.GREEN_DYE); + public static final Item MALACHITE_CRYSTAL = new CloakedItem(Tab.RESOURCES.settings(Rarity.UNCOMMON), SpectrumCommon.locate("milestones/reveal_malachite"), Items.GREEN_DYE); + + // Fluid Buckets + public static final Item LIQUID_CRYSTAL_BUCKET = new BucketItem(LIQUID_CRYSTAL, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); + public static final Item MUD_BUCKET = new BucketItem(MUD, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); + public static final Item MIDNIGHT_SOLUTION_BUCKET = new BucketItem(MIDNIGHT_SOLUTION, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); + public static final Item DRAGONROT_BUCKET = new BucketItem(DRAGONROT, Tab.EQUIPMENT.settings(1).recipeRemainder(Items.BUCKET)); + + // Decay bottles + public static final Item BOTTLE_OF_FADING = new DecayPlacerItem(SpectrumBlocks.FADING, Tab.EQUIPMENT.settings(16)); + public static final Item BOTTLE_OF_FAILING = new DecayPlacerItem(SpectrumBlocks.FAILING, Tab.EQUIPMENT.settings(16)); + public static final Item BOTTLE_OF_RUIN = new DecayPlacerItem(SpectrumBlocks.RUIN, Tab.EQUIPMENT.settings(16)); + public static final Item BOTTLE_OF_FORFEITURE = new DecayPlacerItem(SpectrumBlocks.FORFEITURE, Tab.EQUIPMENT.settings(16)); + public static final Item BOTTLE_OF_DECAY_AWAY = new DecayPlacerItem(SpectrumBlocks.DECAY_AWAY, Tab.EQUIPMENT.settings(16)); + + // Resources + public static final CloakedItem SHIMMERSTONE_GEM = new CloakedItemWithLoomPattern(Tab.RESOURCES.settings(), ((RevelationAware) SpectrumBlocks.SHIMMERSTONE_ORE).getCloakAdvancementIdentifier(), Items.YELLOW_DYE, SpectrumBannerPatterns.SHIMMERSTONE); public static final CloakedItem RAW_AZURITE = new CloakedItemWithLoomPattern(Tab.RESOURCES.settings(), ((RevelationAware) SpectrumBlocks.AZURITE_ORE).getCloakAdvancementIdentifier(), Items.BLUE_DYE, SpectrumBannerPatterns.RAW_AZURITE); public static final CloakedItem REFINED_AZURITE = new CloakedItem(Tab.RESOURCES.settings(), ((RevelationAware) SpectrumBlocks.AZURITE_ORE).getCloakAdvancementIdentifier(), Items.BLUE_DYE); - public static final CloakedFloatItem SCARLET_FRAGMENTS = new CloakedFloatItem(Tab.RESOURCES.settings(64).fireproof(), 1.003F, ((RevelationAware) SpectrumBlocks.SCARLET_ORE).getCloakAdvancementIdentifier(), Items.RED_DYE); - public static final CloakedFloatItem SCARLET_GEM = new CloakedFloatItem(Tab.RESOURCES.settings(16).fireproof(), 1.02F, ((RevelationAware) SpectrumBlocks.SCARLET_ORE).getCloakAdvancementIdentifier(), Items.RED_DYE); - public static final CloakedFloatItem PALETUR_FRAGMENTS = new CloakedFloatItem(Tab.RESOURCES.settings(), 0.997F, ((RevelationAware) SpectrumBlocks.PALETUR_ORE).getCloakAdvancementIdentifier(), Items.CYAN_DYE); - public static final CloakedFloatItem PALETUR_GEM = new CloakedFloatItem(Tab.RESOURCES.settings(16), 0.98F, ((RevelationAware) SpectrumBlocks.PALETUR_ORE).getCloakAdvancementIdentifier(), Items.CYAN_DYE); - + public static final CloakedFloatItem STRATINE_FRAGMENTS = new CloakedFloatItem(Tab.RESOURCES.settings(64).fireproof(), 1.003F, ((RevelationAware) SpectrumBlocks.STRATINE_ORE).getCloakAdvancementIdentifier(), Items.RED_DYE); + public static final CloakedFloatItem STRATINE_GEM = new CloakedFloatItem(Tab.RESOURCES.settings(16).fireproof(), 1.02F, ((RevelationAware) SpectrumBlocks.STRATINE_ORE).getCloakAdvancementIdentifier(), Items.RED_DYE); + public static final CloakedFloatItem PALTAERIA_FRAGMENTS = new CloakedFloatItem(Tab.RESOURCES.settings(), 0.997F, ((RevelationAware) SpectrumBlocks.PALTAERIA_ORE).getCloakAdvancementIdentifier(), Items.CYAN_DYE); + public static final CloakedFloatItem PALTAERIA_GEM = new CloakedFloatItem(Tab.RESOURCES.settings(16), 0.98F, ((RevelationAware) SpectrumBlocks.PALTAERIA_ORE).getCloakAdvancementIdentifier(), Items.CYAN_DYE); + public static final Item DRAGONBONE_SHARD = new Item(Tab.RESOURCES.settings(Rarity.UNCOMMON)); + public static final Item DRAGONBONE_NEEDLE = new Item(Tab.RESOURCES.settings(Rarity.UNCOMMON)); + public static final Item RESONANCE_SHARD = new Item(Tab.RESOURCES.settings(Rarity.UNCOMMON)); + public static final CloakedItem QUITOXIC_POWDER = new CloakedItem(Tab.RESOURCES.settings(), ((RevelationAware) SpectrumBlocks.QUITOXIC_REEDS).getCloakAdvancementIdentifier(), Items.PURPLE_DYE); - public static final CloakedItem LIGHTNING_STONE = new LightningStoneItem(Tab.RESOURCES.settings(16), ((RevelationAware) SpectrumBlocks.STUCK_LIGHTNING_STONE).getCloakAdvancementIdentifier(), Items.YELLOW_DYE); + public static final CloakedItem STORM_STONE = new StormStoneItem(Tab.RESOURCES.settings(16), ((RevelationAware) SpectrumBlocks.STUCK_STORM_STONE).getCloakAdvancementIdentifier(), Items.YELLOW_DYE); public static final CloakedItem MERMAIDS_GEM = new CloakedItem(Tab.RESOURCES.settings(16), SpectrumCommon.locate("craft_using_pedestal"), Items.LIGHT_BLUE_DYE); - public static final CloakedItem SHOOTING_STAR = new CloakedItem(Tab.RESOURCES.settings(16), SpectrumCommon.locate("milestones/unlock_shooting_stars"), Items.PURPLE_DYE); + public static final CloakedItem STAR_FRAGMENT = new CloakedItem(Tab.RESOURCES.settings(16), SpectrumCommon.locate("milestones/unlock_shooting_stars"), Items.PURPLE_DYE); public static final CloakedItem STARDUST = new CloakedItemWithLoomPattern(Tab.RESOURCES.settings(), SpectrumCommon.locate("milestones/unlock_shooting_stars"), Items.PURPLE_DYE, SpectrumBannerPatterns.SHIMMER); + public static final ItemWithTooltip FRIGID_STARDUST = new ItemWithTooltip(Tab.RESOURCES.settings(), "item.spectrum.frigid_stardust.tooltip"); public static final Item HIBERNATING_JADE_VINE_SEEDS = new ItemWithTooltip(Tab.RESOURCES.settings(16), "item.spectrum.hibernating_jade_vine_seeds.tooltip"); public static final CloakedItem GERMINATED_JADE_VINE_SEEDS = new GerminatedJadeVineSeedsItem(Tab.RESOURCES.settings(16), SpectrumCommon.locate("hidden/collect_hibernating_jade_vine_seeds"), Items.LIME_DYE); public static final CloakedItem JADE_VINE_PETALS = new CloakedItemWithLoomPattern(Tab.RESOURCES.settings(), SpectrumCommon.locate("midgame/build_spirit_instiller_structure"), Items.LIME_DYE, SpectrumBannerPatterns.JADE_VINE); @@ -253,34 +274,34 @@ public Map getDefaultEnchantments() { public static final Item ONYX_ROCK_CANDY = new RockCandyItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.ONYX_ROCK_CANDY), RockCandy.RockCandyVariant.ONYX); public static final Item MOONSTONE_ROCK_CANDY = new RockCandyItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.MOONSTONE_ROCK_CANDY), RockCandy.RockCandyVariant.MOONSTONE); - public static final Item BLOODBOIL_SYRUP = new Item(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.BLOODBOIL_SYRUP).recipeRemainder(Items.GLASS_BOTTLE)); + public static final Item BLOODBOIL_SYRUP = new DrinkItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.BLOODBOIL_SYRUP).recipeRemainder(Items.GLASS_BOTTLE)); // Food & drinks public static final Item MOONSTRUCK_NECTAR = new MoonstruckNectarItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.MOONSTRUCK_NECTAR).recipeRemainder(Items.GLASS_BOTTLE)); public static final Item JADE_JELLY = new ItemWithTooltip(Tab.CONSUMABLES.settings(Rarity.UNCOMMON).food(SpectrumFoodComponents.JADE_JELLY), "item.spectrum.jade_jelly.tooltip"); public static final Item RESTORATION_TEA = new RestorationTeaItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.RESTORATION_TEA).recipeRemainder(Items.GLASS_BOTTLE), SpectrumFoodComponents.RESTORATION_TEA_SCONE_BONUS); public static final Item KIMCHI = new KimchiItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.KIMCHI)); - public static final Item CLOTTED_CREAM = new ClottedCreamItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.CLOTTED_CREAM), "item.spectrum.clotted_cream.tooltip"); + public static final Item CLOTTED_CREAM = new ClottedCreamItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.CLOTTED_CREAM), new String[]{"item.spectrum.clotted_cream.tooltip", "item.spectrum.clotted_cream.tooltip2"}); public static final Item FRESH_CHOCOLATE = new CustomUseTimeItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.FRESH_CHOCOLATE), 10); public static final Item HOT_CHOCOLATE = new TeaItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.HOT_CHOCOLATE), SpectrumFoodComponents.HOT_CHOCOLATE_SCONE_BONUS); public static final Item BODACIOUS_BERRY_BAR = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.BODACIOUS_BERRY_BAR)); public static final Item DEMON_TEA = new TeaItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.DEMON_TEA), SpectrumFoodComponents.DEMON_TEA_SCONE_BONUS); public static final Item SCONE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.SCONE)); - public static final Item INFUSED_BEVERAGE = new InfusedBeverageItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.INFUSED_BEVERAGE).recipeRemainder(Items.GLASS_BOTTLE)); - public static final Item REPRISE = new RepriseItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.INFUSED_BEVERAGE).recipeRemainder(Items.GLASS_BOTTLE)); - public static final Item SUSPICIOUS_BREW = new SuspiciousBrewItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.SUSPICIOUS_BREW).recipeRemainder(Items.GLASS_BOTTLE)); - public static final Item JADE_WINE = new JadeWineItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.JADE_WINE).recipeRemainder(Items.GLASS_BOTTLE)); + + public static final Item INFUSED_BEVERAGE = new InfusedBeverageItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.BEVERAGE).recipeRemainder(Items.GLASS_BOTTLE)); + public static final Item SUSPICIOUS_BREW = new SuspiciousBrewItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.BEVERAGE).recipeRemainder(Items.GLASS_BOTTLE)); + public static final Item REPRISE = new RepriseItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.BEVERAGE).recipeRemainder(Items.GLASS_BOTTLE)); public static final Item PURE_ALCOHOL = new PureAlcoholItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.PURE_ALCOHOL).recipeRemainder(Items.GLASS_BOTTLE)); - public static final Item MOONSHINE = new InfusedBeverageItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.MOONSHINE).recipeRemainder(Items.GLASS_BOTTLE)); - public static final Item CHRYSOCOLLA = new PureAlcoholItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.CHRYSOCOLLA).recipeRemainder(Items.GLASS_BOTTLE)); - + public static final Item JADE_WINE = new JadeWineItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.BEVERAGE).recipeRemainder(Items.GLASS_BOTTLE)); + public static final Item CHRYSOCOLLA = new PureAlcoholItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.PURE_ALCOHOL).recipeRemainder(Items.GLASS_BOTTLE)); + public static final Item HONEY_PASTRY = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.HONEY_PASTRY)); public static final Item LUCKY_ROLL = new Item(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.LUCKY_ROLL)); public static final Item TRIPLE_MEAT_POT_PIE = new CustomUseTimeItem(Tab.CONSUMABLES.settings(8).food(SpectrumFoodComponents.TRIPLE_MEAT_POT_PIE), 96); public static final Item GLISTERING_JELLY_TEA = new TeaItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.GLISTERING_JELLY_TEA).recipeRemainder(Items.GLASS_BOTTLE), SpectrumFoodComponents.GLISTERING_JELLY_TEA_SCONE_BONUS); public static final Item FREIGEIST = new FreigeistItem(Tab.CONSUMABLES.settings(16).food(SpectrumFoodComponents.FREIGEIST).recipeRemainder(Items.GLASS_BOTTLE)); public static final Item DIVINATION_HEART = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.DIVINATION_HEART)); - + public static final Item STAR_CANDY = new StarCandyItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.STAR_CANDY)); public static final Item PURPLE_STAR_CANDY = new EnchantedStarCandyItem(Tab.CONSUMABLES.settings(16, Rarity.UNCOMMON).food(SpectrumFoodComponents.PURPLE_STAR_CANDY)); @@ -292,31 +313,43 @@ public Map getDefaultEnchantments() { public static final Item WEEPING_TART = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.WEEPING_TART)); public static final Item WHISPY_TART = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.WHISPY_TART)); public static final Item PUFF_TART = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.PUFF_TART)); - + public static final Item JARAMEL_TRIFLE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.JARAMEL_TRIFLE)); public static final Item SALTED_JARAMEL_TRIFLE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.SALTED_JARAMEL_TRIFLE)); public static final Item MONSTER_TRIFLE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.MONSTER_TRIFLE)); public static final Item DEMON_TRIFLE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.DEMON_TRIFLE)); - + + public static final Item MYCEYLON = new Item(Tab.CONSUMABLES.settings()); + public static final Item MYCEYLON_APPLE_PIE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.MYCEYLON_APPLE_PIE)); + public static final Item MYCEYLON_PUMPKIN_PIE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.MYCEYLON_PUMPKIN_PIE)); + public static final Item MYCEYLON_COOKIE = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.MYCEYLON_COOKIE)); + public static final Item ALOE_LEAF = new AliasedBlockItem(SpectrumBlocks.ALOE, Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.ALOE_LEAF)); + public static final Item SAWBLADE_HOLLY_BERRY = new AliasedBlockItem(SpectrumBlocks.SAWBLADE_HOLLY_BUSH, Tab.CONSUMABLES.settings().food(FoodComponents.SWEET_BERRIES)); + public static final Item PRICKLY_BAYLEAF = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.PRICKLY_BAYLEAF)); + public static final Item SPIKED_POTATOES = new Item(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.SPIKED_POTATOES)); + public static final Item TRIPLE_MEAT_POT_STEW = new StewItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.TRIPLE_MEAT_POT_STEW)); + public static final Item DRAGONBONE_BROTH = new StewItem(Tab.CONSUMABLES.settings().food(SpectrumFoodComponents.DRAGONBONE_BROTH)); + public static final Item DOOMBLOOM_SEED = new AliasedBlockItem(SpectrumBlocks.DOOMBLOOM, Tab.RESOURCES.settings()); + public static final Item GLISTERING_MELON_SEEDS = new AliasedBlockItem(SpectrumBlocks.GLISTERING_MELON_STEM, Tab.RESOURCES.settings()); public static final Item AMARANTH_GRAINS = new AliasedBlockItem(SpectrumBlocks.AMARANTH, Tab.RESOURCES.settings()); - + // Banner Patterns - public static final Item LOGO_BANNER_PATTERN = new SpectrumBannerPatternItem(Tab.EQUIPMENT.settings(1, Rarity.RARE), SpectrumBannerPatterns.SPECTRUM_LOGO, "item.spectrum.logo_banner_pattern.desc"); - public static final Item AMETHYST_SHARD_BANNER_PATTERN = new SpectrumBannerPatternItem(Tab.EQUIPMENT.settings(1), SpectrumBannerPatterns.AMETHYST_SHARD, "item.minecraft.amethyst_shard"); - public static final Item AMETHYST_CLUSTER_BANNER_PATTERN = new SpectrumBannerPatternItem(Tab.EQUIPMENT.settings(1), SpectrumBannerPatterns.AMETHYST_CLUSTER, "block.minecraft.amethyst_cluster"); - - public static final Item EGG_LAYING_WOOLY_PIG_SPAWN_EGG = new SpawnEggItem(SpectrumEntityTypes.EGG_LAYING_WOOLY_PIG, 0x4e3842, 0xffe6c2, (new Item.Settings()).group(ItemGroup.MISC)); // TODO: colors + public static final Item LOGO_BANNER_PATTERN = new SpectrumBannerPatternItem(Tab.EQUIPMENT.settings(1, Rarity.RARE), SpectrumBannerPatterns.SPECTRUM_LOGO_TAG, "item.spectrum.logo_banner_pattern.desc"); + public static final Item AMETHYST_SHARD_BANNER_PATTERN = new SpectrumBannerPatternItem(Tab.EQUIPMENT.settings(1), SpectrumBannerPatterns.AMETHYST_SHARD_TAG, "item.minecraft.amethyst_shard"); + public static final Item AMETHYST_CLUSTER_BANNER_PATTERN = new SpectrumBannerPatternItem(Tab.EQUIPMENT.settings(1), SpectrumBannerPatterns.AMETHYST_CLUSTER_TAG, "block.minecraft.amethyst_cluster"); + + public static final Item EGG_LAYING_WOOLY_PIG_SPAWN_EGG = new SpawnEggItem(SpectrumEntityTypes.EGG_LAYING_WOOLY_PIG, 0x4e3842, 0xffe6c2, (new Item.Settings()).group(ItemGroup.MISC)); // Magical Tools - public static final Item ENDER_BAG = new EnderBagItem(Tab.EQUIPMENT.settings(1)); + public static final Item BAG_OF_HOLDING = new EnderBagItem(Tab.EQUIPMENT.settings(1)); public static final Item RADIANCE_STAFF = new RadianceStaffItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final Item NATURES_STAFF = new NaturesStaffItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); - public static final Item PLACEMENT_STAFF = new PlacementStaffItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); - public static final Item EXCHANGE_STAFF = new ExchangeStaffItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); + public static final Item CONSTRUCTORS_STAFF = new PlacementStaffItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); + public static final Item EXCHANGING_STAFF = new ExchangeStaffItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final Item BLOCK_FLOODER = new BlockFlooderItem(Tab.EQUIPMENT.settings(Rarity.UNCOMMON)); public static final EnderSpliceItem ENDER_SPLICE = new EnderSpliceItem(Tab.EQUIPMENT.settings(16, Rarity.UNCOMMON)); - public static final Item END_PORTAL_CRACKER = new EndPortalCrackerItem(Tab.EQUIPMENT.settings(Rarity.RARE)); + public static final Item PERTURBED_EYE = new PerturbedEyeItem(Tab.EQUIPMENT.settings(Rarity.RARE)); public static final Item CRESCENT_CLOCK = new Item(Tab.EQUIPMENT.settings(1)); // Elemental Powder @@ -337,12 +370,13 @@ public Map getDefaultEnchantments() { public static final Item LUCID_WHITE_CATKIN = new CatkinItem(BuiltinGemstoneColor.WHITE, true, Tab.RESOURCES.settings(Rarity.UNCOMMON)); // Misc - public static final Item MUSIC_DISC_SPECTRUM_THEME = new SpectrumMusicDiscItem(1, SpectrumSoundEvents.SPECTRUM_THEME, Tab.EQUIPMENT.settings(1,Rarity.RARE)); - public static final Item MUSIC_DISC_DIMENSION_THEME = new SpectrumMusicDiscItem(2, SpectrumSoundEvents.BOSS_THEME, Tab.EQUIPMENT.settings(1,Rarity.RARE)); - public static final Item MUSIC_DISC_EVERREFLECTIVE = new SpectrumMusicDiscItem(3, SpectrumSoundEvents.DIVINITY, Tab.EQUIPMENT.settings(1,Rarity.RARE)); + public static final Item MUSIC_DISC_SPECTRUM_THEME = new SpectrumMusicDiscItem(1, SpectrumSoundEvents.SPECTRUM_THEME, Tab.EQUIPMENT.settings(1, Rarity.RARE), 120); + public static final Item MUSIC_DISC_DIMENSION_THEME = new SpectrumMusicDiscItem(2, SpectrumSoundEvents.BOSS_THEME, Tab.EQUIPMENT.settings(1, Rarity.RARE), 265); + public static final Item MUSIC_DISC_EVERREFLECTIVE = new SpectrumMusicDiscItem(3, SpectrumSoundEvents.DIVINITY, Tab.EQUIPMENT.settings(1, Rarity.RARE), 289); + public static final Item SPAWNER = new SpectrumMobSpawnerItem(Tab.GENERAL.settings(1, Rarity.EPIC)); - public static final Item INVISIBLE_ITEM_FRAME = new InvisibleItemFrameItem(SpectrumEntityTypes.INVISIBLE_ITEM_FRAME, Tab.EQUIPMENT.settings()); - public static final Item INVISIBLE_GLOW_ITEM_FRAME = new InvisibleGlowItemFrameItem(SpectrumEntityTypes.INVISIBLE_GLOW_ITEM_FRAME, Tab.EQUIPMENT.settings()); + public static final Item PHANTOM_FRAME = new PhantomFrameItem(SpectrumEntityTypes.PHANTOM_FRAME, Tab.EQUIPMENT.settings()); + public static final Item GLOW_PHANTOM_FRAME = new PhantomGlowFrameItem(SpectrumEntityTypes.GLOW_PHANTOM_FRAME, Tab.EQUIPMENT.settings()); public static final Item BOTTOMLESS_BUNDLE = new BottomlessBundleItem(Tab.EQUIPMENT.settings(1)); public static final Item KNOWLEDGE_GEM = new KnowledgeGemItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON), 10000); @@ -359,6 +393,7 @@ public Map getDefaultEnchantments() { public static final Item FANCIFUL_STONE_RING = new Item(Tab.EQUIPMENT.settings(16, Rarity.UNCOMMON)); public static final Item FANCIFUL_CIRCLET = new Item(Tab.EQUIPMENT.settings(16, Rarity.UNCOMMON)); public static final Item FANCIFUL_GLOVES = new Item(Tab.EQUIPMENT.settings(16, Rarity.UNCOMMON)); + public static final Item FANCIFUL_BISMUTH_RING = new Item(Tab.EQUIPMENT.settings(16, Rarity.UNCOMMON)); public static final Item GLOW_VISION_GOGGLES = new GlowVisionGogglesItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final Item JEOPARDANT = new AttackRingItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); @@ -371,7 +406,8 @@ public Map getDefaultEnchantments() { public static final AzureDikeAmuletItem SHIELDGRASP_AMULET = new AzureDikeAmuletItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final ExtraHealthRingItem HEARTSINGERS_REWARD_RING = new ExtraHealthRingItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final ExtraReachGlovesItem GLOVES_OF_DAWNS_GRASP = new ExtraReachGlovesItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); - + public static final ExtraMiningSpeedRingItem RING_OF_PURSUIT = new ExtraMiningSpeedRingItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); + public static final InkFlaskItem INK_FLASK = new InkFlaskItem(Tab.EQUIPMENT.settings(1), 64 * 64 * 100); // 64 stacks of pigments (1 pigment => 100 energy) public static final InkAssortmentItem INK_ASSORTMENT = new InkAssortmentItem(Tab.EQUIPMENT.settings(1), 64 * 100); public static final PigmentPaletteItem PIGMENT_PALETTE = new PigmentPaletteItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON), 64 * 64 * 100); @@ -382,9 +418,10 @@ public Map getDefaultEnchantments() { public static final Item LESSER_POTION_PENDANT = new PotionPendantItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON), 1, SpectrumCommon.CONFIG.MaxLevelForEffectsInLesserPotionPendant - 1, SpectrumCommon.locate("progression/unlock_lesser_potion_pendant")); public static final Item GREATER_POTION_PENDANT = new PotionPendantItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON), 3, SpectrumCommon.CONFIG.MaxLevelForEffectsInGreaterPotionPendant - 1, SpectrumCommon.locate("progression/unlock_greater_potion_pendant")); public static final Item ASHEN_CIRCLET = new AshenCircletItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON).fireproof()); - public static final Item TIDAL_CIRCLET = new TidalCircletItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); + public static final Item WEEPING_CIRCLET = new TidalCircletItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final Item PUFF_CIRCLET = new PuffCircletItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); public static final Item WHISPY_CIRCLET = new WhispyCircletItem(Tab.EQUIPMENT.settings(1, Rarity.UNCOMMON)); + public static final Item CIRCLET_OF_ARROGANCE = new CircletOfArroganceItem(Tab.EQUIPMENT.settings(1, Rarity.RARE)); public static final Item NEAT_RING = new NeatRingItem(Tab.EQUIPMENT.settings(1, Rarity.RARE)); // Pure Clusters @@ -414,11 +451,10 @@ private static void register(String name, Item item, DyeColor dyeColor) { } public static void register() { - register("manual", GUIDEBOOK, DyeColor.WHITE); + register("guidebook", GUIDEBOOK, DyeColor.WHITE); register("paintbrush", PAINTBRUSH, DyeColor.WHITE); registerGemstoneItems(); - registerGraces(); registerPigments(); registerCatkin(); registerResources(); @@ -435,6 +471,7 @@ public static void register() { register("music_disc_spectrum_theme", MUSIC_DISC_SPECTRUM_THEME, DyeColor.GREEN); register("music_disc_dimension_theme", MUSIC_DISC_DIMENSION_THEME, DyeColor.GREEN); register("music_disc_everreflective", MUSIC_DISC_EVERREFLECTIVE, DyeColor.GREEN); + register("spawner", SPAWNER, DyeColor.LIGHT_GRAY); register("glistering_melon_seeds", GLISTERING_MELON_SEEDS, DyeColor.LIME); register("amaranth_grains", AMARANTH_GRAINS, DyeColor.LIME); @@ -465,10 +502,6 @@ public static void registerPureClusters() { register("pure_globette_end", PURE_GLOBETTE_END, DyeColor.GREEN); } - public static void registerGraces() { - //register("white_crystal_grace", WHITE_CRYSTAL_GRACE, DyeColor.WHITE); - } - public static void registerStructurePlacers() { register("pedestal_tier_1_structure_placer", PEDESTAL_TIER_1_STRUCTURE_PLACER, DyeColor.WHITE); register("pedestal_tier_2_structure_placer", PEDESTAL_TIER_2_STRUCTURE_PLACER, DyeColor.WHITE); @@ -533,19 +566,23 @@ public static void registerCatkin() { } public static void registerResources() { - register("sparklestone_gem", SPARKLESTONE_GEM, DyeColor.YELLOW); + register("shimmerstone_gem", SHIMMERSTONE_GEM, DyeColor.YELLOW); register("raw_azurite", RAW_AZURITE, DyeColor.BLUE); register("refined_azurite", REFINED_AZURITE, DyeColor.BLUE); - register("paletur_fragments", PALETUR_FRAGMENTS, DyeColor.LIGHT_BLUE); - register("paletur_gem", PALETUR_GEM, DyeColor.LIGHT_BLUE); - register("scarlet_fragments", SCARLET_FRAGMENTS, DyeColor.RED); - register("scarlet_gem", SCARLET_GEM, DyeColor.RED); - + register("paltaeria_fragments", PALTAERIA_FRAGMENTS, DyeColor.LIGHT_BLUE); + register("paltaeria_gem", PALTAERIA_GEM, DyeColor.LIGHT_BLUE); + register("stratine_fragments", STRATINE_FRAGMENTS, DyeColor.RED); + register("stratine_gem", STRATINE_GEM, DyeColor.RED); + register("dragonbone_shard", DRAGONBONE_SHARD, DyeColor.GRAY); + register("dragonbone_needle", DRAGONBONE_NEEDLE, DyeColor.GRAY); + register("resonance_shard", RESONANCE_SHARD, DyeColor.WHITE); + register("quitoxic_powder", QUITOXIC_POWDER, DyeColor.PURPLE); register("mermaids_gem", MERMAIDS_GEM, DyeColor.LIGHT_BLUE); - register("lightning_stone", LIGHTNING_STONE, DyeColor.YELLOW); - register("shooting_star", SHOOTING_STAR, DyeColor.PURPLE); + register("storm_stone", STORM_STONE, DyeColor.YELLOW); + register("star_fragment", STAR_FRAGMENT, DyeColor.PURPLE); register("stardust", STARDUST, DyeColor.PURPLE); + register("frigid_stardust", FRIGID_STARDUST, DyeColor.PURPLE); register("blood_orchid_petal", BLOOD_ORCHID_PETAL, DyeColor.RED); register("hibernating_jade_vine_seeds", HIBERNATING_JADE_VINE_SEEDS, DyeColor.GRAY); @@ -566,30 +603,32 @@ public static void registerResources() { register("fiery_powder", FIERY_POWDER, DyeColor.ORANGE); register("blizzard_powder", BLIZZARD_POWDER, DyeColor.LIGHT_BLUE); + + register("moonstone_core", MOONSTONE_CORE, DyeColor.WHITE); } public static void registerDecayBottles() { register("bottle_of_fading", BOTTLE_OF_FADING, DyeColor.GRAY); register("bottle_of_failing", BOTTLE_OF_FAILING, DyeColor.GRAY); register("bottle_of_ruin", BOTTLE_OF_RUIN, DyeColor.GRAY); - register("bottle_of_terror", BOTTLE_OF_TERROR, DyeColor.GRAY); + register("bottle_of_forfeiture", BOTTLE_OF_FORFEITURE, DyeColor.GRAY); register("bottle_of_decay_away", BOTTLE_OF_DECAY_AWAY, DyeColor.PINK); } public static void registerPreEnchantedTools() { register("multitool", MULTITOOL, DyeColor.BROWN); - register("silker_pickaxe", SILKER_PICKAXE, DyeColor.BLUE); - register("fortune_pickaxe", FORTUNE_PICKAXE, DyeColor.LIGHT_BLUE); - register("looting_falchion", LOOTING_FALCHION, DyeColor.RED); - register("voiding_pickaxe", VOIDING_PICKAXE, DyeColor.GRAY); + register("tender_pickaxe", TENDER_PICKAXE, DyeColor.BLUE); + register("lucky_pickaxe", LUCKY_PICKAXE, DyeColor.LIGHT_BLUE); + register("razor_falchion", RAZOR_FALCHION, DyeColor.RED); + register("oblivion_pickaxe", OBLIVION_PICKAXE, DyeColor.GRAY); register("resonant_pickaxe", RESONANT_PICKAXE, DyeColor.WHITE); register("lagoon_rod", LAGOON_ROD, DyeColor.LIGHT_BLUE); register("molten_rod", MOLTEN_ROD, DyeColor.ORANGE); - register("emergency_helmet", EMERGENCY_HELMET, DyeColor.BLUE); - register("emergency_chestplate", EMERGENCY_CHESTPLATE, DyeColor.BLUE); - register("emergency_leggings", EMERGENCY_LEGGINGS, DyeColor.BLUE); - register("emergency_boots", EMERGENCY_BOOTS, DyeColor.BLUE); + register("fetchling_helmet", FETCHLING_HELMET, DyeColor.BLUE); + register("ferocious_chestplate", FEROCIOUS_CHESTPLATE, DyeColor.BLUE); + register("sylph_leggings", SYLPH_LEGGINGS, DyeColor.BLUE); + register("oread_boots", OREAD_BOOTS, DyeColor.BLUE); register("bedrock_pickaxe", BEDROCK_PICKAXE, DyeColor.BLACK); register("bedrock_axe", BEDROCK_AXE, DyeColor.BLACK); @@ -600,32 +639,51 @@ public static void registerPreEnchantedTools() { register("bedrock_crossbow", BEDROCK_CROSSBOW, DyeColor.BLACK); register("bedrock_shears", BEDROCK_SHEARS, DyeColor.BLACK); register("bedrock_fishing_rod", BEDROCK_FISHING_ROD, DyeColor.BLACK); - + register("bedrock_helmet", BEDROCK_HELMET, DyeColor.BLACK); register("bedrock_chestplate", BEDROCK_CHESTPLATE, DyeColor.BLACK); register("bedrock_leggings", BEDROCK_LEGGINGS, DyeColor.BLACK); register("bedrock_boots", BEDROCK_BOOTS, DyeColor.BLACK); + register("malachite_workstaff", MALACHITE_WORKSTAFF, DyeColor.GREEN); + register("malachite_ultra_greatsword", MALACHITE_ULTRA_GREATSWORD, DyeColor.GREEN); + register("malachite_crossbow", MALACHITE_CROSSBOW, DyeColor.GREEN); + register("malachite_bident", MALACHITE_BIDENT, DyeColor.GREEN); + + register("glass_crest_workstaff", GLASS_CREST_WORKSTAFF, DyeColor.WHITE); + register("glass_crest_ultra_greatsword", GLASS_CREST_ULTRA_GREATSWORD, DyeColor.WHITE); + register("ferocious_glass_crest_bident", FEROCIOUS_GLASS_CREST_BIDENT, DyeColor.WHITE); + register("fractal_glass_crest_bident", FRACTAL_GLASS_CREST_BIDENT, DyeColor.WHITE); + register("glass_crest_crossbow", GLASS_CREST_CROSSBOW, DyeColor.WHITE); + + register("malachite_glass_arrow", MALACHITE_GLASS_ARROW, DyeColor.GREEN); + register("topaz_glass_arrow", TOPAZ_GLASS_ARROW, DyeColor.CYAN); + register("amethyst_glass_arrow", AMETHYST_GLASS_ARROW, DyeColor.MAGENTA); + register("citrine_glass_arrow", CITRINE_GLASS_ARROW, DyeColor.YELLOW); + register("onyx_glass_arrow", ONYX_GLASS_ARROW, DyeColor.BLACK); + register("moonstone_glass_arrow", MOONSTONE_GLASS_ARROW, DyeColor.WHITE); + register("dreamflayer", DREAMFLAYER, DyeColor.RED); + register("nightfalls_blade", NIGHTFALLS_BLADE, DyeColor.GRAY); } public static void registerMagicalTools() { register("crafting_tablet", CRAFTING_TABLET, DyeColor.LIGHT_GRAY); - register("void_bundle", BOTTOMLESS_BUNDLE, DyeColor.LIGHT_GRAY); - register("invisible_item_frame", INVISIBLE_ITEM_FRAME, DyeColor.YELLOW); - register("invisible_glow_item_frame", INVISIBLE_GLOW_ITEM_FRAME, DyeColor.YELLOW); + register("bottomless_bundle", BOTTOMLESS_BUNDLE, DyeColor.LIGHT_GRAY); + register("phantom_frame", PHANTOM_FRAME, DyeColor.YELLOW); + register("glow_phantom_frame", GLOW_PHANTOM_FRAME, DyeColor.YELLOW); register("knowledge_gem", KNOWLEDGE_GEM, DyeColor.PURPLE); register("celestial_pocketwatch", CELESTIAL_POCKETWATCH, DyeColor.MAGENTA); register("gilded_book", GILDED_BOOK, DyeColor.PURPLE); register("enchantment_canvas", ENCHANTMENT_CANVAS, DyeColor.PURPLE); - register("ender_bag", ENDER_BAG, DyeColor.PURPLE); - register("light_staff", RADIANCE_STAFF, DyeColor.YELLOW); + register("bag_of_holding", BAG_OF_HOLDING, DyeColor.PURPLE); + register("radiance_staff", RADIANCE_STAFF, DyeColor.YELLOW); register("natures_staff", NATURES_STAFF, DyeColor.LIME); - register("placement_staff", PLACEMENT_STAFF, DyeColor.LIGHT_GRAY); - register("exchange_staff", EXCHANGE_STAFF, DyeColor.LIGHT_GRAY); + register("constructors_staff", CONSTRUCTORS_STAFF, DyeColor.LIGHT_GRAY); + register("exchanging_staff", EXCHANGING_STAFF, DyeColor.LIGHT_GRAY); register("block_flooder", BLOCK_FLOODER, DyeColor.LIGHT_GRAY); register("ender_splice", ENDER_SPLICE, DyeColor.PURPLE); - register("end_portal_cracker", END_PORTAL_CRACKER, DyeColor.RED); + register("perturbed_eye", PERTURBED_EYE, DyeColor.RED); register("crescent_clock", CRESCENT_CLOCK, DyeColor.MAGENTA); register("mysterious_locket", MYSTERIOUS_LOCKET, DyeColor.GRAY); @@ -668,19 +726,30 @@ public static void registerConsumables() { register("weeping_tart", WEEPING_TART, DyeColor.PINK); register("whispy_tart", WHISPY_TART, DyeColor.PINK); register("puff_tart", PUFF_TART, DyeColor.PINK); - + register("jaramel_trifle", JARAMEL_TRIFLE, DyeColor.PINK); register("salted_jaramel_trifle", SALTED_JARAMEL_TRIFLE, DyeColor.PINK); register("monster_trifle", MONSTER_TRIFLE, DyeColor.PINK); register("demon_trifle", DEMON_TRIFLE, DyeColor.PINK); - + + register("myceylon", MYCEYLON, DyeColor.PINK); + register("myceylon_apple_pie", MYCEYLON_APPLE_PIE, DyeColor.PINK); + register("myceylon_pumpkin_pie", MYCEYLON_PUMPKIN_PIE, DyeColor.PINK); + register("myceylon_cookie", MYCEYLON_COOKIE, DyeColor.PINK); + register("aloe_leaf", ALOE_LEAF, DyeColor.PINK); + register("sawblade_holly_berry", SAWBLADE_HOLLY_BERRY, DyeColor.PINK); + register("prickly_bayleaf", PRICKLY_BAYLEAF, DyeColor.PINK); + register("spiked_potatoes", SPIKED_POTATOES, DyeColor.PINK); + register("triple_meat_pot_stew", TRIPLE_MEAT_POT_STEW, DyeColor.PINK); + register("dragonbone_broth", DRAGONBONE_BROTH, DyeColor.GRAY); + register("doombloom_seed", DOOMBLOOM_SEED, DyeColor.BLACK); + register("infused_beverage", INFUSED_BEVERAGE, DyeColor.PINK); register("pure_alcohol", PURE_ALCOHOL, DyeColor.WHITE); register("reprise", REPRISE, DyeColor.PINK); register("suspicious_brew", SUSPICIOUS_BREW, DyeColor.LIME); register("jade_wine", JADE_WINE, DyeColor.LIME); register("chrysocolla", CHRYSOCOLLA, DyeColor.LIME); - register("moonshine", MOONSHINE, DyeColor.WHITE); register("freigeist", FREIGEIST, DyeColor.RED); register("divination_heart", DIVINATION_HEART, DyeColor.RED); } @@ -699,8 +768,9 @@ public static void registerTrinkets() { register("fanciful_pendant", FANCIFUL_PENDANT, DyeColor.GREEN); register("fanciful_circlet", FANCIFUL_CIRCLET, DyeColor.GREEN); register("fanciful_gloves", FANCIFUL_GLOVES, DyeColor.GREEN); + register("fanciful_bismuth_ring", FANCIFUL_BISMUTH_RING, DyeColor.GREEN); - register("glow_vision_helmet", GLOW_VISION_GOGGLES, DyeColor.WHITE); + register("glow_vision_goggles", GLOW_VISION_GOGGLES, DyeColor.WHITE); register("jeopardant", JEOPARDANT, DyeColor.RED); register("seven_league_boots", SEVEN_LEAGUE_BOOTS, DyeColor.PURPLE); register("radiance_pin", RADIANCE_PIN, DyeColor.BLUE); @@ -711,20 +781,23 @@ public static void registerTrinkets() { register("shieldgrasp_amulet", SHIELDGRASP_AMULET, DyeColor.BLUE); register("heartsingers_reward", HEARTSINGERS_REWARD_RING, DyeColor.PINK); register("gloves_of_dawns_grasp", GLOVES_OF_DAWNS_GRASP, DyeColor.YELLOW); + register("ring_of_pursuit", RING_OF_PURSUIT, DyeColor.MAGENTA); register("gleaming_pin", GLEAMING_PIN, DyeColor.YELLOW); register("lesser_potion_pendant", LESSER_POTION_PENDANT, DyeColor.PINK); register("greater_potion_pendant", GREATER_POTION_PENDANT, DyeColor.PINK); register("ashen_circlet", ASHEN_CIRCLET, DyeColor.ORANGE); - register("tidal_circlet", TIDAL_CIRCLET, DyeColor.LIGHT_BLUE); + register("weeping_circlet", WEEPING_CIRCLET, DyeColor.LIGHT_BLUE); register("puff_circlet", PUFF_CIRCLET, DyeColor.WHITE); register("whispy_circlet", WHISPY_CIRCLET, DyeColor.BROWN); + register("circlet_of_arrogance", CIRCLET_OF_ARROGANCE, DyeColor.RED); register("neat_ring", NEAT_RING, DyeColor.GREEN); } public static void registerFluidBuckets() { register("liquid_crystal_bucket", LIQUID_CRYSTAL_BUCKET, DyeColor.LIGHT_GRAY); register("mud_bucket", MUD_BUCKET, DyeColor.BROWN); - register("midnight_solution_bucket", MIDNIGHT_SOLUTION_BUCKET, DyeColor.GRAY); + register("midnight_solution_bucket", MIDNIGHT_SOLUTION_BUCKET, DyeColor.GRAY); + register("dragonrot_bucket", DRAGONROT_BUCKET, DyeColor.LIGHT_GRAY); } public static void registerFuelRegistry() { @@ -782,102 +855,102 @@ public static void registerFuelRegistry() { FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANKS.asItem(), 300); FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANKS.asItem(), 300); FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANKS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_STAIRS.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_PRESSURE_PLATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_FENCE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_FENCE_GATE.asItem(), 300); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_BUTTON.asItem(), 100); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PLANK_SLAB.asItem(), 150); - FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PLANK_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_STAIRS.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_PRESSURE_PLATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_FENCE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_FENCE_GATE.asItem(), 300); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_BUTTON.asItem(), 100); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLACK_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BLUE_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.BROWN_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.CYAN_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GRAY_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.GREEN_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_BLUE_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIGHT_GRAY_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.LIME_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.MAGENTA_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.ORANGE_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PINK_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.PURPLE_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.RED_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.WHITE_SLAB.asItem(), 150); + FuelRegistry.INSTANCE.add(SpectrumBlocks.YELLOW_SLAB.asItem(), 150); } } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumModelLayers.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumModelLayers.java deleted file mode 100644 index cd8b6c871b..0000000000 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumModelLayers.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.dafuqs.spectrum.registries; - -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.mob_head.EggLayingWoolyPigHeadModel; -import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigEntityModel; -import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigHatEntityModel; -import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigWoolEntityModel; -import de.dafuqs.spectrum.render.armor.BedrockArmorModel; -import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; -import net.minecraft.client.model.TexturedModelData; -import net.minecraft.client.render.entity.model.EntityModelLayer; -import net.minecraft.util.Identifier; - -public class SpectrumModelLayers { - - /** - * Animals - */ - public static final EntityModelLayer WOOLY_PIG = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig"), "main"); - public static final EntityModelLayer WOOLY_PIG_HAT = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig"), "hat"); - public static final EntityModelLayer WOOLY_PIG_WOOL = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig"), "wool"); - - /** - * Blocks - */ - public static final EntityModelLayer EGG_LAYING_WOOLY_PIG_HEAD = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig_head"), "main"); - - /** - * Armor - */ - public static final EntityModelLayer FEET_BEDROCK_LAYER = new EntityModelLayer(SpectrumCommon.locate("bedrock_armor"), "feet"); - public static final EntityModelLayer MAIN_BEDROCK_LAYER = new EntityModelLayer(SpectrumCommon.locate("bedrock_armor"), "main"); - public static final Identifier BEDROCK_ARMOR_LOCATION = SpectrumCommon.locate("textures/armor/bedrock_armor_main.png"); - - public static void register() { - EntityModelLayerRegistry.registerModelLayer(WOOLY_PIG, EggLayingWoolyPigEntityModel::getTexturedModelData); - EntityModelLayerRegistry.registerModelLayer(WOOLY_PIG_HAT, EggLayingWoolyPigHatEntityModel::getTexturedModelData); - EntityModelLayerRegistry.registerModelLayer(WOOLY_PIG_WOOL, EggLayingWoolyPigWoolEntityModel::getTexturedModelData); - EntityModelLayerRegistry.registerModelLayer(EGG_LAYING_WOOLY_PIG_HEAD, EggLayingWoolyPigHeadModel::getTexturedModelData); - EntityModelLayerRegistry.registerModelLayer(FEET_BEDROCK_LAYER, () -> TexturedModelData.of(BedrockArmorModel.getModelData(), 128, 128)); - EntityModelLayerRegistry.registerModelLayer(MAIN_BEDROCK_LAYER, () -> TexturedModelData.of(BedrockArmorModel.getModelData(), 128, 128)); - } -} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumMultiblocks.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumMultiblocks.java index f3e055e3d2..8361493220 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumMultiblocks.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumMultiblocks.java @@ -2,7 +2,7 @@ import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.enums.PedestalRecipeTier; -import net.minecraft.text.TranslatableText; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -24,6 +24,8 @@ public class SpectrumMultiblocks { public static Identifier PEDESTAL_ADVANCED_STRUCTURE_IDENTIFIER_PLACE = SpectrumCommon.locate("pedestal_advanced_structure_place"); public static Identifier PEDESTAL_COMPLEX_STRUCTURE_IDENTIFIER_CHECK = SpectrumCommon.locate("pedestal_complex_structure_check"); public static Identifier PEDESTAL_COMPLEX_STRUCTURE_IDENTIFIER_PLACE = SpectrumCommon.locate("pedestal_complex_structure_place"); + public static Identifier PEDESTAL_COMPLEX_STRUCTURE_WITHOUT_MOONSTONE_IDENTIFIER_CHECK = SpectrumCommon.locate("pedestal_complex_structure_without_moonstone_check"); + public static Identifier PEDESTAL_COMPLEX_STRUCTURE_WITHOUT_MOONSTONE_IDENTIFIER_PLACE = SpectrumCommon.locate("pedestal_complex_structure_without_moonstone_place"); public static Identifier FUSION_SHRINE_IDENTIFIER = SpectrumCommon.locate("fusion_shrine_structure"); public static Identifier ENCHANTER_IDENTIFIER = SpectrumCommon.locate("enchanter_structure"); @@ -42,12 +44,17 @@ private static void registerMultiBlock(Identifier identifier, String[][] structu MULTIBLOCKS.put(identifier, PatchouliAPI.get().registerMultiblock(identifier, multiblock)); } + private static boolean registered = false; + public static void register() { - registerPedestal(); - registerFusionShrine(); - registerEnchanter(); - registerSpiritInstiller(); - registerCinderhearth(); + if (!registered) { + registerPedestal(); + registerFusionShrine(); + registerEnchanter(); + registerSpiritInstiller(); + registerCinderhearth(); + registered = true; + } } private static void registerFusionShrine() { @@ -99,20 +106,20 @@ private static void registerSpiritInstiller() { }; String[][] structure = { - {"_________", "_________", "__M___M__", "_________", "_________", "_________", "_________", "_________" }, - {"_________", "_________", "_________", "_________", "_________", "_________", "_________", "_________" }, - {"_K_____K_", "_________", "__I___I__", "_________", "_________", "_________", "_________", "_________" }, - {"_P_____P_", "___LLL___", "__CLSLC__", "___LLL___", "___LLL___", "___LLL___", "G_______G", "_________" }, - {"_PXXXXXP_", "_XXXXXXX_", "_XXXXXXX_", "_XXXXXXX_", "_XXX0XXX_", "__XXXXX__", "P__XXX__P", "___LLL___" } + {"_________", "_________", "__M___M__", "_________", "_________", "_________", "_________", "_________"}, + {"_________", "_________", "_________", "_________", "_________", "_________", "_________", "_________"}, + {"_K_____K_", "_________", "__I___I__", "_________", "_________", "_________", "_________", "_________"}, + {"_P_____P_", "___LLL___", "__CLSLC__", "___LLL___", "___LLL___", "___LLL___", "G_______G", "_________"}, + {"_PXXXXXP_", "_XXXXXXX_", "_XXXXXXX_", "_XXXXXXX_", "_XXX0XXX_", "__XXXXX__", "P__XXX__P", "___LLL___"} }; registerMultiBlock(SPIRIT_INSTILLER_IDENTIFIER, structure, targetBlocks); String[][] structureUpgrades = { - {"_________", "_________", "__M___M__", "_________", "_________", "_________", "_________", "_________" }, - {"_________", "_________", "_________", "_________", "_________", "_________", "_________", "_________" }, - {"_K_____K_", "_________", "__I___I__", "_________", "_________", "_________", "U_______U", "_________" }, - {"_P_____P_", "___LLL___", "__CLSLC__", "___LLL___", "___LLL___", "___LLL___", "G_______G", "_________" }, - {"_PXXXXXP_", "_XXXXXXX_", "_XXXXXXX_", "_XXXXXXX_", "_XXX0XXX_", "__XXXXX__", "P__XXX__P", "___LLL___" } + {"_________", "_________", "__M___M__", "_________", "_________", "_________", "_________", "_________"}, + {"_________", "_________", "_________", "_________", "_________", "_________", "_________", "_________"}, + {"_K_____K_", "_________", "__I___I__", "_________", "_________", "_________", "U_______U", "_________"}, + {"_P_____P_", "___LLL___", "__CLSLC__", "___LLL___", "___LLL___", "___LLL___", "G_______G", "_________"}, + {"_PXXXXXP_", "_XXXXXXX_", "_XXXXXXX_", "_XXXXXXX_", "_XXX0XXX_", "__XXXXX__", "P__XXX__P", "___LLL___"} }; registerMultiBlock(SPIRIT_INSTILLER_IDENTIFIER_WITH_UPGRADES, structureUpgrades, targetBlocks); } @@ -165,27 +172,27 @@ private static void registerCinderhearth() { }; String[][] structure = { - {"C___C", "__H__", "_____", "_____" }, - {"Xc_cX", "cG_Gc", "cGGGc", "_XXX_" }, - {"_XXX_", "XLLLX", "XLLLX", "_XXX_" }, - {"_____", "_X0X_", "_XXX_", "_____" } + {"C___C", "__H__", "_____", "_____"}, + {"Xc_cX", "cG_Gc", "cGGGc", "_XXX_"}, + {"_XXX_", "XLLLX", "XLLLX", "_XXX_"}, + {"_____", "_X0X_", "_XXX_", "_____"} }; registerMultiBlock(CINDERHEARTH_IDENTIFIER, structure, targetBlocks); String[][] withoutLavaStructure = { - {"C___C", "__H__", "_____", "_____" }, - {"Xc_cX", "cG_Gc", "cGGGc", "_XXX_" }, - {"_XXX_", "X___X", "X___X", "_XXX_" }, - {"_____", "_X0X_", "_XXX_", "_____" } + {"C___C", "__H__", "_____", "_____"}, + {"Xc_cX", "cG_Gc", "cGGGc", "_XXX_"}, + {"_XXX_", "X___X", "X___X", "_XXX_"}, + {"_____", "_X0X_", "_XXX_", "_____"} }; registerMultiBlock(CINDERHEARTH_WITHOUT_LAVA_IDENTIFIER, withoutLavaStructure, targetBlocks); String[][] structureUpgrades = { - {"U___U", "_____", "_____", "_____" }, - {"C___C", "__H__", "_____", "_____" }, - {"Xc_cX", "cG_Gc", "cGGGc", "_XXX_" }, - {"_XXX_", "XLLLX", "XLLLX", "_XXX_" }, - {"_____", "_X0X_", "_XXX_", "_____" } + {"U___U", "_____", "_____", "_____"}, + {"C___C", "__H__", "_____", "_____"}, + {"Xc_cX", "cG_Gc", "cGGGc", "_XXX_"}, + {"_XXX_", "XLLLX", "XLLLX", "_XXX_"}, + {"_____", "_X0X_", "_XXX_", "_____"} }; registerMultiBlock(CINDERHEARTH_IDENTIFIER_WITH_UPGRADES, structureUpgrades, targetBlocks); } @@ -193,7 +200,7 @@ private static void registerCinderhearth() { private static void registerPedestal() { // since the structure is using rotation on blocks from a block tag // (that's impossible to define via string) we have to split targets for - // check (if structure is built) and display (for auto building via debug item and manual) + // check (if structure is built) and display (for auto building via debug item and guidebook) Object[] targetBlocksCheck = { 'X', "#spectrum:polished_base_blocks", 'T', "#spectrum:crest_base_blocks", @@ -266,6 +273,18 @@ private static void registerPedestal() { registerMultiBlock(PEDESTAL_IDENTIFIER_WITH_UPGRADES, tier2StructureUpgrades, targetBlocksPlace); + String[][] tier3StructureWithoutMoonstone = { + {"_____________", "____XtStX____", "_____________", "_____________", "_X__OtttO__X_", "_T__T___T__T_", "_S__T___T__S_", "_T__T___T__T_", "_X__OtttO__X_", "_____________", "_____________", "____XtStX____", "_____________"}, + {"_____________", "_Sttr___rttS_", "_T__T___T__T_", "_T__T___T__T_", "_rttX___Xttr_", "_____________", "_____________", "_____________", "_rttX___Xttr_", "_T__T___T__T_", "_T__T___T__T_", "_Sttr___rttS_", "_____________"}, + {"_____________", "_Q__Q___Q__Q_", "_____________", "_____________", "_Q_________Q_", "_____________", "_____________", "_____________", "_Q_________Q_", "_____________", "_____________", "_Q__Q___Q__Q_", "_____________"}, + {"_____________", "_C__Q___Q__C_", "_____________", "_____________", "_Q_________Q_", "_____________", "_____________", "_____________", "_Q_________Q_", "_____________", "_____________", "_C__Q___Q__C_", "_____________"}, + {"_____________", "_Q__L___L__Q_", "_____________", "___S_____S___", "_L_________L_", "_____________", "_____________", "_____________", "_L_________L_", "___S_____S___", "_____________", "_Q__L___L__Q_", "_____________"}, + {"_____________", "_K__Q___Q__K_", "_____________", "___Q_____Q___", "_Q_________Q_", "_____________", "______4______", "_____________", "_Q_________Q_", "___Q_____Q___", "_____________", "_K__Q___Q__K_", "_____________"}, + {"XXXXXXXXXXXXX", "XXXXXXXXXXXXX", "XXXXXXXXXXXXX", "XXXXXXXXXXXXX", "XXXXXrXrXXXXX", "XXXXrXXXrXXXX", "XXXXXX0XXXXXX", "XXXXrXXXrXXXX", "XXXXXrXrXXXXX", "XXXXXXXXXXXXX", "XXXXXXXXXXXXX", "XXXXXXXXXXXXX", "XXXXXXXXXXXXX"} + }; + registerMultiBlock(PEDESTAL_COMPLEX_STRUCTURE_WITHOUT_MOONSTONE_IDENTIFIER_CHECK, tier3StructureWithoutMoonstone, targetBlocksCheck); + registerMultiBlock(PEDESTAL_COMPLEX_STRUCTURE_WITHOUT_MOONSTONE_IDENTIFIER_PLACE, tier3StructureWithoutMoonstone, targetBlocksPlace); + String[][] tier3Structure = { {"_____________", "____XtStX____", "_____________", "_____________", "_X__OtttO__X_", "_T__T___T__T_", "_S__T___T__S_", "_T__T___T__T_", "_X__OtttO__X_", "_____________", "_____________", "____XtStX____", "_____________"}, {"_____________", "_Sttr___rttS_", "_T__T___T__T_", "_T__T___T__T_", "_rttX___Xttr_", "_____________", "_____________", "_____________", "_rttX___Xttr_", "_T__T___T__T_", "_T__T___T__T_", "_Sttr___rttS_", "_____________"}, @@ -295,16 +314,16 @@ private static void registerPedestal() { return null; } - public static @Nullable TranslatableText getPedestalStructureText(@NotNull PedestalRecipeTier pedestalRecipeTier) { + public static @Nullable Text getPedestalStructureText(@NotNull PedestalRecipeTier pedestalRecipeTier) { switch (pedestalRecipeTier) { case COMPLEX -> { - return new TranslatableText("multiblock.spectrum.pedestal.complex_structure"); + return Text.translatable("multiblock.spectrum.pedestal.complex_structure"); } case ADVANCED -> { - return new TranslatableText("multiblock.spectrum.pedestal.advanced_structure"); + return Text.translatable("multiblock.spectrum.pedestal.advanced_structure"); } case SIMPLE -> { - return new TranslatableText("multiblock.spectrum.pedestal.simple_structure"); + return Text.translatable("multiblock.spectrum.pedestal.simple_structure"); } } return null; diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumPlacementModifiers.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumPlacementModifiers.java new file mode 100644 index 0000000000..133506ad3f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumPlacementModifiers.java @@ -0,0 +1,20 @@ +package de.dafuqs.spectrum.registries; + +import com.mojang.serialization.Codec; + +import de.dafuqs.spectrum.deeper_down.DragonFossilPlacementModifier; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.gen.placementmodifier.PlacementModifier; +import net.minecraft.world.gen.placementmodifier.PlacementModifierType; + +public class SpectrumPlacementModifiers { + public static PlacementModifierType DRAGON_FOSSIL; + + public static void register() { + DRAGON_FOSSIL = register("dragon_fossil", DragonFossilPlacementModifier.MODIFIER_CODEC); + } + + private static

PlacementModifierType

register(String id, Codec

codec) { + return Registry.register(Registry.PLACEMENT_MODIFIER_TYPE, id, () -> codec); + } +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumRegistries.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumRegistries.java new file mode 100644 index 0000000000..77492f5724 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumRegistries.java @@ -0,0 +1,17 @@ +package de.dafuqs.spectrum.registries; + +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.items.tools.GlassArrowItem; +import net.minecraft.util.registry.Registry; +import net.minecraft.util.registry.RegistryKey; + +public class SpectrumRegistries { + + public static final RegistryKey> GLASS_ARROW_VARIANT_KEY = SpectrumRegistries.createRegistryKey("glass_arrow_variant"); + public static final Registry GLASS_ARROW_VARIANT = Registry.create(GLASS_ARROW_VARIANT_KEY, registry -> GlassArrowItem.Variant.MALACHITE); + + private static RegistryKey> createRegistryKey(String id) { + return RegistryKey.ofRegistry(SpectrumCommon.locate(id)); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumRenderLayers.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumRenderLayers.java deleted file mode 100644 index 3501b0681c..0000000000 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumRenderLayers.java +++ /dev/null @@ -1,54 +0,0 @@ -package de.dafuqs.spectrum.registries; - -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.mixin.client.accessors.RenderLayerAccessor; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.RenderPhase; -import net.minecraft.client.render.VertexFormat; -import net.minecraft.client.render.VertexFormats; -import net.minecraft.util.Identifier; - -@Environment(EnvType.CLIENT) -public class SpectrumRenderLayers { - - /** - * Render layer to be used in Spectrums magical renderers. - * Like glow ink, it glows in the dark, always with max brightness - */ - public static class GlowInTheDarkRenderLayer extends RenderLayer { - - public GlowInTheDarkRenderLayer(String name, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int expectedBufferSize, boolean hasCrumbling, boolean translucent, Runnable startAction, Runnable endAction) { - super(name, vertexFormat, drawMode, expectedBufferSize, hasCrumbling, translucent, startAction, endAction); - } - - public static RenderLayer get(Identifier texture) { - RenderLayer.MultiPhaseParameters multiPhaseParameters = RenderLayer.MultiPhaseParameters.builder().texture(new RenderPhase.Texture(texture, false, false)).transparency(Transparency.TRANSLUCENT_TRANSPARENCY).cull(DISABLE_CULLING).lightmap(ENABLE_LIGHTMAP).overlay(DISABLE_OVERLAY_COLOR).layering(VIEW_OFFSET_Z_LAYERING).shader(ENERGY_SWIRL_SHADER).build(true); - return RenderLayerAccessor.invokeOf("spectrum_glow", VertexFormats.POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL, VertexFormat.DrawMode.QUADS, 256, false, false, multiPhaseParameters); - } - } - - /** - * Render layer to be used for the deeper down portal - */ - public static class DeeperDownPortalRenderLayer extends RenderLayer { - - public static final Identifier OVERLAY_TEXTURE = SpectrumCommon.locate("textures/entity/portal/deeper_down_portal_overlay.png"); - public static final Identifier PORTAL_TEXTURE = SpectrumCommon.locate("textures/entity/portal/deeper_down_portal.png"); - - public DeeperDownPortalRenderLayer(String name, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int expectedBufferSize, boolean hasCrumbling, boolean translucent, Runnable startAction, Runnable endAction) { - super(name, vertexFormat, drawMode, expectedBufferSize, hasCrumbling, translucent, startAction, endAction); - } - - public static RenderLayer get() { - RenderLayer.MultiPhaseParameters multiPhaseParameters = RenderLayer.MultiPhaseParameters.builder().shader(END_PORTAL_SHADER).texture(Textures.create() - .add(OVERLAY_TEXTURE, false, false) - .add(PORTAL_TEXTURE, false, false) - .build()).build(false); - - return RenderLayerAccessor.invokeOf("spectrum_portal", VertexFormats.POSITION, VertexFormat.DrawMode.QUADS, 256, false, false, multiPhaseParameters); - } - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumResourceConditions.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumResourceConditions.java index 04e04f760a..bde0df34b6 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumResourceConditions.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumResourceConditions.java @@ -19,7 +19,7 @@ public static void register() { ResourceConditions.register(ENCHANTMENTS_EXIST, object -> enchantmentExistsMatch(object)); } - public static boolean enchantmentExistsMatch(JsonObject object) { + private static boolean enchantmentExistsMatch(JsonObject object) { JsonArray array = JsonHelper.getArray(object, "values"); for (JsonElement element : array) { diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumSoundEvents.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumSoundEvents.java index 82fa9a76c2..8b1066a8a7 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumSoundEvents.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumSoundEvents.java @@ -1,27 +1,27 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.spectrum.SpectrumCommon; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; +import de.dafuqs.spectrum.*; +import net.minecraft.sound.*; +import net.minecraft.util.*; +import net.minecraft.util.registry.*; public class SpectrumSoundEvents { - - // Music - public static final SoundEvent SPECTRUM_THEME = register("spectrum.music.spectrum_theme"); - public static final SoundEvent BOSS_THEME = register("spectrum.music.boss_theme"); - public static final SoundEvent DEEPER_DOWN_THEME = register("spectrum.music.deeper_down_theme"); - public static final SoundEvent DIVINITY = register("spectrum.music.divinity"); - - // Sounds - public static final SoundEvent PEDESTAL_CRAFTING = register("pedestal_crafting"); - public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_GENERIC = register("pedestal_crafting_finished_generic"); - public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_AMETHYST = register("pedestal_crafting_finished_amethyst"); - public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_CITRINE = register("pedestal_crafting_finished_citrine"); - public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_TOPAZ = register("pedestal_crafting_finished_topaz"); - public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_ONYX = register("pedestal_crafting_finished_onyx"); - public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_MOONSTONE = register("pedestal_crafting_finished_moonstone"); - public static final SoundEvent PEDESTAL_UPGRADE = register("pedestal_upgrade"); + + // Music + public static final SoundEvent SPECTRUM_THEME = register("music.spectrum_theme"); + public static final SoundEvent BOSS_THEME = register("music.boss_theme"); + public static final SoundEvent DEEPER_DOWN_THEME = register("music.deeper_down_theme"); + public static final SoundEvent DIVINITY = register("music.divinity"); + + // Sounds + public static final SoundEvent PEDESTAL_CRAFTING = register("pedestal_crafting"); + public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_GENERIC = register("pedestal_crafting_finished_generic"); + public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_AMETHYST = register("pedestal_crafting_finished_amethyst"); + public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_CITRINE = register("pedestal_crafting_finished_citrine"); + public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_TOPAZ = register("pedestal_crafting_finished_topaz"); + public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_ONYX = register("pedestal_crafting_finished_onyx"); + public static final SoundEvent PEDESTAL_CRAFTING_FINISHED_MOONSTONE = register("pedestal_crafting_finished_moonstone"); + public static final SoundEvent PEDESTAL_UPGRADE = register("pedestal_upgrade"); public static final SoundEvent FUSION_SHRINE_CRAFTING = register("fusion_shrine_crafting"); public static final SoundEvent FUSION_SHRINE_CRAFTING_FINISHED = register("fusion_shrine_crafting_finished"); @@ -46,43 +46,50 @@ public class SpectrumSoundEvents { public static final SoundEvent INK_PROJECTILE_HIT = register("ink_projectile_hit"); public static final SoundEvent INK_PROJECTILE_LAUNCH = register("ink_projectile_launch"); + public static final SoundEvent GROUND_SLAM_CHARGE = register("ground_slam_charge"); + public static final SoundEvent GROUND_SLAM = register("ground_slam"); public static final SoundEvent SHOOTING_STAR_CRACKER = register("shooting_star_cracker"); public static final SoundEvent TEXT_REVEALED = register("spectrum.ui.text_revealed"); public static final SoundEvent USE_FAIL = register("use_fail"); public static final SoundEvent NEW_REVELATION = register("spectrum.ui.new_revelation"); - public static final SoundEvent NEW_RECIPE = register("spectrum.ui.new_recipe"); - public static final SoundEvent DIMENSION_SOUNDS = register("dimension_sounds"); - public static final SoundEvent ITEM_ARMOR_EQUIP_GLOW_VISION = register("armor_equip_glow_vision"); + public static final SoundEvent NEW_RECIPE = register("spectrum.ui.new_recipe"); + public static final SoundEvent DIMENSION_SOUNDS = register("ambient.dimension_sounds"); + public static final SoundEvent ITEM_ARMOR_EQUIP_GLOW_VISION = register("armor_equip_glow_vision"); public static final SoundEvent PLAYER_TELEPORTS = register("player_teleports"); public static final SoundEvent ENDER_SPLICE_CHARGES = register("ender_splice_charges"); public static final SoundEvent ENDER_SPLICE_BOUND = register("ender_splice_bound"); public static final SoundEvent NATURES_STAFF_USE = register("natures_staff_use"); - public static final SoundEvent EXCHANGE_STAFF_SELECT = register("exchange_staff_select"); + public static final SoundEvent EXCHANGING_STAFF_SELECT = register("exchanging_staff_select"); public static final SoundEvent RADIANCE_PIN_TRIGGER = register("radiance_pin_trigger"); public static final SoundEvent AIR_LAUNCH_BELT_CHARGING = register("air_launch_belt_charging"); + public static final SoundEvent OVERCHARGING = register("overcharging"); public static final SoundEvent PUFF_CIRCLET_PFFT = register("puff_circlet"); public static final SoundEvent MIDNIGHT_ABERRATION_CRUMBLING = register("midnight_aberration_crumbling"); public static final SoundEvent STRUCTURE_SUCCESS = register("structure_success"); - - public static final SoundEvent SUCKING_CHEST_OPEN = register("sucking_chest_open"); - public static final SoundEvent SUCKING_CHEST_CLOSE = register("sucking_chest_close"); - - public static final SoundEvent DREAMFLAYER_ACTIVATE = register("dreamflayer_activate"); - public static final SoundEvent DREAMFLAYER_DEACTIVATE = register("dreamflayer_deactivate"); - - public static final SoundEvent LIGHT_STAFF_CHARGING = register("light_staff_charging"); - public static final SoundEvent LIGHT_STAFF_PLACE = register("light_staff_place"); - public static final SoundEvent LIGHT_STAFF_BREAK = register("light_staff_break"); - - public static final SoundEvent LIQUID_CRYSTAL_AMBIENT = register("liquid_crystal_ambient"); - public static final SoundEvent MUD_AMBIENT = register("mud_ambient"); - public static final SoundEvent MIDNIGHT_SOLUTION_AMBIENT = register("midnight_solution_ambient"); - - public static final SoundEvent FADING_PLACED = register("fading_placed"); - public static final SoundEvent FAILING_PLACED = register("failing_placed"); - public static final SoundEvent RUIN_PLACED = register("ruin_placed"); - - public static final SoundEvent BLOCK_MEMORY_ADVANCE = register("block.memory.advance"); + + public static final SoundEvent BLACK_HOLE_CHEST_OPEN = register("black_hole_chest_open"); + public static final SoundEvent BLACK_HOLE_CHEST_CLOSE = register("black_hole_chest_close"); + + public static final SoundEvent DREAMFLAYER_ACTIVATE = register("dreamflayer_activate"); + public static final SoundEvent DREAMFLAYER_DEACTIVATE = register("dreamflayer_deactivate"); + + public static final SoundEvent RADIANCE_STAFF_CHARGING = register("radiance_staff_charging"); + public static final SoundEvent RADIANCE_STAFF_PLACE = register("radiance_staff_place"); + public static final SoundEvent RADIANCE_STAFF_BREAK = register("radiance_staff_break"); + + public static final SoundEvent LIQUID_CRYSTAL_AMBIENT = register("liquid_crystal_ambient"); + public static final SoundEvent MUD_AMBIENT = register("mud_ambient"); + public static final SoundEvent MIDNIGHT_SOLUTION_AMBIENT = register("midnight_solution_ambient"); + public static final SoundEvent DRAGONROT_AMBIENT = register("dragonrot_ambient"); + + public static final SoundEvent FADING_PLACED = register("fading_placed"); + public static final SoundEvent FAILING_PLACED = register("failing_placed"); + public static final SoundEvent RUIN_PLACED = register("ruin_placed"); + + public static final SoundEvent DEEPER_DOWN_PORTAL_OPEN = register("deeper_down_portal_open"); + public static final SoundEvent SQUEAKER = register("squeaker"); + + public static final SoundEvent BLOCK_MEMORY_ADVANCE = register("block.memory.advance"); public static final SoundEvent BLOCK_CITRINE_BLOCK_BREAK = register("block.citrine_block.break"); public static final SoundEvent BLOCK_CITRINE_BLOCK_STEP = register("block.citrine_block.step"); @@ -155,21 +162,21 @@ public class SpectrumSoundEvents { public static final SoundEvent BLOCK_LARGE_MOONSTONE_BUD_BREAK = register("block.large_moonstone_bud.break"); public static final SoundEvent BLOCK_LARGE_MOONSTONE_BUD_PLACE = register("block.large_moonstone_bud.place"); public static final SoundEvent BLOCK_MOONSTONE_BLOCK_CHIME = register("block.moonstone_block.chime"); - + public static final SoundEvent SPECTRAL_BLOCK_BREAK = register("block.spectral_block.break"); public static final SoundEvent SPECTRAL_BLOCK_STEP = register("block.spectral_block.step"); public static final SoundEvent SPECTRAL_BLOCK_PLACE = register("block.spectral_block.place"); public static final SoundEvent SPECTRAL_BLOCK_FALL = register("block.spectral_block.fall"); public static final SoundEvent SPECTRAL_BLOCK_HIT = register("block.spectral_block.hit"); public static final SoundEvent SPECTRAL_BLOCK_CHIME = register("block.spectral_block.chime"); - - private static SoundEvent register(String id) { - Identifier identifier = SpectrumCommon.locate(id); - return Registry.register(Registry.SOUND_EVENT, identifier, new SoundEvent(identifier)); - } - + + private static SoundEvent register(String id) { + Identifier identifier = SpectrumCommon.locate(id); + return Registry.register(Registry.SOUND_EVENT, identifier, new SoundEvent(identifier)); + } + public static void register() { SpectrumCommon.logInfo("Registering Sound Events..."); } - + } diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumStatusEffects.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumStatusEffects.java index 38e1ec54d7..dc4e98d6ef 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumStatusEffects.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumStatusEffects.java @@ -1,13 +1,11 @@ package de.dafuqs.spectrum.registries; -import de.dafuqs.additionalentityattributes.AdditionalEntityAttributes; -import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.additionalentityattributes.*; +import de.dafuqs.spectrum.*; import de.dafuqs.spectrum.status_effects.*; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.entity.effect.StatusEffectCategory; -import net.minecraft.util.registry.Registry; +import net.minecraft.entity.attribute.*; +import net.minecraft.entity.effect.*; +import net.minecraft.util.registry.*; public class SpectrumStatusEffects { @@ -52,28 +50,37 @@ public class SpectrumStatusEffects { * flying mobs will fall and be nearly unable to fall (phantom, ghast) */ public static StatusEffect DENSITY = registerStatusEffect("density", new GravityStatusEffect(StatusEffectCategory.HARMFUL, 0x671a25, -0.02F)); - + /** * Increases attack speed */ - public static StatusEffect SWIFTNESS = registerStatusEffect("swiftness", new SpectrumStatusEffect(StatusEffectCategory.BENEFICIAL, 0xffe566).addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, "3c2c6c5e-0a9f-4a0a-8ded-314ae028a753", 2 * 0.10000000149011612D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL)); - + public static StatusEffect SWIFTNESS = registerStatusEffect("swiftness", new SpectrumStatusEffect(StatusEffectCategory.BENEFICIAL, 0xffe566) + .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, "3c2c6c5e-0a9f-4a0a-8ded-314ae028a753", 2 * 0.10000000149011612D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL)); + /** * Decreases attack speed */ - public static StatusEffect STIFFNESS = registerStatusEffect("stiffness", new SpectrumStatusEffect(StatusEffectCategory.HARMFUL, 0x7e7549)).addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, "91e58b5a-d8d9-4037-a520-18c3d7230502", 2 * -0.10000000149011612D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL); - + public static StatusEffect STIFFNESS = registerStatusEffect("stiffness", new SpectrumStatusEffect(StatusEffectCategory.HARMFUL, 0x7e7549)) + .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, "91e58b5a-d8d9-4037-a520-18c3d7230502", 2 * -0.10000000149011612D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL); + + /** + * Reduces incoming magic damage by 1 point / level + */ + public static StatusEffect MAGIC_ANNULATION = registerStatusEffect("magic_annulation", new SpectrumStatusEffect(StatusEffectCategory.BENEFICIAL, 0x7a1082)) + .addAttributeModifier(AdditionalEntityAttributes.MAGIC_PROTECTION, "2d307e1f-fcc5-4c53-9821-3a7da4a6ef19", 1, EntityAttributeModifier.Operation.ADDITION); + /** * Ouch. */ - public static StatusEffect MILLENIA_DISEASE = registerStatusEffect("millenia_disease", new MilleniaDiseaseStatusEffect(StatusEffectCategory.NEUTRAL, 0x222222).addAttributeModifier(EntityAttributes.GENERIC_MAX_HEALTH, MilleniaDiseaseStatusEffect.ATTRIBUTE_UUID_STRING, -1.0, EntityAttributeModifier.Operation.ADDITION)); - + public static StatusEffect MILLENIA_DISEASE = registerStatusEffect("millenia_disease", new MilleniaDiseaseStatusEffect(StatusEffectCategory.NEUTRAL, 0x222222) + .addAttributeModifier(EntityAttributes.GENERIC_MAX_HEALTH, MilleniaDiseaseStatusEffect.ATTRIBUTE_UUID_STRING, -1.0, EntityAttributeModifier.Operation.ADDITION)); + /** * Gives loads of buffs, but the player will be handled as if they were playing hardcore */ public static StatusEffect ASCENSION = registerStatusEffect("ascension", new AscensionStatusEffect(StatusEffectCategory.BENEFICIAL, 0xdff9fc)); public static StatusEffect DIVINITY = registerStatusEffect("divinity", new DivinityStatusEffect(StatusEffectCategory.BENEFICIAL, 0xdff9fc) - .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, "2a0a2299-1387-47eb-a120-58bc70a739d8", 2 * 0.10000000149011612D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL) + .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, "2a0a2299-1387-47eb-a120-58bc70a739d8", 2 * 0.10000000149011612D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL) .addAttributeModifier(EntityAttributes.GENERIC_MOVEMENT_SPEED, "b8b33b2c-1804-4ec6-9430-7d1a85f9b13b", 2 * 0.20000000298023224D, EntityAttributeModifier.Operation.MULTIPLY_TOTAL) .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_DAMAGE, "b03b6e37-1dc5-4a93-bbae-0ea96c5bd8f8", 5.0D, EntityAttributeModifier.Operation.ADDITION) .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_KNOCKBACK, "f9e4ae93-2cf5-4ef5-b06a-ae4fefd5c035", 2.0D, EntityAttributeModifier.Operation.ADDITION) @@ -89,7 +96,7 @@ public class SpectrumStatusEffects { * Stacking $(thing)Frenzy$() (applying the effect while they already have it) increases these effects amplitude */ public static final StatusEffect FRENZY = registerStatusEffect("frenzy", new FrenzyStatusEffect(StatusEffectCategory.NEUTRAL, 0x990000)) - .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, FrenzyStatusEffect.ATTACK_SPEED_UUID_STRING, FrenzyStatusEffect.ATTACK_SPEED_PER_STAGE, EntityAttributeModifier.Operation.MULTIPLY_TOTAL) + .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_SPEED, FrenzyStatusEffect.ATTACK_SPEED_UUID_STRING, FrenzyStatusEffect.ATTACK_SPEED_PER_STAGE, EntityAttributeModifier.Operation.MULTIPLY_TOTAL) .addAttributeModifier(EntityAttributes.GENERIC_ATTACK_DAMAGE, FrenzyStatusEffect.ATTACK_DAMAGE_UUID_STRING, FrenzyStatusEffect.ATTACK_DAMAGE_PER_STAGE, EntityAttributeModifier.Operation.ADDITION) .addAttributeModifier(EntityAttributes.GENERIC_MOVEMENT_SPEED, FrenzyStatusEffect.MOVEMENT_SPEED_UUID_STRING, FrenzyStatusEffect.MOVEMENT_SPEED_PER_STAGE, EntityAttributeModifier.Operation.MULTIPLY_TOTAL) .addAttributeModifier(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, FrenzyStatusEffect.KNOCKBACK_RESISTANCE_UUID_STRING, FrenzyStatusEffect.KNOCKBACK_RESISTANCE_PER_STAGE, EntityAttributeModifier.Operation.ADDITION); diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumStrippableBlocks.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumStrippableBlocks.java new file mode 100644 index 0000000000..24ccb436a7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumStrippableBlocks.java @@ -0,0 +1,14 @@ +package de.dafuqs.spectrum.registries; + +import net.fabricmc.fabric.api.registry.StrippableBlockRegistry; + +public class SpectrumStrippableBlocks { + + public static void register() { + StrippableBlockRegistry.register(SpectrumBlocks.SLATE_NOXCAP_STEM, SpectrumBlocks.STRIPPED_SLATE_NOXCAP_STEM); + StrippableBlockRegistry.register(SpectrumBlocks.EBONY_NOXCAP_STEM, SpectrumBlocks.STRIPPED_EBONY_NOXCAP_STEM); + StrippableBlockRegistry.register(SpectrumBlocks.IVORY_NOXCAP_STEM, SpectrumBlocks.STRIPPED_IVORY_NOXCAP_STEM); + StrippableBlockRegistry.register(SpectrumBlocks.CHESTNUT_NOXCAP_STEM, SpectrumBlocks.STRIPPED_CHESTNUT_NOXCAP_STEM); + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumToolMaterials.java b/src/main/java/de/dafuqs/spectrum/registries/SpectrumToolMaterials.java index b465afc75f..5a0d93da02 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumToolMaterials.java +++ b/src/main/java/de/dafuqs/spectrum/registries/SpectrumToolMaterials.java @@ -9,11 +9,16 @@ public class SpectrumToolMaterials { public enum ToolMaterial implements net.minecraft.item.ToolMaterial { - BEDROCK(5, 0, 15.0F, 8.0F, 3, Ingredient::empty), LOW_HEALTH(MiningLevels.IRON, 16, 4.0F, 2.0F, 10, Ingredient::empty), VOIDING(MiningLevels.DIAMOND, 1143, 20.0F, 1.0F, 5, Ingredient::empty), - DREAMFLAYER(MiningLevels.IRON, 650, 5.0F, 2.0F, 25, () -> Ingredient.ofItems(SpectrumItems.BISMUTH_CRYSTAL)); - + + BEDROCK(4, 0, 15.0F, 8.0F, 3, Ingredient::empty), + MALACHITE(5, 1536, 8.0F, 5.0F, 20, () -> Ingredient.ofItems(SpectrumItems.MALACHITE_CRYSTAL)), + GLASS_CREST(5, 1536 * 4, 18.0F, 10.0F, 5, () -> Ingredient.ofItems(SpectrumItems.MALACHITE_CRYSTAL)), + + DREAMFLAYER(MiningLevels.IRON, 650, 5.0F, 2.0F, 20, () -> Ingredient.ofItems(SpectrumItems.BISMUTH_CRYSTAL)), + NIGHTFALL(MiningLevels.IRON, 650, 2.0F, 1.0F, 0, () -> Ingredient.ofItems(SpectrumItems.MIDNIGHT_CHIP)); + private final int miningLevel; private final int itemDurability; private final float miningSpeed; @@ -27,7 +32,7 @@ public enum ToolMaterial implements net.minecraft.item.ToolMaterial { this.miningSpeed = miningSpeed; this.attackDamage = attackDamage; this.enchantability = enchantability; - this.repairIngredient = new Lazy(repairIngredient); + this.repairIngredient = new Lazy<>(repairIngredient); } public int getDurability() { diff --git a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumArmorRenderers.java b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumArmorRenderers.java index 0647eb0a76..086a3a8a51 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumArmorRenderers.java +++ b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumArmorRenderers.java @@ -8,27 +8,27 @@ import java.util.List; public class SpectrumArmorRenderers { - - public static final List BEDROCK_ARMOR = - List.of( - SpectrumItems.BEDROCK_HELMET, - SpectrumItems.BEDROCK_CHESTPLATE, - SpectrumItems.BEDROCK_LEGGINGS, - SpectrumItems.BEDROCK_BOOTS - ); - - public static void register() { - ArmorRenderer renderer = (matrices, vertexConsumers, stack, entity, slot, light, contextModel) -> { - - BedrockArmorItem armor = (BedrockArmorItem) stack.getItem(); - var model = armor.getArmorModel(); - var texture = armor.getArmorTexture(stack, slot); - contextModel.setAttributes(model); - - ArmorRenderer.renderPart(matrices, vertexConsumers, light, stack, model, texture); - - }; - ArmorRenderer.register(renderer, BEDROCK_ARMOR.toArray(new Item[0])); - } - + + public static final List BEDROCK_ARMOR = + List.of( + SpectrumItems.BEDROCK_HELMET, + SpectrumItems.BEDROCK_CHESTPLATE, + SpectrumItems.BEDROCK_LEGGINGS, + SpectrumItems.BEDROCK_BOOTS + ); + + public static void register() { + ArmorRenderer renderer = (matrices, vertexConsumers, stack, entity, slot, light, contextModel) -> { + + BedrockArmorItem armor = (BedrockArmorItem) stack.getItem(); + var model = armor.getArmorModel(); + var texture = armor.getArmorTexture(stack, slot); + contextModel.setAttributes(model); + + ArmorRenderer.renderPart(matrices, vertexConsumers, light, stack, model, texture); + + }; + ArmorRenderer.register(renderer, BEDROCK_ARMOR.toArray(new Item[0])); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumColorProviders.java b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumColorProviders.java index 38c95a3939..3d08317f80 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumColorProviders.java +++ b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumColorProviders.java @@ -1,7 +1,7 @@ package de.dafuqs.spectrum.registries.client; import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.conditional.ColoredLeavesBlock; +import de.dafuqs.spectrum.blocks.conditional.colored_tree.ColoredLeavesBlock; import de.dafuqs.spectrum.blocks.memory.MemoryBlockEntity; import de.dafuqs.spectrum.blocks.memory.MemoryItem; import de.dafuqs.spectrum.energy.storage.SingleInkStorage; @@ -40,15 +40,16 @@ public static void registerClient() { SpectrumCommon.logInfo("Registering Block and Item Color Providers..."); // Biome Colors for colored leaves items and blocks - // They don't use it, but their decay as oak leaves do + // They don't use it, but their decoy oak leaves do registerColoredLeaves(); // Same for Amaranth registerAmaranth(); registerClover(); - registerMemories(); + registerMemory(); registerPotionPentants(); + ColorProviderRegistry.ITEM.register(SpectrumColorProviders::potionColor, SpectrumItems.NIGHTFALLS_BLADE); registerInkFlask(); registerBrewColors(); } @@ -99,7 +100,7 @@ private static void registerClover() { ColorProviderRegistry.BLOCK.register(grassBlockColorProvider, SpectrumBlocks.FOUR_LEAF_CLOVER); } } - + private static void registerInkFlask() { ColorProviderRegistry.ITEM.register((stack, tintIndex) -> { if (tintIndex == 1) { @@ -134,7 +135,7 @@ private static void registerPotionPentants() { }, SpectrumItems.GREATER_POTION_PENDANT); } - private static void registerMemories() { + private static void registerMemory() { ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { if (world == null) { return 0x0; @@ -149,20 +150,15 @@ private static void registerMemories() { }, SpectrumBlocks.MEMORY); ColorProviderRegistry.ITEM.register((stack, tintIndex) -> MemoryItem.getEggColor(stack.getNbt(), tintIndex), SpectrumBlocks.MEMORY.asItem()); } - + public static void registerBrewColors() { ColorProviderRegistry.ITEM.register((stack, tintIndex) -> { if (tintIndex == 0) { - - var nbt = stack.getOrCreateNbt(); - return nbt.contains("Color") ? nbt.getInt("Color") : 0xf4c6cb; - - // Daf plz - //return 0xff85f9; - + NbtCompound nbt = stack.getNbt(); + return (nbt != null && nbt.contains("Color")) ? nbt.getInt("Color") : 0xf4c6cb; } return -1; - + }, SpectrumItems.INFUSED_BEVERAGE); } @@ -180,5 +176,15 @@ public static int potionColor(ItemStack stack, int tintIndex) { } return -1; } - + + public static void resetToggleableProviders() { + coloredLeavesBlockColorProvider.setShouldApply(true); + coloredLeavesItemColorProvider.setShouldApply(true); + + amaranthBushelBlockColorProvider.setShouldApply(true); + amaranthBushelItemColorProvider.setShouldApply(true); + amaranthCropBlockColorProvider.setShouldApply(true); + amaranthCropItemColorProvider.setShouldApply(true); + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumItemPredicates.java b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumItemPredicates.java index 6e2263f8ca..cd781a2c28 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumItemPredicates.java +++ b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumItemPredicates.java @@ -8,20 +8,18 @@ import de.dafuqs.spectrum.items.ExperienceStorageItem; import de.dafuqs.spectrum.items.energy.InkFlaskItem; import de.dafuqs.spectrum.items.magic_items.EnderSpliceItem; -import de.dafuqs.spectrum.items.magic_items.PaintBrushItem; +import de.dafuqs.spectrum.items.magic_items.PaintbrushItem; +import de.dafuqs.spectrum.items.tools.MalachiteCrossbowItem; import de.dafuqs.spectrum.items.tools.SpectrumFishingRodItem; import de.dafuqs.spectrum.items.trinkets.AshenCircletItem; import de.dafuqs.spectrum.registries.SpectrumBlocks; import de.dafuqs.spectrum.registries.SpectrumItems; -import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry; +import net.minecraft.client.item.ModelPredicateProviderRegistry; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BowItem; -import net.minecraft.item.CrossbowItem; -import net.minecraft.item.Item; -import net.minecraft.item.Items; +import net.minecraft.item.*; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; import net.minecraft.util.Identifier; @@ -37,9 +35,9 @@ public class SpectrumItemPredicates { public static void registerClient() { registerBowPredicates(SpectrumItems.BEDROCK_BOW); registerCrossbowPredicates(SpectrumItems.BEDROCK_CROSSBOW); - registerSpectrumFishingRodPredicates(SpectrumItems.LAGOON_ROD); - registerSpectrumFishingRodPredicates(SpectrumItems.MOLTEN_ROD); - registerSpectrumFishingRodPredicates(SpectrumItems.BEDROCK_FISHING_ROD); + registerSpectrumFishingRodItemPredicates(SpectrumItems.LAGOON_ROD); + registerSpectrumFishingRodItemPredicates(SpectrumItems.MOLTEN_ROD); + registerSpectrumFishingRodItemPredicates(SpectrumItems.BEDROCK_FISHING_ROD); registerEnderSplicePredicates(SpectrumItems.ENDER_SPLICE); registerAnimatedWandPredicates(SpectrumItems.NATURES_STAFF); registerAnimatedWandPredicates(SpectrumItems.RADIANCE_STAFF); @@ -49,16 +47,84 @@ public static void registerClient() { registerInkColorPredicate(SpectrumItems.INK_FLASK); registerInkFillStateItemPredicate(SpectrumItems.INK_FLASK); registerMoonPhasePredicates(SpectrumItems.CRESCENT_CLOCK); - registerDreamFlayerPredicates(SpectrumItems.DREAMFLAYER); + registerActivatableItemPredicate(SpectrumItems.DREAMFLAYER); + registerOversizedItemPredicate(SpectrumItems.DREAMFLAYER); + + registerOversizedItemPredicate(SpectrumItems.MALACHITE_WORKSTAFF); + registerOversizedItemPredicate(SpectrumItems.MALACHITE_ULTRA_GREATSWORD); + registerOversizedItemPredicate(SpectrumItems.MALACHITE_CROSSBOW); + registerOversizedItemPredicate(SpectrumItems.MALACHITE_BIDENT); + registerOversizedItemPredicate(SpectrumItems.GLASS_CREST_WORKSTAFF); + registerOversizedItemPredicate(SpectrumItems.GLASS_CREST_ULTRA_GREATSWORD); + registerOversizedItemPredicate(SpectrumItems.GLASS_CREST_CROSSBOW); + registerOversizedItemPredicate(SpectrumItems.FEROCIOUS_GLASS_CREST_BIDENT); + registerOversizedItemPredicate(SpectrumItems.FRACTAL_GLASS_CREST_BIDENT); + + registerThrowingItemPredicate(SpectrumItems.MALACHITE_BIDENT); + registerThrowingItemPredicate(SpectrumItems.FEROCIOUS_GLASS_CREST_BIDENT); + registerThrowingItemPredicate(SpectrumItems.FRACTAL_GLASS_CREST_BIDENT); + + registerMalachiteCrossbowPredicates(SpectrumItems.MALACHITE_CROSSBOW); + registerMalachiteCrossbowPredicates(SpectrumItems.GLASS_CREST_CROSSBOW); + registerBottomlessBundlePredicates(SpectrumItems.BOTTOMLESS_BUNDLE); registerEnchantmentCanvasPrediates(SpectrumItems.ENCHANTMENT_CANVAS); registerPresentPredicates(SpectrumBlocks.PRESENT.asItem()); } + private static void registerMalachiteCrossbowPredicates(MalachiteCrossbowItem crossbowItem) { + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("pull"), (itemStack, clientWorld, livingEntity, i) -> { + if (livingEntity == null) { + return 0.0F; + } else { + return CrossbowItem.isCharged(itemStack) ? 0.0F : (float) (itemStack.getMaxUseTime() - livingEntity.getItemUseTimeLeft()) / (float) CrossbowItem.getPullTime(itemStack); + } + }); + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("pulling"), (itemStack, clientWorld, livingEntity, i) -> + livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack && !CrossbowItem.isCharged(itemStack) ? 1.0F : 0.0F + ); + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("charged"), (itemStack, clientWorld, livingEntity, i) -> + livingEntity != null && CrossbowItem.isCharged(itemStack) ? 1.0F : 0.0F + ); + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("projectile"), (itemStack, world, entity, seed) -> { + if (itemStack == null) { + return 0F; + } + ItemStack projectile = MalachiteCrossbowItem.getFirstProjectile(itemStack); + if(projectile.isEmpty()) { + return 0F; + } + + // Well, this is awkward + if (projectile.isOf(Items.FIREWORK_ROCKET)) { + return 0.1F; + } else if (projectile.isOf(SpectrumItems.MALACHITE_GLASS_ARROW)) { + return 0.2F; + } else if (projectile.isOf(SpectrumItems.TOPAZ_GLASS_ARROW)) { + return 0.3F; + } else if (projectile.isOf(SpectrumItems.AMETHYST_GLASS_ARROW)) { + return 0.4F; + } else if (projectile.isOf(SpectrumItems.CITRINE_GLASS_ARROW)) { + return 0.5F; + } else if (projectile.isOf(SpectrumItems.ONYX_GLASS_ARROW)) { + return 0.6F; + } else if (projectile.isOf(SpectrumItems.MOONSTONE_GLASS_ARROW)) { + return 0.7F; + } + return 0F; + }); + } + + private static void registerThrowingItemPredicate(Item item) { + ModelPredicateProviderRegistry.register(item, new Identifier("throwing"), (itemStack, clientWorld, livingEntity, i) -> { + return livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack ? 1.0F : 0.0F; + }); + } + private static void registerColorPredicate(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("color"), (itemStack, clientWorld, livingEntity, i) -> { - Optional color = PaintBrushItem.getColor(itemStack); - if(color.isEmpty()) { + ModelPredicateProviderRegistry.register(item, new Identifier("color"), (itemStack, clientWorld, livingEntity, i) -> { + Optional color = PaintbrushItem.getColor(itemStack); + if (color.isEmpty()) { return 0.0F; } return (1F + color.get().getDyeColor().getId()) / 100F; @@ -66,9 +132,9 @@ private static void registerColorPredicate(Item item) { } private static void registerPresentPredicates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("variant"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(item, new Identifier("variant"), (itemStack, clientWorld, livingEntity, i) -> { NbtCompound compound = itemStack.getNbt(); - if(compound == null || !compound.contains("Variant", NbtElement.STRING_TYPE)) + if (compound == null || !compound.contains("Variant", NbtElement.STRING_TYPE)) return 0.0F; PresentBlock.Variant variant = PresentBlock.Variant.valueOf(compound.getString("Variant").toUpperCase(Locale.ROOT)); @@ -77,22 +143,23 @@ private static void registerPresentPredicates(Item item) { } private static void registerBottomlessBundlePredicates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("locked"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(item, new Identifier("locked"), (itemStack, clientWorld, livingEntity, i) -> { NbtCompound compound = itemStack.getNbt(); - if(compound == null) + if (compound == null) return 0.0F; return compound.contains("Locked") ? 1.0F : 0.0F; }); - FabricModelPredicateProviderRegistry.register(item, new Identifier("filled"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(SpectrumItems.BOTTOMLESS_BUNDLE, new Identifier("filled"), (itemStack, clientWorld, livingEntity, i) -> { NbtCompound compound = itemStack.getNbt(); - if(compound == null) + if (compound == null) return 0.0F; return compound.contains("StoredStack") ? 1.0F : 0.0F; }); + } private static void registerMoonPhasePredicates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("phase"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(item, new Identifier("phase"), (itemStack, clientWorld, livingEntity, i) -> { Entity entity = livingEntity != null ? livingEntity : itemStack.getHolder(); if (entity == null) { return 0.0F; @@ -103,7 +170,7 @@ private static void registerMoonPhasePredicates(Item item) { if (clientWorld == null) { return 0.0F; - } else if (!clientWorld.getDimension().isNatural()) { + } else if (!clientWorld.getDimension().natural()) { return 1.0F; } else { return clientWorld.getMoonPhase() / 8F; @@ -112,12 +179,9 @@ private static void registerMoonPhasePredicates(Item item) { }); } - private static void registerDreamFlayerPredicates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("in_inventory"), (itemStack, world, livingEntity, i) -> { - return currentItemRenderMode == ModelTransformation.Mode.GUI ? 1.0F : 0.0F; - }); - FabricModelPredicateProviderRegistry.register(item, new Identifier(ActivatableItem.NBT_STRING), (itemStack, clientWorld, livingEntity, i) -> { - if(ActivatableItem.isActivated(itemStack)) { + private static void registerActivatableItemPredicate(Item item) { + ModelPredicateProviderRegistry.register(item, new Identifier(ActivatableItem.NBT_STRING), (itemStack, clientWorld, livingEntity, i) -> { + if (ActivatableItem.isActivated(itemStack)) { return 1.0F; } else { return 0.0F; @@ -125,19 +189,27 @@ private static void registerDreamFlayerPredicates(Item item) { }); } + private static void registerOversizedItemPredicate(Item item) { + ModelPredicateProviderRegistry.register(item, new Identifier("in_world"), (itemStack, world, livingEntity, i) -> { + return currentItemRenderMode == ModelTransformation.Mode.GUI + || currentItemRenderMode == ModelTransformation.Mode.GROUND + || currentItemRenderMode == ModelTransformation.Mode.FIXED ? 0.0F : 1.0F; + }); + } + private static void registerBowPredicates(BowItem bowItem) { - FabricModelPredicateProviderRegistry.register(bowItem, new Identifier("pull"), (itemStack, world, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(bowItem, new Identifier("pull"), (itemStack, world, livingEntity, i) -> { if (livingEntity == null) { return 0.0F; } else { return livingEntity.getActiveItem() != itemStack ? 0.0F : (float) (itemStack.getMaxUseTime() - livingEntity.getItemUseTimeLeft()) / 20.0F; } }); - FabricModelPredicateProviderRegistry.register(bowItem, new Identifier("pulling"), (itemStack, clientWorld, livingEntity, i) -> livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack ? 1.0F : 0.0F); + ModelPredicateProviderRegistry.register(bowItem, new Identifier("pulling"), (itemStack, clientWorld, livingEntity, i) -> livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack ? 1.0F : 0.0F); } private static void registerCrossbowPredicates(CrossbowItem crossbowItem) { - FabricModelPredicateProviderRegistry.register(crossbowItem, new Identifier("pull"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("pull"), (itemStack, clientWorld, livingEntity, i) -> { if (livingEntity == null) { return 0.0F; } else { @@ -145,36 +217,36 @@ private static void registerCrossbowPredicates(CrossbowItem crossbowItem) { } }); - FabricModelPredicateProviderRegistry.register(crossbowItem, new Identifier("pulling"), (itemStack, clientWorld, livingEntity, i) -> { - return livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack && !CrossbowItem.isCharged(itemStack) ? 1.0F : 0.0F; - }); + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("pulling"), (itemStack, clientWorld, livingEntity, i) -> + livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack && !CrossbowItem.isCharged(itemStack) ? 1.0F : 0.0F + ); - FabricModelPredicateProviderRegistry.register(crossbowItem, new Identifier("charged"), (itemStack, clientWorld, livingEntity, i) -> { - return livingEntity != null && CrossbowItem.isCharged(itemStack) ? 1.0F : 0.0F; - }); + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("charged"), (itemStack, clientWorld, livingEntity, i) -> + livingEntity != null && CrossbowItem.isCharged(itemStack) ? 1.0F : 0.0F + ); - FabricModelPredicateProviderRegistry.register(crossbowItem, new Identifier("firework"), (itemStack, clientWorld, livingEntity, i) -> { - return livingEntity != null && CrossbowItem.isCharged(itemStack) && CrossbowItem.hasProjectile(itemStack, Items.FIREWORK_ROCKET) ? 1.0F : 0.0F; - }); + ModelPredicateProviderRegistry.register(crossbowItem, new Identifier("firework"), (itemStack, clientWorld, livingEntity, i) -> + livingEntity != null && CrossbowItem.isCharged(itemStack) && CrossbowItem.hasProjectile(itemStack, Items.FIREWORK_ROCKET) ? 1.0F : 0.0F + ); } - private static void registerSpectrumFishingRodPredicates(SpectrumFishingRodItem fishingRod) { - FabricModelPredicateProviderRegistry.register(fishingRod, new Identifier("cast"), (itemStack, clientWorld, livingEntity, i) -> { + private static void registerSpectrumFishingRodItemPredicates(SpectrumFishingRodItem fishingRodItem) { + ModelPredicateProviderRegistry.register(fishingRodItem, new Identifier("cast"), (itemStack, clientWorld, livingEntity, i) -> { if (livingEntity == null) { return 0.0F; } else { - boolean bl = livingEntity.getMainHandStack() == itemStack; - boolean bl2 = livingEntity.getOffHandStack() == itemStack; + boolean isInMainHand = livingEntity.getMainHandStack() == itemStack; + boolean isInOffhand = livingEntity.getOffHandStack() == itemStack; if (livingEntity.getMainHandStack().getItem() instanceof SpectrumFishingRodItem) { - bl2 = false; + isInOffhand = false; } - return (bl || bl2) && livingEntity instanceof PlayerEntity && ((PlayerEntityAccessor) livingEntity).getSpectrumBobber() != null ? 1.0F : 0.0F; + return (isInMainHand || isInOffhand) && livingEntity instanceof PlayerEntity && ((PlayerEntityAccessor) livingEntity).getSpectrumBobber() != null ? 1.0F : 0.0F; } }); } private static void registerEnderSplicePredicates(EnderSpliceItem enderSpliceItem) { - FabricModelPredicateProviderRegistry.register(enderSpliceItem, new Identifier("bound"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(enderSpliceItem, new Identifier("bound"), (itemStack, clientWorld, livingEntity, i) -> { NbtCompound compoundTag = itemStack.getNbt(); if (compoundTag != null && (compoundTag.contains("PosX") || compoundTag.contains("TargetPlayerUUID"))) { return 1.0F; @@ -185,7 +257,7 @@ private static void registerEnderSplicePredicates(EnderSpliceItem enderSpliceIte } private static void registerAshenCircletPredicates(Item ashenCircletItem) { - FabricModelPredicateProviderRegistry.register(ashenCircletItem, new Identifier("cooldown"), (itemStack, clientWorld, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(ashenCircletItem, new Identifier("cooldown"), (itemStack, clientWorld, livingEntity, i) -> { if (livingEntity != null && AshenCircletItem.getCooldownTicks(itemStack, livingEntity.world) == 0) { return 0.0F; } else { @@ -195,14 +267,14 @@ private static void registerAshenCircletPredicates(Item ashenCircletItem) { } private static void registerAnimatedWandPredicates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("in_use"), (itemStack, clientWorld, livingEntity, i) -> { - return (livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack) ? 1.0F : 0.0F; - }); + ModelPredicateProviderRegistry.register(item, new Identifier("in_use"), (itemStack, clientWorld, livingEntity, i) -> + (livingEntity != null && livingEntity.isUsingItem() && livingEntity.getActiveItem() == itemStack) ? 1.0F : 0.0F + ); } private static void registerKnowledgeDropPredicates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("stored_experience_10000"), (itemStack, clientWorld, livingEntity, i) -> { - if (item instanceof ExperienceStorageItem) { + ModelPredicateProviderRegistry.register(item, new Identifier("stored_experience_10000"), (itemStack, clientWorld, livingEntity, i) -> { + if (SpectrumItems.KNOWLEDGE_GEM instanceof ExperienceStorageItem) { return ExperienceStorageItem.getStoredExperience(itemStack) / 10000F; } else { return 0; @@ -211,16 +283,16 @@ private static void registerKnowledgeDropPredicates(Item item) { } private static void registerInkColorPredicate(InkFlaskItem item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("color"), (itemStack, clientWorld, livingEntity, i) -> { - SingleInkStorage storage = item.getEnergyStorage(itemStack); + ModelPredicateProviderRegistry.register(SpectrumItems.INK_FLASK, new Identifier("color"), (itemStack, clientWorld, livingEntity, i) -> { + SingleInkStorage storage = SpectrumItems.INK_FLASK.getEnergyStorage(itemStack); InkColor color = storage.getStoredColor(); return (1F + color.getDyeColor().getId()) / 100F; }); } private static void registerInkFillStateItemPredicate(InkFlaskItem item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("fill_state"), (itemStack, world, livingEntity, i) -> { - SingleInkStorage storage = item.getEnergyStorage(itemStack); + ModelPredicateProviderRegistry.register(SpectrumItems.INK_FLASK, new Identifier("fill_state"), (itemStack, world, livingEntity, i) -> { + SingleInkStorage storage = SpectrumItems.INK_FLASK.getEnergyStorage(itemStack); long current = storage.getCurrentTotal(); if (current == 0) { return 0.0F; @@ -232,9 +304,9 @@ private static void registerInkFillStateItemPredicate(InkFlaskItem item) { } private static void registerEnchantmentCanvasPrediates(Item item) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("bound"), (itemStack, world, livingEntity, i) -> { + ModelPredicateProviderRegistry.register(item, new Identifier("bound"), (itemStack, world, livingEntity, i) -> { NbtCompound nbt = itemStack.getNbt(); - if(nbt != null && nbt.contains("BoundItem", NbtElement.STRING_TYPE)) { + if (nbt != null && nbt.contains("BoundItem", NbtElement.STRING_TYPE)) { return 1; } return 0; diff --git a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumModelLayers.java b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumModelLayers.java new file mode 100644 index 0000000000..747ae0f776 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumModelLayers.java @@ -0,0 +1,49 @@ +package de.dafuqs.spectrum.registries.client; + +import de.dafuqs.spectrum.SpectrumCommon; +import de.dafuqs.spectrum.blocks.mob_head.EggLayingWoolyPigHeadModel; +import de.dafuqs.spectrum.blocks.mob_head.WardenHeadModel; +import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigEntityModel; +import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigHatEntityModel; +import de.dafuqs.spectrum.entity.models.EggLayingWoolyPigWoolEntityModel; +import de.dafuqs.spectrum.render.armor.BedrockArmorModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; +import net.minecraft.client.model.TexturedModelData; +import net.minecraft.client.render.entity.model.EntityModelLayer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class SpectrumModelLayers { + + /** + * Animals + */ + public static final EntityModelLayer WOOLY_PIG = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig"), "main"); + public static final EntityModelLayer WOOLY_PIG_HAT = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig"), "hat"); + public static final EntityModelLayer WOOLY_PIG_WOOL = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig"), "wool"); + + /** + * Blocks + */ + public static final EntityModelLayer EGG_LAYING_WOOLY_PIG_HEAD = new EntityModelLayer(SpectrumCommon.locate("egg_laying_wooly_pig_head"), "main"); + public static final EntityModelLayer WARDEN_HEAD = new EntityModelLayer(SpectrumCommon.locate("warden_head"), "main"); + + /** + * Armor + */ + public static final EntityModelLayer FEET_BEDROCK_LAYER = new EntityModelLayer(SpectrumCommon.locate("bedrock_armor"), "feet"); + public static final EntityModelLayer MAIN_BEDROCK_LAYER = new EntityModelLayer(SpectrumCommon.locate("bedrock_armor"), "main"); + public static final Identifier BEDROCK_ARMOR_LOCATION = SpectrumCommon.locate("textures/armor/bedrock_armor_main.png"); + + public static void register() { + EntityModelLayerRegistry.registerModelLayer(WOOLY_PIG, EggLayingWoolyPigEntityModel::getTexturedModelData); + EntityModelLayerRegistry.registerModelLayer(WOOLY_PIG_HAT, EggLayingWoolyPigHatEntityModel::getTexturedModelData); + EntityModelLayerRegistry.registerModelLayer(WOOLY_PIG_WOOL, EggLayingWoolyPigWoolEntityModel::getTexturedModelData); + EntityModelLayerRegistry.registerModelLayer(EGG_LAYING_WOOLY_PIG_HEAD, EggLayingWoolyPigHeadModel::getTexturedModelData); + EntityModelLayerRegistry.registerModelLayer(WARDEN_HEAD, WardenHeadModel::getTexturedModelData); + EntityModelLayerRegistry.registerModelLayer(FEET_BEDROCK_LAYER, () -> TexturedModelData.of(BedrockArmorModel.getModelData(), 128, 128)); + EntityModelLayerRegistry.registerModelLayer(MAIN_BEDROCK_LAYER, () -> TexturedModelData.of(BedrockArmorModel.getModelData(), 128, 128)); + } +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumRenderLayers.java b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumRenderLayers.java new file mode 100644 index 0000000000..f604dd9a49 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumRenderLayers.java @@ -0,0 +1,31 @@ +package de.dafuqs.spectrum.registries.client; + +import de.dafuqs.spectrum.mixin.client.accessors.RenderLayerAccessor; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.RenderPhase; +import net.minecraft.client.render.VertexFormat; +import net.minecraft.client.render.VertexFormats; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class SpectrumRenderLayers { + + /** + * Render layer to be used in Spectrums magical renderers. + * Like glow ink, it glows in the dark, always with max brightness + */ + public static class GlowInTheDarkRenderLayer extends RenderLayer { + + public GlowInTheDarkRenderLayer(String name, VertexFormat vertexFormat, VertexFormat.DrawMode drawMode, int expectedBufferSize, boolean hasCrumbling, boolean translucent, Runnable startAction, Runnable endAction) { + super(name, vertexFormat, drawMode, expectedBufferSize, hasCrumbling, translucent, startAction, endAction); + } + + public static RenderLayer get(Identifier texture) { + RenderLayer.MultiPhaseParameters multiPhaseParameters = RenderLayer.MultiPhaseParameters.builder().texture(new RenderPhase.Texture(texture, false, false)).transparency(Transparency.TRANSLUCENT_TRANSPARENCY).cull(DISABLE_CULLING).lightmap(ENABLE_LIGHTMAP).overlay(DISABLE_OVERLAY_COLOR).layering(VIEW_OFFSET_Z_LAYERING).shader(ENERGY_SWIRL_SHADER).build(true); + return RenderLayerAccessor.invokeOf("spectrum_glow", VertexFormats.POSITION_COLOR_TEXTURE_OVERLAY_LIGHT_NORMAL, VertexFormat.DrawMode.QUADS, 256, false, false, multiPhaseParameters); + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/registries/SpectrumTooltipComponents.java b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumTooltipComponents.java similarity index 82% rename from src/main/java/de/dafuqs/spectrum/registries/SpectrumTooltipComponents.java rename to src/main/java/de/dafuqs/spectrum/registries/client/SpectrumTooltipComponents.java index 8ab5671289..1dbb1f0163 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/SpectrumTooltipComponents.java +++ b/src/main/java/de/dafuqs/spectrum/registries/client/SpectrumTooltipComponents.java @@ -1,8 +1,11 @@ -package de.dafuqs.spectrum.registries; +package de.dafuqs.spectrum.registries.client; import de.dafuqs.spectrum.items.tooltip.*; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendering.v1.TooltipComponentCallback; +@Environment(EnvType.CLIENT) public class SpectrumTooltipComponents { public static void registerTooltipComponents() { diff --git a/src/main/java/de/dafuqs/spectrum/registries/color/ItemColors.java b/src/main/java/de/dafuqs/spectrum/registries/color/ItemColors.java index e863232a40..ffb69b0ad6 100644 --- a/src/main/java/de/dafuqs/spectrum/registries/color/ItemColors.java +++ b/src/main/java/de/dafuqs/spectrum/registries/color/ItemColors.java @@ -139,6 +139,7 @@ public class ItemColors extends ColorRegistry { put(Items.SHEARS, DyeColor.LIGHT_BLUE); put(Items.SPRUCE_PLANKS, DyeColor.LIME); put(Items.WARPED_PLANKS, DyeColor.LIME); + put(Items.MANGROVE_PLANKS, DyeColor.LIME); put(Items.GOLDEN_HELMET, DyeColor.YELLOW); put(Items.GOLDEN_CHESTPLATE, DyeColor.YELLOW); @@ -180,12 +181,15 @@ public class ItemColors extends ColorRegistry { put(Items.STONE_SWORD, DyeColor.BROWN); put(Items.STONE_SHOVEL, DyeColor.BROWN); put(Items.STONE_HOE, DyeColor.BROWN); - + put(Items.WOODEN_AXE, DyeColor.LIME); put(Items.WOODEN_PICKAXE, DyeColor.LIME); put(Items.WOODEN_SWORD, DyeColor.LIME); put(Items.WOODEN_SHOVEL, DyeColor.LIME); put(Items.WOODEN_HOE, DyeColor.LIME); + + put(Items.TRIDENT, DyeColor.LIGHT_BLUE); + put(Items.ECHO_SHARD, DyeColor.GRAY); }}; @Override diff --git a/src/main/java/de/dafuqs/spectrum/render/HudRenderers.java b/src/main/java/de/dafuqs/spectrum/render/HudRenderers.java index 3e2a70b8f8..d65513c061 100644 --- a/src/main/java/de/dafuqs/spectrum/render/HudRenderers.java +++ b/src/main/java/de/dafuqs/spectrum/render/HudRenderers.java @@ -1,29 +1,28 @@ package de.dafuqs.spectrum.render; -import com.mojang.blaze3d.systems.RenderSystem; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.cca.azure_dike.AzureDikeComponent; -import de.dafuqs.spectrum.cca.azure_dike.AzureDikeProvider; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.util.Window; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.text.TranslatableText; -import net.minecraft.util.math.MathHelper; -import vazkii.patchouli.client.RenderHelper; +import com.mojang.blaze3d.systems.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.cca.azure_dike.*; +import net.fabricmc.api.*; +import net.fabricmc.fabric.api.client.rendering.v1.*; +import net.fabricmc.loader.api.*; +import net.minecraft.client.*; +import net.minecraft.client.gui.hud.*; +import net.minecraft.client.util.*; +import net.minecraft.client.util.math.*; +import net.minecraft.entity.player.*; +import net.minecraft.item.*; +import net.minecraft.text.*; +import net.minecraft.util.math.*; +import vazkii.patchouli.client.*; -import static net.minecraft.client.gui.DrawableHelper.GUI_ICONS_TEXTURE; +import static net.minecraft.client.gui.DrawableHelper.*; @Environment(EnvType.CLIENT) public class HudRenderers { - private static final TranslatableText missingInkText = new TranslatableText("item.spectrum.placement_staff.tooltip.missing_ink"); - private static final TranslatableText noneText = new TranslatableText("item.spectrum.placement_staff.tooltip.none_in_inventory"); + private static final Text missingInkText = Text.translatable("item.spectrum.constructors_staff.tooltip.missing_ink"); + private static final Text noneText = Text.translatable("item.spectrum.constructors_staff.tooltip.none_in_inventory"); private static ItemStack itemStackToRender; private static int amount; @@ -43,7 +42,7 @@ public static void renderAzureDike(MatrixStack matrixStack, int scaledWidth, int int absorptionAmount = MathHelper.ceil(cameraPlayer.getAbsorptionAmount()); int maxCharges = AzureDikeProvider.getMaxAzureDikeCharges(cameraPlayer); boolean blink = false; - if(cameraPlayer.getRecentDamageSource() != null && cameraPlayer.getWorld() != null) { + if (cameraPlayer.getRecentDamageSource() != null && cameraPlayer.getWorld() != null) { blink = (cameraPlayer.getWorld().getTime() >> 2) % 2 == 0; } @@ -60,7 +59,7 @@ public static void renderAzureDike(MatrixStack matrixStack, int scaledWidth, int int maxHealth = (int) cameraPlayer.getMaxHealth(); int heartRows = maxHealth / 20; - if(cameraPlayer.getMaxHealth() % 20 == 0) { + if (cameraPlayer.getMaxHealth() % 20 == 0) { heartRows--; } boolean hasArmor = cameraPlayer.getArmor() > 0; @@ -68,9 +67,20 @@ public static void renderAzureDike(MatrixStack matrixStack, int scaledWidth, int int width = scaledWidth / 2 - 82; int height = scaledHeight - 49; + + // Fit display to HealthOverlay renderer if present + if (FabricLoader.getInstance().isModLoaded("healthoverlay")) { + int i = 1; + var overHealth = FabricLoader.getInstance().getObjectShare().get("healthoverlay:absorptionOverHealth"); + if (overHealth instanceof Boolean && (boolean) overHealth) { + i = 0; + } + heartRows = 0; + absorptionAmount = Math.min(i, absorptionAmount); + } int y = hasArmor ? height + heartRows * SpectrumCommon.CONFIG.azureDikeHudOffsetYForEachRowOfExtraHearts + SpectrumCommon.CONFIG.azureDikeHudOffsetYWithArmor : height + SpectrumCommon.CONFIG.azureDikeHudOffsetY; - if(absorptionAmount > 0) { + if (absorptionAmount > 0) { int absorptionRows = (int) Math.ceil(absorptionAmount / 20.0F); int absorptionRowHeight = 10 - (absorptionRows - 2); y -= absorptionRows * Math.max(absorptionRowHeight, 3); @@ -78,7 +88,7 @@ public static void renderAzureDike(MatrixStack matrixStack, int scaledWidth, int int x = width - 9 + SpectrumCommon.CONFIG.azureDikeHudOffsetX; // back row - if(renderBackRow) { + if (renderBackRow) { for (int i = displayedHearts / 2; i < 10; i++) { InGameHud.drawTexture(matrixStack, x + i * 8, y, 36, 9, 9, 9, 256, 256); // "back row" icon } @@ -86,7 +96,7 @@ public static void renderAzureDike(MatrixStack matrixStack, int scaledWidth, int // outline for (int i = 0; i < renderedOutlines; i++) { - if(renderBackRow) { + if (renderBackRow) { if (blink) { InGameHud.drawTexture(matrixStack, x + i * 8, y, 54, 9, 9, 9, 256, 256); // background } else { @@ -112,17 +122,17 @@ public static void renderAzureDike(MatrixStack matrixStack, int scaledWidth, int } // canisters - for(int i = 0; i < fullCanisters; i++) { + for (int i = 0; i < fullCanisters; i++) { InGameHud.drawTexture(matrixStack, x + i * 6, y - 9, 0, 0, 9, 9, 256, 256); // full canisters } - for(int i = fullCanisters; i < fullCanisters + emptyCanisters; i++) { + for (int i = fullCanisters; i < fullCanisters + emptyCanisters; i++) { InGameHud.drawTexture(matrixStack, x + i * 6, y - 9, 9, 0, 9, 9, 256, 256); // empty canisters } RenderSystem.setShaderTexture(0, GUI_ICONS_TEXTURE); } } - + private static void renderSelectedStaffStack(MatrixStack matrixStack) { if (amount > -1 && itemStackToRender != null) { // Render the item stack next to the cursor diff --git a/src/main/java/de/dafuqs/spectrum/render/RenderingContext.java b/src/main/java/de/dafuqs/spectrum/render/RenderingContext.java index 93a46aa49b..0bee916ce8 100644 --- a/src/main/java/de/dafuqs/spectrum/render/RenderingContext.java +++ b/src/main/java/de/dafuqs/spectrum/render/RenderingContext.java @@ -1,5 +1,5 @@ package de.dafuqs.spectrum.render; public class RenderingContext { - public static boolean isElytraRendered = false; + public static boolean isElytraRendered = false; } diff --git a/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorCapeModel.java b/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorCapeModel.java index f22e8630dd..c3b0e71f03 100644 --- a/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorCapeModel.java +++ b/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorCapeModel.java @@ -6,37 +6,37 @@ import net.minecraft.client.model.ModelTransform; public class BedrockArmorCapeModel { - public static final ModelPart CAPE_MODEL = createCape(); - public static final ModelPart FRONT_CLOTH = createFrontCloth(); - - private static ModelPart createCape() { - ModelData data = new ModelData(); - var root = data.getRoot(); - - root.addChild( - "cape_bone", - ModelPartBuilder.create() - .uv(0, 80) - .cuboid(-5.5F, 0.0F, -0.05F, 11.0F, 23.0F, 1.0F), - ModelTransform.pivot(0.0F, 0.5F, 2.9F) - ); - - return data.getRoot().createPart(128, 128); - } - - private static ModelPart createFrontCloth() { - ModelData data = new ModelData(); - var root = data.getRoot(); - - root.addChild( - "cock_bone", - ModelPartBuilder.create() - .uv(62, 55) - .cuboid(-3.5F, 0.0F, 0.0F, 7.0F, 14.0F, 1.0F), - ModelTransform.pivot(0.0F, 14.0F, 0F) - ); - return data.getRoot().createPart(128, 128); - } - - + public static final ModelPart CAPE_MODEL = createCape(); + public static final ModelPart FRONT_CLOTH = createFrontCloth(); + + private static ModelPart createCape() { + ModelData data = new ModelData(); + var root = data.getRoot(); + + root.addChild( + "cape_bone", + ModelPartBuilder.create() + .uv(0, 80) + .cuboid(-5.5F, 0.0F, -0.05F, 11.0F, 23.0F, 1.0F), + ModelTransform.pivot(0.0F, 0.5F, 2.9F) + ); + + return data.getRoot().createPart(128, 128); + } + + private static ModelPart createFrontCloth() { + ModelData data = new ModelData(); + var root = data.getRoot(); + + root.addChild( + "cock_bone", + ModelPartBuilder.create() + .uv(62, 55) + .cuboid(-3.5F, 0.0F, 0.0F, 7.0F, 14.0F, 1.0F), + ModelTransform.pivot(0.0F, 14.0F, 0F) + ); + return data.getRoot().createPart(128, 128); + } + + } diff --git a/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorModel.java b/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorModel.java index f229fcc447..786ac824df 100644 --- a/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorModel.java +++ b/src/main/java/de/dafuqs/spectrum/render/armor/BedrockArmorModel.java @@ -1,149 +1,146 @@ package de.dafuqs.spectrum.render.armor; -import net.minecraft.client.model.ModelData; -import net.minecraft.client.model.ModelPart; -import net.minecraft.client.model.ModelPartBuilder; -import net.minecraft.client.model.ModelTransform; +import net.minecraft.client.model.*; public class BedrockArmorModel { - public final ModelPart head; - public final ModelPart body; - public final ModelPart rightArm; - public final ModelPart left_arm; - public final ModelPart rightLeg; - public final ModelPart leftLeg; - - public BedrockArmorModel(ModelPart root) { - this.head = root.getChild("head"); - this.body = root.getChild("body"); - this.rightArm = root.getChild("right_arm"); - this.left_arm = root.getChild("left_arm"); - this.rightLeg = root.getChild("right_leg"); - this.leftLeg = root.getChild("left_leg"); - } - - public static ModelData getModelData() { - ModelData data = new ModelData(); - var root = data.getRoot(); - - root.addChild("hat", ModelPartBuilder.create(), ModelTransform.NONE); - - var head = root.addChild("head", ModelPartBuilder.create(), ModelTransform.NONE); - - head.addChild( - "armor_head", - ModelPartBuilder.create() - .uv(0, 20) - .cuboid(-4.5F, -8.5F, -4.5F, 9.0F, 9.0F, 9.0F) - .uv(0, 0) - .cuboid(-5.0F, -9.0F, -5.0F, 10.0F, 10.0F, 10.0F), - ModelTransform.NONE - ); - - var body = root.addChild("body", ModelPartBuilder.create(), ModelTransform.NONE); - - body.addChild( - "armor_body", - ModelPartBuilder.create() - .uv(31, 33) - .cuboid(-4.5F, -0.5F, -2.5F, 9.0F, 13.0F, 5.0F) - .uv(36, 20) - .cuboid(-5.0F, 0.0F, -3.0F, 10.0F, 10.0F, 3.0F), - ModelTransform.NONE - ); - - var rightArm = root.addChild( - "right_arm", - ModelPartBuilder.create(), - ModelTransform.NONE - ); - - var armorRightArm = rightArm.addChild( - "armor_right_arm", - ModelPartBuilder.create() - .uv(22, 51) - .cuboid(-4.25F, -2.5F, -2.5F, 5.0F, 13.0F, 5.0F), - ModelTransform.pivot(1.0F, 0.0F, 0.0F) - ); - - armorRightArm.addChild( - "armor_right_arm_extra", - ModelPartBuilder.create() - .uv(57, 45) - .cuboid(-4.0F, -1.5F, -3.0F, 6.0F, 4.0F, 6.0F), - ModelTransform.of(-1.5F, -1.5F, 0.0F, 0.0F, 0.0F, -0.4363F) - ); - - var leftArm = root.addChild( - "left_arm", - ModelPartBuilder.create(), - ModelTransform.NONE - ); - - var armorLeftArm = leftArm.addChild( - "armor_left_arm", - ModelPartBuilder.create() - .uv(40, 0) - .cuboid(-1.5F, -2.5F, -2.5F, 5.0F, 13.0F, 5.0F), - ModelTransform.NONE - ); - - armorLeftArm.addChild( - "armor_left_arm_extra", - ModelPartBuilder.create() - .uv(62, 20) - .cuboid(-1.75F, -1.25F, -2.0F, 5.0F, 1.0F, 5.0F) - .uv(54, 12) - .cuboid(-1.75F, -0.25F, -2.5F, 6.0F, 2.0F, 6.0F), - ModelTransform.of(1.0F, -1.75F, -0.5F, 0.0F, 0.0F, 0.4363F) - ); - - var leftLeg = root.addChild( - "left_leg", - ModelPartBuilder.create(), - ModelTransform.NONE - ); - - leftLeg.addChild( - "armor_left_leg", - ModelPartBuilder.create() - .uv(42, 51) - .cuboid(-2.5F, 0.0F, -2.5F, 5.0F, 10.0F, 5.0F), - ModelTransform.NONE - ); - - leftLeg.addChild( - "armor_left_boot", - ModelPartBuilder.create() - .uv(60, 0) - .cuboid(-2.5F, 9.0F, -2.5F, 5.0F, 3.0F, 5.0F), - ModelTransform.NONE - ); - - var rightLeg = root.addChild( - "right_leg", - ModelPartBuilder.create(), - ModelTransform.NONE - ); - - rightLeg.addChild( - "armor_right_leg", - ModelPartBuilder.create() - .uv(59, 28) - .cuboid(-2.5F, 0.0F, -2.5F, 5.0F, 10.0F, 5.0F), - ModelTransform.NONE - ); - - rightLeg.addChild( - "right_boot", - ModelPartBuilder.create() - .uv(0, 61) - .cuboid(-2.5F, 9.0F, -2.5F, 5.0F, 3.0F, 5.0F), - ModelTransform.NONE - ); - - return data; - - } - + public final ModelPart head; + public final ModelPart body; + public final ModelPart rightArm; + public final ModelPart left_arm; + public final ModelPart rightLeg; + public final ModelPart leftLeg; + + public BedrockArmorModel(ModelPart root) { + this.head = root.getChild("head"); + this.body = root.getChild("body"); + this.rightArm = root.getChild("right_arm"); + this.left_arm = root.getChild("left_arm"); + this.rightLeg = root.getChild("right_leg"); + this.leftLeg = root.getChild("left_leg"); + } + + public static ModelData getModelData() { + ModelData data = new ModelData(); + var root = data.getRoot(); + + root.addChild("hat", ModelPartBuilder.create(), ModelTransform.NONE); + + var head = root.addChild("head", ModelPartBuilder.create(), ModelTransform.NONE); + + head.addChild( + "armor_head", + ModelPartBuilder.create() + .uv(0, 20) + .cuboid(-4.5F, -8.5F, -4.5F, 9.0F, 9.0F, 9.0F) + .uv(0, 0) + .cuboid(-5.0F, -9.0F, -5.0F, 10.0F, 10.0F, 10.0F), + ModelTransform.NONE + ); + + var body = root.addChild("body", ModelPartBuilder.create(), ModelTransform.NONE); + + body.addChild( + "armor_body", + ModelPartBuilder.create() + .uv(31, 33) + .cuboid(-4.5F, -0.5F, -2.5F, 9.0F, 13.0F, 5.0F) + .uv(36, 20) + .cuboid(-5.0F, 0.0F, -3.0F, 10.0F, 10.0F, 3.0F), + ModelTransform.NONE + ); + + var rightArm = root.addChild( + "right_arm", + ModelPartBuilder.create(), + ModelTransform.NONE + ); + + var armorRightArm = rightArm.addChild( + "armor_right_arm", + ModelPartBuilder.create() + .uv(22, 51) + .cuboid(-4.25F, -2.5F, -2.5F, 5.0F, 13.0F, 5.0F), + ModelTransform.pivot(1.0F, 0.0F, 0.0F) + ); + + armorRightArm.addChild( + "armor_right_arm_extra", + ModelPartBuilder.create() + .uv(57, 45) + .cuboid(-4.0F, -1.5F, -3.0F, 6.0F, 4.0F, 6.0F, new Dilation(0.10F)), + ModelTransform.of(-1.5F, -2.0F, 0.0F, 0.0F, 0.0F, -0.4363F) + ); + + var leftArm = root.addChild( + "left_arm", + ModelPartBuilder.create(), + ModelTransform.NONE + ); + + var armorLeftArm = leftArm.addChild( + "armor_left_arm", + ModelPartBuilder.create() + .uv(40, 0) + .cuboid(-1.5F, -2.5F, -2.5F, 5.0F, 13.0F, 5.0F), + ModelTransform.NONE + ); + + armorLeftArm.addChild( + "armor_left_arm_extra", + ModelPartBuilder.create() + .uv(62, 20) + .cuboid(-1.75F, -1.25F, -2.0F, 5.0F, 1.0F, 5.0F, new Dilation(0.10F)) + .uv(54, 12) + .cuboid(-1.75F, -0.25F, -2.5F, 6.0F, 2.0F, 6.0F, new Dilation(0.10F)), + ModelTransform.of(1.0F, -2.25F, -0.5F, 0.0F, 0.0F, 0.4363F) + ); + + var leftLeg = root.addChild( + "left_leg", + ModelPartBuilder.create(), + ModelTransform.NONE + ); + + leftLeg.addChild( + "armor_left_leg", + ModelPartBuilder.create() + .uv(42, 51) + .cuboid(-2.5F, -0.15F, -2.5F, 5.0F, 10.0F, 5.0F, new Dilation(0.15F)), + ModelTransform.NONE + ); + + leftLeg.addChild( + "left_boot", + ModelPartBuilder.create() + .uv(60, 0) + .cuboid(-2.5F, 9.15F, -2.5F, 5.0F, 3.0F, 5.0F, new Dilation(0.25F)), + ModelTransform.NONE + ); + + var rightLeg = root.addChild( + "right_leg", + ModelPartBuilder.create(), + ModelTransform.NONE + ); + + rightLeg.addChild( + "armor_right_leg", + ModelPartBuilder.create() + .uv(59, 28) + .cuboid(-2.5F, -0.15F, -2.5F, 5.0F, 10.0F, 5.0F, new Dilation(0.149F)), + ModelTransform.NONE + ); + + rightLeg.addChild( + "right_boot", + ModelPartBuilder.create() + .uv(0, 61) + .cuboid(-2.5F, 9.15F, -2.5F, 5.0F, 3.0F, 5.0F, new Dilation(0.249F)), + ModelTransform.NONE + ); + + return data; + + } + } diff --git a/src/main/java/de/dafuqs/spectrum/sar/SpectrumComponents.java b/src/main/java/de/dafuqs/spectrum/sar/SpectrumComponents.java deleted file mode 100644 index cdf15efdcf..0000000000 --- a/src/main/java/de/dafuqs/spectrum/sar/SpectrumComponents.java +++ /dev/null @@ -1,23 +0,0 @@ -/*package de.dafuqs.spectrum.sar; - -import de.dafuqs.spectrum.graces.GraceBearerComponent; -import de.dafuqs.spectrum.graces.crystal.CrystalGraceComponent; -import net.immortaldevs.sar.api.Component; -import net.immortaldevs.sar.api.SarRegistries; -import net.minecraft.util.registry.Registry; - -public class SpectrumComponents { - - public static final GraceBearerComponent GRACE_BEARER = new GraceBearerComponent(); - public static final CrystalGraceComponent CRYSTAL_GRACE_COMPONENT = new CrystalGraceComponent(); - - public static void register() { - register("grace_bearer", GRACE_BEARER); - register("crystal_grace_component", CRYSTAL_GRACE_COMPONENT); - } - - private static void register(String name, Component component) { - Registry.register(SarRegistries.COMPONENT, name, component); - } -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/sar/modifier/SimpleDamageMultiplier.java b/src/main/java/de/dafuqs/spectrum/sar/modifier/SimpleDamageMultiplier.java deleted file mode 100644 index 55e83fdbf5..0000000000 --- a/src/main/java/de/dafuqs/spectrum/sar/modifier/SimpleDamageMultiplier.java +++ /dev/null @@ -1,36 +0,0 @@ -/*package de.dafuqs.spectrum.sar.modifier; - -import net.immortaldevs.sar.api.Modifier; -import net.minecraft.entity.Entity; -import net.minecraft.entity.damage.DamageSource; -import net.minecraft.item.ItemStack; - -import java.util.function.Predicate; - -public class SimpleDamageMultiplier implements Modifier { - - public SimpleDamageMultiplier(float baseMultiplier, Predicate effectiveTypes, Predicate effectiveAgainst) { - - } - - public float apply(DamageSource source, ItemStack stack, float amount) { - var sarStack = stack; - return amount; - } - - @Override - public Class getType() { - return null; - } - - @Override - public Modifier merge(Modifier that) { - return null; - } - - //@Override - //public void register(@NotNull ModifierMap modifierMap) { -// - //} -} -*/ \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/sound/CraftingBlockSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/CraftingBlockSoundInstance.java index d987f2c93d..ac202a029c 100644 --- a/src/main/java/de/dafuqs/spectrum/sound/CraftingBlockSoundInstance.java +++ b/src/main/java/de/dafuqs/spectrum/sound/CraftingBlockSoundInstance.java @@ -1,6 +1,5 @@ package de.dafuqs.spectrum.sound; -import de.dafuqs.spectrum.SpectrumClient; import de.dafuqs.spectrum.SpectrumCommon; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -8,6 +7,7 @@ import net.minecraft.block.BlockState; import net.minecraft.client.MinecraftClient; import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.TickableSoundInstance; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvent; @@ -33,7 +33,7 @@ public class CraftingBlockSoundInstance extends AbstractSoundInstance implements private boolean done; protected CraftingBlockSoundInstance(SoundEvent soundEvent, RegistryKey worldKey, BlockPos sourceBlockPos, Block sourceBlock, int maxDurationTicks) { - super(soundEvent, SoundCategory.BLOCKS); + super(soundEvent, SoundCategory.BLOCKS, SoundInstance.createRandom()); this.worldKey = worldKey; this.sourceBlockPos = sourceBlockPos; @@ -44,12 +44,13 @@ protected CraftingBlockSoundInstance(SoundEvent soundEvent, RegistryKey w this.repeatDelay = 0; } + @Environment(EnvType.CLIENT) public static void startSoundInstance(SoundEvent soundEvent, BlockPos sourceBlockPos, Block sourceBlock, int maxDurationTicks) { stopPlayingOnPos(sourceBlockPos); CraftingBlockSoundInstance newInstance = new CraftingBlockSoundInstance(soundEvent, MinecraftClient.getInstance().world.getRegistryKey(), sourceBlockPos, sourceBlock, maxDurationTicks); playingSoundInstances.add(newInstance); - SpectrumClient.minecraftClient.getSoundManager().play(newInstance); + MinecraftClient.getInstance().getSoundManager().play(newInstance); } // if there is already a sound instance playing at given pos: cancel it diff --git a/src/main/java/de/dafuqs/spectrum/sound/DivinitySoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/DivinitySoundInstance.java index 571bab4e49..000380a19c 100644 --- a/src/main/java/de/dafuqs/spectrum/sound/DivinitySoundInstance.java +++ b/src/main/java/de/dafuqs/spectrum/sound/DivinitySoundInstance.java @@ -9,6 +9,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.TickableSoundInstance; import net.minecraft.sound.SoundCategory; @@ -20,7 +21,7 @@ public class DivinitySoundInstance extends AbstractSoundInstance implements Tick private boolean done; public DivinitySoundInstance() { - super(SpectrumSoundEvents.DIVINITY, SoundCategory.PLAYERS); + super(SpectrumSoundEvents.DIVINITY, SoundCategory.PLAYERS, SoundInstance.createRandom()); this.repeat = true; this.repeatDelay = 0; this.volume = 0.8F; @@ -41,7 +42,7 @@ public boolean shouldAlwaysPlay() { @Override public void tick() { time++; - if(time > AscensionStatusEffect.MUSIC_INTRO_TICKS) { + if (time > AscensionStatusEffect.MUSIC_INTRO_TICKS) { this.volume = 0.8F; } else { this.volume = 0.5F + ((float) time / AscensionStatusEffect.MUSIC_INTRO_TICKS) * 0.2F; diff --git a/src/main/java/de/dafuqs/spectrum/sound/EnderSpliceChargingSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/EnderSpliceChargingSoundInstance.java index 26864b62d9..b472a8d9f3 100644 --- a/src/main/java/de/dafuqs/spectrum/sound/EnderSpliceChargingSoundInstance.java +++ b/src/main/java/de/dafuqs/spectrum/sound/EnderSpliceChargingSoundInstance.java @@ -4,13 +4,13 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.TickableSoundInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.particle.ParticleTypes; import net.minecraft.sound.SoundCategory; import net.minecraft.util.math.Vec3d; - -import java.util.Random; +import net.minecraft.util.math.random.Random; @Environment(EnvType.CLIENT) public class EnderSpliceChargingSoundInstance extends AbstractSoundInstance implements TickableSoundInstance { @@ -19,7 +19,7 @@ public class EnderSpliceChargingSoundInstance extends AbstractSoundInstance impl private boolean done; public EnderSpliceChargingSoundInstance(PlayerEntity player) { - super(SpectrumSoundEvents.ENDER_SPLICE_CHARGES, SoundCategory.NEUTRAL); + super(SpectrumSoundEvents.ENDER_SPLICE_CHARGES, SoundCategory.NEUTRAL, SoundInstance.createRandom()); this.repeat = true; this.repeatDelay = 0; this.volume = 0.6F; diff --git a/src/main/java/de/dafuqs/spectrum/sound/GreatswordChargingSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/GreatswordChargingSoundInstance.java new file mode 100644 index 0000000000..315f18aab7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/sound/GreatswordChargingSoundInstance.java @@ -0,0 +1,61 @@ +package de.dafuqs.spectrum.sound; + +import de.dafuqs.spectrum.items.tools.GreatswordItem; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; +import net.minecraft.client.sound.TickableSoundInstance; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.sound.SoundCategory; + +@Environment(EnvType.CLIENT) +public class GreatswordChargingSoundInstance extends AbstractSoundInstance implements TickableSoundInstance { + + private final PlayerEntity player; + private boolean done; + private int ticks; + private final int groundSlamChargeTicks; + + public GreatswordChargingSoundInstance(PlayerEntity player, int groundSlamChargeTicks) { + super(SpectrumSoundEvents.GROUND_SLAM_CHARGE, SoundCategory.PLAYERS, SoundInstance.createRandom()); + this.groundSlamChargeTicks = groundSlamChargeTicks; + this.repeat = false; + this.ticks = 0; + this.repeatDelay = 0; + this.volume = 0.6F; + this.player = player; + this.x = player.getX(); + this.y = player.getY(); + this.z = player.getZ(); + } + + @Override + public boolean isDone() { + return this.done; + } + + @Override + public boolean shouldAlwaysPlay() { + return true; + } + + @Override + public void tick() { + this.ticks++; + if (this.ticks > this.groundSlamChargeTicks) { + // at this point the ground slam was handled and the effect does not need get cancelled anymore + } else if (player == null || !player.isUsingItem() || !(player.getMainHandStack().getItem() instanceof GreatswordItem)) { + this.setDone(); + } + this.x = this.player.getX(); + this.y = this.player.getY(); + this.z = this.player.getZ(); + } + + protected final void setDone() { + this.done = true; + this.repeat = false; + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/sound/HintRevelationSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/HintRevelationSoundInstance.java index d1248f1520..3921d775bb 100644 --- a/src/main/java/de/dafuqs/spectrum/sound/HintRevelationSoundInstance.java +++ b/src/main/java/de/dafuqs/spectrum/sound/HintRevelationSoundInstance.java @@ -5,6 +5,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.TickableSoundInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.sound.SoundCategory; @@ -18,7 +19,7 @@ public class HintRevelationSoundInstance extends AbstractSoundInstance implement private int playtime; public HintRevelationSoundInstance(PlayerEntity player, int duration) { - super(SpectrumSoundEvents.TEXT_REVEALED, SoundCategory.PLAYERS); + super(SpectrumSoundEvents.TEXT_REVEALED, SoundCategory.PLAYERS, SoundInstance.createRandom()); this.repeat = true; this.repeatDelay = 0; this.volume = 1.0F; @@ -45,7 +46,7 @@ public boolean shouldAlwaysPlay() { public void tick() { playtime++; - if(this.player != null) { + if (this.player != null) { this.x = player.getX(); this.y = player.getY(); this.z = player.getZ(); diff --git a/src/main/java/de/dafuqs/spectrum/sound/InkProjectileSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/InkProjectileSoundInstance.java deleted file mode 100644 index 8372e537dc..0000000000 --- a/src/main/java/de/dafuqs/spectrum/sound/InkProjectileSoundInstance.java +++ /dev/null @@ -1,105 +0,0 @@ -package de.dafuqs.spectrum.sound; - -import de.dafuqs.spectrum.entity.entity.InkProjectileEntity; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.registries.SpectrumSoundEvents; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.sound.AbstractSoundInstance; -import net.minecraft.client.sound.TickableSoundInstance; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.util.DyeColor; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.World; - -import java.util.Objects; - -@Environment(EnvType.CLIENT) -public class InkProjectileSoundInstance extends AbstractSoundInstance implements TickableSoundInstance { - - private final RegistryKey worldKey; - private final InkProjectileEntity inkProjectile; - private final int maxDurationTicks = 280; - - private int ticksPlayed = 0; - private boolean done; - private boolean playedExplosion; - - protected InkProjectileSoundInstance(RegistryKey worldKey, InkProjectileEntity inkProjectile) { - super(SpectrumSoundEvents.INK_PROJECTILE_LAUNCH, SoundCategory.NEUTRAL); - - this.worldKey = worldKey; - this.inkProjectile = inkProjectile; - - this.attenuationType = AttenuationType.NONE; - this.x = this.inkProjectile.getX(); - this.y = this.inkProjectile.getY(); - this.z = this.inkProjectile.getZ(); - - this.repeat = false; - this.repeatDelay = 0; - this.volume = 1.0F; - } - - @Environment(EnvType.CLIENT) - public static void startSoundInstance(InkProjectileEntity inkProjectile) { - InkProjectileSoundInstance newInstance = new InkProjectileSoundInstance(MinecraftClient.getInstance().world.getRegistryKey(), inkProjectile); - MinecraftClient.getInstance().getSoundManager().play(newInstance); - } - - @Override - public boolean isDone() { - return this.done; - } - - @Override - public boolean shouldAlwaysPlay() { - return true; - } - - @Override - public void tick() { - this.ticksPlayed++; - - this.x = this.inkProjectile.getX(); - this.y = this.inkProjectile.getY(); - this.z = this.inkProjectile.getZ(); - - this.volume = Math.max(0.0F, 0.7F - Math.max(0.0F, inkProjectile.getBlockPos().getManhattanDistance(MinecraftClient.getInstance().player.getBlockPos()) / 128F - 0.2F)); - - if (ticksPlayed > maxDurationTicks - || !Objects.equals(this.worldKey, MinecraftClient.getInstance().world.getRegistryKey()) - || inkProjectile.isRemoved()) { - - this.setDone(); - } - } - - protected final void setDone() { - this.ticksPlayed = this.maxDurationTicks; - this.done = true; - this.repeat = false; - - if(inkProjectile.isRemoved() && !playedExplosion) { - MinecraftClient.getInstance().player.playSound(SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.NEUTRAL, Math.max(0.1F, this.volume / 4), 0.9F + MinecraftClient.getInstance().world.random.nextFloat() * 0.2F); - spawnImpactParticles(this.inkProjectile); - playedExplosion = true; - } - } - - private void spawnImpactParticles(InkProjectileEntity inkProjectile) { - DyeColor dyeColor = inkProjectile.getDyeColor(); - World world = inkProjectile.getWorld(); - Vec3d targetPos = inkProjectile.getPos(); - Vec3d velocity = inkProjectile.getVelocity(); - - world.addParticle(SpectrumParticleTypes.getExplosionParticle(dyeColor), targetPos.x, targetPos.y, targetPos.z, 0, 0, 0); - for (int i = 0; i < 10; i++) { - world.addParticle(SpectrumParticleTypes.getCraftingParticle(dyeColor), targetPos.x, targetPos.y, targetPos.z, -velocity.x * 3, -velocity.y * 3, -velocity.z * 3); - } - } - -} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/sound/MagicProjectileSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/MagicProjectileSoundInstance.java new file mode 100644 index 0000000000..3b46bb44f1 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/sound/MagicProjectileSoundInstance.java @@ -0,0 +1,106 @@ +package de.dafuqs.spectrum.sound; + +import de.dafuqs.spectrum.entity.entity.MagicProjectileEntity; +import de.dafuqs.spectrum.particle.SpectrumParticleTypes; +import de.dafuqs.spectrum.registries.SpectrumSoundEvents; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; +import net.minecraft.client.sound.TickableSoundInstance; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.DyeColor; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.registry.RegistryKey; +import net.minecraft.world.World; + +import java.util.Objects; + +@Environment(EnvType.CLIENT) +public class MagicProjectileSoundInstance extends AbstractSoundInstance implements TickableSoundInstance { + + private final RegistryKey worldKey; + private final MagicProjectileEntity projectile; + private final int maxDurationTicks = 280; + + private int ticksPlayed = 0; + private boolean done; + private boolean playedExplosion; + + protected MagicProjectileSoundInstance(RegistryKey worldKey, MagicProjectileEntity projectile) { + super(SpectrumSoundEvents.INK_PROJECTILE_LAUNCH, SoundCategory.NEUTRAL, SoundInstance.createRandom()); + + this.worldKey = worldKey; + this.projectile = projectile; + + this.attenuationType = AttenuationType.NONE; + this.x = this.projectile.getX(); + this.y = this.projectile.getY(); + this.z = this.projectile.getZ(); + + this.repeat = false; + this.repeatDelay = 0; + this.volume = 1.0F; + } + + @Environment(EnvType.CLIENT) + public static void startSoundInstance(MagicProjectileEntity inkProjectile) { + MagicProjectileSoundInstance newInstance = new MagicProjectileSoundInstance(MinecraftClient.getInstance().world.getRegistryKey(), inkProjectile); + MinecraftClient.getInstance().getSoundManager().play(newInstance); + } + + @Override + public boolean isDone() { + return this.done; + } + + @Override + public boolean shouldAlwaysPlay() { + return true; + } + + @Override + public void tick() { + this.ticksPlayed++; + + this.x = this.projectile.getX(); + this.y = this.projectile.getY(); + this.z = this.projectile.getZ(); + + this.volume = Math.max(0.0F, 0.7F - Math.max(0.0F, projectile.getBlockPos().getManhattanDistance(MinecraftClient.getInstance().player.getBlockPos()) / 128F - 0.2F)); + + if (ticksPlayed > maxDurationTicks + || !Objects.equals(this.worldKey, MinecraftClient.getInstance().world.getRegistryKey()) + || projectile.isRemoved()) { + + this.setDone(); + } + } + + protected final void setDone() { + this.ticksPlayed = this.maxDurationTicks; + this.done = true; + this.repeat = false; + + if (projectile.isRemoved() && !playedExplosion) { + MinecraftClient.getInstance().player.playSound(SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.NEUTRAL, Math.max(0.1F, this.volume / 4), 0.9F + MinecraftClient.getInstance().world.random.nextFloat() * 0.2F); + spawnImpactParticles(this.projectile); + playedExplosion = true; + } + } + + private void spawnImpactParticles(MagicProjectileEntity projectile) { + DyeColor dyeColor = projectile.getDyeColor(); + World world = projectile.getWorld(); + Vec3d targetPos = projectile.getPos(); + Vec3d velocity = projectile.getVelocity(); + + world.addParticle(SpectrumParticleTypes.getExplosionParticle(dyeColor), targetPos.x, targetPos.y, targetPos.z, 0, 0, 0); + for (int i = 0; i < 10; i++) { + world.addParticle(SpectrumParticleTypes.getCraftingParticle(dyeColor), targetPos.x, targetPos.y, targetPos.z, -velocity.x * 3, -velocity.y * 3, -velocity.z * 3); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/sound/NaturesStaffUseSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/NaturesStaffUseSoundInstance.java index bfdc2b64df..f2e47a5b46 100644 --- a/src/main/java/de/dafuqs/spectrum/sound/NaturesStaffUseSoundInstance.java +++ b/src/main/java/de/dafuqs/spectrum/sound/NaturesStaffUseSoundInstance.java @@ -4,6 +4,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.TickableSoundInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.sound.SoundCategory; @@ -15,7 +16,7 @@ public class NaturesStaffUseSoundInstance extends AbstractSoundInstance implemen private boolean done; public NaturesStaffUseSoundInstance(PlayerEntity player) { - super(SpectrumSoundEvents.NATURES_STAFF_USE, SoundCategory.PLAYERS); + super(SpectrumSoundEvents.NATURES_STAFF_USE, SoundCategory.PLAYERS, SoundInstance.createRandom()); this.repeat = true; this.repeatDelay = 0; this.volume = 0.3F; diff --git a/src/main/java/de/dafuqs/spectrum/sound/OverchargingSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/OverchargingSoundInstance.java new file mode 100644 index 0000000000..7fc6f52b17 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/sound/OverchargingSoundInstance.java @@ -0,0 +1,73 @@ +package de.dafuqs.spectrum.sound; + +import de.dafuqs.spectrum.items.tools.*; +import de.dafuqs.spectrum.items.trinkets.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.api.*; +import net.minecraft.client.sound.*; +import net.minecraft.entity.player.*; +import net.minecraft.sound.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; + +@Environment(EnvType.CLIENT) +public class OverchargingSoundInstance extends AbstractSoundInstance implements TickableSoundInstance { + + private final PlayerEntity player; + private final long lastParticleTick; + private boolean done; + + public OverchargingSoundInstance(PlayerEntity player) { + super(SpectrumSoundEvents.OVERCHARGING, SoundCategory.PLAYERS, SoundInstance.createRandom()); + this.player = player; + this.repeat = false; + this.repeatDelay = 0; + this.volume = 0.4F; + this.lastParticleTick = player.getWorld().getTime() + TakeOffBeltItem.CHARGE_TIME_TICKS * TakeOffBeltItem.MAX_CHARGES; + this.x = player.getX(); + this.y = player.getY(); + this.z = player.getZ(); + } + + @Override + public boolean isDone() { + return this.done; + } + + @Override + public boolean shouldAlwaysPlay() { + return true; + } + + @Override + public void tick() { + if (player == null || !player.isSneaking() || !player.isUsingItem() || !(player.getStackInHand(player.getActiveHand()).getItem() instanceof GlassCrestCrossbowItem)) { + this.setDone(); + } else { + this.x = ((float) player.getX()); + this.y = ((float) player.getY()); + this.z = ((float) player.getZ()); + + if (player.getWorld() != null && player.getWorld().getTime() < lastParticleTick) { + spawnParticles(player); + } else { + this.volume = 0.0F; + } + } + } + + private void spawnParticles(PlayerEntity player) { + Random random = player.getEntityWorld().random; + + Vec3d pos = player.getPos(); + player.getEntityWorld().addParticle(SpectrumParticleTypes.WHITE_CRAFTING, + pos.x + random.nextDouble() * 0.8 - 0.4, pos.y, pos.z + random.nextDouble() * 0.8 - 0.4, + 0, random.nextDouble() * 0.5, 0); + } + + protected final void setDone() { + this.done = true; + this.repeat = false; + } +} \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/sound/TakeOffBeltSoundInstance.java b/src/main/java/de/dafuqs/spectrum/sound/TakeOffBeltSoundInstance.java index 126d9a0945..13d185615f 100644 --- a/src/main/java/de/dafuqs/spectrum/sound/TakeOffBeltSoundInstance.java +++ b/src/main/java/de/dafuqs/spectrum/sound/TakeOffBeltSoundInstance.java @@ -1,6 +1,5 @@ package de.dafuqs.spectrum.sound; -import de.dafuqs.spectrum.SpectrumClient; import de.dafuqs.spectrum.items.trinkets.TakeOffBeltItem; import de.dafuqs.spectrum.particle.SpectrumParticleTypes; import de.dafuqs.spectrum.registries.SpectrumSoundEvents; @@ -8,12 +7,12 @@ import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.client.sound.AbstractSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.TickableSoundInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.sound.SoundCategory; import net.minecraft.util.math.Vec3d; - -import java.util.Random; +import net.minecraft.util.math.random.Random; @Environment(EnvType.CLIENT) public class TakeOffBeltSoundInstance extends AbstractSoundInstance implements TickableSoundInstance { @@ -22,7 +21,7 @@ public class TakeOffBeltSoundInstance extends AbstractSoundInstance implements T private boolean done; public TakeOffBeltSoundInstance() { - super(SpectrumSoundEvents.AIR_LAUNCH_BELT_CHARGING, SoundCategory.PLAYERS); + super(SpectrumSoundEvents.AIR_LAUNCH_BELT_CHARGING, SoundCategory.PLAYERS, SoundInstance.createRandom()); PlayerEntity player = MinecraftClient.getInstance().player; this.repeat = false; this.repeatDelay = 0; @@ -33,10 +32,11 @@ public TakeOffBeltSoundInstance() { this.z = player.getZ(); } + @Environment(EnvType.CLIENT) public static void startSoundInstance() { TakeOffBeltSoundInstance soundInstance = new TakeOffBeltSoundInstance(); - if (!SpectrumClient.minecraftClient.getSoundManager().isPlaying(soundInstance)) { - SpectrumClient.minecraftClient.getSoundManager().play(soundInstance); + if (!MinecraftClient.getInstance().getSoundManager().isPlaying(soundInstance)) { + MinecraftClient.getInstance().getSoundManager().play(soundInstance); } } diff --git a/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffect.java b/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffect.java index 1894639573..0f1c3be1af 100644 --- a/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffect.java +++ b/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffect.java @@ -12,7 +12,7 @@ import java.util.List; public abstract class InkSpellEffect { - + InkColor color; public InkSpellEffect(InkColor color) { @@ -20,19 +20,21 @@ public InkSpellEffect(InkColor color) { } public abstract void playEffects(World world, Vec3d origin, float potency); + abstract void affectEntity(Entity entity, Vec3d origin, float potency); + abstract void affectArea(World world, BlockPos origin, float potency); public static void trigger(InkColor inkColor, World world, Vec3d position, float potency) { InkSpellEffect effect = InkSpellEffects.getEffect(inkColor); - if(effect != null) { - if(world instanceof ServerWorld) { + if (effect != null) { + if (world instanceof ServerWorld) { SpectrumS2CPacketSender.playInkEffectParticles((ServerWorld) world, inkColor, position, potency); } else { effect.playEffects(world, position, potency); } List entities = world.getNonSpectatingEntities(Entity.class, Box.of(position, potency / 2, potency / 2, potency / 2)); - for(Entity entity : entities) { + for (Entity entity : entities) { effect.affectEntity(entity, position, potency); } effect.affectArea(world, new BlockPos(position.x, position.y, position.z), potency); diff --git a/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffects.java b/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffects.java index cbb83876e8..c65ddc17c6 100644 --- a/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffects.java +++ b/src/main/java/de/dafuqs/spectrum/spells/InkSpellEffects.java @@ -18,12 +18,12 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; -import java.util.Random; public class InkSpellEffects { @@ -44,7 +44,7 @@ public static void register() { public void playEffects(World world, Vec3d origin, float potency) { int count = 12 + (int) (potency * 3); Random random = world.random; - for(int i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { world.addParticle(ParticleTypes.WAX_OFF, origin.x + potency - random.nextFloat() * potency * 2, origin.y + potency - random.nextFloat() * potency * 2, @@ -56,9 +56,9 @@ public void playEffects(World world, Vec3d origin, float potency) { @Override void affectEntity(Entity entity, Vec3d origin, float potency) { // heal living entities - if(entity instanceof LivingEntity livingEntity && (livingEntity.getHealth() < livingEntity.getMaxHealth() || livingEntity.isUndead())) { + if (entity instanceof LivingEntity livingEntity && (livingEntity.getHealth() < livingEntity.getMaxHealth() || livingEntity.isUndead())) { float amount = potency - (float) entity.getPos().distanceTo(origin); - if(amount >= 1) { + if (amount >= 1) { livingEntity.heal(amount); entity.getWorld().playSound(null, entity.getBlockPos(), SpectrumSoundEvents.BLOCK_CITRINE_BLOCK_CHIME, SoundCategory.NEUTRAL, 1.0F, 0.9F + entity.getWorld().random.nextFloat() * 0.2F); SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) entity.getWorld(), entity.getPos(), ParticleTypes.WAX_OFF, 10, new Vec3d(0.5, 0.5, 0.5), new Vec3d(0, 0, 0)); @@ -87,7 +87,7 @@ public void playEffects(World world, Vec3d origin, float potency) { int count = 10 + (int) (potency * 3); Random random = world.random; - for(int i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { world.addParticle(ParticleTypes.DRIPPING_LAVA, origin.x + potency - random.nextFloat() * potency * 2, origin.y + potency - random.nextFloat() * potency * 2, @@ -99,9 +99,9 @@ public void playEffects(World world, Vec3d origin, float potency) { @Override void affectEntity(Entity entity, Vec3d origin, float potency) { // set entities on fire - if(!entity.isFireImmune()) { + if (!entity.isFireImmune()) { int duration = (int) (10 * potency) - (int) (5 * entity.getPos().distanceTo(origin)); - if(duration >= 1) { + if (duration >= 1) { entity.setFireTicks(duration); entity.getWorld().playSound(null, entity.getBlockPos(), SoundEvents.BLOCK_FIRE_AMBIENT, SoundCategory.NEUTRAL, 1.0F, 0.9F + entity.getWorld().random.nextFloat() * 0.2F); SpectrumS2CPacketSender.playParticleWithRandomOffsetAndVelocity((ServerWorld) entity.getWorld(), entity.getPos(), ParticleTypes.ASH, 10, new Vec3d(0.5, 0.5, 0.5), new Vec3d(0, 0, 0)); @@ -112,12 +112,12 @@ void affectEntity(Entity entity, Vec3d origin, float potency) { @Override void affectArea(World world, BlockPos origin, float potency) { // burn & cause fires - if(world instanceof ServerWorld serverWorld) { + if (world instanceof ServerWorld serverWorld) { int range = Support.getIntFromDecimalWithChance(potency, world.random); for (BlockPos blockPos : BlockPos.iterateOutwards(origin, range, range, range)) { int distance = 1 + blockPos.getManhattanDistance(origin); float div = (float) range / distance; - if(div >= 1 || world.random.nextFloat() < div) { + if (div >= 1 || world.random.nextFloat() < div) { FirestarterMobBlock.causeFire(serverWorld, blockPos, Direction.random(world.random)); } } diff --git a/src/main/java/de/dafuqs/spectrum/spells/MoonstoneStrike.java b/src/main/java/de/dafuqs/spectrum/spells/MoonstoneStrike.java new file mode 100644 index 0000000000..a6998f04d7 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/spells/MoonstoneStrike.java @@ -0,0 +1,187 @@ +package de.dafuqs.spectrum.spells; + +import com.google.common.collect.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.registries.*; +import net.minecraft.enchantment.*; +import net.minecraft.entity.*; +import net.minecraft.entity.damage.*; +import net.minecraft.entity.player.*; +import net.minecraft.entity.projectile.*; +import net.minecraft.server.world.*; +import net.minecraft.sound.*; +import net.minecraft.util.hit.HitResult.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.RaycastContext.*; +import net.minecraft.world.event.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +public class MoonstoneStrike { + + private final World world; + private final double x; + private final double y; + private final double z; + @Nullable + public Entity entity; + public float power; + private final DamageSource damageSource; + protected final Map affectedPlayers; + + public MoonstoneStrike(World world, @Nullable Entity entity, double x, double y, double z, float power) { + this(world, entity, null, x, y, z, power); + } + + public MoonstoneStrike(World world, @Nullable Entity entity, @Nullable DamageSource damageSource, double x, double y, double z, float power) { + this.affectedPlayers = Maps.newHashMap(); + this.world = world; + this.entity = entity; + this.power = power; + this.x = x; + this.y = y; + this.z = z; + this.damageSource = damageSource == null ? SpectrumDamageSources.moonstoneBlast(this) : damageSource; + } + + public static MoonstoneStrike create(World world, Entity entity, @Nullable DamageSource damageSource, double x, double y, double z, float power) { + MoonstoneStrike moonstoneStrike = new MoonstoneStrike(world, entity, damageSource, x, y, z, power); + + if (world.isClient) { + // TODO: custom sounds and particles + world.playSound(x, y, z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.BLOCKS, 4.0F, (1.0F + (world.random.nextFloat() - world.random.nextFloat()) * 0.2F) * 0.7F, false); + world.addParticle(SpectrumParticleTypes.MOONSTONE_STRIKE, x, y, z, 1.0, 0.0, 0.0); + } else { + moonstoneStrike.damageEntities(); + SpectrumS2CPacketSender.sendMoonstoneBlast((ServerWorld) world, moonstoneStrike); + } + + return moonstoneStrike; + } + + public double getX() { + return x; + } + + public double getY() { + return y; + } + + public double getZ() { + return z; + } + + public float getPower() { + return power; + } + + public static float getExposure(Vec3d source, Entity entity) { + Box box = entity.getBoundingBox(); + double d = 1.0 / ((box.maxX - box.minX) * 2.0 + 1.0); + double e = 1.0 / ((box.maxY - box.minY) * 2.0 + 1.0); + double f = 1.0 / ((box.maxZ - box.minZ) * 2.0 + 1.0); + double g = (1.0 - Math.floor(1.0 / d) * d) / 2.0; + double h = (1.0 - Math.floor(1.0 / f) * f) / 2.0; + if (!(d < 0.0) && !(e < 0.0) && !(f < 0.0)) { + int i = 0; + int j = 0; + + for(double k = 0.0; k <= 1.0; k += d) { + for(double l = 0.0; l <= 1.0; l += e) { + for(double m = 0.0; m <= 1.0; m += f) { + double n = MathHelper.lerp(k, box.minX, box.maxX); + double o = MathHelper.lerp(l, box.minY, box.maxY); + double p = MathHelper.lerp(m, box.minZ, box.maxZ); + Vec3d vec3d = new Vec3d(n + g, o, p + h); + if (entity.world.raycast(new RaycastContext(vec3d, source, ShapeType.COLLIDER, FluidHandling.NONE, entity)).getType() == Type.MISS) { + ++i; + } + + ++j; + } + } + } + + return (float)i / (float)j; + } else { + return 0.0F; + } + } + + public void damageEntities() { + this.world.emitGameEvent(this.entity, GameEvent.EXPLODE, new Vec3d(this.x, this.y, this.z)); + + float q = this.power * 2.0F; + int k = MathHelper.floor(this.x - (double)q - 1.0); + int l = MathHelper.floor(this.x + (double)q + 1.0); + int r = MathHelper.floor(this.y - (double)q - 1.0); + int s = MathHelper.floor(this.y + (double)q + 1.0); + int t = MathHelper.floor(this.z - (double)q - 1.0); + int u = MathHelper.floor(this.z + (double)q + 1.0); + List list = this.world.getOtherEntities(this.entity, new Box(k, r, t, l, s, u)); + Vec3d vec3d = new Vec3d(this.x, this.y, this.z); + + for (Entity entity : list) { + if (!entity.isImmuneToExplosion()) { + double w = Math.sqrt(entity.squaredDistanceTo(vec3d)) / (double) q; + if (w <= 1.0) { + double x = entity.getX() - this.x; + double y = (entity instanceof TntEntity ? entity.getY() : entity.getEyeY()) - this.y; + double z = entity.getZ() - this.z; + double aa = Math.sqrt(x * x + y * y + z * z); + if (aa != 0.0) { + x /= aa; + y /= aa; + z /= aa; + double ab = getExposure(vec3d, entity); + double ac = (1.0 - w) * ab; + entity.damage(this.getDamageSource(), (float) ((int) ((ac * ac + ac) / 2.0 * 7.0 * (double) q + 1.0))); + double ad = ac; + if (entity instanceof LivingEntity) { + ad = ProtectionEnchantment.transformExplosionKnockback((LivingEntity) entity, ac); + } + + entity.setVelocity(entity.getVelocity().add(x * ad, y * ad, z * ad)); + if (entity instanceof PlayerEntity playerEntity) { + if (!playerEntity.isSpectator() && (!playerEntity.isCreative() || !playerEntity.getAbilities().flying)) { + this.affectedPlayers.put(playerEntity, new Vec3d(x * ac, y * ac, z * ac)); + } + } + } + } + } + } + } + + public DamageSource getDamageSource() { + return this.damageSource; + } + + public Map getAffectedPlayers() { + return this.affectedPlayers; + } + + @Nullable + public LivingEntity getCausingEntity() { + if (this.entity == null) { + return null; + } else if (this.entity instanceof TntEntity) { + return ((TntEntity)this.entity).getCausingEntity(); + } else if (this.entity instanceof LivingEntity) { + return (LivingEntity)this.entity; + } else { + if (this.entity instanceof ProjectileEntity) { + Entity entity = ((ProjectileEntity)this.entity).getOwner(); + if (entity instanceof LivingEntity) { + return (LivingEntity)entity; + } + } + + return null; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/AscensionStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/AscensionStatusEffect.java index 6e8bca8123..feeb0df961 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/AscensionStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/AscensionStatusEffect.java @@ -1,6 +1,6 @@ package de.dafuqs.spectrum.status_effects; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketReceiver; +import de.dafuqs.spectrum.helpers.ParticleHelper; import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; import de.dafuqs.spectrum.particle.ParticlePattern; import de.dafuqs.spectrum.particle.SpectrumParticleTypes; @@ -22,8 +22,8 @@ public AscensionStatusEffect(StatusEffectCategory statusEffectCategory, int colo @Override public void applyUpdateEffect(LivingEntity entity, int amplifier) { - if(entity.world.isClient && entity.world.getTime() % 4 == 0) { - SpectrumS2CPacketReceiver.playParticleWithPatternAndVelocityClient(entity.world, entity.getPos(), SpectrumParticleTypes.WHITE_SPARKLE_RISING, ParticlePattern.EIGHT, 0.2); + if (entity.world.isClient && entity.world.getTime() % 4 == 0) { + ParticleHelper.playParticleWithPatternAndVelocityClient(entity.world, entity.getPos(), SpectrumParticleTypes.WHITE_SPARKLE_RISING, ParticlePattern.EIGHT, 0.2); } } @@ -35,7 +35,7 @@ public boolean canApplyUpdateEffect(int duration, int amplifier) { @Override public void onApplied(LivingEntity entity, AttributeContainer attributes, int amplifier) { super.onApplied(entity, attributes, amplifier); - if(entity instanceof ServerPlayerEntity player) { + if (entity instanceof ServerPlayerEntity player) { SpectrumS2CPacketSender.playAscensionAppliedEffects(player); } } diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/DivinityStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/DivinityStatusEffect.java index 51dc78103e..2a121af022 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/DivinityStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/DivinityStatusEffect.java @@ -1,16 +1,19 @@ package de.dafuqs.spectrum.status_effects; -import de.dafuqs.spectrum.items.trinkets.WhispyCircletItem; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketReceiver; -import de.dafuqs.spectrum.networking.SpectrumS2CPacketSender; -import de.dafuqs.spectrum.particle.ParticlePattern; -import de.dafuqs.spectrum.particle.SpectrumParticleTypes; -import de.dafuqs.spectrum.progression.SpectrumAdvancementCriteria; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.attribute.AttributeContainer; -import net.minecraft.entity.effect.StatusEffectCategory; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.server.network.ServerPlayerEntity; +import de.dafuqs.spectrum.helpers.*; +import de.dafuqs.spectrum.items.trinkets.*; +import de.dafuqs.spectrum.networking.*; +import de.dafuqs.spectrum.particle.*; +import de.dafuqs.spectrum.progression.*; +import de.dafuqs.spectrum.registries.*; +import net.fabricmc.loader.api.*; +import net.minecraft.client.network.*; +import net.minecraft.entity.*; +import net.minecraft.entity.attribute.*; +import net.minecraft.entity.effect.*; +import net.minecraft.entity.player.*; +import net.minecraft.server.network.*; +import net.minecraft.world.*; public class DivinityStatusEffect extends SpectrumStatusEffect { @@ -20,39 +23,50 @@ public DivinityStatusEffect(StatusEffectCategory statusEffectCategory, int color @Override public void applyUpdateEffect(LivingEntity entity, int amplifier) { + World world = entity.getWorld(); + if (world.isClient) { + ParticleHelper.playParticleWithPatternAndVelocityClient(entity.world, entity.getPos(), SpectrumParticleTypes.RED_CRAFTING, ParticlePattern.EIGHT, 0.2); + } if (entity instanceof PlayerEntity player) { - if(!player.world.isClient) { + if (!world.isClient) { SpectrumAdvancementCriteria.DIVINITY_TICK.trigger((ServerPlayerEntity) player); } - player.getHungerManager().add(1, 0.25F); - } - if (entity.getHealth() < entity.getMaxHealth()) { - entity.heal(amplifier / 2F); + if(world.getTime() % 20 == 0) { + player.getHungerManager().add(1 + amplifier, 0.25F); + } } - if (entity.world.isClient) { - if (entity.world.getTime() % 4 == 0) { - SpectrumS2CPacketReceiver.playParticleWithPatternAndVelocityClient(entity.world, entity.getPos(), SpectrumParticleTypes.RED_CRAFTING, ParticlePattern.EIGHT, 0.2); + + if(world.getTime() % 20 == 0) { + if (entity.getHealth() < entity.getMaxHealth()) { + entity.heal(amplifier / 2F); } - } else { - WhispyCircletItem.removeSingleHarmfulStatusEffect(entity); + } + if(world.getTime() % 200 == 0) { + WhispyCircletItem.removeSingleStatusEffect(entity, StatusEffectCategory.HARMFUL); } } @Override public boolean canApplyUpdateEffect(int duration, int amplifier) { - int i = 80 >> amplifier; - if (i > 0) { - return duration % i == 0; - } return true; } - + @Override public void onApplied(LivingEntity entity, AttributeContainer attributes, int amplifier) { super.onApplied(entity, attributes, amplifier); - if(entity instanceof ServerPlayerEntity player) { + if (entity instanceof ServerPlayerEntity player && entity.getStatusEffect(SpectrumStatusEffects.DIVINITY) == null) { SpectrumS2CPacketSender.playDivinityAppliedEffects(player); + } else if (entity instanceof ClientPlayerEntity) { + FabricLoader.getInstance().getObjectShare().put("healthoverlay:forceHardcoreHearts", true); } } - + + @Override + public void onRemoved(LivingEntity entity, AttributeContainer attributes, int amplifier) { + super.onRemoved(entity, attributes, amplifier); + if (entity instanceof ClientPlayerEntity) { + FabricLoader.getInstance().getObjectShare().put("healthoverlay:forceHardcoreHearts", false); + } + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/FrenzyStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/FrenzyStatusEffect.java index f8f6b427df..8c937132e7 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/FrenzyStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/FrenzyStatusEffect.java @@ -1,6 +1,5 @@ package de.dafuqs.spectrum.status_effects; -import de.dafuqs.spectrum.SpectrumCommon; import de.dafuqs.spectrum.cca.LastKillComponent; import de.dafuqs.spectrum.registries.SpectrumStatusEffects; import net.minecraft.entity.LivingEntity; @@ -47,21 +46,20 @@ public boolean canApplyUpdateEffect(int duration, int amplifier) { @Override public void onApplied(LivingEntity entity, AttributeContainer attributes, int amplifier) { - if(!SpectrumStatusEffects.effectsAreGettingStacked && !entity.hasStatusEffect(this)) { + if (!SpectrumStatusEffects.effectsAreGettingStacked && !entity.hasStatusEffect(this)) { super.onApplied(entity, attributes, amplifier); } } public void onRemoved(LivingEntity entity, AttributeContainer attributes, int amplifier) { - if(!SpectrumStatusEffects.effectsAreGettingStacked) { + if (!SpectrumStatusEffects.effectsAreGettingStacked) { super.onRemoved(entity, attributes, amplifier); } } public void tick(@NotNull LivingEntity entity, int amplifier, boolean scoredKillInTimeFrame) { AttributeContainer attributes = entity.getAttributes(); - if(attributes != null) { - SpectrumCommon.logWarning("Tick at " + entity.getWorld().getTime() + "; killed in time: " + scoredKillInTimeFrame); + if (attributes != null) { for (Map.Entry attributeEntry : this.getAttributeModifiers().entrySet()) { EntityAttributeInstance entityInstance = attributes.getCustomInstance(attributeEntry.getKey()); if (entityInstance != null) { @@ -72,7 +70,6 @@ public void tick(@NotNull LivingEntity entity, int amplifier, boolean scoredKill entityInstance.removeModifier(baseAttributeValue); entityInstance.addPersistentModifier(new EntityAttributeModifier(baseAttributeValue.getId(), baseAttributeValue.getName(), newValue, baseAttributeValue.getOperation())); entityInstance.getValue(); - SpectrumCommon.logWarning(".." + attributeEntry.getValue().getId() + ": " + entityInstance.getValue()); } } } diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/MilleniaDiseaseStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/MilleniaDiseaseStatusEffect.java index 3abd960824..2c90c8f1de 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/MilleniaDiseaseStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/MilleniaDiseaseStatusEffect.java @@ -27,12 +27,13 @@ public void applyUpdateEffect(LivingEntity entity, int amplifier) { EntityAttributeModifier newModifier = new EntityAttributeModifier(UUID.fromString(ATTRIBUTE_UUID_STRING), this::getTranslationKey, currentMod.getValue() - 1, EntityAttributeModifier.Operation.ADDITION); instance.addPersistentModifier(newModifier); instance.getValue(); // recalculate final value - if(entity.getHealth() > entity.getMaxHealth()) { + if (entity.getHealth() > entity.getMaxHealth()) { entity.setHealth(entity.getMaxHealth()); } } } } + @Override public boolean canApplyUpdateEffect(int duration, int amplifier) { return duration % Math.max(1, 40 - amplifier * 2) == 0; diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/NourishingStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/NourishingStatusEffect.java index bac93bb401..964d73ee44 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/NourishingStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/NourishingStatusEffect.java @@ -23,7 +23,7 @@ public void applyUpdateEffect(LivingEntity entity, int amplifier) { public boolean canApplyUpdateEffect(int duration, int amplifier) { int i = 200 >> amplifier; - if(i > 0) { + if (i > 0) { return duration % i == 0; } return true; diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/ScarredStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/ScarredStatusEffect.java index 57e334f6d0..64d5ee4549 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/ScarredStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/ScarredStatusEffect.java @@ -13,7 +13,7 @@ public ScarredStatusEffect(StatusEffectCategory category, int color) { @Override public void onApplied(LivingEntity entity, AttributeContainer attributes, int amplifier) { super.onApplied(entity, attributes, amplifier); - if(entity.isSprinting()) { + if (entity.isSprinting()) { entity.setSprinting(false); } } diff --git a/src/main/java/de/dafuqs/spectrum/status_effects/SpectrumStatusEffect.java b/src/main/java/de/dafuqs/spectrum/status_effects/SpectrumStatusEffect.java index 90a93e5dc4..973afd668b 100644 --- a/src/main/java/de/dafuqs/spectrum/status_effects/SpectrumStatusEffect.java +++ b/src/main/java/de/dafuqs/spectrum/status_effects/SpectrumStatusEffect.java @@ -18,11 +18,11 @@ public boolean canApplyUpdateEffect(int duration, int amplifier) { } public void applyUpdateEffect(LivingEntity entity, int amplifier) { - + } public void applyInstantEffect(@Nullable Entity source, @Nullable Entity attacker, LivingEntity target, int amplifier, double proximity) { - + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/ColoredSaplingGenerator.java b/src/main/java/de/dafuqs/spectrum/worldgen/ColoredSaplingGenerator.java index 6ed547d350..56d0df61ab 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/ColoredSaplingGenerator.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/ColoredSaplingGenerator.java @@ -2,12 +2,11 @@ import net.minecraft.block.sapling.SaplingGenerator; import net.minecraft.util.DyeColor; +import net.minecraft.util.math.random.Random; import net.minecraft.util.registry.RegistryEntry; import net.minecraft.world.gen.feature.ConfiguredFeature; import org.jetbrains.annotations.Nullable; -import java.util.Random; - public class ColoredSaplingGenerator extends SaplingGenerator { private final DyeColor dyeColor; diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/OminousSaplingGenerator.java b/src/main/java/de/dafuqs/spectrum/worldgen/OminousSaplingGenerator.java deleted file mode 100644 index d47be2169c..0000000000 --- a/src/main/java/de/dafuqs/spectrum/worldgen/OminousSaplingGenerator.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.dafuqs.spectrum.worldgen; - -import net.minecraft.block.sapling.SaplingGenerator; -import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.world.gen.feature.ConfiguredFeature; - -import java.util.Random; - -public class OminousSaplingGenerator extends SaplingGenerator { - - @Override - protected RegistryEntry> getTreeFeature(Random random, boolean bees) { - return null; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumConfiguredFeatures.java b/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumConfiguredFeatures.java index 055b109f72..31e35c151a 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumConfiguredFeatures.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumConfiguredFeatures.java @@ -1,52 +1,33 @@ package de.dafuqs.spectrum.worldgen; -import com.google.common.collect.ImmutableList; -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.blocks.conditional.ColoredLeavesBlock; -import de.dafuqs.spectrum.blocks.conditional.ColoredLogBlock; -import de.dafuqs.spectrum.blocks.conditional.MermaidsBrushBlock; -import de.dafuqs.spectrum.registries.SpectrumBlocks; -import de.dafuqs.spectrum.worldgen.features.WeightedRandomFeatureConfig; -import de.dafuqs.spectrum.worldgen.features.WeightedRandomFeaturePatchConfig; -import net.fabricmc.fabric.api.biome.v1.BiomeModifications; -import net.fabricmc.fabric.api.biome.v1.BiomeSelectionContext; -import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; -import net.fabricmc.fabric.api.tag.convention.v1.ConventionalBiomeTags; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.structure.rule.BlockMatchRuleTest; -import net.minecraft.structure.rule.RuleTest; -import net.minecraft.tag.BlockTags; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.minecraft.util.collection.DataPool; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.intprovider.BiasedToBottomIntProvider; -import net.minecraft.util.math.intprovider.ConstantIntProvider; -import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.Heightmap; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.YOffset; -import net.minecraft.world.gen.blockpredicate.BlockPredicate; +import com.google.common.collect.*; +import de.dafuqs.spectrum.*; +import de.dafuqs.spectrum.blocks.conditional.*; +import de.dafuqs.spectrum.blocks.conditional.colored_tree.*; +import de.dafuqs.spectrum.registries.*; +import de.dafuqs.spectrum.worldgen.features.*; +import net.fabricmc.fabric.api.biome.v1.*; +import net.fabricmc.fabric.api.tag.convention.v1.*; +import net.minecraft.block.*; +import net.minecraft.structure.rule.*; +import net.minecraft.tag.*; +import net.minecraft.util.*; +import net.minecraft.util.collection.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.intprovider.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.*; +import net.minecraft.world.gen.blockpredicate.*; import net.minecraft.world.gen.feature.*; -import net.minecraft.world.gen.feature.size.TwoLayersFeatureSize; -import net.minecraft.world.gen.foliage.BlobFoliagePlacer; +import net.minecraft.world.gen.feature.size.*; +import net.minecraft.world.gen.foliage.*; import net.minecraft.world.gen.placementmodifier.*; -import net.minecraft.world.gen.stateprovider.BlockStateProvider; -import net.minecraft.world.gen.stateprovider.RandomizedIntBlockStateProvider; -import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider; -import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider; -import net.minecraft.world.gen.trunk.StraightTrunkPlacer; -import org.jetbrains.annotations.NotNull; +import net.minecraft.world.gen.stateprovider.*; +import net.minecraft.world.gen.trunk.*; +import org.jetbrains.annotations.*; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.function.Predicate; +import java.util.*; import static de.dafuqs.spectrum.helpers.WorldgenHelper.*; @@ -54,7 +35,7 @@ public class SpectrumConfiguredFeatures { // Overworld public static RegistryEntry> CLOVER_PATCH; // for bonemealing - public static HashMap>> COLORED_TREE_CONFIGURED_FEATURES = new HashMap<>(); // for sapling growing + public static HashMap>> COLORED_TREE_CONFIGURED_FEATURES = new HashMap<>(); // for sapling growing public static RegistryEntry RANDOM_COLORED_TREES_FEATURE; // for worldgen placing public static final Identifier CITRINE_GEODE_IDENTIFIER = SpectrumCommon.locate("citrine_geode"); @@ -72,27 +53,27 @@ public static void register() { } private static void registerOres() { - BlockState sparklestoneOre = SpectrumBlocks.SPARKLESTONE_ORE.getDefaultState(); - BlockState deepslateSparklestoneOre = SpectrumBlocks.DEEPSLATE_SPARKLESTONE_ORE.getDefaultState(); + BlockState shimmerstoneOre = SpectrumBlocks.SHIMMERSTONE_ORE.getDefaultState(); + BlockState deepslateShimmerstoneOre = SpectrumBlocks.DEEPSLATE_SHIMMERSTONE_ORE.getDefaultState(); BlockState azuriteOre = SpectrumBlocks.AZURITE_ORE.getDefaultState(); BlockState deepslateAzuriteOre = SpectrumBlocks.DEEPSLATE_AZURITE_ORE.getDefaultState(); - BlockState scarletOre = SpectrumBlocks.SCARLET_ORE.getDefaultState(); - BlockState paleturOre = SpectrumBlocks.PALETUR_ORE.getDefaultState(); + BlockState stratineOre = SpectrumBlocks.STRATINE_ORE.getDefaultState(); + BlockState paltaeriaOre = SpectrumBlocks.PALTAERIA_ORE.getDefaultState(); - Identifier sparklestoneOreIdentifier = SpectrumCommon.locate("sparklestone_ore"); + Identifier shimmerstoneOreIdentifier = SpectrumCommon.locate("shimmerstone_ore"); Identifier azuriteOreIdentifier = SpectrumCommon.locate("azurite_ore"); - Identifier scarletOreIdentifier = SpectrumCommon.locate("scarlet_ore"); - Identifier paleturOreIdentifier = SpectrumCommon.locate("paletur_ore"); + Identifier stratineOreIdentifier = SpectrumCommon.locate("stratine_ore"); + Identifier paltaeriaOreIdentifier = SpectrumCommon.locate("paltaeria_ore"); - ImmutableList sparklestoneOreTargets = ImmutableList.of(OreFeatureConfig.createTarget(OreConfiguredFeatures.STONE_ORE_REPLACEABLES, sparklestoneOre), OreFeatureConfig.createTarget(OreConfiguredFeatures.DEEPSLATE_ORE_REPLACEABLES, deepslateSparklestoneOre)); + ImmutableList shimmerstoneOreTargets = ImmutableList.of(OreFeatureConfig.createTarget(OreConfiguredFeatures.STONE_ORE_REPLACEABLES, shimmerstoneOre), OreFeatureConfig.createTarget(OreConfiguredFeatures.DEEPSLATE_ORE_REPLACEABLES, deepslateShimmerstoneOre)); ImmutableList azuriteOreTargets = ImmutableList.of(OreFeatureConfig.createTarget(OreConfiguredFeatures.STONE_ORE_REPLACEABLES, azuriteOre), OreFeatureConfig.createTarget(OreConfiguredFeatures.DEEPSLATE_ORE_REPLACEABLES, deepslateAzuriteOre)); registerConfiguredAndPlacedFeature( - sparklestoneOreIdentifier, + shimmerstoneOreIdentifier, Feature.ORE, - new OreFeatureConfig(sparklestoneOreTargets, 8), - HeightRangePlacementModifier.uniform(YOffset.aboveBottom(48), YOffset.fixed(128)), // min and max height + new OreFeatureConfig(shimmerstoneOreTargets, 8), CountPlacementModifier.of(9), // number of veins per chunk + HeightRangePlacementModifier.uniform(YOffset.aboveBottom(48), YOffset.fixed(128)), // min and max height SquarePlacementModifier.of() // spread through the chunk ); @@ -100,33 +81,33 @@ private static void registerOres() { azuriteOreIdentifier, Feature.ORE, new OreFeatureConfig(azuriteOreTargets, 5, 0.5F), - HeightRangePlacementModifier.trapezoid(YOffset.getBottom(), YOffset.aboveBottom(32)), // min and max height CountPlacementModifier.of(6), // number of veins per chunk + HeightRangePlacementModifier.trapezoid(YOffset.getBottom(), YOffset.aboveBottom(32)), // min and max height SquarePlacementModifier.of() // spread through the chunk ); registerConfiguredAndPlacedFeature( - scarletOreIdentifier, + stratineOreIdentifier, Feature.ORE, - new OreFeatureConfig(OreConfiguredFeatures.BASE_STONE_NETHER, scarletOre, 6), + new OreFeatureConfig(OreConfiguredFeatures.BASE_STONE_NETHER, stratineOre, 6), + CountPlacementModifier.of(12), // number of veins per chunk HeightRangePlacementModifier.uniform(YOffset.aboveBottom(10), YOffset.belowTop(64)), // min and max height - CountPlacementModifier.of(18), // number of veins per chunk SquarePlacementModifier.of() // spread through the chunk ); registerConfiguredAndPlacedFeature( - paleturOreIdentifier, + paltaeriaOreIdentifier, Feature.ORE, - new OreFeatureConfig(Rules.END_STONE, paleturOre, 4, 0.3F), + new OreFeatureConfig(Rules.END_STONE, paltaeriaOre, 12, 0.3F), + CountPlacementModifier.of(4), // number of veins per chunk HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), // min and max height - CountPlacementModifier.of(16), // number of veins per chunk SquarePlacementModifier.of() // spread through the chunk ); - BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_OVERWORLD), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, sparklestoneOreIdentifier)); + BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_OVERWORLD), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, shimmerstoneOreIdentifier)); BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_OVERWORLD), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, azuriteOreIdentifier)); - BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_NETHER), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, scarletOreIdentifier)); - BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_THE_END), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, paleturOreIdentifier)); + BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_NETHER), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, stratineOreIdentifier)); + BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.IN_THE_END), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of(Registry.PLACED_FEATURE_KEY, paltaeriaOreIdentifier)); } private static void registerColoredTree(@NotNull DyeColor dyeColor) { @@ -145,75 +126,43 @@ private static void registerColoredTree(@NotNull DyeColor dyeColor) { } private static void registerColoredTrees() { - for (DyeColor dyeColor : DyeColor.values()) { registerColoredTree(dyeColor); } - + // Black/White and brown variants are not found in the wild and have to be created by the player - List treeList = new ArrayList<>(); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.BLUE)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.CYAN)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.GREEN)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.LIGHT_BLUE)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.LIME)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.MAGENTA)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.ORANGE)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.PINK)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.PURPLE)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.RED)); - treeList.add(COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.YELLOW)); - - List weightList = new ArrayList<>(); - weightList.add(25); - weightList.add(75); - weightList.add(25); - weightList.add(25); - weightList.add(25); - weightList.add(75); - weightList.add(25); - weightList.add(25); - weightList.add(25); - weightList.add(25); - weightList.add(75); - List treePlacementModifiers = List.of( VegetationPlacedFeatures.NOT_IN_SURFACE_WATER_MODIFIER, - (PlacedFeatures.OCEAN_FLOOR_HEIGHTMAP), - (BlockFilterPlacementModifier.of(BlockPredicate.wouldSurvive(SpectrumBlocks.RED_SAPLING.getDefaultState(), BlockPos.ORIGIN))) + PlacedFeatures.OCEAN_FLOOR_HEIGHTMAP, + BlockFilterPlacementModifier.of(BlockPredicate.wouldSurvive(SpectrumBlocks.RED_SAPLING.getDefaultState(), BlockPos.ORIGIN)) ); - - List placedTreeFeatures = new ArrayList<>(); - for (RegistryEntry configuredFeature : treeList) { - placedTreeFeatures.add(new PlacedFeature(configuredFeature, treePlacementModifiers)); - } - + DataPool.Builder placedTreeFeatureBuilder = DataPool.builder(); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.BLUE), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.CYAN), treePlacementModifiers), 75); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.GREEN), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.LIGHT_BLUE), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.LIME), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.MAGENTA), treePlacementModifiers), 75); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.ORANGE), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.PINK), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.PURPLE), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.RED), treePlacementModifiers), 25); + placedTreeFeatureBuilder.add(new PlacedFeature((RegistryEntry) COLORED_TREE_CONFIGURED_FEATURES.get(DyeColor.YELLOW), treePlacementModifiers), 75); + DataPool placedTreeFeatures = placedTreeFeatureBuilder.build(); + Identifier randomColoredTreesFeatureIdentifier = SpectrumCommon.locate("random_colored_trees"); // every x chunks RANDOM_COLORED_TREES_FEATURE = registerConfiguredAndPlacedFeature( randomColoredTreesFeatureIdentifier, SpectrumFeatures.WEIGHTED_RANDOM_FEATURE_PATCH, - new WeightedRandomFeaturePatchConfig(5, 4, 3, new WeightedRandomFeatureConfig(placedTreeFeatures, weightList)), + new WeightedRandomFeaturePatchConfig(5, 4, 3, new WeightedRandomFeatureConfig(placedTreeFeatures)), RarityFilterPlacementModifier.of(SpectrumCommon.CONFIG.ColoredTreePatchChanceChunk), // every x chunks HeightmapPlacementModifier.of(Heightmap.Type.WORLD_SURFACE_WG), BiomePlacementModifier.of(), SquarePlacementModifier.of() ); - Predicate treeBiomes = BiomeSelectors.categories( - Biome.Category.PLAINS, - Biome.Category.EXTREME_HILLS, - Biome.Category.JUNGLE, - Biome.Category.FOREST, - Biome.Category.SWAMP, - Biome.Category.MESA, - Biome.Category.MOUNTAIN, - Biome.Category.DESERT, - Biome.Category.ICY, - Biome.Category.SAVANNA, - Biome.Category.TAIGA); - - BiomeModifications.addFeature(treeBiomes, GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, randomColoredTreesFeatureIdentifier)); + BiomeModifications.addFeature(BiomeSelectors.tag(SpectrumBiomeTags.COLORED_TREES_GENERATING_IN), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, randomColoredTreesFeatureIdentifier)); } private static void registerGeodes() { @@ -305,8 +254,8 @@ private static void registerPlants() { PlacedFeatures.OCEAN_FLOOR_WG_HEIGHTMAP, BlockFilterPlacementModifier.of(BlockPredicate.allOf(BlockPredicate.wouldSurvive(SpectrumBlocks.MERMAIDS_BRUSH.getDefaultState(), BlockPos.ORIGIN))) ); - - BiomeModifications.addFeature(BiomeSelectors.categories(Biome.Category.OCEAN), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, mermaidsBrushIdentifier)); + + BiomeModifications.addFeature(BiomeSelectors.tag(BiomeTags.IS_OCEAN), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, mermaidsBrushIdentifier)); // QUITOXIC REEDS Identifier quitoxicReedsIdentifier = SpectrumCommon.locate("quitoxic_reeds"); @@ -320,11 +269,11 @@ private static void registerPlants() { BlockFilterPlacementModifier.of(BlockPredicate.allOf(BlockPredicate.wouldSurvive(SpectrumBlocks.QUITOXIC_REEDS.getDefaultState(), BlockPos.ORIGIN))) ); - BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.SWAMP), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, quitoxicReedsIdentifier)); + BiomeModifications.addFeature(BiomeSelectors.tag(SpectrumBiomeTags.QUITOXIC_REEDS_GENERATING_IN), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, quitoxicReedsIdentifier)); // CLOVER Identifier cloversIdentifier = SpectrumCommon.locate("clovers"); - DataPool cloverBlockDataPool = DataPool.builder().add(SpectrumBlocks.CLOVER.getDefaultState(), 9).add(SpectrumBlocks.FOUR_LEAF_CLOVER.getDefaultState(), 1).build(); + DataPool cloverBlockDataPool = DataPool.builder().add(SpectrumBlocks.CLOVER.getDefaultState(), 9).add(SpectrumBlocks.FOUR_LEAF_CLOVER.getDefaultState(), 1).build(); RandomPatchFeatureConfig cloverPatchFeatureConfig = ConfiguredFeatures.createRandomPatchFeatureConfig(Feature.SIMPLE_BLOCK, new SimpleBlockFeatureConfig(new WeightedBlockStateProvider(cloverBlockDataPool)), List.of(Blocks.GRASS_BLOCK), 4); CLOVER_PATCH = registerConfiguredFeature( cloversIdentifier, @@ -337,7 +286,7 @@ private static void registerPlants() { PlacedFeatures.WORLD_SURFACE_WG_HEIGHTMAP, BiomePlacementModifier.of() ); - BiomeModifications.addFeature(BiomeSelectors.categories(Biome.Category.PLAINS), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, cloversIdentifier)); + BiomeModifications.addFeature(BiomeSelectors.tag(ConventionalBiomeTags.PLAINS), GenerationStep.Feature.VEGETAL_DECORATION, RegistryKey.of(Registry.PLACED_FEATURE_KEY, cloversIdentifier)); } public static final class Rules { diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumFeatures.java b/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumFeatures.java index de2c05208a..8688b9ba8f 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumFeatures.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/SpectrumFeatures.java @@ -1,26 +1,34 @@ package de.dafuqs.spectrum.worldgen; import de.dafuqs.spectrum.worldgen.features.*; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.GeodeFeatureConfig; -import net.minecraft.world.gen.feature.OreFeatureConfig; +import net.minecraft.world.gen.feature.*; -import static de.dafuqs.spectrum.helpers.WorldgenHelper.registerFeature; +import static de.dafuqs.spectrum.helpers.WorldgenHelper.*; public class SpectrumFeatures { - + public static Feature WEIGHTED_RANDOM_FEATURE; public static Feature WEIGHTED_RANDOM_FEATURE_PATCH; public static Feature AIR_CHECK_GEODE; public static Feature RANDOM_BUDS; public static Feature AIR_CHECK_DISK; - + public static Feature GILLED_FUNGUS; + public static Feature PILLAR; + public static Feature COLUMNS; + public static Feature BLOB; + public static Feature RANDOM_BLOCK_PROXIMITY_PATCH; + public static void register() { WEIGHTED_RANDOM_FEATURE = registerFeature("weighted_random_feature", new WeightedRandomFeature(WeightedRandomFeatureConfig.CODEC)); WEIGHTED_RANDOM_FEATURE_PATCH = registerFeature("weighted_random_feature_patch", new WeightedRandomFeaturePatch(WeightedRandomFeaturePatchConfig.CODEC)); AIR_CHECK_GEODE = registerFeature("air_check_geode_feature", new SolidBlockCheckGeodeFeature(GeodeFeatureConfig.CODEC)); RANDOM_BUDS = registerFeature("random_buds", new RandomBudsFeature(RandomBudsFeaturesConfig.CODEC)); AIR_CHECK_DISK = registerFeature("air_check_disk", new AirCheckDiskFeature(OreFeatureConfig.CODEC)); + GILLED_FUNGUS = registerFeature("gilled_fungus", new GilledFungusFeature(GilledFungusFeatureConfig.CODEC)); + PILLAR = registerFeature("pillar", new PillarFeature(BlockStateFeatureConfig.CODEC)); + COLUMNS = registerFeature("columns", new ColumnsFeature(ColumnsFeatureConfig.CODEC)); + BLOB = registerFeature("crystal_formation", new CrystalFormationFeature(CrystalFormationFeatureFeatureConfig.CODEC)); + RANDOM_BLOCK_PROXIMITY_PATCH = registerFeature("random_block_proximity_patch", new RandomBlockProximityPatchFeature(RandomBlockProximityPatchFeatureConfig.CODEC)); } } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/AirCheckDiskFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/AirCheckDiskFeature.java index d88805c3a3..515e8ff245 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/AirCheckDiskFeature.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/AirCheckDiskFeature.java @@ -1,27 +1,26 @@ package de.dafuqs.spectrum.worldgen.features; -import com.mojang.serialization.Codec; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.OreFeature; -import net.minecraft.world.gen.feature.OreFeatureConfig; -import net.minecraft.world.gen.feature.util.FeatureContext; +import com.mojang.serialization.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; public class AirCheckDiskFeature extends OreFeature { - - public AirCheckDiskFeature(Codec codec) { - super(codec); - } - - public boolean generate(FeatureContext context) { - BlockPos blockPos = context.getOrigin(); - StructureWorldAccess structureWorldAccess = context.getWorld(); - - if(structureWorldAccess.getBlockState(blockPos).isAir()) { - return false; - } - - return super.generate(context); - } - + + public AirCheckDiskFeature(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + BlockPos blockPos = context.getOrigin(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + + if (structureWorldAccess.getBlockState(blockPos).isAir()) { + return false; + } + + return super.generate(context); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/BlockStateFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/BlockStateFeatureConfig.java new file mode 100644 index 0000000000..72cfdb7d68 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/BlockStateFeatureConfig.java @@ -0,0 +1,14 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.world.gen.feature.*; + +public record BlockStateFeatureConfig(BlockState blockState) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + BlockState.CODEC.fieldOf("state").forGetter((config) -> config.blockState) + ).apply(instance, BlockStateFeatureConfig::new)); + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/ColumnsFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/ColumnsFeature.java new file mode 100644 index 0000000000..7d8d953691 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/ColumnsFeature.java @@ -0,0 +1,138 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.google.common.collect.*; +import com.mojang.serialization.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; +import org.jetbrains.annotations.*; + +import java.util.*; + +/** + * a BasaltColumnsFeature with configurable block state + */ +public class ColumnsFeature extends Feature { + + private static final ImmutableList CANNOT_REPLACE_BLOCKS = ImmutableList.of(Blocks.LAVA, Blocks.BEDROCK, Blocks.MAGMA_BLOCK, Blocks.SOUL_SAND, Blocks.NETHER_BRICKS, Blocks.NETHER_BRICK_FENCE, Blocks.NETHER_BRICK_STAIRS, Blocks.NETHER_WART, Blocks.CHEST, Blocks.SPAWNER); + private static final int field_31495 = 5; + private static final int field_31496 = 50; + private static final int field_31497 = 8; + private static final int field_31498 = 15; + + public ColumnsFeature(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + int i = context.getGenerator().getSeaLevel(); + BlockPos blockPos = context.getOrigin(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + Random random = context.getRandom(); + ColumnsFeatureConfig config = context.getConfig(); + if (!canPlaceAt(structureWorldAccess, i, blockPos.mutableCopy())) { + return false; + } else { + int j = config.height().get(random); + boolean bl = random.nextFloat() < 0.9F; + int k = Math.min(j, bl ? field_31495 : field_31497); + int l = bl ? field_31496 : field_31498; + boolean bl2 = false; + + for (BlockPos blockPos2 : BlockPos.iterateRandomly(random, l, blockPos.getX() - k, blockPos.getY(), blockPos.getZ() - k, blockPos.getX() + k, blockPos.getY(), blockPos.getZ() + k)) { + int m = j - blockPos2.getManhattanDistance(blockPos); + if (m >= 0) { + bl2 |= this.placeColumn(structureWorldAccess, i, blockPos2, m, config.reach().get(random), config.blockState()); + } + } + + return bl2; + } + } + + private boolean placeColumn(WorldAccess world, int seaLevel, BlockPos pos, int height, int reach, BlockState blockState) { + boolean bl = false; + Iterator var7 = BlockPos.iterate(pos.getX() - reach, pos.getY(), pos.getZ() - reach, pos.getX() + reach, pos.getY(), pos.getZ() + reach).iterator(); + + while (true) { + int i; + BlockPos blockPos2; + do { + if (!var7.hasNext()) { + return bl; + } + + BlockPos blockPos = var7.next(); + i = blockPos.getManhattanDistance(pos); + blockPos2 = isAirOrFluid(world, seaLevel, blockPos) ? moveDownToGround(world, seaLevel, blockPos.mutableCopy(), i) : moveUpToAir(world, blockPos.mutableCopy(), i); + } while (blockPos2 == null); + + int j = height - i / 2; + + for (BlockPos.Mutable mutable = blockPos2.mutableCopy(); j >= 0; --j) { + if (isAirOrFluid(world, seaLevel, mutable)) { + this.setBlockState(world, mutable, blockState); + mutable.move(Direction.UP); + bl = true; + } else { + if (!world.getBlockState(mutable).isOf(blockState.getBlock())) { + break; + } + mutable.move(Direction.UP); + } + } + } + } + + @Nullable + private static BlockPos moveDownToGround(WorldAccess world, int seaLevel, BlockPos.Mutable mutablePos, int distance) { + while (mutablePos.getY() > world.getBottomY() + 1 && distance > 0) { + --distance; + if (canPlaceAt(world, seaLevel, mutablePos)) { + return mutablePos; + } + + mutablePos.move(Direction.DOWN); + } + + return null; + } + + private static boolean canPlaceAt(WorldAccess world, int seaLevel, BlockPos.Mutable mutablePos) { + if (!isAirOrFluid(world, seaLevel, mutablePos)) { + return false; + } else { + BlockState blockState = world.getBlockState(mutablePos.move(Direction.DOWN)); + mutablePos.move(Direction.UP); + return !blockState.isAir() && !CANNOT_REPLACE_BLOCKS.contains(blockState.getBlock()); + } + } + + @Nullable + private static BlockPos moveUpToAir(WorldAccess world, BlockPos.Mutable mutablePos, int distance) { + while (mutablePos.getY() < world.getTopY() && distance > 0) { + --distance; + BlockState blockState = world.getBlockState(mutablePos); + if (CANNOT_REPLACE_BLOCKS.contains(blockState.getBlock())) { + return null; + } + + if (blockState.isAir()) { + return mutablePos; + } + + mutablePos.move(Direction.UP); + } + + return null; + } + + private static boolean isAirOrFluid(WorldAccess world, int seaLevel, BlockPos pos) { + BlockState blockState = world.getBlockState(pos); + return blockState.isAir() || !blockState.getFluidState().isEmpty() && pos.getY() <= seaLevel; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/ColumnsFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/ColumnsFeatureConfig.java new file mode 100644 index 0000000000..caf8a3cb82 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/ColumnsFeatureConfig.java @@ -0,0 +1,18 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.util.math.intprovider.*; +import net.minecraft.world.gen.feature.*; + +public record ColumnsFeatureConfig(BlockState blockState, IntProvider reach, + IntProvider height) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + BlockState.CODEC.fieldOf("state").forGetter((config) -> config.blockState), + IntProvider.createValidatingCodec(1, 10).fieldOf("height").forGetter((config) -> config.height), + IntProvider.createValidatingCodec(1, 10).fieldOf("height").forGetter((config) -> config.height) + ).apply(instance, ColumnsFeatureConfig::new)); + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/CrystalFormationFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/CrystalFormationFeature.java new file mode 100644 index 0000000000..03446e13fb --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/CrystalFormationFeature.java @@ -0,0 +1,63 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; +import net.minecraft.world.gen.stateprovider.*; + +/** + * A configurable GlowstoneBlobFeature that can grow both up- and downward + */ +public class CrystalFormationFeature extends Feature { + + public CrystalFormationFeature(Codec configCodec) { + super(configCodec); + } + + public boolean generate(FeatureContext context) { + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + Random random = context.getRandom(); + if (!structureWorldAccess.isAir(blockPos)) { + return false; + } else { + CrystalFormationFeatureFeatureConfig config = context.getConfig(); + + boolean upwards = false; + if (config.canGrowUpwards() && structureWorldAccess.getBlockState(blockPos.down()).isIn(config.canStartOnBlocks())) { + upwards = true; + } else if (!config.canGrowDownwards() || !structureWorldAccess.getBlockState(blockPos.up()).isIn(config.canStartOnBlocks())) { + return false; + } + + BlockStateProvider stateProvider = config.blockStateProvider(); + int iterations = config.iterationCountProvider().get(random); + + structureWorldAccess.setBlockState(blockPos, stateProvider.getBlockState(random, blockPos), 2); + + for (int i = 0; i < iterations; ++i) { + BlockPos offsetPos = blockPos.add(random.nextInt(8) - random.nextInt(8), upwards ? random.nextInt(12) : -random.nextInt(12), random.nextInt(8) - random.nextInt(8)); + if (structureWorldAccess.getBlockState(offsetPos).isAir()) { + int directionTries = 0; + for (Direction direction : Direction.values()) { + if (structureWorldAccess.getBlockState(offsetPos.offset(direction)).isIn(config.canExtendOnBlocks())) { + ++directionTries; + } + if (directionTries > 1) { + break; + } + } + if (directionTries == 1) { + structureWorldAccess.setBlockState(offsetPos, stateProvider.getBlockState(random, blockPos), 2); + } + } + } + + return true; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/CrystalFormationFeatureFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/CrystalFormationFeatureFeatureConfig.java new file mode 100644 index 0000000000..0a31e5fdca --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/CrystalFormationFeatureFeatureConfig.java @@ -0,0 +1,26 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.util.math.intprovider.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.stateprovider.*; + +public record CrystalFormationFeatureFeatureConfig(IntProvider iterationCountProvider, + BlockStateProvider blockStateProvider, + RegistryEntryList canStartOnBlocks, + RegistryEntryList canExtendOnBlocks, boolean canGrowUpwards, + boolean canGrowDownwards) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + IntProvider.POSITIVE_CODEC.fieldOf("iterations").forGetter((config) -> config.iterationCountProvider), + BlockStateProvider.TYPE_CODEC.fieldOf("state_provider").forGetter((config) -> config.blockStateProvider), + RegistryCodecs.entryList(Registry.BLOCK_KEY).fieldOf("can_start_on").forGetter((config) -> config.canStartOnBlocks), + RegistryCodecs.entryList(Registry.BLOCK_KEY).fieldOf("can_extend_on").forGetter((config) -> config.canStartOnBlocks), + Codec.BOOL.fieldOf("can_grow_upwards").forGetter((config) -> config.canGrowUpwards), + Codec.BOOL.fieldOf("can_grow_downwards").forGetter((config) -> config.canGrowDownwards) + ).apply(instance, CrystalFormationFeatureFeatureConfig::new)); + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/GilledFungusFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/GilledFungusFeature.java new file mode 100644 index 0000000000..030f48f34c --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/GilledFungusFeature.java @@ -0,0 +1,107 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.chunk.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; + +public class GilledFungusFeature extends Feature { + + public GilledFungusFeature(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + GilledFungusFeatureConfig hugeFungusFeatureConfig = context.getConfig(); + Block validBaseBlock = hugeFungusFeatureConfig.validBaseBlock().getBlock(); + BlockState baseBlock = structureWorldAccess.getBlockState(blockPos.down()); + + if (!baseBlock.isOf(validBaseBlock)) { + return false; + } + + Random random = context.getRandom(); + ChunkGenerator chunkGenerator = context.getGenerator(); + + int stemHeight = MathHelper.nextInt(random, 4, 9); + if (random.nextInt(12) == 0) { + stemHeight *= 2; + } + if (blockPos.getY() + stemHeight + 1 >= chunkGenerator.getWorldHeight()) { + return false; + } + + structureWorldAccess.setBlockState(blockPos, Blocks.AIR.getDefaultState(), 4); + this.generateStem(structureWorldAccess, hugeFungusFeatureConfig, blockPos, stemHeight); + this.generateHat(structureWorldAccess, random, hugeFungusFeatureConfig, blockPos, stemHeight); + return true; + } + + private static boolean isReplaceable(WorldAccess world, BlockPos pos, boolean replacePlants) { + return world.testBlockState(pos, (state) -> { + Material material = state.getMaterial(); + return state.getMaterial().isReplaceable() || replacePlants && material == Material.PLANT; + }); + } + + private void generateStem(WorldAccess world, GilledFungusFeatureConfig config, BlockPos pos, int stemHeight) { + BlockPos.Mutable mutable = new BlockPos.Mutable(); + BlockState blockState = config.stemState(); + int i = 0; + for (int x = -i; x <= i; ++x) { + for (int z = -i; z <= i; ++z) { + for (int y = 0; y < stemHeight; ++y) { + mutable.set(pos, x, y, z); + if (isReplaceable(world, mutable, true)) { + this.setBlockState(world, mutable, blockState); + } + } + } + } + } + + private void generateHat(WorldAccess world, Random random, GilledFungusFeatureConfig config, BlockPos pos, int stemHeight) { + BlockPos.Mutable mutable = new BlockPos.Mutable(); + int hatWidth = Math.min(random.nextInt(2 + stemHeight / 4) + 3, 4); + int currentHatWidth = hatWidth; + int outerThreshold = hatWidth / 2; + + for (int y = 0; y <= hatWidth; ++y) { + for (int x = -currentHatWidth; x <= currentHatWidth; ++x) { + for (int z = -currentHatWidth; z <= currentHatWidth; ++z) { + + boolean isCorner = Math.abs(x) == currentHatWidth && Math.abs(z) == currentHatWidth; + if (isCorner) { + continue; + } + + mutable.set(pos, x, stemHeight + y, z); + if (isReplaceable(world, mutable, false)) { + boolean isInnerCorner = Math.abs(x) == currentHatWidth - 1 && Math.abs(z) == currentHatWidth - 1; + boolean isInner = Math.abs(x) < currentHatWidth && Math.abs(z) < currentHatWidth; + boolean isLowestLevel = y == 0; + + if (x == 0 && z == 0) { + this.setBlockState(world, mutable, currentHatWidth < 2 ? config.capState() : config.stemState()); + } else if (isInner && !isInnerCorner) { + if (!isLowestLevel || Math.abs(x) > outerThreshold || Math.abs(z) > outerThreshold) { + BlockState gillsState = config.gillsState().with(PillarBlock.AXIS, Math.abs(x) < Math.abs(z) ? Direction.Axis.X : Direction.Axis.Z); + this.setBlockState(world, mutable, gillsState); + } + } else { + this.setBlockState(world, mutable, config.capState()); + } + } + } + } + currentHatWidth -= 1; + } + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/GilledFungusFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/GilledFungusFeatureConfig.java new file mode 100644 index 0000000000..81f63f475d --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/GilledFungusFeatureConfig.java @@ -0,0 +1,18 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.world.gen.feature.*; + +public record GilledFungusFeatureConfig(BlockState validBaseBlock, BlockState capState, BlockState gillsState, + BlockState stemState) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + BlockState.CODEC.fieldOf("valid_base_block").forGetter((config) -> config.validBaseBlock), + BlockState.CODEC.fieldOf("cap_state").forGetter((config) -> config.capState), + BlockState.CODEC.fieldOf("gills_state").forGetter((config) -> config.gillsState), + BlockState.CODEC.fieldOf("stem_state").forGetter((config) -> config.stemState) + ).apply(instance, GilledFungusFeatureConfig::new)); + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/GroundPatchFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/GroundPatchFeatureConfig.java new file mode 100644 index 0000000000..5ebfc8eeed --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/GroundPatchFeatureConfig.java @@ -0,0 +1,32 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.tag.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.intprovider.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.stateprovider.*; + +public record GroundPatchFeatureConfig(TagKey replaceable, BlockStateProvider groundState, + RegistryEntry vegetationFeature, VerticalSurfaceType surface, + IntProvider depth, float extraBottomBlockChance, int verticalRange, + float vegetationChance, IntProvider horizontalRadius, + float extraEdgeColumnChance) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + TagKey.codec(Registry.BLOCK_KEY).fieldOf("replaceable").forGetter((config) -> config.replaceable), + BlockStateProvider.TYPE_CODEC.fieldOf("ground_state").forGetter((config) -> config.groundState), + PlacedFeature.REGISTRY_CODEC.fieldOf("vegetation_feature").forGetter((config) -> config.vegetationFeature), + VerticalSurfaceType.CODEC.fieldOf("surface").forGetter((config) -> config.surface), + IntProvider.createValidatingCodec(1, 128).fieldOf("depth").forGetter((config) -> config.depth), + Codec.floatRange(0.0F, 1.0F).fieldOf("extra_bottom_block_chance").forGetter((config) -> config.extraBottomBlockChance), + Codec.intRange(1, 256).fieldOf("vertical_range").forGetter((config) -> config.verticalRange), + Codec.floatRange(0.0F, 1.0F).fieldOf("vegetation_chance").forGetter((config) -> config.vegetationChance), + IntProvider.VALUE_CODEC.fieldOf("xz_radius").forGetter((config) -> config.horizontalRadius), + Codec.floatRange(0.0F, 1.0F).fieldOf("extra_edge_column_chance").forGetter((config) -> config.extraEdgeColumnChance) + ).apply(instance, GroundPatchFeatureConfig::new)); + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/PillarFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/PillarFeature.java new file mode 100644 index 0000000000..b2080da79f --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/PillarFeature.java @@ -0,0 +1,96 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; +import org.jetbrains.annotations.*; + +// a version of BasaltPillarFeature with configurable block state +public class PillarFeature extends Feature { + + public PillarFeature(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + BlockPos blockPos = context.getOrigin(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + Random random = context.getRandom(); + if (structureWorldAccess.isAir(blockPos) && !structureWorldAccess.isAir(blockPos.up())) { + BlockState blockState = context.getConfig().blockState(); + + BlockPos.Mutable mutable = blockPos.mutableCopy(); + BlockPos.Mutable mutable2 = blockPos.mutableCopy(); + boolean bl = true; + boolean bl2 = true; + boolean bl3 = true; + boolean bl4 = true; + + while (structureWorldAccess.isAir(mutable)) { + if (structureWorldAccess.isOutOfHeightLimit(mutable)) { + return true; + } + + structureWorldAccess.setBlockState(mutable, blockState, 2); + bl = bl && this.stopOrPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.NORTH), blockState); + bl2 = bl2 && this.stopOrPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.SOUTH), blockState); + bl3 = bl3 && this.stopOrPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.WEST), blockState); + bl4 = bl4 && this.stopOrPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.EAST), blockState); + mutable.move(Direction.DOWN); + } + + mutable.move(Direction.UP); + this.tryPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.NORTH), blockState); + this.tryPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.SOUTH), blockState); + this.tryPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.WEST), blockState); + this.tryPlace(structureWorldAccess, random, mutable2.set(mutable, Direction.EAST), blockState); + mutable.move(Direction.DOWN); + BlockPos.Mutable mutable3 = new BlockPos.Mutable(); + + for (int x = -3; x < 4; ++x) { + for (int z = -3; z < 4; ++z) { + int k = MathHelper.abs(x) * MathHelper.abs(z); + if (random.nextInt(10) < 10 - k) { + mutable3.set(mutable.add(x, 0, z)); + int l = 3; + + while (structureWorldAccess.isAir(mutable2.set(mutable3, Direction.DOWN))) { + mutable3.move(Direction.DOWN); + --l; + if (l <= 0) { + break; + } + } + + if (!structureWorldAccess.isAir(mutable2.set(mutable3, Direction.DOWN))) { + structureWorldAccess.setBlockState(mutable3, Blocks.BASALT.getDefaultState(), 2); + } + } + } + } + + return true; + } else { + return false; + } + } + + private void tryPlace(WorldAccess world, @NotNull Random random, BlockPos pos, BlockState blockState) { + if (random.nextBoolean()) { + world.setBlockState(pos, blockState, 2); + } + } + + private boolean stopOrPlace(WorldAccess world, @NotNull Random random, BlockPos pos, BlockState blockState) { + if (random.nextInt(10) != 0) { + world.setBlockState(pos, blockState, 2); + return true; + } + return false; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBlockProximityPatchFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBlockProximityPatchFeature.java new file mode 100644 index 0000000000..35f22c144d --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBlockProximityPatchFeature.java @@ -0,0 +1,55 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; + +public class RandomBlockProximityPatchFeature extends Feature { + + public RandomBlockProximityPatchFeature(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + RandomBlockProximityPatchFeatureConfig randomPatchFeatureConfig = context.getConfig(); + Random random = context.getRandom(); + BlockPos blockPos = context.getOrigin(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + + int placedFeatureCount = 0; + BlockPos.Mutable mutable = new BlockPos.Mutable(); + int xzSpreadPlus1 = randomPatchFeatureConfig.xzSpread() + 1; + int ySpreadPlus1 = randomPatchFeatureConfig.ySpread() + 1; + + for (int l = 0; l < randomPatchFeatureConfig.tries(); ++l) { + mutable.set(blockPos, random.nextInt(xzSpreadPlus1) - random.nextInt(xzSpreadPlus1), random.nextInt(ySpreadPlus1) - random.nextInt(ySpreadPlus1), random.nextInt(xzSpreadPlus1) - random.nextInt(xzSpreadPlus1)); + if (closeToBlock(structureWorldAccess, mutable, randomPatchFeatureConfig.blockScanRange(), randomPatchFeatureConfig.blocksToCheckFor())) { + if (randomPatchFeatureConfig.closeToBlockFeature().value().generateUnregistered(structureWorldAccess, context.getGenerator(), random, mutable)) { + ++placedFeatureCount; + } + } else { + if (randomPatchFeatureConfig.fallbackFeature().value().generateUnregistered(structureWorldAccess, context.getGenerator(), random, mutable)) { + ++placedFeatureCount; + } + } + + } + + return placedFeatureCount > 0; + } + + protected boolean closeToBlock(StructureWorldAccess world, BlockPos pos, int searchRange, RegistryEntryList blocksToSearchFor) { + for (BlockPos currentPos : BlockPos.iterateOutwards(pos, searchRange, searchRange, searchRange)) { + if (world.getBlockState(currentPos).isIn(blocksToSearchFor)) { + return true; + } + } + return false; + } + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBlockProximityPatchFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBlockProximityPatchFeatureConfig.java new file mode 100644 index 0000000000..8286fd07f6 --- /dev/null +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBlockProximityPatchFeatureConfig.java @@ -0,0 +1,25 @@ +package de.dafuqs.spectrum.worldgen.features; + +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.util.dynamic.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.gen.feature.*; + +public record RandomBlockProximityPatchFeatureConfig(int tries, int xzSpread, int ySpread, + RegistryEntryList blocksToCheckFor, int blockScanRange, + RegistryEntry closeToBlockFeature, + RegistryEntry fallbackFeature) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + Codecs.POSITIVE_INT.fieldOf("tries").orElse(128).forGetter(RandomBlockProximityPatchFeatureConfig::tries), + Codecs.NONNEGATIVE_INT.fieldOf("xz_spread").orElse(7).forGetter(RandomBlockProximityPatchFeatureConfig::xzSpread), + Codecs.NONNEGATIVE_INT.fieldOf("y_spread").orElse(3).forGetter(RandomBlockProximityPatchFeatureConfig::ySpread), + RegistryCodecs.entryList(Registry.BLOCK_KEY).fieldOf("blocks_to_find").forGetter(RandomBlockProximityPatchFeatureConfig::blocksToCheckFor), + Codecs.NONNEGATIVE_INT.fieldOf("block_scan_range").orElse(1).forGetter(RandomBlockProximityPatchFeatureConfig::ySpread), + PlacedFeature.REGISTRY_CODEC.fieldOf("close_to_block_feature").forGetter(RandomBlockProximityPatchFeatureConfig::closeToBlockFeature), + PlacedFeature.REGISTRY_CODEC.fieldOf("fallback_feature").forGetter(RandomBlockProximityPatchFeatureConfig::fallbackFeature) + ).apply(instance, RandomBlockProximityPatchFeatureConfig::new)); + +} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeature.java index e03877474c..5088401a31 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeature.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeature.java @@ -1,105 +1,94 @@ package de.dafuqs.spectrum.worldgen.features; -import com.google.common.collect.Lists; -import com.mojang.serialization.Codec; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; +import com.mojang.serialization.*; +import net.minecraft.block.*; import net.minecraft.state.property.Properties; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.util.FeatureContext; - -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import java.util.stream.Collectors; +import net.minecraft.util.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; + +import java.util.*; public class RandomBudsFeature extends Feature { - - public RandomBudsFeature(Codec configCodec) { - super(configCodec); - } - - @Override - public boolean generate(FeatureContext context) { - StructureWorldAccess structureWorldAccess = context.getWorld(); - BlockPos blockPos = context.getOrigin(); - Random random = context.getRandom(); - RandomBudsFeaturesConfig randomBudsFeaturesConfig = (RandomBudsFeaturesConfig)context.getConfig(); - if (!isAirOrWater(structureWorldAccess.getBlockState(blockPos))) { - return false; - } else { - List directions = shuffleDirections(randomBudsFeaturesConfig, random); - if (generate(structureWorldAccess, blockPos, structureWorldAccess.getBlockState(blockPos), randomBudsFeaturesConfig, random, directions)) { - return true; - } else { - BlockPos.Mutable mutable = blockPos.mutableCopy(); - Iterator var8 = directions.iterator(); - - while(var8.hasNext()) { - Direction direction = (Direction)var8.next(); - mutable.set(blockPos); - List list2 = shuffleDirections(randomBudsFeaturesConfig, random, direction.getOpposite()); - - for(int i = 0; i < randomBudsFeaturesConfig.searchRange; ++i) { - mutable.set(blockPos, direction); - BlockState blockState = structureWorldAccess.getBlockState(mutable); - if (!isAirOrWater(blockState) && !blockState.isOf(Blocks.GLOW_LICHEN)) { - break; - } - - if (generate(structureWorldAccess, mutable, blockState, randomBudsFeaturesConfig, random, list2)) { - return true; - } - } - } - - return false; - } - } - } - - public static boolean generate(StructureWorldAccess world, BlockPos pos, BlockState state, RandomBudsFeaturesConfig config, Random random, List directions) { - BlockPos.Mutable mutable = pos.mutableCopy(); - - Iterator var7 = directions.iterator(); - Direction direction; - BlockState blockState; - do { - if (!var7.hasNext()) { - return false; - } - - direction = var7.next(); - blockState = world.getBlockState(mutable.set(pos, direction)); - } while(!blockState.isIn(config.canPlaceOn)); - - BlockState stateToPlace = config.blockStates.get(random.nextInt(config.blockStates.size())).with(Properties.FACING, Direction.random(random)); - if (stateToPlace.canPlaceAt(world, pos)) { - world.setBlockState(pos, stateToPlace, 3); - world.getChunk(pos).markBlockForPostProcessing(pos); - return true; - } - return false; - } - - private static boolean isAirOrWater(BlockState state) { - return state.isAir() || state.isOf(Blocks.WATER); - } - - public static List shuffleDirections(RandomBudsFeaturesConfig config, Random random) { - List list = Lists.newArrayList(config.directions); - Collections.shuffle(list, random); - return list; - } - - public static List shuffleDirections(RandomBudsFeaturesConfig config, Random random, Direction excluded) { - List list = config.directions.stream().filter((direction) -> direction != excluded).collect(Collectors.toList()); - Collections.shuffle(list, random); - return list; - } - + + public RandomBudsFeature(Codec configCodec) { + super(configCodec); + } + + @Override + public boolean generate(FeatureContext context) { + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + Random random = context.getRandom(); + RandomBudsFeaturesConfig randomBudsFeaturesConfig = (RandomBudsFeaturesConfig) context.getConfig(); + if (!isAirOrWater(structureWorldAccess.getBlockState(blockPos))) { + return false; + } else { + List directions = shuffleDirections(randomBudsFeaturesConfig, random); + if (generate(structureWorldAccess, blockPos, structureWorldAccess.getBlockState(blockPos), randomBudsFeaturesConfig, random, directions)) { + return true; + } else { + BlockPos.Mutable mutable = blockPos.mutableCopy(); + + for (Direction direction : directions) { + mutable.set(blockPos); + List list2 = shuffleDirections(randomBudsFeaturesConfig, random, direction.getOpposite()); + + for (int i = 0; i < randomBudsFeaturesConfig.searchRange; ++i) { + mutable.set(blockPos, direction); + BlockState blockState = structureWorldAccess.getBlockState(mutable); + if (!isAirOrWater(blockState) && !blockState.isOf(Blocks.GLOW_LICHEN)) { + break; + } + + if (generate(structureWorldAccess, mutable, blockState, randomBudsFeaturesConfig, random, list2)) { + return true; + } + } + } + + return false; + } + } + } + + public static boolean generate(StructureWorldAccess world, BlockPos pos, BlockState state, RandomBudsFeaturesConfig config, Random random, List directions) { + BlockPos.Mutable mutable = pos.mutableCopy(); + + Iterator var7 = directions.iterator(); + Direction direction; + BlockState blockState; + do { + if (!var7.hasNext()) { + return false; + } + + direction = var7.next(); + blockState = world.getBlockState(mutable.set(pos, direction)); + } while (!blockState.isIn(config.canPlaceOn)); + + BlockState stateToPlace = config.blocks.get(random.nextInt(config.blocks.size())).getDefaultState().with(Properties.FACING, Direction.random(random)); + if (stateToPlace.canPlaceAt(world, pos)) { + world.setBlockState(pos, stateToPlace, 3); + world.getChunk(pos).markBlockForPostProcessing(pos); + return true; + } + return false; + } + + private static boolean isAirOrWater(BlockState state) { + return state.isAir() || state.isOf(Blocks.WATER); + } + + public static List shuffleDirections(RandomBudsFeaturesConfig config, Random random) { + return Util.copyShuffled(config.directions.stream(), random); + } + + public static List shuffleDirections(RandomBudsFeaturesConfig config, Random random, Direction excluded) { + return Util.copyShuffled(config.directions.stream().filter((direction) -> direction != excluded), random); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeaturesConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeaturesConfig.java index 5190f21031..3bc4f2db9c 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeaturesConfig.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/RandomBudsFeaturesConfig.java @@ -1,69 +1,54 @@ package de.dafuqs.spectrum.worldgen.features; -import com.google.common.collect.Lists; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.util.dynamic.Codecs; -import net.minecraft.util.math.Direction; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryCodecs; -import net.minecraft.util.registry.RegistryEntryList; -import net.minecraft.world.gen.feature.FeatureConfig; +import com.google.common.collect.*; +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.block.*; +import net.minecraft.util.dynamic.*; +import net.minecraft.util.math.*; +import net.minecraft.util.registry.*; +import net.minecraft.world.gen.feature.*; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; public class RandomBudsFeaturesConfig implements FeatureConfig { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group(Codec.intRange(1, 64).fieldOf("search_range").orElse(10).forGetter((config) -> { - return config.searchRange; - }), Codec.BOOL.fieldOf("can_place_on_floor").orElse(false).forGetter((config) -> { - return config.placeOnFloor; - }), Codec.BOOL.fieldOf("can_place_on_ceiling").orElse(false).forGetter((config) -> { - return config.placeOnCeiling; - }), Codec.BOOL.fieldOf("can_place_on_wall").orElse(false).forGetter((config) -> { - return config.placeOnWalls; - }), RegistryCodecs.entryList(Registry.BLOCK_KEY).fieldOf("can_be_placed_on").forGetter((config) -> { - return config.canPlaceOn; - }), Codecs.nonEmptyList(BlockState.CODEC.listOf()).fieldOf("blocks").forGetter((config) -> { - return config.blockStates; - })).apply(instance, RandomBudsFeaturesConfig::new); - }); - public final int searchRange; - public final boolean placeOnFloor; - public final boolean placeOnCeiling; - public final boolean placeOnWalls; - public final RegistryEntryList canPlaceOn; - public final List directions; - public final List blockStates; - - public RandomBudsFeaturesConfig(int searchRange, boolean placeOnFloor, boolean placeOnCeiling, boolean placeOnWalls, RegistryEntryList canPlaceOn, List blockStates) { - this.searchRange = searchRange; - this.placeOnFloor = placeOnFloor; - this.placeOnCeiling = placeOnCeiling; - this.placeOnWalls = placeOnWalls; - this.canPlaceOn = canPlaceOn; - this.blockStates = blockStates; - List list = Lists.newArrayList(); - if (placeOnCeiling) { - list.add(Direction.UP); - } - - if (placeOnFloor) { - list.add(Direction.DOWN); - } - - if (placeOnWalls) { - Direction.Type var10000 = Direction.Type.HORIZONTAL; - Objects.requireNonNull(list); - var10000.forEach(list::add); - } - - this.directions = Collections.unmodifiableList(list); - } - + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + Codec.intRange(1, 64).fieldOf("search_range").orElse(10).forGetter((config) -> config.searchRange), + Codec.BOOL.fieldOf("can_place_on_floor").orElse(false).forGetter((config) -> config.placeOnFloor), + Codec.BOOL.fieldOf("can_place_on_ceiling").orElse(false).forGetter((config) -> config.placeOnCeiling), + Codec.BOOL.fieldOf("can_place_on_wall").orElse(false).forGetter((config) -> config.placeOnWalls), + RegistryCodecs.entryList(Registry.BLOCK_KEY).fieldOf("can_be_placed_on").forGetter((config) -> config.canPlaceOn), + Codecs.nonEmptyList(Registry.BLOCK.getCodec().listOf()).fieldOf("blocks").forGetter((config) -> config.blocks) + ).apply(instance, RandomBudsFeaturesConfig::new)); + + public final int searchRange; + public final boolean placeOnFloor; + public final boolean placeOnCeiling; + public final boolean placeOnWalls; + public final RegistryEntryList canPlaceOn; + public final List directions; + public final List blocks; + + public RandomBudsFeaturesConfig(int searchRange, boolean placeOnFloor, boolean placeOnCeiling, boolean placeOnWalls, RegistryEntryList canPlaceOn, List blocks) { + this.searchRange = searchRange; + this.placeOnFloor = placeOnFloor; + this.placeOnCeiling = placeOnCeiling; + this.placeOnWalls = placeOnWalls; + this.canPlaceOn = canPlaceOn; + this.blocks = blocks; + List list = Lists.newArrayList(); + if (placeOnCeiling) { + list.add(Direction.UP); + } + if (placeOnFloor) { + list.add(Direction.DOWN); + } + if (placeOnWalls) { + Objects.requireNonNull(list); + Direction.Type.HORIZONTAL.forEach(list::add); + } + this.directions = Collections.unmodifiableList(list); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/SolidBlockCheckGeodeFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/SolidBlockCheckGeodeFeature.java index 916bada3cc..d4da7aebe0 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/SolidBlockCheckGeodeFeature.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/SolidBlockCheckGeodeFeature.java @@ -1,52 +1,50 @@ package de.dafuqs.spectrum.worldgen.features; -import com.mojang.serialization.Codec; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.GeodeFeature; -import net.minecraft.world.gen.feature.GeodeFeatureConfig; -import net.minecraft.world.gen.feature.util.FeatureContext; +import com.mojang.serialization.*; +import net.minecraft.block.*; +import net.minecraft.util.math.*; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; public class SolidBlockCheckGeodeFeature extends GeodeFeature { - - private static final int MAX_NON_SOLID_BLOCKS = 3; - - public SolidBlockCheckGeodeFeature(Codec configCodec) { - super(configCodec); - } - - @Override - public boolean generate(FeatureContext context) { - int airBlocks = 0; - - StructureWorldAccess world = context.getWorld(); - BlockPos sourcePos = context.getOrigin(); - int distance = (int) context.getConfig().layerThicknessConfig.outerLayer; - for (Direction direction : Direction.values()) { - BlockPos offsetPos = sourcePos.offset(direction, distance); - BlockState blockStateAtPos = world.getBlockState(offsetPos); - - if (blockStateAtPos.isAir() || !blockStateAtPos.isFullCube(world, offsetPos)) { - airBlocks++; - if (airBlocks > MAX_NON_SOLID_BLOCKS) { - return false; - } - } - } - - // one additional check double as high to prevent them sticking out of the ground a bit more often - BlockPos upperPos = sourcePos.up(distance + 4); - BlockState blockStateAtPos = world.getBlockState(upperPos); - if (blockStateAtPos.isAir() || !blockStateAtPos.isFullCube(world, upperPos)) { - airBlocks++; - if (airBlocks > MAX_NON_SOLID_BLOCKS) { - return false; - } - } - - return super.generate(context); - } - + + private static final int MAX_NON_SOLID_BLOCKS = 3; + + public SolidBlockCheckGeodeFeature(Codec configCodec) { + super(configCodec); + } + + @Override + public boolean generate(FeatureContext context) { + int airBlocks = 0; + + StructureWorldAccess world = context.getWorld(); + BlockPos sourcePos = context.getOrigin(); + int distance = (int) context.getConfig().layerThicknessConfig.outerLayer; + for (Direction direction : Direction.values()) { + BlockPos offsetPos = sourcePos.offset(direction, distance); + BlockState blockStateAtPos = world.getBlockState(offsetPos); + + if (blockStateAtPos.isAir() || !blockStateAtPos.isFullCube(world, offsetPos)) { + airBlocks++; + if (airBlocks > MAX_NON_SOLID_BLOCKS) { + return false; + } + } + } + + // one additional check double as high to prevent them sticking out of the ground a bit more often + BlockPos upperPos = sourcePos.up(distance + 4); + BlockState blockStateAtPos = world.getBlockState(upperPos); + if (blockStateAtPos.isAir() || !blockStateAtPos.isFullCube(world, upperPos)) { + airBlocks++; + if (airBlocks > MAX_NON_SOLID_BLOCKS) { + return false; + } + } + + return super.generate(context); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeature.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeature.java index a6b7e23bb4..4714a7bf74 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeature.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeature.java @@ -1,28 +1,28 @@ package de.dafuqs.spectrum.worldgen.features; -import com.mojang.serialization.Codec; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.PlacedFeature; -import net.minecraft.world.gen.feature.util.FeatureContext; +import com.mojang.serialization.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; -import java.util.Random; +import java.util.*; public class WeightedRandomFeature extends Feature { - - public WeightedRandomFeature(Codec codec) { - super(codec); - } - - public boolean generate(FeatureContext context) { - Random random = context.getRandom(); - StructureWorldAccess structureWorldAccess = context.getWorld(); - BlockPos blockPos = context.getOrigin(); - - WeightedRandomFeatureConfig weightedRandomFeatureConfig = context.getConfig(); - PlacedFeature randomPlacedFeature = weightedRandomFeatureConfig.getWeightedRandomFeature(context.getRandom()); - return randomPlacedFeature.generateUnregistered(structureWorldAccess, context.getGenerator(), random, blockPos); - } - + + public WeightedRandomFeature(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + Random random = context.getRandom(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + + WeightedRandomFeatureConfig weightedRandomFeatureConfig = context.getConfig(); + Optional randomPlacedFeature = weightedRandomFeatureConfig.features().getDataOrEmpty(context.getRandom()); + return randomPlacedFeature.map(placedFeature -> placedFeature.generateUnregistered(structureWorldAccess, context.getGenerator(), random, blockPos)).orElse(false); + } + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeatureConfig.java index 9de413b360..f836ac6d19 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeatureConfig.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeatureConfig.java @@ -1,53 +1,14 @@ package de.dafuqs.spectrum.worldgen.features; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.util.dynamic.Codecs; -import net.minecraft.world.gen.feature.FeatureConfig; -import net.minecraft.world.gen.feature.PlacedFeature; +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.util.collection.*; +import net.minecraft.world.gen.feature.*; -import java.util.List; -import java.util.Random; +public record WeightedRandomFeatureConfig(DataPool features) implements FeatureConfig { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + DataPool.createCodec(PlacedFeature.CODEC).fieldOf("features").forGetter((weightedRandomFeatureConfig) -> weightedRandomFeatureConfig.features) + ).apply(instance, WeightedRandomFeatureConfig::new)); -public class WeightedRandomFeatureConfig implements FeatureConfig { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group( - Codecs.nonEmptyList(PlacedFeature.CODEC.listOf()).fieldOf("features").forGetter((weightedRandomFeatureConfig) -> { - return weightedRandomFeatureConfig.features; - }), Codecs.nonEmptyList(Codecs.POSITIVE_INT.listOf()).fieldOf("weights").forGetter((weightedRandomFeatureConfig) -> { - return weightedRandomFeatureConfig.weights; - })).apply(instance, WeightedRandomFeatureConfig::new); - }); - public final List features; - public final List weights; - public final int weightSum; - - public WeightedRandomFeatureConfig(List features, List weights) { - this.features = features; - this.weights = weights; - int sum = 0; - for (int i : weights) { - sum += i; - } - this.weightSum = sum; - } - - public PlacedFeature getWeightedRandomFeature(Random random) { - int r = random.nextInt(weightSum); - int i = 0; - int currWeight = 0; - - while (true) { - currWeight += weights.get(i); - - if (currWeight > r) { - return features.get(i); - } - - i++; - } - - } - } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatch.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatch.java index 609f4ed23d..255961e1f1 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatch.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatch.java @@ -1,37 +1,39 @@ package de.dafuqs.spectrum.worldgen.features; -import com.mojang.serialization.Codec; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.StructureWorldAccess; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.util.FeatureContext; +import com.mojang.serialization.*; +import net.minecraft.util.math.*; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.*; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.feature.util.*; -import java.util.Random; +import java.util.*; public class WeightedRandomFeaturePatch extends Feature { - - public WeightedRandomFeaturePatch(Codec codec) { - super(codec); - } - - public boolean generate(FeatureContext context) { - Random random = context.getRandom(); - WeightedRandomFeaturePatchConfig weightedRandomFeaturePatchConfig = context.getConfig(); - StructureWorldAccess structureWorldAccess = context.getWorld(); - BlockPos blockPos = context.getOrigin(); - - int i = 0; - BlockPos.Mutable mutable = new BlockPos.Mutable(); - int xzSpread = weightedRandomFeaturePatchConfig.xzSpread(); - int ySpread = weightedRandomFeaturePatchConfig.ySpread(); - - for (int l = 0; l < weightedRandomFeaturePatchConfig.tries(); ++l) { - mutable.set(blockPos, xzSpread - random.nextInt(xzSpread * 2 + 1), ySpread - random.nextInt(ySpread * 2 + 1), xzSpread - random.nextInt(xzSpread * 2 + 1)); - if ((weightedRandomFeaturePatchConfig.weightedRandomFeatureConfig().getWeightedRandomFeature(random)).generateUnregistered(structureWorldAccess, context.getGenerator(), random, mutable)) { - ++i; - } - } - return i > 0; - } - + + public WeightedRandomFeaturePatch(Codec codec) { + super(codec); + } + + public boolean generate(FeatureContext context) { + Random random = context.getRandom(); + WeightedRandomFeaturePatchConfig weightedRandomFeaturePatchConfig = context.getConfig(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + + int i = 0; + BlockPos.Mutable mutable = new BlockPos.Mutable(); + int xzSpread = weightedRandomFeaturePatchConfig.xzSpread(); + int ySpread = weightedRandomFeaturePatchConfig.ySpread(); + + for (int l = 0; l < weightedRandomFeaturePatchConfig.tries(); ++l) { + mutable.set(blockPos, xzSpread - random.nextInt(xzSpread * 2 + 1), ySpread - random.nextInt(ySpread * 2 + 1), xzSpread - random.nextInt(xzSpread * 2 + 1)); + Optional randomFeature = (weightedRandomFeaturePatchConfig.weightedRandomFeatureConfig().features().getDataOrEmpty(random)); + if (randomFeature.isPresent() && randomFeature.get().generateUnregistered(structureWorldAccess, context.getGenerator(), random, mutable)) { + ++i; + } + } + return i > 0; + } + } diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatchConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatchConfig.java index d56c4c52a2..b4030f2af9 100644 --- a/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatchConfig.java +++ b/src/main/java/de/dafuqs/spectrum/worldgen/features/WeightedRandomFeaturePatchConfig.java @@ -1,37 +1,22 @@ package de.dafuqs.spectrum.worldgen.features; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.util.dynamic.Codecs; -import net.minecraft.world.gen.feature.FeatureConfig; +import com.mojang.serialization.*; +import com.mojang.serialization.codecs.*; +import net.minecraft.util.dynamic.*; +import net.minecraft.world.gen.feature.*; public record WeightedRandomFeaturePatchConfig(int tries, int xzSpread, int ySpread, WeightedRandomFeatureConfig weightedRandomFeatureConfig) implements FeatureConfig { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group( - Codecs.POSITIVE_INT.fieldOf("tries").forGetter((weightedRandomFeatureConfig) -> { - return weightedRandomFeatureConfig.tries; - }), - Codecs.POSITIVE_INT.fieldOf("xzspread").forGetter((weightedRandomFeatureConfig) -> { - return weightedRandomFeatureConfig.xzSpread; - }), - Codecs.POSITIVE_INT.fieldOf("yspread").forGetter((weightedRandomFeatureConfig) -> { - return weightedRandomFeatureConfig.ySpread; - }), - WeightedRandomFeatureConfig.CODEC.fieldOf("feature").forGetter(WeightedRandomFeaturePatchConfig::featureConfig) - ).apply(instance, WeightedRandomFeaturePatchConfig::new); - }); - - public WeightedRandomFeaturePatchConfig(int tries, int xzSpread, int ySpread, WeightedRandomFeatureConfig weightedRandomFeatureConfig) { - this.tries = tries; - this.xzSpread = xzSpread; - this.ySpread = ySpread; - this.weightedRandomFeatureConfig = weightedRandomFeatureConfig; - } - - public WeightedRandomFeatureConfig featureConfig() { - return this.weightedRandomFeatureConfig; - } - + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + Codecs.POSITIVE_INT.fieldOf("tries").forGetter((weightedRandomFeatureConfig) -> weightedRandomFeatureConfig.tries), + Codecs.POSITIVE_INT.fieldOf("xzspread").forGetter((weightedRandomFeatureConfig) -> weightedRandomFeatureConfig.xzSpread), + Codecs.POSITIVE_INT.fieldOf("yspread").forGetter((weightedRandomFeatureConfig) -> weightedRandomFeatureConfig.ySpread), + WeightedRandomFeatureConfig.CODEC.fieldOf("feature").forGetter(WeightedRandomFeaturePatchConfig::featureConfig) + ).apply(instance, WeightedRandomFeaturePatchConfig::new)); + + public WeightedRandomFeatureConfig featureConfig() { + return this.weightedRandomFeatureConfig; + } + } \ No newline at end of file diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumStructureFeatures.java b/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumStructureFeatures.java deleted file mode 100644 index 1e84c90fc4..0000000000 --- a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumStructureFeatures.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.dafuqs.spectrum.worldgen.structure_features; - -import de.dafuqs.spectrum.SpectrumCommon; -import de.dafuqs.spectrum.mixin.accessors.StructureFeatureAccessor; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.StructureFeature; - -public class SpectrumStructureFeatures { - - public static StructureFeature UNDERGROUND_STRUCTURES = new SpectrumUndergroundStructures(); - - public static void register() { - StructureFeatureAccessor.callRegister(SpectrumCommon.MOD_ID + ":underground_structures", UNDERGROUND_STRUCTURES, GenerationStep.Feature.UNDERGROUND_STRUCTURES); - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumStructurePoolBasedGenerator.java b/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumStructurePoolBasedGenerator.java deleted file mode 100644 index 5bc2e314f6..0000000000 --- a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumStructurePoolBasedGenerator.java +++ /dev/null @@ -1,322 +0,0 @@ -package de.dafuqs.spectrum.worldgen.structure_features; - -import com.google.common.collect.Lists; -import com.google.common.collect.Queues; -import com.mojang.logging.LogUtils; -import net.minecraft.block.JigsawBlock; -import net.minecraft.structure.JigsawJunction; -import net.minecraft.structure.PoolStructurePiece; -import net.minecraft.structure.Structure.StructureBlockInfo; -import net.minecraft.structure.StructureGeneratorFactory.Context; -import net.minecraft.structure.StructureManager; -import net.minecraft.structure.StructurePiecesGenerator; -import net.minecraft.structure.pool.EmptyPoolElement; -import net.minecraft.structure.pool.StructurePool; -import net.minecraft.structure.pool.StructurePool.Projection; -import net.minecraft.structure.pool.StructurePoolElement; -import net.minecraft.structure.pool.StructurePools; -import net.minecraft.util.BlockRotation; -import net.minecraft.util.Identifier; -import net.minecraft.util.function.BooleanBiFunction; -import net.minecraft.util.math.BlockBox; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; -import net.minecraft.util.math.Direction; -import net.minecraft.util.registry.DynamicRegistryManager; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; -import net.minecraft.world.HeightLimitView; -import net.minecraft.world.Heightmap.Type; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.source.BiomeCoords; -import net.minecraft.world.gen.chunk.ChunkGenerator; -import net.minecraft.world.gen.feature.StructureFeature; -import net.minecraft.world.gen.feature.StructurePoolFeatureConfig; -import net.minecraft.world.gen.random.AtomicSimpleRandom; -import net.minecraft.world.gen.random.ChunkRandom; -import org.apache.commons.lang3.mutable.MutableObject; -import org.slf4j.Logger; - -import java.util.*; -import java.util.function.Predicate; - -public class SpectrumStructurePoolBasedGenerator { - - static final Logger LOGGER = LogUtils.getLogger(); - - public SpectrumStructurePoolBasedGenerator() { - } - - public static Optional> generate(Context context, SpectrumStructurePoolBasedGenerator.PieceFactory pieceFactory, BlockPos pos, boolean bl, boolean bl2) { - ChunkRandom chunkRandom = new ChunkRandom(new AtomicSimpleRandom(0L)); - chunkRandom.setCarverSeed(context.seed(), context.chunkPos().x, context.chunkPos().z); - DynamicRegistryManager dynamicRegistryManager = context.registryManager(); - StructurePoolFeatureConfig structurePoolFeatureConfig = context.config(); - ChunkGenerator chunkGenerator = context.chunkGenerator(); - StructureManager structureManager = context.structureManager(); - HeightLimitView heightLimitView = context.world(); - Predicate> predicate = context.validBiome(); - StructureFeature.init(); - Registry registry = dynamicRegistryManager.get(Registry.STRUCTURE_POOL_KEY); - BlockRotation blockRotation = BlockRotation.random(chunkRandom); - StructurePool structurePool = structurePoolFeatureConfig.getStartPool().value(); - StructurePoolElement structurePoolElement = structurePool.getRandomElement(chunkRandom); - if (structurePoolElement == EmptyPoolElement.INSTANCE) { - return Optional.empty(); - } else { - PoolStructurePiece poolStructurePiece = pieceFactory.create(structureManager, structurePoolElement, pos, structurePoolElement.getGroundLevelDelta(), blockRotation, structurePoolElement.getBoundingBox(structureManager, pos, blockRotation)); - BlockBox blockBox = poolStructurePiece.getBoundingBox(); - int i = (blockBox.getMaxX() + blockBox.getMinX()) / 2; - int j = (blockBox.getMaxZ() + blockBox.getMinZ()) / 2; - int k; - if (bl2) { - k = pos.getY() + chunkGenerator.getHeightOnGround(i, j, Type.WORLD_SURFACE_WG, heightLimitView); - } else { - k = pos.getY(); - } - - if (!predicate.test(chunkGenerator.getBiomeForNoiseGen(BiomeCoords.fromBlock(i), BiomeCoords.fromBlock(k), BiomeCoords.fromBlock(j)))) { - return Optional.empty(); - } else { - int l = blockBox.getMinY() + poolStructurePiece.getGroundLevelDelta(); - poolStructurePiece.translate(0, k - l, 0); - return Optional.of((structurePiecesCollector, contextx) -> { - List list = Lists.newArrayList(); - list.add(poolStructurePiece); - if (structurePoolFeatureConfig.getSize() > 0) { - Box box = new Box((i - 80), (k - 80), (j - 80), (i + 80 + 1), (k + 80 + 1), (j + 80 + 1)); - SpectrumStructurePoolBasedGenerator.StructurePoolGenerator structurePoolGenerator = new SpectrumStructurePoolBasedGenerator.StructurePoolGenerator(registry, structurePoolFeatureConfig.getSize(), pieceFactory, chunkGenerator, structureManager, list, chunkRandom); - structurePoolGenerator.structurePieces.addLast(new SpectrumStructurePoolBasedGenerator.ShapedPoolStructurePiece(poolStructurePiece, new MutableObject(VoxelShapes.combineAndSimplify(VoxelShapes.cuboid(box), VoxelShapes.cuboid(Box.from(blockBox)), BooleanBiFunction.ONLY_FIRST)), 0)); - - while (!structurePoolGenerator.structurePieces.isEmpty()) { - SpectrumStructurePoolBasedGenerator.ShapedPoolStructurePiece shapedPoolStructurePiece = structurePoolGenerator.structurePieces.removeFirst(); - structurePoolGenerator.generatePiece(shapedPoolStructurePiece.piece, shapedPoolStructurePiece.pieceShape, shapedPoolStructurePiece.currentSize, bl, heightLimitView); - } - - Objects.requireNonNull(structurePiecesCollector); - list.forEach(structurePiecesCollector::addPiece); - } - }); - } - } - } - - public static void generate(DynamicRegistryManager registryManager, PoolStructurePiece piece, int maxDepth, SpectrumStructurePoolBasedGenerator.PieceFactory pieceFactory, ChunkGenerator chunkGenerator, StructureManager structureManager, List results, Random random, HeightLimitView world) { - Registry registry = registryManager.get(Registry.STRUCTURE_POOL_KEY); - SpectrumStructurePoolBasedGenerator.StructurePoolGenerator structurePoolGenerator = new SpectrumStructurePoolBasedGenerator.StructurePoolGenerator(registry, maxDepth, pieceFactory, chunkGenerator, structureManager, results, random); - structurePoolGenerator.structurePieces.addLast(new SpectrumStructurePoolBasedGenerator.ShapedPoolStructurePiece(piece, new MutableObject(VoxelShapes.UNBOUNDED), 0)); - - while (!structurePoolGenerator.structurePieces.isEmpty()) { - SpectrumStructurePoolBasedGenerator.ShapedPoolStructurePiece shapedPoolStructurePiece = structurePoolGenerator.structurePieces.removeFirst(); - structurePoolGenerator.generatePiece(shapedPoolStructurePiece.piece, shapedPoolStructurePiece.pieceShape, shapedPoolStructurePiece.currentSize, false, world); - } - } - - public interface PieceFactory { - PoolStructurePiece create(StructureManager structureManager, StructurePoolElement poolElement, BlockPos pos, int groundLevelDelta, BlockRotation rotation, BlockBox elementBounds); - } - - static final class StructurePoolGenerator { - final Deque structurePieces = Queues.newArrayDeque(); - private final Registry registry; - private final int maxSize; - private final SpectrumStructurePoolBasedGenerator.PieceFactory pieceFactory; - private final ChunkGenerator chunkGenerator; - private final StructureManager structureManager; - private final List children; - private final Random random; - - StructurePoolGenerator(Registry registry, int maxSize, SpectrumStructurePoolBasedGenerator.PieceFactory pieceFactory, ChunkGenerator chunkGenerator, StructureManager structureManager, List children, Random random) { - this.registry = registry; - this.maxSize = maxSize; - this.pieceFactory = pieceFactory; - this.chunkGenerator = chunkGenerator; - this.structureManager = structureManager; - this.children = children; - this.random = random; - } - - void generatePiece(PoolStructurePiece piece, MutableObject pieceShape, int minY, boolean modifyBoundingBox, HeightLimitView world) { - StructurePoolElement structurePoolElement = piece.getPoolElement(); - BlockPos blockPos = piece.getPos(); - BlockRotation blockRotation = piece.getRotation(); - Projection projection = structurePoolElement.getProjection(); - boolean bl = projection == Projection.RIGID; - MutableObject mutableObject = new MutableObject(); - BlockBox blockBox = piece.getBoundingBox(); - int i = blockBox.getMinY(); - Iterator var14 = structurePoolElement.getStructureBlockInfos(this.structureManager, blockPos, blockRotation, this.random).iterator(); - - while (true) { - while (true) { - while (true) { - label93: - while (var14.hasNext()) { - StructureBlockInfo structureBlockInfo = var14.next(); - Direction direction = JigsawBlock.getFacing(structureBlockInfo.state); - BlockPos blockPos2 = structureBlockInfo.pos; - BlockPos blockPos3 = blockPos2.offset(direction); - int j = blockPos2.getY() - i; - int k = -1; - Identifier identifier = new Identifier(structureBlockInfo.nbt.getString("pool")); - Optional optional = this.registry.getOrEmpty(identifier); - if (optional.isPresent() && ((optional.get()).getElementCount() != 0 || Objects.equals(identifier, StructurePools.EMPTY.getValue()))) { - Identifier identifier2 = (optional.get()).getTerminatorsId(); - Optional optional2 = this.registry.getOrEmpty(identifier2); - if (optional2.isPresent() && ((optional2.get()).getElementCount() != 0 || Objects.equals(identifier2, StructurePools.EMPTY.getValue()))) { - boolean bl2 = blockBox.contains(blockPos3); - MutableObject mutableObject2; - if (bl2) { - mutableObject2 = mutableObject; - if (mutableObject.getValue() == null) { - mutableObject.setValue(VoxelShapes.cuboid(Box.from(blockBox))); - } - } else { - mutableObject2 = pieceShape; - } - - List list = Lists.newArrayList(); - if (minY != this.maxSize) { - list.addAll((optional.get()).getElementIndicesInRandomOrder(this.random)); - } - - list.addAll((optional2.get()).getElementIndicesInRandomOrder(this.random)); - - for (StructurePoolElement structurePoolElement2 : list) { - if (structurePoolElement2 == EmptyPoolElement.INSTANCE) { - break; - } - - Iterator var30 = BlockRotation.randomRotationOrder(this.random).iterator(); - - label133: - while (var30.hasNext()) { - BlockRotation blockRotation2 = var30.next(); - List list2 = structurePoolElement2.getStructureBlockInfos(this.structureManager, BlockPos.ORIGIN, blockRotation2, this.random); - BlockBox blockBox2 = structurePoolElement2.getBoundingBox(this.structureManager, BlockPos.ORIGIN, blockRotation2); - int l; - if (modifyBoundingBox && blockBox2.getBlockCountY() <= 16) { - l = list2.stream().mapToInt((structureBlockInfox) -> { - if (!blockBox2.contains(structureBlockInfox.pos.offset(JigsawBlock.getFacing(structureBlockInfox.state)))) { - return 0; - } else { - Identifier id = new Identifier(structureBlockInfox.nbt.getString("pool")); - Optional optionalZ = this.registry.getOrEmpty(identifier); - Optional optional2Z = optional.flatMap((pool) -> this.registry.getOrEmpty(pool.getTerminatorsId())); - int iZ = optionalZ.map((pool) -> pool.getHighestY(this.structureManager)).orElse(0); - int jZ = optional2Z.map((pool) -> pool.getHighestY(this.structureManager)).orElse(0); - return Math.max(iZ, jZ); - } - }).max().orElse(0); - } else { - l = 0; - } - - Iterator var35 = list2.iterator(); - - Projection projection2; - boolean bl3; - int n; - int o; - int p; - BlockBox blockBox4; - BlockPos blockPos6; - int r; - do { - StructureBlockInfo structureBlockInfo2; - do { - if (!var35.hasNext()) { - continue label133; - } - - structureBlockInfo2 = var35.next(); - } while (!JigsawBlock.attachmentMatches(structureBlockInfo, structureBlockInfo2)); - - BlockPos blockPos4 = structureBlockInfo2.pos; - BlockPos blockPos5 = blockPos3.subtract(blockPos4); - BlockBox blockBox3 = structurePoolElement2.getBoundingBox(this.structureManager, blockPos5, blockRotation2); - int m = blockBox3.getMinY(); - projection2 = structurePoolElement2.getProjection(); - bl3 = projection2 == Projection.RIGID; - n = blockPos4.getY(); - o = j - n + JigsawBlock.getFacing(structureBlockInfo.state).getOffsetY(); - if (bl && bl3) { - p = i + o; - } else { - if (k == -1) { - k = this.chunkGenerator.getHeightOnGround(blockPos2.getX(), blockPos2.getZ(), Type.WORLD_SURFACE_WG, world); - } - - p = k - n; - } - - int q = p - m; - blockBox4 = blockBox3.offset(0, q, 0); - blockPos6 = blockPos5.add(0, q, 0); - if (l > 0) { - r = Math.max(l + 1, blockBox4.getMaxY() - blockBox4.getMinY()); - blockBox4.encompass(new BlockPos(blockBox4.getMinX(), blockBox4.getMinY() + r, blockBox4.getMinZ())); - } - } while (VoxelShapes.matchesAnywhere((VoxelShape) mutableObject2.getValue(), VoxelShapes.cuboid(Box.from(blockBox4).contract(0.25D)), BooleanBiFunction.ONLY_SECOND)); - - mutableObject2.setValue(VoxelShapes.combine((VoxelShape) mutableObject2.getValue(), VoxelShapes.cuboid(Box.from(blockBox4)), BooleanBiFunction.ONLY_FIRST)); - r = piece.getGroundLevelDelta(); - int s; - if (bl3) { - s = r - o; - } else { - s = structurePoolElement2.getGroundLevelDelta(); - } - - PoolStructurePiece poolStructurePiece = this.pieceFactory.create(this.structureManager, structurePoolElement2, blockPos6, s, blockRotation2, blockBox4); - int t; - if (bl) { - t = i + j; - } else if (bl3) { - t = p + n; - } else { - if (k == -1) { - k = this.chunkGenerator.getHeightOnGround(blockPos2.getX(), blockPos2.getZ(), Type.WORLD_SURFACE_WG, world); - } - - t = k + o / 2; - } - - piece.addJunction(new JigsawJunction(blockPos3.getX(), t - j + r, blockPos3.getZ(), o, projection2)); - poolStructurePiece.addJunction(new JigsawJunction(blockPos2.getX(), t - n + s, blockPos2.getZ(), -o, projection)); - this.children.add(poolStructurePiece); - if (minY + 1 <= this.maxSize) { - this.structurePieces.addLast(new ShapedPoolStructurePiece(poolStructurePiece, mutableObject2, minY + 1)); - } - continue label93; - } - } - } else { - SpectrumStructurePoolBasedGenerator.LOGGER.warn("Empty or non-existent fallback pool: {}", identifier2); - } - } else { - SpectrumStructurePoolBasedGenerator.LOGGER.warn("Empty or non-existent pool: {}", identifier); - } - } - - return; - } - } - } - } - } - - private static final class ShapedPoolStructurePiece { - final PoolStructurePiece piece; - final MutableObject pieceShape; - final int currentSize; - - ShapedPoolStructurePiece(PoolStructurePiece piece, MutableObject pieceShape, int currentSize) { - this.piece = piece; - this.pieceShape = pieceShape; - this.currentSize = currentSize; - } - } -} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumUndergroundStructurePoolFeatureConfig.java b/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumUndergroundStructurePoolFeatureConfig.java deleted file mode 100644 index 9fb2798771..0000000000 --- a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumUndergroundStructurePoolFeatureConfig.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.dafuqs.spectrum.worldgen.structure_features; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.structure.pool.StructurePool; -import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.world.gen.feature.StructurePoolFeatureConfig; - -public class SpectrumUndergroundStructurePoolFeatureConfig extends StructurePoolFeatureConfig { - - public static final Codec CODEC = RecordCodecBuilder.create( - (instance) -> instance.group(StructurePool.REGISTRY_CODEC - .fieldOf("start_pool").forGetter(SpectrumUndergroundStructurePoolFeatureConfig::getStartPool), - Codec.intRange(0, 7).fieldOf("size").forGetter(SpectrumUndergroundStructurePoolFeatureConfig::getSize), - Codec.INT.fieldOf("min_y").forGetter(SpectrumUndergroundStructurePoolFeatureConfig::getMinY), - Codec.INT.fieldOf("max_y").forGetter(SpectrumUndergroundStructurePoolFeatureConfig::getMaxY) - ).apply(instance, SpectrumUndergroundStructurePoolFeatureConfig::new) - ); - public int minY; - public int maxY; - - public SpectrumUndergroundStructurePoolFeatureConfig(RegistryEntry startPool, int size, int minY, int maxY) { - super(startPool, size); - this.minY = minY; - this.maxY = maxY; - } - - public int getMinY() { - return minY; - } - - public int getMaxY() { - return maxY; - } - -} diff --git a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumUndergroundStructures.java b/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumUndergroundStructures.java deleted file mode 100644 index 3f99028b76..0000000000 --- a/src/main/java/de/dafuqs/spectrum/worldgen/structure_features/SpectrumUndergroundStructures.java +++ /dev/null @@ -1,92 +0,0 @@ -package de.dafuqs.spectrum.worldgen.structure_features; - -import net.minecraft.structure.PoolStructurePiece; -import net.minecraft.structure.PostPlacementProcessor; -import net.minecraft.structure.StructureGeneratorFactory; -import net.minecraft.structure.StructurePiecesGenerator; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.HeightLimitView; -import net.minecraft.world.Heightmap; -import net.minecraft.world.gen.feature.StructureFeature; - -import java.util.Optional; -import java.util.Random; - -// thank you, @TelepathicGrunt -// source: https://github.com/TelepathicGrunt/StructureTutorialMod/blob/1.18.2-Fabric-Jigsaw/src/main/java/com/telepathicgrunt/structure_tutorial/structures/SkyStructures.java -public class SpectrumUndergroundStructures extends StructureFeature { - - public SpectrumUndergroundStructures() { - super(SpectrumUndergroundStructurePoolFeatureConfig.CODEC, SpectrumUndergroundStructures::createPiecesGenerator, PostPlacementProcessor.EMPTY); - } - - /* - * This is where extra checks can be done to determine if the structure can spawn here. - * This only needs to be overridden if you're adding additional spawn conditions. - * - * Fun fact, if you set your structure separation/spacing to be 0/1, you can use - * isFeatureChunk to return true only if certain chunk coordinates are passed in - * which allows you to spawn structures only at certain coordinates in the world. - * - * Basically, this method is used for determining if the land is at a suitable height, - * if certain other structures are too close or not, or some other restrictive condition. - * - * For example, Pillager Outposts added a check to make sure it cannot spawn within 10 chunk of a Village. - * (Bedrock Edition seems to not have the same check) - * - * If you are doing Nether structures, you'll probably want to spawn your structure on top of ledges. - * Best way to do that is to use getBaseColumn to grab a column of blocks at the structure's x/z position. - * Then loop through it and look for land with air above it and set blockpos's Y value to it. - * Make sure to set the final boolean in JigsawPlacement.addPieces to false so - * that the structure spawns at blockpos's y value instead of placing the structure on the Bedrock roof! - * - * Also, please for the love of god, do not do dimension checking here. - * If you do and another mod's dimension is trying to spawn your structure, - * the locate command will make minecraft hang forever and break the game. - * Use the biome tags for where to spawn the structure and users can datapack - * it to spawn in specific biomes that aren't in the dimension they don't like if they wish. - */ - private static boolean isFeatureChunk(StructureGeneratorFactory.Context context) { - // Checks to make sure our structure does not spawn within 10 chunks of an Ocean Monument - // to demonstrate how this method is good for checking extra conditions for spawning - return true; - } - - public static Optional> createPiecesGenerator(StructureGeneratorFactory.Context context) { - // Check if the spot is valid for our structure. This is just as another method for cleanness. - // Returning an empty optional tells the game to skip this spot as it will not generate the structure. - if (!isFeatureChunk(context)) { - return Optional.empty(); - } - - // Turns the chunk coordinates into actual coordinates we can use. (Gets center of that chunk) - BlockPos blockpos = context.chunkPos().getCenterAtY(0); - - // Find the top Y value of the land and then offset our structure to 60 blocks above that. - // WORLD_SURFACE_WG will stop at top water, so we don't accidentally put our structure into the ocean if it is a super deep ocean. - int topLandY = context.chunkGenerator().getHeightOnGround(blockpos.getX(), blockpos.getZ(), Heightmap.Type.WORLD_SURFACE_WG, context.world()); - - // calculate a random height like specified in the config - Random random = new Random(context.seed()); - int height = (int) (context.config().minY + context.config().maxY * random.nextFloat()); - HeightLimitView world = context.world(); - if (height < world.getBottomY() + 16 || height > topLandY - 16) { - return Optional.empty(); - } - - blockpos = blockpos.withY(height); - - StructureGeneratorFactory.Context c = context; - - // Return the pieces generator that is now set up so that the game runs it when it needs to create the layout of structure pieces. - return SpectrumStructurePoolBasedGenerator.generate( - c, // Used for JigsawPlacement to get all the proper behaviors done. - PoolStructurePiece::new, // Needed in order to create a list of jigsaw pieces when making the structure's layout. - blockpos, // Position of the structure. Y value is ignored if last parameter is set to true. - false, // Special boundary adjustments for villages. It's... hard to explain. Keep this false and make your pieces not be partially intersecting. - // Either not intersecting or fully contained will make children pieces spawn just fine. It's easier that way. - false // Place at heightmap (top land). Set this to false for structure to be place at the passed in blockpos's Y value instead. - // Definitely keep this false when placing structures in the nether as otherwise, heightmap placing will put the structure on the Bedrock roof. - ); - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/allay_head.json b/src/main/resources/assets/spectrum/blockstates/allay_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/allay_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/allay_wall_head.json b/src/main/resources/assets/spectrum/blockstates/allay_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/allay_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/aloe.json b/src/main/resources/assets/spectrum/blockstates/aloe.json new file mode 100644 index 0000000000..6db9d948ad --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/aloe.json @@ -0,0 +1,19 @@ +{ + "variants": { + "age=0": { + "model": "spectrum:block/aloe0" + }, + "age=1": { + "model": "spectrum:block/aloe1" + }, + "age=2": { + "model": "spectrum:block/aloe2" + }, + "age=3": { + "model": "spectrum:block/aloe3" + }, + "age=4": { + "model": "spectrum:block/aloe4" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amaranth.json b/src/main/resources/assets/spectrum/blockstates/amaranth.json index d5f77e571f..55a215198b 100644 --- a/src/main/resources/assets/spectrum/blockstates/amaranth.json +++ b/src/main/resources/assets/spectrum/blockstates/amaranth.json @@ -1,52 +1,52 @@ { - "variants": { - "age=0,half=lower": { - "model": "spectrum:block/amaranth_stage0_lower" - }, - "age=1,half=lower": { - "model": "spectrum:block/amaranth_stage1_lower" - }, - "age=2,half=lower": { - "model": "spectrum:block/amaranth_stage1_lower" - }, - "age=3,half=lower": { - "model": "spectrum:block/amaranth_stage2_lower" - }, - "age=4,half=lower": { - "model": "spectrum:block/amaranth_stage2_lower" - }, - "age=5,half=lower": { - "model": "spectrum:block/amaranth_stage3_lower" - }, - "age=6,half=lower": { - "model": "spectrum:block/amaranth_stage3_lower" - }, - "age=7,half=lower": { - "model": "spectrum:block/amaranth_stage4_lower" - }, - "age=0,half=upper": { - "model": "spectrum:block/amaranth_stage2_upper" - }, - "age=1,half=upper": { - "model": "spectrum:block/amaranth_stage2_upper" - }, - "age=2,half=upper": { - "model": "spectrum:block/amaranth_stage2_upper" - }, - "age=3,half=upper": { - "model": "spectrum:block/amaranth_stage2_upper" - }, - "age=4,half=upper": { - "model": "spectrum:block/amaranth_stage2_upper" - }, - "age=5,half=upper": { - "model": "spectrum:block/amaranth_stage3_upper" - }, - "age=6,half=upper": { - "model": "spectrum:block/amaranth_stage3_upper" - }, - "age=7,half=upper": { - "model": "spectrum:block/amaranth_stage4_upper" - } - } + "variants": { + "age=0,half=lower": { + "model": "spectrum:block/amaranth_stage0_lower" + }, + "age=1,half=lower": { + "model": "spectrum:block/amaranth_stage1_lower" + }, + "age=2,half=lower": { + "model": "spectrum:block/amaranth_stage1_lower" + }, + "age=3,half=lower": { + "model": "spectrum:block/amaranth_stage2_lower" + }, + "age=4,half=lower": { + "model": "spectrum:block/amaranth_stage2_lower" + }, + "age=5,half=lower": { + "model": "spectrum:block/amaranth_stage3_lower" + }, + "age=6,half=lower": { + "model": "spectrum:block/amaranth_stage3_lower" + }, + "age=7,half=lower": { + "model": "spectrum:block/amaranth_stage4_lower" + }, + "age=0,half=upper": { + "model": "spectrum:block/amaranth_stage2_upper" + }, + "age=1,half=upper": { + "model": "spectrum:block/amaranth_stage2_upper" + }, + "age=2,half=upper": { + "model": "spectrum:block/amaranth_stage2_upper" + }, + "age=3,half=upper": { + "model": "spectrum:block/amaranth_stage2_upper" + }, + "age=4,half=upper": { + "model": "spectrum:block/amaranth_stage2_upper" + }, + "age=5,half=upper": { + "model": "spectrum:block/amaranth_stage3_upper" + }, + "age=6,half=upper": { + "model": "spectrum:block/amaranth_stage3_upper" + }, + "age=7,half=upper": { + "model": "spectrum:block/amaranth_stage4_upper" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amaranth_bushel.json b/src/main/resources/assets/spectrum/blockstates/amaranth_bushel.json index 4a89a6bccf..be374ae75a 100644 --- a/src/main/resources/assets/spectrum/blockstates/amaranth_bushel.json +++ b/src/main/resources/assets/spectrum/blockstates/amaranth_bushel.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amaranth_bushel" - } - } + "variants": { + "": { + "model": "spectrum:block/amaranth_bushel" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_basalt_lamp.json b/src/main/resources/assets/spectrum/blockstates/amethyst_basalt_lamp.json index 0cd7f854c6..6107d17c66 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_basalt_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_basalt_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_basalt_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_calcite_lamp.json b/src/main/resources/assets/spectrum/blockstates/amethyst_calcite_lamp.json index b36b9c78fa..d00e33210b 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_calcite_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_calcite_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_calcite_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_chime.json b/src/main/resources/assets/spectrum/blockstates/amethyst_chime.json index 1016b3c167..05b1814955 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_chime.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_chime.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_chime" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_chime" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_basalt.json index ff70226379..681593ce00 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_chiseled_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_chiseled_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_calcite.json index 0a7ae43c1c..b1176a9d9d 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_chiseled_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_chiseled_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_chiseled_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_decostone.json b/src/main/resources/assets/spectrum/blockstates/amethyst_decostone.json index 675ad923c9..1abfc844d8 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_decostone.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_decostone.json @@ -1,10 +1,10 @@ { - "variants": { - "half=lower": { - "model": "spectrum:block/amethyst_decostone_bottom" - }, - "half=upper": { - "model": "spectrum:block/amethyst_decostone_top" - } - } + "variants": { + "half=lower": { + "model": "spectrum:block/amethyst_decostone_bottom" + }, + "half=upper": { + "model": "spectrum:block/amethyst_decostone_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_glass.json b/src/main/resources/assets/spectrum/blockstates/amethyst_glass.json index 93e1b91fb2..a5e5d10d01 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_ore.json b/src/main/resources/assets/spectrum/blockstates/amethyst_ore.json index 4fcaa735e0..726edb9205 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/amethyst_player_only_glass.json deleted file mode 100644 index 93e1b91fb2..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/amethyst_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_rock_candy_stick.json b/src/main/resources/assets/spectrum/blockstates/amethyst_rock_candy_stick.json index 2db97b9bc0..a2fdde8414 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_rock_candy_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_rock_candy_stick.json @@ -1,16 +1,16 @@ { - "variants": { - "age=0": { - "model": "spectrum:block/amethyst_rock_candy_stick0" - }, - "age=1": { - "model": "spectrum:block/amethyst_rock_candy_stick1" - }, - "age=2": { - "model": "spectrum:block/amethyst_rock_candy_stick2" - }, - "age=3": { - "model": "spectrum:block/amethyst_rock_candy_stick3" - } - } + "variants": { + "age=0": { + "model": "spectrum:block/amethyst_rock_candy_stick0" + }, + "age=1": { + "model": "spectrum:block/amethyst_rock_candy_stick1" + }, + "age=2": { + "model": "spectrum:block/amethyst_rock_candy_stick2" + }, + "age=3": { + "model": "spectrum:block/amethyst_rock_candy_stick3" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/amethyst_semi_permeable_glass.json new file mode 100644 index 0000000000..a5e5d10d01 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/amethyst_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_storage_block.json b/src/main/resources/assets/spectrum/blockstates/amethyst_storage_block.json index 5f1fd2dfae..0f11d4b048 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/amethyst_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/amethyst_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/amethyst_sugar_stick.json b/src/main/resources/assets/spectrum/blockstates/amethyst_sugar_stick.json index 2715987dc8..11cdad7760 100644 --- a/src/main/resources/assets/spectrum/blockstates/amethyst_sugar_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/amethyst_sugar_stick.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0,liquidcrystallogged=false": { - "model": "spectrum:block/amethyst_sugar_stick0" - }, - "age=1,liquidcrystallogged=false": { - "model": "spectrum:block/amethyst_sugar_stick1" - }, - "age=2,liquidcrystallogged=false": { - "model": "spectrum:block/amethyst_sugar_stick2" - }, - "age=0,liquidcrystallogged=true": { - "model": "spectrum:block/amethyst_sugar_stick0" - }, - "age=1,liquidcrystallogged=true": { - "model": "spectrum:block/amethyst_sugar_stick1" - }, - "age=2,liquidcrystallogged=true": { - "model": "spectrum:block/amethyst_sugar_stick2" - } - } + "variants": { + "age=0,liquidcrystallogged=false": { + "model": "spectrum:block/amethyst_sugar_stick0" + }, + "age=1,liquidcrystallogged=false": { + "model": "spectrum:block/amethyst_sugar_stick1" + }, + "age=2,liquidcrystallogged=false": { + "model": "spectrum:block/amethyst_sugar_stick2" + }, + "age=0,liquidcrystallogged=true": { + "model": "spectrum:block/amethyst_sugar_stick0" + }, + "age=1,liquidcrystallogged=true": { + "model": "spectrum:block/amethyst_sugar_stick1" + }, + "age=2,liquidcrystallogged=true": { + "model": "spectrum:block/amethyst_sugar_stick2" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ancient_chiseled_polished_blackslag.json b/src/main/resources/assets/spectrum/blockstates/ancient_chiseled_polished_blackslag.json new file mode 100644 index 0000000000..716ff3faad --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ancient_chiseled_polished_blackslag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ancient_chiseled_polished_blackslag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/andesite_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/andesite_shimmerstone_light.json new file mode 100644 index 0000000000..37df86590b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/andesite_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/andesite_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/andesite_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/andesite_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/andesite_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/andesite_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/andesite_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/andesite_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/andesite_sparklestone_light.json deleted file mode 100644 index 68a0ac5abb..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/andesite_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/andesite_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/andesite_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/andesite_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/andesite_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/andesite_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/andesite_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/attached_glistering_melon_stem.json b/src/main/resources/assets/spectrum/blockstates/attached_glistering_melon_stem.json index d3988f78be..bff158c8cd 100644 --- a/src/main/resources/assets/spectrum/blockstates/attached_glistering_melon_stem.json +++ b/src/main/resources/assets/spectrum/blockstates/attached_glistering_melon_stem.json @@ -1,19 +1,19 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/attached_glistering_melon_stem", - "y": 180 - }, - "facing=north": { - "model": "spectrum:block/attached_glistering_melon_stem", - "y": 90 - }, - "facing=south": { - "model": "spectrum:block/attached_glistering_melon_stem", - "y": 270 - }, - "facing=west": { - "model": "spectrum:block/attached_glistering_melon_stem" - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/attached_glistering_melon_stem", + "y": 180 + }, + "facing=north": { + "model": "spectrum:block/attached_glistering_melon_stem", + "y": 90 + }, + "facing=south": { + "model": "spectrum:block/attached_glistering_melon_stem", + "y": 270 + }, + "facing=west": { + "model": "spectrum:block/attached_glistering_melon_stem" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_blue_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_blue_head.json index 0292dbb334..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_blue_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_blue_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_blue_wall_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_blue_wall_head.json index 0292dbb334..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_blue_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_blue_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_brown_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_brown_head.json index b210f861a8..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_brown_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_brown_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_brown_wall_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_brown_wall_head.json index b210f861a8..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_brown_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_brown_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_head.json index 16aa439c3a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_wall_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_wall_head.json index 16aa439c3a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_cyan_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_gold_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_gold_head.json index c32303d425..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_gold_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_gold_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_gold" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_gold_wall_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_gold_wall_head.json index c32303d425..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_gold_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_gold_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_gold" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_head.json index 6fd25d20eb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_leucistic" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_wall_head.json b/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_wall_head.json index 6fd25d20eb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_leucistic_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/axolotl_leucistic" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/axolotl_mob_block.json b/src/main/resources/assets/spectrum/blockstates/axolotl_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/axolotl_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/axolotl_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/azurite_block.json b/src/main/resources/assets/spectrum/blockstates/azurite_block.json index 29aeb187dc..2f565d2f77 100644 --- a/src/main/resources/assets/spectrum/blockstates/azurite_block.json +++ b/src/main/resources/assets/spectrum/blockstates/azurite_block.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/azurite_block", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/azurite_block", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/azurite_block", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/azurite_block", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/azurite_block" - }, - "facing=west": { - "model": "spectrum:block/azurite_block", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/azurite_block", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/azurite_block", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/azurite_block", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/azurite_block", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/azurite_block" + }, + "facing=west": { + "model": "spectrum:block/azurite_block", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/azurite_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/azurite_chiseled_basalt.json new file mode 100644 index 0000000000..953801337d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/azurite_chiseled_basalt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/azurite_chiseled_basalt" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/azurite_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/azurite_chiseled_calcite.json new file mode 100644 index 0000000000..01055eff03 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/azurite_chiseled_calcite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/azurite_chiseled_calcite" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/azurite_ore.json b/src/main/resources/assets/spectrum/blockstates/azurite_ore.json index fa5fadabaa..ea873dd4d7 100644 --- a/src/main/resources/assets/spectrum/blockstates/azurite_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/azurite_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/azurite_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/azurite_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_brick_slab.json b/src/main/resources/assets/spectrum/blockstates/basalt_brick_slab.json index ba9c3f3668..2cf24cb3c6 100644 --- a/src/main/resources/assets/spectrum/blockstates/basalt_brick_slab.json +++ b/src/main/resources/assets/spectrum/blockstates/basalt_brick_slab.json @@ -1,13 +1,13 @@ { - "variants": { - "type=bottom": { - "model": "spectrum:block/basalt_brick_slab" - }, - "type=double": { - "model": "spectrum:block/basalt_bricks" - }, - "type=top": { - "model": "spectrum:block/basalt_brick_slab_top" - } - } + "variants": { + "type=bottom": { + "model": "spectrum:block/basalt_brick_slab" + }, + "type=double": { + "model": "spectrum:block/basalt_bricks" + }, + "type=top": { + "model": "spectrum:block/basalt_brick_slab_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_brick_stairs.json b/src/main/resources/assets/spectrum/blockstates/basalt_brick_stairs.json index a885bfb52b..45baf98ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/basalt_brick_stairs.json +++ b/src/main/resources/assets/spectrum/blockstates/basalt_brick_stairs.json @@ -1,209 +1,209 @@ { - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/basalt_brick_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/basalt_brick_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/basalt_brick_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/basalt_brick_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_brick_wall.json b/src/main/resources/assets/spectrum/blockstates/basalt_brick_wall.json index 2595481546..babb7336aa 100644 --- a/src/main/resources/assets/spectrum/blockstates/basalt_brick_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/basalt_brick_wall.json @@ -1,90 +1,90 @@ { - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "spectrum:block/basalt_brick_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_brick_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_bricks.json b/src/main/resources/assets/spectrum/blockstates/basalt_bricks.json index 1079fd411c..0d05c9c305 100644 --- a/src/main/resources/assets/spectrum/blockstates/basalt_bricks.json +++ b/src/main/resources/assets/spectrum/blockstates/basalt_bricks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/basalt_bricks" - } - } + "variants": { + "": { + "model": "spectrum:block/basalt_bricks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/basalt_shimmerstone_light.json new file mode 100644 index 0000000000..6e067717e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/basalt_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/basalt_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/basalt_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/basalt_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/basalt_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/basalt_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/basalt_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/basalt_sparklestone_light.json deleted file mode 100644 index c0547455a1..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/basalt_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/basalt_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/basalt_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/basalt_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/basalt_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/basalt_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/basalt_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_tile_slab.json b/src/main/resources/assets/spectrum/blockstates/basalt_tile_slab.json new file mode 100644 index 0000000000..be9c93273f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/basalt_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/basalt_tile_slab" + }, + "type=double": { + "model": "spectrum:block/basalt_tiles" + }, + "type=top": { + "model": "spectrum:block/basalt_tile_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_tile_stairs.json b/src/main/resources/assets/spectrum/blockstates/basalt_tile_stairs.json new file mode 100644 index 0000000000..b498271618 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/basalt_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/basalt_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/basalt_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/basalt_tile_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_tile_wall.json b/src/main/resources/assets/spectrum/blockstates/basalt_tile_wall.json new file mode 100644 index 0000000000..4d02041766 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/basalt_tile_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/basalt_tile_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/basalt_tiles.json b/src/main/resources/assets/spectrum/blockstates/basalt_tiles.json new file mode 100644 index 0000000000..f9e19779b8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/basalt_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/basalt_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bat_head.json b/src/main/resources/assets/spectrum/blockstates/bat_head.json index 4ea73aab2a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/bat_head.json +++ b/src/main/resources/assets/spectrum/blockstates/bat_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bat" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bat_mob_block.json b/src/main/resources/assets/spectrum/blockstates/bat_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/bat_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/bat_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bat_wall_head.json b/src/main/resources/assets/spectrum/blockstates/bat_wall_head.json index 4ea73aab2a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/bat_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/bat_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bat" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bedrock_anvil.json b/src/main/resources/assets/spectrum/blockstates/bedrock_anvil.json index e3e7d1cf8d..77a4b7d282 100644 --- a/src/main/resources/assets/spectrum/blockstates/bedrock_anvil.json +++ b/src/main/resources/assets/spectrum/blockstates/bedrock_anvil.json @@ -1,19 +1,19 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/bedrock_anvil", - "y": 270 - }, - "facing=north": { - "model": "spectrum:block/bedrock_anvil", - "y": 180 - }, - "facing=south": { - "model": "spectrum:block/bedrock_anvil" - }, - "facing=west": { - "model": "spectrum:block/bedrock_anvil", - "y": 90 - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/bedrock_anvil", + "y": 270 + }, + "facing=north": { + "model": "spectrum:block/bedrock_anvil", + "y": 180 + }, + "facing=south": { + "model": "spectrum:block/bedrock_anvil" + }, + "facing=west": { + "model": "spectrum:block/bedrock_anvil", + "y": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bedrock_storage_block.json b/src/main/resources/assets/spectrum/blockstates/bedrock_storage_block.json index fa5bf1a32c..636f33dc81 100644 --- a/src/main/resources/assets/spectrum/blockstates/bedrock_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/bedrock_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bedrock_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/bedrock_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bee_head.json b/src/main/resources/assets/spectrum/blockstates/bee_head.json index fe7d6a8d9a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/bee_head.json +++ b/src/main/resources/assets/spectrum/blockstates/bee_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bee" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bee_mob_block.json b/src/main/resources/assets/spectrum/blockstates/bee_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/bee_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/bee_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bee_wall_head.json b/src/main/resources/assets/spectrum/blockstates/bee_wall_head.json index fe7d6a8d9a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/bee_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/bee_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bee" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bismuth_block.json b/src/main/resources/assets/spectrum/blockstates/bismuth_block.json index 628ccef84f..b211518b4e 100644 --- a/src/main/resources/assets/spectrum/blockstates/bismuth_block.json +++ b/src/main/resources/assets/spectrum/blockstates/bismuth_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bismuth_block" - } - } + "variants": { + "": { + "model": "spectrum:block/bismuth_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bismuth_cluster.json b/src/main/resources/assets/spectrum/blockstates/bismuth_cluster.json index a71a3c5ab6..20df2f182c 100644 --- a/src/main/resources/assets/spectrum/blockstates/bismuth_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/bismuth_cluster.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/bismuth_cluster", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/bismuth_cluster", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/bismuth_cluster", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/bismuth_cluster", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/bismuth_cluster" - }, - "facing=west": { - "model": "spectrum:block/bismuth_cluster", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/bismuth_cluster", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/bismuth_cluster", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/bismuth_cluster", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/bismuth_cluster", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/bismuth_cluster" + }, + "facing=west": { + "model": "spectrum:block/bismuth_cluster", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_block.json b/src/main/resources/assets/spectrum/blockstates/black_block.json index 87a67bf390..9d8c1510f4 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_block.json +++ b/src/main/resources/assets/spectrum/blockstates/black_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_block" - } - } + "variants": { + "": { + "model": "spectrum:block/black_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_button.json b/src/main/resources/assets/spectrum/blockstates/black_button.json new file mode 100644 index 0000000000..a16b559f37 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/black_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/black_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/black_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/black_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/black_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/black_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/black_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/black_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/black_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/black_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/black_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/black_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/black_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/black_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/black_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/black_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_fence.json b/src/main/resources/assets/spectrum/blockstates/black_fence.json new file mode 100644 index 0000000000..032e0e630f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/black_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/black_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/black_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/black_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/black_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/black_fence_gate.json new file mode 100644 index 0000000000..4e04c8a268 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/black_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/black_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/black_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/black_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/black_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/black_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/black_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/black_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/black_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/black_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/black_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/black_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/black_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/black_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/black_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/black_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_glowblock.json b/src/main/resources/assets/spectrum/blockstates/black_glowblock.json index 42d4fd8240..a2eaff61b5 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/black_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/black_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_hole_chest.json b/src/main/resources/assets/spectrum/blockstates/black_hole_chest.json new file mode 100644 index 0000000000..ac4c297149 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_hole_chest.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "spectrum:block/black_hole_chest" + }, + "facing=east": { + "model": "spectrum:block/black_hole_chest", + "y": 90 + }, + "facing=south": { + "model": "spectrum:block/black_hole_chest", + "y": 180 + }, + "facing=west": { + "model": "spectrum:block/black_hole_chest", + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_lamp.json b/src/main/resources/assets/spectrum/blockstates/black_lamp.json index b887d35db7..76b85ba513 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/black_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/black_lamp" - }, - "lit=true": { - "model": "spectrum:block/black_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/black_lamp" + }, + "lit=true": { + "model": "spectrum:block/black_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_leaves.json b/src/main/resources/assets/spectrum/blockstates/black_leaves.json index 402e0acaf3..ca0eae325d 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/black_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/black_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_log.json b/src/main/resources/assets/spectrum/blockstates/black_log.json index 23b4f1b922..2353089e7f 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_log.json +++ b/src/main/resources/assets/spectrum/blockstates/black_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/black_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/black_log" - }, - "axis=z": { - "model": "spectrum:block/black_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/black_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/black_log" + }, + "axis=z": { + "model": "spectrum:block/black_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_materia.json b/src/main/resources/assets/spectrum/blockstates/black_materia.json index 19b44b6301..424342d580 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_materia.json +++ b/src/main/resources/assets/spectrum/blockstates/black_materia.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_materia" - } - } + "variants": { + "": { + "model": "spectrum:block/black_materia" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_plank_button.json b/src/main/resources/assets/spectrum/blockstates/black_plank_button.json deleted file mode 100644 index edbf8e1efd..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/black_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/black_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/black_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/black_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/black_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/black_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/black_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/black_plank_fence.json deleted file mode 100644 index 925489df15..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/black_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/black_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/black_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/black_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/black_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/black_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/black_plank_fence_gate.json deleted file mode 100644 index 18d14010db..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/black_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/black_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/black_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/black_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/black_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/black_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/black_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/black_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/black_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/black_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/black_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/black_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/black_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/black_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/black_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/black_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/black_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/black_plank_pressure_plate.json deleted file mode 100644 index 6eb0535fe2..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/black_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/black_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/black_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/black_plank_slab.json deleted file mode 100644 index aa21fae403..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/black_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/black_plank_slab" - }, - "type=double": { - "model": "spectrum:block/black_planks" - }, - "type=top": { - "model": "spectrum:block/black_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/black_plank_stairs.json deleted file mode 100644 index d8da8f094d..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/black_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/black_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/black_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/black_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/black_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_planks.json b/src/main/resources/assets/spectrum/blockstates/black_planks.json index b3c26e18a3..f954a5f371 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/black_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/black_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/black_pressure_plate.json new file mode 100644 index 0000000000..56819d632c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/black_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/black_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_sapling.json b/src/main/resources/assets/spectrum/blockstates/black_sapling.json index ed47459724..b604e0bbc2 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/black_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/black_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_slab.json b/src/main/resources/assets/spectrum/blockstates/black_slab.json new file mode 100644 index 0000000000..695503294e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/black_slab" + }, + "type=double": { + "model": "spectrum:block/black_planks" + }, + "type=top": { + "model": "spectrum:block/black_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_sludge.json b/src/main/resources/assets/spectrum/blockstates/black_sludge.json new file mode 100644 index 0000000000..c2c8e0820b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_sludge.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/black_sludge" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_body.json b/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_body.json index 3bd25f8acb..a3ce4f238d 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_body.json +++ b/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_body.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/black_spirit_sallow_vines_body_none" - }, - "yield=normal": { - "model": "spectrum:block/black_spirit_sallow_vines_body_normal" - }, - "yield=lucid": { - "model": "spectrum:block/black_spirit_sallow_vines_body_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/black_spirit_sallow_vines_body_none" + }, + "yield=normal": { + "model": "spectrum:block/black_spirit_sallow_vines_body_normal" + }, + "yield=lucid": { + "model": "spectrum:block/black_spirit_sallow_vines_body_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_head.json b/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_head.json index 191573b9ce..6ea6c82d62 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_head.json +++ b/src/main/resources/assets/spectrum/blockstates/black_spirit_sallow_vines_head.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/black_spirit_sallow_vines_head_none" - }, - "yield=normal": { - "model": "spectrum:block/black_spirit_sallow_vines_head_normal" - }, - "yield=lucid": { - "model": "spectrum:block/black_spirit_sallow_vines_head_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/black_spirit_sallow_vines_head_none" + }, + "yield=normal": { + "model": "spectrum:block/black_spirit_sallow_vines_head_normal" + }, + "yield=lucid": { + "model": "spectrum:block/black_spirit_sallow_vines_head_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/black_spore_blossom.json index 5692dd7a99..fe2f8972ca 100644 --- a/src/main/resources/assets/spectrum/blockstates/black_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/black_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/black_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/black_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/black_stairs.json b/src/main/resources/assets/spectrum/blockstates/black_stairs.json new file mode 100644 index 0000000000..afc4078124 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/black_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/black_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/black_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/black_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/black_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/black_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/black_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/black_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/black_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/black_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/black_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag.json b/src/main/resources/assets/spectrum/blockstates/blackslag.json index 07a7468e16..887d8708d0 100644 --- a/src/main/resources/assets/spectrum/blockstates/blackslag.json +++ b/src/main/resources/assets/spectrum/blockstates/blackslag.json @@ -1,7 +1,62 @@ { "variants": { - "": { - "model": "spectrum:block/blackslag" - } + "axis=x": [ + { + "model": "spectrum:block/blackslag", + "x": 90, + "y": 90 + }, + { + "model": "spectrum:block/blackslag_mirrored", + "x": 90, + "y": 90 + }, + { + "model": "spectrum:block/blackslag", + "x": 90, + "y": 90 + }, + { + "model": "spectrum:block/blackslag_mirrored", + "x": 90, + "y": 90 + } + ], + "axis=y": [ + { + "model": "spectrum:block/blackslag" + }, + { + "model": "spectrum:block/blackslag_mirrored" + }, + { + "model": "spectrum:block/blackslag", + "y": 180 + }, + { + "model": "spectrum:block/blackslag_mirrored", + "y": 180 + } + ], + "axis=z": [ + { + "model": "spectrum:block/blackslag", + "x": 90 + }, + { + "model": "spectrum:block/blackslag_mirrored", + "x": 90 + }, + { + "model": "spectrum:block/blackslag", + "x": 90, + "y": 180 + }, + { + "model": "spectrum:block/blackslag_mirrored", + "x": 90, + "y": 180 + } + ] } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_amethyst_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_amethyst_ore.json new file mode 100644 index 0000000000..ba56c168b5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_amethyst_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_amethyst_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_azurite_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_azurite_ore.json new file mode 100644 index 0000000000..26b0cd6ef5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_azurite_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_azurite_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_brick_slab.json b/src/main/resources/assets/spectrum/blockstates/blackslag_brick_slab.json new file mode 100644 index 0000000000..08755cf75f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/blackslag_brick_slab" + }, + "type=double": { + "model": "spectrum:block/blackslag_bricks" + }, + "type=top": { + "model": "spectrum:block/blackslag_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_brick_stairs.json b/src/main/resources/assets/spectrum/blockstates/blackslag_brick_stairs.json new file mode 100644 index 0000000000..d354e0ce77 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/blackslag_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_brick_wall.json b/src/main/resources/assets/spectrum/blockstates/blackslag_brick_wall.json new file mode 100644 index 0000000000..e23b4603f3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_brick_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_bricks.json b/src/main/resources/assets/spectrum/blockstates/blackslag_bricks.json new file mode 100644 index 0000000000..dc29a2f888 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_citrine_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_citrine_ore.json new file mode 100644 index 0000000000..a8f23ae368 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_citrine_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_citrine_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_copper_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_copper_ore.json new file mode 100644 index 0000000000..d4cb666202 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_copper_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_copper_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_moonstone_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_moonstone_ore.json new file mode 100644 index 0000000000..aaf6409a07 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_moonstone_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_moonstone_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_onyx_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_onyx_ore.json new file mode 100644 index 0000000000..f23ff9f5cb --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_onyx_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_onyx_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/blackslag_shimmerstone_light.json new file mode 100644 index 0000000000..122be6b682 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/blackslag_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/blackslag_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/blackslag_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/blackslag_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/blackslag_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/blackslag_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_shimmerstone_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_shimmerstone_ore.json new file mode 100644 index 0000000000..9757666648 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_shimmerstone_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_shimmerstone_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_sparklestone_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_sparklestone_ore.json deleted file mode 100644 index 68f6315409..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blackslag_sparklestone_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/blackslag_sparklestone_ore" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_tile_slab.json b/src/main/resources/assets/spectrum/blockstates/blackslag_tile_slab.json new file mode 100644 index 0000000000..13ab1c4377 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/blackslag_tile_slab" + }, + "type=double": { + "model": "spectrum:block/blackslag_tiles" + }, + "type=top": { + "model": "spectrum:block/blackslag_tile_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_tile_stairs.json b/src/main/resources/assets/spectrum/blockstates/blackslag_tile_stairs.json new file mode 100644 index 0000000000..461c38e8a9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/blackslag_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/blackslag_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/blackslag_tile_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_tile_wall.json b/src/main/resources/assets/spectrum/blockstates/blackslag_tile_wall.json new file mode 100644 index 0000000000..0f0620fdbf --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_tile_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/blackslag_tile_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_tiles.json b/src/main/resources/assets/spectrum/blockstates/blackslag_tiles.json new file mode 100644 index 0000000000..10afb68115 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blackslag_topaz_ore.json b/src/main/resources/assets/spectrum/blockstates/blackslag_topaz_ore.json new file mode 100644 index 0000000000..4dbe3ad040 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blackslag_topaz_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag_topaz_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blaze_head.json b/src/main/resources/assets/spectrum/blockstates/blaze_head.json index 459c22a255..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/blaze_head.json +++ b/src/main/resources/assets/spectrum/blockstates/blaze_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blaze" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blaze_mob_block.json b/src/main/resources/assets/spectrum/blockstates/blaze_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/blaze_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/blaze_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blaze_wall_head.json b/src/main/resources/assets/spectrum/blockstates/blaze_wall_head.json index 459c22a255..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/blaze_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/blaze_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blaze" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blazing_crystal.json b/src/main/resources/assets/spectrum/blockstates/blazing_crystal.json index 0ce6b94dcf..7757936340 100644 --- a/src/main/resources/assets/spectrum/blockstates/blazing_crystal.json +++ b/src/main/resources/assets/spectrum/blockstates/blazing_crystal.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blazing_crystal" - } - } + "variants": { + "": { + "model": "spectrum:block/blazing_crystal" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/block_flooder.json b/src/main/resources/assets/spectrum/blockstates/block_flooder.json index 213eb6c26d..fd169b0418 100644 --- a/src/main/resources/assets/spectrum/blockstates/block_flooder.json +++ b/src/main/resources/assets/spectrum/blockstates/block_flooder.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/block_flooder" - } - } + "variants": { + "": { + "model": "spectrum:block/block_flooder" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/block_placer.json b/src/main/resources/assets/spectrum/blockstates/block_placer.json index de054a265b..1e64529250 100644 --- a/src/main/resources/assets/spectrum/blockstates/block_placer.json +++ b/src/main/resources/assets/spectrum/blockstates/block_placer.json @@ -1,26 +1,26 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/block_placer_vertical", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/block_placer", - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/block_placer" - }, - "facing=south": { - "model": "spectrum:block/block_placer", - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/block_placer_vertical" - }, - "facing=west": { - "model": "spectrum:block/block_placer", - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/block_placer_vertical", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/block_placer", + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/block_placer" + }, + "facing=south": { + "model": "spectrum:block/block_placer", + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/block_placer_vertical" + }, + "facing=west": { + "model": "spectrum:block/block_placer", + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blood_orchid.json b/src/main/resources/assets/spectrum/blockstates/blood_orchid.json index 2711deb4c3..2c52a32ac4 100644 --- a/src/main/resources/assets/spectrum/blockstates/blood_orchid.json +++ b/src/main/resources/assets/spectrum/blockstates/blood_orchid.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0": { - "model": "spectrum:block/blood_orchid0" - }, - "age=1": { - "model": "spectrum:block/blood_orchid1" - }, - "age=2": { - "model": "spectrum:block/blood_orchid2" - }, - "age=3": { - "model": "spectrum:block/blood_orchid3" - }, - "age=4": { - "model": "spectrum:block/blood_orchid4" - }, - "age=5": { - "model": "spectrum:block/blood_orchid5" - } - } + "variants": { + "age=0": { + "model": "spectrum:block/blood_orchid0" + }, + "age=1": { + "model": "spectrum:block/blood_orchid1" + }, + "age=2": { + "model": "spectrum:block/blood_orchid2" + }, + "age=3": { + "model": "spectrum:block/blood_orchid3" + }, + "age=4": { + "model": "spectrum:block/blood_orchid4" + }, + "age=5": { + "model": "spectrum:block/blood_orchid5" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_block.json b/src/main/resources/assets/spectrum/blockstates/blue_block.json index 033a627109..267e11e17d 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_block.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blue_block" - } - } + "variants": { + "": { + "model": "spectrum:block/blue_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_button.json b/src/main/resources/assets/spectrum/blockstates/blue_button.json new file mode 100644 index 0000000000..bb97d231b5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blue_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/blue_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/blue_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/blue_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/blue_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/blue_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/blue_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/blue_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/blue_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/blue_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/blue_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/blue_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/blue_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/blue_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/blue_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_fence.json b/src/main/resources/assets/spectrum/blockstates/blue_fence.json new file mode 100644 index 0000000000..f6a62657bf --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blue_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/blue_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/blue_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/blue_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/blue_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/blue_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/blue_fence_gate.json new file mode 100644 index 0000000000..e08cc21071 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blue_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/blue_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/blue_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/blue_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/blue_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/blue_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/blue_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/blue_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/blue_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/blue_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/blue_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/blue_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/blue_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/blue_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/blue_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/blue_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/blue_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_glowblock.json b/src/main/resources/assets/spectrum/blockstates/blue_glowblock.json index fddf38b328..8427955a32 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blue_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/blue_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_lamp.json b/src/main/resources/assets/spectrum/blockstates/blue_lamp.json index 1b13c99cef..3d5a2264fe 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/blue_lamp" - }, - "lit=true": { - "model": "spectrum:block/blue_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/blue_lamp" + }, + "lit=true": { + "model": "spectrum:block/blue_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_leaves.json b/src/main/resources/assets/spectrum/blockstates/blue_leaves.json index 944478d30f..990f3616c0 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blue_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/blue_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_log.json b/src/main/resources/assets/spectrum/blockstates/blue_log.json index 99dbb2992d..07a1cff69e 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_log.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/blue_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/blue_log" - }, - "axis=z": { - "model": "spectrum:block/blue_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/blue_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/blue_log" + }, + "axis=z": { + "model": "spectrum:block/blue_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_plank_button.json b/src/main/resources/assets/spectrum/blockstates/blue_plank_button.json deleted file mode 100644 index 06db871801..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blue_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/blue_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/blue_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/blue_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/blue_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/blue_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/blue_plank_fence.json deleted file mode 100644 index 8539aebcc6..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blue_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/blue_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/blue_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/blue_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/blue_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/blue_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/blue_plank_fence_gate.json deleted file mode 100644 index 4ed6d5b04b..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blue_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/blue_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/blue_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/blue_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/blue_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/blue_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/blue_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/blue_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/blue_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/blue_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/blue_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/blue_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/blue_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/blue_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/blue_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/blue_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/blue_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/blue_plank_pressure_plate.json deleted file mode 100644 index ccf35b8f3c..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blue_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/blue_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/blue_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/blue_plank_slab.json deleted file mode 100644 index a67bffc9c7..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blue_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/blue_plank_slab" - }, - "type=double": { - "model": "spectrum:block/blue_planks" - }, - "type=top": { - "model": "spectrum:block/blue_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/blue_plank_stairs.json deleted file mode 100644 index 96ac342284..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/blue_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/blue_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/blue_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/blue_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/blue_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_planks.json b/src/main/resources/assets/spectrum/blockstates/blue_planks.json index f5985ad496..12f92e99fd 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blue_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/blue_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/blue_pressure_plate.json new file mode 100644 index 0000000000..13cbbca7b0 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blue_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/blue_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/blue_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_sapling.json b/src/main/resources/assets/spectrum/blockstates/blue_sapling.json index d745098a07..609a6afb75 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blue_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/blue_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_slab.json b/src/main/resources/assets/spectrum/blockstates/blue_slab.json new file mode 100644 index 0000000000..c81eaf6c5d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blue_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/blue_slab" + }, + "type=double": { + "model": "spectrum:block/blue_planks" + }, + "type=top": { + "model": "spectrum:block/blue_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/blue_spore_blossom.json index 7edd9c92c0..be647ee67c 100644 --- a/src/main/resources/assets/spectrum/blockstates/blue_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/blue_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/blue_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/blue_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/blue_stairs.json b/src/main/resources/assets/spectrum/blockstates/blue_stairs.json new file mode 100644 index 0000000000..349b090193 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/blue_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/blue_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/blue_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/blue_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/blue_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/blue_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/blue_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/blue_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/blue_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/blue_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/blue_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bottomless_bundle.json b/src/main/resources/assets/spectrum/blockstates/bottomless_bundle.json index db8c306507..5b51965f19 100644 --- a/src/main/resources/assets/spectrum/blockstates/bottomless_bundle.json +++ b/src/main/resources/assets/spectrum/blockstates/bottomless_bundle.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/bottomless_bundle" - } - } + "variants": { + "": { + "model": "spectrum:block/bottomless_bundle" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/bristle_sprouts.json b/src/main/resources/assets/spectrum/blockstates/bristle_sprouts.json new file mode 100644 index 0000000000..01a7825215 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/bristle_sprouts.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/bristle_sprouts" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_block.json b/src/main/resources/assets/spectrum/blockstates/brown_block.json index 28458d9562..71e0900408 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_block.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/brown_block" - } - } + "variants": { + "": { + "model": "spectrum:block/brown_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_button.json b/src/main/resources/assets/spectrum/blockstates/brown_button.json new file mode 100644 index 0000000000..986c3d6fe9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/brown_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/brown_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/brown_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/brown_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/brown_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/brown_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/brown_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/brown_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/brown_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/brown_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/brown_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/brown_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/brown_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/brown_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/brown_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_fence.json b/src/main/resources/assets/spectrum/blockstates/brown_fence.json new file mode 100644 index 0000000000..a61d7ee0fa --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/brown_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/brown_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/brown_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/brown_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/brown_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/brown_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/brown_fence_gate.json new file mode 100644 index 0000000000..5f5c649347 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/brown_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/brown_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/brown_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/brown_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/brown_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/brown_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/brown_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/brown_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/brown_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/brown_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/brown_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/brown_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/brown_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/brown_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/brown_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/brown_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/brown_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_glowblock.json b/src/main/resources/assets/spectrum/blockstates/brown_glowblock.json index 8fda5d5ac7..0756eb9e70 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/brown_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/brown_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_lamp.json b/src/main/resources/assets/spectrum/blockstates/brown_lamp.json index 6fc7fa5398..dc3915d3d1 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/brown_lamp" - }, - "lit=true": { - "model": "spectrum:block/brown_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/brown_lamp" + }, + "lit=true": { + "model": "spectrum:block/brown_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_leaves.json b/src/main/resources/assets/spectrum/blockstates/brown_leaves.json index eeb52e8fdd..1a463a42b6 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/brown_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/brown_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_log.json b/src/main/resources/assets/spectrum/blockstates/brown_log.json index 010f5b75d3..bc6b155504 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_log.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/brown_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/brown_log" - }, - "axis=z": { - "model": "spectrum:block/brown_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/brown_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/brown_log" + }, + "axis=z": { + "model": "spectrum:block/brown_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_plank_button.json b/src/main/resources/assets/spectrum/blockstates/brown_plank_button.json deleted file mode 100644 index 2da206231b..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/brown_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/brown_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/brown_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/brown_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/brown_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/brown_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/brown_plank_fence.json deleted file mode 100644 index a6ed8643f0..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/brown_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/brown_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/brown_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/brown_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/brown_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/brown_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/brown_plank_fence_gate.json deleted file mode 100644 index 4a4165ce8c..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/brown_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/brown_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/brown_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/brown_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/brown_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/brown_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/brown_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/brown_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/brown_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/brown_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/brown_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/brown_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/brown_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/brown_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/brown_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/brown_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/brown_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/brown_plank_pressure_plate.json deleted file mode 100644 index e95d50a245..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/brown_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/brown_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/brown_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/brown_plank_slab.json deleted file mode 100644 index 24f7053e4e..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/brown_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/brown_plank_slab" - }, - "type=double": { - "model": "spectrum:block/brown_planks" - }, - "type=top": { - "model": "spectrum:block/brown_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/brown_plank_stairs.json deleted file mode 100644 index 8d6fd8323d..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/brown_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/brown_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/brown_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/brown_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/brown_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_planks.json b/src/main/resources/assets/spectrum/blockstates/brown_planks.json index efd4c29b88..6525eef357 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/brown_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/brown_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/brown_pressure_plate.json new file mode 100644 index 0000000000..9fce0522b3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/brown_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/brown_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/brown_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_sapling.json b/src/main/resources/assets/spectrum/blockstates/brown_sapling.json index 32b2a5a8b4..022bd6cf9a 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/brown_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/brown_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_slab.json b/src/main/resources/assets/spectrum/blockstates/brown_slab.json new file mode 100644 index 0000000000..c1ccfc3b62 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/brown_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/brown_slab" + }, + "type=double": { + "model": "spectrum:block/brown_planks" + }, + "type=top": { + "model": "spectrum:block/brown_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/brown_spore_blossom.json index e9cbe933c1..c24982fe0e 100644 --- a/src/main/resources/assets/spectrum/blockstates/brown_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/brown_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/brown_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/brown_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/brown_stairs.json b/src/main/resources/assets/spectrum/blockstates/brown_stairs.json new file mode 100644 index 0000000000..bb0e7a27f1 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/brown_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/brown_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/brown_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/brown_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/brown_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/brown_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/brown_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/brown_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/brown_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/brown_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/brown_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/budding_citrine.json b/src/main/resources/assets/spectrum/blockstates/budding_citrine.json index af0e1fee9a..a9c2654f77 100644 --- a/src/main/resources/assets/spectrum/blockstates/budding_citrine.json +++ b/src/main/resources/assets/spectrum/blockstates/budding_citrine.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/budding_citrine" - } - } + "variants": { + "": { + "model": "spectrum:block/budding_citrine" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/budding_moonstone.json b/src/main/resources/assets/spectrum/blockstates/budding_moonstone.json index 73ba0b7ff1..d24f5784f1 100644 --- a/src/main/resources/assets/spectrum/blockstates/budding_moonstone.json +++ b/src/main/resources/assets/spectrum/blockstates/budding_moonstone.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/budding_moonstone" - } - } + "variants": { + "": { + "model": "spectrum:block/budding_moonstone" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/budding_onyx.json b/src/main/resources/assets/spectrum/blockstates/budding_onyx.json index 0a36d4fd52..45d5e7f42e 100644 --- a/src/main/resources/assets/spectrum/blockstates/budding_onyx.json +++ b/src/main/resources/assets/spectrum/blockstates/budding_onyx.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/budding_onyx" - } - } + "variants": { + "": { + "model": "spectrum:block/budding_onyx" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/budding_topaz.json b/src/main/resources/assets/spectrum/blockstates/budding_topaz.json index d6fde70708..f9f16e3dc5 100644 --- a/src/main/resources/assets/spectrum/blockstates/budding_topaz.json +++ b/src/main/resources/assets/spectrum/blockstates/budding_topaz.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/budding_topaz" - } - } + "variants": { + "": { + "model": "spectrum:block/budding_topaz" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_brick_slab.json b/src/main/resources/assets/spectrum/blockstates/calcite_brick_slab.json index 7fea3ac79a..96fa6b00f1 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_brick_slab.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_brick_slab.json @@ -1,13 +1,13 @@ { - "variants": { - "type=bottom": { - "model": "spectrum:block/calcite_brick_slab" - }, - "type=double": { - "model": "spectrum:block/calcite_bricks" - }, - "type=top": { - "model": "spectrum:block/calcite_brick_slab_top" - } - } + "variants": { + "type=bottom": { + "model": "spectrum:block/calcite_brick_slab" + }, + "type=double": { + "model": "spectrum:block/calcite_bricks" + }, + "type=top": { + "model": "spectrum:block/calcite_brick_slab_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_brick_stairs.json b/src/main/resources/assets/spectrum/blockstates/calcite_brick_stairs.json index 229d556990..9ede8a2bac 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_brick_stairs.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_brick_stairs.json @@ -1,209 +1,209 @@ { - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_brick_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_brick_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/calcite_brick_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/calcite_brick_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_brick_wall.json b/src/main/resources/assets/spectrum/blockstates/calcite_brick_wall.json index 853b7c4f7b..2ebfc4bc3e 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_brick_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_brick_wall.json @@ -1,90 +1,90 @@ { - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_brick_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_brick_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_bricks.json b/src/main/resources/assets/spectrum/blockstates/calcite_bricks.json index 167e6b2a55..47b2b3017b 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_bricks.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_bricks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/calcite_bricks" - } - } + "variants": { + "": { + "model": "spectrum:block/calcite_bricks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/calcite_shimmerstone_light.json new file mode 100644 index 0000000000..15e264edea --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/calcite_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/calcite_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/calcite_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/calcite_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/calcite_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/calcite_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/calcite_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_slab.json b/src/main/resources/assets/spectrum/blockstates/calcite_slab.json index c4938fec70..774f9842be 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_slab.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_slab.json @@ -1,13 +1,13 @@ { - "variants": { - "type=bottom": { - "model": "spectrum:block/calcite_slab" - }, - "type=double": { - "model": "minecraft:block/calcite" - }, - "type=top": { - "model": "spectrum:block/calcite_slab_top" - } - } + "variants": { + "type=bottom": { + "model": "spectrum:block/calcite_slab" + }, + "type=double": { + "model": "minecraft:block/calcite" + }, + "type=top": { + "model": "spectrum:block/calcite_slab_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/calcite_sparklestone_light.json deleted file mode 100644 index 3d8e5fc419..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/calcite_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/calcite_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/calcite_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/calcite_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/calcite_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/calcite_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/calcite_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_stairs.json b/src/main/resources/assets/spectrum/blockstates/calcite_stairs.json index f666a71af1..9575d0cc49 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_stairs.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_stairs.json @@ -1,209 +1,209 @@ { - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/calcite_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/calcite_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/calcite_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/calcite_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_tile_slab.json b/src/main/resources/assets/spectrum/blockstates/calcite_tile_slab.json new file mode 100644 index 0000000000..c0f8717437 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/calcite_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/polished_calcite_slab" + }, + "type=double": { + "model": "spectrum:block/polished_calcite" + }, + "type=top": { + "model": "spectrum:block/polished_calcite_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_tile_stairs.json b/src/main/resources/assets/spectrum/blockstates/calcite_tile_stairs.json new file mode 100644 index 0000000000..fa1f1da10d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/calcite_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/calcite_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/calcite_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/calcite_tile_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_tile_wall.json b/src/main/resources/assets/spectrum/blockstates/calcite_tile_wall.json new file mode 100644 index 0000000000..acd2b278d5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/calcite_tile_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_tile_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_tiles.json b/src/main/resources/assets/spectrum/blockstates/calcite_tiles.json new file mode 100644 index 0000000000..e29633a84b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/calcite_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/calcite_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/calcite_wall.json b/src/main/resources/assets/spectrum/blockstates/calcite_wall.json index 0930377835..1c18007131 100644 --- a/src/main/resources/assets/spectrum/blockstates/calcite_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/calcite_wall.json @@ -1,90 +1,90 @@ { - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "spectrum:block/calcite_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "spectrum:block/calcite_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/calcite_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/calcite_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cat_head.json b/src/main/resources/assets/spectrum/blockstates/cat_head.json index 66743b5ba8..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/cat_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cat_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cat" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cat_mob_block.json b/src/main/resources/assets/spectrum/blockstates/cat_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/cat_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/cat_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cat_wall_head.json b/src/main/resources/assets/spectrum/blockstates/cat_wall_head.json index 66743b5ba8..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/cat_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cat_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cat" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cave_spider_head.json b/src/main/resources/assets/spectrum/blockstates/cave_spider_head.json index dd74fb78c1..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/cave_spider_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cave_spider_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cave_spider" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cave_spider_wall_head.json b/src/main/resources/assets/spectrum/blockstates/cave_spider_wall_head.json index dd74fb78c1..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/cave_spider_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cave_spider_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cave_spider" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/certus_quartz_cluster.json b/src/main/resources/assets/spectrum/blockstates/certus_quartz_cluster.json index 762e8a3fbb..3e15b2c67d 100644 --- a/src/main/resources/assets/spectrum/blockstates/certus_quartz_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/certus_quartz_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/certus_quartz_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/certus_quartz_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_cap.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_cap.json new file mode 100644 index 0000000000..510456a66b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/chestnut_noxcap_cap" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_gills.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_gills.json new file mode 100644 index 0000000000..69617875be --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_gills.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/chestnut_noxcap_gills", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/chestnut_noxcap_gills" + }, + "axis=z": { + "model": "spectrum:block/chestnut_noxcap_gills", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_stem.json new file mode 100644 index 0000000000..6aaf6ae00e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/chestnut_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/chestnut_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/chestnut_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxshroom.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxshroom.json new file mode 100644 index 0000000000..ad1c462f89 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxshroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/chestnut_noxshroom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_amphora.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_amphora.json new file mode 100644 index 0000000000..0c2ddf8967 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_amphora.json @@ -0,0 +1,56 @@ +{ + "variants": { + "facing=down,open=false": { + "model": "spectrum:block/chestnut_noxwood_amphora", + "x": 180 + }, + "facing=down,open=true": { + "model": "spectrum:block/chestnut_noxwood_amphora_open", + "x": 180 + }, + "facing=east,open=false": { + "model": "spectrum:block/chestnut_noxwood_amphora", + "x": 90, + "y": 90 + }, + "facing=east,open=true": { + "model": "spectrum:block/chestnut_noxwood_amphora_open", + "x": 90, + "y": 90 + }, + "facing=north,open=false": { + "model": "spectrum:block/chestnut_noxwood_amphora", + "x": 90 + }, + "facing=north,open=true": { + "model": "spectrum:block/chestnut_noxwood_amphora_open", + "x": 90 + }, + "facing=south,open=false": { + "model": "spectrum:block/chestnut_noxwood_amphora", + "x": 90, + "y": 180 + }, + "facing=south,open=true": { + "model": "spectrum:block/chestnut_noxwood_amphora_open", + "x": 90, + "y": 180 + }, + "facing=up,open=false": { + "model": "spectrum:block/chestnut_noxwood_amphora" + }, + "facing=up,open=true": { + "model": "spectrum:block/chestnut_noxwood_amphora_open" + }, + "facing=west,open=false": { + "model": "spectrum:block/chestnut_noxwood_amphora", + "x": 90, + "y": 270 + }, + "facing=west,open=true": { + "model": "spectrum:block/chestnut_noxwood_amphora_open", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_beam.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_beam.json new file mode 100644 index 0000000000..92441ba34f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_beam.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/chestnut_noxwood_beam", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/chestnut_noxwood_beam" + }, + "axis=z": { + "model": "spectrum:block/chestnut_noxwood_beam", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_button.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_button.json new file mode 100644 index 0000000000..b7df0d636d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/chestnut_noxwood_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/chestnut_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_door.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_door.json new file mode 100644 index 0000000000..34d87ee6ae --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "spectrum:block/chestnut_noxwood_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "spectrum:block/chestnut_noxwood_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_fence.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_fence.json new file mode 100644 index 0000000000..9a52856eef --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/chestnut_noxwood_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/chestnut_noxwood_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/chestnut_noxwood_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/chestnut_noxwood_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/chestnut_noxwood_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_fence_gate.json new file mode 100644 index 0000000000..d5baf6cbc9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/chestnut_noxwood_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/chestnut_noxwood_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/chestnut_noxwood_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/chestnut_noxwood_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/chestnut_noxwood_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/chestnut_noxwood_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/chestnut_noxwood_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/chestnut_noxwood_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/chestnut_noxwood_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_lamp.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_lamp.json new file mode 100644 index 0000000000..d47e34851d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_lamp.json @@ -0,0 +1,28 @@ +{ + "variants": { + "hanging=false,diagonal=false,alt=false": { + "model": "spectrum:block/chestnut_noxwood_lamp" + }, + "hanging=false,diagonal=false,alt=true": { + "model": "spectrum:block/chestnut_noxwood_lamp_alt" + }, + "hanging=false,diagonal=true,alt=false": { + "model": "spectrum:block/chestnut_noxwood_lamp_diagonal" + }, + "hanging=false,diagonal=true,alt=true": { + "model": "spectrum:block/chestnut_noxwood_lamp_diagonal_alt" + }, + "hanging=true,diagonal=false,alt=false": { + "model": "spectrum:block/chestnut_noxwood_lamp_hanging" + }, + "hanging=true,diagonal=false,alt=true": { + "model": "spectrum:block/chestnut_noxwood_lamp_hanging_alt" + }, + "hanging=true,diagonal=true,alt=false": { + "model": "spectrum:block/chestnut_noxwood_lamp_hanging_diagonal" + }, + "hanging=true,diagonal=true,alt=true": { + "model": "spectrum:block/chestnut_noxwood_lamp_hanging_diagonal_alt" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_lantern.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_lantern.json new file mode 100644 index 0000000000..5bd2fac564 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_lantern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "spectrum:block/chestnut_noxwood_lantern_off" + }, + "lit=true": { + "model": "spectrum:block/chestnut_noxwood_lantern_on" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_light.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_light.json new file mode 100644 index 0000000000..100201a961 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_light.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/chestnut_noxwood_light", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/chestnut_noxwood_light" + }, + "axis=z": { + "model": "spectrum:block/chestnut_noxwood_light", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_planks.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_planks.json new file mode 100644 index 0000000000..bb295f81be --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/chestnut_noxwood_planks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_pressure_plate.json new file mode 100644 index 0000000000..71ab9ced8c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/chestnut_noxwood_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/chestnut_noxwood_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_slab.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_slab.json new file mode 100644 index 0000000000..fa47678e50 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/chestnut_noxwood_slab" + }, + "type=double": { + "model": "spectrum:block/chestnut_noxwood_planks" + }, + "type=top": { + "model": "spectrum:block/chestnut_noxwood_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_stairs.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_stairs.json new file mode 100644 index 0000000000..fc3a558fd8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/chestnut_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/chestnut_noxwood_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_trapdoor.json new file mode 100644 index 0000000000..e6910a7b8a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chestnut_noxwood_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "spectrum:block/chestnut_noxwood_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chicken_head.json b/src/main/resources/assets/spectrum/blockstates/chicken_head.json index def8f51fad..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/chicken_head.json +++ b/src/main/resources/assets/spectrum/blockstates/chicken_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/chicken" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chicken_mob_block.json b/src/main/resources/assets/spectrum/blockstates/chicken_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/chicken_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/chicken_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chicken_wall_head.json b/src/main/resources/assets/spectrum/blockstates/chicken_wall_head.json index def8f51fad..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/chicken_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/chicken_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/chicken" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chiseled_polished_basalt.json b/src/main/resources/assets/spectrum/blockstates/chiseled_polished_basalt.json index 0f670ba51f..d657171bdc 100644 --- a/src/main/resources/assets/spectrum/blockstates/chiseled_polished_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/chiseled_polished_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/chiseled_polished_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/chiseled_polished_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chiseled_polished_blackslag.json b/src/main/resources/assets/spectrum/blockstates/chiseled_polished_blackslag.json new file mode 100644 index 0000000000..f2c282984e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/chiseled_polished_blackslag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/chiseled_polished_blackslag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/chiseled_polished_calcite.json b/src/main/resources/assets/spectrum/blockstates/chiseled_polished_calcite.json index c51e988d75..7856319b67 100644 --- a/src/main/resources/assets/spectrum/blockstates/chiseled_polished_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/chiseled_polished_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/chiseled_polished_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/chiseled_polished_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_basalt_lamp.json b/src/main/resources/assets/spectrum/blockstates/citrine_basalt_lamp.json index 25d563dd4e..a6829ab2ae 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_basalt_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_basalt_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_basalt_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_block.json b/src/main/resources/assets/spectrum/blockstates/citrine_block.json index 90d620bcf8..f7fb2816b5 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_block.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_block" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_calcite_lamp.json b/src/main/resources/assets/spectrum/blockstates/citrine_calcite_lamp.json index e38cfe8301..284a278026 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_calcite_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_calcite_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_calcite_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_chime.json b/src/main/resources/assets/spectrum/blockstates/citrine_chime.json index 11be33df1e..ea851617dc 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_chime.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_chime.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_chime" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_chime" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_basalt.json index 929cb7d835..36584bc52b 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_chiseled_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_chiseled_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_calcite.json index 7af54baeea..8b4cbc5157 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_chiseled_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_chiseled_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_chiseled_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_cluster.json b/src/main/resources/assets/spectrum/blockstates/citrine_cluster.json index 9838011983..b9bca024a2 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_cluster.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/citrine_cluster", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/citrine_cluster", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/citrine_cluster", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/citrine_cluster", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/citrine_cluster" - }, - "facing=west": { - "model": "spectrum:block/citrine_cluster", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/citrine_cluster", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/citrine_cluster", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/citrine_cluster", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/citrine_cluster", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/citrine_cluster" + }, + "facing=west": { + "model": "spectrum:block/citrine_cluster", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_decostone.json b/src/main/resources/assets/spectrum/blockstates/citrine_decostone.json index 1a23776e79..814e8fbb7a 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_decostone.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_decostone.json @@ -1,10 +1,10 @@ { - "variants": { - "half=lower": { - "model": "spectrum:block/citrine_decostone_bottom" - }, - "half=upper": { - "model": "spectrum:block/citrine_decostone_top" - } - } + "variants": { + "half=lower": { + "model": "spectrum:block/citrine_decostone_bottom" + }, + "half=upper": { + "model": "spectrum:block/citrine_decostone_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_glass.json b/src/main/resources/assets/spectrum/blockstates/citrine_glass.json index ccdffb98e4..e1e8256385 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_ore.json b/src/main/resources/assets/spectrum/blockstates/citrine_ore.json index 294aa1ce4e..740013e6a7 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/citrine_player_only_glass.json deleted file mode 100644 index ccdffb98e4..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/citrine_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/citrine_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/citrine_semi_permeable_glass.json new file mode 100644 index 0000000000..e1e8256385 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/citrine_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/citrine_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_storage_block.json b/src/main/resources/assets/spectrum/blockstates/citrine_storage_block.json index 3ea5e4181f..008e874358 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/citrine_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/citrine_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/citrine_sugar_stick.json b/src/main/resources/assets/spectrum/blockstates/citrine_sugar_stick.json index 71fed0715d..74ca8797b9 100644 --- a/src/main/resources/assets/spectrum/blockstates/citrine_sugar_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/citrine_sugar_stick.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0,liquidcrystallogged=false": { - "model": "spectrum:block/citrine_sugar_stick0" - }, - "age=1,liquidcrystallogged=false": { - "model": "spectrum:block/citrine_sugar_stick1" - }, - "age=2,liquidcrystallogged=false": { - "model": "spectrum:block/citrine_sugar_stick2" - }, - "age=0,liquidcrystallogged=true": { - "model": "spectrum:block/citrine_sugar_stick0" - }, - "age=1,liquidcrystallogged=true": { - "model": "spectrum:block/citrine_sugar_stick1" - }, - "age=2,liquidcrystallogged=true": { - "model": "spectrum:block/citrine_sugar_stick2" - } - } + "variants": { + "age=0,liquidcrystallogged=false": { + "model": "spectrum:block/citrine_sugar_stick0" + }, + "age=1,liquidcrystallogged=false": { + "model": "spectrum:block/citrine_sugar_stick1" + }, + "age=2,liquidcrystallogged=false": { + "model": "spectrum:block/citrine_sugar_stick2" + }, + "age=0,liquidcrystallogged=true": { + "model": "spectrum:block/citrine_sugar_stick0" + }, + "age=1,liquidcrystallogged=true": { + "model": "spectrum:block/citrine_sugar_stick1" + }, + "age=2,liquidcrystallogged=true": { + "model": "spectrum:block/citrine_sugar_stick2" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/clover.json b/src/main/resources/assets/spectrum/blockstates/clover.json index 5595c8139b..d8bba009c5 100644 --- a/src/main/resources/assets/spectrum/blockstates/clover.json +++ b/src/main/resources/assets/spectrum/blockstates/clover.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/clover" - } - } + "variants": { + "": { + "model": "spectrum:block/clover" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/clownfish_head.json b/src/main/resources/assets/spectrum/blockstates/clownfish_head.json index d2b178bb5b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/clownfish_head.json +++ b/src/main/resources/assets/spectrum/blockstates/clownfish_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/clownfish" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/clownfish_wall_head.json b/src/main/resources/assets/spectrum/blockstates/clownfish_wall_head.json index d2b178bb5b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/clownfish_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/clownfish_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/clownfish" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/coal_cluster.json b/src/main/resources/assets/spectrum/blockstates/coal_cluster.json index af4ee92219..c7d4ecdd42 100644 --- a/src/main/resources/assets/spectrum/blockstates/coal_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/coal_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/coal_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/coal_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag.json b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag.json new file mode 100644 index 0000000000..bba7d2e56c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cobbled_blackslag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_slab.json b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_slab.json new file mode 100644 index 0000000000..862b76c1af --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/cobbled_blackslag_slab" + }, + "type=double": { + "model": "spectrum:block/cobbled_blackslag" + }, + "type=top": { + "model": "spectrum:block/cobbled_blackslag_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_stairs.json b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_stairs.json new file mode 100644 index 0000000000..a8fb99c365 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/cobbled_blackslag_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/cobbled_blackslag_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_wall.json b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_wall.json new file mode 100644 index 0000000000..7d4527569c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cobbled_blackslag_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/cobbled_blackslag_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/color_picker.json b/src/main/resources/assets/spectrum/blockstates/color_picker.json index 407d8e646c..cc9a595781 100644 --- a/src/main/resources/assets/spectrum/blockstates/color_picker.json +++ b/src/main/resources/assets/spectrum/blockstates/color_picker.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/color_picker" - } - } + "variants": { + "": { + "model": "spectrum:block/color_picker" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/compacting_chest.json b/src/main/resources/assets/spectrum/blockstates/compacting_chest.json index 53ac8b595d..119f2566d1 100644 --- a/src/main/resources/assets/spectrum/blockstates/compacting_chest.json +++ b/src/main/resources/assets/spectrum/blockstates/compacting_chest.json @@ -1,19 +1,19 @@ { - "variants": { - "facing=north": { - "model": "spectrum:block/compacting_chest" - }, - "facing=east": { - "model": "spectrum:block/compacting_chest", - "y": 90 - }, - "facing=south": { - "model": "spectrum:block/compacting_chest", - "y": 180 - }, - "facing=west": { - "model": "spectrum:block/compacting_chest", - "y": 270 - } - } + "variants": { + "facing=north": { + "model": "spectrum:block/compacting_chest" + }, + "facing=east": { + "model": "spectrum:block/compacting_chest", + "y": 90 + }, + "facing=south": { + "model": "spectrum:block/compacting_chest", + "y": 180 + }, + "facing=west": { + "model": "spectrum:block/compacting_chest", + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/connection_node.json b/src/main/resources/assets/spectrum/blockstates/connection_node.json index 06e62fe20f..d6928c175a 100644 --- a/src/main/resources/assets/spectrum/blockstates/connection_node.json +++ b/src/main/resources/assets/spectrum/blockstates/connection_node.json @@ -1,29 +1,29 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/connection_node", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/connection_node", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/connection_node", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/connection_node", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/connection_node" - }, - "facing=down": { - "model": "spectrum:block/connection_node", - "x": 180 - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/connection_node", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/connection_node", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/connection_node", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/connection_node", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/connection_node" + }, + "facing=down": { + "model": "spectrum:block/connection_node", + "x": 180 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/copper_cluster.json b/src/main/resources/assets/spectrum/blockstates/copper_cluster.json index abc71d63e6..a036d61638 100644 --- a/src/main/resources/assets/spectrum/blockstates/copper_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/copper_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/copper_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/copper_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/courier_statue.json b/src/main/resources/assets/spectrum/blockstates/courier_statue.json index 93bd27c04e..7ada74fb0b 100644 --- a/src/main/resources/assets/spectrum/blockstates/courier_statue.json +++ b/src/main/resources/assets/spectrum/blockstates/courier_statue.json @@ -1,34 +1,34 @@ { - "variants": { - "half=lower,facing=north": { - "model": "spectrum:block/courier_statue_bottom" - }, - "half=lower,facing=east": { - "model": "spectrum:block/courier_statue_bottom", - "y": 90 - }, - "half=lower,facing=south": { - "model": "spectrum:block/courier_statue_bottom", - "y": 180 - }, - "half=lower,facing=west": { - "model": "spectrum:block/courier_statue_bottom", - "y": 270 - }, - "half=upper,facing=north": { - "model": "spectrum:block/courier_statue_top" - }, - "half=upper,facing=east": { - "model": "spectrum:block/courier_statue_top", - "y": 90 - }, - "half=upper,facing=south": { - "model": "spectrum:block/courier_statue_top", - "y": 180 - }, - "half=upper,facing=west": { - "model": "spectrum:block/courier_statue_top", - "y": 270 - } - } + "variants": { + "half=lower,facing=north": { + "model": "spectrum:block/courier_statue_bottom" + }, + "half=lower,facing=east": { + "model": "spectrum:block/courier_statue_bottom", + "y": 90 + }, + "half=lower,facing=south": { + "model": "spectrum:block/courier_statue_bottom", + "y": 180 + }, + "half=lower,facing=west": { + "model": "spectrum:block/courier_statue_bottom", + "y": 270 + }, + "half=upper,facing=north": { + "model": "spectrum:block/courier_statue_top" + }, + "half=upper,facing=east": { + "model": "spectrum:block/courier_statue_top", + "y": 90 + }, + "half=upper,facing=south": { + "model": "spectrum:block/courier_statue_top", + "y": 180 + }, + "half=upper,facing=west": { + "model": "spectrum:block/courier_statue_top", + "y": 270 + } + } } diff --git a/src/main/resources/assets/spectrum/blockstates/cow_head.json b/src/main/resources/assets/spectrum/blockstates/cow_head.json index de0ad241b4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/cow_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cow_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cow" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cow_mob_block.json b/src/main/resources/assets/spectrum/blockstates/cow_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/cow_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/cow_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cow_wall_head.json b/src/main/resources/assets/spectrum/blockstates/cow_wall_head.json index de0ad241b4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/cow_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cow_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cow" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_basalt_bricks.json b/src/main/resources/assets/spectrum/blockstates/cracked_basalt_bricks.json new file mode 100644 index 0000000000..a325642a96 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cracked_basalt_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cracked_basalt_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_basalt_tiles.json b/src/main/resources/assets/spectrum/blockstates/cracked_basalt_tiles.json new file mode 100644 index 0000000000..cdd2c4a6c6 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cracked_basalt_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cracked_basalt_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_blackslag_bricks.json b/src/main/resources/assets/spectrum/blockstates/cracked_blackslag_bricks.json new file mode 100644 index 0000000000..c6fc48ee17 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cracked_blackslag_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cracked_blackslag_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_blackslag_tiles.json b/src/main/resources/assets/spectrum/blockstates/cracked_blackslag_tiles.json new file mode 100644 index 0000000000..bef12b142e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cracked_blackslag_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cracked_blackslag_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_calcite_bricks.json b/src/main/resources/assets/spectrum/blockstates/cracked_calcite_bricks.json new file mode 100644 index 0000000000..24943408f8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cracked_calcite_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cracked_calcite_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_calcite_tiles.json b/src/main/resources/assets/spectrum/blockstates/cracked_calcite_tiles.json new file mode 100644 index 0000000000..f003fd5b42 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cracked_calcite_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/cracked_calcite_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cracked_end_portal_frame.json b/src/main/resources/assets/spectrum/blockstates/cracked_end_portal_frame.json index 6e3168dc1b..ecd0a17692 100644 --- a/src/main/resources/assets/spectrum/blockstates/cracked_end_portal_frame.json +++ b/src/main/resources/assets/spectrum/blockstates/cracked_end_portal_frame.json @@ -1,32 +1,32 @@ { - "variants": { - "eye_type=none,facing_vertical=false": { - "model": "spectrum:block/cracked_end_portal_frame_none" - }, - "eye_type=ender,facing_vertical=false": { - "model": "spectrum:block/cracked_end_portal_frame_ender" - }, - "eye_type=vanilla_cracker,facing_vertical=false": { - "model": "spectrum:block/cracked_end_portal_frame_vanilla_cracker" - }, - "eye_type=cracker,facing_vertical=false": { - "model": "spectrum:block/cracked_end_portal_frame_cracker" - }, - "eye_type=none,facing_vertical=true": { - "model": "spectrum:block/cracked_end_portal_frame_none", - "y": 90 - }, - "eye_type=ender,facing_vertical=true": { - "model": "spectrum:block/cracked_end_portal_frame_ender", - "y": 90 - }, - "eye_type=vanilla_cracker,facing_vertical=true": { - "model": "spectrum:block/cracked_end_portal_frame_vanilla_cracker", - "y": 90 - }, - "eye_type=cracker,facing_vertical=true": { - "model": "spectrum:block/cracked_end_portal_frame_cracker", - "y": 90 - } - } + "variants": { + "eye_type=none,facing_vertical=false": { + "model": "spectrum:block/cracked_end_portal_frame_none" + }, + "eye_type=ender,facing_vertical=false": { + "model": "spectrum:block/cracked_end_portal_frame_ender" + }, + "eye_type=vanilla_cracker,facing_vertical=false": { + "model": "spectrum:block/cracked_end_portal_frame_vanilla_cracker" + }, + "eye_type=cracker,facing_vertical=false": { + "model": "spectrum:block/cracked_end_portal_frame_cracker" + }, + "eye_type=none,facing_vertical=true": { + "model": "spectrum:block/cracked_end_portal_frame_none", + "y": 90 + }, + "eye_type=ender,facing_vertical=true": { + "model": "spectrum:block/cracked_end_portal_frame_ender", + "y": 90 + }, + "eye_type=vanilla_cracker,facing_vertical=true": { + "model": "spectrum:block/cracked_end_portal_frame_vanilla_cracker", + "y": 90 + }, + "eye_type=cracker,facing_vertical=true": { + "model": "spectrum:block/cracked_end_portal_frame_cracker", + "y": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/creative_particle_spawner.json b/src/main/resources/assets/spectrum/blockstates/creative_particle_spawner.json index 64da707897..cf934d7203 100644 --- a/src/main/resources/assets/spectrum/blockstates/creative_particle_spawner.json +++ b/src/main/resources/assets/spectrum/blockstates/creative_particle_spawner.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/particle_spawner" - } - } + "variants": { + "": { + "model": "spectrum:block/particle_spawner" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/creeper_mob_block.json b/src/main/resources/assets/spectrum/blockstates/creeper_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/creeper_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/creeper_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/crystal_apothecary.json b/src/main/resources/assets/spectrum/blockstates/crystal_apothecary.json index 6ff8ffee2a..52f807969d 100644 --- a/src/main/resources/assets/spectrum/blockstates/crystal_apothecary.json +++ b/src/main/resources/assets/spectrum/blockstates/crystal_apothecary.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/crystal_apothecary" - } - } + "variants": { + "": { + "model": "spectrum:block/crystal_apothecary" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/crystallarieum.json b/src/main/resources/assets/spectrum/blockstates/crystallarieum.json index eb74688bc0..9b9cc76f6a 100644 --- a/src/main/resources/assets/spectrum/blockstates/crystallarieum.json +++ b/src/main/resources/assets/spectrum/blockstates/crystallarieum.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/crystallarieum" - } - } + "variants": { + "": { + "model": "spectrum:block/crystallarieum" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_block.json b/src/main/resources/assets/spectrum/blockstates/cyan_block.json index 8aed8e6e1d..6f014a8cd2 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_block.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cyan_block" - } - } + "variants": { + "": { + "model": "spectrum:block/cyan_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_button.json b/src/main/resources/assets/spectrum/blockstates/cyan_button.json new file mode 100644 index 0000000000..f7e4716651 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cyan_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/cyan_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/cyan_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/cyan_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/cyan_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/cyan_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/cyan_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_fence.json b/src/main/resources/assets/spectrum/blockstates/cyan_fence.json new file mode 100644 index 0000000000..7eb5ac04e3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cyan_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/cyan_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/cyan_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/cyan_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/cyan_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/cyan_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/cyan_fence_gate.json new file mode 100644 index 0000000000..4150e3f155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cyan_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/cyan_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/cyan_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/cyan_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/cyan_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/cyan_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/cyan_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/cyan_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/cyan_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/cyan_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/cyan_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/cyan_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/cyan_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/cyan_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/cyan_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/cyan_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/cyan_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_glowblock.json b/src/main/resources/assets/spectrum/blockstates/cyan_glowblock.json index 61715c70ed..a7b8f54a45 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cyan_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/cyan_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_lamp.json b/src/main/resources/assets/spectrum/blockstates/cyan_lamp.json index 25ef349cfd..fe4a45a3d2 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/cyan_lamp" - }, - "lit=true": { - "model": "spectrum:block/cyan_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/cyan_lamp" + }, + "lit=true": { + "model": "spectrum:block/cyan_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_leaves.json b/src/main/resources/assets/spectrum/blockstates/cyan_leaves.json index 4fe1d14a3d..5019fa8d23 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cyan_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/cyan_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_log.json b/src/main/resources/assets/spectrum/blockstates/cyan_log.json index fe1175c976..f2a5da80c9 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_log.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/cyan_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/cyan_log" - }, - "axis=z": { - "model": "spectrum:block/cyan_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/cyan_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/cyan_log" + }, + "axis=z": { + "model": "spectrum:block/cyan_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_plank_button.json b/src/main/resources/assets/spectrum/blockstates/cyan_plank_button.json deleted file mode 100644 index 79a12a60cf..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/cyan_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/cyan_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/cyan_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/cyan_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/cyan_plank_fence.json deleted file mode 100644 index 98770af9a3..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/cyan_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/cyan_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/cyan_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/cyan_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/cyan_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/cyan_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/cyan_plank_fence_gate.json deleted file mode 100644 index 8136187cc3..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/cyan_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/cyan_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/cyan_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/cyan_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/cyan_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/cyan_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/cyan_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/cyan_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/cyan_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/cyan_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/cyan_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/cyan_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/cyan_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/cyan_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/cyan_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/cyan_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/cyan_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/cyan_plank_pressure_plate.json deleted file mode 100644 index 4f5bd7223e..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/cyan_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/cyan_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/cyan_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/cyan_plank_slab.json deleted file mode 100644 index ea9a470320..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/cyan_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/cyan_plank_slab" - }, - "type=double": { - "model": "spectrum:block/cyan_planks" - }, - "type=top": { - "model": "spectrum:block/cyan_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/cyan_plank_stairs.json deleted file mode 100644 index 017076c1a3..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/cyan_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/cyan_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/cyan_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/cyan_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_planks.json b/src/main/resources/assets/spectrum/blockstates/cyan_planks.json index f75305dba2..56f909f053 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cyan_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/cyan_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/cyan_pressure_plate.json new file mode 100644 index 0000000000..686c088d27 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cyan_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/cyan_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/cyan_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_sapling.json b/src/main/resources/assets/spectrum/blockstates/cyan_sapling.json index 79292b2906..842bb73aba 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cyan_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/cyan_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_slab.json b/src/main/resources/assets/spectrum/blockstates/cyan_slab.json new file mode 100644 index 0000000000..fa10727013 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cyan_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/cyan_slab" + }, + "type=double": { + "model": "spectrum:block/cyan_planks" + }, + "type=top": { + "model": "spectrum:block/cyan_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_body.json b/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_body.json index 0b31488788..429369695a 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_body.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_body.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/cyan_spirit_sallow_vines_body_none" - }, - "yield=normal": { - "model": "spectrum:block/cyan_spirit_sallow_vines_body_normal" - }, - "yield=lucid": { - "model": "spectrum:block/cyan_spirit_sallow_vines_body_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/cyan_spirit_sallow_vines_body_none" + }, + "yield=normal": { + "model": "spectrum:block/cyan_spirit_sallow_vines_body_normal" + }, + "yield=lucid": { + "model": "spectrum:block/cyan_spirit_sallow_vines_body_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_head.json b/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_head.json index 3487e64a0b..e47272f26b 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_head.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_spirit_sallow_vines_head.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/cyan_spirit_sallow_vines_head_none" - }, - "yield=normal": { - "model": "spectrum:block/cyan_spirit_sallow_vines_head_normal" - }, - "yield=lucid": { - "model": "spectrum:block/cyan_spirit_sallow_vines_head_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/cyan_spirit_sallow_vines_head_none" + }, + "yield=normal": { + "model": "spectrum:block/cyan_spirit_sallow_vines_head_normal" + }, + "yield=lucid": { + "model": "spectrum:block/cyan_spirit_sallow_vines_head_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/cyan_spore_blossom.json index 092f3f83ee..d0436e212f 100644 --- a/src/main/resources/assets/spectrum/blockstates/cyan_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/cyan_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/cyan_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/cyan_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/cyan_stairs.json b/src/main/resources/assets/spectrum/blockstates/cyan_stairs.json new file mode 100644 index 0000000000..3f11a27b9c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/cyan_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/cyan_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/cyan_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/cyan_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/cyan_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/decay_away.json b/src/main/resources/assets/spectrum/blockstates/decay_away.json index 35a3cdd645..714c90636d 100644 --- a/src/main/resources/assets/spectrum/blockstates/decay_away.json +++ b/src/main/resources/assets/spectrum/blockstates/decay_away.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/decay_away" - } - } + "variants": { + "": { + "model": "spectrum:block/decay_away" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/decaying_light.json b/src/main/resources/assets/spectrum/blockstates/decaying_light.json index 8e816f0e29..637f3b28de 100644 --- a/src/main/resources/assets/spectrum/blockstates/decaying_light.json +++ b/src/main/resources/assets/spectrum/blockstates/decaying_light.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wand_light" - } - } + "variants": { + "": { + "model": "spectrum:block/wand_light" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deeper_down_portal.json b/src/main/resources/assets/spectrum/blockstates/deeper_down_portal.json index 1d2705450a..bfefd901b3 100644 --- a/src/main/resources/assets/spectrum/blockstates/deeper_down_portal.json +++ b/src/main/resources/assets/spectrum/blockstates/deeper_down_portal.json @@ -1,7 +1,10 @@ { - "variants": { - "": { - "model": "spectrum:block/deeper_down_portal" - } - } + "variants": { + "up=false": { + "model": "spectrum:block/deeper_down_portal" + }, + "up=true": { + "model": "spectrum:block/deeper_down_portal_up" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_amethyst_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_amethyst_ore.json index 4fd6881d1a..c13daa63d6 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_amethyst_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_amethyst_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_amethyst_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_amethyst_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_azurite_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_azurite_ore.json index 0ec15c3f0d..d0f1ed551a 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_azurite_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_azurite_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_azurite_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_azurite_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_citrine_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_citrine_ore.json index 66305ca527..600a048d59 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_citrine_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_citrine_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_citrine_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_citrine_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_malachite_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_malachite_ore.json index 506a908632..9883ab086b 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_malachite_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_malachite_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_malachite_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_malachite_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_moonstone_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_moonstone_ore.json index a281a9175e..0b9421a58f 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_moonstone_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_moonstone_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_moonstone_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_moonstone_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_onyx_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_onyx_ore.json index 258fda3639..ebdc377da1 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_onyx_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_onyx_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_onyx_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_onyx_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/deepslate_shimmerstone_light.json new file mode 100644 index 0000000000..9c3c83d6bb --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/deepslate_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/deepslate_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/deepslate_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/deepslate_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/deepslate_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/deepslate_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_shimmerstone_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_shimmerstone_ore.json new file mode 100644 index 0000000000..93a43bbccd --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_shimmerstone_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/deepslate_shimmerstone_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/deepslate_sparklestone_light.json deleted file mode 100644 index d0c8797837..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/deepslate_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/deepslate_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/deepslate_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/deepslate_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/deepslate_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/deepslate_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_sparklestone_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_sparklestone_ore.json deleted file mode 100644 index 8d19b30e56..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_sparklestone_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/deepslate_sparklestone_ore" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/deepslate_topaz_ore.json b/src/main/resources/assets/spectrum/blockstates/deepslate_topaz_ore.json index cf718f5832..d54f56814b 100644 --- a/src/main/resources/assets/spectrum/blockstates/deepslate_topaz_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/deepslate_topaz_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/deepslate_topaz_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/deepslate_topaz_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/diamond_cluster.json b/src/main/resources/assets/spectrum/blockstates/diamond_cluster.json index 168105a126..6c5d6bb7df 100644 --- a/src/main/resources/assets/spectrum/blockstates/diamond_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/diamond_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/diamond_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/diamond_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/dike_chiseled_preservation_stone.json b/src/main/resources/assets/spectrum/blockstates/dike_chiseled_preservation_stone.json index b7ae3df037..5ec6eba721 100644 --- a/src/main/resources/assets/spectrum/blockstates/dike_chiseled_preservation_stone.json +++ b/src/main/resources/assets/spectrum/blockstates/dike_chiseled_preservation_stone.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/dike_chiseled_preservation_stone" - } - } + "variants": { + "": { + "model": "spectrum:block/dike_chiseled_preservation_stone" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/dike_gate.json b/src/main/resources/assets/spectrum/blockstates/dike_gate.json index 5915776fd3..5da2f1582e 100644 --- a/src/main/resources/assets/spectrum/blockstates/dike_gate.json +++ b/src/main/resources/assets/spectrum/blockstates/dike_gate.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/dike_gate" - } - } + "variants": { + "": { + "model": "spectrum:block/dike_gate" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/dike_gate_fountain.json b/src/main/resources/assets/spectrum/blockstates/dike_gate_fountain.json index 3e0f51d8da..8c867a2f96 100644 --- a/src/main/resources/assets/spectrum/blockstates/dike_gate_fountain.json +++ b/src/main/resources/assets/spectrum/blockstates/dike_gate_fountain.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/dike_gate_fountain", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/dike_gate_fountain", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/dike_gate_fountain", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/dike_gate_fountain", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/dike_gate_fountain" - }, - "facing=west": { - "model": "spectrum:block/dike_gate_fountain", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/dike_gate_fountain", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/dike_gate_fountain", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/dike_gate_fountain", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/dike_gate_fountain", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/dike_gate_fountain" + }, + "facing=west": { + "model": "spectrum:block/dike_gate_fountain", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/diorite_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/diorite_shimmerstone_light.json new file mode 100644 index 0000000000..d6d5fc3bdc --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/diorite_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/diorite_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/diorite_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/diorite_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/diorite_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/diorite_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/diorite_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/diorite_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/diorite_sparklestone_light.json deleted file mode 100644 index a9cf015e3f..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/diorite_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/diorite_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/diorite_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/diorite_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/diorite_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/diorite_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/diorite_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/donkey_head.json b/src/main/resources/assets/spectrum/blockstates/donkey_head.json index d21e8fbdea..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/donkey_head.json +++ b/src/main/resources/assets/spectrum/blockstates/donkey_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/donkey" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/donkey_wall_head.json b/src/main/resources/assets/spectrum/blockstates/donkey_wall_head.json index d21e8fbdea..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/donkey_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/donkey_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/donkey" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/doombloom.json b/src/main/resources/assets/spectrum/blockstates/doombloom.json new file mode 100644 index 0000000000..b115abea40 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/doombloom.json @@ -0,0 +1,19 @@ +{ + "variants": { + "age=0": { + "model": "spectrum:block/doombloom0" + }, + "age=1": { + "model": "spectrum:block/doombloom1" + }, + "age=2": { + "model": "spectrum:block/doombloom2" + }, + "age=3": { + "model": "spectrum:block/doombloom3" + }, + "age=4": { + "model": "spectrum:block/doombloom4" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/downstone.json b/src/main/resources/assets/spectrum/blockstates/downstone.json new file mode 100644 index 0000000000..e53b3cfa9c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/downstone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/downstone" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/dragonbone.json b/src/main/resources/assets/spectrum/blockstates/dragonbone.json new file mode 100644 index 0000000000..d651898ada --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/dragonbone.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/dragonbone", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/dragonbone" + }, + "axis=z": { + "model": "spectrum:block/dragonbone", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/dragonrot.json b/src/main/resources/assets/spectrum/blockstates/dragonrot.json new file mode 100644 index 0000000000..ceb87ad2ac --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/dragonrot.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/dragonrot" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/drowned_head.json b/src/main/resources/assets/spectrum/blockstates/drowned_head.json index ae0dc6acab..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/drowned_head.json +++ b/src/main/resources/assets/spectrum/blockstates/drowned_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/drowned" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/drowned_wall_head.json b/src/main/resources/assets/spectrum/blockstates/drowned_wall_head.json index ae0dc6acab..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/drowned_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/drowned_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/drowned" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_cap.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_cap.json new file mode 100644 index 0000000000..daee842938 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ebony_noxcap_cap" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_gills.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_gills.json new file mode 100644 index 0000000000..3bc27f1144 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_gills.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ebony_noxcap_gills", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ebony_noxcap_gills" + }, + "axis=z": { + "model": "spectrum:block/ebony_noxcap_gills", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_stem.json new file mode 100644 index 0000000000..3922f96bf0 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ebony_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ebony_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/ebony_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxshroom.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxshroom.json new file mode 100644 index 0000000000..1c0e1b9e11 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxshroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ebony_noxshroom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_amphora.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_amphora.json new file mode 100644 index 0000000000..805441afbe --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_amphora.json @@ -0,0 +1,56 @@ +{ + "variants": { + "facing=down,open=false": { + "model": "spectrum:block/ebony_noxwood_amphora", + "x": 180 + }, + "facing=down,open=true": { + "model": "spectrum:block/ebony_noxwood_amphora_open", + "x": 180 + }, + "facing=east,open=false": { + "model": "spectrum:block/ebony_noxwood_amphora", + "x": 90, + "y": 90 + }, + "facing=east,open=true": { + "model": "spectrum:block/ebony_noxwood_amphora_open", + "x": 90, + "y": 90 + }, + "facing=north,open=false": { + "model": "spectrum:block/ebony_noxwood_amphora", + "x": 90 + }, + "facing=north,open=true": { + "model": "spectrum:block/ebony_noxwood_amphora_open", + "x": 90 + }, + "facing=south,open=false": { + "model": "spectrum:block/ebony_noxwood_amphora", + "x": 90, + "y": 180 + }, + "facing=south,open=true": { + "model": "spectrum:block/ebony_noxwood_amphora_open", + "x": 90, + "y": 180 + }, + "facing=up,open=false": { + "model": "spectrum:block/ebony_noxwood_amphora" + }, + "facing=up,open=true": { + "model": "spectrum:block/ebony_noxwood_amphora_open" + }, + "facing=west,open=false": { + "model": "spectrum:block/ebony_noxwood_amphora", + "x": 90, + "y": 270 + }, + "facing=west,open=true": { + "model": "spectrum:block/ebony_noxwood_amphora_open", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_beam.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_beam.json new file mode 100644 index 0000000000..be481d787d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_beam.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ebony_noxwood_beam", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ebony_noxwood_beam" + }, + "axis=z": { + "model": "spectrum:block/ebony_noxwood_beam", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_button.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_button.json new file mode 100644 index 0000000000..e5b97617f9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/ebony_noxwood_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/ebony_noxwood_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/ebony_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_door.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_door.json new file mode 100644 index 0000000000..03a9400c0b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ebony_noxwood_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ebony_noxwood_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_fence.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_fence.json new file mode 100644 index 0000000000..1a11da4db5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/ebony_noxwood_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/ebony_noxwood_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/ebony_noxwood_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/ebony_noxwood_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/ebony_noxwood_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_fence_gate.json new file mode 100644 index 0000000000..0cc15b52ce --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ebony_noxwood_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ebony_noxwood_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ebony_noxwood_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ebony_noxwood_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/ebony_noxwood_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/ebony_noxwood_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ebony_noxwood_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ebony_noxwood_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ebony_noxwood_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_lamp.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_lamp.json new file mode 100644 index 0000000000..daf9669986 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_lamp.json @@ -0,0 +1,28 @@ +{ + "variants": { + "hanging=false,diagonal=false,alt=false": { + "model": "spectrum:block/ebony_noxwood_lamp" + }, + "hanging=false,diagonal=false,alt=true": { + "model": "spectrum:block/ebony_noxwood_lamp_alt" + }, + "hanging=false,diagonal=true,alt=false": { + "model": "spectrum:block/ebony_noxwood_lamp_diagonal" + }, + "hanging=false,diagonal=true,alt=true": { + "model": "spectrum:block/ebony_noxwood_lamp_diagonal_alt" + }, + "hanging=true,diagonal=false,alt=false": { + "model": "spectrum:block/ebony_noxwood_lamp_hanging" + }, + "hanging=true,diagonal=false,alt=true": { + "model": "spectrum:block/ebony_noxwood_lamp_hanging_alt" + }, + "hanging=true,diagonal=true,alt=false": { + "model": "spectrum:block/ebony_noxwood_lamp_hanging_diagonal" + }, + "hanging=true,diagonal=true,alt=true": { + "model": "spectrum:block/ebony_noxwood_lamp_hanging_diagonal_alt" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_lantern.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_lantern.json new file mode 100644 index 0000000000..3090a03c32 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_lantern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "spectrum:block/ebony_noxwood_lantern_off" + }, + "lit=true": { + "model": "spectrum:block/ebony_noxwood_lantern_on" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_light.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_light.json new file mode 100644 index 0000000000..5e785f2033 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_light.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ebony_noxwood_light", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ebony_noxwood_light" + }, + "axis=z": { + "model": "spectrum:block/ebony_noxwood_light", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_planks.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_planks.json new file mode 100644 index 0000000000..492c5dc7e3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ebony_noxwood_planks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_pressure_plate.json new file mode 100644 index 0000000000..407558b737 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/ebony_noxwood_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/ebony_noxwood_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_slab.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_slab.json new file mode 100644 index 0000000000..ad821bf329 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/ebony_noxwood_slab" + }, + "type=double": { + "model": "spectrum:block/ebony_noxwood_planks" + }, + "type=top": { + "model": "spectrum:block/ebony_noxwood_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_stairs.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_stairs.json new file mode 100644 index 0000000000..af83d64870 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/ebony_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/ebony_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/ebony_noxwood_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_trapdoor.json new file mode 100644 index 0000000000..966fe09363 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ebony_noxwood_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "spectrum:block/ebony_noxwood_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "spectrum:block/ebony_noxwood_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_head.json b/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_head.json index 0c872cca03..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_head.json +++ b/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/egg_laying_wooly_pig_head" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_wall_head.json b/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_wall_head.json index 0c872cca03..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/egg_laying_wooly_pig_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/egg_laying_wooly_pig_head" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/elder_guardian_head.json b/src/main/resources/assets/spectrum/blockstates/elder_guardian_head.json index 17ff411b5c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/elder_guardian_head.json +++ b/src/main/resources/assets/spectrum/blockstates/elder_guardian_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/elder_guardian" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/elder_guardian_wall_head.json b/src/main/resources/assets/spectrum/blockstates/elder_guardian_wall_head.json index 17ff411b5c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/elder_guardian_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/elder_guardian_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/elder_guardian" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/emerald_cluster.json b/src/main/resources/assets/spectrum/blockstates/emerald_cluster.json index 6597058c1e..341a9bf295 100644 --- a/src/main/resources/assets/spectrum/blockstates/emerald_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/emerald_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/emerald_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/emerald_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/enchanter.json b/src/main/resources/assets/spectrum/blockstates/enchanter.json index 88e83e757c..132efd8059 100644 --- a/src/main/resources/assets/spectrum/blockstates/enchanter.json +++ b/src/main/resources/assets/spectrum/blockstates/enchanter.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/enchanter" - } - } + "variants": { + "": { + "model": "spectrum:block/enchanter" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ender_dragon_mob_block.json b/src/main/resources/assets/spectrum/blockstates/ender_dragon_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/ender_dragon_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/ender_dragon_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ender_dropper.json b/src/main/resources/assets/spectrum/blockstates/ender_dropper.json index cdb1d0d14d..661f520b2f 100644 --- a/src/main/resources/assets/spectrum/blockstates/ender_dropper.json +++ b/src/main/resources/assets/spectrum/blockstates/ender_dropper.json @@ -1,26 +1,26 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/ender_dropper_vertical", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/ender_dropper", - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/ender_dropper" - }, - "facing=south": { - "model": "spectrum:block/ender_dropper", - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/ender_dropper_vertical" - }, - "facing=west": { - "model": "spectrum:block/ender_dropper", - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/ender_dropper_vertical", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/ender_dropper", + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/ender_dropper" + }, + "facing=south": { + "model": "spectrum:block/ender_dropper", + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/ender_dropper_vertical" + }, + "facing=west": { + "model": "spectrum:block/ender_dropper", + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ender_glass.json b/src/main/resources/assets/spectrum/blockstates/ender_glass.json index 79df5bf723..d38fbf9f19 100644 --- a/src/main/resources/assets/spectrum/blockstates/ender_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/ender_glass.json @@ -1,13 +1,13 @@ { - "variants": { - "transparency_state=solid": { - "model": "spectrum:block/ender_glass_solid" - }, - "transparency_state=translucent": { - "model": "spectrum:block/ender_glass_translucent" - }, - "transparency_state=no_collision": { - "model": "spectrum:block/ender_glass_no_collision" - } - } + "variants": { + "transparency_state=solid": { + "model": "spectrum:block/ender_glass_solid" + }, + "transparency_state=translucent": { + "model": "spectrum:block/ender_glass_translucent" + }, + "transparency_state=no_collision": { + "model": "spectrum:block/ender_glass_no_collision" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ender_hopper.json b/src/main/resources/assets/spectrum/blockstates/ender_hopper.json index ae3b13d497..cfc5f05652 100644 --- a/src/main/resources/assets/spectrum/blockstates/ender_hopper.json +++ b/src/main/resources/assets/spectrum/blockstates/ender_hopper.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ender_hopper" - } - } + "variants": { + "": { + "model": "spectrum:block/ender_hopper" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ender_treasure.json b/src/main/resources/assets/spectrum/blockstates/ender_treasure.json deleted file mode 100644 index 94a4c151fd..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/ender_treasure.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/ender_treasure" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/enderman_head.json b/src/main/resources/assets/spectrum/blockstates/enderman_head.json index 07253fd22f..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/enderman_head.json +++ b/src/main/resources/assets/spectrum/blockstates/enderman_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/enderman" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/enderman_mob_block.json b/src/main/resources/assets/spectrum/blockstates/enderman_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/enderman_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/enderman_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/enderman_wall_head.json b/src/main/resources/assets/spectrum/blockstates/enderman_wall_head.json index 07253fd22f..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/enderman_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/enderman_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/enderman" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/endermite_head.json b/src/main/resources/assets/spectrum/blockstates/endermite_head.json index 54e78c4246..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/endermite_head.json +++ b/src/main/resources/assets/spectrum/blockstates/endermite_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/endermite" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/endermite_mob_block.json b/src/main/resources/assets/spectrum/blockstates/endermite_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/endermite_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/endermite_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/endermite_wall_head.json b/src/main/resources/assets/spectrum/blockstates/endermite_wall_head.json index 54e78c4246..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/endermite_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/endermite_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/endermite" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/entity_detector.json b/src/main/resources/assets/spectrum/blockstates/entity_detector.json index 026220114e..393dbca70e 100644 --- a/src/main/resources/assets/spectrum/blockstates/entity_detector.json +++ b/src/main/resources/assets/spectrum/blockstates/entity_detector.json @@ -1,10 +1,10 @@ { - "variants": { - "inverted=false": { - "model": "spectrum:block/entity_detector" - }, - "inverted=true": { - "model": "spectrum:block/entity_detector_inverted" - } - } + "variants": { + "inverted=false": { + "model": "spectrum:block/entity_detector" + }, + "inverted=true": { + "model": "spectrum:block/entity_detector_inverted" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ethereal_platform.json b/src/main/resources/assets/spectrum/blockstates/ethereal_platform.json index a4d70b64d6..1ebb491f5f 100644 --- a/src/main/resources/assets/spectrum/blockstates/ethereal_platform.json +++ b/src/main/resources/assets/spectrum/blockstates/ethereal_platform.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ethereal_platform" - } - } + "variants": { + "": { + "model": "spectrum:block/ethereal_platform" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/evoker_head.json b/src/main/resources/assets/spectrum/blockstates/evoker_head.json index 13c4786a5c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/evoker_head.json +++ b/src/main/resources/assets/spectrum/blockstates/evoker_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/evoker" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/evoker_mob_block.json b/src/main/resources/assets/spectrum/blockstates/evoker_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/evoker_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/evoker_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/evoker_wall_head.json b/src/main/resources/assets/spectrum/blockstates/evoker_wall_head.json index 13c4786a5c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/evoker_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/evoker_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/evoker" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay.json b/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay.json new file mode 100644 index 0000000000..418b471249 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/exposed_polished_shale_clay" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay_slab.json new file mode 100644 index 0000000000..43335d36d3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/exposed_polished_shale_clay_slab" + }, + "type=double": { + "model": "spectrum:block/exposed_polished_shale_clay" + }, + "type=top": { + "model": "spectrum:block/exposed_polished_shale_clay_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..35f26d70db --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_polished_shale_clay_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/exposed_polished_shale_clay_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_brick_slab.json new file mode 100644 index 0000000000..d080766a18 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/exposed_shale_clay_brick_slab" + }, + "type=double": { + "model": "spectrum:block/exposed_shale_clay_bricks" + }, + "type=top": { + "model": "spectrum:block/exposed_shale_clay_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..1f99ddc9ca --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_brick_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_bricks.json b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_bricks.json new file mode 100644 index 0000000000..5b38718dcf --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/exposed_shale_clay_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tile_slab.json new file mode 100644 index 0000000000..bf1787cf2b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/exposed_shale_clay_tile_slab" + }, + "type=double": { + "model": "spectrum:block/exposed_shale_clay_tiles" + }, + "type=top": { + "model": "spectrum:block/exposed_shale_clay_tile_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..6af56ca357 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/exposed_shale_clay_tile_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tiles.json b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tiles.json new file mode 100644 index 0000000000..b62ca039bd --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/exposed_shale_clay_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/exposed_shale_clay_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fading.json b/src/main/resources/assets/spectrum/blockstates/fading.json index 0aeb22f0a3..5f8da8537e 100644 --- a/src/main/resources/assets/spectrum/blockstates/fading.json +++ b/src/main/resources/assets/spectrum/blockstates/fading.json @@ -1,13 +1,13 @@ { - "variants": { - "decay_state=default": { - "model": "spectrum:block/fading_default" - }, - "decay_state=leaves": { - "model": "spectrum:block/fading_leaves" - }, - "decay_state=magic_leaves": { - "model": "spectrum:block/fading_leaves" - } - } + "variants": { + "decay_state=default": { + "model": "spectrum:block/fading_default" + }, + "decay_state=leaves": { + "model": "spectrum:block/fading_leaves" + }, + "decay_state=magic_leaves": { + "model": "spectrum:block/fading_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/failing.json b/src/main/resources/assets/spectrum/blockstates/failing.json index 24528b3f7f..3e47e5c7ad 100644 --- a/src/main/resources/assets/spectrum/blockstates/failing.json +++ b/src/main/resources/assets/spectrum/blockstates/failing.json @@ -1,13 +1,13 @@ { - "variants": { - "decay_state=default": { - "model": "spectrum:block/failing_default" - }, - "decay_state=obsidian": { - "model": "spectrum:block/failing_obsidian" - }, - "decay_state=crying_obsidian": { - "model": "spectrum:block/failing_obsidian" - } - } + "variants": { + "decay_state=default": { + "model": "spectrum:block/failing_default" + }, + "decay_state=obsidian": { + "model": "spectrum:block/failing_obsidian" + }, + "decay_state=crying_obsidian": { + "model": "spectrum:block/failing_obsidian" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fish_mob_block.json b/src/main/resources/assets/spectrum/blockstates/fish_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/fish_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/fish_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fluix_cluster.json b/src/main/resources/assets/spectrum/blockstates/fluix_cluster.json index 4c56fed602..3cb15ef7c8 100644 --- a/src/main/resources/assets/spectrum/blockstates/fluix_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/fluix_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fluix_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/fluix_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/forfeiture.json b/src/main/resources/assets/spectrum/blockstates/forfeiture.json new file mode 100644 index 0000000000..f8a957c271 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/forfeiture.json @@ -0,0 +1,10 @@ +{ + "variants": { + "decay_state=default": { + "model": "spectrum:block/forfeiture_default" + }, + "decay_state=bedrock": { + "model": "spectrum:block/forfeiture_bedrock" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/four_leaf_clover.json b/src/main/resources/assets/spectrum/blockstates/four_leaf_clover.json index 404cdb27d8..037c6c8a4d 100644 --- a/src/main/resources/assets/spectrum/blockstates/four_leaf_clover.json +++ b/src/main/resources/assets/spectrum/blockstates/four_leaf_clover.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/four_leaf_clover" - } - } + "variants": { + "": { + "model": "spectrum:block/four_leaf_clover" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fox_arctic_head.json b/src/main/resources/assets/spectrum/blockstates/fox_arctic_head.json index 4afb07abf9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/fox_arctic_head.json +++ b/src/main/resources/assets/spectrum/blockstates/fox_arctic_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fox_arctic" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fox_arctic_wall_head.json b/src/main/resources/assets/spectrum/blockstates/fox_arctic_wall_head.json index 4afb07abf9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/fox_arctic_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/fox_arctic_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fox_arctic" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fox_head.json b/src/main/resources/assets/spectrum/blockstates/fox_head.json index 5afe884709..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/fox_head.json +++ b/src/main/resources/assets/spectrum/blockstates/fox_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fox" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fox_mob_block.json b/src/main/resources/assets/spectrum/blockstates/fox_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/fox_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/fox_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fox_wall_head.json b/src/main/resources/assets/spectrum/blockstates/fox_wall_head.json index 5afe884709..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/fox_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/fox_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fox" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frog_cold_head.json b/src/main/resources/assets/spectrum/blockstates/frog_cold_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/frog_cold_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frog_cold_wall_head.json b/src/main/resources/assets/spectrum/blockstates/frog_cold_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/frog_cold_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frog_temperate_head.json b/src/main/resources/assets/spectrum/blockstates/frog_temperate_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/frog_temperate_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frog_temperate_wall_head.json b/src/main/resources/assets/spectrum/blockstates/frog_temperate_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/frog_temperate_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frog_warm_head.json b/src/main/resources/assets/spectrum/blockstates/frog_warm_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/frog_warm_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frog_warm_wall_head.json b/src/main/resources/assets/spectrum/blockstates/frog_warm_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/frog_warm_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/frostbite_crystal.json b/src/main/resources/assets/spectrum/blockstates/frostbite_crystal.json index 4e2ce3dbf0..2ee32bdf12 100644 --- a/src/main/resources/assets/spectrum/blockstates/frostbite_crystal.json +++ b/src/main/resources/assets/spectrum/blockstates/frostbite_crystal.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/frostbite_crystal" - } - } + "variants": { + "": { + "model": "spectrum:block/frostbite_crystal" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fusion_shrine_basalt.json b/src/main/resources/assets/spectrum/blockstates/fusion_shrine_basalt.json index 81f96f2914..10d33f1a34 100644 --- a/src/main/resources/assets/spectrum/blockstates/fusion_shrine_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/fusion_shrine_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fusion_shrine_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/fusion_shrine_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/fusion_shrine_calcite.json b/src/main/resources/assets/spectrum/blockstates/fusion_shrine_calcite.json index decd50c0b6..4fdc6b2709 100644 --- a/src/main/resources/assets/spectrum/blockstates/fusion_shrine_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/fusion_shrine_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/fusion_shrine_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/fusion_shrine_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gather_node.json b/src/main/resources/assets/spectrum/blockstates/gather_node.json new file mode 100644 index 0000000000..e213bbc038 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gather_node.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/gather_node", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/gather_node", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/gather_node", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/gather_node", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/gather_node" + }, + "facing=down": { + "model": "spectrum:block/gather_node", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ghast_head.json b/src/main/resources/assets/spectrum/blockstates/ghast_head.json index b4fcc0e4eb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/ghast_head.json +++ b/src/main/resources/assets/spectrum/blockstates/ghast_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ghast" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ghast_mob_block.json b/src/main/resources/assets/spectrum/blockstates/ghast_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/ghast_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/ghast_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ghast_wall_head.json b/src/main/resources/assets/spectrum/blockstates/ghast_wall_head.json index b4fcc0e4eb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/ghast_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/ghast_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ghast" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glistering_melon.json b/src/main/resources/assets/spectrum/blockstates/glistering_melon.json index 81dd24239b..491012b81f 100644 --- a/src/main/resources/assets/spectrum/blockstates/glistering_melon.json +++ b/src/main/resources/assets/spectrum/blockstates/glistering_melon.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/glistering_melon" - } - } + "variants": { + "": { + "model": "spectrum:block/glistering_melon" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glistering_melon_stem.json b/src/main/resources/assets/spectrum/blockstates/glistering_melon_stem.json index 656b0fee60..d60fb49de1 100644 --- a/src/main/resources/assets/spectrum/blockstates/glistering_melon_stem.json +++ b/src/main/resources/assets/spectrum/blockstates/glistering_melon_stem.json @@ -1,28 +1,28 @@ { - "variants": { - "age=0": { - "model": "spectrum:block/glistering_melon_stem_stage0" - }, - "age=1": { - "model": "spectrum:block/glistering_melon_stem_stage1" - }, - "age=2": { - "model": "spectrum:block/glistering_melon_stem_stage2" - }, - "age=3": { - "model": "spectrum:block/glistering_melon_stem_stage3" - }, - "age=4": { - "model": "spectrum:block/glistering_melon_stem_stage4" - }, - "age=5": { - "model": "spectrum:block/glistering_melon_stem_stage5" - }, - "age=6": { - "model": "spectrum:block/glistering_melon_stem_stage6" - }, - "age=7": { - "model": "spectrum:block/glistering_melon_stem_stage7" - } - } + "variants": { + "age=0": { + "model": "spectrum:block/glistering_melon_stem_stage0" + }, + "age=1": { + "model": "spectrum:block/glistering_melon_stem_stage1" + }, + "age=2": { + "model": "spectrum:block/glistering_melon_stem_stage2" + }, + "age=3": { + "model": "spectrum:block/glistering_melon_stem_stage3" + }, + "age=4": { + "model": "spectrum:block/glistering_melon_stem_stage4" + }, + "age=5": { + "model": "spectrum:block/glistering_melon_stem_stage5" + }, + "age=6": { + "model": "spectrum:block/glistering_melon_stem_stage6" + }, + "age=7": { + "model": "spectrum:block/glistering_melon_stem_stage7" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/globette_cluster.json b/src/main/resources/assets/spectrum/blockstates/globette_cluster.json index 5f071340e0..df4d422b4f 100644 --- a/src/main/resources/assets/spectrum/blockstates/globette_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/globette_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/globette_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/globette_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/globette_end_cluster.json b/src/main/resources/assets/spectrum/blockstates/globette_end_cluster.json index 5c2e3dd3f6..c00220ec45 100644 --- a/src/main/resources/assets/spectrum/blockstates/globette_end_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/globette_end_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/globette_end_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/globette_end_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/globette_nether_cluster.json b/src/main/resources/assets/spectrum/blockstates/globette_nether_cluster.json index f880830b43..781f53b75a 100644 --- a/src/main/resources/assets/spectrum/blockstates/globette_nether_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/globette_nether_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/globette_nether_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/globette_nether_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glow_squid_head.json b/src/main/resources/assets/spectrum/blockstates/glow_squid_head.json index 736f8f208c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/glow_squid_head.json +++ b/src/main/resources/assets/spectrum/blockstates/glow_squid_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/glow_squid" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glow_squid_mob_block.json b/src/main/resources/assets/spectrum/blockstates/glow_squid_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/glow_squid_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/glow_squid_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glow_squid_wall_head.json b/src/main/resources/assets/spectrum/blockstates/glow_squid_wall_head.json index 736f8f208c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/glow_squid_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/glow_squid_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/glow_squid" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glowing_glass.json b/src/main/resources/assets/spectrum/blockstates/glowing_glass.json index f835bd2d8f..0b6b5609a5 100644 --- a/src/main/resources/assets/spectrum/blockstates/glowing_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/glowing_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/glowing_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/glowing_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glowing_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/glowing_player_only_glass.json deleted file mode 100644 index f835bd2d8f..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/glowing_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/glowing_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glowing_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/glowing_semi_permeable_glass.json new file mode 100644 index 0000000000..0b6b5609a5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/glowing_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/glowing_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/glowstone_cluster.json b/src/main/resources/assets/spectrum/blockstates/glowstone_cluster.json index 2f7e5c4d0e..0bdfda3e0b 100644 --- a/src/main/resources/assets/spectrum/blockstates/glowstone_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/glowstone_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/glowstone_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/glowstone_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/goat_head.json b/src/main/resources/assets/spectrum/blockstates/goat_head.json index 610bae2eb4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/goat_head.json +++ b/src/main/resources/assets/spectrum/blockstates/goat_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/goat" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/goat_mob_block.json b/src/main/resources/assets/spectrum/blockstates/goat_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/goat_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/goat_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/goat_wall_head.json b/src/main/resources/assets/spectrum/blockstates/goat_wall_head.json index 610bae2eb4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/goat_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/goat_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/goat" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gold_cluster.json b/src/main/resources/assets/spectrum/blockstates/gold_cluster.json index 0e653d58e7..976acd4feb 100644 --- a/src/main/resources/assets/spectrum/blockstates/gold_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/gold_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gold_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/gold_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/granite_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/granite_shimmerstone_light.json new file mode 100644 index 0000000000..b853ac0805 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/granite_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/granite_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/granite_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/granite_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/granite_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/granite_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/granite_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/granite_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/granite_sparklestone_light.json deleted file mode 100644 index 714b929c56..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/granite_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/granite_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/granite_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/granite_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/granite_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/granite_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/granite_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_block.json b/src/main/resources/assets/spectrum/blockstates/gray_block.json index 25beb84d44..c4687ba5c6 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_block.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gray_block" - } - } + "variants": { + "": { + "model": "spectrum:block/gray_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_button.json b/src/main/resources/assets/spectrum/blockstates/gray_button.json new file mode 100644 index 0000000000..8b421ed6f8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gray_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/gray_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/gray_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/gray_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/gray_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/gray_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/gray_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/gray_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/gray_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/gray_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/gray_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/gray_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/gray_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/gray_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/gray_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_fence.json b/src/main/resources/assets/spectrum/blockstates/gray_fence.json new file mode 100644 index 0000000000..62ec527c85 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gray_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/gray_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/gray_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/gray_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/gray_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/gray_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/gray_fence_gate.json new file mode 100644 index 0000000000..eaaa8e3250 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gray_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/gray_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/gray_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/gray_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/gray_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/gray_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/gray_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/gray_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/gray_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/gray_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/gray_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/gray_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/gray_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/gray_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/gray_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/gray_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/gray_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_glowblock.json b/src/main/resources/assets/spectrum/blockstates/gray_glowblock.json index 474bc32a6b..1573f6f80f 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gray_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/gray_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_lamp.json b/src/main/resources/assets/spectrum/blockstates/gray_lamp.json index fd486ffad3..2af12a4e8e 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/gray_lamp" - }, - "lit=true": { - "model": "spectrum:block/gray_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/gray_lamp" + }, + "lit=true": { + "model": "spectrum:block/gray_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_leaves.json b/src/main/resources/assets/spectrum/blockstates/gray_leaves.json index dbdbda2b24..5f88b56758 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gray_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/gray_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_log.json b/src/main/resources/assets/spectrum/blockstates/gray_log.json index 127c169cdf..5d0821b3e7 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_log.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/gray_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/gray_log" - }, - "axis=z": { - "model": "spectrum:block/gray_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/gray_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/gray_log" + }, + "axis=z": { + "model": "spectrum:block/gray_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_plank_button.json b/src/main/resources/assets/spectrum/blockstates/gray_plank_button.json deleted file mode 100644 index 84843cf41c..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/gray_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/gray_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/gray_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/gray_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/gray_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/gray_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/gray_plank_fence.json deleted file mode 100644 index 999ebb0181..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/gray_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/gray_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/gray_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/gray_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/gray_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/gray_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/gray_plank_fence_gate.json deleted file mode 100644 index 664b872acf..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/gray_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/gray_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/gray_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/gray_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/gray_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/gray_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/gray_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/gray_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/gray_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/gray_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/gray_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/gray_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/gray_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/gray_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/gray_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/gray_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/gray_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/gray_plank_pressure_plate.json deleted file mode 100644 index 023ff90eaa..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/gray_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/gray_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/gray_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/gray_plank_slab.json deleted file mode 100644 index 2e9cca433b..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/gray_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/gray_plank_slab" - }, - "type=double": { - "model": "spectrum:block/gray_planks" - }, - "type=top": { - "model": "spectrum:block/gray_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/gray_plank_stairs.json deleted file mode 100644 index ab349bb5b3..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/gray_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/gray_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/gray_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/gray_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/gray_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_planks.json b/src/main/resources/assets/spectrum/blockstates/gray_planks.json index 9621f83601..cd12c8775a 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gray_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/gray_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/gray_pressure_plate.json new file mode 100644 index 0000000000..c14f896c34 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gray_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/gray_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/gray_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_sapling.json b/src/main/resources/assets/spectrum/blockstates/gray_sapling.json index 04fcafdbf8..d9f5f3983f 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gray_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/gray_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_slab.json b/src/main/resources/assets/spectrum/blockstates/gray_slab.json new file mode 100644 index 0000000000..3ec71867e3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gray_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/gray_slab" + }, + "type=double": { + "model": "spectrum:block/gray_planks" + }, + "type=top": { + "model": "spectrum:block/gray_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/gray_spore_blossom.json index f96a1709a4..fb32ea98c5 100644 --- a/src/main/resources/assets/spectrum/blockstates/gray_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/gray_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/gray_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/gray_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/gray_stairs.json b/src/main/resources/assets/spectrum/blockstates/gray_stairs.json new file mode 100644 index 0000000000..cae6eb7119 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/gray_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/gray_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/gray_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/gray_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/gray_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/gray_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/gray_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/gray_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/gray_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/gray_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/gray_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_block.json b/src/main/resources/assets/spectrum/blockstates/green_block.json index a179ceaeb0..88976598a3 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_block.json +++ b/src/main/resources/assets/spectrum/blockstates/green_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/green_block" - } - } + "variants": { + "": { + "model": "spectrum:block/green_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_button.json b/src/main/resources/assets/spectrum/blockstates/green_button.json new file mode 100644 index 0000000000..feae2a8fba --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/green_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/green_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/green_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/green_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/green_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/green_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/green_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/green_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/green_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/green_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/green_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/green_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/green_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/green_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/green_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/green_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/green_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_fence.json b/src/main/resources/assets/spectrum/blockstates/green_fence.json new file mode 100644 index 0000000000..1062a72eb4 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/green_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/green_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/green_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/green_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/green_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/green_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/green_fence_gate.json new file mode 100644 index 0000000000..80a91a2538 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/green_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/green_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/green_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/green_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/green_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/green_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/green_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/green_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/green_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/green_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/green_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/green_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/green_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/green_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/green_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/green_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/green_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_glowblock.json b/src/main/resources/assets/spectrum/blockstates/green_glowblock.json index decdb6a2a5..b75a4cdb92 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/green_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/green_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/green_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_lamp.json b/src/main/resources/assets/spectrum/blockstates/green_lamp.json index 802c562ba5..52a98b8da9 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/green_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/green_lamp" - }, - "lit=true": { - "model": "spectrum:block/green_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/green_lamp" + }, + "lit=true": { + "model": "spectrum:block/green_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_leaves.json b/src/main/resources/assets/spectrum/blockstates/green_leaves.json index f53d82242b..180308601d 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/green_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/green_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/green_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_log.json b/src/main/resources/assets/spectrum/blockstates/green_log.json index eb11ebb73c..01457d152b 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_log.json +++ b/src/main/resources/assets/spectrum/blockstates/green_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/green_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/green_log" - }, - "axis=z": { - "model": "spectrum:block/green_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/green_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/green_log" + }, + "axis=z": { + "model": "spectrum:block/green_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_plank_button.json b/src/main/resources/assets/spectrum/blockstates/green_plank_button.json deleted file mode 100644 index bbf53ea506..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/green_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/green_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/green_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/green_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/green_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/green_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/green_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/green_plank_fence.json deleted file mode 100644 index a2fd755932..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/green_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/green_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/green_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/green_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/green_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/green_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/green_plank_fence_gate.json deleted file mode 100644 index 755debe234..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/green_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/green_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/green_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/green_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/green_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/green_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/green_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/green_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/green_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/green_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/green_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/green_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/green_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/green_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/green_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/green_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/green_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/green_plank_pressure_plate.json deleted file mode 100644 index 5a80131c74..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/green_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/green_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/green_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/green_plank_slab.json deleted file mode 100644 index 69079af4aa..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/green_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/green_plank_slab" - }, - "type=double": { - "model": "spectrum:block/green_planks" - }, - "type=top": { - "model": "spectrum:block/green_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/green_plank_stairs.json deleted file mode 100644 index a1951fc311..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/green_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/green_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/green_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/green_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/green_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_planks.json b/src/main/resources/assets/spectrum/blockstates/green_planks.json index 1409b07d17..d80c640a17 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/green_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/green_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/green_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/green_pressure_plate.json new file mode 100644 index 0000000000..acea42593d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/green_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/green_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/green_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_sapling.json b/src/main/resources/assets/spectrum/blockstates/green_sapling.json index cf32c02a9e..0b63913f55 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/green_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/green_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/green_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_slab.json b/src/main/resources/assets/spectrum/blockstates/green_slab.json new file mode 100644 index 0000000000..a8edd1f4d5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/green_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/green_slab" + }, + "type=double": { + "model": "spectrum:block/green_planks" + }, + "type=top": { + "model": "spectrum:block/green_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/green_spore_blossom.json index 5d4884af20..54d5cfae7d 100644 --- a/src/main/resources/assets/spectrum/blockstates/green_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/green_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/green_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/green_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/green_stairs.json b/src/main/resources/assets/spectrum/blockstates/green_stairs.json new file mode 100644 index 0000000000..54e39c9604 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/green_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/green_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/green_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/green_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/green_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/green_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/green_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/green_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/green_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/green_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/green_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/guardian_head.json b/src/main/resources/assets/spectrum/blockstates/guardian_head.json index 0a0e35812b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/guardian_head.json +++ b/src/main/resources/assets/spectrum/blockstates/guardian_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/guardian" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/guardian_mob_block.json b/src/main/resources/assets/spectrum/blockstates/guardian_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/guardian_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/guardian_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/guardian_wall_head.json b/src/main/resources/assets/spectrum/blockstates/guardian_wall_head.json index 0a0e35812b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/guardian_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/guardian_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/guardian" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/hoglin_head.json b/src/main/resources/assets/spectrum/blockstates/hoglin_head.json index 06b3267d7d..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/hoglin_head.json +++ b/src/main/resources/assets/spectrum/blockstates/hoglin_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/hoglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/hoglin_wall_head.json b/src/main/resources/assets/spectrum/blockstates/hoglin_wall_head.json index 06b3267d7d..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/hoglin_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/hoglin_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/hoglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/horse_head.json b/src/main/resources/assets/spectrum/blockstates/horse_head.json index 5b654c08a6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/horse_head.json +++ b/src/main/resources/assets/spectrum/blockstates/horse_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/horse" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/horse_mob_block.json b/src/main/resources/assets/spectrum/blockstates/horse_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/horse_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/horse_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/horse_wall_head.json b/src/main/resources/assets/spectrum/blockstates/horse_wall_head.json index 5b654c08a6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/horse_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/horse_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/horse" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/hover_block.json b/src/main/resources/assets/spectrum/blockstates/hover_block.json index 732b981533..217049d5d9 100644 --- a/src/main/resources/assets/spectrum/blockstates/hover_block.json +++ b/src/main/resources/assets/spectrum/blockstates/hover_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/hover_block" - } - } + "variants": { + "": { + "model": "spectrum:block/hover_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/hummingstone.json b/src/main/resources/assets/spectrum/blockstates/hummingstone.json new file mode 100644 index 0000000000..9dbc6adf65 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/hummingstone.json @@ -0,0 +1,10 @@ +{ + "variants": { + "humming=false": { + "model": "spectrum:block/hummingstone" + }, + "humming=true": { + "model": "spectrum:block/hummingstone_humming" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/hummingstone_glass.json b/src/main/resources/assets/spectrum/blockstates/hummingstone_glass.json new file mode 100644 index 0000000000..91e89a7a62 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/hummingstone_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/hummingstone_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/husk_head.json b/src/main/resources/assets/spectrum/blockstates/husk_head.json index fb9e72ca18..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/husk_head.json +++ b/src/main/resources/assets/spectrum/blockstates/husk_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/husk" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/husk_wall_head.json b/src/main/resources/assets/spectrum/blockstates/husk_wall_head.json index fb9e72ca18..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/husk_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/husk_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/husk" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/illusioner_head.json b/src/main/resources/assets/spectrum/blockstates/illusioner_head.json index f86bb4766b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/illusioner_head.json +++ b/src/main/resources/assets/spectrum/blockstates/illusioner_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/illusioner" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/illusioner_mob_block.json b/src/main/resources/assets/spectrum/blockstates/illusioner_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/illusioner_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/illusioner_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/illusioner_wall_head.json b/src/main/resources/assets/spectrum/blockstates/illusioner_wall_head.json index f86bb4766b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/illusioner_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/illusioner_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/illusioner" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/incandescent_amalgam.json b/src/main/resources/assets/spectrum/blockstates/incandescent_amalgam.json index d9fd52e294..55881e2926 100644 --- a/src/main/resources/assets/spectrum/blockstates/incandescent_amalgam.json +++ b/src/main/resources/assets/spectrum/blockstates/incandescent_amalgam.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/incandescent_amalgam" - } - } + "variants": { + "": { + "model": "spectrum:block/incandescent_amalgam" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/infested_blackslag.json b/src/main/resources/assets/spectrum/blockstates/infested_blackslag.json new file mode 100644 index 0000000000..4f1806a1a2 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/infested_blackslag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/blackslag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ink_duct.json b/src/main/resources/assets/spectrum/blockstates/ink_duct.json index ebef934884..59df5f4205 100644 --- a/src/main/resources/assets/spectrum/blockstates/ink_duct.json +++ b/src/main/resources/assets/spectrum/blockstates/ink_duct.json @@ -1,29 +1,29 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/ink_duct", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/ink_duct", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/ink_duct", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/ink_duct", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/ink_duct" - }, - "facing=down": { - "model": "spectrum:block/ink_duct", - "x": 180 - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/ink_duct", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/ink_duct", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/ink_duct", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/ink_duct", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/ink_duct" + }, + "facing=down": { + "model": "spectrum:block/ink_duct", + "x": 180 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/inkwell.json b/src/main/resources/assets/spectrum/blockstates/inkwell.json index 42d5c75101..97fc245d0a 100644 --- a/src/main/resources/assets/spectrum/blockstates/inkwell.json +++ b/src/main/resources/assets/spectrum/blockstates/inkwell.json @@ -1,29 +1,29 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/inkwell", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/inkwell", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/inkwell", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/inkwell", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/inkwell" - }, - "facing=down": { - "model": "spectrum:block/inkwell", - "x": 180 - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/inkwell", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/inkwell", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/inkwell", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/inkwell", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/inkwell" + }, + "facing=down": { + "model": "spectrum:block/inkwell", + "x": 180 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/interaction_node.json b/src/main/resources/assets/spectrum/blockstates/interaction_node.json deleted file mode 100644 index 5dce617dde..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/interaction_node.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/interaction_node" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/invisible_wall.json b/src/main/resources/assets/spectrum/blockstates/invisible_wall.json index 73e530fec0..f734bda2cf 100644 --- a/src/main/resources/assets/spectrum/blockstates/invisible_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/invisible_wall.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/invisible_wall" - } - } + "variants": { + "": { + "model": "spectrum:block/invisible_wall" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/iron_cluster.json b/src/main/resources/assets/spectrum/blockstates/iron_cluster.json index 690d51b6fa..2e386d6102 100644 --- a/src/main/resources/assets/spectrum/blockstates/iron_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/iron_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/iron_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/iron_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/iron_golem_head.json b/src/main/resources/assets/spectrum/blockstates/iron_golem_head.json index 821f0cb4d1..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/iron_golem_head.json +++ b/src/main/resources/assets/spectrum/blockstates/iron_golem_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/iron_golem" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/iron_golem_wall_head.json b/src/main/resources/assets/spectrum/blockstates/iron_golem_wall_head.json index 821f0cb4d1..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/iron_golem_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/iron_golem_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/iron_golem" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/item_bowl_basalt.json b/src/main/resources/assets/spectrum/blockstates/item_bowl_basalt.json index aed7d8b3f9..fc7185f582 100644 --- a/src/main/resources/assets/spectrum/blockstates/item_bowl_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/item_bowl_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/item_bowl_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/item_bowl_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/item_bowl_calcite.json b/src/main/resources/assets/spectrum/blockstates/item_bowl_calcite.json index edbb06a6a3..d26b86b8dd 100644 --- a/src/main/resources/assets/spectrum/blockstates/item_bowl_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/item_bowl_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/item_bowl_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/item_bowl_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/item_detector.json b/src/main/resources/assets/spectrum/blockstates/item_detector.json index 2ff02a4d96..6fc6cc333b 100644 --- a/src/main/resources/assets/spectrum/blockstates/item_detector.json +++ b/src/main/resources/assets/spectrum/blockstates/item_detector.json @@ -1,10 +1,10 @@ { - "variants": { - "inverted=false": { - "model": "spectrum:block/item_detector" - }, - "inverted=true": { - "model": "spectrum:block/item_detector_inverted" - } - } + "variants": { + "inverted=false": { + "model": "spectrum:block/item_detector" + }, + "inverted=true": { + "model": "spectrum:block/item_detector_inverted" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_cap.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_cap.json new file mode 100644 index 0000000000..5c55260723 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ivory_noxcap_cap" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_gills.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_gills.json new file mode 100644 index 0000000000..2ddc498a15 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_gills.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ivory_noxcap_gills", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ivory_noxcap_gills" + }, + "axis=z": { + "model": "spectrum:block/ivory_noxcap_gills", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_stem.json new file mode 100644 index 0000000000..dbac851e21 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ivory_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ivory_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/ivory_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxshroom.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxshroom.json new file mode 100644 index 0000000000..bcf522ed26 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxshroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ivory_noxshroom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_amphora.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_amphora.json new file mode 100644 index 0000000000..cab5306d5c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_amphora.json @@ -0,0 +1,56 @@ +{ + "variants": { + "facing=down,open=false": { + "model": "spectrum:block/ivory_noxwood_amphora", + "x": 180 + }, + "facing=down,open=true": { + "model": "spectrum:block/ivory_noxwood_amphora_open", + "x": 180 + }, + "facing=east,open=false": { + "model": "spectrum:block/ivory_noxwood_amphora", + "x": 90, + "y": 90 + }, + "facing=east,open=true": { + "model": "spectrum:block/ivory_noxwood_amphora_open", + "x": 90, + "y": 90 + }, + "facing=north,open=false": { + "model": "spectrum:block/ivory_noxwood_amphora", + "x": 90 + }, + "facing=north,open=true": { + "model": "spectrum:block/ivory_noxwood_amphora_open", + "x": 90 + }, + "facing=south,open=false": { + "model": "spectrum:block/ivory_noxwood_amphora", + "x": 90, + "y": 180 + }, + "facing=south,open=true": { + "model": "spectrum:block/ivory_noxwood_amphora_open", + "x": 90, + "y": 180 + }, + "facing=up,open=false": { + "model": "spectrum:block/ivory_noxwood_amphora" + }, + "facing=up,open=true": { + "model": "spectrum:block/ivory_noxwood_amphora_open" + }, + "facing=west,open=false": { + "model": "spectrum:block/ivory_noxwood_amphora", + "x": 90, + "y": 270 + }, + "facing=west,open=true": { + "model": "spectrum:block/ivory_noxwood_amphora_open", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_beam.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_beam.json new file mode 100644 index 0000000000..b3fd298d7a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_beam.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ivory_noxwood_beam", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ivory_noxwood_beam" + }, + "axis=z": { + "model": "spectrum:block/ivory_noxwood_beam", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_button.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_button.json new file mode 100644 index 0000000000..f2899596ad --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/ivory_noxwood_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/ivory_noxwood_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/ivory_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_door.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_door.json new file mode 100644 index 0000000000..e849003915 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "spectrum:block/ivory_noxwood_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "spectrum:block/ivory_noxwood_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_fence.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_fence.json new file mode 100644 index 0000000000..671ed74dd1 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/ivory_noxwood_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/ivory_noxwood_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/ivory_noxwood_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/ivory_noxwood_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/ivory_noxwood_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_fence_gate.json new file mode 100644 index 0000000000..437c6896a8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ivory_noxwood_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ivory_noxwood_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ivory_noxwood_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ivory_noxwood_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/ivory_noxwood_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/ivory_noxwood_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ivory_noxwood_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ivory_noxwood_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/ivory_noxwood_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_lamp.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_lamp.json new file mode 100644 index 0000000000..b1d868c702 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_lamp.json @@ -0,0 +1,28 @@ +{ + "variants": { + "hanging=false,diagonal=false,alt=false": { + "model": "spectrum:block/ivory_noxwood_lamp" + }, + "hanging=false,diagonal=false,alt=true": { + "model": "spectrum:block/ivory_noxwood_lamp_alt" + }, + "hanging=false,diagonal=true,alt=false": { + "model": "spectrum:block/ivory_noxwood_lamp_diagonal" + }, + "hanging=false,diagonal=true,alt=true": { + "model": "spectrum:block/ivory_noxwood_lamp_diagonal_alt" + }, + "hanging=true,diagonal=false,alt=false": { + "model": "spectrum:block/ivory_noxwood_lamp_hanging" + }, + "hanging=true,diagonal=false,alt=true": { + "model": "spectrum:block/ivory_noxwood_lamp_hanging_alt" + }, + "hanging=true,diagonal=true,alt=false": { + "model": "spectrum:block/ivory_noxwood_lamp_hanging_diagonal" + }, + "hanging=true,diagonal=true,alt=true": { + "model": "spectrum:block/ivory_noxwood_lamp_hanging_diagonal_alt" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_lantern.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_lantern.json new file mode 100644 index 0000000000..644674cd9d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_lantern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "spectrum:block/ivory_noxwood_lantern_off" + }, + "lit=true": { + "model": "spectrum:block/ivory_noxwood_lantern_on" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_light.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_light.json new file mode 100644 index 0000000000..6b4900d7aa --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_light.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/ivory_noxwood_light", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/ivory_noxwood_light" + }, + "axis=z": { + "model": "spectrum:block/ivory_noxwood_light", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_planks.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_planks.json new file mode 100644 index 0000000000..fbb07d1841 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/ivory_noxwood_planks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_pressure_plate.json new file mode 100644 index 0000000000..cae3d70c41 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/ivory_noxwood_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/ivory_noxwood_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_slab.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_slab.json new file mode 100644 index 0000000000..df1fcee44a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/ivory_noxwood_slab" + }, + "type=double": { + "model": "spectrum:block/ivory_noxwood_planks" + }, + "type=top": { + "model": "spectrum:block/ivory_noxwood_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_stairs.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_stairs.json new file mode 100644 index 0000000000..c82b99dc61 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/ivory_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/ivory_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/ivory_noxwood_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_trapdoor.json new file mode 100644 index 0000000000..2a72317db1 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/ivory_noxwood_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "spectrum:block/ivory_noxwood_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "spectrum:block/ivory_noxwood_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/jade_vine_bulb.json b/src/main/resources/assets/spectrum/blockstates/jade_vine_bulb.json index 3ae1846960..cb4d74f6ad 100644 --- a/src/main/resources/assets/spectrum/blockstates/jade_vine_bulb.json +++ b/src/main/resources/assets/spectrum/blockstates/jade_vine_bulb.json @@ -1,10 +1,10 @@ { - "variants": { - "dead=false": { - "model": "spectrum:block/jade_vine_bulb" - }, - "dead=true": { - "model": "spectrum:block/jade_vine_bulb_dead" - } - } + "variants": { + "dead=false": { + "model": "spectrum:block/jade_vine_bulb" + }, + "dead=true": { + "model": "spectrum:block/jade_vine_bulb_dead" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_block.json b/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_block.json index 5fe01c36f6..f2e080343b 100644 --- a/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_block.json +++ b/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/jade_vine_petal_block" - } - } + "variants": { + "": { + "model": "spectrum:block/jade_vine_petal_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_carpet.json b/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_carpet.json index e5448a7289..c881b4357b 100644 --- a/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_carpet.json +++ b/src/main/resources/assets/spectrum/blockstates/jade_vine_petal_carpet.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/jade_vine_petal_carpet" - } - } + "variants": { + "": { + "model": "spectrum:block/jade_vine_petal_carpet" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/jade_vine_roots.json b/src/main/resources/assets/spectrum/blockstates/jade_vine_roots.json index 6149523deb..1622656793 100644 --- a/src/main/resources/assets/spectrum/blockstates/jade_vine_roots.json +++ b/src/main/resources/assets/spectrum/blockstates/jade_vine_roots.json @@ -1,10 +1,10 @@ { - "variants": { - "dead=false": { - "model": "spectrum:block/jade_vine_roots" - }, - "dead=true": { - "model": "spectrum:block/jade_vine_roots_dead" - } - } + "variants": { + "dead=false": { + "model": "spectrum:block/jade_vine_roots" + }, + "dead=true": { + "model": "spectrum:block/jade_vine_roots_dead" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/jade_vines.json b/src/main/resources/assets/spectrum/blockstates/jade_vines.json index a506a830ee..5ff9ffce16 100644 --- a/src/main/resources/assets/spectrum/blockstates/jade_vines.json +++ b/src/main/resources/assets/spectrum/blockstates/jade_vines.json @@ -1,76 +1,76 @@ { - "variants": { - "age=0,part=base": { - "model": "spectrum:block/jade_vine_base_dead" - }, - "age=1,part=base": { - "model": "spectrum:block/jade_vine_base_leaves" - }, - "age=2,part=base": { - "model": "spectrum:block/jade_vine_base_leaves" - }, - "age=3,part=base": { - "model": "spectrum:block/jade_vine_base_petals" - }, - "age=4,part=base": { - "model": "spectrum:block/jade_vine_base_petals" - }, - "age=5,part=base": { - "model": "spectrum:block/jade_vine_base_petals" - }, - "age=6,part=base": { - "model": "spectrum:block/jade_vine_base_petals" - }, - "age=7,part=base": { - "model": "spectrum:block/jade_vine_base_bloom" - }, - "age=0,part=middle": { - "model": "spectrum:block/jade_vine_middle_dead" - }, - "age=1,part=middle": { - "model": "spectrum:block/jade_vine_middle_leaves" - }, - "age=2,part=middle": { - "model": "spectrum:block/jade_vine_middle_leaves" - }, - "age=3,part=middle": { - "model": "spectrum:block/jade_vine_middle_petals" - }, - "age=4,part=middle": { - "model": "spectrum:block/jade_vine_middle_petals" - }, - "age=5,part=middle": { - "model": "spectrum:block/jade_vine_middle_petals" - }, - "age=6,part=middle": { - "model": "spectrum:block/jade_vine_middle_petals" - }, - "age=7,part=middle": { - "model": "spectrum:block/jade_vine_middle_bloom" - }, - "age=0,part=tip": { - "model": "spectrum:block/jade_vine_tip_dead" - }, - "age=1,part=tip": { - "model": "spectrum:block/jade_vine_tip_leaves" - }, - "age=2,part=tip": { - "model": "spectrum:block/jade_vine_tip_leaves" - }, - "age=3,part=tip": { - "model": "spectrum:block/jade_vine_tip_petals" - }, - "age=4,part=tip": { - "model": "spectrum:block/jade_vine_tip_petals" - }, - "age=5,part=tip": { - "model": "spectrum:block/jade_vine_tip_petals" - }, - "age=6,part=tip": { - "model": "spectrum:block/jade_vine_tip_petals" - }, - "age=7,part=tip": { - "model": "spectrum:block/jade_vine_tip_bloom" - } - } + "variants": { + "age=0,part=base": { + "model": "spectrum:block/jade_vine_base_dead" + }, + "age=1,part=base": { + "model": "spectrum:block/jade_vine_base_leaves" + }, + "age=2,part=base": { + "model": "spectrum:block/jade_vine_base_leaves" + }, + "age=3,part=base": { + "model": "spectrum:block/jade_vine_base_petals" + }, + "age=4,part=base": { + "model": "spectrum:block/jade_vine_base_petals" + }, + "age=5,part=base": { + "model": "spectrum:block/jade_vine_base_petals" + }, + "age=6,part=base": { + "model": "spectrum:block/jade_vine_base_petals" + }, + "age=7,part=base": { + "model": "spectrum:block/jade_vine_base_bloom" + }, + "age=0,part=middle": { + "model": "spectrum:block/jade_vine_middle_dead" + }, + "age=1,part=middle": { + "model": "spectrum:block/jade_vine_middle_leaves" + }, + "age=2,part=middle": { + "model": "spectrum:block/jade_vine_middle_leaves" + }, + "age=3,part=middle": { + "model": "spectrum:block/jade_vine_middle_petals" + }, + "age=4,part=middle": { + "model": "spectrum:block/jade_vine_middle_petals" + }, + "age=5,part=middle": { + "model": "spectrum:block/jade_vine_middle_petals" + }, + "age=6,part=middle": { + "model": "spectrum:block/jade_vine_middle_petals" + }, + "age=7,part=middle": { + "model": "spectrum:block/jade_vine_middle_bloom" + }, + "age=0,part=tip": { + "model": "spectrum:block/jade_vine_tip_dead" + }, + "age=1,part=tip": { + "model": "spectrum:block/jade_vine_tip_leaves" + }, + "age=2,part=tip": { + "model": "spectrum:block/jade_vine_tip_leaves" + }, + "age=3,part=tip": { + "model": "spectrum:block/jade_vine_tip_petals" + }, + "age=4,part=tip": { + "model": "spectrum:block/jade_vine_tip_petals" + }, + "age=5,part=tip": { + "model": "spectrum:block/jade_vine_tip_petals" + }, + "age=6,part=tip": { + "model": "spectrum:block/jade_vine_tip_petals" + }, + "age=7,part=tip": { + "model": "spectrum:block/jade_vine_tip_bloom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lapis_cluster.json b/src/main/resources/assets/spectrum/blockstates/lapis_cluster.json index 80dfb8304c..22a3078baa 100644 --- a/src/main/resources/assets/spectrum/blockstates/lapis_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/lapis_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lapis_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/lapis_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_bismuth_bud.json b/src/main/resources/assets/spectrum/blockstates/large_bismuth_bud.json index a4eef8ca68..d4dc9dd830 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_bismuth_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_bismuth_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/large_bismuth_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/large_bismuth_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/large_bismuth_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/large_bismuth_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/large_bismuth_bud" - }, - "facing=west": { - "model": "spectrum:block/large_bismuth_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/large_bismuth_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/large_bismuth_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/large_bismuth_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/large_bismuth_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/large_bismuth_bud" + }, + "facing=west": { + "model": "spectrum:block/large_bismuth_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_certus_quartz_bud.json b/src/main/resources/assets/spectrum/blockstates/large_certus_quartz_bud.json index cf9854ff0b..e54c5c2769 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_certus_quartz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_certus_quartz_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_certus_quartz_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_certus_quartz_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_citrine_bud.json b/src/main/resources/assets/spectrum/blockstates/large_citrine_bud.json index cdcd12c2af..724924b3f9 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_citrine_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_citrine_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/large_citrine_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/large_citrine_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/large_citrine_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/large_citrine_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/large_citrine_bud" - }, - "facing=west": { - "model": "spectrum:block/large_citrine_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/large_citrine_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/large_citrine_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/large_citrine_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/large_citrine_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/large_citrine_bud" + }, + "facing=west": { + "model": "spectrum:block/large_citrine_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_coal_bud.json b/src/main/resources/assets/spectrum/blockstates/large_coal_bud.json index 9273598264..277ab33636 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_coal_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_coal_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_coal_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_coal_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_copper_bud.json b/src/main/resources/assets/spectrum/blockstates/large_copper_bud.json index fb9d7e1b87..168bbdaff2 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_copper_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_copper_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_copper_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_copper_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_diamond_bud.json b/src/main/resources/assets/spectrum/blockstates/large_diamond_bud.json index e1e5925492..f22f1ddc08 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_diamond_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_diamond_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_diamond_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_diamond_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_emerald_bud.json b/src/main/resources/assets/spectrum/blockstates/large_emerald_bud.json index 0019caabd0..5e97f3d732 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_emerald_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_emerald_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_emerald_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_emerald_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_fluix_bud.json b/src/main/resources/assets/spectrum/blockstates/large_fluix_bud.json index 60cbac9682..393c958d13 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_fluix_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_fluix_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_fluix_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_fluix_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_globette_bud.json b/src/main/resources/assets/spectrum/blockstates/large_globette_bud.json index e4cfd0a39c..9516a62ef8 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_globette_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_globette_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_globette_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_globette_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_globette_end_bud.json b/src/main/resources/assets/spectrum/blockstates/large_globette_end_bud.json index 845fe928b5..663e64da6d 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_globette_end_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_globette_end_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_globette_end_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_globette_end_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_globette_nether_bud.json b/src/main/resources/assets/spectrum/blockstates/large_globette_nether_bud.json index 344254d3a0..d59c125ab2 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_globette_nether_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_globette_nether_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_globette_nether_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_globette_nether_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_glowstone_bud.json b/src/main/resources/assets/spectrum/blockstates/large_glowstone_bud.json index 941d280727..59f71aa8ed 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_glowstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_glowstone_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_glowstone_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_glowstone_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_gold_bud.json b/src/main/resources/assets/spectrum/blockstates/large_gold_bud.json index 4f52279598..62c9505ce6 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_gold_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_gold_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_gold_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_gold_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_iron_bud.json b/src/main/resources/assets/spectrum/blockstates/large_iron_bud.json index 647738915f..73a4140736 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_iron_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_iron_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_iron_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_iron_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_lapis_bud.json b/src/main/resources/assets/spectrum/blockstates/large_lapis_bud.json index 51b772c7ab..745621c5c9 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_lapis_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_lapis_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_lapis_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_lapis_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_malachite_bud.json b/src/main/resources/assets/spectrum/blockstates/large_malachite_bud.json index e6c98b6d65..31e693cdfb 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_malachite_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_malachite_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_malachite_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_malachite_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_moonstone_bud.json b/src/main/resources/assets/spectrum/blockstates/large_moonstone_bud.json index 0467f02a4a..d80af2fc8f 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_moonstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_moonstone_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/large_moonstone_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/large_moonstone_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/large_moonstone_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/large_moonstone_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/large_moonstone_bud" - }, - "facing=west": { - "model": "spectrum:block/large_moonstone_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/large_moonstone_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/large_moonstone_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/large_moonstone_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/large_moonstone_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/large_moonstone_bud" + }, + "facing=west": { + "model": "spectrum:block/large_moonstone_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_netherite_bud.json b/src/main/resources/assets/spectrum/blockstates/large_netherite_bud.json index 1337c77dca..ceac4458de 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_netherite_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_netherite_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_netherite_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_netherite_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_onyx_bud.json b/src/main/resources/assets/spectrum/blockstates/large_onyx_bud.json index c0eab90414..40eb3eefb3 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_onyx_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_onyx_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/large_onyx_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/large_onyx_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/large_onyx_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/large_onyx_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/large_onyx_bud" - }, - "facing=west": { - "model": "spectrum:block/large_onyx_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/large_onyx_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/large_onyx_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/large_onyx_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/large_onyx_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/large_onyx_bud" + }, + "facing=west": { + "model": "spectrum:block/large_onyx_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_prismarine_bud.json b/src/main/resources/assets/spectrum/blockstates/large_prismarine_bud.json index cf5bb6db12..7844477e17 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_prismarine_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_prismarine_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_prismarine_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_prismarine_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_quartz_bud.json b/src/main/resources/assets/spectrum/blockstates/large_quartz_bud.json index 8712d3ab07..972437ad0d 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_quartz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_quartz_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_quartz_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_quartz_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_redstone_bud.json b/src/main/resources/assets/spectrum/blockstates/large_redstone_bud.json index 56a9418467..c586ae9cda 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_redstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_redstone_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/large_redstone_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/large_redstone_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/large_topaz_bud.json b/src/main/resources/assets/spectrum/blockstates/large_topaz_bud.json index 11c3fa92d2..8663a9456f 100644 --- a/src/main/resources/assets/spectrum/blockstates/large_topaz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/large_topaz_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/large_topaz_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/large_topaz_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/large_topaz_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/large_topaz_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/large_topaz_bud" - }, - "facing=west": { - "model": "spectrum:block/large_topaz_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/large_topaz_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/large_topaz_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/large_topaz_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/large_topaz_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/large_topaz_bud" + }, + "facing=west": { + "model": "spectrum:block/large_topaz_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lava_sponge.json b/src/main/resources/assets/spectrum/blockstates/lava_sponge.json index 524aecd450..0d46890202 100644 --- a/src/main/resources/assets/spectrum/blockstates/lava_sponge.json +++ b/src/main/resources/assets/spectrum/blockstates/lava_sponge.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lava_sponge" - } - } + "variants": { + "": { + "model": "spectrum:block/lava_sponge" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_block.json b/src/main/resources/assets/spectrum/blockstates/light_blue_block.json index 0104f922df..9752e25217 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_block.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_blue_block" - } - } + "variants": { + "": { + "model": "spectrum:block/light_blue_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_button.json b/src/main/resources/assets/spectrum/blockstates/light_blue_button.json new file mode 100644 index 0000000000..25cc34367b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/light_blue_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/light_blue_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/light_blue_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/light_blue_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/light_blue_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/light_blue_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_fence.json b/src/main/resources/assets/spectrum/blockstates/light_blue_fence.json new file mode 100644 index 0000000000..42edf7b612 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/light_blue_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/light_blue_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/light_blue_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/light_blue_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/light_blue_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/light_blue_fence_gate.json new file mode 100644 index 0000000000..02cb72a380 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_blue_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_blue_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_blue_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_blue_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_blue_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_blue_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_blue_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_blue_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/light_blue_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/light_blue_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/light_blue_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/light_blue_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_blue_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_blue_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_blue_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_blue_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_glowblock.json b/src/main/resources/assets/spectrum/blockstates/light_blue_glowblock.json index 36c25d554c..6e653b1424 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_blue_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/light_blue_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_lamp.json b/src/main/resources/assets/spectrum/blockstates/light_blue_lamp.json index e0286bb1bd..b49eaa8040 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/light_blue_lamp" - }, - "lit=true": { - "model": "spectrum:block/light_blue_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/light_blue_lamp" + }, + "lit=true": { + "model": "spectrum:block/light_blue_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_leaves.json b/src/main/resources/assets/spectrum/blockstates/light_blue_leaves.json index 114c09a2a1..76042df542 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_blue_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/light_blue_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_log.json b/src/main/resources/assets/spectrum/blockstates/light_blue_log.json index b071d7a92f..6d191ced3c 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_log.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/light_blue_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/light_blue_log" - }, - "axis=z": { - "model": "spectrum:block/light_blue_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/light_blue_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/light_blue_log" + }, + "axis=z": { + "model": "spectrum:block/light_blue_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_button.json b/src/main/resources/assets/spectrum/blockstates/light_blue_plank_button.json deleted file mode 100644 index 70b4e91d85..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/light_blue_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/light_blue_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/light_blue_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/light_blue_plank_fence.json deleted file mode 100644 index fb79278bce..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/light_blue_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/light_blue_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/light_blue_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/light_blue_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/light_blue_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/light_blue_plank_fence_gate.json deleted file mode 100644 index 88e8b1df4a..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_blue_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_blue_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_blue_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_blue_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_blue_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_blue_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_blue_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_blue_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/light_blue_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/light_blue_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/light_blue_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/light_blue_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_blue_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_blue_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_blue_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_blue_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/light_blue_plank_pressure_plate.json deleted file mode 100644 index e4434227b6..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/light_blue_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/light_blue_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/light_blue_plank_slab.json deleted file mode 100644 index 8d6d394fd1..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/light_blue_plank_slab" - }, - "type=double": { - "model": "spectrum:block/light_blue_planks" - }, - "type=top": { - "model": "spectrum:block/light_blue_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/light_blue_plank_stairs.json deleted file mode 100644 index 734e2e8a02..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/light_blue_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/light_blue_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/light_blue_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_planks.json b/src/main/resources/assets/spectrum/blockstates/light_blue_planks.json index b55c6b99c6..cf9ce48d9f 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_blue_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/light_blue_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/light_blue_pressure_plate.json new file mode 100644 index 0000000000..799cf4f799 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/light_blue_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/light_blue_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_sapling.json b/src/main/resources/assets/spectrum/blockstates/light_blue_sapling.json index b64760db65..ef6e9d8d76 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_blue_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/light_blue_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_slab.json b/src/main/resources/assets/spectrum/blockstates/light_blue_slab.json new file mode 100644 index 0000000000..358bb9c132 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/light_blue_slab" + }, + "type=double": { + "model": "spectrum:block/light_blue_planks" + }, + "type=top": { + "model": "spectrum:block/light_blue_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/light_blue_spore_blossom.json index 4f1247da6f..b25b8a24ee 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_blue_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_blue_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/light_blue_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_blue_stairs.json b/src/main/resources/assets/spectrum/blockstates/light_blue_stairs.json new file mode 100644 index 0000000000..18b506f252 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_blue_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/light_blue_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/light_blue_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/light_blue_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/light_blue_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_block.json b/src/main/resources/assets/spectrum/blockstates/light_gray_block.json index d99a4466ef..40d3ced329 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_block.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_gray_block" - } - } + "variants": { + "": { + "model": "spectrum:block/light_gray_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_button.json b/src/main/resources/assets/spectrum/blockstates/light_gray_button.json new file mode 100644 index 0000000000..2422a2fb01 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/light_gray_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/light_gray_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/light_gray_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/light_gray_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/light_gray_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/light_gray_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_fence.json b/src/main/resources/assets/spectrum/blockstates/light_gray_fence.json new file mode 100644 index 0000000000..acfc929f3f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/light_gray_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/light_gray_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/light_gray_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/light_gray_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/light_gray_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/light_gray_fence_gate.json new file mode 100644 index 0000000000..52f36acfa5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_gray_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_gray_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_gray_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/light_gray_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_gray_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_gray_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_gray_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/light_gray_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/light_gray_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/light_gray_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/light_gray_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/light_gray_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_gray_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_gray_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_gray_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/light_gray_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_glowblock.json b/src/main/resources/assets/spectrum/blockstates/light_gray_glowblock.json index bce24d0d6d..056848742d 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_gray_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/light_gray_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_lamp.json b/src/main/resources/assets/spectrum/blockstates/light_gray_lamp.json index ec16df681b..0929b67cbf 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/light_gray_lamp" - }, - "lit=true": { - "model": "spectrum:block/light_gray_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/light_gray_lamp" + }, + "lit=true": { + "model": "spectrum:block/light_gray_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_leaves.json b/src/main/resources/assets/spectrum/blockstates/light_gray_leaves.json index 548ef4893f..df1e834352 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_gray_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/light_gray_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_log.json b/src/main/resources/assets/spectrum/blockstates/light_gray_log.json index bd42ae2e92..1dc7312d54 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_log.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/light_gray_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/light_gray_log" - }, - "axis=z": { - "model": "spectrum:block/light_gray_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/light_gray_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/light_gray_log" + }, + "axis=z": { + "model": "spectrum:block/light_gray_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_button.json b/src/main/resources/assets/spectrum/blockstates/light_gray_plank_button.json deleted file mode 100644 index 5e3705c3d3..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/light_gray_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/light_gray_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/light_gray_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/light_gray_plank_fence.json deleted file mode 100644 index 86ca4c052a..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/light_gray_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/light_gray_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/light_gray_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/light_gray_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/light_gray_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/light_gray_plank_fence_gate.json deleted file mode 100644 index e3454871b2..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_gray_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_gray_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_gray_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/light_gray_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_gray_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_gray_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_gray_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/light_gray_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/light_gray_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/light_gray_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/light_gray_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/light_gray_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_gray_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_gray_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_gray_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/light_gray_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/light_gray_plank_pressure_plate.json deleted file mode 100644 index be93ed17a2..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/light_gray_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/light_gray_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/light_gray_plank_slab.json deleted file mode 100644 index 647b758d55..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/light_gray_plank_slab" - }, - "type=double": { - "model": "spectrum:block/light_gray_planks" - }, - "type=top": { - "model": "spectrum:block/light_gray_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/light_gray_plank_stairs.json deleted file mode 100644 index bb196e0307..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/light_gray_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/light_gray_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/light_gray_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_planks.json b/src/main/resources/assets/spectrum/blockstates/light_gray_planks.json index 80bff06b04..b3e5cb0918 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_gray_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/light_gray_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/light_gray_pressure_plate.json new file mode 100644 index 0000000000..86591e9f79 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/light_gray_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/light_gray_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_sapling.json b/src/main/resources/assets/spectrum/blockstates/light_gray_sapling.json index 32df0962bb..d345e8262f 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_gray_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/light_gray_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_slab.json b/src/main/resources/assets/spectrum/blockstates/light_gray_slab.json new file mode 100644 index 0000000000..a395acb8f9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/light_gray_slab" + }, + "type=double": { + "model": "spectrum:block/light_gray_planks" + }, + "type=top": { + "model": "spectrum:block/light_gray_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/light_gray_spore_blossom.json index c4afeb8f4e..050206f390 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_gray_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/light_gray_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/light_gray_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_gray_stairs.json b/src/main/resources/assets/spectrum/blockstates/light_gray_stairs.json new file mode 100644 index 0000000000..8fbc6a0870 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/light_gray_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/light_gray_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/light_gray_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/light_gray_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/light_gray_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/light_level_detector.json b/src/main/resources/assets/spectrum/blockstates/light_level_detector.json index d4aaef291f..bf3703cb2a 100644 --- a/src/main/resources/assets/spectrum/blockstates/light_level_detector.json +++ b/src/main/resources/assets/spectrum/blockstates/light_level_detector.json @@ -1,10 +1,10 @@ { - "variants": { - "inverted=false": { - "model": "spectrum:block/light_level_detector" - }, - "inverted=true": { - "model": "spectrum:block/light_level_detector_inverted" - } - } + "variants": { + "inverted=false": { + "model": "spectrum:block/light_level_detector" + }, + "inverted=true": { + "model": "spectrum:block/light_level_detector_inverted" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_block.json b/src/main/resources/assets/spectrum/blockstates/lime_block.json index d33b842913..c89ab95be5 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_block.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lime_block" - } - } + "variants": { + "": { + "model": "spectrum:block/lime_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_button.json b/src/main/resources/assets/spectrum/blockstates/lime_button.json new file mode 100644 index 0000000000..d3362645e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/lime_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/lime_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/lime_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/lime_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/lime_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/lime_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/lime_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/lime_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/lime_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/lime_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/lime_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/lime_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/lime_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/lime_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/lime_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_fence.json b/src/main/resources/assets/spectrum/blockstates/lime_fence.json new file mode 100644 index 0000000000..5c6d18a021 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/lime_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/lime_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/lime_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/lime_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/lime_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/lime_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/lime_fence_gate.json new file mode 100644 index 0000000000..c37ecf53f9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/lime_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/lime_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/lime_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/lime_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/lime_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/lime_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/lime_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/lime_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/lime_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/lime_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/lime_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/lime_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/lime_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/lime_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/lime_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/lime_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/lime_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_glowblock.json b/src/main/resources/assets/spectrum/blockstates/lime_glowblock.json index b1b1debc97..b5a989ff4e 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lime_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/lime_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_lamp.json b/src/main/resources/assets/spectrum/blockstates/lime_lamp.json index 189624e3e2..5b21c8bfc8 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/lime_lamp" - }, - "lit=true": { - "model": "spectrum:block/lime_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/lime_lamp" + }, + "lit=true": { + "model": "spectrum:block/lime_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_leaves.json b/src/main/resources/assets/spectrum/blockstates/lime_leaves.json index 15bea6f2ca..64defe61f4 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lime_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/lime_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_log.json b/src/main/resources/assets/spectrum/blockstates/lime_log.json index 037282a8ba..e7d399c29a 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_log.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/lime_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/lime_log" - }, - "axis=z": { - "model": "spectrum:block/lime_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/lime_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/lime_log" + }, + "axis=z": { + "model": "spectrum:block/lime_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_plank_button.json b/src/main/resources/assets/spectrum/blockstates/lime_plank_button.json deleted file mode 100644 index 8b48594cd8..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/lime_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/lime_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/lime_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/lime_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/lime_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/lime_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/lime_plank_fence.json deleted file mode 100644 index 587b2a854e..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/lime_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/lime_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/lime_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/lime_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/lime_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/lime_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/lime_plank_fence_gate.json deleted file mode 100644 index f1449655e3..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/lime_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/lime_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/lime_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/lime_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/lime_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/lime_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/lime_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/lime_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/lime_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/lime_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/lime_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/lime_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/lime_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/lime_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/lime_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/lime_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/lime_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/lime_plank_pressure_plate.json deleted file mode 100644 index 4a786566e0..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/lime_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/lime_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/lime_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/lime_plank_slab.json deleted file mode 100644 index 30a3462b11..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/lime_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/lime_plank_slab" - }, - "type=double": { - "model": "spectrum:block/lime_planks" - }, - "type=top": { - "model": "spectrum:block/lime_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/lime_plank_stairs.json deleted file mode 100644 index 2e8a476f14..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/lime_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/lime_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/lime_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/lime_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/lime_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_planks.json b/src/main/resources/assets/spectrum/blockstates/lime_planks.json index 614a4b46bf..6526eccdcf 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lime_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/lime_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/lime_pressure_plate.json new file mode 100644 index 0000000000..3e11afb276 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/lime_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/lime_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/lime_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_sapling.json b/src/main/resources/assets/spectrum/blockstates/lime_sapling.json index 3b62593fc5..948eccf996 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lime_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/lime_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_slab.json b/src/main/resources/assets/spectrum/blockstates/lime_slab.json new file mode 100644 index 0000000000..6af4871562 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/lime_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/lime_slab" + }, + "type=double": { + "model": "spectrum:block/lime_planks" + }, + "type=top": { + "model": "spectrum:block/lime_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/lime_spore_blossom.json index b18bf1e6cf..db03151bc5 100644 --- a/src/main/resources/assets/spectrum/blockstates/lime_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/lime_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/lime_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/lime_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/lime_stairs.json b/src/main/resources/assets/spectrum/blockstates/lime_stairs.json new file mode 100644 index 0000000000..99d59355b1 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/lime_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/lime_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/lime_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/lime_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/lime_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/lime_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/lime_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/lime_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/lime_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/lime_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/lime_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/liquid_crystal.json b/src/main/resources/assets/spectrum/blockstates/liquid_crystal.json index c18d98cd90..cc6485712f 100644 --- a/src/main/resources/assets/spectrum/blockstates/liquid_crystal.json +++ b/src/main/resources/assets/spectrum/blockstates/liquid_crystal.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/liquid_crystal" - } - } + "variants": { + "": { + "model": "spectrum:block/liquid_crystal" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/llama_head.json b/src/main/resources/assets/spectrum/blockstates/llama_head.json index eb34f688ff..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/llama_head.json +++ b/src/main/resources/assets/spectrum/blockstates/llama_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/llama" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/llama_wall_head.json b/src/main/resources/assets/spectrum/blockstates/llama_wall_head.json index eb34f688ff..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/llama_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/llama_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/llama" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_block.json b/src/main/resources/assets/spectrum/blockstates/magenta_block.json index ce83ba95e0..8480e67c95 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_block.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magenta_block" - } - } + "variants": { + "": { + "model": "spectrum:block/magenta_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_button.json b/src/main/resources/assets/spectrum/blockstates/magenta_button.json new file mode 100644 index 0000000000..824e23708a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/magenta_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/magenta_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/magenta_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/magenta_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/magenta_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/magenta_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/magenta_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_fence.json b/src/main/resources/assets/spectrum/blockstates/magenta_fence.json new file mode 100644 index 0000000000..c813eb537c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/magenta_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/magenta_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/magenta_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/magenta_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/magenta_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/magenta_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/magenta_fence_gate.json new file mode 100644 index 0000000000..4ac88e4001 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/magenta_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/magenta_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/magenta_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/magenta_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/magenta_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/magenta_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/magenta_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/magenta_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/magenta_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/magenta_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/magenta_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/magenta_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/magenta_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/magenta_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/magenta_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/magenta_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/magenta_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_glowblock.json b/src/main/resources/assets/spectrum/blockstates/magenta_glowblock.json index bb43fe5e29..3d804ed196 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magenta_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/magenta_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_lamp.json b/src/main/resources/assets/spectrum/blockstates/magenta_lamp.json index 1454343a5f..e3bd796e5c 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/magenta_lamp" - }, - "lit=true": { - "model": "spectrum:block/magenta_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/magenta_lamp" + }, + "lit=true": { + "model": "spectrum:block/magenta_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_leaves.json b/src/main/resources/assets/spectrum/blockstates/magenta_leaves.json index f5329053ed..f4cd20c7f4 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magenta_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/magenta_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_log.json b/src/main/resources/assets/spectrum/blockstates/magenta_log.json index 2ce74a4bff..5a33d6dd13 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_log.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/magenta_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/magenta_log" - }, - "axis=z": { - "model": "spectrum:block/magenta_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/magenta_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/magenta_log" + }, + "axis=z": { + "model": "spectrum:block/magenta_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_plank_button.json b/src/main/resources/assets/spectrum/blockstates/magenta_plank_button.json deleted file mode 100644 index c312c41891..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/magenta_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/magenta_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/magenta_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/magenta_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/magenta_plank_fence.json deleted file mode 100644 index 7870a6dd28..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/magenta_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/magenta_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/magenta_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/magenta_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/magenta_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/magenta_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/magenta_plank_fence_gate.json deleted file mode 100644 index b4cd2c8b22..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/magenta_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/magenta_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/magenta_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/magenta_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/magenta_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/magenta_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/magenta_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/magenta_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/magenta_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/magenta_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/magenta_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/magenta_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/magenta_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/magenta_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/magenta_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/magenta_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/magenta_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/magenta_plank_pressure_plate.json deleted file mode 100644 index ab2985251a..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/magenta_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/magenta_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/magenta_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/magenta_plank_slab.json deleted file mode 100644 index 76abb20456..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/magenta_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/magenta_plank_slab" - }, - "type=double": { - "model": "spectrum:block/magenta_planks" - }, - "type=top": { - "model": "spectrum:block/magenta_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/magenta_plank_stairs.json deleted file mode 100644 index 30fa2f338d..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/magenta_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/magenta_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/magenta_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/magenta_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_planks.json b/src/main/resources/assets/spectrum/blockstates/magenta_planks.json index acb822147d..283cc5df39 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magenta_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/magenta_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/magenta_pressure_plate.json new file mode 100644 index 0000000000..b2a8df21bc --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/magenta_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/magenta_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/magenta_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_sapling.json b/src/main/resources/assets/spectrum/blockstates/magenta_sapling.json index 5a715853bb..d7da032ccd 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magenta_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/magenta_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_slab.json b/src/main/resources/assets/spectrum/blockstates/magenta_slab.json new file mode 100644 index 0000000000..0600df798b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/magenta_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/magenta_slab" + }, + "type=double": { + "model": "spectrum:block/magenta_planks" + }, + "type=top": { + "model": "spectrum:block/magenta_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_body.json b/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_body.json index b59cfcc8cb..8750f2a133 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_body.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_body.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/magenta_spirit_sallow_vines_body_none" - }, - "yield=normal": { - "model": "spectrum:block/magenta_spirit_sallow_vines_body_normal" - }, - "yield=lucid": { - "model": "spectrum:block/magenta_spirit_sallow_vines_body_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/magenta_spirit_sallow_vines_body_none" + }, + "yield=normal": { + "model": "spectrum:block/magenta_spirit_sallow_vines_body_normal" + }, + "yield=lucid": { + "model": "spectrum:block/magenta_spirit_sallow_vines_body_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_head.json b/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_head.json index 247bd234a2..11ccec999c 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_head.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_spirit_sallow_vines_head.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/magenta_spirit_sallow_vines_head_none" - }, - "yield=normal": { - "model": "spectrum:block/magenta_spirit_sallow_vines_head_normal" - }, - "yield=lucid": { - "model": "spectrum:block/magenta_spirit_sallow_vines_head_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/magenta_spirit_sallow_vines_head_none" + }, + "yield=normal": { + "model": "spectrum:block/magenta_spirit_sallow_vines_head_normal" + }, + "yield=lucid": { + "model": "spectrum:block/magenta_spirit_sallow_vines_head_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/magenta_spore_blossom.json index a0f2a3f2e0..94c88ec4c5 100644 --- a/src/main/resources/assets/spectrum/blockstates/magenta_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/magenta_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magenta_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/magenta_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magenta_stairs.json b/src/main/resources/assets/spectrum/blockstates/magenta_stairs.json new file mode 100644 index 0000000000..990aabd1fd --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/magenta_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/magenta_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/magenta_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/magenta_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/magenta_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magma_cube_head.json b/src/main/resources/assets/spectrum/blockstates/magma_cube_head.json index a8924985ff..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/magma_cube_head.json +++ b/src/main/resources/assets/spectrum/blockstates/magma_cube_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magma_cube" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/magma_cube_wall_head.json b/src/main/resources/assets/spectrum/blockstates/magma_cube_wall_head.json index a8924985ff..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/magma_cube_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/magma_cube_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/magma_cube" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/malachite_block.json b/src/main/resources/assets/spectrum/blockstates/malachite_block.json index 743b342e2d..765e045479 100644 --- a/src/main/resources/assets/spectrum/blockstates/malachite_block.json +++ b/src/main/resources/assets/spectrum/blockstates/malachite_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/malachite_block" - } - } + "variants": { + "": { + "model": "spectrum:block/malachite_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/malachite_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/malachite_chiseled_basalt.json new file mode 100644 index 0000000000..46bb9db221 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/malachite_chiseled_basalt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/malachite_chiseled_basalt" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/malachite_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/malachite_chiseled_calcite.json new file mode 100644 index 0000000000..4e3e451b47 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/malachite_chiseled_calcite.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/malachite_chiseled_calcite" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/malachite_cluster.json b/src/main/resources/assets/spectrum/blockstates/malachite_cluster.json index 6db371fc9e..885a376072 100644 --- a/src/main/resources/assets/spectrum/blockstates/malachite_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/malachite_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/malachite_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/malachite_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/malachite_ore.json b/src/main/resources/assets/spectrum/blockstates/malachite_ore.json index 115c87f90c..457bf15fb3 100644 --- a/src/main/resources/assets/spectrum/blockstates/malachite_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/malachite_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/malachite_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/malachite_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/medium_citrine_bud.json b/src/main/resources/assets/spectrum/blockstates/medium_citrine_bud.json index 855a835ed9..cd47dcd21b 100644 --- a/src/main/resources/assets/spectrum/blockstates/medium_citrine_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/medium_citrine_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/medium_citrine_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/medium_citrine_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/medium_citrine_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/medium_citrine_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/medium_citrine_bud" - }, - "facing=west": { - "model": "spectrum:block/medium_citrine_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/medium_citrine_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/medium_citrine_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/medium_citrine_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/medium_citrine_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/medium_citrine_bud" + }, + "facing=west": { + "model": "spectrum:block/medium_citrine_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/medium_moonstone_bud.json b/src/main/resources/assets/spectrum/blockstates/medium_moonstone_bud.json index 44b64db1c5..32e096b131 100644 --- a/src/main/resources/assets/spectrum/blockstates/medium_moonstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/medium_moonstone_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/medium_moonstone_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/medium_moonstone_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/medium_moonstone_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/medium_moonstone_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/medium_moonstone_bud" - }, - "facing=west": { - "model": "spectrum:block/medium_moonstone_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/medium_moonstone_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/medium_moonstone_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/medium_moonstone_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/medium_moonstone_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/medium_moonstone_bud" + }, + "facing=west": { + "model": "spectrum:block/medium_moonstone_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/medium_onyx_bud.json b/src/main/resources/assets/spectrum/blockstates/medium_onyx_bud.json index a0621f47e2..9a5ed838e0 100644 --- a/src/main/resources/assets/spectrum/blockstates/medium_onyx_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/medium_onyx_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/medium_onyx_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/medium_onyx_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/medium_onyx_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/medium_onyx_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/medium_onyx_bud" - }, - "facing=west": { - "model": "spectrum:block/medium_onyx_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/medium_onyx_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/medium_onyx_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/medium_onyx_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/medium_onyx_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/medium_onyx_bud" + }, + "facing=west": { + "model": "spectrum:block/medium_onyx_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/medium_prismarine_bud.json b/src/main/resources/assets/spectrum/blockstates/medium_prismarine_bud.json index ac7803ef9a..578266407a 100644 --- a/src/main/resources/assets/spectrum/blockstates/medium_prismarine_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/medium_prismarine_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/medium_prismarine_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/medium_prismarine_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/medium_topaz_bud.json b/src/main/resources/assets/spectrum/blockstates/medium_topaz_bud.json index cae0bb2262..faea88e796 100644 --- a/src/main/resources/assets/spectrum/blockstates/medium_topaz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/medium_topaz_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/medium_topaz_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/medium_topaz_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/medium_topaz_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/medium_topaz_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/medium_topaz_bud" - }, - "facing=west": { - "model": "spectrum:block/medium_topaz_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/medium_topaz_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/medium_topaz_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/medium_topaz_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/medium_topaz_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/medium_topaz_bud" + }, + "facing=west": { + "model": "spectrum:block/medium_topaz_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/memory.json b/src/main/resources/assets/spectrum/blockstates/memory.json index cda15b0b06..b087f63e43 100644 --- a/src/main/resources/assets/spectrum/blockstates/memory.json +++ b/src/main/resources/assets/spectrum/blockstates/memory.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/memory" - } - } + "variants": { + "": { + "model": "spectrum:block/memory" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mermaids_brush.json b/src/main/resources/assets/spectrum/blockstates/mermaids_brush.json index c521df346a..57a41153c3 100644 --- a/src/main/resources/assets/spectrum/blockstates/mermaids_brush.json +++ b/src/main/resources/assets/spectrum/blockstates/mermaids_brush.json @@ -1,28 +1,28 @@ { - "variants": { - "age=0": { - "model": "spectrum:block/mermaids_brush_none" - }, - "age=1": { - "model": "spectrum:block/mermaids_brush_none" - }, - "age=2": { - "model": "spectrum:block/mermaids_brush_none" - }, - "age=3": { - "model": "spectrum:block/mermaids_brush_some" - }, - "age=4": { - "model": "spectrum:block/mermaids_brush_some" - }, - "age=5": { - "model": "spectrum:block/mermaids_brush_some" - }, - "age=6": { - "model": "spectrum:block/mermaids_brush_full" - }, - "age=7": { - "model": "spectrum:block/mermaids_brush_full" - } - } + "variants": { + "age=0": { + "model": "spectrum:block/mermaids_brush_none" + }, + "age=1": { + "model": "spectrum:block/mermaids_brush_none" + }, + "age=2": { + "model": "spectrum:block/mermaids_brush_none" + }, + "age=3": { + "model": "spectrum:block/mermaids_brush_some" + }, + "age=4": { + "model": "spectrum:block/mermaids_brush_some" + }, + "age=5": { + "model": "spectrum:block/mermaids_brush_some" + }, + "age=6": { + "model": "spectrum:block/mermaids_brush_full" + }, + "age=7": { + "model": "spectrum:block/mermaids_brush_full" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/midnight_solution.json b/src/main/resources/assets/spectrum/blockstates/midnight_solution.json index 21d5aa4357..a6067af42d 100644 --- a/src/main/resources/assets/spectrum/blockstates/midnight_solution.json +++ b/src/main/resources/assets/spectrum/blockstates/midnight_solution.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/midnight_solution" - } - } + "variants": { + "": { + "model": "spectrum:block/midnight_solution" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_basalt_lamp.json b/src/main/resources/assets/spectrum/blockstates/moonstone_basalt_lamp.json index b75bb9bda7..7d70eec8d8 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_basalt_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_basalt_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_basalt_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_block.json b/src/main/resources/assets/spectrum/blockstates/moonstone_block.json index bf861d5348..495ba93dfc 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_block.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_block" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_calcite_lamp.json b/src/main/resources/assets/spectrum/blockstates/moonstone_calcite_lamp.json index 005ed7db29..9327bee11e 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_calcite_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_calcite_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_calcite_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_chime.json b/src/main/resources/assets/spectrum/blockstates/moonstone_chime.json index ddd6437235..66c5f0c397 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_chime.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_chime.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_chime" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_chime" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_basalt.json index 151d537e48..ab66f9768b 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_basalt.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/moonstone_chiseled_basalt", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/moonstone_chiseled_basalt" - }, - "axis=z": { - "model": "spectrum:block/moonstone_chiseled_basalt", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/moonstone_chiseled_basalt", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/moonstone_chiseled_basalt" + }, + "axis=z": { + "model": "spectrum:block/moonstone_chiseled_basalt", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_calcite.json index 517a1e37ad..38cec2978f 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_chiseled_calcite.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/moonstone_chiseled_calcite", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/moonstone_chiseled_calcite" - }, - "axis=z": { - "model": "spectrum:block/moonstone_chiseled_calcite", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/moonstone_chiseled_calcite", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/moonstone_chiseled_calcite" + }, + "axis=z": { + "model": "spectrum:block/moonstone_chiseled_calcite", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_cluster.json b/src/main/resources/assets/spectrum/blockstates/moonstone_cluster.json index 6d6f72503d..126f3b4456 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_cluster.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/moonstone_cluster", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/moonstone_cluster", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/moonstone_cluster", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/moonstone_cluster", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/moonstone_cluster" - }, - "facing=west": { - "model": "spectrum:block/moonstone_cluster", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/moonstone_cluster", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/moonstone_cluster", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/moonstone_cluster", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/moonstone_cluster", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/moonstone_cluster" + }, + "facing=west": { + "model": "spectrum:block/moonstone_cluster", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_decostone.json b/src/main/resources/assets/spectrum/blockstates/moonstone_decostone.json index a1039e03f3..8692386c0b 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_decostone.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_decostone.json @@ -1,10 +1,10 @@ { - "variants": { - "half=lower": { - "model": "spectrum:block/moonstone_decostone_bottom" - }, - "half=upper": { - "model": "spectrum:block/moonstone_decostone_top" - } - } + "variants": { + "half=lower": { + "model": "spectrum:block/moonstone_decostone_bottom" + }, + "half=upper": { + "model": "spectrum:block/moonstone_decostone_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_glass.json b/src/main/resources/assets/spectrum/blockstates/moonstone_glass.json index 3eaffcabfe..5fd0e8df4f 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_ore.json b/src/main/resources/assets/spectrum/blockstates/moonstone_ore.json index 93de2c5ac5..246721d73c 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/moonstone_player_only_glass.json deleted file mode 100644 index 3eaffcabfe..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/moonstone_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/moonstone_semi_permeable_glass.json new file mode 100644 index 0000000000..5fd0e8df4f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/moonstone_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_storage_block.json b/src/main/resources/assets/spectrum/blockstates/moonstone_storage_block.json index c1d99cb6b1..8e3a931b47 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/moonstone_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/moonstone_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/moonstone_sugar_stick.json b/src/main/resources/assets/spectrum/blockstates/moonstone_sugar_stick.json index fd20e959a8..1d58a7741d 100644 --- a/src/main/resources/assets/spectrum/blockstates/moonstone_sugar_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/moonstone_sugar_stick.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0,liquidcrystallogged=false": { - "model": "spectrum:block/moonstone_sugar_stick0" - }, - "age=1,liquidcrystallogged=false": { - "model": "spectrum:block/moonstone_sugar_stick1" - }, - "age=2,liquidcrystallogged=false": { - "model": "spectrum:block/moonstone_sugar_stick2" - }, - "age=0,liquidcrystallogged=true": { - "model": "spectrum:block/moonstone_sugar_stick0" - }, - "age=1,liquidcrystallogged=true": { - "model": "spectrum:block/moonstone_sugar_stick1" - }, - "age=2,liquidcrystallogged=true": { - "model": "spectrum:block/moonstone_sugar_stick2" - } - } + "variants": { + "age=0,liquidcrystallogged=false": { + "model": "spectrum:block/moonstone_sugar_stick0" + }, + "age=1,liquidcrystallogged=false": { + "model": "spectrum:block/moonstone_sugar_stick1" + }, + "age=2,liquidcrystallogged=false": { + "model": "spectrum:block/moonstone_sugar_stick2" + }, + "age=0,liquidcrystallogged=true": { + "model": "spectrum:block/moonstone_sugar_stick0" + }, + "age=1,liquidcrystallogged=true": { + "model": "spectrum:block/moonstone_sugar_stick1" + }, + "age=2,liquidcrystallogged=true": { + "model": "spectrum:block/moonstone_sugar_stick2" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_head.json b/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_head.json index 9d0973e868..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_head.json +++ b/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mooshroom_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_wall_head.json b/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_wall_head.json index 9d0973e868..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/mooshroom_brown_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mooshroom_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mooshroom_red_head.json b/src/main/resources/assets/spectrum/blockstates/mooshroom_red_head.json index 74259f8ebb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/mooshroom_red_head.json +++ b/src/main/resources/assets/spectrum/blockstates/mooshroom_red_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mooshroom_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mooshroom_red_wall_head.json b/src/main/resources/assets/spectrum/blockstates/mooshroom_red_wall_head.json index 74259f8ebb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/mooshroom_red_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/mooshroom_red_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mooshroom_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mud.json b/src/main/resources/assets/spectrum/blockstates/mud.json index 3749c8d79a..713bf65d97 100644 --- a/src/main/resources/assets/spectrum/blockstates/mud.json +++ b/src/main/resources/assets/spectrum/blockstates/mud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mud" - } - } + "variants": { + "": { + "model": "spectrum:block/mud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mule_head.json b/src/main/resources/assets/spectrum/blockstates/mule_head.json index 0e33f4223a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/mule_head.json +++ b/src/main/resources/assets/spectrum/blockstates/mule_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mule" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/mule_wall_head.json b/src/main/resources/assets/spectrum/blockstates/mule_wall_head.json index 0e33f4223a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/mule_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/mule_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/mule" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/netherite_cluster.json b/src/main/resources/assets/spectrum/blockstates/netherite_cluster.json index 042f33368c..f240230a6f 100644 --- a/src/main/resources/assets/spectrum/blockstates/netherite_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/netherite_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/netherite_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/netherite_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/notched_polished_basalt.json b/src/main/resources/assets/spectrum/blockstates/notched_polished_basalt.json index ef38c926de..a69059dfac 100644 --- a/src/main/resources/assets/spectrum/blockstates/notched_polished_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/notched_polished_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/notched_polished_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/notched_polished_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/notched_polished_calcite.json b/src/main/resources/assets/spectrum/blockstates/notched_polished_calcite.json index 8a541f66c1..c7f5747e76 100644 --- a/src/main/resources/assets/spectrum/blockstates/notched_polished_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/notched_polished_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/notched_polished_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/notched_polished_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ocelot_head.json b/src/main/resources/assets/spectrum/blockstates/ocelot_head.json index e895e3f8eb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/ocelot_head.json +++ b/src/main/resources/assets/spectrum/blockstates/ocelot_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ocelot" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ocelot_mob_block.json b/src/main/resources/assets/spectrum/blockstates/ocelot_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/ocelot_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/ocelot_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ocelot_wall_head.json b/src/main/resources/assets/spectrum/blockstates/ocelot_wall_head.json index e895e3f8eb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/ocelot_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/ocelot_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ocelot" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ominous_sapling.json b/src/main/resources/assets/spectrum/blockstates/ominous_sapling.json index f8d206388e..e92aaa6b83 100644 --- a/src/main/resources/assets/spectrum/blockstates/ominous_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/ominous_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ominous_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/ominous_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_basalt_lamp.json b/src/main/resources/assets/spectrum/blockstates/onyx_basalt_lamp.json index 8bf899572a..6ca7b012b0 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_basalt_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_basalt_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_basalt_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_block.json b/src/main/resources/assets/spectrum/blockstates/onyx_block.json index 8832f503c6..d143dc7350 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_block.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_block" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_calcite_lamp.json b/src/main/resources/assets/spectrum/blockstates/onyx_calcite_lamp.json index b0d344ac1a..9413b9b617 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_calcite_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_calcite_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_calcite_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_chime.json b/src/main/resources/assets/spectrum/blockstates/onyx_chime.json index 5239a8314c..2ec10d6d74 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_chime.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_chime.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_chime" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_chime" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_basalt.json index bafcac59a8..47a4ae0fb2 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_chiseled_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_chiseled_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_calcite.json index efca9597ab..670a1c1b9b 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_chiseled_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_chiseled_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_chiseled_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_cluster.json b/src/main/resources/assets/spectrum/blockstates/onyx_cluster.json index 61a1a54f8a..f43bd973ec 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_cluster.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/onyx_cluster", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/onyx_cluster", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/onyx_cluster", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/onyx_cluster", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/onyx_cluster" - }, - "facing=west": { - "model": "spectrum:block/onyx_cluster", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/onyx_cluster", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/onyx_cluster", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/onyx_cluster", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/onyx_cluster", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/onyx_cluster" + }, + "facing=west": { + "model": "spectrum:block/onyx_cluster", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_decostone.json b/src/main/resources/assets/spectrum/blockstates/onyx_decostone.json index b1c441c092..8772a95210 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_decostone.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_decostone.json @@ -1,10 +1,10 @@ { - "variants": { - "half=lower": { - "model": "spectrum:block/onyx_decostone_bottom" - }, - "half=upper": { - "model": "spectrum:block/onyx_decostone_top" - } - } + "variants": { + "half=lower": { + "model": "spectrum:block/onyx_decostone_bottom" + }, + "half=upper": { + "model": "spectrum:block/onyx_decostone_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_glass.json b/src/main/resources/assets/spectrum/blockstates/onyx_glass.json index d7ea07cc2e..3478e4dc4e 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_ore.json b/src/main/resources/assets/spectrum/blockstates/onyx_ore.json index d32511c5b1..f9afdab7c6 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/onyx_player_only_glass.json deleted file mode 100644 index d7ea07cc2e..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/onyx_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/onyx_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/onyx_semi_permeable_glass.json new file mode 100644 index 0000000000..3478e4dc4e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/onyx_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/onyx_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_storage_block.json b/src/main/resources/assets/spectrum/blockstates/onyx_storage_block.json index 65bd75491a..f0131b4936 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/onyx_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/onyx_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/onyx_sugar_stick.json b/src/main/resources/assets/spectrum/blockstates/onyx_sugar_stick.json index 3bf99254b5..d5c6e5eada 100644 --- a/src/main/resources/assets/spectrum/blockstates/onyx_sugar_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/onyx_sugar_stick.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0,liquidcrystallogged=false": { - "model": "spectrum:block/onyx_sugar_stick0" - }, - "age=1,liquidcrystallogged=false": { - "model": "spectrum:block/onyx_sugar_stick1" - }, - "age=2,liquidcrystallogged=false": { - "model": "spectrum:block/onyx_sugar_stick2" - }, - "age=0,liquidcrystallogged=true": { - "model": "spectrum:block/onyx_sugar_stick0" - }, - "age=1,liquidcrystallogged=true": { - "model": "spectrum:block/onyx_sugar_stick1" - }, - "age=2,liquidcrystallogged=true": { - "model": "spectrum:block/onyx_sugar_stick2" - } - } + "variants": { + "age=0,liquidcrystallogged=false": { + "model": "spectrum:block/onyx_sugar_stick0" + }, + "age=1,liquidcrystallogged=false": { + "model": "spectrum:block/onyx_sugar_stick1" + }, + "age=2,liquidcrystallogged=false": { + "model": "spectrum:block/onyx_sugar_stick2" + }, + "age=0,liquidcrystallogged=true": { + "model": "spectrum:block/onyx_sugar_stick0" + }, + "age=1,liquidcrystallogged=true": { + "model": "spectrum:block/onyx_sugar_stick1" + }, + "age=2,liquidcrystallogged=true": { + "model": "spectrum:block/onyx_sugar_stick2" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_block.json b/src/main/resources/assets/spectrum/blockstates/orange_block.json index 771c932c67..5a5a6b5a50 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_block.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/orange_block" - } - } + "variants": { + "": { + "model": "spectrum:block/orange_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_button.json b/src/main/resources/assets/spectrum/blockstates/orange_button.json new file mode 100644 index 0000000000..89d55354f8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/orange_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/orange_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/orange_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/orange_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/orange_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/orange_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/orange_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/orange_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/orange_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/orange_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/orange_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/orange_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/orange_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/orange_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/orange_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_fence.json b/src/main/resources/assets/spectrum/blockstates/orange_fence.json new file mode 100644 index 0000000000..ac6473b3db --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/orange_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/orange_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/orange_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/orange_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/orange_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/orange_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/orange_fence_gate.json new file mode 100644 index 0000000000..2f3452a2c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/orange_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/orange_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/orange_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/orange_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/orange_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/orange_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/orange_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/orange_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/orange_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/orange_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/orange_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/orange_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/orange_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/orange_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/orange_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/orange_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/orange_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_glowblock.json b/src/main/resources/assets/spectrum/blockstates/orange_glowblock.json index 4f16a1aa2a..7e5d306af3 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/orange_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/orange_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_lamp.json b/src/main/resources/assets/spectrum/blockstates/orange_lamp.json index 7ed4458c78..86b7a94095 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/orange_lamp" - }, - "lit=true": { - "model": "spectrum:block/orange_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/orange_lamp" + }, + "lit=true": { + "model": "spectrum:block/orange_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_leaves.json b/src/main/resources/assets/spectrum/blockstates/orange_leaves.json index 8c1236d35c..1555c17101 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/orange_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/orange_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_log.json b/src/main/resources/assets/spectrum/blockstates/orange_log.json index a77b41f24a..bcbb836f59 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_log.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/orange_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/orange_log" - }, - "axis=z": { - "model": "spectrum:block/orange_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/orange_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/orange_log" + }, + "axis=z": { + "model": "spectrum:block/orange_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_plank_button.json b/src/main/resources/assets/spectrum/blockstates/orange_plank_button.json deleted file mode 100644 index 820954746a..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/orange_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/orange_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/orange_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/orange_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/orange_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/orange_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/orange_plank_fence.json deleted file mode 100644 index 91853ac395..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/orange_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/orange_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/orange_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/orange_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/orange_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/orange_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/orange_plank_fence_gate.json deleted file mode 100644 index a77c7645bd..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/orange_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/orange_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/orange_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/orange_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/orange_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/orange_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/orange_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/orange_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/orange_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/orange_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/orange_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/orange_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/orange_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/orange_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/orange_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/orange_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/orange_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/orange_plank_pressure_plate.json deleted file mode 100644 index cf0dd3e06f..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/orange_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/orange_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/orange_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/orange_plank_slab.json deleted file mode 100644 index af18fe50dd..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/orange_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/orange_plank_slab" - }, - "type=double": { - "model": "spectrum:block/orange_planks" - }, - "type=top": { - "model": "spectrum:block/orange_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/orange_plank_stairs.json deleted file mode 100644 index 44d13138b1..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/orange_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/orange_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/orange_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/orange_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/orange_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_planks.json b/src/main/resources/assets/spectrum/blockstates/orange_planks.json index 3ced51a65e..d27527eb7e 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/orange_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/orange_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/orange_pressure_plate.json new file mode 100644 index 0000000000..b0d5b4e9da --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/orange_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/orange_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/orange_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_sapling.json b/src/main/resources/assets/spectrum/blockstates/orange_sapling.json index 7cd4509cdb..060e279800 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/orange_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/orange_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_slab.json b/src/main/resources/assets/spectrum/blockstates/orange_slab.json new file mode 100644 index 0000000000..03cdb67b22 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/orange_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/orange_slab" + }, + "type=double": { + "model": "spectrum:block/orange_planks" + }, + "type=top": { + "model": "spectrum:block/orange_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/orange_spore_blossom.json index e120b45843..ea446ebd67 100644 --- a/src/main/resources/assets/spectrum/blockstates/orange_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/orange_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/orange_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/orange_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/orange_stairs.json b/src/main/resources/assets/spectrum/blockstates/orange_stairs.json new file mode 100644 index 0000000000..aaa826718d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/orange_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/orange_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/orange_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/orange_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/orange_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/orange_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/orange_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/orange_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/orange_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/orange_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/orange_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/overgrown_blackslag.json b/src/main/resources/assets/spectrum/blockstates/overgrown_blackslag.json new file mode 100644 index 0000000000..a75b894bbe --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/overgrown_blackslag.json @@ -0,0 +1,10 @@ +{ + "variants": { + "snowy=true": { + "model": "spectrum:block/overgrown_blackslag_snow" + }, + "snowy=false": { + "model": "spectrum:block/overgrown_blackslag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/paletur_fragment_block.json b/src/main/resources/assets/spectrum/blockstates/paletur_fragment_block.json deleted file mode 100644 index 5485861498..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/paletur_fragment_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/paletur_fragment_block" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/paletur_ore.json b/src/main/resources/assets/spectrum/blockstates/paletur_ore.json deleted file mode 100644 index 31c08f7fc4..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/paletur_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/paletur_ore" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/paltaeria_fragment_block.json b/src/main/resources/assets/spectrum/blockstates/paltaeria_fragment_block.json new file mode 100644 index 0000000000..b046d29b4b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/paltaeria_fragment_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/paltaeria_fragment_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/paltaeria_ore.json b/src/main/resources/assets/spectrum/blockstates/paltaeria_ore.json new file mode 100644 index 0000000000..35f5c197ff --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/paltaeria_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/paltaeria_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/panda_head.json b/src/main/resources/assets/spectrum/blockstates/panda_head.json index d3a71eaf75..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/panda_head.json +++ b/src/main/resources/assets/spectrum/blockstates/panda_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/panda" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/panda_wall_head.json b/src/main/resources/assets/spectrum/blockstates/panda_wall_head.json index d3a71eaf75..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/panda_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/panda_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/panda" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_blue_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_blue_head.json index 87f4a29a80..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_blue_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_blue_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_blue_wall_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_blue_wall_head.json index 87f4a29a80..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_blue_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_blue_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_cyan_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_cyan_head.json index 0e2c20eac9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_cyan_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_cyan_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_cyan_wall_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_cyan_wall_head.json index 0e2c20eac9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_cyan_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_cyan_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_gray_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_gray_head.json index bb4f97c0c4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_gray_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_gray_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_gray_wall_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_gray_wall_head.json index bb4f97c0c4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_gray_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_gray_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_green_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_green_head.json index 20bb27c168..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_green_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_green_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_green" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_green_wall_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_green_wall_head.json index 20bb27c168..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_green_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_green_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_green" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_mob_block.json b/src/main/resources/assets/spectrum/blockstates/parrot_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_red_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_red_head.json index 0ea95877a7..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_red_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_red_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/parrot_red_wall_head.json b/src/main/resources/assets/spectrum/blockstates/parrot_red_wall_head.json index 0ea95877a7..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/parrot_red_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/parrot_red_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/parrot_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/particle_spawner.json b/src/main/resources/assets/spectrum/blockstates/particle_spawner.json index 233d87eb67..3a23551786 100644 --- a/src/main/resources/assets/spectrum/blockstates/particle_spawner.json +++ b/src/main/resources/assets/spectrum/blockstates/particle_spawner.json @@ -1,10 +1,10 @@ { - "variants": { - "powered=false": { - "model": "spectrum:block/particle_spawner_off" - }, - "powered=true": { - "model": "spectrum:block/particle_spawner" - } - } + "variants": { + "powered=false": { + "model": "spectrum:block/particle_spawner_off" + }, + "powered=true": { + "model": "spectrum:block/particle_spawner" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pedestal_all_basic.json b/src/main/resources/assets/spectrum/blockstates/pedestal_all_basic.json index ad6df60a98..44d8f8d4db 100644 --- a/src/main/resources/assets/spectrum/blockstates/pedestal_all_basic.json +++ b/src/main/resources/assets/spectrum/blockstates/pedestal_all_basic.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pedestal_cmy" - } - } + "variants": { + "": { + "model": "spectrum:block/pedestal_cmy" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pedestal_basic_amethyst.json b/src/main/resources/assets/spectrum/blockstates/pedestal_basic_amethyst.json index 4a06153b59..d92c7f64af 100644 --- a/src/main/resources/assets/spectrum/blockstates/pedestal_basic_amethyst.json +++ b/src/main/resources/assets/spectrum/blockstates/pedestal_basic_amethyst.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pedestal_basic_amethyst" - } - } + "variants": { + "": { + "model": "spectrum:block/pedestal_basic_amethyst" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pedestal_basic_citrine.json b/src/main/resources/assets/spectrum/blockstates/pedestal_basic_citrine.json index 4c89478f71..aedd9cebb4 100644 --- a/src/main/resources/assets/spectrum/blockstates/pedestal_basic_citrine.json +++ b/src/main/resources/assets/spectrum/blockstates/pedestal_basic_citrine.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pedestal_basic_citrine" - } - } + "variants": { + "": { + "model": "spectrum:block/pedestal_basic_citrine" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pedestal_basic_topaz.json b/src/main/resources/assets/spectrum/blockstates/pedestal_basic_topaz.json index c18132e8dc..e8cb964995 100644 --- a/src/main/resources/assets/spectrum/blockstates/pedestal_basic_topaz.json +++ b/src/main/resources/assets/spectrum/blockstates/pedestal_basic_topaz.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pedestal_basic_topaz" - } - } + "variants": { + "": { + "model": "spectrum:block/pedestal_basic_topaz" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pedestal_moonstone.json b/src/main/resources/assets/spectrum/blockstates/pedestal_moonstone.json index 0e052c97ee..f48cb8cd3e 100644 --- a/src/main/resources/assets/spectrum/blockstates/pedestal_moonstone.json +++ b/src/main/resources/assets/spectrum/blockstates/pedestal_moonstone.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pedestal_moonstone" - } - } + "variants": { + "": { + "model": "spectrum:block/pedestal_moonstone" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pedestal_onyx.json b/src/main/resources/assets/spectrum/blockstates/pedestal_onyx.json index 38bbb237bb..2385a2e096 100644 --- a/src/main/resources/assets/spectrum/blockstates/pedestal_onyx.json +++ b/src/main/resources/assets/spectrum/blockstates/pedestal_onyx.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pedestal_onyx" - } - } + "variants": { + "": { + "model": "spectrum:block/pedestal_onyx" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/phantom_head.json b/src/main/resources/assets/spectrum/blockstates/phantom_head.json index 3c00db9e57..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/phantom_head.json +++ b/src/main/resources/assets/spectrum/blockstates/phantom_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/phantom" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/phantom_mob_block.json b/src/main/resources/assets/spectrum/blockstates/phantom_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/phantom_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/phantom_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/phantom_wall_head.json b/src/main/resources/assets/spectrum/blockstates/phantom_wall_head.json index 3c00db9e57..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/phantom_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/phantom_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/phantom" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pig_head.json b/src/main/resources/assets/spectrum/blockstates/pig_head.json index 62a9c9541f..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/pig_head.json +++ b/src/main/resources/assets/spectrum/blockstates/pig_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pig" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pig_mob_block.json b/src/main/resources/assets/spectrum/blockstates/pig_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/pig_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/pig_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pig_wall_head.json b/src/main/resources/assets/spectrum/blockstates/pig_wall_head.json index 62a9c9541f..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/pig_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/pig_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pig" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/piglin_head.json b/src/main/resources/assets/spectrum/blockstates/piglin_head.json index 7d7ec0fb03..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/piglin_head.json +++ b/src/main/resources/assets/spectrum/blockstates/piglin_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/piglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/piglin_mob_block.json b/src/main/resources/assets/spectrum/blockstates/piglin_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/piglin_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/piglin_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/piglin_wall_head.json b/src/main/resources/assets/spectrum/blockstates/piglin_wall_head.json index 7d7ec0fb03..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/piglin_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/piglin_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/piglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_block.json b/src/main/resources/assets/spectrum/blockstates/pink_block.json index e185c8affc..e8bcb02c3d 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_block.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pink_block" - } - } + "variants": { + "": { + "model": "spectrum:block/pink_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_button.json b/src/main/resources/assets/spectrum/blockstates/pink_button.json new file mode 100644 index 0000000000..ee70381e8f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/pink_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/pink_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/pink_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/pink_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/pink_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/pink_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/pink_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/pink_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/pink_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/pink_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/pink_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/pink_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/pink_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/pink_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/pink_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_fence.json b/src/main/resources/assets/spectrum/blockstates/pink_fence.json new file mode 100644 index 0000000000..f7495683cf --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/pink_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/pink_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/pink_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/pink_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/pink_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/pink_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/pink_fence_gate.json new file mode 100644 index 0000000000..b78025e580 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/pink_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/pink_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/pink_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/pink_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/pink_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/pink_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/pink_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/pink_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/pink_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/pink_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/pink_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/pink_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/pink_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/pink_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/pink_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/pink_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/pink_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_glowblock.json b/src/main/resources/assets/spectrum/blockstates/pink_glowblock.json index 2e5bd9e09d..857e4eec6c 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pink_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/pink_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_lamp.json b/src/main/resources/assets/spectrum/blockstates/pink_lamp.json index 0714faa4b8..c7902049e1 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/pink_lamp" - }, - "lit=true": { - "model": "spectrum:block/pink_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/pink_lamp" + }, + "lit=true": { + "model": "spectrum:block/pink_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_leaves.json b/src/main/resources/assets/spectrum/blockstates/pink_leaves.json index 8cd99a9c75..52bbfe01bb 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pink_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/pink_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_log.json b/src/main/resources/assets/spectrum/blockstates/pink_log.json index e941aaa339..6352f4726e 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_log.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/pink_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/pink_log" - }, - "axis=z": { - "model": "spectrum:block/pink_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/pink_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/pink_log" + }, + "axis=z": { + "model": "spectrum:block/pink_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_plank_button.json b/src/main/resources/assets/spectrum/blockstates/pink_plank_button.json deleted file mode 100644 index ff1406f80b..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pink_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/pink_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/pink_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/pink_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/pink_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/pink_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/pink_plank_fence.json deleted file mode 100644 index 33b088b333..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pink_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/pink_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/pink_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/pink_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/pink_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/pink_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/pink_plank_fence_gate.json deleted file mode 100644 index 9772505f4d..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pink_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/pink_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/pink_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/pink_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/pink_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/pink_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/pink_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/pink_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/pink_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/pink_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/pink_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/pink_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/pink_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/pink_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/pink_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/pink_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/pink_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/pink_plank_pressure_plate.json deleted file mode 100644 index 9e774c0f26..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pink_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/pink_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/pink_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/pink_plank_slab.json deleted file mode 100644 index 928aaacdb4..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pink_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/pink_plank_slab" - }, - "type=double": { - "model": "spectrum:block/pink_planks" - }, - "type=top": { - "model": "spectrum:block/pink_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/pink_plank_stairs.json deleted file mode 100644 index fd98fe3ef0..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pink_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/pink_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/pink_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/pink_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/pink_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_planks.json b/src/main/resources/assets/spectrum/blockstates/pink_planks.json index 3cc9aea39a..7ff7e7753d 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pink_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/pink_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/pink_pressure_plate.json new file mode 100644 index 0000000000..69846d1b18 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/pink_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/pink_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/pink_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_sapling.json b/src/main/resources/assets/spectrum/blockstates/pink_sapling.json index 61ab64f25e..b975ef576e 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pink_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/pink_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_slab.json b/src/main/resources/assets/spectrum/blockstates/pink_slab.json new file mode 100644 index 0000000000..53250123cc --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/pink_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/pink_slab" + }, + "type=double": { + "model": "spectrum:block/pink_planks" + }, + "type=top": { + "model": "spectrum:block/pink_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/pink_spore_blossom.json index fd8daa9428..f62bdf1245 100644 --- a/src/main/resources/assets/spectrum/blockstates/pink_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/pink_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pink_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/pink_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pink_stairs.json b/src/main/resources/assets/spectrum/blockstates/pink_stairs.json new file mode 100644 index 0000000000..29ac7d6841 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/pink_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/pink_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/pink_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/pink_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/pink_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/pink_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/pink_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/pink_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/pink_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/pink_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/pink_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/player_detector.json b/src/main/resources/assets/spectrum/blockstates/player_detector.json index d49b12349d..7a11bdf8cf 100644 --- a/src/main/resources/assets/spectrum/blockstates/player_detector.json +++ b/src/main/resources/assets/spectrum/blockstates/player_detector.json @@ -1,10 +1,10 @@ { - "variants": { - "inverted=false": { - "model": "spectrum:block/player_detector" - }, - "inverted=true": { - "model": "spectrum:block/player_detector_inverted" - } - } + "variants": { + "inverted=false": { + "model": "spectrum:block/player_detector" + }, + "inverted=true": { + "model": "spectrum:block/player_detector_inverted" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polar_bear_head.json b/src/main/resources/assets/spectrum/blockstates/polar_bear_head.json index 35a5715423..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/polar_bear_head.json +++ b/src/main/resources/assets/spectrum/blockstates/polar_bear_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/polar_bear" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polar_bear_mob_block.json b/src/main/resources/assets/spectrum/blockstates/polar_bear_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/polar_bear_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/polar_bear_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polar_bear_wall_head.json b/src/main/resources/assets/spectrum/blockstates/polar_bear_wall_head.json index 35a5715423..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/polar_bear_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/polar_bear_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/polar_bear" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt.json index 467c69be3b..5abbad5b7f 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/polished_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/polished_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_button.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_button.json new file mode 100644 index 0000000000..068f0d5975 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/polished_basalt_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/polished_basalt_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/polished_basalt_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_crest.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_crest.json index 0f9c788aea..cf4f7a827e 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_basalt_crest.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_crest.json @@ -1,11 +1,11 @@ { - "variants": { - "cardinal_facing=false": { - "model": "spectrum:block/polished_basalt_crest", - "y": 90 - }, - "cardinal_facing=true": { - "model": "spectrum:block/polished_basalt_crest" - } - } + "variants": { + "cardinal_facing=false": { + "model": "spectrum:block/polished_basalt_crest", + "y": 90 + }, + "cardinal_facing=true": { + "model": "spectrum:block/polished_basalt_crest" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_pillar.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_pillar.json index 3e49c439cb..306faf24fa 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_basalt_pillar.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_pillar.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/polished_basalt_pillar", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/polished_basalt_pillar" - }, - "axis=z": { - "model": "spectrum:block/polished_basalt_pillar", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/polished_basalt_pillar", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/polished_basalt_pillar" + }, + "axis=z": { + "model": "spectrum:block/polished_basalt_pillar", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_pressure_plate.json new file mode 100644 index 0000000000..a81de93fc9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/polished_basalt_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/polished_basalt_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_slab.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_slab.json index 56d3a76e91..9270fe0e59 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_basalt_slab.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_slab.json @@ -1,13 +1,13 @@ { - "variants": { - "type=bottom": { - "model": "spectrum:block/polished_basalt_slab" - }, - "type=double": { - "model": "spectrum:block/polished_basalt" - }, - "type=top": { - "model": "spectrum:block/polished_basalt_slab_top" - } - } + "variants": { + "type=bottom": { + "model": "spectrum:block/polished_basalt_slab" + }, + "type=double": { + "model": "spectrum:block/polished_basalt" + }, + "type=top": { + "model": "spectrum:block/polished_basalt_slab_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_stairs.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_stairs.json index 5e1838ff81..0e204b2186 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_basalt_stairs.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_stairs.json @@ -1,209 +1,209 @@ { - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/polished_basalt_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/polished_basalt_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/polished_basalt_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/polished_basalt_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/polished_basalt_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/polished_basalt_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_basalt_wall.json b/src/main/resources/assets/spectrum/blockstates/polished_basalt_wall.json index d282b2d829..2a9cbfabb9 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_basalt_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_basalt_wall.json @@ -1,90 +1,90 @@ { - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "spectrum:block/polished_basalt_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/polished_basalt_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag.json new file mode 100644 index 0000000000..87305bbf78 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/polished_blackslag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag_button.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_button.json new file mode 100644 index 0000000000..2eca6dc1d8 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/polished_blackslag_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/polished_blackslag_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/polished_blackslag_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag_pillar.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_pillar.json new file mode 100644 index 0000000000..53ec018cbc --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/polished_blackslag_pillar", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/polished_blackslag_pillar" + }, + "axis=z": { + "model": "spectrum:block/polished_blackslag_pillar", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_pressure_plate.json new file mode 100644 index 0000000000..9dde8d4b10 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/polished_blackslag_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/polished_blackslag_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag_slab.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_slab.json new file mode 100644 index 0000000000..2190e3a5e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/polished_blackslag_slab" + }, + "type=double": { + "model": "spectrum:block/polished_blackslag" + }, + "type=top": { + "model": "spectrum:block/polished_blackslag_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag_stairs.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_stairs.json new file mode 100644 index 0000000000..683b2d3583 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/polished_blackslag_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/polished_blackslag_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/polished_blackslag_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_blackslag_wall.json b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_wall.json new file mode 100644 index 0000000000..6aa19fb1d9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_blackslag_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/polished_blackslag_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite.json index d1ae251a17..58c54f1588 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/polished_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/polished_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_button.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_button.json new file mode 100644 index 0000000000..bca66f9666 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/polished_calcite_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/polished_calcite_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/polished_calcite_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_crest.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_crest.json index 15ac6721db..b70cb8c5b7 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_calcite_crest.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_crest.json @@ -1,11 +1,11 @@ { - "variants": { - "cardinal_facing=false": { - "model": "spectrum:block/polished_calcite_crest", - "y": 90 - }, - "cardinal_facing=true": { - "model": "spectrum:block/polished_calcite_crest" - } - } + "variants": { + "cardinal_facing=false": { + "model": "spectrum:block/polished_calcite_crest", + "y": 90 + }, + "cardinal_facing=true": { + "model": "spectrum:block/polished_calcite_crest" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_pillar.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_pillar.json index fde6a79c89..a5a0c0529b 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_calcite_pillar.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_pillar.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/polished_calcite_pillar", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/polished_calcite_pillar" - }, - "axis=z": { - "model": "spectrum:block/polished_calcite_pillar", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/polished_calcite_pillar", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/polished_calcite_pillar" + }, + "axis=z": { + "model": "spectrum:block/polished_calcite_pillar", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_pressure_plate.json new file mode 100644 index 0000000000..aed3d0df57 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/polished_calcite_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/polished_calcite_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_slab.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_slab.json index f0c236db9d..c0f8717437 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_calcite_slab.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_slab.json @@ -1,13 +1,13 @@ { - "variants": { - "type=bottom": { - "model": "spectrum:block/polished_calcite_slab" - }, - "type=double": { - "model": "spectrum:block/polished_calcite" - }, - "type=top": { - "model": "spectrum:block/polished_calcite_slab_top" - } - } + "variants": { + "type=bottom": { + "model": "spectrum:block/polished_calcite_slab" + }, + "type=double": { + "model": "spectrum:block/polished_calcite" + }, + "type=top": { + "model": "spectrum:block/polished_calcite_slab_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_stairs.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_stairs.json index c03dd12302..8f587dbee6 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_calcite_stairs.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_stairs.json @@ -1,209 +1,209 @@ { - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/polished_calcite_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/polished_calcite_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/polished_calcite_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/polished_calcite_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/polished_calcite_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/polished_calcite_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_calcite_wall.json b/src/main/resources/assets/spectrum/blockstates/polished_calcite_wall.json index dbd2614640..aa4cbf8f9d 100644 --- a/src/main/resources/assets/spectrum/blockstates/polished_calcite_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/polished_calcite_wall.json @@ -1,90 +1,90 @@ { - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "spectrum:block/polished_calcite_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/polished_calcite_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_shale_clay.json b/src/main/resources/assets/spectrum/blockstates/polished_shale_clay.json new file mode 100644 index 0000000000..fcce01aa38 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_shale_clay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/polished_shale_clay" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/blockstates/polished_shale_clay_slab.json new file mode 100644 index 0000000000..853afc892b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_shale_clay_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/polished_shale_clay_slab" + }, + "type=double": { + "model": "spectrum:block/polished_shale_clay" + }, + "type=top": { + "model": "spectrum:block/polished_shale_clay_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/blockstates/polished_shale_clay_stairs.json new file mode 100644 index 0000000000..41087f71d2 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/polished_shale_clay_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/polished_shale_clay_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/polished_shale_clay_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/polished_shale_clay_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potion_workshop.json b/src/main/resources/assets/spectrum/blockstates/potion_workshop.json index 9501973807..01be86cf0a 100644 --- a/src/main/resources/assets/spectrum/blockstates/potion_workshop.json +++ b/src/main/resources/assets/spectrum/blockstates/potion_workshop.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/potion_workshop" - } - } + "variants": { + "": { + "model": "spectrum:block/potion_workshop" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_amaranth_bushel.json b/src/main/resources/assets/spectrum/blockstates/potted_amaranth_bushel.json index 157e62ddd5..e6aa1855b8 100644 --- a/src/main/resources/assets/spectrum/blockstates/potted_amaranth_bushel.json +++ b/src/main/resources/assets/spectrum/blockstates/potted_amaranth_bushel.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/potted_amaranth_bushel" - } - } + "variants": { + "": { + "model": "spectrum:block/potted_amaranth_bushel" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_black_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_black_sapling.json new file mode 100644 index 0000000000..1fff13bf3f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_black_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_black_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_blood_orchid.json b/src/main/resources/assets/spectrum/blockstates/potted_blood_orchid.json new file mode 100644 index 0000000000..ecdfe98104 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_blood_orchid.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_blood_orchid" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_blue_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_blue_sapling.json new file mode 100644 index 0000000000..db39e57232 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_blue_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_blue_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_brown_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_brown_sapling.json new file mode 100644 index 0000000000..6cb8aaf876 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_brown_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_brown_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_cyan_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_cyan_sapling.json new file mode 100644 index 0000000000..dbd2c7dc26 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_cyan_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_cyan_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_gray_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_gray_sapling.json new file mode 100644 index 0000000000..8ff1a60cdf --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_gray_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_gray_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_green_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_green_sapling.json new file mode 100644 index 0000000000..52708a68bb --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_green_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_green_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_light_blue_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_light_blue_sapling.json new file mode 100644 index 0000000000..60022e869b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_light_blue_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_light_blue_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_light_gray_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_light_gray_sapling.json new file mode 100644 index 0000000000..08844aa53d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_light_gray_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_light_gray_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_lime_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_lime_sapling.json new file mode 100644 index 0000000000..84f241637d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_lime_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_lime_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_magenta_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_magenta_sapling.json new file mode 100644 index 0000000000..c7ac2b6417 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_magenta_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_magenta_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_orange_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_orange_sapling.json new file mode 100644 index 0000000000..1af39e264a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_orange_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_orange_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_pink_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_pink_sapling.json new file mode 100644 index 0000000000..4fa1cce80e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_pink_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_purple_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_purple_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_purple_sapling.json new file mode 100644 index 0000000000..4fa1cce80e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_purple_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_purple_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_red_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_red_sapling.json new file mode 100644 index 0000000000..4db6986b2a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_red_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_red_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_white_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_white_sapling.json new file mode 100644 index 0000000000..d3a19e2c2e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_white_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_white_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/potted_yellow_sapling.json b/src/main/resources/assets/spectrum/blockstates/potted_yellow_sapling.json new file mode 100644 index 0000000000..09884e640f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/potted_yellow_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/potted_yellow_sapling" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/powder_chiseled_preservation_stone.json b/src/main/resources/assets/spectrum/blockstates/powder_chiseled_preservation_stone.json index 9201ac1344..f224926a25 100644 --- a/src/main/resources/assets/spectrum/blockstates/powder_chiseled_preservation_stone.json +++ b/src/main/resources/assets/spectrum/blockstates/powder_chiseled_preservation_stone.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/powder_chiseled_preservation_stone" - } - } + "variants": { + "": { + "model": "spectrum:block/powder_chiseled_preservation_stone" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/present.json b/src/main/resources/assets/spectrum/blockstates/present.json index 9122d11c02..5ae00a4c7f 100644 --- a/src/main/resources/assets/spectrum/blockstates/present.json +++ b/src/main/resources/assets/spectrum/blockstates/present.json @@ -1,34 +1,34 @@ { - "variants": { - "variant=red": { - "model": "spectrum:block/present_red" - }, - "variant=green": { - "model": "spectrum:block/present_green" - }, - "variant=blue": { - "model": "spectrum:block/present_blue" - }, - "variant=cyan": { - "model": "spectrum:block/present_cyan" - }, - "variant=purple": { - "model": "spectrum:block/present_purple" - }, - "variant=cake": { - "model": "spectrum:block/present_cake" - }, - "variant=pride": { - "model": "spectrum:block/present_pride" - }, - "variant=winter": { - "model": "spectrum:block/present_winter" - }, - "variant=starry": { - "model": "spectrum:block/present_starry" - }, - "variant=striped": { - "model": "spectrum:block/present_striped" - } - } + "variants": { + "variant=red": { + "model": "spectrum:block/present_red" + }, + "variant=green": { + "model": "spectrum:block/present_green" + }, + "variant=blue": { + "model": "spectrum:block/present_blue" + }, + "variant=cyan": { + "model": "spectrum:block/present_cyan" + }, + "variant=purple": { + "model": "spectrum:block/present_purple" + }, + "variant=cake": { + "model": "spectrum:block/present_cake" + }, + "variant=pride": { + "model": "spectrum:block/present_pride" + }, + "variant=winter": { + "model": "spectrum:block/present_winter" + }, + "variant=starry": { + "model": "spectrum:block/present_starry" + }, + "variant=striped": { + "model": "spectrum:block/present_striped" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/preservation_bricks.json b/src/main/resources/assets/spectrum/blockstates/preservation_bricks.json index b04e35baac..af27858325 100644 --- a/src/main/resources/assets/spectrum/blockstates/preservation_bricks.json +++ b/src/main/resources/assets/spectrum/blockstates/preservation_bricks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/preservation_bricks" - } - } + "variants": { + "": { + "model": "spectrum:block/preservation_bricks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/preservation_controller.json b/src/main/resources/assets/spectrum/blockstates/preservation_controller.json index 2f303cda33..617e6b7972 100644 --- a/src/main/resources/assets/spectrum/blockstates/preservation_controller.json +++ b/src/main/resources/assets/spectrum/blockstates/preservation_controller.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/preservation_controller" - } - } + "variants": { + "": { + "model": "spectrum:block/preservation_controller" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/preservation_glass.json b/src/main/resources/assets/spectrum/blockstates/preservation_glass.json index 2d7485e455..b8fe6206e3 100644 --- a/src/main/resources/assets/spectrum/blockstates/preservation_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/preservation_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/preservation_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/preservation_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/preservation_stone.json b/src/main/resources/assets/spectrum/blockstates/preservation_stone.json index 91f4d63536..497ffe6801 100644 --- a/src/main/resources/assets/spectrum/blockstates/preservation_stone.json +++ b/src/main/resources/assets/spectrum/blockstates/preservation_stone.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/preservation_stone" - } - } + "variants": { + "": { + "model": "spectrum:block/preservation_stone" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/primordial_fire.json b/src/main/resources/assets/spectrum/blockstates/primordial_fire.json new file mode 100644 index 0000000000..ec27a3d59b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/primordial_fire.json @@ -0,0 +1,172 @@ +{ + "multipart": [ + { + "apply": [ + { + "model": "spectrum:block/primordial_fire_floor0" + }, + { + "model": "spectrum:block/primordial_fire_floor1" + } + ], + "when": { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": [ + { + "model": "spectrum:block/primordial_fire_side0" + }, + { + "model": "spectrum:block/primordial_fire_side1" + }, + { + "model": "spectrum:block/primordial_fire_side_alt0" + }, + { + "model": "spectrum:block/primordial_fire_side_alt1" + } + ], + "when": { + "OR": [ + { + "north": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "spectrum:block/primordial_fire_side0", + "y": 90 + }, + { + "model": "spectrum:block/primordial_fire_side1", + "y": 90 + }, + { + "model": "spectrum:block/primordial_fire_side_alt0", + "y": 90 + }, + { + "model": "spectrum:block/primordial_fire_side_alt1", + "y": 90 + } + ], + "when": { + "OR": [ + { + "east": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "spectrum:block/primordial_fire_side0", + "y": 180 + }, + { + "model": "spectrum:block/primordial_fire_side1", + "y": 180 + }, + { + "model": "spectrum:block/primordial_fire_side_alt0", + "y": 180 + }, + { + "model": "spectrum:block/primordial_fire_side_alt1", + "y": 180 + } + ], + "when": { + "OR": [ + { + "south": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "spectrum:block/primordial_fire_side0", + "y": 270 + }, + { + "model": "spectrum:block/primordial_fire_side1", + "y": 270 + }, + { + "model": "spectrum:block/primordial_fire_side_alt0", + "y": 270 + }, + { + "model": "spectrum:block/primordial_fire_side_alt1", + "y": 270 + } + ], + "when": { + "OR": [ + { + "west": "true" + }, + { + "east": "false", + "north": "false", + "south": "false", + "up": "false", + "west": "false" + } + ] + } + }, + { + "apply": [ + { + "model": "spectrum:block/primordial_fire_up0" + }, + { + "model": "spectrum:block/primordial_fire_up1" + }, + { + "model": "spectrum:block/primordial_fire_up_alt0" + }, + { + "model": "spectrum:block/primordial_fire_up_alt1" + } + ], + "when": { + "up": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/prismarine_cluster.json b/src/main/resources/assets/spectrum/blockstates/prismarine_cluster.json index ce4f01e88a..c98881a62a 100644 --- a/src/main/resources/assets/spectrum/blockstates/prismarine_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/prismarine_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/prismarine_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/prismarine_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/private_chest.json b/src/main/resources/assets/spectrum/blockstates/private_chest.json index a361402246..66b68ad509 100644 --- a/src/main/resources/assets/spectrum/blockstates/private_chest.json +++ b/src/main/resources/assets/spectrum/blockstates/private_chest.json @@ -1,19 +1,19 @@ { - "variants": { - "facing=north": { - "model": "spectrum:block/private_chest" - }, - "facing=east": { - "model": "spectrum:block/private_chest", - "y": 90 - }, - "facing=south": { - "model": "spectrum:block/private_chest", - "y": 180 - }, - "facing=west": { - "model": "spectrum:block/private_chest", - "y": 270 - } - } + "variants": { + "facing=north": { + "model": "spectrum:block/private_chest" + }, + "facing=east": { + "model": "spectrum:block/private_chest", + "y": 90 + }, + "facing=south": { + "model": "spectrum:block/private_chest", + "y": 180 + }, + "facing=west": { + "model": "spectrum:block/private_chest", + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/provider_node.json b/src/main/resources/assets/spectrum/blockstates/provider_node.json index ee19eb36f7..812371ab12 100644 --- a/src/main/resources/assets/spectrum/blockstates/provider_node.json +++ b/src/main/resources/assets/spectrum/blockstates/provider_node.json @@ -1,29 +1,29 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/provider_node", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/provider_node", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/provider_node", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/provider_node", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/provider_node" - }, - "facing=down": { - "model": "spectrum:block/provider_node", - "x": 180 - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/provider_node", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/provider_node", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/provider_node", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/provider_node", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/provider_node" + }, + "facing=down": { + "model": "spectrum:block/provider_node", + "x": 180 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pufferfish_head.json b/src/main/resources/assets/spectrum/blockstates/pufferfish_head.json index 1ab2c67e13..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/pufferfish_head.json +++ b/src/main/resources/assets/spectrum/blockstates/pufferfish_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pufferfish" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pufferfish_mob_block.json b/src/main/resources/assets/spectrum/blockstates/pufferfish_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/pufferfish_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/pufferfish_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pufferfish_wall_head.json b/src/main/resources/assets/spectrum/blockstates/pufferfish_wall_head.json index 1ab2c67e13..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/pufferfish_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/pufferfish_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/pufferfish" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/puller_node.json b/src/main/resources/assets/spectrum/blockstates/puller_node.json deleted file mode 100644 index b9aa15ef0f..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/puller_node.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/puller_node", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/puller_node", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/puller_node", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/puller_node", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/puller_node" - }, - "facing=down": { - "model": "spectrum:block/puller_node", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_block.json b/src/main/resources/assets/spectrum/blockstates/purple_block.json index 5069c6e1a9..f9f1291e4c 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_block.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/purple_block" - } - } + "variants": { + "": { + "model": "spectrum:block/purple_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_button.json b/src/main/resources/assets/spectrum/blockstates/purple_button.json new file mode 100644 index 0000000000..1c2a1ec943 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/purple_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/purple_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/purple_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/purple_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/purple_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/purple_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/purple_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/purple_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/purple_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/purple_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/purple_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/purple_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/purple_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/purple_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/purple_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_fence.json b/src/main/resources/assets/spectrum/blockstates/purple_fence.json new file mode 100644 index 0000000000..318d368b64 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/purple_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/purple_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/purple_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/purple_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/purple_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/purple_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/purple_fence_gate.json new file mode 100644 index 0000000000..36d443a29e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/purple_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/purple_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/purple_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/purple_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/purple_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/purple_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/purple_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/purple_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/purple_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/purple_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/purple_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/purple_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/purple_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/purple_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/purple_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/purple_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/purple_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_glowblock.json b/src/main/resources/assets/spectrum/blockstates/purple_glowblock.json index e58a131170..96fe06774f 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/purple_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/purple_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_lamp.json b/src/main/resources/assets/spectrum/blockstates/purple_lamp.json index e5390bfe2f..636fee0579 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/purple_lamp" - }, - "lit=true": { - "model": "spectrum:block/purple_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/purple_lamp" + }, + "lit=true": { + "model": "spectrum:block/purple_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_leaves.json b/src/main/resources/assets/spectrum/blockstates/purple_leaves.json index b88b00184e..7caa7a870e 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/purple_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/purple_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_log.json b/src/main/resources/assets/spectrum/blockstates/purple_log.json index d94b78c668..32acb0709b 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_log.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/purple_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/purple_log" - }, - "axis=z": { - "model": "spectrum:block/purple_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/purple_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/purple_log" + }, + "axis=z": { + "model": "spectrum:block/purple_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_plank_button.json b/src/main/resources/assets/spectrum/blockstates/purple_plank_button.json deleted file mode 100644 index c248458cf9..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/purple_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/purple_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/purple_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/purple_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/purple_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/purple_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/purple_plank_fence.json deleted file mode 100644 index 3d56b66e38..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/purple_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/purple_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/purple_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/purple_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/purple_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/purple_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/purple_plank_fence_gate.json deleted file mode 100644 index 3f4542c5cb..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/purple_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/purple_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/purple_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/purple_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/purple_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/purple_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/purple_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/purple_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/purple_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/purple_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/purple_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/purple_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/purple_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/purple_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/purple_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/purple_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/purple_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/purple_plank_pressure_plate.json deleted file mode 100644 index adb3448b54..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/purple_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/purple_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/purple_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/purple_plank_slab.json deleted file mode 100644 index a500c5abc8..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/purple_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/purple_plank_slab" - }, - "type=double": { - "model": "spectrum:block/purple_planks" - }, - "type=top": { - "model": "spectrum:block/purple_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/purple_plank_stairs.json deleted file mode 100644 index 6dafb04177..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/purple_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/purple_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/purple_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/purple_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/purple_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_planks.json b/src/main/resources/assets/spectrum/blockstates/purple_planks.json index f08da4b083..1989651bd8 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/purple_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/purple_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/purple_pressure_plate.json new file mode 100644 index 0000000000..ddebd58be9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/purple_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/purple_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/purple_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_sapling.json b/src/main/resources/assets/spectrum/blockstates/purple_sapling.json index 417e066010..797cbb3574 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/purple_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/purple_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_slab.json b/src/main/resources/assets/spectrum/blockstates/purple_slab.json new file mode 100644 index 0000000000..a0b0250a45 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/purple_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/purple_slab" + }, + "type=double": { + "model": "spectrum:block/purple_planks" + }, + "type=top": { + "model": "spectrum:block/purple_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/purple_spore_blossom.json index 0a2b933ea3..2e7c04ab30 100644 --- a/src/main/resources/assets/spectrum/blockstates/purple_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/purple_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/purple_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/purple_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/purple_stairs.json b/src/main/resources/assets/spectrum/blockstates/purple_stairs.json new file mode 100644 index 0000000000..c1c7bc00a1 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/purple_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/purple_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/purple_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/purple_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/purple_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/purple_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/purple_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/purple_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/purple_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/purple_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/purple_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/pusher_node.json b/src/main/resources/assets/spectrum/blockstates/pusher_node.json deleted file mode 100644 index adc2f95faa..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/pusher_node.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/pusher_node", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/pusher_node", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/pusher_node", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/pusher_node", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/pusher_node" - }, - "facing=down": { - "model": "spectrum:block/pusher_node", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/quartz_cluster.json b/src/main/resources/assets/spectrum/blockstates/quartz_cluster.json index dd1660ee63..05f67a7f14 100644 --- a/src/main/resources/assets/spectrum/blockstates/quartz_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/quartz_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/quartz_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/quartz_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/quitoxic_reeds.json b/src/main/resources/assets/spectrum/blockstates/quitoxic_reeds.json index 10a256d83a..fc75e538ef 100644 --- a/src/main/resources/assets/spectrum/blockstates/quitoxic_reeds.json +++ b/src/main/resources/assets/spectrum/blockstates/quitoxic_reeds.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/quitoxic_reeds" - } - } + "variants": { + "": { + "model": "spectrum:block/quitoxic_reeds" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/rabbit_head.json b/src/main/resources/assets/spectrum/blockstates/rabbit_head.json index 0f199a5dd1..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/rabbit_head.json +++ b/src/main/resources/assets/spectrum/blockstates/rabbit_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/rabbit" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/rabbit_mob_block.json b/src/main/resources/assets/spectrum/blockstates/rabbit_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/rabbit_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/rabbit_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/rabbit_wall_head.json b/src/main/resources/assets/spectrum/blockstates/rabbit_wall_head.json index 0f199a5dd1..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/rabbit_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/rabbit_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/rabbit" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/radiating_ender.json b/src/main/resources/assets/spectrum/blockstates/radiating_ender.json new file mode 100644 index 0000000000..3a24413a7c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/radiating_ender.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/radiating_ender" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ravager_head.json b/src/main/resources/assets/spectrum/blockstates/ravager_head.json index 93d0eacd54..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/ravager_head.json +++ b/src/main/resources/assets/spectrum/blockstates/ravager_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ravager" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ravager_wall_head.json b/src/main/resources/assets/spectrum/blockstates/ravager_wall_head.json index 93d0eacd54..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/ravager_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/ravager_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/ravager" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_block.json b/src/main/resources/assets/spectrum/blockstates/red_block.json index c193de4cbf..f3292a2d3c 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_block.json +++ b/src/main/resources/assets/spectrum/blockstates/red_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/red_block" - } - } + "variants": { + "": { + "model": "spectrum:block/red_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_button.json b/src/main/resources/assets/spectrum/blockstates/red_button.json new file mode 100644 index 0000000000..9d02c52025 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/red_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/red_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/red_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/red_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/red_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/red_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/red_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/red_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/red_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/red_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/red_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/red_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/red_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/red_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/red_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/red_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/red_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_fence.json b/src/main/resources/assets/spectrum/blockstates/red_fence.json new file mode 100644 index 0000000000..5a51581cea --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/red_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/red_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/red_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/red_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/red_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/red_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/red_fence_gate.json new file mode 100644 index 0000000000..4a8c43120e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/red_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/red_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/red_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/red_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/red_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/red_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/red_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/red_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/red_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/red_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/red_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/red_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/red_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/red_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/red_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/red_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/red_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_glowblock.json b/src/main/resources/assets/spectrum/blockstates/red_glowblock.json index f7c27ecaf4..dab63a31a2 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/red_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/red_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/red_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_lamp.json b/src/main/resources/assets/spectrum/blockstates/red_lamp.json index 8a45cfd283..90e161600e 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/red_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/red_lamp" - }, - "lit=true": { - "model": "spectrum:block/red_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/red_lamp" + }, + "lit=true": { + "model": "spectrum:block/red_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_leaves.json b/src/main/resources/assets/spectrum/blockstates/red_leaves.json index 04f084425a..8731852d5d 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/red_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/red_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/red_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_log.json b/src/main/resources/assets/spectrum/blockstates/red_log.json index 83a5302083..a9bedf76a6 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_log.json +++ b/src/main/resources/assets/spectrum/blockstates/red_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/red_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/red_log" - }, - "axis=z": { - "model": "spectrum:block/red_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/red_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/red_log" + }, + "axis=z": { + "model": "spectrum:block/red_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_plank_button.json b/src/main/resources/assets/spectrum/blockstates/red_plank_button.json deleted file mode 100644 index 49aba94514..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/red_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/red_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/red_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/red_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/red_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/red_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/red_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/red_plank_fence.json deleted file mode 100644 index 511fd59049..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/red_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/red_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/red_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/red_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/red_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/red_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/red_plank_fence_gate.json deleted file mode 100644 index 0b733c95a8..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/red_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/red_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/red_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/red_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/red_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/red_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/red_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/red_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/red_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/red_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/red_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/red_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/red_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/red_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/red_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/red_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/red_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/red_plank_pressure_plate.json deleted file mode 100644 index fc2356afae..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/red_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/red_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/red_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/red_plank_slab.json deleted file mode 100644 index 28acc1d085..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/red_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/red_plank_slab" - }, - "type=double": { - "model": "spectrum:block/red_planks" - }, - "type=top": { - "model": "spectrum:block/red_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/red_plank_stairs.json deleted file mode 100644 index db6a408892..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/red_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/red_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/red_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/red_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/red_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_planks.json b/src/main/resources/assets/spectrum/blockstates/red_planks.json index 4f0ad4712d..b2c27352bc 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/red_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/red_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/red_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/red_pressure_plate.json new file mode 100644 index 0000000000..0d341b49d0 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/red_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/red_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/red_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_sapling.json b/src/main/resources/assets/spectrum/blockstates/red_sapling.json index 3bd175a14e..dab927b8c5 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/red_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/red_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/red_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_slab.json b/src/main/resources/assets/spectrum/blockstates/red_slab.json new file mode 100644 index 0000000000..94792fd9cb --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/red_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/red_slab" + }, + "type=double": { + "model": "spectrum:block/red_planks" + }, + "type=top": { + "model": "spectrum:block/red_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/red_spore_blossom.json index 4d120cb88c..37fdda11b0 100644 --- a/src/main/resources/assets/spectrum/blockstates/red_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/red_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/red_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/red_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/red_stairs.json b/src/main/resources/assets/spectrum/blockstates/red_stairs.json new file mode 100644 index 0000000000..f835079b19 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/red_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/red_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/red_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/red_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/red_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/red_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/red_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/red_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/red_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/red_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/red_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/redstone_calculator.json b/src/main/resources/assets/spectrum/blockstates/redstone_calculator.json index 6b09b7144d..d556a52189 100644 --- a/src/main/resources/assets/spectrum/blockstates/redstone_calculator.json +++ b/src/main/resources/assets/spectrum/blockstates/redstone_calculator.json @@ -1,383 +1,383 @@ { - "multipart": [ - { - "when": { - "powered": true, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base", - "y": 180 - } - }, - { - "when": { - "powered": true, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base", - "y": 270 - } - }, - { - "when": { - "powered": true, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base" - } - }, - { - "when": { - "powered": true, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base", - "y": 90 - } - }, - { - "when": { - "powered": false, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base_off", - "y": 180 - } - }, - { - "when": { - "powered": false, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base_off", - "y": 270 - } - }, - { - "when": { - "powered": false, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base_off" - } - }, - { - "when": { - "powered": false, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_base_off", - "y": 90 - } - }, - { - "when": { - "calculation_mode": "addition", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_addition", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "addition", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_addition", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "addition", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_addition", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "addition", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_addition", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "calculation_mode": "subtraction", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_subtraction", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "subtraction", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_subtraction", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "subtraction", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_subtraction", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "subtraction", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_subtraction", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "calculation_mode": "multiplication", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_multiplication", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "multiplication", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_multiplication", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "multiplication", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_multiplication", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "multiplication", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_multiplication", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "calculation_mode": "division", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_division", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "division", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_division", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "division", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_division", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "division", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_division", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "calculation_mode": "modulo", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_modulo", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "modulo", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_modulo", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "modulo", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_modulo", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "modulo", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_modulo", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "calculation_mode": "min", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_min", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "min", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_min", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "min", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_min", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "min", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_min", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "calculation_mode": "max", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_max", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "calculation_mode": "max", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_max", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "calculation_mode": "max", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_max", - "uvlock": true - } - }, - { - "when": { - "calculation_mode": "max", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_calculator_max", - "uvlock": true, - "y": 90 - } - } - ] + "multipart": [ + { + "when": { + "powered": true, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base", + "y": 180 + } + }, + { + "when": { + "powered": true, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base", + "y": 270 + } + }, + { + "when": { + "powered": true, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base" + } + }, + { + "when": { + "powered": true, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base", + "y": 90 + } + }, + { + "when": { + "powered": false, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base_off", + "y": 180 + } + }, + { + "when": { + "powered": false, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base_off", + "y": 270 + } + }, + { + "when": { + "powered": false, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base_off" + } + }, + { + "when": { + "powered": false, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_base_off", + "y": 90 + } + }, + { + "when": { + "calculation_mode": "addition", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_addition", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "addition", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_addition", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "addition", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_addition", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "addition", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_addition", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "calculation_mode": "subtraction", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_subtraction", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "subtraction", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_subtraction", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "subtraction", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_subtraction", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "subtraction", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_subtraction", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "calculation_mode": "multiplication", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_multiplication", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "multiplication", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_multiplication", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "multiplication", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_multiplication", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "multiplication", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_multiplication", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "calculation_mode": "division", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_division", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "division", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_division", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "division", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_division", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "division", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_division", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "calculation_mode": "modulo", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_modulo", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "modulo", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_modulo", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "modulo", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_modulo", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "modulo", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_modulo", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "calculation_mode": "min", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_min", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "min", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_min", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "min", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_min", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "min", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_min", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "calculation_mode": "max", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_max", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "calculation_mode": "max", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_max", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "calculation_mode": "max", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_max", + "uvlock": true + } + }, + { + "when": { + "calculation_mode": "max", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_calculator_max", + "uvlock": true, + "y": 90 + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/redstone_cluster.json b/src/main/resources/assets/spectrum/blockstates/redstone_cluster.json index 70d0d1f1bf..2b41277223 100644 --- a/src/main/resources/assets/spectrum/blockstates/redstone_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/redstone_cluster.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/redstone_cluster" - } - } + "variants": { + "": { + "model": "spectrum:block/redstone_cluster" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/redstone_sand.json b/src/main/resources/assets/spectrum/blockstates/redstone_sand.json index 47e859ba86..a62890fc88 100644 --- a/src/main/resources/assets/spectrum/blockstates/redstone_sand.json +++ b/src/main/resources/assets/spectrum/blockstates/redstone_sand.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/redstone_sand" - } - } + "variants": { + "": { + "model": "spectrum:block/redstone_sand" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/redstone_timer.json b/src/main/resources/assets/spectrum/blockstates/redstone_timer.json index 0b2182e338..d850233acc 100644 --- a/src/main/resources/assets/spectrum/blockstates/redstone_timer.json +++ b/src/main/resources/assets/spectrum/blockstates/redstone_timer.json @@ -1,512 +1,512 @@ { - "multipart": [ - { - "when": { - "powered": true, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base", - "y": 180 - } - }, - { - "when": { - "powered": true, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base", - "y": 270 - } - }, - { - "when": { - "powered": true, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base" - } - }, - { - "when": { - "powered": true, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base", - "y": 90 - } - }, - { - "when": { - "powered": false, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base_off", - "y": 180 - } - }, - { - "when": { - "powered": false, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base_off", - "y": 270 - } - }, - { - "when": { - "powered": false, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base_off" - } - }, - { - "when": { - "powered": false, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_base_off", - "y": 90 - } - }, - { - "when": { - "active_time": "one_second", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_0", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "active_time": "one_second", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_0", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "active_time": "one_second", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_0", - "uvlock": true - } - }, - { - "when": { - "active_time": "one_second", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_0", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "active_time": "ten_seconds", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_1", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "active_time": "ten_seconds", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_1", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "active_time": "ten_seconds", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_1", - "uvlock": true - } - }, - { - "when": { - "active_time": "ten_seconds", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_1", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "active_time": "one_minute", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_2", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "active_time": "one_minute", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_2", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "active_time": "one_minute", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_2", - "uvlock": true - } - }, - { - "when": { - "active_time": "one_minute", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_2", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "active_time": "ten_minutes", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_3", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "active_time": "ten_minutes", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_3", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "active_time": "ten_minutes", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_3", - "uvlock": true - } - }, - { - "when": { - "active_time": "ten_minutes", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_3", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "active_time": "one_hour", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_4", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "active_time": "one_hour", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_4", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "active_time": "one_hour", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_4", - "uvlock": true - } - }, - { - "when": { - "active_time": "one_hour", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_left_4", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "inactive_time": "one_second", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_0", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "inactive_time": "one_second", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_0", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "inactive_time": "one_second", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_0", - "uvlock": true - } - }, - { - "when": { - "inactive_time": "one_second", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_0", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "inactive_time": "ten_seconds", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_1", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "inactive_time": "ten_seconds", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_1", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "inactive_time": "ten_seconds", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_1", - "uvlock": true - } - }, - { - "when": { - "inactive_time": "ten_seconds", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_1", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "inactive_time": "one_minute", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_2", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "inactive_time": "one_minute", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_2", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "inactive_time": "one_minute", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_2", - "uvlock": true - } - }, - { - "when": { - "inactive_time": "one_minute", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_2", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "inactive_time": "ten_minutes", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_3", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "inactive_time": "ten_minutes", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_3", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "inactive_time": "ten_minutes", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_3", - "uvlock": true - } - }, - { - "when": { - "inactive_time": "ten_minutes", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_3", - "uvlock": true, - "y": 90 - } - }, - { - "when": { - "inactive_time": "one_hour", - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_4", - "uvlock": true, - "y": 180 - } - }, - { - "when": { - "inactive_time": "one_hour", - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_4", - "uvlock": true, - "y": 270 - } - }, - { - "when": { - "inactive_time": "one_hour", - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_4", - "uvlock": true - } - }, - { - "when": { - "inactive_time": "one_hour", - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_timer_right_4", - "uvlock": true, - "y": 90 - } - } - ] + "multipart": [ + { + "when": { + "powered": true, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base", + "y": 180 + } + }, + { + "when": { + "powered": true, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base", + "y": 270 + } + }, + { + "when": { + "powered": true, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base" + } + }, + { + "when": { + "powered": true, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base", + "y": 90 + } + }, + { + "when": { + "powered": false, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base_off", + "y": 180 + } + }, + { + "when": { + "powered": false, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base_off", + "y": 270 + } + }, + { + "when": { + "powered": false, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base_off" + } + }, + { + "when": { + "powered": false, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_base_off", + "y": 90 + } + }, + { + "when": { + "active_time": "one_second", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_0", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "active_time": "one_second", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_0", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "active_time": "one_second", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_0", + "uvlock": true + } + }, + { + "when": { + "active_time": "one_second", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_0", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "active_time": "ten_seconds", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_1", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "active_time": "ten_seconds", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_1", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "active_time": "ten_seconds", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_1", + "uvlock": true + } + }, + { + "when": { + "active_time": "ten_seconds", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_1", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "active_time": "one_minute", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_2", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "active_time": "one_minute", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_2", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "active_time": "one_minute", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_2", + "uvlock": true + } + }, + { + "when": { + "active_time": "one_minute", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_2", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "active_time": "ten_minutes", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_3", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "active_time": "ten_minutes", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_3", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "active_time": "ten_minutes", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_3", + "uvlock": true + } + }, + { + "when": { + "active_time": "ten_minutes", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_3", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "active_time": "one_hour", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_4", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "active_time": "one_hour", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_4", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "active_time": "one_hour", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_4", + "uvlock": true + } + }, + { + "when": { + "active_time": "one_hour", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_left_4", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "inactive_time": "one_second", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_0", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "inactive_time": "one_second", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_0", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "inactive_time": "one_second", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_0", + "uvlock": true + } + }, + { + "when": { + "inactive_time": "one_second", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_0", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "inactive_time": "ten_seconds", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_1", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "inactive_time": "ten_seconds", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_1", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "inactive_time": "ten_seconds", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_1", + "uvlock": true + } + }, + { + "when": { + "inactive_time": "ten_seconds", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_1", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "inactive_time": "one_minute", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_2", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "inactive_time": "one_minute", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_2", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "inactive_time": "one_minute", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_2", + "uvlock": true + } + }, + { + "when": { + "inactive_time": "one_minute", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_2", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "inactive_time": "ten_minutes", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_3", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "inactive_time": "ten_minutes", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_3", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "inactive_time": "ten_minutes", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_3", + "uvlock": true + } + }, + { + "when": { + "inactive_time": "ten_minutes", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_3", + "uvlock": true, + "y": 90 + } + }, + { + "when": { + "inactive_time": "one_hour", + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_4", + "uvlock": true, + "y": 180 + } + }, + { + "when": { + "inactive_time": "one_hour", + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_4", + "uvlock": true, + "y": 270 + } + }, + { + "when": { + "inactive_time": "one_hour", + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_4", + "uvlock": true + } + }, + { + "when": { + "inactive_time": "one_hour", + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_timer_right_4", + "uvlock": true, + "y": 90 + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/redstone_wireless.json b/src/main/resources/assets/spectrum/blockstates/redstone_wireless.json index 9d29d63e24..fc8fa8c6b8 100644 --- a/src/main/resources/assets/spectrum/blockstates/redstone_wireless.json +++ b/src/main/resources/assets/spectrum/blockstates/redstone_wireless.json @@ -1,304 +1,304 @@ { - "multipart": [ - { - "when": { - "powered": true, - "sender": true, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender", - "y": 180 - } - }, - { - "when": { - "powered": true, - "sender": true, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender", - "y": 270 - } - }, - { - "when": { - "powered": true, - "sender": true, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender" - } - }, - { - "when": { - "powered": true, - "sender": true, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender", - "y": 90 - } - }, - { - "when": { - "powered": false, - "sender": true, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender_off", - "y": 180 - } - }, - { - "when": { - "powered": false, - "sender": true, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender_off", - "y": 270 - } - }, - { - "when": { - "powered": false, - "sender": true, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender_off" - } - }, - { - "when": { - "powered": false, - "sender": true, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_sender_off", - "y": 90 - } - }, - { - "when": { - "powered": true, - "sender": false, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver", - "y": 180 - } - }, - { - "when": { - "powered": true, - "sender": false, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver", - "y": 270 - } - }, - { - "when": { - "powered": true, - "sender": false, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver" - } - }, - { - "when": { - "powered": true, - "sender": false, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver", - "y": 90 - } - }, - { - "when": { - "powered": false, - "sender": false, - "facing": "north" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver_off", - "y": 180 - } - }, - { - "when": { - "powered": false, - "sender": false, - "facing": "east" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver_off", - "y": 270 - } - }, - { - "when": { - "powered": false, - "sender": false, - "facing": "south" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver_off" - } - }, - { - "when": { - "powered": false, - "sender": false, - "facing": "west" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_receiver_off", - "y": 90 - } - }, - { - "when": { - "channel": "black" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_black" - } - }, - { - "when": { - "channel": "blue" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_blue" - } - }, - { - "when": { - "channel": "brown" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_brown" - } - }, - { - "when": { - "channel": "cyan" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_cyan" - } - }, - { - "when": { - "channel": "gray" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_gray" - } - }, - { - "when": { - "channel": "green" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_green" - } - }, - { - "when": { - "channel": "light_blue" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_light_blue" - } - }, - { - "when": { - "channel": "light_gray" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_light_gray" - } - }, - { - "when": { - "channel": "lime" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_lime" - } - }, - { - "when": { - "channel": "magenta" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_magenta" - } - }, - { - "when": { - "channel": "orange" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_orange" - } - }, - { - "when": { - "channel": "pink" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_pink" - } - }, - { - "when": { - "channel": "purple" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_purple" - } - }, - { - "when": { - "channel": "red" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_red" - } - }, - { - "when": { - "channel": "white" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_white" - } - }, - { - "when": { - "channel": "yellow" - }, - "apply": { - "model": "spectrum:block/redstone_wireless_channel_yellow" - } - } - ] + "multipart": [ + { + "when": { + "powered": true, + "sender": true, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender", + "y": 180 + } + }, + { + "when": { + "powered": true, + "sender": true, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender", + "y": 270 + } + }, + { + "when": { + "powered": true, + "sender": true, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender" + } + }, + { + "when": { + "powered": true, + "sender": true, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender", + "y": 90 + } + }, + { + "when": { + "powered": false, + "sender": true, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender_off", + "y": 180 + } + }, + { + "when": { + "powered": false, + "sender": true, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender_off", + "y": 270 + } + }, + { + "when": { + "powered": false, + "sender": true, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender_off" + } + }, + { + "when": { + "powered": false, + "sender": true, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_sender_off", + "y": 90 + } + }, + { + "when": { + "powered": true, + "sender": false, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver", + "y": 180 + } + }, + { + "when": { + "powered": true, + "sender": false, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver", + "y": 270 + } + }, + { + "when": { + "powered": true, + "sender": false, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver" + } + }, + { + "when": { + "powered": true, + "sender": false, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver", + "y": 90 + } + }, + { + "when": { + "powered": false, + "sender": false, + "facing": "north" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver_off", + "y": 180 + } + }, + { + "when": { + "powered": false, + "sender": false, + "facing": "east" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver_off", + "y": 270 + } + }, + { + "when": { + "powered": false, + "sender": false, + "facing": "south" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver_off" + } + }, + { + "when": { + "powered": false, + "sender": false, + "facing": "west" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_receiver_off", + "y": 90 + } + }, + { + "when": { + "channel": "black" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_black" + } + }, + { + "when": { + "channel": "blue" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_blue" + } + }, + { + "when": { + "channel": "brown" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_brown" + } + }, + { + "when": { + "channel": "cyan" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_cyan" + } + }, + { + "when": { + "channel": "gray" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_gray" + } + }, + { + "when": { + "channel": "green" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_green" + } + }, + { + "when": { + "channel": "light_blue" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_light_blue" + } + }, + { + "when": { + "channel": "light_gray" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_light_gray" + } + }, + { + "when": { + "channel": "lime" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_lime" + } + }, + { + "when": { + "channel": "magenta" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_magenta" + } + }, + { + "when": { + "channel": "orange" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_orange" + } + }, + { + "when": { + "channel": "pink" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_pink" + } + }, + { + "when": { + "channel": "purple" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_purple" + } + }, + { + "when": { + "channel": "red" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_red" + } + }, + { + "when": { + "channel": "white" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_white" + } + }, + { + "when": { + "channel": "yellow" + }, + "apply": { + "model": "spectrum:block/redstone_wireless_channel_yellow" + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/resonant_lily.json b/src/main/resources/assets/spectrum/blockstates/resonant_lily.json index ce0467f935..7853344a3d 100644 --- a/src/main/resources/assets/spectrum/blockstates/resonant_lily.json +++ b/src/main/resources/assets/spectrum/blockstates/resonant_lily.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/resonant_lily" - } - } + "variants": { + "": { + "model": "spectrum:block/resonant_lily" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/restocking_chest.json b/src/main/resources/assets/spectrum/blockstates/restocking_chest.json index efb9bd03cd..9bd68be41f 100644 --- a/src/main/resources/assets/spectrum/blockstates/restocking_chest.json +++ b/src/main/resources/assets/spectrum/blockstates/restocking_chest.json @@ -1,19 +1,19 @@ { - "variants": { - "facing=north": { - "model": "spectrum:block/restocking_chest" - }, - "facing=east": { - "model": "spectrum:block/restocking_chest", - "y": 90 - }, - "facing=south": { - "model": "spectrum:block/restocking_chest", - "y": 180 - }, - "facing=west": { - "model": "spectrum:block/restocking_chest", - "y": 270 - } - } + "variants": { + "facing=north": { + "model": "spectrum:block/restocking_chest" + }, + "facing=east": { + "model": "spectrum:block/restocking_chest", + "y": 90 + }, + "facing=south": { + "model": "spectrum:block/restocking_chest", + "y": 180 + }, + "facing=west": { + "model": "spectrum:block/restocking_chest", + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/rotten_ground.json b/src/main/resources/assets/spectrum/blockstates/rotten_ground.json new file mode 100644 index 0000000000..d814587f55 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/rotten_ground.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/rotten_ground" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/ruin.json b/src/main/resources/assets/spectrum/blockstates/ruin.json index 322f3bd524..c4ab67c5d6 100644 --- a/src/main/resources/assets/spectrum/blockstates/ruin.json +++ b/src/main/resources/assets/spectrum/blockstates/ruin.json @@ -1,10 +1,10 @@ { - "variants": { - "decay_state=default": { - "model": "spectrum:block/ruin_default" - }, - "decay_state=bedrock": { - "model": "spectrum:block/ruin_bedrock" - } - } + "variants": { + "decay_state=default": { + "model": "spectrum:block/ruin_default" + }, + "decay_state=bedrock": { + "model": "spectrum:block/ruin_bedrock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sacred_soil.json b/src/main/resources/assets/spectrum/blockstates/sacred_soil.json index 5d5526eff5..0d8e7da3f0 100644 --- a/src/main/resources/assets/spectrum/blockstates/sacred_soil.json +++ b/src/main/resources/assets/spectrum/blockstates/sacred_soil.json @@ -1,28 +1,28 @@ { - "variants": { - "moisture=0": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=1": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=2": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=3": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=4": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=5": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=6": { - "model": "spectrum:block/sacred_soil" - }, - "moisture=7": { - "model": "spectrum:block/sacred_soil_moist" - } - } + "variants": { + "moisture=0": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=1": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=2": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=3": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=4": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=5": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=6": { + "model": "spectrum:block/sacred_soil" + }, + "moisture=7": { + "model": "spectrum:block/sacred_soil_moist" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sag_bubble.json b/src/main/resources/assets/spectrum/blockstates/sag_bubble.json index ad08a5a389..a2a61c35d3 100644 --- a/src/main/resources/assets/spectrum/blockstates/sag_bubble.json +++ b/src/main/resources/assets/spectrum/blockstates/sag_bubble.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sag_bubble" - } - } + "variants": { + "": { + "model": "spectrum:block/sag_bubble" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sag_leaf.json b/src/main/resources/assets/spectrum/blockstates/sag_leaf.json index a7bef0870f..550f03aac2 100644 --- a/src/main/resources/assets/spectrum/blockstates/sag_leaf.json +++ b/src/main/resources/assets/spectrum/blockstates/sag_leaf.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sag_leaf" - } - } + "variants": { + "": { + "model": "spectrum:block/sag_leaf" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/salmon_head.json b/src/main/resources/assets/spectrum/blockstates/salmon_head.json index 3c5348c43e..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/salmon_head.json +++ b/src/main/resources/assets/spectrum/blockstates/salmon_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/salmon" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/salmon_wall_head.json b/src/main/resources/assets/spectrum/blockstates/salmon_wall_head.json index 3c5348c43e..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/salmon_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/salmon_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/salmon" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sawblade_grass.json b/src/main/resources/assets/spectrum/blockstates/sawblade_grass.json new file mode 100644 index 0000000000..87b3fdf3ea --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/sawblade_grass.json @@ -0,0 +1,10 @@ +{ + "variants": { + "snowy=true": { + "model": "spectrum:block/sawblade_grass_snow" + }, + "snowy=false": { + "model": "spectrum:block/sawblade_grass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sawblade_holly_bush.json b/src/main/resources/assets/spectrum/blockstates/sawblade_holly_bush.json new file mode 100644 index 0000000000..1625f678a6 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/sawblade_holly_bush.json @@ -0,0 +1,52 @@ +{ + "variants": { + "age=0,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage0_lower" + }, + "age=1,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage1_lower" + }, + "age=2,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage1_lower" + }, + "age=3,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage2_lower" + }, + "age=4,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage2_lower" + }, + "age=5,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage3_lower" + }, + "age=6,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage3_lower" + }, + "age=7,half=lower": { + "model": "spectrum:block/sawblade_holly_bush_stage4_lower" + }, + "age=0,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage2_upper" + }, + "age=1,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage2_upper" + }, + "age=2,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage2_upper" + }, + "age=3,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage2_upper" + }, + "age=4,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage2_upper" + }, + "age=5,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage3_upper" + }, + "age=6,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage3_upper" + }, + "age=7,half=upper": { + "model": "spectrum:block/sawblade_holly_bush_stage4_upper" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/scarlet_fragment_block.json b/src/main/resources/assets/spectrum/blockstates/scarlet_fragment_block.json deleted file mode 100644 index f3d27010a0..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/scarlet_fragment_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/scarlet_fragment_block" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/scarlet_ore.json b/src/main/resources/assets/spectrum/blockstates/scarlet_ore.json deleted file mode 100644 index 293b6f2106..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/scarlet_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/scarlet_ore" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sender_node.json b/src/main/resources/assets/spectrum/blockstates/sender_node.json new file mode 100644 index 0000000000..54902b0561 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/sender_node.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/sender_node", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/sender_node", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/sender_node", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/sender_node", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/sender_node" + }, + "facing=down": { + "model": "spectrum:block/sender_node", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay.json b/src/main/resources/assets/spectrum/blockstates/shale_clay.json new file mode 100644 index 0000000000..96fd764a04 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/shale_clay", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/shale_clay" + }, + "axis=z": { + "model": "spectrum:block/shale_clay", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/blockstates/shale_clay_brick_slab.json new file mode 100644 index 0000000000..9da7c45287 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/shale_clay_brick_slab" + }, + "type=double": { + "model": "spectrum:block/shale_clay_bricks" + }, + "type=top": { + "model": "spectrum:block/shale_clay_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/blockstates/shale_clay_brick_stairs.json new file mode 100644 index 0000000000..7ee0c39311 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_brick_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay_bricks.json b/src/main/resources/assets/spectrum/blockstates/shale_clay_bricks.json new file mode 100644 index 0000000000..6161d2a1c3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/shale_clay_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/blockstates/shale_clay_tile_slab.json new file mode 100644 index 0000000000..886e44d4fc --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/shale_clay_tile_slab" + }, + "type=double": { + "model": "spectrum:block/shale_clay_tiles" + }, + "type=top": { + "model": "spectrum:block/shale_clay_tile_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/blockstates/shale_clay_tile_stairs.json new file mode 100644 index 0000000000..37b21df16e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/shale_clay_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/shale_clay_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/shale_clay_tile_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shale_clay_tiles.json b/src/main/resources/assets/spectrum/blockstates/shale_clay_tiles.json new file mode 100644 index 0000000000..e2a70112c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shale_clay_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/shale_clay_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_black_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_black_head.json index 1ed21b4c1f..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_black_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_black_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_black" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_black_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_black_wall_head.json index 1ed21b4c1f..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_black_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_black_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_black" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_blue_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_blue_head.json index dcdcbc7320..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_blue_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_blue_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_blue_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_blue_wall_head.json index dcdcbc7320..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_blue_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_blue_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_brown_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_brown_head.json index 2acfe4c3a9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_brown_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_brown_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_brown_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_brown_wall_head.json index 2acfe4c3a9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_brown_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_brown_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_cyan_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_cyan_head.json index bc91a9a2ab..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_cyan_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_cyan_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_cyan_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_cyan_wall_head.json index bc91a9a2ab..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_cyan_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_cyan_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_gray_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_gray_head.json index 0825314b5a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_gray_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_gray_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_gray_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_gray_wall_head.json index 0825314b5a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_gray_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_gray_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_green_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_green_head.json index 7b2d2430a4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_green_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_green_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_green" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_green_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_green_wall_head.json index 7b2d2430a4..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_green_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_green_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_green" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_head.json index 8d41be395c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_light_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_wall_head.json index 8d41be395c..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_light_blue_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_light_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_head.json index b070e3e761..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_light_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_wall_head.json index b070e3e761..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_light_gray_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_light_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_lime_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_lime_head.json index 79d598bb71..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_lime_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_lime_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_lime" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_lime_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_lime_wall_head.json index 79d598bb71..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_lime_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_lime_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_lime" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_magenta_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_magenta_head.json index 10dd4a9809..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_magenta_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_magenta_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_magenta" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_magenta_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_magenta_wall_head.json index 10dd4a9809..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_magenta_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_magenta_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_magenta" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_mob_block.json b/src/main/resources/assets/spectrum/blockstates/sheep_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_orange_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_orange_head.json index dfd01b274e..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_orange_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_orange_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_orange" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_orange_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_orange_wall_head.json index dfd01b274e..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_orange_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_orange_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_orange" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_pink_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_pink_head.json index 3388403101..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_pink_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_pink_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_pink" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_pink_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_pink_wall_head.json index 3388403101..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_pink_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_pink_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_pink" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_purple_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_purple_head.json index 007f0a32e2..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_purple_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_purple_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_purple" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_purple_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_purple_wall_head.json index 007f0a32e2..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_purple_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_purple_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_purple" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_red_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_red_head.json index c7379f4db2..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_red_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_red_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_red_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_red_wall_head.json index c7379f4db2..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_red_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_red_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_white_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_white_head.json index 442dbc3a83..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_white_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_white_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_white" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_white_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_white_wall_head.json index 442dbc3a83..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_white_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_white_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_white" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_yellow_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_yellow_head.json index 7de13ca954..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_yellow_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_yellow_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_yellow" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sheep_yellow_wall_head.json b/src/main/resources/assets/spectrum/blockstates/sheep_yellow_wall_head.json index 7de13ca954..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/sheep_yellow_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/sheep_yellow_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/sheep_yellow" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shimmel.json b/src/main/resources/assets/spectrum/blockstates/shimmel.json new file mode 100644 index 0000000000..a48f8dbdd0 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shimmel.json @@ -0,0 +1,10 @@ +{ + "variants": { + "snowy=true": { + "model": "spectrum:block/shimmel_snow" + }, + "snowy=false": { + "model": "spectrum:block/shimmel" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shimmering_preservation_bricks.json b/src/main/resources/assets/spectrum/blockstates/shimmering_preservation_bricks.json index 7f2ed3c07e..f630bb1d82 100644 --- a/src/main/resources/assets/spectrum/blockstates/shimmering_preservation_bricks.json +++ b/src/main/resources/assets/spectrum/blockstates/shimmering_preservation_bricks.json @@ -1,15 +1,15 @@ { - "variants": { - "": [ - { - "model": "spectrum:block/shimmering_preservation_bricks" - }, - { - "model": "spectrum:block/shimmering_preservation_bricks_slow" - }, - { - "model": "spectrum:block/shimmering_preservation_bricks_fast" - } - ] - } + "variants": { + "": [ + { + "model": "spectrum:block/shimmering_preservation_bricks" + }, + { + "model": "spectrum:block/shimmering_preservation_bricks_slow" + }, + { + "model": "spectrum:block/shimmering_preservation_bricks_fast" + } + ] + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shimmerstone_block.json b/src/main/resources/assets/spectrum/blockstates/shimmerstone_block.json new file mode 100644 index 0000000000..b93b54be39 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shimmerstone_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/shimmerstone_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shimmerstone_ore.json b/src/main/resources/assets/spectrum/blockstates/shimmerstone_ore.json new file mode 100644 index 0000000000..1743ebf47e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shimmerstone_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/shimmerstone_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shooting_star_colorful.json b/src/main/resources/assets/spectrum/blockstates/shooting_star_colorful.json index f870a947ba..40584075cb 100644 --- a/src/main/resources/assets/spectrum/blockstates/shooting_star_colorful.json +++ b/src/main/resources/assets/spectrum/blockstates/shooting_star_colorful.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shooting_star_colorful" - } - } + "variants": { + "": { + "model": "spectrum:block/shooting_star_colorful" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shooting_star_fiery.json b/src/main/resources/assets/spectrum/blockstates/shooting_star_fiery.json index a2f2f313f6..4eb7463692 100644 --- a/src/main/resources/assets/spectrum/blockstates/shooting_star_fiery.json +++ b/src/main/resources/assets/spectrum/blockstates/shooting_star_fiery.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shooting_star_fiery" - } - } + "variants": { + "": { + "model": "spectrum:block/shooting_star_fiery" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shooting_star_gemstone.json b/src/main/resources/assets/spectrum/blockstates/shooting_star_gemstone.json index 1a7e453f47..72d577be77 100644 --- a/src/main/resources/assets/spectrum/blockstates/shooting_star_gemstone.json +++ b/src/main/resources/assets/spectrum/blockstates/shooting_star_gemstone.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shooting_star_gemstone" - } - } + "variants": { + "": { + "model": "spectrum:block/shooting_star_gemstone" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shooting_star_glistering.json b/src/main/resources/assets/spectrum/blockstates/shooting_star_glistering.json index d1efd91288..b71f6b9539 100644 --- a/src/main/resources/assets/spectrum/blockstates/shooting_star_glistering.json +++ b/src/main/resources/assets/spectrum/blockstates/shooting_star_glistering.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shooting_star_glistering" - } - } + "variants": { + "": { + "model": "spectrum:block/shooting_star_glistering" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shooting_star_pristine.json b/src/main/resources/assets/spectrum/blockstates/shooting_star_pristine.json index 22c5a52c37..42357f7047 100644 --- a/src/main/resources/assets/spectrum/blockstates/shooting_star_pristine.json +++ b/src/main/resources/assets/spectrum/blockstates/shooting_star_pristine.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shooting_star_pristine" - } - } + "variants": { + "": { + "model": "spectrum:block/shooting_star_pristine" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_black_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_black_head.json index d23dbce47a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_black_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_black_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_black" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_black_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_black_wall_head.json index d23dbce47a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_black_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_black_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_black" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_blue_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_blue_head.json index 84abbec4d9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_blue_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_blue_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_blue_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_blue_wall_head.json index 84abbec4d9..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_blue_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_blue_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_brown_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_brown_head.json index 71378781f6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_brown_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_brown_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_brown_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_brown_wall_head.json index 71378781f6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_brown_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_brown_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_brown" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_cyan_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_cyan_head.json index cbfba337a7..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_cyan_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_cyan_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_cyan_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_cyan_wall_head.json index cbfba337a7..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_cyan_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_cyan_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_cyan" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_gray_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_gray_head.json index 2505a1c451..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_gray_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_gray_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_gray_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_gray_wall_head.json index 2505a1c451..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_gray_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_gray_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_green_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_green_head.json index 3b05bca137..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_green_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_green_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_green" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_green_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_green_wall_head.json index 3b05bca137..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_green_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_green_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_green" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shulker_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_head.json index 5fdfaf5e50..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_light_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_wall_head.json index 5fdfaf5e50..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_light_blue_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_light_blue" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_head.json index 14de73a266..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_light_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_wall_head.json index 14de73a266..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_light_gray_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_light_gray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_lime_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_lime_head.json index 18c8675782..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_lime_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_lime_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_lime" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_lime_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_lime_wall_head.json index 18c8675782..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_lime_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_lime_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_lime" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_magenta_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_magenta_head.json index 491c56758a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_magenta_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_magenta_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_magenta" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_magenta_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_magenta_wall_head.json index 491c56758a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_magenta_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_magenta_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_magenta" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_mob_block.json b/src/main/resources/assets/spectrum/blockstates/shulker_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_orange_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_orange_head.json index 05943a3962..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_orange_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_orange_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_orange" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_orange_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_orange_wall_head.json index 05943a3962..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_orange_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_orange_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_orange" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_pink_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_pink_head.json index 46b649f4be..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_pink_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_pink_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_pink" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_pink_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_pink_wall_head.json index 46b649f4be..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_pink_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_pink_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_pink" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_purple_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_purple_head.json index 8dd3c6c9c5..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_purple_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_purple_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_purple" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_purple_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_purple_wall_head.json index 8dd3c6c9c5..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_purple_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_purple_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_purple" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_red_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_red_head.json index c0e7743c86..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_red_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_red_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_red_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_red_wall_head.json index c0e7743c86..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_red_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_red_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_red" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/shulker_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_white_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_white_head.json index 0c4718a484..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_white_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_white_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_white" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_white_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_white_wall_head.json index 0c4718a484..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_white_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_white_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_white" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_yellow_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_yellow_head.json index 605a95c305..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_yellow_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_yellow_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_yellow" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/shulker_yellow_wall_head.json b/src/main/resources/assets/spectrum/blockstates/shulker_yellow_wall_head.json index 605a95c305..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/shulker_yellow_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/shulker_yellow_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/shulker_yellow" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/silverfish_head.json b/src/main/resources/assets/spectrum/blockstates/silverfish_head.json index 2163bb8013..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/silverfish_head.json +++ b/src/main/resources/assets/spectrum/blockstates/silverfish_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/silverfish" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/silverfish_mob_block.json b/src/main/resources/assets/spectrum/blockstates/silverfish_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/silverfish_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/silverfish_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/silverfish_wall_head.json b/src/main/resources/assets/spectrum/blockstates/silverfish_wall_head.json index 2163bb8013..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/silverfish_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/silverfish_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/silverfish" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/skeleton_mob_block.json b/src/main/resources/assets/spectrum/blockstates/skeleton_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/skeleton_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/skeleton_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxcap_cap.json b/src/main/resources/assets/spectrum/blockstates/slate_noxcap_cap.json new file mode 100644 index 0000000000..ce815d7bd2 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/slate_noxcap_cap" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxcap_gills.json b/src/main/resources/assets/spectrum/blockstates/slate_noxcap_gills.json new file mode 100644 index 0000000000..af8ccaef6e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxcap_gills.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/slate_noxcap_gills", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/slate_noxcap_gills" + }, + "axis=z": { + "model": "spectrum:block/slate_noxcap_gills", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/slate_noxcap_stem.json new file mode 100644 index 0000000000..9be5e893dd --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/slate_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/slate_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/slate_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxshroom.json b/src/main/resources/assets/spectrum/blockstates/slate_noxshroom.json new file mode 100644 index 0000000000..65704d0978 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxshroom.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/slate_noxshroom" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_amphora.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_amphora.json new file mode 100644 index 0000000000..1f6d515ffa --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_amphora.json @@ -0,0 +1,56 @@ +{ + "variants": { + "facing=down,open=false": { + "model": "spectrum:block/slate_noxwood_amphora", + "x": 180 + }, + "facing=down,open=true": { + "model": "spectrum:block/slate_noxwood_amphora_open", + "x": 180 + }, + "facing=east,open=false": { + "model": "spectrum:block/slate_noxwood_amphora", + "x": 90, + "y": 90 + }, + "facing=east,open=true": { + "model": "spectrum:block/slate_noxwood_amphora_open", + "x": 90, + "y": 90 + }, + "facing=north,open=false": { + "model": "spectrum:block/slate_noxwood_amphora", + "x": 90 + }, + "facing=north,open=true": { + "model": "spectrum:block/slate_noxwood_amphora_open", + "x": 90 + }, + "facing=south,open=false": { + "model": "spectrum:block/slate_noxwood_amphora", + "x": 90, + "y": 180 + }, + "facing=south,open=true": { + "model": "spectrum:block/slate_noxwood_amphora_open", + "x": 90, + "y": 180 + }, + "facing=up,open=false": { + "model": "spectrum:block/slate_noxwood_amphora" + }, + "facing=up,open=true": { + "model": "spectrum:block/slate_noxwood_amphora_open" + }, + "facing=west,open=false": { + "model": "spectrum:block/slate_noxwood_amphora", + "x": 90, + "y": 270 + }, + "facing=west,open=true": { + "model": "spectrum:block/slate_noxwood_amphora_open", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_beam.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_beam.json new file mode 100644 index 0000000000..0f59c708e3 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_beam.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/slate_noxwood_beam", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/slate_noxwood_beam" + }, + "axis=z": { + "model": "spectrum:block/slate_noxwood_beam", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_button.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_button.json new file mode 100644 index 0000000000..903de0027a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "x": 180, + "y": 270 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "x": 180, + "y": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "x": 180, + "y": 90 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "x": 180, + "y": 90 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/slate_noxwood_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 90 + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "uvlock": true, + "x": 90 + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 180 + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/slate_noxwood_button", + "uvlock": true, + "x": 90, + "y": 270 + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/slate_noxwood_button_pressed", + "uvlock": true, + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_door.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_door.json new file mode 100644 index 0000000000..f363299bd4 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_door.json @@ -0,0 +1,124 @@ +{ + "variants": { + "facing=east,half=lower,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_left" + }, + "facing=east,half=lower,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_left_open", + "y": 90 + }, + "facing=east,half=lower,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_right" + }, + "facing=east,half=lower,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_right_open", + "y": 270 + }, + "facing=east,half=upper,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_left" + }, + "facing=east,half=upper,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_left_open", + "y": 90 + }, + "facing=east,half=upper,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_right" + }, + "facing=east,half=upper,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_right_open", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_left", + "y": 270 + }, + "facing=north,half=lower,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_left_open" + }, + "facing=north,half=lower,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_right", + "y": 270 + }, + "facing=north,half=lower,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_right_open", + "y": 180 + }, + "facing=north,half=upper,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_left", + "y": 270 + }, + "facing=north,half=upper,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_left_open" + }, + "facing=north,half=upper,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_right", + "y": 270 + }, + "facing=north,half=upper,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_right_open", + "y": 180 + }, + "facing=south,half=lower,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_left", + "y": 90 + }, + "facing=south,half=lower,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_left_open", + "y": 180 + }, + "facing=south,half=lower,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_right", + "y": 90 + }, + "facing=south,half=lower,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_right_open" + }, + "facing=south,half=upper,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_left", + "y": 90 + }, + "facing=south,half=upper,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_left_open", + "y": 180 + }, + "facing=south,half=upper,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_right", + "y": 90 + }, + "facing=south,half=upper,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_right_open" + }, + "facing=west,half=lower,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_left", + "y": 180 + }, + "facing=west,half=lower,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_left_open", + "y": 270 + }, + "facing=west,half=lower,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_bottom_right", + "y": 180 + }, + "facing=west,half=lower,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_bottom_right_open", + "y": 90 + }, + "facing=west,half=upper,hinge=left,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_left", + "y": 180 + }, + "facing=west,half=upper,hinge=left,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_left_open", + "y": 270 + }, + "facing=west,half=upper,hinge=right,open=false": { + "model": "spectrum:block/slate_noxwood_door_top_right", + "y": 180 + }, + "facing=west,half=upper,hinge=right,open=true": { + "model": "spectrum:block/slate_noxwood_door_top_right_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_fence.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_fence.json new file mode 100644 index 0000000000..4b682b84a9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/slate_noxwood_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/slate_noxwood_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/slate_noxwood_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/slate_noxwood_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/slate_noxwood_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_fence_gate.json new file mode 100644 index 0000000000..3eb423bcbb --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/slate_noxwood_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/slate_noxwood_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/slate_noxwood_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/slate_noxwood_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/slate_noxwood_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/slate_noxwood_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/slate_noxwood_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/slate_noxwood_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/slate_noxwood_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/slate_noxwood_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/slate_noxwood_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/slate_noxwood_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/slate_noxwood_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/slate_noxwood_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/slate_noxwood_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/slate_noxwood_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_lamp.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_lamp.json new file mode 100644 index 0000000000..0974b57116 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_lamp.json @@ -0,0 +1,28 @@ +{ + "variants": { + "hanging=false,diagonal=false,alt=false": { + "model": "spectrum:block/slate_noxwood_lamp" + }, + "hanging=false,diagonal=false,alt=true": { + "model": "spectrum:block/slate_noxwood_lamp_alt" + }, + "hanging=false,diagonal=true,alt=false": { + "model": "spectrum:block/slate_noxwood_lamp_diagonal" + }, + "hanging=false,diagonal=true,alt=true": { + "model": "spectrum:block/slate_noxwood_lamp_diagonal_alt" + }, + "hanging=true,diagonal=false,alt=false": { + "model": "spectrum:block/slate_noxwood_lamp_hanging" + }, + "hanging=true,diagonal=false,alt=true": { + "model": "spectrum:block/slate_noxwood_lamp_hanging_alt" + }, + "hanging=true,diagonal=true,alt=false": { + "model": "spectrum:block/slate_noxwood_lamp_hanging_diagonal" + }, + "hanging=true,diagonal=true,alt=true": { + "model": "spectrum:block/slate_noxwood_lamp_hanging_diagonal_alt" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_lantern.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_lantern.json new file mode 100644 index 0000000000..3a316a00ce --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_lantern.json @@ -0,0 +1,10 @@ +{ + "variants": { + "lit=false": { + "model": "spectrum:block/slate_noxwood_lantern_off" + }, + "lit=true": { + "model": "spectrum:block/slate_noxwood_lantern_on" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_light.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_light.json new file mode 100644 index 0000000000..8699d4c894 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_light.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/slate_noxwood_light", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/slate_noxwood_light" + }, + "axis=z": { + "model": "spectrum:block/slate_noxwood_light", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_planks.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_planks.json new file mode 100644 index 0000000000..9a65f359ec --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/slate_noxwood_planks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_pressure_plate.json new file mode 100644 index 0000000000..5f37029889 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/slate_noxwood_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/slate_noxwood_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_slab.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_slab.json new file mode 100644 index 0000000000..6c54fae267 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/slate_noxwood_slab" + }, + "type=double": { + "model": "spectrum:block/slate_noxwood_planks" + }, + "type=top": { + "model": "spectrum:block/slate_noxwood_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_stairs.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_stairs.json new file mode 100644 index 0000000000..7a73f36997 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/slate_noxwood_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/slate_noxwood_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/slate_noxwood_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slate_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_trapdoor.json new file mode 100644 index 0000000000..b872aeba79 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slate_noxwood_trapdoor.json @@ -0,0 +1,69 @@ +{ + "variants": { + "facing=east,half=bottom,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_bottom", + "y": 90 + }, + "facing=east,half=bottom,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "y": 90 + }, + "facing=east,half=top,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_top", + "y": 90 + }, + "facing=east,half=top,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "x": 180, + "y": 270 + }, + "facing=north,half=bottom,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_bottom" + }, + "facing=north,half=bottom,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open" + }, + "facing=north,half=top,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_top" + }, + "facing=north,half=top,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "x": 180, + "y": 180 + }, + "facing=south,half=bottom,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_bottom", + "y": 180 + }, + "facing=south,half=bottom,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "y": 180 + }, + "facing=south,half=top,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_top", + "y": 180 + }, + "facing=south,half=top,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "x": 180, + "y": 0 + }, + "facing=west,half=bottom,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_bottom", + "y": 270 + }, + "facing=west,half=bottom,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "y": 270 + }, + "facing=west,half=top,open=false": { + "model": "spectrum:block/slate_noxwood_trapdoor_top", + "y": 270 + }, + "facing=west,half=top,open=true": { + "model": "spectrum:block/slate_noxwood_trapdoor_open", + "x": 180, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slime_head.json b/src/main/resources/assets/spectrum/blockstates/slime_head.json index c401e00ee6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/slime_head.json +++ b/src/main/resources/assets/spectrum/blockstates/slime_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/slime" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slime_mob_block.json b/src/main/resources/assets/spectrum/blockstates/slime_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/slime_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/slime_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slime_wall_head.json b/src/main/resources/assets/spectrum/blockstates/slime_wall_head.json index c401e00ee6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/slime_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/slime_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/slime" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/slush.json b/src/main/resources/assets/spectrum/blockstates/slush.json new file mode 100644 index 0000000000..ea868de16e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/slush.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/slush" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_bismuth_bud.json b/src/main/resources/assets/spectrum/blockstates/small_bismuth_bud.json index 9aae91681d..ddec95b00d 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_bismuth_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_bismuth_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/small_bismuth_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/small_bismuth_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/small_bismuth_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/small_bismuth_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/small_bismuth_bud" - }, - "facing=west": { - "model": "spectrum:block/small_bismuth_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/small_bismuth_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/small_bismuth_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/small_bismuth_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/small_bismuth_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/small_bismuth_bud" + }, + "facing=west": { + "model": "spectrum:block/small_bismuth_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_black_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/small_black_dragonjag.json new file mode 100644 index 0000000000..274afa00e0 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/small_black_dragonjag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/small_black_dragonjag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_certus_quartz_bud.json b/src/main/resources/assets/spectrum/blockstates/small_certus_quartz_bud.json index 29e39e73c5..e3e85a6421 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_certus_quartz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_certus_quartz_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_certus_quartz_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_certus_quartz_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_citrine_bud.json b/src/main/resources/assets/spectrum/blockstates/small_citrine_bud.json index fa05a80ce0..dca5e298a8 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_citrine_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_citrine_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/small_citrine_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/small_citrine_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/small_citrine_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/small_citrine_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/small_citrine_bud" - }, - "facing=west": { - "model": "spectrum:block/small_citrine_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/small_citrine_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/small_citrine_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/small_citrine_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/small_citrine_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/small_citrine_bud" + }, + "facing=west": { + "model": "spectrum:block/small_citrine_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_coal_bud.json b/src/main/resources/assets/spectrum/blockstates/small_coal_bud.json index 80b20d30be..d39c6ed383 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_coal_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_coal_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_coal_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_coal_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_copper_bud.json b/src/main/resources/assets/spectrum/blockstates/small_copper_bud.json index 0f7891b231..3b7bc7ec72 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_copper_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_copper_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_copper_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_copper_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_diamond_bud.json b/src/main/resources/assets/spectrum/blockstates/small_diamond_bud.json index a5c9267701..ef35de7d30 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_diamond_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_diamond_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_diamond_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_diamond_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_emerald_bud.json b/src/main/resources/assets/spectrum/blockstates/small_emerald_bud.json index c6c496d62c..b95bf57aee 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_emerald_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_emerald_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_emerald_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_emerald_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_fluix_bud.json b/src/main/resources/assets/spectrum/blockstates/small_fluix_bud.json index 5419e94a80..c645a055c3 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_fluix_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_fluix_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_fluix_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_fluix_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_globette_bud.json b/src/main/resources/assets/spectrum/blockstates/small_globette_bud.json index aed6686db6..b2d27e397c 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_globette_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_globette_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_globette_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_globette_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_globette_end_bud.json b/src/main/resources/assets/spectrum/blockstates/small_globette_end_bud.json index 4fa66b1ad8..d505a0c617 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_globette_end_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_globette_end_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_globette_end_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_globette_end_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_globette_nether_bud.json b/src/main/resources/assets/spectrum/blockstates/small_globette_nether_bud.json index ad8b239161..821c8c0f2d 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_globette_nether_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_globette_nether_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_globette_nether_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_globette_nether_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_glowstone_bud.json b/src/main/resources/assets/spectrum/blockstates/small_glowstone_bud.json index b446f4d73e..8155098fa2 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_glowstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_glowstone_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_glowstone_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_glowstone_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_gold_bud.json b/src/main/resources/assets/spectrum/blockstates/small_gold_bud.json index 310e0ba44e..02b96e843c 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_gold_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_gold_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_gold_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_gold_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_green_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/small_green_dragonjag.json new file mode 100644 index 0000000000..330b605fa5 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/small_green_dragonjag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/small_green_dragonjag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_iron_bud.json b/src/main/resources/assets/spectrum/blockstates/small_iron_bud.json index 74d12d0744..08bf5714c9 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_iron_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_iron_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_iron_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_iron_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_lapis_bud.json b/src/main/resources/assets/spectrum/blockstates/small_lapis_bud.json index 6d8224fc9f..7fe6989795 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_lapis_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_lapis_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_lapis_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_lapis_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_malachite_bud.json b/src/main/resources/assets/spectrum/blockstates/small_malachite_bud.json index 5a9bc5c57b..9368ff7ef5 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_malachite_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_malachite_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_malachite_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_malachite_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_moonstone_bud.json b/src/main/resources/assets/spectrum/blockstates/small_moonstone_bud.json index d5678a3c99..19a9ac583f 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_moonstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_moonstone_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/small_moonstone_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/small_moonstone_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/small_moonstone_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/small_moonstone_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/small_moonstone_bud" - }, - "facing=west": { - "model": "spectrum:block/small_moonstone_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/small_moonstone_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/small_moonstone_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/small_moonstone_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/small_moonstone_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/small_moonstone_bud" + }, + "facing=west": { + "model": "spectrum:block/small_moonstone_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_netherite_bud.json b/src/main/resources/assets/spectrum/blockstates/small_netherite_bud.json index ad0034f5f4..a1d22bd32e 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_netherite_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_netherite_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_netherite_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_netherite_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_onyx_bud.json b/src/main/resources/assets/spectrum/blockstates/small_onyx_bud.json index f76c126479..0590c5a9e5 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_onyx_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_onyx_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/small_onyx_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/small_onyx_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/small_onyx_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/small_onyx_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/small_onyx_bud" - }, - "facing=west": { - "model": "spectrum:block/small_onyx_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/small_onyx_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/small_onyx_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/small_onyx_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/small_onyx_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/small_onyx_bud" + }, + "facing=west": { + "model": "spectrum:block/small_onyx_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_pink_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/small_pink_dragonjag.json new file mode 100644 index 0000000000..c7087bd0af --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/small_pink_dragonjag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/small_pink_dragonjag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_prismarine_bud.json b/src/main/resources/assets/spectrum/blockstates/small_prismarine_bud.json index 4c14e03ff5..8377db26b7 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_prismarine_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_prismarine_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_prismarine_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_prismarine_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_purple_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/small_purple_dragonjag.json new file mode 100644 index 0000000000..a45c99cc13 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/small_purple_dragonjag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/small_purple_dragonjag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_quartz_bud.json b/src/main/resources/assets/spectrum/blockstates/small_quartz_bud.json index 133b205513..04cdbb8dbf 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_quartz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_quartz_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_quartz_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_quartz_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_red_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/small_red_dragonjag.json new file mode 100644 index 0000000000..51b3076c1e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/small_red_dragonjag.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/small_red_dragonjag" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_redstone_bud.json b/src/main/resources/assets/spectrum/blockstates/small_redstone_bud.json index 075b733d87..87ea7c6645 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_redstone_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_redstone_bud.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_redstone_bud" - } - } + "variants": { + "": { + "model": "spectrum:block/small_redstone_bud" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_sag_bubble.json b/src/main/resources/assets/spectrum/blockstates/small_sag_bubble.json index c75a5dccb1..60a9b4c2a0 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_sag_bubble.json +++ b/src/main/resources/assets/spectrum/blockstates/small_sag_bubble.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/small_sag_bubble" - } - } + "variants": { + "": { + "model": "spectrum:block/small_sag_bubble" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/small_topaz_bud.json b/src/main/resources/assets/spectrum/blockstates/small_topaz_bud.json index 2d01931d3d..9472ab06e5 100644 --- a/src/main/resources/assets/spectrum/blockstates/small_topaz_bud.json +++ b/src/main/resources/assets/spectrum/blockstates/small_topaz_bud.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/small_topaz_bud", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/small_topaz_bud", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/small_topaz_bud", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/small_topaz_bud", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/small_topaz_bud" - }, - "facing=west": { - "model": "spectrum:block/small_topaz_bud", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/small_topaz_bud", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/small_topaz_bud", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/small_topaz_bud", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/small_topaz_bud", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/small_topaz_bud" + }, + "facing=west": { + "model": "spectrum:block/small_topaz_bud", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/smooth_basalt_slab.json b/src/main/resources/assets/spectrum/blockstates/smooth_basalt_slab.json index f6ee5d66a2..cebe1e9bf5 100644 --- a/src/main/resources/assets/spectrum/blockstates/smooth_basalt_slab.json +++ b/src/main/resources/assets/spectrum/blockstates/smooth_basalt_slab.json @@ -1,13 +1,13 @@ { - "variants": { - "type=bottom": { - "model": "spectrum:block/smooth_basalt_slab" - }, - "type=double": { - "model": "minecraft:block/smooth_basalt" - }, - "type=top": { - "model": "spectrum:block/smooth_basalt_slab_top" - } - } + "variants": { + "type=bottom": { + "model": "spectrum:block/smooth_basalt_slab" + }, + "type=double": { + "model": "minecraft:block/smooth_basalt" + }, + "type=top": { + "model": "spectrum:block/smooth_basalt_slab_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/smooth_basalt_stairs.json b/src/main/resources/assets/spectrum/blockstates/smooth_basalt_stairs.json index 0cdff1b90e..8d7526c015 100644 --- a/src/main/resources/assets/spectrum/blockstates/smooth_basalt_stairs.json +++ b/src/main/resources/assets/spectrum/blockstates/smooth_basalt_stairs.json @@ -1,209 +1,209 @@ { - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/smooth_basalt_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/smooth_basalt_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/smooth_basalt_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/smooth_basalt_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/smooth_basalt_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/smooth_basalt_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/smooth_basalt_wall.json b/src/main/resources/assets/spectrum/blockstates/smooth_basalt_wall.json index 14f86363a2..d5d1101f9e 100644 --- a/src/main/resources/assets/spectrum/blockstates/smooth_basalt_wall.json +++ b/src/main/resources/assets/spectrum/blockstates/smooth_basalt_wall.json @@ -1,90 +1,90 @@ { - "multipart": [ - { - "when": { - "up": "true" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_post" - } - }, - { - "when": { - "north": "low" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side", - "uvlock": true - } - }, - { - "when": { - "east": "low" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "low" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "low" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side", - "y": 270, - "uvlock": true - } - }, - { - "when": { - "north": "tall" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side_tall", - "uvlock": true - } - }, - { - "when": { - "east": "tall" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side_tall", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "tall" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side_tall", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "tall" - }, - "apply": { - "model": "spectrum:block/smooth_basalt_wall_side_tall", - "y": 270, - "uvlock": true - } - } - ] + "multipart": [ + { + "when": { + "up": "true" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_post" + } + }, + { + "when": { + "north": "low" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side", + "uvlock": true + } + }, + { + "when": { + "east": "low" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "low" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "low" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side", + "y": 270, + "uvlock": true + } + }, + { + "when": { + "north": "tall" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side_tall", + "uvlock": true + } + }, + { + "when": { + "east": "tall" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side_tall", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "tall" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side_tall", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "tall" + }, + "apply": { + "model": "spectrum:block/smooth_basalt_wall_side_tall", + "y": 270, + "uvlock": true + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/snapping_ivy.json b/src/main/resources/assets/spectrum/blockstates/snapping_ivy.json new file mode 100644 index 0000000000..d16db3cd52 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/snapping_ivy.json @@ -0,0 +1,18 @@ +{ + "variants": { + "axis=x,snapped=false": { + "model": "spectrum:block/snapping_ivy" + }, + "axis=x,snapped=true": { + "model": "spectrum:block/snapping_ivy_snapped" + }, + "axis=z,snapped=false": { + "model": "spectrum:block/snapping_ivy", + "y": 90 + }, + "axis=z,snapped=true": { + "model": "spectrum:block/snapping_ivy_snapped", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/snow_golem_head.json b/src/main/resources/assets/spectrum/blockstates/snow_golem_head.json index c0faee41e2..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/snow_golem_head.json +++ b/src/main/resources/assets/spectrum/blockstates/snow_golem_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/snow_golem" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/snow_golem_mob_block.json b/src/main/resources/assets/spectrum/blockstates/snow_golem_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/snow_golem_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/snow_golem_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/snow_golem_wall_head.json b/src/main/resources/assets/spectrum/blockstates/snow_golem_wall_head.json index c0faee41e2..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/snow_golem_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/snow_golem_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/snow_golem" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sparklestone_block.json b/src/main/resources/assets/spectrum/blockstates/sparklestone_block.json deleted file mode 100644 index 40d33385b8..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/sparklestone_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/sparklestone_block" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sparklestone_ore.json b/src/main/resources/assets/spectrum/blockstates/sparklestone_ore.json deleted file mode 100644 index cfd4fb9997..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/sparklestone_ore.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/sparklestone_ore" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spectral_shard_block.json b/src/main/resources/assets/spectrum/blockstates/spectral_shard_block.json index db0d5c5b90..d990fe7b81 100644 --- a/src/main/resources/assets/spectrum/blockstates/spectral_shard_block.json +++ b/src/main/resources/assets/spectrum/blockstates/spectral_shard_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spectral_shard_block" - } - } + "variants": { + "": { + "model": "spectrum:block/spectral_shard_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spectral_shard_storage_block.json b/src/main/resources/assets/spectrum/blockstates/spectral_shard_storage_block.json index f1ba2bc773..3daacf7eed 100644 --- a/src/main/resources/assets/spectrum/blockstates/spectral_shard_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/spectral_shard_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spectral_shard_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/spectral_shard_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spider_head.json b/src/main/resources/assets/spectrum/blockstates/spider_head.json index 29d9151dd6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/spider_head.json +++ b/src/main/resources/assets/spectrum/blockstates/spider_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spider" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spider_mob_block.json b/src/main/resources/assets/spectrum/blockstates/spider_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/spider_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/spider_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spider_wall_head.json b/src/main/resources/assets/spectrum/blockstates/spider_wall_head.json index 29d9151dd6..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/spider_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/spider_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spider" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spirit_instiller.json b/src/main/resources/assets/spectrum/blockstates/spirit_instiller.json index 010a683e54..86bdd57602 100644 --- a/src/main/resources/assets/spectrum/blockstates/spirit_instiller.json +++ b/src/main/resources/assets/spectrum/blockstates/spirit_instiller.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spirit_instiller" - } - } + "variants": { + "": { + "model": "spectrum:block/spirit_instiller" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_heart.json b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_heart.json index 1bbdb3122d..13a716d13a 100644 --- a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_heart.json +++ b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_heart.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spirit_sallow_heart" - } - } + "variants": { + "": { + "model": "spectrum:block/spirit_sallow_heart" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_leaves.json b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_leaves.json index cc58a01960..02e23d5294 100644 --- a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/spirit_sallow_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/spirit_sallow_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_log.json b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_log.json index 7aa2547ee2..ff9226edf3 100644 --- a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_log.json +++ b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/spirit_sallow_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/spirit_sallow_log" - }, - "axis=z": { - "model": "spectrum:block/spirit_sallow_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/spirit_sallow_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/spirit_sallow_log" + }, + "axis=z": { + "model": "spectrum:block/spirit_sallow_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_roots.json b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_roots.json index 71e4b6f1dd..418584129b 100644 --- a/src/main/resources/assets/spectrum/blockstates/spirit_sallow_roots.json +++ b/src/main/resources/assets/spectrum/blockstates/spirit_sallow_roots.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/spirit_sallow_roots_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/spirit_sallow_roots" - }, - "axis=z": { - "model": "spectrum:block/spirit_sallow_roots_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/spirit_sallow_roots_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/spirit_sallow_roots" + }, + "axis=z": { + "model": "spectrum:block/spirit_sallow_roots_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/squid_head.json b/src/main/resources/assets/spectrum/blockstates/squid_head.json index dcdf3138bd..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/squid_head.json +++ b/src/main/resources/assets/spectrum/blockstates/squid_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/squid" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/squid_mob_block.json b/src/main/resources/assets/spectrum/blockstates/squid_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/squid_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/squid_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/squid_wall_head.json b/src/main/resources/assets/spectrum/blockstates/squid_wall_head.json index dcdf3138bd..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/squid_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/squid_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/squid" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stone_shimmerstone_light.json b/src/main/resources/assets/spectrum/blockstates/stone_shimmerstone_light.json new file mode 100644 index 0000000000..8eb9853009 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stone_shimmerstone_light.json @@ -0,0 +1,29 @@ +{ + "variants": { + "facing=east": { + "model": "spectrum:block/stone_shimmerstone_light", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/stone_shimmerstone_light", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/stone_shimmerstone_light", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/stone_shimmerstone_light", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/stone_shimmerstone_light" + }, + "facing=down": { + "model": "spectrum:block/stone_shimmerstone_light", + "x": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stone_sparklestone_light.json b/src/main/resources/assets/spectrum/blockstates/stone_sparklestone_light.json deleted file mode 100644 index 630d504c5c..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/stone_sparklestone_light.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "variants": { - "facing=east": { - "model": "spectrum:block/stone_sparklestone_light", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/stone_sparklestone_light", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/stone_sparklestone_light", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/stone_sparklestone_light", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/stone_sparklestone_light" - }, - "facing=down": { - "model": "spectrum:block/stone_sparklestone_light", - "x": 180 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/storage_node.json b/src/main/resources/assets/spectrum/blockstates/storage_node.json index fd738a7eb6..f02037f920 100644 --- a/src/main/resources/assets/spectrum/blockstates/storage_node.json +++ b/src/main/resources/assets/spectrum/blockstates/storage_node.json @@ -1,29 +1,29 @@ { - "variants": { - "facing=east": { - "model": "spectrum:block/storage_node", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/storage_node", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/storage_node", - "x": 270 - }, - "facing=west": { - "model": "spectrum:block/storage_node", - "x": 90, - "y": 270 - }, - "facing=up": { - "model": "spectrum:block/storage_node" - }, - "facing=down": { - "model": "spectrum:block/storage_node", - "x": 180 - } - } + "variants": { + "facing=east": { + "model": "spectrum:block/storage_node", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/storage_node", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/storage_node", + "x": 270 + }, + "facing=west": { + "model": "spectrum:block/storage_node", + "x": 90, + "y": 270 + }, + "facing=up": { + "model": "spectrum:block/storage_node" + }, + "facing=down": { + "model": "spectrum:block/storage_node", + "x": 180 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stratine_fragment_block.json b/src/main/resources/assets/spectrum/blockstates/stratine_fragment_block.json new file mode 100644 index 0000000000..b2ac62a1d6 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stratine_fragment_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/stratine_fragment_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stratine_ore.json b/src/main/resources/assets/spectrum/blockstates/stratine_ore.json new file mode 100644 index 0000000000..47dedff9b1 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stratine_ore.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/stratine_ore" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stray_head.json b/src/main/resources/assets/spectrum/blockstates/stray_head.json index 78c0a72261..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/stray_head.json +++ b/src/main/resources/assets/spectrum/blockstates/stray_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/stray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stray_mob_block.json b/src/main/resources/assets/spectrum/blockstates/stray_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/stray_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/stray_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stray_wall_head.json b/src/main/resources/assets/spectrum/blockstates/stray_wall_head.json index 78c0a72261..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/stray_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/stray_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/stray" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/strider_head.json b/src/main/resources/assets/spectrum/blockstates/strider_head.json index 9c5b25ff99..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/strider_head.json +++ b/src/main/resources/assets/spectrum/blockstates/strider_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/strider" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/strider_mob_block.json b/src/main/resources/assets/spectrum/blockstates/strider_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/strider_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/strider_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/strider_wall_head.json b/src/main/resources/assets/spectrum/blockstates/strider_wall_head.json index 9c5b25ff99..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/strider_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/strider_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/strider" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stripped_chestnut_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/stripped_chestnut_noxcap_stem.json new file mode 100644 index 0000000000..1d2422b36c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stripped_chestnut_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/stripped_chestnut_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/stripped_chestnut_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/stripped_chestnut_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/stripped_ebony_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/stripped_ebony_noxcap_stem.json new file mode 100644 index 0000000000..e36c440705 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stripped_ebony_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/stripped_ebony_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/stripped_ebony_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/stripped_ebony_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/stripped_ivory_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/stripped_ivory_noxcap_stem.json new file mode 100644 index 0000000000..fd9563bf9a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stripped_ivory_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/stripped_ivory_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/stripped_ivory_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/stripped_ivory_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/stripped_slate_noxcap_stem.json b/src/main/resources/assets/spectrum/blockstates/stripped_slate_noxcap_stem.json new file mode 100644 index 0000000000..71127ed47a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stripped_slate_noxcap_stem.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "spectrum:block/stripped_slate_noxcap_stem", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/stripped_slate_noxcap_stem" + }, + "axis=z": { + "model": "spectrum:block/stripped_slate_noxcap_stem", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/spectrum/blockstates/stuck_lightning_stone.json b/src/main/resources/assets/spectrum/blockstates/stuck_lightning_stone.json deleted file mode 100644 index f77370c25a..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/stuck_lightning_stone.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/stuck_lightning_stone" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/stuck_storm_stone.json b/src/main/resources/assets/spectrum/blockstates/stuck_storm_stone.json new file mode 100644 index 0000000000..f675cda70a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/stuck_storm_stone.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/stuck_storm_stone" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sucking_chest.json b/src/main/resources/assets/spectrum/blockstates/sucking_chest.json deleted file mode 100644 index 2bc45d5896..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/sucking_chest.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=north": { - "model": "spectrum:block/sucking_chest" - }, - "facing=east": { - "model": "spectrum:block/sucking_chest", - "y": 90 - }, - "facing=south": { - "model": "spectrum:block/sucking_chest", - "y": 180 - }, - "facing=west": { - "model": "spectrum:block/sucking_chest", - "y": 270 - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/sugar_stick.json b/src/main/resources/assets/spectrum/blockstates/sugar_stick.json index 56ff06c5b7..8529f16928 100644 --- a/src/main/resources/assets/spectrum/blockstates/sugar_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/sugar_stick.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0,liquidcrystallogged=false": { - "model": "spectrum:block/sugar_stick0" - }, - "age=1,liquidcrystallogged=false": { - "model": "spectrum:block/sugar_stick1" - }, - "age=2,liquidcrystallogged=false": { - "model": "spectrum:block/sugar_stick2" - }, - "age=0,liquidcrystallogged=true": { - "model": "spectrum:block/sugar_stick0" - }, - "age=1,liquidcrystallogged=true": { - "model": "spectrum:block/sugar_stick1" - }, - "age=2,liquidcrystallogged=true": { - "model": "spectrum:block/sugar_stick2" - } - } + "variants": { + "age=0,liquidcrystallogged=false": { + "model": "spectrum:block/sugar_stick0" + }, + "age=1,liquidcrystallogged=false": { + "model": "spectrum:block/sugar_stick1" + }, + "age=2,liquidcrystallogged=false": { + "model": "spectrum:block/sugar_stick2" + }, + "age=0,liquidcrystallogged=true": { + "model": "spectrum:block/sugar_stick0" + }, + "age=1,liquidcrystallogged=true": { + "model": "spectrum:block/sugar_stick1" + }, + "age=2,liquidcrystallogged=true": { + "model": "spectrum:block/sugar_stick2" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tadpole_head.json b/src/main/resources/assets/spectrum/blockstates/tadpole_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tadpole_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tadpole_wall_head.json b/src/main/resources/assets/spectrum/blockstates/tadpole_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tadpole_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tall_black_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/tall_black_dragonjag.json new file mode 100644 index 0000000000..56109c54c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tall_black_dragonjag.json @@ -0,0 +1,16 @@ +{ + "variants": { + "half=lower,dead=false": { + "model": "spectrum:block/tall_black_dragonjag_bottom" + }, + "half=upper,dead=false": { + "model": "spectrum:block/tall_black_dragonjag_top" + }, + "half=lower,dead=true": { + "model": "spectrum:block/tall_black_dragonjag_bottom_dead" + }, + "half=upper,dead=true": { + "model": "spectrum:block/tall_black_dragonjag_top_dead" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tall_green_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/tall_green_dragonjag.json new file mode 100644 index 0000000000..6fa66c0f1d --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tall_green_dragonjag.json @@ -0,0 +1,16 @@ +{ + "variants": { + "half=lower,dead=false": { + "model": "spectrum:block/tall_green_dragonjag_bottom" + }, + "half=upper,dead=false": { + "model": "spectrum:block/tall_green_dragonjag_top" + }, + "half=lower,dead=true": { + "model": "spectrum:block/tall_green_dragonjag_bottom_dead" + }, + "half=upper,dead=true": { + "model": "spectrum:block/tall_green_dragonjag_top_dead" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tall_pink_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/tall_pink_dragonjag.json new file mode 100644 index 0000000000..27730364f9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tall_pink_dragonjag.json @@ -0,0 +1,16 @@ +{ + "variants": { + "half=lower,dead=false": { + "model": "spectrum:block/tall_pink_dragonjag_bottom" + }, + "half=upper,dead=false": { + "model": "spectrum:block/tall_pink_dragonjag_top" + }, + "half=lower,dead=true": { + "model": "spectrum:block/tall_pink_dragonjag_bottom_dead" + }, + "half=upper,dead=true": { + "model": "spectrum:block/tall_pink_dragonjag_top_dead" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tall_purple_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/tall_purple_dragonjag.json new file mode 100644 index 0000000000..2fec08a5b4 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tall_purple_dragonjag.json @@ -0,0 +1,16 @@ +{ + "variants": { + "half=lower,dead=false": { + "model": "spectrum:block/tall_purple_dragonjag_bottom" + }, + "half=upper,dead=false": { + "model": "spectrum:block/tall_purple_dragonjag_top" + }, + "half=lower,dead=true": { + "model": "spectrum:block/tall_purple_dragonjag_bottom_dead" + }, + "half=upper,dead=true": { + "model": "spectrum:block/tall_purple_dragonjag_top_dead" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tall_red_dragonjag.json b/src/main/resources/assets/spectrum/blockstates/tall_red_dragonjag.json new file mode 100644 index 0000000000..0ef006c7c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tall_red_dragonjag.json @@ -0,0 +1,16 @@ +{ + "variants": { + "half=lower,dead=false": { + "model": "spectrum:block/tall_red_dragonjag_bottom" + }, + "half=upper,dead=false": { + "model": "spectrum:block/tall_red_dragonjag_top" + }, + "half=lower,dead=true": { + "model": "spectrum:block/tall_red_dragonjag_bottom_dead" + }, + "half=upper,dead=true": { + "model": "spectrum:block/tall_red_dragonjag_top_dead" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/terror.json b/src/main/resources/assets/spectrum/blockstates/terror.json deleted file mode 100644 index 2ceb3782bc..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/terror.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "decay_state=default": { - "model": "spectrum:block/terror_default" - }, - "decay_state=bedrock": { - "model": "spectrum:block/terror_bedrock" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tinted_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/tinted_player_only_glass.json deleted file mode 100644 index c9f85f1a81..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/tinted_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "minecraft:block/tinted_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tinted_preservation_glass.json b/src/main/resources/assets/spectrum/blockstates/tinted_preservation_glass.json index ae8c33eeae..ceababbfa8 100644 --- a/src/main/resources/assets/spectrum/blockstates/tinted_preservation_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/tinted_preservation_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/tinted_preservation_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/tinted_preservation_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/tinted_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/tinted_semi_permeable_glass.json new file mode 100644 index 0000000000..ab505e7ac6 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/tinted_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/tinted_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/titration_barrel.json b/src/main/resources/assets/spectrum/blockstates/titration_barrel.json index dad0c8b159..e932e4768f 100644 --- a/src/main/resources/assets/spectrum/blockstates/titration_barrel.json +++ b/src/main/resources/assets/spectrum/blockstates/titration_barrel.json @@ -1,83 +1,80 @@ { - "variants": { - "facing=east,barrel_state=empty": { - "x": 90, - "y": 90, - "model": "spectrum:block/titration_barrel" - }, - "facing=east,barrel_state=filled": { - "x": 90, - "y": 90, - "model": "spectrum:block/titration_barrel_filled" - }, - "facing=east,barrel_state=sealed": { - "x": 90, - "y": 90, - "model": "spectrum:block/titration_barrel_sealed" - }, - "facing=east,barrel_state=tapped": { - "x": 90, - "y": 90, - "model": "spectrum:block/titration_barrel_tapped" - }, - - "facing=north,barrel_state=empty": { - "x": 90, - "model": "spectrum:block/titration_barrel" - }, - "facing=north,barrel_state=filled": { - "x": 90, - "model": "spectrum:block/titration_barrel_filled" - }, - "facing=north,barrel_state=sealed": { - "x": 90, - "model": "spectrum:block/titration_barrel_sealed" - }, - "facing=north,barrel_state=tapped": { - "x": 90, - "model": "spectrum:block/titration_barrel_tapped" - }, - - "facing=south,barrel_state=empty": { - "x": 90, - "y": 180, - "model": "spectrum:block/titration_barrel" - }, - "facing=south,barrel_state=filled": { - "x": 90, - "y": 180, - "model": "spectrum:block/titration_barrel_filled" - }, - "facing=south,barrel_state=sealed": { - "x": 90, - "y": 180, - "model": "spectrum:block/titration_barrel_sealed" - }, - "facing=south,barrel_state=tapped": { - "x": 90, - "y": 180, - "model": "spectrum:block/titration_barrel_tapped" - }, - - "facing=west,barrel_state=empty": { - "x": 90, - "y": 270, - "model": "spectrum:block/titration_barrel" - }, - "facing=west,barrel_state=filled": { - "x": 90, - "y": 270, - "model": "spectrum:block/titration_barrel_filled" - }, - "facing=west,barrel_state=sealed": { - "x": 90, - "y": 270, - "model": "spectrum:block/titration_barrel_sealed" - }, - "facing=west,barrel_state=tapped": { - "x": 90, - "y": 270, - "model": "spectrum:block/titration_barrel_tapped" - } - } + "variants": { + "facing=east,barrel_state=empty": { + "x": 90, + "y": 90, + "model": "spectrum:block/titration_barrel" + }, + "facing=east,barrel_state=filled": { + "x": 90, + "y": 90, + "model": "spectrum:block/titration_barrel_filled" + }, + "facing=east,barrel_state=sealed": { + "x": 90, + "y": 90, + "model": "spectrum:block/titration_barrel_sealed" + }, + "facing=east,barrel_state=tapped": { + "x": 90, + "y": 90, + "model": "spectrum:block/titration_barrel_tapped" + }, + "facing=north,barrel_state=empty": { + "x": 90, + "model": "spectrum:block/titration_barrel" + }, + "facing=north,barrel_state=filled": { + "x": 90, + "model": "spectrum:block/titration_barrel_filled" + }, + "facing=north,barrel_state=sealed": { + "x": 90, + "model": "spectrum:block/titration_barrel_sealed" + }, + "facing=north,barrel_state=tapped": { + "x": 90, + "model": "spectrum:block/titration_barrel_tapped" + }, + "facing=south,barrel_state=empty": { + "x": 90, + "y": 180, + "model": "spectrum:block/titration_barrel" + }, + "facing=south,barrel_state=filled": { + "x": 90, + "y": 180, + "model": "spectrum:block/titration_barrel_filled" + }, + "facing=south,barrel_state=sealed": { + "x": 90, + "y": 180, + "model": "spectrum:block/titration_barrel_sealed" + }, + "facing=south,barrel_state=tapped": { + "x": 90, + "y": 180, + "model": "spectrum:block/titration_barrel_tapped" + }, + "facing=west,barrel_state=empty": { + "x": 90, + "y": 270, + "model": "spectrum:block/titration_barrel" + }, + "facing=west,barrel_state=filled": { + "x": 90, + "y": 270, + "model": "spectrum:block/titration_barrel_filled" + }, + "facing=west,barrel_state=sealed": { + "x": 90, + "y": 270, + "model": "spectrum:block/titration_barrel_sealed" + }, + "facing=west,barrel_state=tapped": { + "x": 90, + "y": 270, + "model": "spectrum:block/titration_barrel_tapped" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_basalt_lamp.json b/src/main/resources/assets/spectrum/blockstates/topaz_basalt_lamp.json index eb565aa079..874654eb13 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_basalt_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_basalt_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_basalt_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_block.json b/src/main/resources/assets/spectrum/blockstates/topaz_block.json index 7968376cb0..777c5c9604 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_block.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_block" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_calcite_lamp.json b/src/main/resources/assets/spectrum/blockstates/topaz_calcite_lamp.json index 23f5eed608..cf6ce802d7 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_calcite_lamp.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_calcite_lamp" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_calcite_lamp" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_chime.json b/src/main/resources/assets/spectrum/blockstates/topaz_chime.json index b92b6ebc31..aabb89dfb0 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_chime.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_chime.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_chime" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_chime" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_basalt.json b/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_basalt.json index 51938d2ef4..b804ea4c75 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_basalt.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_basalt.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_chiseled_basalt" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_chiseled_basalt" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_calcite.json b/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_calcite.json index c248790742..03d59882ac 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_calcite.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_chiseled_calcite.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_chiseled_calcite" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_chiseled_calcite" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_cluster.json b/src/main/resources/assets/spectrum/blockstates/topaz_cluster.json index cb5830d977..05a6fbe83d 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_cluster.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_cluster.json @@ -1,30 +1,30 @@ { - "variants": { - "facing=down": { - "model": "spectrum:block/topaz_cluster", - "x": 180 - }, - "facing=east": { - "model": "spectrum:block/topaz_cluster", - "x": 90, - "y": 90 - }, - "facing=north": { - "model": "spectrum:block/topaz_cluster", - "x": 90 - }, - "facing=south": { - "model": "spectrum:block/topaz_cluster", - "x": 90, - "y": 180 - }, - "facing=up": { - "model": "spectrum:block/topaz_cluster" - }, - "facing=west": { - "model": "spectrum:block/topaz_cluster", - "x": 90, - "y": 270 - } - } + "variants": { + "facing=down": { + "model": "spectrum:block/topaz_cluster", + "x": 180 + }, + "facing=east": { + "model": "spectrum:block/topaz_cluster", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "spectrum:block/topaz_cluster", + "x": 90 + }, + "facing=south": { + "model": "spectrum:block/topaz_cluster", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "spectrum:block/topaz_cluster" + }, + "facing=west": { + "model": "spectrum:block/topaz_cluster", + "x": 90, + "y": 270 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_decostone.json b/src/main/resources/assets/spectrum/blockstates/topaz_decostone.json index 8d2db81e6e..8d293efba6 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_decostone.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_decostone.json @@ -1,10 +1,10 @@ { - "variants": { - "half=lower": { - "model": "spectrum:block/topaz_decostone_bottom" - }, - "half=upper": { - "model": "spectrum:block/topaz_decostone_top" - } - } + "variants": { + "half=lower": { + "model": "spectrum:block/topaz_decostone_bottom" + }, + "half=upper": { + "model": "spectrum:block/topaz_decostone_top" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_glass.json b/src/main/resources/assets/spectrum/blockstates/topaz_glass.json index ecca449294..a11306801c 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_glass.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_glass.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_glass" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_glass" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_ore.json b/src/main/resources/assets/spectrum/blockstates/topaz_ore.json index 4061b171ac..5e361a9344 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_ore.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_ore.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_ore" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_ore" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/topaz_player_only_glass.json deleted file mode 100644 index ecca449294..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/topaz_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "spectrum:block/topaz_glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/topaz_semi_permeable_glass.json new file mode 100644 index 0000000000..a11306801c --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/topaz_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/topaz_glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_storage_block.json b/src/main/resources/assets/spectrum/blockstates/topaz_storage_block.json index e294f7b9b2..f87be3e261 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_storage_block.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_storage_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/topaz_storage_block" - } - } + "variants": { + "": { + "model": "spectrum:block/topaz_storage_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/topaz_sugar_stick.json b/src/main/resources/assets/spectrum/blockstates/topaz_sugar_stick.json index 78229d5e19..03722a9217 100644 --- a/src/main/resources/assets/spectrum/blockstates/topaz_sugar_stick.json +++ b/src/main/resources/assets/spectrum/blockstates/topaz_sugar_stick.json @@ -1,22 +1,22 @@ { - "variants": { - "age=0,liquidcrystallogged=false": { - "model": "spectrum:block/topaz_sugar_stick0" - }, - "age=1,liquidcrystallogged=false": { - "model": "spectrum:block/topaz_sugar_stick1" - }, - "age=2,liquidcrystallogged=false": { - "model": "spectrum:block/topaz_sugar_stick2" - }, - "age=0,liquidcrystallogged=true": { - "model": "spectrum:block/topaz_sugar_stick0" - }, - "age=1,liquidcrystallogged=true": { - "model": "spectrum:block/topaz_sugar_stick1" - }, - "age=2,liquidcrystallogged=true": { - "model": "spectrum:block/topaz_sugar_stick2" - } - } + "variants": { + "age=0,liquidcrystallogged=false": { + "model": "spectrum:block/topaz_sugar_stick0" + }, + "age=1,liquidcrystallogged=false": { + "model": "spectrum:block/topaz_sugar_stick1" + }, + "age=2,liquidcrystallogged=false": { + "model": "spectrum:block/topaz_sugar_stick2" + }, + "age=0,liquidcrystallogged=true": { + "model": "spectrum:block/topaz_sugar_stick0" + }, + "age=1,liquidcrystallogged=true": { + "model": "spectrum:block/topaz_sugar_stick1" + }, + "age=2,liquidcrystallogged=true": { + "model": "spectrum:block/topaz_sugar_stick2" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/trader_llama_head.json b/src/main/resources/assets/spectrum/blockstates/trader_llama_head.json index 740318f85a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/trader_llama_head.json +++ b/src/main/resources/assets/spectrum/blockstates/trader_llama_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/trader_llama" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/trader_llama_wall_head.json b/src/main/resources/assets/spectrum/blockstates/trader_llama_wall_head.json index 740318f85a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/trader_llama_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/trader_llama_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/trader_llama" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/treasure_chest.json b/src/main/resources/assets/spectrum/blockstates/treasure_chest.json index 3eef619512..2b723fae90 100644 --- a/src/main/resources/assets/spectrum/blockstates/treasure_chest.json +++ b/src/main/resources/assets/spectrum/blockstates/treasure_chest.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/treasure_chest" - } - } + "variants": { + "": { + "model": "spectrum:block/treasure_chest" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/turtle_head.json b/src/main/resources/assets/spectrum/blockstates/turtle_head.json index e5f445d6bb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/turtle_head.json +++ b/src/main/resources/assets/spectrum/blockstates/turtle_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/turtle" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/turtle_mob_block.json b/src/main/resources/assets/spectrum/blockstates/turtle_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/turtle_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/turtle_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/turtle_wall_head.json b/src/main/resources/assets/spectrum/blockstates/turtle_wall_head.json index e5f445d6bb..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/turtle_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/turtle_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/turtle" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/universe_spyhole.json b/src/main/resources/assets/spectrum/blockstates/universe_spyhole.json index 81ed64e6b8..fa6c9e1166 100644 --- a/src/main/resources/assets/spectrum/blockstates/universe_spyhole.json +++ b/src/main/resources/assets/spectrum/blockstates/universe_spyhole.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/universe_spyhole" - } - } + "variants": { + "": { + "model": "spectrum:block/universe_spyhole" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency.json b/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency.json index 05cb395ad3..b50d78ee00 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_efficiency" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_efficiency" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency2.json b/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency2.json index 05cb395ad3..b50d78ee00 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency2.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_efficiency2.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_efficiency" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_efficiency" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_experience.json b/src/main/resources/assets/spectrum/blockstates/upgrade_experience.json index 8aa76a78b1..ec8be46d52 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_experience.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_experience.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_experience" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_experience" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_experience2.json b/src/main/resources/assets/spectrum/blockstates/upgrade_experience2.json index 8aa76a78b1..ec8be46d52 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_experience2.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_experience2.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_experience" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_experience" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_speed.json b/src/main/resources/assets/spectrum/blockstates/upgrade_speed.json index 9f84a9e134..2ad9ef6cad 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_speed.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_speed.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_speed" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_speed" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_speed2.json b/src/main/resources/assets/spectrum/blockstates/upgrade_speed2.json index 9f84a9e134..2ad9ef6cad 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_speed2.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_speed2.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_speed" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_speed" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_speed3.json b/src/main/resources/assets/spectrum/blockstates/upgrade_speed3.json index 9f84a9e134..2ad9ef6cad 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_speed3.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_speed3.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_speed" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_speed" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_yield.json b/src/main/resources/assets/spectrum/blockstates/upgrade_yield.json index 3eabf599c7..58439e3916 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_yield.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_yield.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_yield" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_yield" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/upgrade_yield2.json b/src/main/resources/assets/spectrum/blockstates/upgrade_yield2.json index 3eabf599c7..58439e3916 100644 --- a/src/main/resources/assets/spectrum/blockstates/upgrade_yield2.json +++ b/src/main/resources/assets/spectrum/blockstates/upgrade_yield2.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/upgrade_yield" - } - } + "variants": { + "": { + "model": "spectrum:block/upgrade_yield" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/vanilla_player_only_glass.json b/src/main/resources/assets/spectrum/blockstates/vanilla_player_only_glass.json deleted file mode 100644 index 5f6ec4d280..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/vanilla_player_only_glass.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "minecraft:block/glass" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/vanilla_semi_permeable_glass.json b/src/main/resources/assets/spectrum/blockstates/vanilla_semi_permeable_glass.json new file mode 100644 index 0000000000..e1796163e6 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/vanilla_semi_permeable_glass.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/glass" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/vex_head.json b/src/main/resources/assets/spectrum/blockstates/vex_head.json index 02c1705267..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/vex_head.json +++ b/src/main/resources/assets/spectrum/blockstates/vex_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/vex" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/vex_wall_head.json b/src/main/resources/assets/spectrum/blockstates/vex_wall_head.json index 02c1705267..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/vex_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/vex_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/vex" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/villager_head.json b/src/main/resources/assets/spectrum/blockstates/villager_head.json index 8c5c23c489..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/villager_head.json +++ b/src/main/resources/assets/spectrum/blockstates/villager_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/villager" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/villager_wall_head.json b/src/main/resources/assets/spectrum/blockstates/villager_wall_head.json index 8c5c23c489..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/villager_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/villager_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/villager" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/vindicator_head.json b/src/main/resources/assets/spectrum/blockstates/vindicator_head.json index 59755b141a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/vindicator_head.json +++ b/src/main/resources/assets/spectrum/blockstates/vindicator_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/vindicator" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/vindicator_wall_head.json b/src/main/resources/assets/spectrum/blockstates/vindicator_wall_head.json index 59755b141a..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/vindicator_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/vindicator_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/vindicator" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wand_light.json b/src/main/resources/assets/spectrum/blockstates/wand_light.json index 8e816f0e29..637f3b28de 100644 --- a/src/main/resources/assets/spectrum/blockstates/wand_light.json +++ b/src/main/resources/assets/spectrum/blockstates/wand_light.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wand_light" - } - } + "variants": { + "": { + "model": "spectrum:block/wand_light" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wandering_trader_head.json b/src/main/resources/assets/spectrum/blockstates/wandering_trader_head.json index ca316c0091..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/wandering_trader_head.json +++ b/src/main/resources/assets/spectrum/blockstates/wandering_trader_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wandering_trader" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wandering_trader_wall_head.json b/src/main/resources/assets/spectrum/blockstates/wandering_trader_wall_head.json index ca316c0091..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/wandering_trader_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/wandering_trader_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wandering_trader" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/warden_head.json b/src/main/resources/assets/spectrum/blockstates/warden_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/warden_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/warden_wall_head.json b/src/main/resources/assets/spectrum/blockstates/warden_wall_head.json new file mode 100644 index 0000000000..b14e57e155 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/warden_wall_head.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weather_detector.json b/src/main/resources/assets/spectrum/blockstates/weather_detector.json index 3c1627d18a..581791c707 100644 --- a/src/main/resources/assets/spectrum/blockstates/weather_detector.json +++ b/src/main/resources/assets/spectrum/blockstates/weather_detector.json @@ -1,10 +1,10 @@ { - "variants": { - "inverted=false": { - "model": "spectrum:block/weather_detector" - }, - "inverted=true": { - "model": "spectrum:block/weather_detector_inverted" - } - } + "variants": { + "inverted=false": { + "model": "spectrum:block/weather_detector" + }, + "inverted=true": { + "model": "spectrum:block/weather_detector_inverted" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay.json b/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay.json new file mode 100644 index 0000000000..3e7ee8ce8e --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/weathered_polished_shale_clay" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay_slab.json new file mode 100644 index 0000000000..b1d112d727 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/weathered_polished_shale_clay_slab" + }, + "type=double": { + "model": "spectrum:block/weathered_polished_shale_clay" + }, + "type=top": { + "model": "spectrum:block/weathered_polished_shale_clay_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..c7c95fe067 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_polished_shale_clay_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/weathered_polished_shale_clay_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_brick_slab.json new file mode 100644 index 0000000000..9b6043e2cf --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/weathered_shale_clay_brick_slab" + }, + "type=double": { + "model": "spectrum:block/weathered_shale_clay_bricks" + }, + "type=top": { + "model": "spectrum:block/weathered_shale_clay_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..5c12a37098 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_brick_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_bricks.json b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_bricks.json new file mode 100644 index 0000000000..a340364dec --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/weathered_shale_clay_bricks" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tile_slab.json new file mode 100644 index 0000000000..8dce1a5e10 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tile_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/weathered_shale_clay_tile_slab" + }, + "type=double": { + "model": "spectrum:block/weathered_shale_clay_tiles" + }, + "type=top": { + "model": "spectrum:block/weathered_shale_clay_tile_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..99a6a7954b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tile_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/weathered_shale_clay_tile_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tiles.json b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tiles.json new file mode 100644 index 0000000000..06c6cd065b --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/weathered_shale_clay_tiles.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "spectrum:block/weathered_shale_clay_tiles" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wet_lava_sponge.json b/src/main/resources/assets/spectrum/blockstates/wet_lava_sponge.json index 6fa1830c97..e6c9325670 100644 --- a/src/main/resources/assets/spectrum/blockstates/wet_lava_sponge.json +++ b/src/main/resources/assets/spectrum/blockstates/wet_lava_sponge.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wet_lava_sponge" - } - } + "variants": { + "": { + "model": "spectrum:block/wet_lava_sponge" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_block.json b/src/main/resources/assets/spectrum/blockstates/white_block.json index 6d0477b301..5fcfc2ae2d 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_block.json +++ b/src/main/resources/assets/spectrum/blockstates/white_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/white_block" - } - } + "variants": { + "": { + "model": "spectrum:block/white_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_button.json b/src/main/resources/assets/spectrum/blockstates/white_button.json new file mode 100644 index 0000000000..25d1e96288 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/white_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/white_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/white_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/white_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/white_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/white_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/white_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/white_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/white_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/white_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/white_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/white_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/white_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/white_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/white_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/white_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/white_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_fence.json b/src/main/resources/assets/spectrum/blockstates/white_fence.json new file mode 100644 index 0000000000..0eb848ac64 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/white_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/white_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/white_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/white_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/white_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/white_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/white_fence_gate.json new file mode 100644 index 0000000000..5a1338eec9 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/white_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/white_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/white_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/white_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/white_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/white_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/white_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/white_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/white_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/white_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/white_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/white_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/white_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/white_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/white_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/white_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/white_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_glowblock.json b/src/main/resources/assets/spectrum/blockstates/white_glowblock.json index 5af1ce7482..2593e5652d 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/white_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/white_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/white_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_lamp.json b/src/main/resources/assets/spectrum/blockstates/white_lamp.json index c381221edb..453d7ec379 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/white_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/white_lamp" - }, - "lit=true": { - "model": "spectrum:block/white_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/white_lamp" + }, + "lit=true": { + "model": "spectrum:block/white_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_leaves.json b/src/main/resources/assets/spectrum/blockstates/white_leaves.json index 60b30c0c25..dfd9460400 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/white_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/white_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/white_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_log.json b/src/main/resources/assets/spectrum/blockstates/white_log.json index 375d634bed..65080cd002 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_log.json +++ b/src/main/resources/assets/spectrum/blockstates/white_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/white_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/white_log" - }, - "axis=z": { - "model": "spectrum:block/white_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/white_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/white_log" + }, + "axis=z": { + "model": "spectrum:block/white_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_plank_button.json b/src/main/resources/assets/spectrum/blockstates/white_plank_button.json deleted file mode 100644 index 71984b0dd7..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/white_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/white_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/white_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/white_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/white_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/white_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/white_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/white_plank_fence.json deleted file mode 100644 index e3400f6070..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/white_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/white_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/white_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/white_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/white_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/white_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/white_plank_fence_gate.json deleted file mode 100644 index 04d3146999..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/white_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/white_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/white_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/white_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/white_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/white_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/white_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/white_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/white_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/white_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/white_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/white_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/white_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/white_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/white_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/white_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/white_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/white_plank_pressure_plate.json deleted file mode 100644 index 185077ebbb..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/white_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/white_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/white_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/white_plank_slab.json deleted file mode 100644 index b8886092cf..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/white_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/white_plank_slab" - }, - "type=double": { - "model": "spectrum:block/white_planks" - }, - "type=top": { - "model": "spectrum:block/white_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/white_plank_stairs.json deleted file mode 100644 index 268504ecbc..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/white_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/white_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/white_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/white_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/white_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_planks.json b/src/main/resources/assets/spectrum/blockstates/white_planks.json index deb6a41c56..53a6950b75 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/white_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/white_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/white_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/white_pressure_plate.json new file mode 100644 index 0000000000..05eabb77ae --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/white_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/white_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/white_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_sapling.json b/src/main/resources/assets/spectrum/blockstates/white_sapling.json index eeac3caffd..3edfd0983c 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/white_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/white_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/white_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_slab.json b/src/main/resources/assets/spectrum/blockstates/white_slab.json new file mode 100644 index 0000000000..ba8933d8b6 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/white_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/white_slab" + }, + "type=double": { + "model": "spectrum:block/white_planks" + }, + "type=top": { + "model": "spectrum:block/white_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_body.json b/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_body.json index 2d26e63105..869ea74153 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_body.json +++ b/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_body.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/white_spirit_sallow_vines_body_none" - }, - "yield=normal": { - "model": "spectrum:block/white_spirit_sallow_vines_body_normal" - }, - "yield=lucid": { - "model": "spectrum:block/white_spirit_sallow_vines_body_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/white_spirit_sallow_vines_body_none" + }, + "yield=normal": { + "model": "spectrum:block/white_spirit_sallow_vines_body_normal" + }, + "yield=lucid": { + "model": "spectrum:block/white_spirit_sallow_vines_body_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_head.json b/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_head.json index eabc5de386..ce5754f4ef 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_head.json +++ b/src/main/resources/assets/spectrum/blockstates/white_spirit_sallow_vines_head.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/white_spirit_sallow_vines_head_none" - }, - "yield=normal": { - "model": "spectrum:block/white_spirit_sallow_vines_head_normal" - }, - "yield=lucid": { - "model": "spectrum:block/white_spirit_sallow_vines_head_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/white_spirit_sallow_vines_head_none" + }, + "yield=normal": { + "model": "spectrum:block/white_spirit_sallow_vines_head_normal" + }, + "yield=lucid": { + "model": "spectrum:block/white_spirit_sallow_vines_head_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/white_spore_blossom.json index 61549216c4..e2fd79d56d 100644 --- a/src/main/resources/assets/spectrum/blockstates/white_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/white_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/white_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/white_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/white_stairs.json b/src/main/resources/assets/spectrum/blockstates/white_stairs.json new file mode 100644 index 0000000000..08115bf7a0 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/white_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/white_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/white_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/white_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/white_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/white_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/white_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/white_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/white_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/white_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/white_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/witch_head.json b/src/main/resources/assets/spectrum/blockstates/witch_head.json index a4598d5e0e..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/witch_head.json +++ b/src/main/resources/assets/spectrum/blockstates/witch_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/witch" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/witch_mob_block.json b/src/main/resources/assets/spectrum/blockstates/witch_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/witch_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/witch_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/witch_wall_head.json b/src/main/resources/assets/spectrum/blockstates/witch_wall_head.json index a4598d5e0e..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/witch_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/witch_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/witch" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wither_head.json b/src/main/resources/assets/spectrum/blockstates/wither_head.json index d20fb80a87..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/wither_head.json +++ b/src/main/resources/assets/spectrum/blockstates/wither_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wither" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wither_mob_block.json b/src/main/resources/assets/spectrum/blockstates/wither_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/wither_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/wither_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wither_skeleton_mob_block.json b/src/main/resources/assets/spectrum/blockstates/wither_skeleton_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/wither_skeleton_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/wither_skeleton_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wither_wall_head.json b/src/main/resources/assets/spectrum/blockstates/wither_wall_head.json index d20fb80a87..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/wither_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/wither_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wither" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wolf_head.json b/src/main/resources/assets/spectrum/blockstates/wolf_head.json index 622848d283..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/wolf_head.json +++ b/src/main/resources/assets/spectrum/blockstates/wolf_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wolf" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/wolf_wall_head.json b/src/main/resources/assets/spectrum/blockstates/wolf_wall_head.json index 622848d283..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/wolf_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/wolf_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/wolf" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_block.json b/src/main/resources/assets/spectrum/blockstates/yellow_block.json index ac324239d7..8528de9eb0 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_block.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_block.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/yellow_block" - } - } + "variants": { + "": { + "model": "spectrum:block/yellow_block" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_button.json b/src/main/resources/assets/spectrum/blockstates/yellow_button.json new file mode 100644 index 0000000000..16cf429acd --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/yellow_button.json @@ -0,0 +1,118 @@ +{ + "variants": { + "face=ceiling,facing=east,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=east,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 270, + "x": 180 + }, + "face=ceiling,facing=north,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=north,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 180, + "x": 180 + }, + "face=ceiling,facing=south,powered=false": { + "model": "spectrum:block/yellow_button", + "x": 180 + }, + "face=ceiling,facing=south,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "x": 180 + }, + "face=ceiling,facing=west,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 90, + "x": 180 + }, + "face=ceiling,facing=west,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 90, + "x": 180 + }, + "face=floor,facing=east,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 90 + }, + "face=floor,facing=east,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 90 + }, + "face=floor,facing=north,powered=false": { + "model": "spectrum:block/yellow_button" + }, + "face=floor,facing=north,powered=true": { + "model": "spectrum:block/yellow_button_pressed" + }, + "face=floor,facing=south,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 180 + }, + "face=floor,facing=south,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 180 + }, + "face=floor,facing=west,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 270 + }, + "face=floor,facing=west,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 270 + }, + "face=wall,facing=east,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=east,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 90, + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=false": { + "model": "spectrum:block/yellow_button", + "x": 90, + "uvlock": true + }, + "face=wall,facing=north,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=south,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 180, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=false": { + "model": "spectrum:block/yellow_button", + "y": 270, + "x": 90, + "uvlock": true + }, + "face=wall,facing=west,powered=true": { + "model": "spectrum:block/yellow_button_pressed", + "y": 270, + "x": 90, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_fence.json b/src/main/resources/assets/spectrum/blockstates/yellow_fence.json new file mode 100644 index 0000000000..110b1e89fb --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/yellow_fence.json @@ -0,0 +1,48 @@ +{ + "multipart": [ + { + "apply": { + "model": "spectrum:block/yellow_fence_post" + } + }, + { + "when": { + "north": "true" + }, + "apply": { + "model": "spectrum:block/yellow_fence_side", + "uvlock": true + } + }, + { + "when": { + "east": "true" + }, + "apply": { + "model": "spectrum:block/yellow_fence_side", + "y": 90, + "uvlock": true + } + }, + { + "when": { + "south": "true" + }, + "apply": { + "model": "spectrum:block/yellow_fence_side", + "y": 180, + "uvlock": true + } + }, + { + "when": { + "west": "true" + }, + "apply": { + "model": "spectrum:block/yellow_fence_side", + "y": 270, + "uvlock": true + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/yellow_fence_gate.json new file mode 100644 index 0000000000..110dca313a --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/yellow_fence_gate.json @@ -0,0 +1,80 @@ +{ + "variants": { + "facing=east,in_wall=false,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/yellow_fence_gate" + }, + "facing=east,in_wall=false,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/yellow_fence_gate_open" + }, + "facing=east,in_wall=true,open=false": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/yellow_fence_gate_wall" + }, + "facing=east,in_wall=true,open=true": { + "uvlock": true, + "y": 270, + "model": "spectrum:block/yellow_fence_gate_wall_open" + }, + "facing=north,in_wall=false,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/yellow_fence_gate" + }, + "facing=north,in_wall=false,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/yellow_fence_gate_open" + }, + "facing=north,in_wall=true,open=false": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/yellow_fence_gate_wall" + }, + "facing=north,in_wall=true,open=true": { + "uvlock": true, + "y": 180, + "model": "spectrum:block/yellow_fence_gate_wall_open" + }, + "facing=south,in_wall=false,open=false": { + "uvlock": true, + "model": "spectrum:block/yellow_fence_gate" + }, + "facing=south,in_wall=false,open=true": { + "uvlock": true, + "model": "spectrum:block/yellow_fence_gate_open" + }, + "facing=south,in_wall=true,open=false": { + "uvlock": true, + "model": "spectrum:block/yellow_fence_gate_wall" + }, + "facing=south,in_wall=true,open=true": { + "uvlock": true, + "model": "spectrum:block/yellow_fence_gate_wall_open" + }, + "facing=west,in_wall=false,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/yellow_fence_gate" + }, + "facing=west,in_wall=false,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/yellow_fence_gate_open" + }, + "facing=west,in_wall=true,open=false": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/yellow_fence_gate_wall" + }, + "facing=west,in_wall=true,open=true": { + "uvlock": true, + "y": 90, + "model": "spectrum:block/yellow_fence_gate_wall_open" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_glowblock.json b/src/main/resources/assets/spectrum/blockstates/yellow_glowblock.json index b5dc8587ee..b22a48bf49 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_glowblock.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_glowblock.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/yellow_glowblock" - } - } + "variants": { + "": { + "model": "spectrum:block/yellow_glowblock" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_lamp.json b/src/main/resources/assets/spectrum/blockstates/yellow_lamp.json index 0bc3dacabd..3ddba4a043 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_lamp.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_lamp.json @@ -1,10 +1,10 @@ { - "variants": { - "lit=false": { - "model": "spectrum:block/yellow_lamp" - }, - "lit=true": { - "model": "spectrum:block/yellow_lamp_on" - } - } + "variants": { + "lit=false": { + "model": "spectrum:block/yellow_lamp" + }, + "lit=true": { + "model": "spectrum:block/yellow_lamp_on" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_leaves.json b/src/main/resources/assets/spectrum/blockstates/yellow_leaves.json index ddfc1096f4..6d14c5f3f9 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_leaves.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_leaves.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/yellow_leaves" - } - } + "variants": { + "": { + "model": "spectrum:block/yellow_leaves" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_log.json b/src/main/resources/assets/spectrum/blockstates/yellow_log.json index 926804aaa7..1802a3e2d6 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_log.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_log.json @@ -1,16 +1,16 @@ { - "variants": { - "axis=x": { - "model": "spectrum:block/yellow_log_horizontal", - "x": 90, - "y": 90 - }, - "axis=y": { - "model": "spectrum:block/yellow_log" - }, - "axis=z": { - "model": "spectrum:block/yellow_log_horizontal", - "x": 90 - } - } + "variants": { + "axis=x": { + "model": "spectrum:block/yellow_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "spectrum:block/yellow_log" + }, + "axis=z": { + "model": "spectrum:block/yellow_log_horizontal", + "x": 90 + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_plank_button.json b/src/main/resources/assets/spectrum/blockstates/yellow_plank_button.json deleted file mode 100644 index 7ebe595928..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/yellow_plank_button.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "variants": { - "face=ceiling,facing=east,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=east,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 270, - "x": 180 - }, - "face=ceiling,facing=north,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=north,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 180, - "x": 180 - }, - "face=ceiling,facing=south,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "x": 180 - }, - "face=ceiling,facing=south,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "x": 180 - }, - "face=ceiling,facing=west,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 90, - "x": 180 - }, - "face=ceiling,facing=west,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 90, - "x": 180 - }, - "face=floor,facing=east,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 90 - }, - "face=floor,facing=east,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 90 - }, - "face=floor,facing=north,powered=false": { - "model": "spectrum:block/yellow_plank_button" - }, - "face=floor,facing=north,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed" - }, - "face=floor,facing=south,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 180 - }, - "face=floor,facing=south,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 180 - }, - "face=floor,facing=west,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 270 - }, - "face=floor,facing=west,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 270 - }, - "face=wall,facing=east,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=east,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 90, - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "x": 90, - "uvlock": true - }, - "face=wall,facing=north,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=south,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 180, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=false": { - "model": "spectrum:block/yellow_plank_button", - "y": 270, - "x": 90, - "uvlock": true - }, - "face=wall,facing=west,powered=true": { - "model": "spectrum:block/yellow_plank_button_pressed", - "y": 270, - "x": 90, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_plank_fence.json b/src/main/resources/assets/spectrum/blockstates/yellow_plank_fence.json deleted file mode 100644 index 6545bd16fe..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/yellow_plank_fence.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "multipart": [ - { - "apply": { - "model": "spectrum:block/yellow_plank_fence_post" - } - }, - { - "when": { - "north": "true" - }, - "apply": { - "model": "spectrum:block/yellow_plank_fence_side", - "uvlock": true - } - }, - { - "when": { - "east": "true" - }, - "apply": { - "model": "spectrum:block/yellow_plank_fence_side", - "y": 90, - "uvlock": true - } - }, - { - "when": { - "south": "true" - }, - "apply": { - "model": "spectrum:block/yellow_plank_fence_side", - "y": 180, - "uvlock": true - } - }, - { - "when": { - "west": "true" - }, - "apply": { - "model": "spectrum:block/yellow_plank_fence_side", - "y": 270, - "uvlock": true - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_plank_fence_gate.json b/src/main/resources/assets/spectrum/blockstates/yellow_plank_fence_gate.json deleted file mode 100644 index 137da7d367..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/yellow_plank_fence_gate.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=east,in_wall=false,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/yellow_plank_fence_gate" - }, - "facing=east,in_wall=false,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/yellow_plank_fence_gate_open" - }, - "facing=east,in_wall=true,open=false": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/yellow_plank_fence_gate_wall" - }, - "facing=east,in_wall=true,open=true": { - "uvlock": true, - "y": 270, - "model": "spectrum:block/yellow_plank_fence_gate_wall_open" - }, - "facing=north,in_wall=false,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/yellow_plank_fence_gate" - }, - "facing=north,in_wall=false,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/yellow_plank_fence_gate_open" - }, - "facing=north,in_wall=true,open=false": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/yellow_plank_fence_gate_wall" - }, - "facing=north,in_wall=true,open=true": { - "uvlock": true, - "y": 180, - "model": "spectrum:block/yellow_plank_fence_gate_wall_open" - }, - "facing=south,in_wall=false,open=false": { - "uvlock": true, - "model": "spectrum:block/yellow_plank_fence_gate" - }, - "facing=south,in_wall=false,open=true": { - "uvlock": true, - "model": "spectrum:block/yellow_plank_fence_gate_open" - }, - "facing=south,in_wall=true,open=false": { - "uvlock": true, - "model": "spectrum:block/yellow_plank_fence_gate_wall" - }, - "facing=south,in_wall=true,open=true": { - "uvlock": true, - "model": "spectrum:block/yellow_plank_fence_gate_wall_open" - }, - "facing=west,in_wall=false,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/yellow_plank_fence_gate" - }, - "facing=west,in_wall=false,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/yellow_plank_fence_gate_open" - }, - "facing=west,in_wall=true,open=false": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/yellow_plank_fence_gate_wall" - }, - "facing=west,in_wall=true,open=true": { - "uvlock": true, - "y": 90, - "model": "spectrum:block/yellow_plank_fence_gate_wall_open" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_plank_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/yellow_plank_pressure_plate.json deleted file mode 100644 index 6d63ba59b6..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/yellow_plank_pressure_plate.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "variants": { - "powered=false": { - "model": "spectrum:block/yellow_plank_pressure_plate" - }, - "powered=true": { - "model": "spectrum:block/yellow_plank_pressure_plate_down" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_plank_slab.json b/src/main/resources/assets/spectrum/blockstates/yellow_plank_slab.json deleted file mode 100644 index 76ba3298a7..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/yellow_plank_slab.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "variants": { - "type=bottom": { - "model": "spectrum:block/yellow_plank_slab" - }, - "type=double": { - "model": "spectrum:block/yellow_planks" - }, - "type=top": { - "model": "spectrum:block/yellow_plank_slab_top" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_plank_stairs.json b/src/main/resources/assets/spectrum/blockstates/yellow_plank_stairs.json deleted file mode 100644 index 08b7f98378..0000000000 --- a/src/main/resources/assets/spectrum/blockstates/yellow_plank_stairs.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "variants": { - "facing=east,half=bottom,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner" - }, - "facing=east,half=bottom,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=east,half=bottom,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer" - }, - "facing=east,half=bottom,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs" - }, - "facing=east,half=top,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=east,half=top,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=east,half=top,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "x": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=north,half=bottom,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "y": 270, - "uvlock": true - }, - "facing=north,half=bottom,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=north,half=top,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "uvlock": true - }, - "facing=north,half=top,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=south,half=bottom,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner" - }, - "facing=south,half=bottom,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer" - }, - "facing=south,half=bottom,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=south,half=bottom,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=south,half=top,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=south,half=top,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "x": 180, - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "y": 90, - "uvlock": true - }, - "facing=west,half=bottom,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "y": 180, - "uvlock": true - }, - "facing=west,half=bottom,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_left": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=inner_right": { - "model": "spectrum:block/yellow_plank_stairs_inner", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=outer_left": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "y": 180, - "uvlock": true - }, - "facing=west,half=top,shape=outer_right": { - "model": "spectrum:block/yellow_plank_stairs_outer", - "x": 180, - "y": 270, - "uvlock": true - }, - "facing=west,half=top,shape=straight": { - "model": "spectrum:block/yellow_plank_stairs", - "x": 180, - "y": 180, - "uvlock": true - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_planks.json b/src/main/resources/assets/spectrum/blockstates/yellow_planks.json index 6c96d401ed..7a51d32766 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_planks.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_planks.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/yellow_planks" - } - } + "variants": { + "": { + "model": "spectrum:block/yellow_planks" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_pressure_plate.json b/src/main/resources/assets/spectrum/blockstates/yellow_pressure_plate.json new file mode 100644 index 0000000000..5488c41071 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/yellow_pressure_plate.json @@ -0,0 +1,10 @@ +{ + "variants": { + "powered=false": { + "model": "spectrum:block/yellow_pressure_plate" + }, + "powered=true": { + "model": "spectrum:block/yellow_pressure_plate_down" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_sapling.json b/src/main/resources/assets/spectrum/blockstates/yellow_sapling.json index feba3400e3..1ca2f69f1a 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_sapling.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_sapling.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/yellow_sapling" - } - } + "variants": { + "": { + "model": "spectrum:block/yellow_sapling" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_slab.json b/src/main/resources/assets/spectrum/blockstates/yellow_slab.json new file mode 100644 index 0000000000..3f88161b75 --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/yellow_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "spectrum:block/yellow_slab" + }, + "type=double": { + "model": "spectrum:block/yellow_planks" + }, + "type=top": { + "model": "spectrum:block/yellow_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_body.json b/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_body.json index 614ab55279..4b58c78a4b 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_body.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_body.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/yellow_spirit_sallow_vines_body_none" - }, - "yield=normal": { - "model": "spectrum:block/yellow_spirit_sallow_vines_body_normal" - }, - "yield=lucid": { - "model": "spectrum:block/yellow_spirit_sallow_vines_body_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/yellow_spirit_sallow_vines_body_none" + }, + "yield=normal": { + "model": "spectrum:block/yellow_spirit_sallow_vines_body_normal" + }, + "yield=lucid": { + "model": "spectrum:block/yellow_spirit_sallow_vines_body_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_head.json b/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_head.json index 5b24bf8d8a..fd27ba8fb8 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_head.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_spirit_sallow_vines_head.json @@ -1,13 +1,13 @@ { - "variants": { - "yield=none": { - "model": "spectrum:block/yellow_spirit_sallow_vines_head_none" - }, - "yield=normal": { - "model": "spectrum:block/yellow_spirit_sallow_vines_head_normal" - }, - "yield=lucid": { - "model": "spectrum:block/yellow_spirit_sallow_vines_head_lucid" - } - } + "variants": { + "yield=none": { + "model": "spectrum:block/yellow_spirit_sallow_vines_head_none" + }, + "yield=normal": { + "model": "spectrum:block/yellow_spirit_sallow_vines_head_normal" + }, + "yield=lucid": { + "model": "spectrum:block/yellow_spirit_sallow_vines_head_lucid" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_spore_blossom.json b/src/main/resources/assets/spectrum/blockstates/yellow_spore_blossom.json index 5a6da113ae..f25731398e 100644 --- a/src/main/resources/assets/spectrum/blockstates/yellow_spore_blossom.json +++ b/src/main/resources/assets/spectrum/blockstates/yellow_spore_blossom.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/yellow_spore_blossom" - } - } + "variants": { + "": { + "model": "spectrum:block/yellow_spore_blossom" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/yellow_stairs.json b/src/main/resources/assets/spectrum/blockstates/yellow_stairs.json new file mode 100644 index 0000000000..df70d80f8f --- /dev/null +++ b/src/main/resources/assets/spectrum/blockstates/yellow_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "spectrum:block/yellow_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=east,half=top,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=east,half=top,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "x": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "y": 270, + "uvlock": true + }, + "facing=north,half=bottom,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=north,half=top,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "uvlock": true + }, + "facing=north,half=top,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=south,half=bottom,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=south,half=top,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=south,half=top,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "x": 180, + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "y": 90, + "uvlock": true + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "y": 180, + "uvlock": true + }, + "facing=west,half=bottom,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_left": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=inner_right": { + "model": "spectrum:block/yellow_stairs_inner", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=outer_left": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "y": 180, + "uvlock": true + }, + "facing=west,half=top,shape=outer_right": { + "model": "spectrum:block/yellow_stairs_outer", + "x": 180, + "y": 270, + "uvlock": true + }, + "facing=west,half=top,shape=straight": { + "model": "spectrum:block/yellow_stairs", + "x": 180, + "y": 180, + "uvlock": true + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zoglin_head.json b/src/main/resources/assets/spectrum/blockstates/zoglin_head.json index f5d7ce2f2b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/zoglin_head.json +++ b/src/main/resources/assets/spectrum/blockstates/zoglin_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/zoglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zoglin_wall_head.json b/src/main/resources/assets/spectrum/blockstates/zoglin_wall_head.json index f5d7ce2f2b..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/zoglin_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/zoglin_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/zoglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zombie_mob_block.json b/src/main/resources/assets/spectrum/blockstates/zombie_mob_block.json index d763adacff..40c5d00ae9 100644 --- a/src/main/resources/assets/spectrum/blockstates/zombie_mob_block.json +++ b/src/main/resources/assets/spectrum/blockstates/zombie_mob_block.json @@ -1,10 +1,10 @@ { - "variants": { - "cooldown=false": { - "model": "spectrum:block/mob_block" - }, - "cooldown=true": { - "model": "spectrum:block/mob_block_cooldown" - } - } + "variants": { + "cooldown=false": { + "model": "spectrum:block/mob_block" + }, + "cooldown=true": { + "model": "spectrum:block/mob_block_cooldown" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zombie_villager_head.json b/src/main/resources/assets/spectrum/blockstates/zombie_villager_head.json index 1235a33382..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/zombie_villager_head.json +++ b/src/main/resources/assets/spectrum/blockstates/zombie_villager_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/zombie_villager" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zombie_villager_wall_head.json b/src/main/resources/assets/spectrum/blockstates/zombie_villager_wall_head.json index 1235a33382..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/zombie_villager_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/zombie_villager_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/zombie_villager" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zombified_piglin_head.json b/src/main/resources/assets/spectrum/blockstates/zombified_piglin_head.json index 40a62bf73d..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/zombified_piglin_head.json +++ b/src/main/resources/assets/spectrum/blockstates/zombified_piglin_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/zombified_piglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/blockstates/zombified_piglin_wall_head.json b/src/main/resources/assets/spectrum/blockstates/zombified_piglin_wall_head.json index 40a62bf73d..cfd9cb5d65 100644 --- a/src/main/resources/assets/spectrum/blockstates/zombified_piglin_wall_head.json +++ b/src/main/resources/assets/spectrum/blockstates/zombified_piglin_wall_head.json @@ -1,7 +1,7 @@ { - "variants": { - "": { - "model": "spectrum:block/zombified_piglin" - } - } + "variants": { + "": { + "model": "spectrum:block/mob_head" + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/lang/de_de.json b/src/main/resources/assets/spectrum/lang/de_de.json index d4ed6dcaae..3f60b3a598 100644 --- a/src/main/resources/assets/spectrum/lang/de_de.json +++ b/src/main/resources/assets/spectrum/lang/de_de.json @@ -31,7 +31,7 @@ "recipeGroup.spectrum.colored_lamps": "Gefärbte Lampen", "recipeGroup.spectrum.gemstone_glass": "Edelsteinglas", "recipeGroup.spectrum.colored_saplings": "Farbige Setzlinge", - "recipeGroup.spectrum.sparklestone_lights": "Funkelnde Lichter", + "recipeGroup.spectrum.shimmerstone_lights": "Funkelnde Lichter", "recipeGroup.spectrum.colored_spore_blossoms": "Farbige Sporenblüten", "recipeGroup.spectrum.glowblocks": "Glüh-Blöcke", "recipeGroup.spectrum.player_only_glass": "Halbdurchlässiges Glas", @@ -75,8 +75,8 @@ "spectrum.recipe.fusion_shrine.explanation.onyx_shard": "Nur bei Neumond um Mitternacht", "spectrum.recipe.fusion_shrine.explanation.decay_away": "Benötigt klaren Himmel", "spectrum.recipe.fusion_shrine.explanation.ominous_sapling": "Benötigt Tageslicht", - "spectrum.recipe.fusion_shrine.explanation.scarlet_gem": "Benötigt Gewitter", - "spectrum.recipe.fusion_shrine.explanation.paletur_gem": "Benötigt Gewitter", + "spectrum.recipe.fusion_shrine.explanation.stratine_gem": "Benötigt Gewitter", + "spectrum.recipe.fusion_shrine.explanation.paltaeria_gem": "Benötigt Gewitter", "spectrum.recipe.fusion_shrine.explanation.spectral_shard": "Die perfekte Verbindung", "spectrum.tooltip.dragon_and_wither_immune": "§7Ender Drachen und Wither geschützt", @@ -127,16 +127,15 @@ "spectrum.subtitles.ender_splice_binds": "Ender Splice bindet sich", "spectrum.subtitles.use_fail": "Verwendung gescheitert", "spectrum.subtitles.natures_staff_use": "Harmonische Melodien spielen", - "spectrum.subtitles.block.sucking_chest.open": "Schwarzloch-Kiste öffnet sich", - "spectrum.subtitles.block.sucking_chest.close": "Schwarzloch-Kiste schließt sich", - "spectrum.subtitles.light_staff_charging": "Lichtstab lädt auf", - "spectrum.subtitles.light_staff_place": "Lichtstab bereit", - "spectrum.subtitles.light_staff_break": "Licht kaputt", + "spectrum.subtitles.block.black_hole_chest.open": "Schwarzloch-Kiste öffnet sich", + "spectrum.subtitles.block.black_hole_chest.close": "Schwarzloch-Kiste schließt sich", + "spectrum.subtitles.radiance_staff_charging": "Lichtstab lädt auf", + "spectrum.subtitles.radiance_staff_place": "Lichtstab bereit", + "spectrum.subtitles.radiance_staff_break": "Licht kaputt", "spectrum.subtitles.fusion_shrine_ambient": "Fusions-Schrein summt", "spectrum.subtitles.fusion_shrine_crafting_finished": "Rumpelnder, tief gestimmter Knall", "spectrum.subtitles.fusion_shrine_crafting_aborted": "Gegenstand fallenlassen", - "spectrum.subtitles.exchange_staff.select": "Wechselstab klimpert", - + "spectrum.subtitles.exchanging_staff.select": "Wechselstab klimpert", "spectrum.toast.revelation.title": "Du hast Wissen über die Welt erlangt", "spectrum.toast.revelation.text": "Neue Dinge offenbaren sich dir", "spectrum.toast.pedestal_recipe_unlocked.title": "Neues Sockel-Rezept:", @@ -228,9 +227,9 @@ "block.spectrum.sacred_soil": "Heiliger Boden", "block.spectrum.wand_light": "Spectrum Licht", "block.spectrum.bedrock_storage_block": "Bedrock Block", - "block.spectrum.sparklestone_ore": "Glitzerstein Erz", - "block.spectrum.deepslate_sparklestone_ore": " Tiefenschiefer Glitzerstein Erz", - "block.spectrum.sparklestone_block": "Glitzerstein Block", + "block.spectrum.shimmerstone_ore": "Glitzerstein Erz", + "block.spectrum.deepslate_shimmerstone_ore": " Tiefenschiefer Glitzerstein Erz", + "block.spectrum.shimmerstone_block": "Glitzerstein Block", "block.spectrum.azurite_ore": "Azurit Erz", "block.spectrum.deepslate_azurite_ore": "Tiefenschiefer Azurit Erz", "block.spectrum.azurite_block": "Azurit Block", @@ -245,19 +244,19 @@ "block.spectrum.ethereal_platform": "Ätherische Plattform", "block.spectrum.ender_glass": "Ender Glas", "block.spectrum.redstone_sand": "Rotstein Sand", - "block.spectrum.stuck_lightning_stone": "Blitzgestein", + "block.spectrum.stuck_storm_stone": "Sturmgestein", "block.spectrum.ender_dropper": "Ender Spender", "block.spectrum.ender_dropper_with_owner": "Ender Spender von %s", "block.spectrum.ender_hopper": "Ender Trichter", "block.spectrum.ender_hopper_with_owner": "Ender Trichter von %s", "block.spectrum.compacting_chest": "Verdichtungs-Truhe", "block.spectrum.restocking_chest": "Fabrikations-Truhe", - "block.spectrum.sucking_chest": "Schwarzloch-Truhe", + "block.spectrum.black_hole_chest": "Schwarzloch-Truhe", "block.spectrum.private_chest": "Herzensbindung-Truhe", "block.spectrum.private_chest.title_with_owner": "Herzensbindung-Truhe von %s", "block.spectrum.ominous_sapling": "Ominöser Setzling", "block.spectrum.bedrock_anvil": "Bedrock Amboss", - "block.spectrum.ender_treasure": "Strahlendes Ender", + "block.spectrum.radiating_ender": "Strahlendes Ender", "block.spectrum.blazing_crystal": "Flammender Kristall", "block.spectrum.frostbite_crystal": "Erfrierungs-Kristall", "block.spectrum.resonant_lily": "Resonanzlilie", @@ -300,13 +299,13 @@ "block.spectrum.white_spirit_sallow_vines_body": "Weiße Seelenweiden-Lianen", "block.spectrum.black_spirit_sallow_vines_body": "Schwarze Seelenweiden-Lianen", - "block.spectrum.basalt_sparklestone_light": "Basalt Glitzerstein-Licht", - "block.spectrum.calcite_sparklestone_light": "Calcit Glitzerstein-Licht", - "block.spectrum.stone_sparklestone_light": "Stein Glitzerstein-Licht", - "block.spectrum.granite_sparklestone_light": "Granit Glitzerstein-Licht", - "block.spectrum.diorite_sparklestone_light": "Diorit Glitzerstein-Licht", - "block.spectrum.andesite_sparklestone_light": "Andesit Glitzerstein-Licht", - "block.spectrum.deepslate_sparklestone_light": "Tiefenschiefer Glitzerstein-Licht", + "block.spectrum.basalt_shimmerstone_light": "Basalt Glitzerstein-Licht", + "block.spectrum.calcite_shimmerstone_light": "Calcit Glitzerstein-Licht", + "block.spectrum.stone_shimmerstone_light": "Stein Glitzerstein-Licht", + "block.spectrum.granite_shimmerstone_light": "Granit Glitzerstein-Licht", + "block.spectrum.diorite_shimmerstone_light": "Diorit Glitzerstein-Licht", + "block.spectrum.andesite_shimmerstone_light": "Andesit Glitzerstein-Licht", + "block.spectrum.deepslate_shimmerstone_light": "Tiefenschiefer Glitzerstein-Licht", "block.spectrum.amethyst_storage_block": "Polierter Amethyst", "block.spectrum.citrine_storage_block": "Polierter Citrin", @@ -433,132 +432,132 @@ "block.spectrum.yellow_lamp": "Gelbe Lampe", "block.spectrum.black_planks": "Schwarze Planken", - "block.spectrum.black_plank_button": "Schwarze Plank Button", - "block.spectrum.black_plank_fence": "Schwarze Plank Fence", - "block.spectrum.black_plank_pressure_plate": "Schwarze Plank Pressure Plate", - "block.spectrum.black_plank_stairs": "Schwarze Plank Treppen", - "block.spectrum.black_plank_slab": "Schwarze Plank Stufe", - "block.spectrum.black_plank_fence_gate": "Schwarze Plank Fence Gate", + "block.spectrum.black_button": "Schwarze Plank Button", + "block.spectrum.black_fence": "Schwarze Plank Fence", + "block.spectrum.black_pressure_plate": "Schwarze Plank Pressure Plate", + "block.spectrum.black_stairs": "Schwarze Plank Treppen", + "block.spectrum.black_slab": "Schwarze Plank Stufe", + "block.spectrum.black_fence_gate": "Schwarze Plank Fence Gate", "block.spectrum.blue_planks": "Blaue Planken", - "block.spectrum.blue_plank_button": "Blaue Plank Button", - "block.spectrum.blue_plank_fence": "Blaue Plank Fence", - "block.spectrum.blue_plank_pressure_plate": "Blaue Plank Pressure Plate", - "block.spectrum.blue_plank_stairs": "Blaue Plank Treppen", - "block.spectrum.blue_plank_slab": "Blaue Plank Stufe", - "block.spectrum.blue_plank_fence_gate": "Blaue Plank Fence Gate", + "block.spectrum.blue_button": "Blaue Plank Button", + "block.spectrum.blue_fence": "Blaue Plank Fence", + "block.spectrum.blue_pressure_plate": "Blaue Plank Pressure Plate", + "block.spectrum.blue_stairs": "Blaue Plank Treppen", + "block.spectrum.blue_slab": "Blaue Plank Stufe", + "block.spectrum.blue_fence_gate": "Blaue Plank Fence Gate", "block.spectrum.brown_planks": "Braune Planken", - "block.spectrum.brown_plank_button": "Braune Plank Button", - "block.spectrum.brown_plank_fence": "Braune Plank Fence", - "block.spectrum.brown_plank_pressure_plate": "Braune Plank Pressure Plate", - "block.spectrum.brown_plank_stairs": "Braune Plank Treppen", - "block.spectrum.brown_plank_slab": "Braune Plank Stufe", - "block.spectrum.brown_plank_fence_gate": "Braune Plank Fence Gate", + "block.spectrum.brown_button": "Braune Plank Button", + "block.spectrum.brown_fence": "Braune Plank Fence", + "block.spectrum.brown_pressure_plate": "Braune Plank Pressure Plate", + "block.spectrum.brown_stairs": "Braune Plank Treppen", + "block.spectrum.brown_slab": "Braune Plank Stufe", + "block.spectrum.brown_fence_gate": "Braune Plank Fence Gate", "block.spectrum.cyan_planks": "Türkise Planken", - "block.spectrum.cyan_plank_button": "Türkise Plank Button", - "block.spectrum.cyan_plank_fence": "Türkise Plank Fence", - "block.spectrum.cyan_plank_pressure_plate": "Türkise Plank Pressure Plate", - "block.spectrum.cyan_plank_stairs": "Türkise Plank Treppen", - "block.spectrum.cyan_plank_slab": "Türkise Plank Stufe", - "block.spectrum.cyan_plank_fence_gate": "Türkise Plank Fence Gate", + "block.spectrum.cyan_button": "Türkise Plank Button", + "block.spectrum.cyan_fence": "Türkise Plank Fence", + "block.spectrum.cyan_pressure_plate": "Türkise Plank Pressure Plate", + "block.spectrum.cyan_stairs": "Türkise Plank Treppen", + "block.spectrum.cyan_slab": "Türkise Plank Stufe", + "block.spectrum.cyan_fence_gate": "Türkise Plank Fence Gate", "block.spectrum.gray_planks": "Graue Planken", - "block.spectrum.gray_plank_button": "Graue Plank Button", - "block.spectrum.gray_plank_fence": "Graue Plank Fence", - "block.spectrum.gray_plank_pressure_plate": "Graue Plank Pressure Plate", - "block.spectrum.gray_plank_stairs": "Graue Plank Treppen", - "block.spectrum.gray_plank_slab": "Graue Plank Stufe", - "block.spectrum.gray_plank_fence_gate": "Graue Plank Fence Gate", + "block.spectrum.gray_button": "Graue Plank Button", + "block.spectrum.gray_fence": "Graue Plank Fence", + "block.spectrum.gray_pressure_plate": "Graue Plank Pressure Plate", + "block.spectrum.gray_stairs": "Graue Plank Treppen", + "block.spectrum.gray_slab": "Graue Plank Stufe", + "block.spectrum.gray_fence_gate": "Graue Plank Fence Gate", "block.spectrum.green_planks": "Grüne Planken", - "block.spectrum.green_plank_button": "Grüne Plank Button", - "block.spectrum.green_plank_fence": "Grüne Plank Fence", - "block.spectrum.green_plank_pressure_plate": "Grüne Plank Pressure Plate", - "block.spectrum.green_plank_stairs": "Grüne Plank Treppen", - "block.spectrum.green_plank_slab": "Grüne Plank Stufe", - "block.spectrum.green_plank_fence_gate": "Grüne Plank Fence Gate", + "block.spectrum.green_button": "Grüne Plank Button", + "block.spectrum.green_fence": "Grüne Plank Fence", + "block.spectrum.green_pressure_plate": "Grüne Plank Pressure Plate", + "block.spectrum.green_stairs": "Grüne Plank Treppen", + "block.spectrum.green_slab": "Grüne Plank Stufe", + "block.spectrum.green_fence_gate": "Grüne Plank Fence Gate", "block.spectrum.light_blue_planks": "Hellblaue Planken", - "block.spectrum.light_blue_plank_button": "Hellblaue Plank Button", - "block.spectrum.light_blue_plank_fence": "Hellblaue Plank Fence", - "block.spectrum.light_blue_plank_pressure_plate": "Hellblaue Plank Pressure Plate", - "block.spectrum.light_blue_plank_stairs": "Hellblaue Plank Treppen", - "block.spectrum.light_blue_plank_slab": "Hellblaue Plank Stufe", - "block.spectrum.light_blue_plank_fence_gate": "Hellblaue Plank Fence Gate", + "block.spectrum.light_blue_button": "Hellblaue Plank Button", + "block.spectrum.light_blue_fence": "Hellblaue Plank Fence", + "block.spectrum.light_blue_pressure_plate": "Hellblaue Plank Pressure Plate", + "block.spectrum.light_blue_stairs": "Hellblaue Plank Treppen", + "block.spectrum.light_blue_slab": "Hellblaue Plank Stufe", + "block.spectrum.light_blue_fence_gate": "Hellblaue Plank Fence Gate", "block.spectrum.light_gray_planks": "Hellgraue Planken", - "block.spectrum.light_gray_plank_button": "Hellgraue Plank Button", - "block.spectrum.light_gray_plank_fence": "Hellgraue Plank Fence", - "block.spectrum.light_gray_plank_pressure_plate": "Hellgraue Plank Pressure Plate", - "block.spectrum.light_gray_plank_stairs": "Hellgraue Plank Treppen", - "block.spectrum.light_gray_plank_slab": "Hellgraue Plank Stufe", - "block.spectrum.light_gray_plank_fence_gate": "Hellgraue Plank Fence Gate", + "block.spectrum.light_gray_button": "Hellgraue Plank Button", + "block.spectrum.light_gray_fence": "Hellgraue Plank Fence", + "block.spectrum.light_gray_pressure_plate": "Hellgraue Plank Pressure Plate", + "block.spectrum.light_gray_stairs": "Hellgraue Plank Treppen", + "block.spectrum.light_gray_slab": "Hellgraue Plank Stufe", + "block.spectrum.light_gray_fence_gate": "Hellgraue Plank Fence Gate", "block.spectrum.lime_planks": "Türkise Planken", - "block.spectrum.lime_plank_button": "Türkiser Plank Button", - "block.spectrum.lime_plank_fence": "Türkise Plank Fence", - "block.spectrum.lime_plank_pressure_plate": "Türkise Plank Pressure Plate", - "block.spectrum.lime_plank_stairs": "Türkise Plank Treppen", - "block.spectrum.lime_plank_slab": "Türkise Plank Stufe", - "block.spectrum.lime_plank_fence_gate": "Türkise Plank Fence Gate", + "block.spectrum.lime_button": "Türkiser Plank Button", + "block.spectrum.lime_fence": "Türkise Plank Fence", + "block.spectrum.lime_pressure_plate": "Türkise Plank Pressure Plate", + "block.spectrum.lime_stairs": "Türkise Plank Treppen", + "block.spectrum.lime_slab": "Türkise Plank Stufe", + "block.spectrum.lime_fence_gate": "Türkise Plank Fence Gate", "block.spectrum.magenta_planks": "Magenta Planken", - "block.spectrum.magenta_plank_button": "Magenta Plank Button", - "block.spectrum.magenta_plank_fence": "Magenta Plank Fence", - "block.spectrum.magenta_plank_pressure_plate": "Magenta Plank Pressure Plate", - "block.spectrum.magenta_plank_stairs": "Magenta Plank Treppen", - "block.spectrum.magenta_plank_slab": "Magenta Plank Stufe", - "block.spectrum.magenta_plank_fence_gate": "Magenta Plank Fence Gate", + "block.spectrum.magenta_button": "Magenta Plank Button", + "block.spectrum.magenta_fence": "Magenta Plank Fence", + "block.spectrum.magenta_pressure_plate": "Magenta Plank Pressure Plate", + "block.spectrum.magenta_stairs": "Magenta Plank Treppen", + "block.spectrum.magenta_slab": "Magenta Plank Stufe", + "block.spectrum.magenta_fence_gate": "Magenta Plank Fence Gate", "block.spectrum.orange_planks": "Orangene Planken", - "block.spectrum.orange_plank_button": "Orangene Plank Button", - "block.spectrum.orange_plank_fence": "Orangene Plank Fence", - "block.spectrum.orange_plank_pressure_plate": "Orangene Plank Pressure Plate", - "block.spectrum.orange_plank_stairs": "Orangene Plank Treppen", - "block.spectrum.orange_plank_slab": "Orangene Plank Stufe", - "block.spectrum.orange_plank_fence_gate": "Orangene Plank Fence Gate", + "block.spectrum.orange_button": "Orangene Plank Button", + "block.spectrum.orange_fence": "Orangene Plank Fence", + "block.spectrum.orange_pressure_plate": "Orangene Plank Pressure Plate", + "block.spectrum.orange_stairs": "Orangene Plank Treppen", + "block.spectrum.orange_slab": "Orangene Plank Stufe", + "block.spectrum.orange_fence_gate": "Orangene Plank Fence Gate", "block.spectrum.pink_planks": "Pinke Planken", - "block.spectrum.pink_plank_button": "Pinke Plank Button", - "block.spectrum.pink_plank_fence": "Pinke Plank Fence", - "block.spectrum.pink_plank_pressure_plate": "Pinke Plank Pressure Plate", - "block.spectrum.pink_plank_stairs": "Pinke Plank Treppen", - "block.spectrum.pink_plank_slab": "Pinke Plank Stufe", - "block.spectrum.pink_plank_fence_gate": "Pinke Plank Fence Gate", + "block.spectrum.pink_button": "Pinke Plank Button", + "block.spectrum.pink_fence": "Pinke Plank Fence", + "block.spectrum.pink_pressure_plate": "Pinke Plank Pressure Plate", + "block.spectrum.pink_stairs": "Pinke Plank Treppen", + "block.spectrum.pink_slab": "Pinke Plank Stufe", + "block.spectrum.pink_fence_gate": "Pinke Plank Fence Gate", "block.spectrum.purple_planks": "Lila Planken", - "block.spectrum.purple_plank_button": "Lila Plank Button", - "block.spectrum.purple_plank_fence": "Lila Plank Fence", - "block.spectrum.purple_plank_pressure_plate": "Lila Plank Pressure Plate", - "block.spectrum.purple_plank_stairs": "Lila Plank Treppen", - "block.spectrum.purple_plank_slab": "Lila Plank Stufe", - "block.spectrum.purple_plank_fence_gate": "Lila Plank Fence Gate", + "block.spectrum.purple_button": "Lila Plank Button", + "block.spectrum.purple_fence": "Lila Plank Fence", + "block.spectrum.purple_pressure_plate": "Lila Plank Pressure Plate", + "block.spectrum.purple_stairs": "Lila Plank Treppen", + "block.spectrum.purple_slab": "Lila Plank Stufe", + "block.spectrum.purple_fence_gate": "Lila Plank Fence Gate", "block.spectrum.red_planks": "Rote Planken", - "block.spectrum.red_plank_button": "Rote Plank Button", - "block.spectrum.red_plank_fence": "Rote Plank Fence", - "block.spectrum.red_plank_pressure_plate": "Rote Plank Pressure Plate", - "block.spectrum.red_plank_stairs": "Rote Plank Treppen", - "block.spectrum.red_plank_slab": "Rote Plank Stufe", - "block.spectrum.red_plank_fence_gate": "Rote Plank Fence Gate", + "block.spectrum.red_button": "Rote Plank Button", + "block.spectrum.red_fence": "Rote Plank Fence", + "block.spectrum.red_pressure_plate": "Rote Plank Pressure Plate", + "block.spectrum.red_stairs": "Rote Plank Treppen", + "block.spectrum.red_slab": "Rote Plank Stufe", + "block.spectrum.red_fence_gate": "Rote Plank Fence Gate", "block.spectrum.white_planks": "Weiße Planken", - "block.spectrum.white_plank_button": "Weiße Plank Button", - "block.spectrum.white_plank_fence": "Weiße Plank Fence", - "block.spectrum.white_plank_pressure_plate": "Weiße Plank Pressure Plate", - "block.spectrum.white_plank_stairs": "Weiße Plank Treppen", - "block.spectrum.white_plank_slab": "Weiße Plank Stufe", - "block.spectrum.white_plank_fence_gate": "Weiße Plank Fence Gate", + "block.spectrum.white_button": "Weiße Plank Button", + "block.spectrum.white_fence": "Weiße Plank Fence", + "block.spectrum.white_pressure_plate": "Weiße Plank Pressure Plate", + "block.spectrum.white_stairs": "Weiße Plank Treppen", + "block.spectrum.white_slab": "Weiße Plank Stufe", + "block.spectrum.white_fence_gate": "Weiße Plank Fence Gate", "block.spectrum.yellow_planks": "Gelbe Planken", - "block.spectrum.yellow_plank_button": "Gelbe Plank Button", - "block.spectrum.yellow_plank_fence": "Gelbe Plank Fence", - "block.spectrum.yellow_plank_pressure_plate": "Gelbe Plank Pressure Plate", - "block.spectrum.yellow_plank_stairs": "Gelbe Plank Treppen", - "block.spectrum.yellow_plank_slab": "Gelbe Plank Stufe", - "block.spectrum.yellow_plank_fence_gate": "Gelbe Plank Fence Gate", + "block.spectrum.yellow_button": "Gelbe Plank Button", + "block.spectrum.yellow_fence": "Gelbe Plank Fence", + "block.spectrum.yellow_pressure_plate": "Gelbe Plank Pressure Plate", + "block.spectrum.yellow_stairs": "Gelbe Plank Treppen", + "block.spectrum.yellow_slab": "Gelbe Plank Stufe", + "block.spectrum.yellow_fence_gate": "Gelbe Plank Fence Gate", "item.spectrum.mud_bucket": "Eimer voll Schlamm", "block.spectrum.mud": "Schlamm", @@ -568,10 +567,10 @@ "block.spectrum.liquid_crystal": "Flüssigkristall", "block.spectrum.flowing_liquid_crystal": "Flüssigkristall", - "block.spectrum.paletur_ore": "Paltaeria Erz", - "block.spectrum.paletur_fragment_block": "Paltaeria Schwebeblock", - "block.spectrum.scarlet_ore": "Scharlach Erz", - "block.spectrum.scarlet_fragment_block": "Scharlach Schwebeblock", + "block.spectrum.paltaeria_ore": "Paltaeria Erz", + "block.spectrum.paltaeria_fragment_block": "Paltaeria Schwebeblock", + "block.spectrum.stratine_ore": "Scharlach Erz", + "block.spectrum.stratine_fragment_block": "Scharlach Schwebeblock", "block.spectrum.glistering_melon": "Glänzende Melone", "block.spectrum.glistering_melon_stem": "Glänzender Melonenstiel", @@ -660,15 +659,15 @@ "block.spectrum.moonstone_glass": "Mondstein Glas", "block.spectrum.glowing_glass": "Strahlenglas", - "block.spectrum.tinted_player_only_glass": "Halbdurchlässiges gefärbt Glas", - "block.spectrum.glowing_player_only_glass": "Halbdurchlässiges Strahlenglas", + "block.spectrum.tinted_semi_permeable_glass": "Halbdurchlässiges gefärbt Glas", + "block.spectrum.glowing_semi_permeable_glass": "Halbdurchlässiges Strahlenglas", - "block.spectrum.vanilla_player_only_glass": "Halbdurchlässiges Glas", - "block.spectrum.amethyst_player_only_glass": "Halbdurchlässiges Amethyst Glas", - "block.spectrum.topaz_player_only_glass": "Halbdurchlässiges Topas Glas", - "block.spectrum.citrine_player_only_glass": "Halbdurchlässiges Citrin Glas", - "block.spectrum.onyx_player_only_glass": "Halbdurchlässiges Onyx Glas", - "block.spectrum.moonstone_player_only_glass": "Halbdurchlässiges Mondstein Glas", + "block.spectrum.vanilla_semi_permeable_glass": "Halbdurchlässiges Glas", + "block.spectrum.amethyst_semi_permeable_glass": "Halbdurchlässiges Amethyst Glas", + "block.spectrum.topaz_semi_permeable_glass": "Halbdurchlässiges Topas Glas", + "block.spectrum.citrine_semi_permeable_glass": "Halbdurchlässiges Citrin Glas", + "block.spectrum.onyx_semi_permeable_glass": "Halbdurchlässiges Onyx Glas", + "block.spectrum.moonstone_semi_permeable_glass": "Halbdurchlässiges Mondstein Glas", "block.spectrum.amethyst_calcite_lamp": "Amethyst Calcit Lampe", "block.spectrum.topaz_calcite_lamp": "Topas Calcit Lampe", @@ -797,41 +796,40 @@ "block.spectrum.zombie_villager_head": "Zombie Dorfbewohner Kopf", "block.spectrum.zombified_piglin_head": "Zombifizierter Piglin Kopf", - "item.spectrum.exchange_staff": "Wechselstab", - "item.spectrum.exchange_staff.tooltip.range": "Tauscht bis zu %s Blöcke", - "item.spectrum.exchange_staff.tooltip.crouch": "Schleichen um nur aufgedeckte Blöcke zu tauschen", - "item.spectrum.exchange_staff.tooltip.target": "Austausch für %s", - "item.spectrum.placement_staff": "Bau-Stab", - "item.spectrum.placement_staff.tooltip.range": "Erweitert eine Struktur um bis zu %s Blöcke", - "item.spectrum.placement_staff.tooltip.crouch": "Schleichen um andere Quell-Blöcke zu inkludieren", - "item.spectrum.placement_staff.tooltip.none_in_inventory": "nicht im Inventar", - "item.spectrum.light_staff": "Strahlungs-Stab", - "item.spectrum.light_staff.tooltip": "§7Nutzt §eGlitzerstein Edelsteins§7 um Licht zu plazieren", - "item.spectrum.light_staff.tooltip2": "§7Rechtsklick auf das Licht um ändern des Licht-Level", + "item.spectrum.exchanging_staff": "Wechselstab", + "item.spectrum.exchanging_staff.tooltip.range": "Tauscht bis zu %s Blöcke", + "item.spectrum.exchanging_staff.tooltip.crouch": "Schleichen um nur aufgedeckte Blöcke zu tauschen", + "item.spectrum.exchanging_staff.tooltip.target": "Austausch für %s", + "item.spectrum.constructors_staff": "Bau-Stab", + "item.spectrum.constructors_staff.tooltip.range": "Erweitert eine Struktur um bis zu %s Blöcke", + "item.spectrum.constructors_staff.tooltip.crouch": "Schleichen um andere Quell-Blöcke zu inkludieren", + "item.spectrum.constructors_staff.tooltip.none_in_inventory": "nicht im Inventar", + "item.spectrum.radiance_staff": "Strahlungs-Stab", + "item.spectrum.radiance_staff.tooltip": "§7Nutzt §eGlitzerstein Edelsteins§7 um Licht zu plazieren", + "item.spectrum.radiance_staff.tooltip2": "§7Rechtsklick auf das Licht um ändern des Licht-Level", "item.spectrum.music_disc_spectrum_theme": "Music Disc", "item.spectrum.music_disc_spectrum_theme.desc": "Spectrum Theme", - "item.spectrum.invisible_item_frame": "Phantom Rahmen", - "item.spectrum.invisible_glow_item_frame": "Leuchtender Phantom Rahmen", - "item.spectrum.ender_bag": "Bag of Holding", - "item.spectrum.void_bundle": "Bodenloses Bündel", - "item.spectrum.void_bundle.tooltip.empty": "Leer", - "item.spectrum.void_bundle.tooltip.count": "%d / %d (%d stacks)", - "item.spectrum.void_bundle.tooltip.enter_inventory": "%s die du aufgehoben hast werden hier verstaut", + "item.spectrum.phantom_frame": "Phantom Rahmen", + "item.spectrum.glow_phantom_frame": "Leuchtender Phantom Rahmen", + "item.spectrum.bag_of_holding": "Bag of Holding", + "item.spectrum.bottomless_bundle": "Bodenloses Bündel", + "item.spectrum.bottomless_bundle.tooltip.empty": "Leer", + "item.spectrum.bottomless_bundle.tooltip.count": "%d / %d (%d stacks)", + "item.spectrum.bottomless_bundle.tooltip.enter_inventory": "%s die du aufgehoben hast werden hier verstaut", "item.spectrum.raw_azurite": "Raw Azurite", - "item.spectrum.sparklestone_gem": "Glitzerstein Edelstein", + "item.spectrum.shimmerstone_gem": "Glitzerstein Edelstein", "item.spectrum.refined_azurite": "Raffinierter Azurit", "item.spectrum.quitoxic_powder": "Quitoxisches Pulver", "item.spectrum.mermaids_gem": "Meerjungfrauen Edelstein", - "item.spectrum.end_portal_cracker": "End Portal Cracker", - "item.spectrum.manual": "Farbenfrohe Welt", + "item.spectrum.guidebook": "Farbenfrohe Welt", "item.spectrum.multitool": "Multitool", - "item.spectrum.silker_pickaxe": "Tender Spitzhacke", - "item.spectrum.fortune_pickaxe": "Lucky Spitzhacke", - "item.spectrum.looting_falchion": "Razor Falchion", - "item.spectrum.voiding_pickaxe": "Oblivion Spitzhacke", + "item.spectrum.tender_pickaxe": "Tender Spitzhacke", + "item.spectrum.lucky_pickaxe": "Lucky Spitzhacke", + "item.spectrum.razor_falchion": "Razor Falchion", + "item.spectrum.oblivion_pickaxe": "Oblivion Spitzhacke", "item.spectrum.resonant_pickaxe": "Resonant Spitzhacke", - "item.spectrum.glow_vision_helmet": "Glow Vision Goggles", - "item.spectrum.glow_vision_helmet.tooltip": "§7Powered by §bGlow Ink Sacs", + "item.spectrum.glow_vision_goggles": "Glow Vision Goggles", + "item.spectrum.glow_vision_goggles.tooltip": "§7Powered by §bGlow Ink Sacs", "item.spectrum.ender_splice": "Ender Splice", "item.spectrum.ender_splice.tooltip.unbound": "§7Use to bind to your current position", "item.spectrum.ender_splice.tooltip.bound_pos": "§7Bound to %d %d %d §7in %s§7. Use to teleport", @@ -844,11 +842,11 @@ "item.spectrum.pedestal_tier_3_structure_placer": "Spectrum Palast Struktur Plazierer", "item.spectrum.fusion_shrine_structure_placer": "Fusions-Schrein Struktur Plazierer", "item.spectrum.enchanter_structure_placer": "Verzauberer Struktur Plazierer", - "item.spectrum.lightning_stone": "Blitzgestein", - "item.spectrum.scarlet_fragments": "Scharlach Fragmente", - "item.spectrum.scarlet_gem": "Scharlach Edelstein", - "item.spectrum.paletur_fragments": "Paletur Fragments", - "item.spectrum.paletur_gem": "Paltaeria Edelstein", + "item.spectrum.storm_stone": "Sturmstein", + "item.spectrum.stratine_fragments": "Scharlach Fragmente", + "item.spectrum.stratine_gem": "Scharlach Edelstein", + "item.spectrum.paltaeria_fragments": "Paltaeria Fragments", + "item.spectrum.paltaeria_gem": "Paltaeria Edelstein", "item.spectrum.glistering_melon_seeds": "Glänzende Melonensamen", "item.spectrum.knowledge_gem": "Wissensstein", @@ -856,14 +854,14 @@ "item.spectrum.knowledge_gem.tooltip.use": "Benutze zum entleeren, oder schleichen zum Speichern von Erfahrung", "item.spectrum.default_enchantment_tooltip": "Ist bereits verzaubert mit %s", - "item.spectrum.emergency_helmet": "Fetchling Helm", - "item.spectrum.emergency_chestplate": "Grausamer Brustharnisch", - "item.spectrum.emergency_leggings": "Sylph Hosen", - "item.spectrum.emergency_boots": "Oread Schuhe", - "item.spectrum.emergency_helmet.tooltip": "Gibt einem Angreifer Schwäche & Verlangsamung", - "item.spectrum.emergency_chestplate.tooltip": "Gewährt Absorption & sofortige Gesundheit bei Treffer", - "item.spectrum.emergency_leggings.tooltip": "Gewährt Geschwindigkeit & Unsichtbarkeit bei Treffer", - "item.spectrum.emergency_boots.tooltip": "Gewährt Widerstand & Regeneration bei Treffer", + "item.spectrum.fetchling_helmet": "Fetchling Helm", + "item.spectrum.ferocious_chestplate": "Grausamer Brustharnisch", + "item.spectrum.sylph_leggings": "Sylph Hosen", + "item.spectrum.oread_boots": "Oread Schuhe", + "item.spectrum.fetchling_helmet.tooltip": "Gibt einem Angreifer Schwäche & Verlangsamung", + "item.spectrum.ferocious_chestplate.tooltip": "Gewährt Absorption & sofortige Gesundheit bei Treffer", + "item.spectrum.sylph_leggings.tooltip": "Gewährt Geschwindigkeit & Unsichtbarkeit bei Treffer", + "item.spectrum.oread_boots.tooltip": "Gewährt Widerstand & Regeneration bei Treffer", "item.spectrum.vibrant_cyan_catkin": "Lebhaftes Türkise Catkin", "item.spectrum.vibrant_magenta_catkin": "Lebhaftes Magenta Catkin", diff --git a/src/main/resources/assets/spectrum/lang/en_us.json b/src/main/resources/assets/spectrum/lang/en_us.json index f786b8ab6f..f3d63b3a33 100644 --- a/src/main/resources/assets/spectrum/lang/en_us.json +++ b/src/main/resources/assets/spectrum/lang/en_us.json @@ -9,7 +9,6 @@ "itemGroup.spectrum.blocks.tab.colored_wood": "Colored Wood", "itemGroup.spectrum.blocks.tab.mob_heads": "Idols & Mob Heads", "itemGroup.spectrum.blocks.tab.predefined_items": "Predefined Items", - "itemGroup.spectrum.general.button.discord": "Join Spectrums Discord", "itemGroup.spectrum.general.button.github": "Spectrum on Github", "itemGroup.spectrum.general.button.curseforge": "Spectrum on CurseForge", @@ -34,7 +33,7 @@ "recipeGroup.spectrum.decostones": "Deco Stones", "recipeGroup.spectrum.gemstone_chimes": "Gemstone Chimes", "recipeGroup.spectrum.colored_saplings": "Colored Saplings", - "recipeGroup.spectrum.sparklestone_lights": "Shimmerstone Lights", + "recipeGroup.spectrum.shimmerstone_lights": "Shimmerstone Lights", "recipeGroup.spectrum.colored_spore_blossoms": "Colored Spore Blossoms", "recipeGroup.spectrum.glowblocks": "Glowblocks", "recipeGroup.spectrum.player_only_glass": "Semi-Permeable Glass", @@ -42,7 +41,7 @@ "recipeGroup.spectrum.bedrock_armor": "Bedrock Armor", "recipeGroup.spectrum.fusion_shrines": "Fusion Shrine", "recipeGroup.spectrum.item_bowls": "Item Bowl", - "recipeGroup.spectrum.enchanter_exchange_staff": "Exchange Staff", + "recipeGroup.spectrum.enchanter_exchanging_staff": "Exchange Staff", "recipeGroup.spectrum.vanilla": "Vanilla Enchantments", "recipeGroup.spectrum.pastel_network": "Pastel Network", "recipeGroup.spectrum.vanilla_potions": "Vanilla Potions", @@ -50,16 +49,27 @@ "recipeGroup.spectrum.horse_armor": "Horse Armor", "recipeGroup.spectrum.memories": "Memories", "recipeGroup.spectrum.boss_memories": "Boss Memories", - "recipeGroup.spectrum.restoration_tea": "Restoration Tea", "recipeGroup.spectrum.mob_blocks": "Idols", "recipeGroup.spectrum.spawner_manipulation": "Spawner Manipulation", "recipeGroup.spectrum.infused_beverages": "Infused Beverages", - + "recipeGroup.spectrum.extraalchemy_potions": "Extra Alchemy Potions", + "recipeGroup.spectrum.crystallarieum_growable_crushing": "Crystallarieum Buds", + "recipeGroup.spectrum.gemstone_crushing": "Gemstone Shards & Buds", + "recipeGroup.spectrum.bismuth_crushing": "Bismuth", + "recipeGroup.spectrum.restoration_tea": "Restoration Tea", + "recipeGroup.spectrum.glistering_jelly_tea": "Glistering Jelly Tea", + "recipeGroup.spectrum.demon_tea": "Demon Tea", + "recipeGroup.spectrum.noxwood_decorations": "Noxwood Decorations", + "recipeGroup.spectrum.noxwood_amphoras": "Noxwood Amphoras", + "recipeGroup.spectrum.noxwood_lamps": "Noxwood Lamps", + "recipeGroup.spectrum.noxwood_lanterns": "Noxwood Lanterns", + "recipeGroup.spectrum.noxwood_lights": "Noxwood Lights", "recipeGroup.spectrum.botania_mushrooms": "Colored Mushrooms", "recipeGroup.spectrum.botania_glimmering_flowers": "Glimmering Flowers", "recipeGroup.spectrum.chalk_chalk": "Unbreakable Chalk", "recipeGroup.spectrum.chalk_glow_chalk": "Unbr. Glow Chalk", - + "recipeGroup.spectrum.block_cracking": "Block Cracking", + "recipeGroup.spectrum.glass_arrows": "Glass Arrows", "effect.spectrum.immunity": "Immunity", "effect.spectrum.another_roll": "Another Roll", "effect.spectrum.scarred": "Scarred", @@ -74,25 +84,18 @@ "effect.spectrum.projectile_rebound": "Projectile Rebound", "effect.spectrum.lightweight": "Lightweight", "effect.spectrum.vulnerability": "Vulnerability", - - "__legacy: remove in 1.19": "", - "item.spectrum.potion": "§2P§3i§cg§6m§be§en§dt§f Potion", - "item.spectrum.splash_potion": "Splash §2P§3i§cg§6m§be§en§dt§f Potion", - "item.spectrum.lingering_potion": "Lingering §2P§3i§cg§6m§be§en§dt§f Potion", - "item.spectrum.tipped_arrow": "§2P§3i§cg§6m§be§en§dt§f Dipped Arrow", - + "effect.spectrum.magic_annulation": "Magic Annulation", "item.minecraft.potion.effect.pigment_potion": "§2P§3i§cg§6m§be§en§dt§f Potion", "item.minecraft.splash_potion.effect.pigment_potion": "Splash §2P§3i§cg§6m§be§en§dt§f Potion", "item.minecraft.lingering_potion.effect.pigment_potion": "Lingering §2P§3i§cg§6m§be§en§dt§f Potion", "item.minecraft.tipped_arrow.effect.pigment_potion": "§2P§3i§cg§6m§be§en§dt§f Dipped Arrow", "item.spectrum.potion.tooltip.unidentifiable": "§0Blackened beyond recognition", - + "item.spectrum.potion.faster_to_drink": "Faster to drink", + "item.spectrum.potion.slower_to_drink": "Slower to drink", "spectrum.tooltip.coming_soon": "§4Not available in Survival yet", - "spectrum.gui.lexicon.reveal_hint_button.text": "Reveal Hint ", "spectrum.gui.lexicon.reveal_hint_button.tooltip.pay": "Pay a small fee to unlock a hint", "spectrum.gui.lexicon.reveal_hint_button.tooltip.lacking_resource": "You do not have this fee in your inventory", - "container.spectrum.owned_by_player": " of %s", "container.spectrum.rei.pedestal_crafting.title": "Pedestal Crafting", "container.spectrum.rei.pedestal_crafting.crafting_time_and_xp": "%f seconds - %f XP", @@ -128,23 +131,20 @@ "container.spectrum.rei.titration_barrel.time_day": "Takes 1 real-life day", "container.spectrum.rei.titration_barrel.at_least_time_hour": "At least 1 real-life hour", "container.spectrum.rei.titration_barrel.at_least_time_day": "At least 1 real-life day", - "container.spectrum.bedrock_anvil": "Repair & write Lore", "container.spectrum.bedrock_anvil.tooltip": "Indestructible. Free renaming, unlimited", "container.spectrum.bedrock_anvil.tooltip2": "repair cap & able to add Lore to Items", "container.spectrum.bedrock_anvil.lore": "Lore:", - "container.spectrum.rei.anvil_crushing.title": "Item Crushing", "container.spectrum.rei.anvil_crushing.low_force_required": "Low force required", "container.spectrum.rei.anvil_crushing.medium_force_required": "Medium force required", "container.spectrum.rei.anvil_crushing.high_force_required": "High force required", "container.spectrum.rei.anvil_crushing.plus_xp": "+%f XP", - "container.spectrum.rei.potion_workshop_brewing.title": "Potion Workshop Brewing", "container.spectrum.rei.potion_workshop_crafting.title": "Potion Workshop Crafting", "container.spectrum.rei.potion_workshop.crafting_time": "%f seconds", - "container.spectrum.rei.potion_workshop_reacting.title": "Potion Reagents", + "spectrum.rei.potion_workshop_reacting.minecraft.dragon_breath": "Creates Lingering Potions - also requires Gunpowder as reagent. Allows you to create Tipped Arrows, if you supply Arrows instead of Bottles", "spectrum.rei.potion_workshop_reacting.minecraft.glowstone_dust": "Flat increase in Potency", "spectrum.rei.potion_workshop_reacting.minecraft.gunpowder": "Creates Splash Potions", @@ -153,28 +153,30 @@ "spectrum.rei.potion_workshop_reacting.spectrum.bedrock_dust": "Doubles the Potions Potency, at the cost of Duration", "spectrum.rei.potion_workshop_reacting.spectrum.citrine_powder": "Slight multiplicative Potency bonus", "spectrum.rei.potion_workshop_reacting.spectrum.four_leaf_clover": "Provides a huge boost to a random stat", - "spectrum.rei.potion_workshop_reacting.spectrum.lightning_stone": "Increases the Potions Potency at the beginning, but wearing off fast over time", + "spectrum.rei.potion_workshop_reacting.spectrum.storm_stone": "Increases the Potions Potency at the beginning, but wearing off fast over time", "spectrum.rei.potion_workshop_reacting.spectrum.midnight_chip": "Increases Potency and adds 30 seconds to the Duration, but drastically lowers Yield", "spectrum.rei.potion_workshop_reacting.spectrum.moonstone_powder": "Changes all otherwise negative Effects to their positive ones", "spectrum.rei.potion_workshop_reacting.spectrum.moonstruck_nectar": "Makes the Potion much more smooth, resulting in it being way faster to drink.", "spectrum.rei.potion_workshop_reacting.spectrum.neolith": "Increases Yield, allowing you to brew an additional potion", "spectrum.rei.potion_workshop_reacting.spectrum.onyx_powder": "Adds a very weird taste and smell to the potion, making it unidentifiable.$(br)Also makes its color completely black.", - "spectrum.rei.potion_workshop_reacting.spectrum.paletur_fragments": "Adds a random positive Effect", + "spectrum.rei.potion_workshop_reacting.spectrum.paltaeria_fragments": "Adds a random positive Effect", "spectrum.rei.potion_workshop_reacting.spectrum.quitoxic_powder": "Greatly increases Potency of all negative Effects", "spectrum.rei.potion_workshop_reacting.spectrum.raw_azurite": "Negates the duration penalty for Lingering Potions as well as for Tipped Arrows", - "spectrum.rei.potion_workshop_reacting.spectrum.scarlet_fragments": "Big flat bonus to Potency, at the cost of adding a random negative Effect", - "spectrum.rei.potion_workshop_reacting.spectrum.shooting_star": "Guaranteed chance to add the main Effect of the Potion that was brewed previously, at slightly decreased Potency", - "spectrum.rei.potion_workshop_reacting.spectrum.sparklestone_gem": "Tiny multiplicative bonus to both Duration and Potency", + "spectrum.rei.potion_workshop_reacting.spectrum.stratine_fragments": "Big flat bonus to Potency, at the cost of adding a random negative Effect", + "spectrum.rei.potion_workshop_reacting.spectrum.star_fragment": "Guaranteed chance to add the main Effect of the Potion that was brewed previously, at slightly decreased Potency", + "spectrum.rei.potion_workshop_reacting.spectrum.shimmerstone_gem": "Tiny multiplicative bonus to both Duration and Potency", "spectrum.rei.potion_workshop_reacting.spectrum.stardust": "Small chance to add the main Effect of the Potion that was brewed previously", "spectrum.rei.potion_workshop_reacting.spectrum.topaz_powder": "Makes Effects not show any particles", "spectrum.rei.potion_workshop_reacting.spectrum.vegetal": "Doubles the potions Duration at the cost of Potency", - + "spectrum.rei.potion_workshop_reacting.spectrum.bismuth_crystal": "Flat Potency bonus for all positive Effects and colors the potion in a random color", + "spectrum.rei.potion_workshop_reacting.spectrum.malachite_crystal": "x3 multiplicative Duration bonus, but makes the Potion much slower to drink", + "spectrum.rei.potion_workshop_reacting.spectrum.prickly_bayleaf": "Greatly reduces the potency of negative effects or removes them entirely", "spectrum.rei.potion_workshop_reacting.botania.pixie_dust": "Converts the Potions into Lingering Potions as a single reagent. This way it allows you to directly create Tipped Arrows, too!", "spectrum.rei.potion_workshop_reacting.botania.black_lotus": "Infuses the Potion with a huge amount of additional positive as well as negative, effects, but it's black color also makes it completely unidentifiable. What might you get?", "spectrum.rei.potion_workshop_reacting.botania.blacker_lotus": "Infuses the Potion with a huge amount of additional - mostly positive - effects, but it's black color also makes it completely unidentifiable. What might you get?", "spectrum.rei.potion_workshop_reacting.botania.life_essence": "Makes your Potions much more potent, but at a huge loss of duration. If the duration will get too short the potion might end up useless altogether...", "spectrum.rei.potion_workshop_reacting.botania.mana_powder": "Gives a small multiplicative boost to Duration and a tiny chance to add the last brewed effect, too", - + "spectrum.rei.potion_workshop_reacting.hexcasting.charged_amethyst": "Increases the Potion's duration by a variable amount. Sometimes more, sometimes less", "multiblock.spectrum.pedestal.upgrade_available": "Structure Upgrade available!", "multiblock.spectrum.pedestal.simple_structure": "Spectrum Focus", "multiblock.spectrum.pedestal.advanced_structure": "Spectrum Temple", @@ -183,7 +185,6 @@ "multiblock.spectrum.enchanter.structure": "Enchanter", "multiblock.spectrum.spirit_instiller.structure": "Spirit Instiller", "multiblock.spectrum.cinderhearth.structure": "Cinderhearth", - "death.attack.spectrum_decay": "%s was eaten alive", "death.attack.spectrum_ink_projectile": "%2$s taught %1$s the joy of painting", "death.attack.spectrum_ink_projectile.item": "%2$s taught %1$s the joy of painting using %3$s", @@ -193,11 +194,15 @@ "death.attack.spectrum_dike_gate": "%s was not invited, but understood too late", "death.attack.spectrum_incandescence": "%s became grossly incandescent", "death.attack.spectrum_incandescence.player": "%1$s witnessed %2&s become a star and drew too close - more kindling for the flame!", + "death.attack.moonstone_blast": "%1$s was disintegrated", + "death.attack.moonstone_blast.player": "%1$s was disintegrated by %2$s", + "death.attack.set_health.player": "%1$s was sent to the shadow realm by %2$s", + "death.attack.set_health.item": "%1$s was sent to the shadow realm by %2$s using %3$s", "entity.spectrum.block_flooder_projectile": "Block Flooder", "entity.spectrum.gravity_block": "Gravity Block", - "entity.spectrum.invisible_item_frame": "Phantom Frame", - "entity.spectrum.invisible_glow_item_frame": "Glow Phantom Frame", + "entity.spectrum.phantom_frame": "Phantom Frame", + "entity.spectrum.glow_phantom_frame": "Glow Phantom Frame", "entity.spectrum.shooting_star": "Shooting Star", "entity.spectrum.lagoon_fishing_bobber": "Lagoon Fishing Bobber", "entity.spectrum.molten_fishing_bobber": "Molten Fishing Bobber", @@ -205,12 +210,12 @@ "entity.spectrum.ink_projectile": "Ink Projectile", "entity.spectrum.living_marker": "Marker", "entity.spectrum.egg_laying_wooly_pig": "Egg Laying Wooly Pig", - + "entity.spectrum.glass_arrow": "Glass Arrow", + "entity.spectrum.mining_projectile": "Mining Projectile", + "entity.spectrum.bident": "Bident", "item.spectrum.egg_laying_wooly_pig_spawn_egg": "Egg Laying Wooly Pig Spawn Egg", - "commands.spectrum.spawn_shooting_star.success": "Spawned %d shooting stars for each player", "commands.spectrum.progression_sanity.success": "Printed the sanity checks findings to the servers console", - "spectrum.ink.color.black": "§8Black§r", "spectrum.ink.color.red": "§cRed§r", "spectrum.ink.color.green": "§2Green§r", @@ -227,7 +232,6 @@ "spectrum.ink.color.magenta": "§dMagenta§r", "spectrum.ink.color.orange": "§6Orange", "spectrum.ink.color.white": "§fWhite§r", - "spectrum.tooltip.ink_powered.prefix": "Consumes the following ink types: ", "spectrum.tooltip.ink_powered.cyan": "Consumes §bCyan Ink§r", "spectrum.tooltip.ink_powered.magenta": "Consumes §dMagenta Ink§r", @@ -245,7 +249,6 @@ "spectrum.tooltip.ink_powered.pink": "Consumes §dPink Ink§r", "spectrum.tooltip.ink_powered.purple": "Consumes §5Purple Ink§r", "spectrum.tooltip.ink_powered.red": "Consumes §cRed Ink§r", - "spectrum.tooltip.ink_powered.bullet.cyan": "§bâ—† %d §bCyan Ink§r", "spectrum.tooltip.ink_powered.bullet.magenta": "§dâ—† %d §dMagenta Ink§r", "spectrum.tooltip.ink_powered.bullet.yellow": "§eâ—† %d §eYellow Ink§r", @@ -266,7 +269,22 @@ "spectrum.tooltip.ink_powered.stored": "Stored:", "spectrum.tooltip.ink_powered.unselect_color": "Unselect Color", "spectrum.tooltip.ink_powered.percent_filled": "%d Ink (%d %%)", - + "spectrum.tooltip.ink_cost.cyan": "§7 [%s §bCyan Ink§7]", + "spectrum.tooltip.ink_cost.magenta": "§7 [%s §dMagenta Ink§7]", + "spectrum.tooltip.ink_cost.yellow": "§7 [%s §eYellow Ink§7]", + "spectrum.tooltip.ink_cost.black": "§7 [%s §8Black Ink§7]", + "spectrum.tooltip.ink_cost.white": "§7 [%s §fWhite Ink§7]", + "spectrum.tooltip.ink_cost.blue": "§7 [%s §9Blue Ink§7]", + "spectrum.tooltip.ink_cost.brown": "§7 [%s §6Brown Ink§7]", + "spectrum.tooltip.ink_cost.gray": "§7 [%s §8Gray Ink§7]", + "spectrum.tooltip.ink_cost.green": "§7 [%s §2Green Ink§7]", + "spectrum.tooltip.ink_cost.light_blue": "§7 [%s §3Light Blue Ink§7]", + "spectrum.tooltip.ink_cost.light_gray": "§7 [%s §7Light Gray Ink§7]", + "spectrum.tooltip.ink_cost.lime": "§7 [%s §aLime Ink§7]", + "spectrum.tooltip.ink_cost.orange": "§r [%s §6Orange Ink§r]", + "spectrum.tooltip.ink_cost.pink": "§r [%s §dPink Ink§r]", + "spectrum.tooltip.ink_cost.purple": "§r [%s §5Purple Ink§r]", + "spectrum.tooltip.ink_cost.red": "§r [%s §cRed Ink§r]", "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.cyan": "%d §bCyan Ink§r until next improvement", "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.magenta": "%d §dMagenta Ink§r until next improvement", "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.yellow": "%d §eYellow Ink§r until next improvement", @@ -284,24 +302,21 @@ "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.purple": "%d §5Purple Ink§r until next improvement", "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.red": "%d §cRed Ink§r until next improvement", "spectrum.tooltip.ink_drain.tooltip.maxed_out": "§fâ­Â§r MAXED OUT §fâ­Â§r", - "spectrum.recipe.fusion_shrine.explanation.onyx_shard": "Midnight on a new moon only", - "spectrum.recipe.fusion_shrine.explanation.decay_away": "Requires a clear sky", - "spectrum.recipe.fusion_shrine.explanation.ominous_sapling": "Requires daytime", - "spectrum.recipe.fusion_shrine.explanation.scarlet_gem": "Requires a thunderstorm", - "spectrum.recipe.fusion_shrine.explanation.paletur_gem": "Requires a thunderstorm", + "spectrum.recipe.fusion_shrine.explanation.decay_away": "Requires a clear sky", + "spectrum.recipe.fusion_shrine.explanation.ominous_sapling": "Requires daytime", + "spectrum.recipe.fusion_shrine.explanation.stratine_gem": "Requires a thunderstorm", + "spectrum.recipe.fusion_shrine.explanation.paltaeria_gem": "Requires a thunderstorm", "spectrum.recipe.fusion_shrine.explanation.midnight_aberration": "Daytime with sunny weather", "spectrum.recipe.fusion_shrine.explanation.spectral_shard": "The perfect Compound", - "spectrum.recipe.fusion_shrine.explanation.netherite_ingot": "risky, but yielding...", + "spectrum.recipe.fusion_shrine.explanation.netherite_ingot": "Risky, but yielding...", "spectrum.recipe.fusion_shrine.explanation.weather_clear": "Summons Sunny Weather", "spectrum.recipe.fusion_shrine.explanation.weather_rain": "Summons Rain", "spectrum.recipe.fusion_shrine.explanation.weather_thunder": "Summons a Thunderstorm", "spectrum.recipe.fusion_shrine.explanation.dreamflayer": "Midnight on a full moon", - "spectrum.recipe.fusion_shrine.explanation.shooting_star_hardening": "Protects the Star from breaking", + "spectrum.recipe.fusion_shrine.explanation.shooting_star_hardening": "Protects star from breaking", "spectrum.recipe.fusion_shrine.explanation.egg_laying_wooly_pig_head": "", - "spectrum.tooltip.dragon_and_wither_immune": "§7Ender Dragon and Wither proof", - "enchantment.spectrum.resonance": "Resonance", "enchantment.spectrum.resonance.desc": "Uses gentle vibrations to allow some blocks to drop themselves", "enchantment.spectrum.pest_control": "Pest Control", @@ -336,16 +351,20 @@ "enchantment.spectrum.indestructible.desc": "Makes the tool fully unbreakable", "enchantment.spectrum.big_catch": "Big Catch", "enchantment.spectrum.big_catch.desc": "Higher chance to reel in living creatures", - + "spectrum.subtitles.overcharging": "Overcharging", + "spectrum.subtitles.ground_slam": "Sword slamming ground", + "spectrum.subtitles.ground_slam_charge": "Ground Slam charging", "spectrum.subtitles.paintbrush_trigger": "Paintbrush activation", "spectrum.subtitles.paintbrush_paint": "Paintbrush paints", "spectrum.subtitles.ink_projectile_hit": "Ink hits block", "spectrum.subtitles.celestial_pocket_watch_ticking": "Pocketwatch ticks", "spectrum.subtitles.shooting_star_cracker": "Shooting Star cracks", + "spectrum.subtitles.squeaker": "Squeaky Fart", "spectrum.subtitles.block.memory.advance": "Memory defines further", - "spectrum.subtitles.block.mud.ambient": "Mud flows", + "spectrum.subtitles.block.mud.ambient": "Mud pops", "spectrum.subtitles.block.liquid_crystal.ambient": "Liquid Crystal chimes", - "spectrum.subtitles.block.midnight_solution.ambient": "Midnight Solution growls", + "spectrum.subtitles.block.midnight_solution.ambient": "Midnight Solution fizzles", + "spectrum.subtitles.block.dragonrot.ambient": "Dragonrot growls", "spectrum.subtitles.dimension.ambient": "Cave howls", "spectrum.subtitles.blocks.pedestal.crafting_finished": "Pedestal dings", "spectrum.subtitles.block.fading.place": "High pitched screeching", @@ -361,15 +380,15 @@ "spectrum.subtitles.ender_splice_binds": "Ender Splice binds", "spectrum.subtitles.use_fail": "Use fails", "spectrum.subtitles.natures_staff_use": "Harmonic melodies jingle", - "spectrum.subtitles.block.sucking_chest.open": "Black Hole Chest opens", - "spectrum.subtitles.block.sucking_chest.close": "Black Hole Chest closes", - "spectrum.subtitles.light_staff_charging": "Light Staff charges", - "spectrum.subtitles.light_staff_place": "Light Staff working", - "spectrum.subtitles.light_staff_break": "Light broken", + "spectrum.subtitles.block.black_hole_chest.open": "Black Hole Chest opens", + "spectrum.subtitles.block.black_hole_chest.close": "Black Hole Chest closes", + "spectrum.subtitles.radiance_staff_charging": "Light Staff charges", + "spectrum.subtitles.radiance_staff_place": "Light Staff working", + "spectrum.subtitles.radiance_staff_break": "Light broken", "spectrum.subtitles.fusion_shrine_ambient": "Fusion Shrine hums", "spectrum.subtitles.fusion_shrine_crafting_finished": "Rumbling, low tuned boom", "spectrum.subtitles.fusion_shrine_crafting_aborted": "Items dropping", - "spectrum.subtitles.exchange_staff.select": "Exchanging Staff dings", + "spectrum.subtitles.exchanging_staff.select": "Exchanging Staff dings", "spectrum.subtitles.text_revealed": "Colorful World Guidebook chimes", "spectrum.subtitles.radiance_pin_trigger": "Radiance Pin triggers", "spectrum.subtitles.air_launch_belt_charging": "Take-Off Belt charging", @@ -377,12 +396,11 @@ "spectrum.subtitles.structure_success": "Chimey tune", "spectrum.subtitles.dreamflayer_activates": "Dreamflayer activates", "spectrum.subtitles.dreamflayer_deactivates": "Dreamflayer deactivates", - + "spectrum.subtitles.deeper_down_portal_open": "Portal opens", "subtitles.block.citrine_block.chime": "Citrine chimes", "subtitles.block.topaz_block.chime": "Topaz chimes", "subtitles.block.onyx_block.chime": "Onyx chimes", "subtitles.block.moonstone_block.chime": "Moonstone chimes", - "spectrum.toast.revelation.title": "You gained knowledge about the world", "spectrum.toast.revelation.text": "New things reveal themselves to you", "spectrum.toast.anvil_crushing_recipe_unlocked.title": "New Crushing recipe:", @@ -404,7 +422,7 @@ "spectrum.toast.ink_converting_recipe_unlocked.title": "New Ink Converting recipe:", "spectrum.toast.ink_converting_recipes_unlocked.title": "New Ink Converting recipes:", "spectrum.toast.potion_workshop_reacting_recipes_unlocked.title": "New Potion Reagent:", - "spectrum.toast.potion_workshop_reacting_unlocked.title": "New Potion Reagents:", + "spectrum.toast.potion_workshop_reacting_recipe_unlocked.title": "New Potion Reagents:", "spectrum.toast.crystallarieum_recipe_unlocked.title": "New Crystallarieum recipe:", "spectrum.toast.crystallarieum_recipes_unlocked.title": "New Crystallarieum recipes:", "spectrum.toast.cinderhearth_recipe_unlocked.title": "New Cinderhearth recipe:", @@ -413,7 +431,6 @@ "spectrum.toast.titration_barrel_recipes_unlocked.title": "New Titration recipes:", "spectrum.toast.midnight_solution_converting_recipe_unlocked.title": "New Midnight Sol. recipe:", "spectrum.toast.midnight_solution_converting_recipes_unlocked.title": "New Midnight Sol. recipes:", - "spectrum.toast.message.second_advancement_tree_unlocked.title": "Chapter 2: Fall from Grace", "spectrum.toast.message.second_advancement_tree_unlocked.text": "You unlocked a new Advancement Tree", "spectrum.toast.message.third_advancement_tree_unlocked.title": "Chapter 3: Turn to Purity", @@ -430,7 +447,7 @@ "spectrum.toast.message.block_coloring_unlocked.text": "Block Coloring", "spectrum.toast.message.paint_flinging_unlocked.title": "New Paintbrush Ability:", "spectrum.toast.message.paint_flinging_unlocked.text": "Ink Slinging", - + "text.autoconfig.Spectrum.title": "Spectrum", "text.autoconfig.Spectrum.option.ToastTimeMilliseconds": "The duration in milliseconds ingame recipe/unlock popups stay on the screen", "text.autoconfig.Spectrum.option.BedrockAnvilCanExceedMaxVanillaEnchantmentLevel": "Bedrock Anvil can Exceed Enchantment Max Levels", "text.autoconfig.Spectrum.option.CitrineGeodeMinAboveBottomGenerationHeight": "Min Citrine Geode generation height (from world floor)", @@ -439,7 +456,6 @@ "text.autoconfig.Spectrum.option.TopazGeodeMaxBelowTopGenerationHeight": "Max Topaz geode generation height (from max y)", "text.autoconfig.Spectrum.option.TopazGeodeChunkChance": "Topaz Geode generation chance (chunks)", "text.autoconfig.Spectrum.option.CitrineGeodeChunkChance": "Citrine Geode generation chance (chunks)", - "text.autoconfig.Spectrum.option.MoonstoneGeodeChunkChance": "Moonstone Geode generation chance (chunks)", "text.autoconfig.Spectrum.option.EndermanHoldingEnderTreasureChance": "Chance for Endermen holding a special block", "text.autoconfig.Spectrum.option.EndermanHoldingEnderTreasureInEndChance": "Chance for Endermen holding a special block in the End", "text.autoconfig.Spectrum.option.ColoredTreePatchChanceChunk": "Try to generate Colored Trees all X chunks", @@ -454,32 +470,35 @@ "text.autoconfig.Spectrum.option.FadingDecayTickRate": "Propagation speed of Fading", "text.autoconfig.Spectrum.option.FailingDecayTickRate": "Propagation speed of Failing", "text.autoconfig.Spectrum.option.RuinDecayTickRate": "Propagation speed of Ruin", - "text.autoconfig.Spectrum.option.TerrorDecayTickRate": "Propagation speed of Terror", - + "text.autoconfig.Spectrum.option.ForfeitureDecayTickRate": "Propagation speed of Forfeiture", + "text.autoconfig.Spectrum.option.FadingCanDestroyBlockEntities": "Whether Fading can take over block entities", + "text.autoconfig.Spectrum.option.FailingCanDestroyBlockEntities": "Whether Failing can take over block entities", + "text.autoconfig.Spectrum.option.RuinCanDestroyBlockEntities": "Whether Ruin can take over block entities", + "text.autoconfig.Spectrum.option.ForfeitureCanDestroyBlockEntities": "Whether Forfeiture can take over block entities", + "text.autoconfig.Spectrum.option.CanPickUpFading": "Whether Fading can be picked up with bottles", + "text.autoconfig.Spectrum.option.CanPickUpFailing": "Whether Failing can be picked up with bottles", + "text.autoconfig.Spectrum.option.CanPickUpRuin": "Whether Ruin can be picked up with bottles", + "text.autoconfig.Spectrum.option.CanPickUpForfeiture": "Whether Forfeiture can be picked up with bottles", "text.autoconfig.Spectrum.option.GemstoneArmorHelmetProtection": "Gemstone Helmet Protection", "text.autoconfig.Spectrum.option.GemstoneArmorChestplateProtection": "Gemstone Chestplate Protection", "text.autoconfig.Spectrum.option.GemstoneArmorLeggingsProtection": "Gemstone Leggings Protection", "text.autoconfig.Spectrum.option.GemstoneArmorBootsProtection": "Gemstone Boots Protection", "text.autoconfig.Spectrum.option.GemstoneArmorToughness": "Gemstone Armor Toughness", "text.autoconfig.Spectrum.option.GemstoneArmorKnockbackResistance": "Gemstone Armor Knockback Resistance", - "text.autoconfig.Spectrum.option.GemstoneArmorWeaknessAmplifier": "Gemstone Armor Weakness Amplifier", "text.autoconfig.Spectrum.option.GemstoneArmorSlownessAmplifier": "Gemstone Armor Slowness Amplifier", "text.autoconfig.Spectrum.option.GemstoneArmorAbsorptionAmplifier": "Gemstone Armor Absorption Amplifier", "text.autoconfig.Spectrum.option.GemstoneArmorResistanceAmplifier": "Gemstone Armor Resistance Amplifier", "text.autoconfig.Spectrum.option.GemstoneArmorRegenerationAmplifier": "Gemstone Armor Regeneration Amplifier", "text.autoconfig.Spectrum.option.GemstoneArmorSpeedAmplifier": "Gemstone Armor Speed Amplifier", - "text.autoconfig.Spectrum.option.BedrockArmorHelmetProtection": "Bedrock Helmet Protection", "text.autoconfig.Spectrum.option.BedrockArmorLeggingsProtection": "Bedrock Chestplate Protection", "text.autoconfig.Spectrum.option.BedrockArmorChestplateProtection": "Bedrock Leggings Protection", "text.autoconfig.Spectrum.option.BedrockArmorBootsProtection": "Bedrock Boots Protection", "text.autoconfig.Spectrum.option.BedrockArmorToughness": "Bedrock Armor Armor Toughness", "text.autoconfig.Spectrum.option.BedrockArmorKnockbackResistance": "Bedrock Armor Knockback Resistance", - "text.autoconfig.Spectrum.option.MaxLevelForEffectsInLesserPotionPendant": "Max Level for Status Effects in Lesser Potion Pendant", "text.autoconfig.Spectrum.option.MaxLevelForEffectsInGreaterPotionPendant": "Max Level for Status Effects in Greater Potion Pendant", - "text.autoconfig.Spectrum.option.AutoSmeltEnchantmentEnabled": "Enchantment Autosmelt available", "text.autoconfig.Spectrum.option.ExuberanceEnchantmentEnabled": "Enchantment Exuberance available", "text.autoconfig.Spectrum.option.InventoryInsertionEnchantmentEnabled": "Enchantment Inventory Insertion available", @@ -496,7 +515,6 @@ "text.autoconfig.Spectrum.option.SteadfastEnchantmentEnabled": "Enchantment Steadfast available", "text.autoconfig.Spectrum.option.IndestructibleEnchantmentEnabled": "Enchantment Indestructible available", "text.autoconfig.Spectrum.option.BigCatchEnchantmentEnabled": "Enchantment Big Catch available", - "text.autoconfig.Spectrum.option.TreasureHunterMaxLevel": "Max level for Treasure Hunter enchantment", "text.autoconfig.Spectrum.option.DisarmingMaxLevel": "Max level for Disarming enchantment", "text.autoconfig.Spectrum.option.FirstStrikeMaxLevel": "Max level for First Strike enchantment", @@ -505,21 +523,23 @@ "text.autoconfig.Spectrum.option.InertiaMaxLevel": "Max level for Inertia enchantment", "text.autoconfig.Spectrum.option.RareLootMaxLevel": "Max level for Rare Loot enchantment", "text.autoconfig.Spectrum.option.TightGripMaxLevel": "Max level for Tight Grip enchantment", + "text.autoconfig.Spectrum.option.BigCatchMaxLevel": "Max level for Big Catch enchantment", "text.autoconfig.Spectrum.option.ExuberanceMaxLevel": "Max level for Exuberance Enchantment", "text.autoconfig.Spectrum.option.ExuberanceBonusExperiencePercentPerLevel": "XP bonus on kill with Exuberance enchantment", "text.autoconfig.Spectrum.option.ImprovedCriticalExtraDamageMultiplierPerLevel": "Extra damage multiplier for Improved Critical enchantment per level", + "text.autoconfig.Spectrum.option.TightGripAttackSpeedBonusPercentPerLevel": "Attack Speed Bonus % per level of Tight Grip", "text.autoconfig.Spectrum.option.FirstStrikeDamagePerLevel": "Extra damage for each level of the First Strike enchantment", "text.autoconfig.Spectrum.option.GlowVisionGogglesDuration": "Glow Vision Goggle duration in seconds per Glow Ink Sac", "text.autoconfig.Spectrum.option.DisarmingChancePerLevelMobs": "Chance to disarm Mobs on hit with a Disarming enchanted weapon per level", "text.autoconfig.Spectrum.option.DisarmingChancePerLevelPlayers": "Chance to disarm Players on hit with a Disarming enchanted weapon per level", - "text.autoconfig.Spectrum.option.BlockSoundVolume": "Sound Volume of Multiblock Structure Tunes", "text.autoconfig.Spectrum.option.REIListsRecipesAsNotUnlocked": "Show 'recipe not unlocked yet' REI screens for not unlocked recipes", "text.autoconfig.Spectrum.option.azureDikeHudOffsetX": "X Position of the Azure Dike Overlay on the players screen. Default: On top of Hearts", "text.autoconfig.Spectrum.option.azureDikeHudOffsetY": "Y Position of the Azure Dike Overlay on the players screen. Default: On top of Hearts", "text.autoconfig.Spectrum.option.azureDikeHudOffsetYWithArmor": "Y Position of the Azure Dike Overlay on the players screen when not having full air. Default: On top of Armor", "text.autoconfig.Spectrum.option.azureDikeHudOffsetYForEachRowOfExtraHearts": "Added Y position offset for each extra row of hearts", - + "text.autoconfig.Spectrum.option.DimensionReverbDecayTime": "The reverb decay time for sound effects in Spectrum's dimension", + "text.autoconfig.Spectrum.option.DimensionReverbDensity": "The reverb density for sound effects in Spectrum's dimension", "block.spectrum.upgrade_speed": "Crafting Accelerator", "block.spectrum.upgrade_speed2": "Crafting Accelerator T2", "block.spectrum.upgrade_speed3": "Crafting Accelerator T3", @@ -539,7 +559,6 @@ "item.spectrum.upgrade_experience.tooltip": "Slightly increases experience gain / decreases consumption", "item.spectrum.upgrade_experience2.tooltip": "Greatly increases experience gain / decreases consumption", "item.spectrum.upgrade.tooltip_increase": "Similar upgrades have a decreased effect", - "block.spectrum.fusion_shrine": "Fusion Shrine", "block.spectrum.fusion_shrine_basalt": "Fusion Shrine", "block.spectrum.fusion_shrine_calcite": "Fusion Shrine", @@ -552,7 +571,6 @@ "block.spectrum.crystallarieum": "Crystallarieum", "block.spectrum.cinderhearth": "Cinderhearth", "block.spectrum.stonesetting_workshop": "Stonesetting Workshop", - "block.spectrum.memory": "Memory", "item.spectrum.memory.tooltip.entity_type": "§7Remembers a §f%s", "item.spectrum.memory.tooltip.unrecognizable_entity_type": "The memory is blurred", @@ -565,7 +583,8 @@ "block.spectrum.black_materia": "Black Materia", - "block.spectrum.preservation_controller": "Preservation Controller", + "block.spectrum.downstone": "Downstone", + "block.spectrum.preservation_stone": "Preservation Stone", "block.spectrum.preservation_glass": "Preservation Glass", "block.spectrum.tinted_preservation_glass": "Tinted Preservation Glass", @@ -579,78 +598,172 @@ "block.spectrum.invisible_wall": "Invisible Wall", "block.spectrum.courier_statue": "Ancient Statue", "block.spectrum.treasure_chest": "Treasure Chest", + "block.spectrum.preservation_controller": "Preservation Controller", "block.spectrum.blackslag": "Blackslag", + "block.spectrum.infested_blackslag": "Infested Blackslag", + "block.spectrum.cobbled_blackslag": "Cobbled Blackslag", + "block.spectrum.cobbled_blackslag_stairs": "Cobbled Blackslag Stairs", + "block.spectrum.cobbled_blackslag_slab": "Cobbled Blackslag Slab", + "block.spectrum.cobbled_blackslag_wall": "Cobbled Blackslag Wall", + "block.spectrum.polished_blackslag": "Polished Blackslag", + "block.spectrum.polished_blackslag_stairs": "Polished Blackslag Stairs", + "block.spectrum.polished_blackslag_slab": "Polished Blackslag Slab", + "block.spectrum.polished_blackslag_wall": "Polished Blackslag Wall", + "block.spectrum.blackslag_tiles": "Blackslag Tiles", + "block.spectrum.blackslag_tile_stairs": "Blackslag Tile Stairs", + "block.spectrum.blackslag_tile_slab": "Blackslag Tile Slab", + "block.spectrum.blackslag_tile_wall": "Blackslag Tile Wall", + "block.spectrum.blackslag_bricks": "Blackslag Bricks", + "block.spectrum.blackslag_brick_stairs": "Blackslag Brick Stairs", + "block.spectrum.blackslag_brick_slab": "Blackslag Brick Slab", + "block.spectrum.blackslag_brick_wall": "Blackslag Brick Wall", + "block.spectrum.chiseled_polished_blackslag": "Chiseled Polished Blackslag", + "block.spectrum.ancient_chiseled_polished_blackslag": "Ancient Chiseled Blackslag", + "block.spectrum.cracked_blackslag_bricks": "Cracked Blackslag Bricks", + "block.spectrum.cracked_blackslag_tiles": "Cracked Blackslag Tiles", + "block.spectrum.polished_blackslag_button": "Polished Blackslag Button", + "block.spectrum.polished_blackslag_pressure_plate": "Polished Blackslag Pressure Plate", + "block.spectrum.polished_blackslag_pillar": "Polished Blackslag Pillar", "block.spectrum.blackslag_coal_ore": "Blackslag Coal Ore", + "block.spectrum.blackslag_copper_ore": "Blackslag Copper Ore", "block.spectrum.blackslag_iron_ore": "Blackslag Iron Ore", "block.spectrum.blackslag_gold_ore": "Blackslag Gold Ore", "block.spectrum.blackslag_diamond_ore": "Blackslag Diamond Ore", "block.spectrum.blackslag_redstone_ore": "Blackslag Redstone Ore", "block.spectrum.blackslag_lapis_ore": "Blackslag Lapis Ore", "block.spectrum.blackslag_emerald_ore": "Blackslag Emerald Ore", - "block.spectrum.blackslag_sparklestone_ore": "Blackslag Sparklestone Ore", + "block.spectrum.blackslag_shimmerstone_ore": "Blackslag Shimmerstone Ore", "block.spectrum.blackslag_malachite_ore": "Blackslag Malachite Ore", + "block.spectrum.shale_clay": "Shale Clay", + "block.spectrum.polished_shale_clay": "Polished Shale Clay", + "block.spectrum.shale_clay_bricks": "Shale Clay Bricks", + "block.spectrum.shale_clay_tiles": "Shale Clay Tiles", + "block.spectrum.shale_clay_brick_slab": "Shale Clay Brick Slab", + "block.spectrum.shale_clay_brick_stairs": "Shale Clay Brick Stairs", + "block.spectrum.polished_shale_clay_slab": "Polished Shale Clay Slab", + "block.spectrum.polished_shale_clay_stairs": "Polished Shale Clay Stairs", + "block.spectrum.shale_clay_tile_slab": "Shale Clay Tile Slab", + "block.spectrum.shale_clay_tile_stairs": "Shale Clay Tile Stairs", + "block.spectrum.exposed_polished_shale_clay": "Exposed Polished Shale Clay", + "block.spectrum.exposed_polished_shale_clay_slab": "Exposed Polished Shale Clay Slab", + "block.spectrum.exposed_polished_shale_clay_stairs": "Exposed Polished Shale Clay Stairs", + "block.spectrum.exposed_shale_clay_brick_slab": "Exposed Shale Clay Brick Slab", + "block.spectrum.exposed_shale_clay_brick_stairs": "Exposed Shale Clay Brick Stairs", + "block.spectrum.exposed_shale_clay_bricks": "Exposed Shale Clay Bricks", + "block.spectrum.exposed_shale_clay_tile_slab": "Exposed Shale Clay Tile Slab", + "block.spectrum.exposed_shale_clay_tile_stairs": "Exposed Shale Clay Tile Stairs", + "block.spectrum.exposed_shale_clay_tiles": "Exposed Shale Clay Tiles", + "block.spectrum.weathered_polished_shale_clay": "Weathered Polished Shale Clay", + "block.spectrum.weathered_polished_shale_clay_slab": "Weathered Polished Shale Clay Slab", + "block.spectrum.weathered_polished_shale_clay_stairs": "Weathered Polished Shale Clay Stairs", + "block.spectrum.weathered_shale_clay_brick_slab": "Weathered Shale Clay Brick Slab", + "block.spectrum.weathered_shale_clay_brick_stairs": "Weathered Shale Clay Brick Stairs", + "block.spectrum.weathered_shale_clay_bricks": "Weathered Shale Clay Bricks", + "block.spectrum.weathered_shale_clay_tile_slab": "Weathered Shale Clay Tile Slab", + "block.spectrum.weathered_shale_clay_tile_stairs": "Weathered Shale Clay Tile Stairs", + "block.spectrum.weathered_shale_clay_tiles": "Weathered Shale Clay Tiles", + + "block.spectrum.slush": "Slush", + "block.spectrum.dragonbone": "Dragonbone", + "block.spectrum.polished_calcite_button": "Polished Calcite Button", + "block.spectrum.polished_calcite_pressure_plate": "Polished Calcite Pressure Plate", + "block.spectrum.polished_basalt_button": "Polished Basalt Button", + "block.spectrum.polished_basalt_pressure_plate": "Polished Basalt Pressure Plate", + "block.spectrum.basalt_tiles": "Basalt Tiles", + "block.spectrum.calcite_tiles": "Calcite Tiles", + "block.spectrum.azurite_chiseled_basalt": "Azurite Chiseled Basalt", + "block.spectrum.malachite_chiseled_basalt": "Malachite Chiseled Basalt", + "block.spectrum.azurite_chiseled_calcite": "Azurite Chiseled Calcite", + "block.spectrum.malachite_chiseled_calcite": "Malachite Chiseled Calcite", + "block.spectrum.calcite_tile_stairs": "Calcite Tile Stairs", + "block.spectrum.basalt_tile_stairs": "Basalt Tile Stairs", + "block.spectrum.calcite_tile_slab": "Calcite Tile Slab", + "block.spectrum.basalt_tile_slab": "Basalt Tile Slab", + "block.spectrum.calcite_tile_wall": "Calcite Tile Wall", + "block.spectrum.basalt_tile_wall": "Basalt Tile Wall", + "block.spectrum.cracked_calcite_tiles": "Cracked Calcite Tiles", + "block.spectrum.cracked_basalt_tiles": "Cracked Basalt Tiles", + "block.spectrum.cracked_calcite_bricks": "Cracked Calcite Bricks", + "block.spectrum.cracked_basalt_bricks": "Cracked Basalt Bricks", "block.spectrum.jade_vines": "Jade Vines", + "message.spectrum.needs_item_to_harvest": "Harvesting requires a ", + "block.spectrum.jade_vine_roots": "Jade Vine Roots", + "block.spectrum.jade_vine_bulb": "Jade Vine Bulb", "block.spectrum.jade_vine_petal_block": "Jade Petal Block", "block.spectrum.jade_vine_petal_carpet": "Jade Petal Carpet", - "block.spectrum.spirit_sallow_roots": "Spirit Sallow Roots", "block.spectrum.spirit_sallow_log": "Spirit Sallow Log", "block.spectrum.spirit_sallow_leaves": "Spirit Sallow Leaves", "block.spectrum.spirit_sallow_heart": "Spirit Sallow Heart", "block.spectrum.sacred_soil": "Sacred Soil", - "block.spectrum.wand_light": "Spectrum Light", + "block.spectrum.wand_light": "Shimmerstone Light", "block.spectrum.bedrock_storage_block": "Bedrock Block", - "block.spectrum.sparklestone_ore": "Shimmerstone Ore", - "block.spectrum.deepslate_sparklestone_ore": "Deepslate Shimmerstone Ore", - "block.spectrum.sparklestone_block": "Shimmerstone Block", + "block.spectrum.shimmerstone_ore": "Shimmerstone Ore", + "block.spectrum.deepslate_shimmerstone_ore": "Deepslate Shimmerstone Ore", + "block.spectrum.shimmerstone_block": "Shimmerstone Block", "block.spectrum.azurite_ore": "Azurite Ore", "block.spectrum.deepslate_azurite_ore": "Deepslate Azurite Ore", + "block.spectrum.blackslag_azurite_ore": "Blackslag Azurite Ore", "block.spectrum.azurite_block": "Azurite Block", "block.spectrum.quitoxic_reeds": "Quitoxic Reeds", "block.spectrum.mermaids_brush": "Mermaids Brush", "block.spectrum.lava_sponge": "Lava Sponge", "block.spectrum.wet_lava_sponge": "Wet Lava Sponge", "item.spectrum.wet_lava_sponge.tooltip": "§eâš  Caution: Hot surface âš ", - "item.spectrum.amaranth_grains": "Amaranth Grains", "block.spectrum.amaranth": "Amaranth", "block.spectrum.amaranth_bushel": "Amaranth Bushel", "block.spectrum.potted_amaranth_bushel": "Potted Amaranth Bushel", - + "block.spectrum.potted_blood_orchid": "Potted Blood Orchid", + "block.spectrum.potted_white_sapling": "Potted White Sapling", + "block.spectrum.potted_orange_sapling": "Potted Orange Sapling", + "block.spectrum.potted_magenta_sapling": "Potted Magenta Sapling", + "block.spectrum.potted_light_blue_sapling": "Potted Light Blue Sapling", + "block.spectrum.potted_yellow_sapling": "Potted Yellow Sapling", + "block.spectrum.potted_lime_sapling": "Potted Lime Sapling", + "block.spectrum.potted_pink_sapling": "Potted Pink Sapling", + "block.spectrum.potted_gray_sapling": "Potted Gray Sapling", + "block.spectrum.potted_light_gray_sapling": "Potted Light Gray Sapling", + "block.spectrum.potted_cyan_sapling": "Potted Cyan Sapling", + "block.spectrum.potted_purple_sapling": "Potted Purple Sapling", + "block.spectrum.potted_blue_sapling": "Potted Blue Sapling", + "block.spectrum.potted_brown_sapling": "Potted Brown Sapling", + "block.spectrum.potted_green_sapling": "Potted Green Sapling", + "block.spectrum.potted_red_sapling": "Potted Red Sapling", + "block.spectrum.potted_black_sapling": "Potted Black Sapling", "block.spectrum.amethyst_decostone": "Amethyst Decostone", "block.spectrum.topaz_decostone": "Topaz Decostone", "block.spectrum.citrine_decostone": "Citrine Decostone", "block.spectrum.moonstone_decostone": "Moonstone Decostone", "block.spectrum.onyx_decostone": "Onyx Decostone", - "block.spectrum.amethyst_chime": "Amethyst Chime", "block.spectrum.topaz_chime": "Topaz Chime", "block.spectrum.citrine_chime": "Citrine Chime", "block.spectrum.moonstone_chime": "Moonstone Chime", "block.spectrum.onyx_chime": "Onyx Chime", - "block.spectrum.clover": "Clover", "block.spectrum.four_leaf_clover": "Four-leaved Clover", "block.spectrum.ethereal_platform": "Ethereal Platform", "block.spectrum.universe_spyhole": "Universe Spyhole", "block.spectrum.ender_glass": "Ender Glass", "block.spectrum.redstone_sand": "Redstone Sand", - "block.spectrum.stuck_lightning_stone": "Storm Stone", + "block.spectrum.stuck_storm_stone": "Storm Stone", "block.spectrum.ender_dropper": "Ender Dropper", "block.spectrum.ender_hopper": "Ender Hopper", "block.spectrum.compacting_chest": "Compacting Chest", "block.spectrum.compacting_chest.toggle_crafting_mode": "Toggle Crafting Mode", "block.spectrum.restocking_chest": "Fabrication Chest", - "block.spectrum.sucking_chest": "Black Hole Chest", + "block.spectrum.black_hole_chest": "Black Hole Chest", "block.spectrum.private_chest": "Heartbound Chest", "block.spectrum.ominous_sapling": "Ominous Sapling", "block.spectrum.bedrock_anvil": "Bedrock Anvil", - "block.spectrum.ender_treasure": "Radiating Ender", + "block.spectrum.radiating_ender": "Radiating Ender", "block.spectrum.blazing_crystal": "Blazing Crystal", "block.spectrum.frostbite_crystal": "Frostbite Crystal", "block.spectrum.resonant_lily": "Resonant Lily", + "block.spectrum.player_detector": "Player Detector", "block.spectrum.item_detector": "Item Detector", "block.spectrum.weather_detector": "Weather Detector", @@ -658,7 +771,6 @@ "block.spectrum.entity_detector": "Creature Detector", "block.spectrum.block_placer": "Block Placer", "block.spectrum.redstone_wireless": "Wireless Redstone", - "block.spectrum.redstone_calculator": "Redstone Calculator", "block.spectrum.redstone_calculator.mode_set": "Set to mode: ", "block.spectrum.redstone_calculator.mode.addition": "Addition", @@ -668,7 +780,6 @@ "block.spectrum.redstone_calculator.mode.modulo": "Modulo", "block.spectrum.redstone_calculator.mode.min": "Minimum", "block.spectrum.redstone_calculator.mode.max": "Maximum", - "block.spectrum.redstone_timer": "Redstone Timer", "block.spectrum.redstone_timer.setting.active": "Active time set to: ", "block.spectrum.redstone_timer.setting.inactive": "Inactive time set to: ", @@ -677,7 +788,6 @@ "block.spectrum.redstone_timer.setting.one_minute": "1 minute", "block.spectrum.redstone_timer.setting.ten_minutes": "10 minutes", "block.spectrum.redstone_timer.setting.one_hour": "1 hour", - "block.spectrum.cyan_spirit_sallow_vines_head": "Cyan Spirit Sallow Vines", "block.spectrum.magenta_spirit_sallow_vines_head": "Magenta Spirit Sallow Vines", "block.spectrum.yellow_spirit_sallow_vines_head": "Yellow Spirit Sallow Vines", @@ -688,22 +798,20 @@ "block.spectrum.yellow_spirit_sallow_vines_body": "Yellow Spirit Sallow Vines", "block.spectrum.white_spirit_sallow_vines_body": "White Spirit Sallow Vines", "block.spectrum.black_spirit_sallow_vines_body": "Black Spirit Sallow Vines", - - "block.spectrum.basalt_sparklestone_light": "Basalt Shimmerstone Light", - "block.spectrum.calcite_sparklestone_light": "Calcite Shimmerstone Light", - "block.spectrum.stone_sparklestone_light": "Stone Shimmerstone Light", - "block.spectrum.granite_sparklestone_light": "Granite Shimmerstone Light", - "block.spectrum.diorite_sparklestone_light": "Diorite Shimmerstone Light", - "block.spectrum.andesite_sparklestone_light": "Andesite Shimmerstone Light", - "block.spectrum.deepslate_sparklestone_light": "Deepslate Shimmerstone Light", - + "block.spectrum.basalt_shimmerstone_light": "Basalt Shimmerstone Light", + "block.spectrum.calcite_shimmerstone_light": "Calcite Shimmerstone Light", + "block.spectrum.stone_shimmerstone_light": "Stone Shimmerstone Light", + "block.spectrum.granite_shimmerstone_light": "Granite Shimmerstone Light", + "block.spectrum.diorite_shimmerstone_light": "Diorite Shimmerstone Light", + "block.spectrum.andesite_shimmerstone_light": "Andesite Shimmerstone Light", + "block.spectrum.deepslate_shimmerstone_light": "Deepslate Shimmerstone Light", + "block.spectrum.blackslag_shimmerstone_light": "Blackslag Shimmerstone Light", "block.spectrum.amethyst_storage_block": "Polished Amethyst", "block.spectrum.citrine_storage_block": "Polished Citrine", "block.spectrum.topaz_storage_block": "Polished Topaz", "block.spectrum.onyx_storage_block": "Polished Onyx", "block.spectrum.moonstone_storage_block": "Polished Moonstone", "block.spectrum.spectral_shard_storage_block": "Polished Spectral Shard Block", - "block.spectrum.black_block": "Black Block", "block.spectrum.blue_block": "Blue Block", "block.spectrum.brown_block": "Brown Block", @@ -720,7 +828,6 @@ "block.spectrum.red_block": "Red Block", "block.spectrum.white_block": "White Block", "block.spectrum.yellow_block": "Yellow Block", - "block.spectrum.black_spore_blossom": "Black Spore Blossom", "block.spectrum.blue_spore_blossom": "Blue Spore Blossom", "block.spectrum.brown_spore_blossom": "Brown Spore Blossom", @@ -737,7 +844,6 @@ "block.spectrum.red_spore_blossom": "Red Spore Blossom", "block.spectrum.white_spore_blossom": "White Spore Blossom", "block.spectrum.yellow_spore_blossom": "Yellow Spore Blossom", - "block.spectrum.black_sapling": "Black Sapling", "block.spectrum.black_log": "Black Log", "block.spectrum.black_leaves": "Black Leaves", @@ -786,7 +892,6 @@ "block.spectrum.yellow_sapling": "Yellow Sapling", "block.spectrum.yellow_log": "Yellow Log", "block.spectrum.yellow_leaves": "Yellow Leaves", - "block.spectrum.black_glowblock": "Black Glowblock", "block.spectrum.blue_glowblock": "Blue Glowblock", "block.spectrum.brown_glowblock": "Brown Glowblock", @@ -803,7 +908,6 @@ "block.spectrum.red_glowblock": "Red Glowblock", "block.spectrum.white_glowblock": "White Glowblock", "block.spectrum.yellow_glowblock": "Yellow Glowblock", - "block.spectrum.black_lamp": "Black Lamp", "block.spectrum.blue_lamp": "Blue Lamp", "block.spectrum.brown_lamp": "Brown Lamp", @@ -820,167 +924,241 @@ "block.spectrum.red_lamp": "Red Lamp", "block.spectrum.white_lamp": "White Lamp", "block.spectrum.yellow_lamp": "Yellow Lamp", - "block.spectrum.black_planks": "Black Planks", - "block.spectrum.black_plank_button": "Black Plank Button", - "block.spectrum.black_plank_fence": "Black Plank Fence", - "block.spectrum.black_plank_pressure_plate": "Black Plank Pressure Plate", - "block.spectrum.black_plank_stairs": "Black Plank Stairs", - "block.spectrum.black_plank_slab": "Black Plank Slab", - "block.spectrum.black_plank_fence_gate": "Black Plank Fence Gate", - + "block.spectrum.black_button": "Black Button", + "block.spectrum.black_fence": "Black Fence", + "block.spectrum.black_pressure_plate": "Black Pressure Plate", + "block.spectrum.black_stairs": "Black Stairs", + "block.spectrum.black_slab": "Black Slab", + "block.spectrum.black_fence_gate": "Black Fence Gate", "block.spectrum.blue_planks": "Blue Planks", - "block.spectrum.blue_plank_button": "Blue Plank Button", - "block.spectrum.blue_plank_fence": "Blue Plank Fence", - "block.spectrum.blue_plank_pressure_plate": "Blue Plank Pressure Plate", - "block.spectrum.blue_plank_stairs": "Blue Plank Stairs", - "block.spectrum.blue_plank_slab": "Blue Plank Slab", - "block.spectrum.blue_plank_fence_gate": "Blue Plank Fence Gate", - + "block.spectrum.blue_button": "Blue Button", + "block.spectrum.blue_fence": "Blue Fence", + "block.spectrum.blue_pressure_plate": "Blue Pressure Plate", + "block.spectrum.blue_stairs": "Blue Stairs", + "block.spectrum.blue_slab": "Blue Slab", + "block.spectrum.blue_fence_gate": "Blue Fence Gate", "block.spectrum.brown_planks": "Brown Planks", - "block.spectrum.brown_plank_button": "Brown Plank Button", - "block.spectrum.brown_plank_fence": "Brown Plank Fence", - "block.spectrum.brown_plank_pressure_plate": "Brown Plank Pressure Plate", - "block.spectrum.brown_plank_stairs": "Brown Plank Stairs", - "block.spectrum.brown_plank_slab": "Brown Plank Slab", - "block.spectrum.brown_plank_fence_gate": "Brown Plank Fence Gate", - + "block.spectrum.brown_button": "Brown Button", + "block.spectrum.brown_fence": "Brown Fence", + "block.spectrum.brown_pressure_plate": "Brown Pressure Plate", + "block.spectrum.brown_stairs": "Brown Stairs", + "block.spectrum.brown_slab": "Brown Slab", + "block.spectrum.brown_fence_gate": "Brown Fence Gate", "block.spectrum.cyan_planks": "Cyan Planks", - "block.spectrum.cyan_plank_button": "Cyan Plank Button", - "block.spectrum.cyan_plank_fence": "Cyan Plank Fence", - "block.spectrum.cyan_plank_pressure_plate": "Cyan Plank Pressure Plate", - "block.spectrum.cyan_plank_stairs": "Cyan Plank Stairs", - "block.spectrum.cyan_plank_slab": "Cyan Plank Slab", - "block.spectrum.cyan_plank_fence_gate": "Cyan Plank Fence Gate", - + "block.spectrum.cyan_button": "Cyan Button", + "block.spectrum.cyan_fence": "Cyan Fence", + "block.spectrum.cyan_pressure_plate": "Cyan Pressure Plate", + "block.spectrum.cyan_stairs": "Cyan Stairs", + "block.spectrum.cyan_slab": "Cyan Slab", + "block.spectrum.cyan_fence_gate": "Cyan Fence Gate", "block.spectrum.gray_planks": "Gray Planks", - "block.spectrum.gray_plank_button": "Gray Plank Button", - "block.spectrum.gray_plank_fence": "Gray Plank Fence", - "block.spectrum.gray_plank_pressure_plate": "Gray Plank Pressure Plate", - "block.spectrum.gray_plank_stairs": "Gray Plank Stairs", - "block.spectrum.gray_plank_slab": "Gray Plank Slab", - "block.spectrum.gray_plank_fence_gate": "Gray Plank Fence Gate", - + "block.spectrum.gray_button": "Gray Button", + "block.spectrum.gray_fence": "Gray Fence", + "block.spectrum.gray_pressure_plate": "Gray Pressure Plate", + "block.spectrum.gray_stairs": "Gray Stairs", + "block.spectrum.gray_slab": "Gray Slab", + "block.spectrum.gray_fence_gate": "Gray Fence Gate", "block.spectrum.green_planks": "Green Planks", - "block.spectrum.green_plank_button": "Green Plank Button", - "block.spectrum.green_plank_fence": "Green Plank Fence", - "block.spectrum.green_plank_pressure_plate": "Green Plank Pressure Plate", - "block.spectrum.green_plank_stairs": "Green Plank Stairs", - "block.spectrum.green_plank_slab": "Green Plank Slab", - "block.spectrum.green_plank_fence_gate": "Green Plank Fence Gate", - + "block.spectrum.green_button": "Green Button", + "block.spectrum.green_fence": "Green Fence", + "block.spectrum.green_pressure_plate": "Green Pressure Plate", + "block.spectrum.green_stairs": "Green Stairs", + "block.spectrum.green_slab": "Green Slab", + "block.spectrum.green_fence_gate": "Green Fence Gate", "block.spectrum.light_blue_planks": "Light Blue Planks", - "block.spectrum.light_blue_plank_button": "Light Blue Plank Button", - "block.spectrum.light_blue_plank_fence": "Light Blue Plank Fence", - "block.spectrum.light_blue_plank_pressure_plate": "Light Blue Plank Pressure Plate", - "block.spectrum.light_blue_plank_stairs": "Light Blue Plank Stairs", - "block.spectrum.light_blue_plank_slab": "Light Blue Plank Slab", - "block.spectrum.light_blue_plank_fence_gate": "Light Blue Plank Fence Gate", - + "block.spectrum.light_blue_button": "Light Blue Button", + "block.spectrum.light_blue_fence": "Light Blue Fence", + "block.spectrum.light_blue_pressure_plate": "Light Blue Pressure Plate", + "block.spectrum.light_blue_stairs": "Light Blue Stairs", + "block.spectrum.light_blue_slab": "Light Blue Slab", + "block.spectrum.light_blue_fence_gate": "Light Blue Fence Gate", "block.spectrum.light_gray_planks": "Light Gray Planks", - "block.spectrum.light_gray_plank_button": "Light Gray Plank Button", - "block.spectrum.light_gray_plank_fence": "Light Gray Plank Fence", - "block.spectrum.light_gray_plank_pressure_plate": "Light Gray Plank Pressure Plate", - "block.spectrum.light_gray_plank_stairs": "Light Gray Plank Stairs", - "block.spectrum.light_gray_plank_slab": "Light Gray Plank Slab", - "block.spectrum.light_gray_plank_fence_gate": "Light Gray Plank Fence Gate", - + "block.spectrum.light_gray_button": "Light Gray Button", + "block.spectrum.light_gray_fence": "Light Gray Fence", + "block.spectrum.light_gray_pressure_plate": "Light Gray Pressure Plate", + "block.spectrum.light_gray_stairs": "Light Gray Stairs", + "block.spectrum.light_gray_slab": "Light Gray Slab", + "block.spectrum.light_gray_fence_gate": "Light Gray Fence Gate", "block.spectrum.lime_planks": "Lime Planks", - "block.spectrum.lime_plank_button": "Lime Plank Button", - "block.spectrum.lime_plank_fence": "Lime Plank Fence", - "block.spectrum.lime_plank_pressure_plate": "Lime Plank Pressure Plate", - "block.spectrum.lime_plank_stairs": "Lime Plank Stairs", - "block.spectrum.lime_plank_slab": "Lime Plank Slab", - "block.spectrum.lime_plank_fence_gate": "Lime Plank Fence Gate", - + "block.spectrum.lime_button": "Lime Button", + "block.spectrum.lime_fence": "Lime Fence", + "block.spectrum.lime_pressure_plate": "Lime Pressure Plate", + "block.spectrum.lime_stairs": "Lime Stairs", + "block.spectrum.lime_slab": "Lime Slab", + "block.spectrum.lime_fence_gate": "Lime Fence Gate", "block.spectrum.magenta_planks": "Magenta Planks", - "block.spectrum.magenta_plank_button": "Magenta Plank Button", - "block.spectrum.magenta_plank_fence": "Magenta Plank Fence", - "block.spectrum.magenta_plank_pressure_plate": "Magenta Plank Pressure Plate", - "block.spectrum.magenta_plank_stairs": "Magenta Plank Stairs", - "block.spectrum.magenta_plank_slab": "Magenta Plank Slab", - "block.spectrum.magenta_plank_fence_gate": "Magenta Plank Fence Gate", - + "block.spectrum.magenta_button": "Magenta Button", + "block.spectrum.magenta_fence": "Magenta Fence", + "block.spectrum.magenta_pressure_plate": "Magenta Pressure Plate", + "block.spectrum.magenta_stairs": "Magenta Stairs", + "block.spectrum.magenta_slab": "Magenta Slab", + "block.spectrum.magenta_fence_gate": "Magenta Fence Gate", "block.spectrum.orange_planks": "Orange Planks", - "block.spectrum.orange_plank_button": "Orange Plank Button", - "block.spectrum.orange_plank_fence": "Orange Plank Fence", - "block.spectrum.orange_plank_pressure_plate": "Orange Plank Pressure Plate", - "block.spectrum.orange_plank_stairs": "Orange Plank Stairs", - "block.spectrum.orange_plank_slab": "Orange Plank Slab", - "block.spectrum.orange_plank_fence_gate": "Orange Plank Fence Gate", - + "block.spectrum.orange_button": "Orange Button", + "block.spectrum.orange_fence": "Orange Fence", + "block.spectrum.orange_pressure_plate": "Orange Pressure Plate", + "block.spectrum.orange_stairs": "Orange Stairs", + "block.spectrum.orange_slab": "Orange Slab", + "block.spectrum.orange_fence_gate": "Orange Fence Gate", "block.spectrum.pink_planks": "Pink Planks", - "block.spectrum.pink_plank_button": "Pink Plank Button", - "block.spectrum.pink_plank_fence": "Pink Plank Fence", - "block.spectrum.pink_plank_pressure_plate": "Pink Plank Pressure Plate", - "block.spectrum.pink_plank_stairs": "Pink Plank Stairs", - "block.spectrum.pink_plank_slab": "Pink Plank Slab", - "block.spectrum.pink_plank_fence_gate": "Pink Plank Fence Gate", - + "block.spectrum.pink_button": "Pink Button", + "block.spectrum.pink_fence": "Pink Fence", + "block.spectrum.pink_pressure_plate": "Pink Pressure Plate", + "block.spectrum.pink_stairs": "Pink Stairs", + "block.spectrum.pink_slab": "Pink Slab", + "block.spectrum.pink_fence_gate": "Pink Fence Gate", "block.spectrum.purple_planks": "Purple Planks", - "block.spectrum.purple_plank_button": "Purple Plank Button", - "block.spectrum.purple_plank_fence": "Purple Plank Fence", - "block.spectrum.purple_plank_pressure_plate": "Purple Plank Pressure Plate", - "block.spectrum.purple_plank_stairs": "Purple Plank Stairs", - "block.spectrum.purple_plank_slab": "Purple Plank Slab", - "block.spectrum.purple_plank_fence_gate": "Purple Plank Fence Gate", - + "block.spectrum.purple_button": "Purple Button", + "block.spectrum.purple_fence": "Purple Fence", + "block.spectrum.purple_pressure_plate": "Purple Pressure Plate", + "block.spectrum.purple_stairs": "Purple Stairs", + "block.spectrum.purple_slab": "Purple Slab", + "block.spectrum.purple_fence_gate": "Purple Fence Gate", "block.spectrum.red_planks": "Red Planks", - "block.spectrum.red_plank_button": "Red Plank Button", - "block.spectrum.red_plank_fence": "Red Plank Fence", - "block.spectrum.red_plank_pressure_plate": "Red Plank Pressure Plate", - "block.spectrum.red_plank_stairs": "Red Plank Stairs", - "block.spectrum.red_plank_slab": "Red Plank Slab", - "block.spectrum.red_plank_fence_gate": "Red Plank Fence Gate", - + "block.spectrum.red_button": "Red Button", + "block.spectrum.red_fence": "Red Fence", + "block.spectrum.red_pressure_plate": "Red Pressure Plate", + "block.spectrum.red_stairs": "Red Stairs", + "block.spectrum.red_slab": "Red Slab", + "block.spectrum.red_fence_gate": "Red Fence Gate", "block.spectrum.white_planks": "White Planks", - "block.spectrum.white_plank_button": "White Plank Button", - "block.spectrum.white_plank_fence": "White Plank Fence", - "block.spectrum.white_plank_pressure_plate": "White Plank Pressure Plate", - "block.spectrum.white_plank_stairs": "White Plank Stairs", - "block.spectrum.white_plank_slab": "White Plank Slab", - "block.spectrum.white_plank_fence_gate": "White Plank Fence Gate", - + "block.spectrum.white_button": "White Button", + "block.spectrum.white_fence": "White Fence", + "block.spectrum.white_pressure_plate": "White Pressure Plate", + "block.spectrum.white_stairs": "White Stairs", + "block.spectrum.white_slab": "White Slab", + "block.spectrum.white_fence_gate": "White Fence Gate", "block.spectrum.yellow_planks": "Yellow Planks", - "block.spectrum.yellow_plank_button": "Yellow Plank Button", - "block.spectrum.yellow_plank_fence": "Yellow Plank Fence", - "block.spectrum.yellow_plank_pressure_plate": "Yellow Plank Pressure Plate", - "block.spectrum.yellow_plank_stairs": "Yellow Plank Stairs", - "block.spectrum.yellow_plank_slab": "Yellow Plank Slab", - "block.spectrum.yellow_plank_fence_gate": "Yellow Plank Fence Gate", - + "block.spectrum.yellow_button": "Yellow Button", + "block.spectrum.yellow_fence": "Yellow Fence", + "block.spectrum.yellow_pressure_plate": "Yellow Pressure Plate", + "block.spectrum.yellow_stairs": "Yellow Stairs", + "block.spectrum.yellow_slab": "Yellow Slab", + "block.spectrum.yellow_fence_gate": "Yellow Fence Gate", "item.spectrum.mud_bucket": "Bucket of Mud", "block.spectrum.mud": "Mud", "block.spectrum.flowing_mud": "Mud", - "item.spectrum.liquid_crystal_bucket": "Liquid Crystal Bucket", "block.spectrum.liquid_crystal": "Liquid Crystal", "block.spectrum.flowing_liquid_crystal": "Liquid Crystal", - "item.spectrum.midnight_solution_bucket": "Midnight Solution Bucket", "block.spectrum.midnight_solution": "Midnight Solution", "block.spectrum.flowing_midnight_solution": "Midnight Solution", - - "block.spectrum.paletur_ore": "Paltaeria Ore", - "block.spectrum.paletur_fragment_block": "Paltaeria Floatblock", - "block.spectrum.scarlet_ore": "Stratine Ore", - "block.spectrum.scarlet_fragment_block": "Stratine Floatblock", + "item.spectrum.dragonrot_bucket": "Dragonrot Bucket", + "block.spectrum.dragonrot": "Dragonrot", + "block.spectrum.dragonrot_crystal": "Dragonrot", + "block.spectrum.paltaeria_ore": "Paltaeria Ore", + "block.spectrum.paltaeria_fragment_block": "Paltaeria Floatblock", + "block.spectrum.stratine_ore": "Stratine Ore", + "block.spectrum.stratine_fragment_block": "Stratine Floatblock", "block.spectrum.hover_block": "Hover Block", - "block.spectrum.shooting_star_glistering": "Glistering Shooting Star", "block.spectrum.shooting_star_fiery": "Fiery Shooting Star", "block.spectrum.shooting_star_colorful": "Colorful Shooting Star", "block.spectrum.shooting_star_pristine": "Pristine Shooting Star", "block.spectrum.shooting_star_gemstone": "Gemstone Shooting Star", "item.spectrum.shooting_star.tooltip.hardened": "Hardened - will not break", - + "block.spectrum.amphora": "Amphora", + + "block.spectrum.slate_noxshroom": "Slate Noxshroom", + "block.spectrum.slate_noxcap_cap": "Slate Noxcap Cap", + "block.spectrum.slate_noxcap_stem": "Slate Noxcap Stem", + "block.spectrum.stripped_slate_noxcap_stem": "Stripped Slate Noxcap Stem", + "block.spectrum.slate_noxcap_gills": "Slate Noxcap Gills", + "block.spectrum.slate_noxwood_planks": "Slate Noxwood Planks", + "block.spectrum.slate_noxwood_stairs": "Slate Noxwood Stairs", + "block.spectrum.slate_noxwood_slab": "Slate Noxwood Slab", + "block.spectrum.slate_noxwood_fence": "Slate Noxwood Fence", + "block.spectrum.slate_noxwood_fence_gate": "Slate Noxwood Fence Gate", + "block.spectrum.slate_noxwood_door": "Slate Noxwood Door", + "block.spectrum.slate_noxwood_trapdoor": "Slate Noxwood Trapdoor", + "block.spectrum.slate_noxwood_pressure_plate": "Slate Noxwood Pressure Plate", + "block.spectrum.slate_noxwood_button": "Slate Noxwood Button", + "block.spectrum.slate_noxwood_beam": "Slate Noxwood Beam", + "block.spectrum.slate_noxwood_amphora": "Slate Noxwood Amphora", + "block.spectrum.slate_noxwood_lantern": "Slate Noxwood Lantern", + "block.spectrum.slate_noxwood_light": "Slate Noxwood Light", + "block.spectrum.slate_noxwood_lamp": "Slate Noxwood Lamp", + "block.spectrum.ebony_noxshroom": "Ebony Noxshroom", + "block.spectrum.ebony_noxcap_cap": "Ebony Noxcap Cap", + "block.spectrum.ebony_noxcap_stem": "Ebony Noxcap Stem", + "block.spectrum.stripped_ebony_noxcap_stem": "Stripped Ebony Noxcap Stem", + "block.spectrum.ebony_noxcap_gills": "Ebony Noxcap Gills", + "block.spectrum.ebony_noxwood_planks": "Ebony Noxwood Planks", + "block.spectrum.ebony_noxwood_stairs": "Ebony Noxwood Stairs", + "block.spectrum.ebony_noxwood_slab": "Ebony Noxwood Slab", + "block.spectrum.ebony_noxwood_fence": "Ebony Noxwood Fence", + "block.spectrum.ebony_noxwood_fence_gate": "Ebony Noxwood Fence Gate", + "block.spectrum.ebony_noxwood_door": "Ebony Noxwood Door", + "block.spectrum.ebony_noxwood_trapdoor": "Ebony Noxwood Trapdoor", + "block.spectrum.ebony_noxwood_pressure_plate": "Ebony Noxwood Pressure Plate", + "block.spectrum.ebony_noxwood_button": "Ebony Noxwood Button", + "block.spectrum.ebony_noxwood_beam": "Ebony Noxwood Beam", + "block.spectrum.ebony_noxwood_amphora": "Ebony Noxwood Amphora", + "block.spectrum.ebony_noxwood_lantern": "Ebony Noxwood Lantern", + "block.spectrum.ebony_noxwood_light": "Ebony Noxwood Light", + "block.spectrum.ebony_noxwood_lamp": "Ebony Noxwood Lamp", + "block.spectrum.ivory_noxshroom": "Ivory Noxshroom", + "block.spectrum.ivory_noxcap_cap": "Ivory Noxcap Cap", + "block.spectrum.ivory_noxcap_stem": "Ivory Noxcap Stem", + "block.spectrum.stripped_ivory_noxcap_stem": "Stripped Ivory Noxcap Stem", + "block.spectrum.ivory_noxcap_gills": "Ivory Noxcap Gills", + "block.spectrum.ivory_noxwood_planks": "Ivory Noxwood Planks", + "block.spectrum.ivory_noxwood_stairs": "Ivory Noxwood Stairs", + "block.spectrum.ivory_noxwood_slab": "Ivory Noxwood Slab", + "block.spectrum.ivory_noxwood_fence": "Ivory Noxwood Fence", + "block.spectrum.ivory_noxwood_fence_gate": "Ivory Noxwood Fence Gate", + "block.spectrum.ivory_noxwood_door": "Ivory Noxwood Door", + "block.spectrum.ivory_noxwood_trapdoor": "Ivory Noxwood Trapdoor", + "block.spectrum.ivory_noxwood_pressure_plate": "Ivory Noxwood Pressure Plate", + "block.spectrum.ivory_noxwood_button": "Ivory Noxwood Button", + "block.spectrum.ivory_noxwood_beam": "Ivory Noxwood Beam", + "block.spectrum.ivory_noxwood_amphora": "Ivory Noxwood Amphora", + "block.spectrum.ivory_noxwood_lantern": "Ivory Noxwood Lantern", + "block.spectrum.ivory_noxwood_light": "Ivory Noxwood Light", + "block.spectrum.ivory_noxwood_lamp": "Ivory Noxwood Lamp", + "block.spectrum.chestnut_noxshroom": "Chestnut Noxshroom", + "block.spectrum.chestnut_noxcap_cap": "Chestnut Noxcap Cap", + "block.spectrum.chestnut_noxcap_stem": "Chestnut Noxcap Stem", + "block.spectrum.stripped_chestnut_noxcap_stem": "Stripped Chestnut Noxcap Stem", + "block.spectrum.chestnut_noxcap_gills": "Chestnut Noxcap Gills", + "block.spectrum.chestnut_noxwood_planks": "Chestnut Noxwood Planks", + "block.spectrum.chestnut_noxwood_stairs": "Chestnut Noxwood Stairs", + "block.spectrum.chestnut_noxwood_slab": "Chestnut Noxwood Slab", + "block.spectrum.chestnut_noxwood_fence": "Chestnut Noxwood Fence", + "block.spectrum.chestnut_noxwood_fence_gate": "Chestnut Noxwood Fence Gate", + "block.spectrum.chestnut_noxwood_door": "Chestnut Noxwood Door", + "block.spectrum.chestnut_noxwood_trapdoor": "Chestnut Noxwood Trapdoor", + "block.spectrum.chestnut_noxwood_pressure_plate": "Chestnut Noxwood Pressure Plate", + "block.spectrum.chestnut_noxwood_button": "Chestnut Noxwood Button", + "block.spectrum.chestnut_noxwood_beam": "Chestnut Noxwood Beam", + "block.spectrum.chestnut_noxwood_amphora": "Chestnut Noxwood Amphora", + "block.spectrum.chestnut_noxwood_lantern": "Chestnut Noxwood Lantern", + "block.spectrum.chestnut_noxwood_light": "Chestnut Noxwood Light", + "block.spectrum.chestnut_noxwood_lamp": "Chestnut Noxwood Lamp", + "block.spectrum.small_red_dragonjag": "Small Red Dragonjag", + "block.spectrum.small_green_dragonjag": "Small Green Dragonjag", + "block.spectrum.small_pink_dragonjag": "Small Pink Dragonjag", + "block.spectrum.small_purple_dragonjag": "Small Purple Dragonjag", + "block.spectrum.small_black_dragonjag": "Small Black Dragonjag", + "block.spectrum.tall_red_dragonjag": "Tall Red Dragonjag", + "block.spectrum.tall_green_dragonjag": "Tall Green Dragonjag", + "block.spectrum.tall_pink_dragonjag": "Tall Pink Dragonjag", + "block.spectrum.tall_purple_dragonjag": "Tall Purple Dragonjag", + "block.spectrum.tall_black_dragonjag": "Tall Black Dragonjag", "block.spectrum.sag_leaf": "Sag Leaf", "block.spectrum.sag_bubble": "Sag Bubble", "block.spectrum.small_sag_bubble": "Small Sag Bubble", + "block.spectrum.rotten_ground": "Rotten Ground", + "block.spectrum.black_sludge": "Black Sludge", + "block.spectrum.sawblade_grass": "Sawblade Grass", + "block.spectrum.shimmel": "Shimmel", + "block.spectrum.overgrown_blackslag": "Overgrown Blackslag", + "block.spectrum.primordial_fire": "Primordial Fire", "block.spectrum.glistering_melon": "Glistering Melon", "block.spectrum.glistering_melon_stem": "Glistering Melon Stem", "block.spectrum.attached_glistering_melon_stem": "Glistering Melon Stem", - "block.spectrum.spectral_shard_block": "Spectral Shard Block", "block.spectrum.small_citrine_bud": "Small Citrine Bud", "block.spectrum.medium_citrine_bud": "Medium Citrine Bud", @@ -1006,19 +1184,21 @@ "block.spectrum.moonstone_cluster": "Moonstone Cluster", "block.spectrum.moonstone_block": "Block of Moonstone", "block.spectrum.budding_moonstone": "Budding Moonstone", - "block.spectrum.amethyst_ore": "Amethyst Ore", "block.spectrum.citrine_ore": "Citrine Ore", "block.spectrum.topaz_ore": "Topaz Ore", "block.spectrum.onyx_ore": "Onyx Ore", "block.spectrum.moonstone_ore": "Moonstone Ore", - "block.spectrum.deepslate_amethyst_ore": "Deepslate Amethyst Ore", "block.spectrum.deepslate_citrine_ore": "Deepslate Citrine Ore", "block.spectrum.deepslate_topaz_ore": "Deepslate Topaz Ore", "block.spectrum.deepslate_onyx_ore": "Deepslate Onyx Ore", "block.spectrum.deepslate_moonstone_ore": "Deepslate Moonstone Ore", - + "block.spectrum.blackslag_amethyst_ore": "Blackslag Amethyst Ore", + "block.spectrum.blackslag_citrine_ore": "Blackslag Citrine Ore", + "block.spectrum.blackslag_topaz_ore": "Blackslag Topaz Ore", + "block.spectrum.blackslag_onyx_ore": "Blackslag Onyx Ore", + "block.spectrum.blackslag_moonstone_ore": "Blackslag Moonstone Ore", "block.spectrum.smooth_basalt_slab": "Smooth Basalt Slab", "block.spectrum.smooth_basalt_wall": "Smooth Basalt Wall", "block.spectrum.smooth_basalt_stairs": "smooth_basalt Stairs", @@ -1039,7 +1219,6 @@ "block.spectrum.citrine_chiseled_basalt": "Citrine Chiseled Basalt", "block.spectrum.onyx_chiseled_basalt": "Onyx Chiseled Basalt", "block.spectrum.moonstone_chiseled_basalt": "Moonstone Chiseled Basalt", - "block.spectrum.calcite_slab": "Calcite Slab", "block.spectrum.calcite_wall": "Calcite Wall", "block.spectrum.calcite_stairs": "Calcite Stairs", @@ -1060,36 +1239,30 @@ "block.spectrum.citrine_chiseled_calcite": "Citrine Chiseled Calcite", "block.spectrum.onyx_chiseled_calcite": "Onyx Chiseled Calcite", "block.spectrum.moonstone_chiseled_calcite": "Moonstone Chiseled Calcite", - "block.spectrum.amethyst_glass": "Amethyst Glass", "block.spectrum.topaz_glass": "Topaz Glass", "block.spectrum.citrine_glass": "Citrine Glass", "block.spectrum.onyx_glass": "Onyx Glass", "block.spectrum.moonstone_glass": "Moonstone Glass", - "block.spectrum.glowing_glass": "Radiant Glass", - "block.spectrum.tinted_player_only_glass": "Semi-Permeable Tinted Glass", - "block.spectrum.glowing_player_only_glass": "Semi-Permeable Radiant Glass", - - "block.spectrum.vanilla_player_only_glass": "Semi-Permeable Glass", - "block.spectrum.amethyst_player_only_glass": "Semi-Permeable Amethyst Glass", - "block.spectrum.topaz_player_only_glass": "Semi-Permeable Topaz Glass", - "block.spectrum.citrine_player_only_glass": "Semi-Permeable Citrine Glass", - "block.spectrum.onyx_player_only_glass": "Semi-Permeable Onyx Glass", - "block.spectrum.moonstone_player_only_glass": "Semi-Permeable Moonstone Glass", - + "block.spectrum.tinted_semi_permeable_glass": "Semi-Permeable Tinted Glass", + "block.spectrum.glowing_semi_permeable_glass": "Semi-Permeable Radiant Glass", + "block.spectrum.vanilla_semi_permeable_glass": "Semi-Permeable Glass", + "block.spectrum.amethyst_semi_permeable_glass": "Semi-Permeable Amethyst Glass", + "block.spectrum.topaz_semi_permeable_glass": "Semi-Permeable Topaz Glass", + "block.spectrum.citrine_semi_permeable_glass": "Semi-Permeable Citrine Glass", + "block.spectrum.onyx_semi_permeable_glass": "Semi-Permeable Onyx Glass", + "block.spectrum.moonstone_semi_permeable_glass": "Semi-Permeable Moonstone Glass", "block.spectrum.amethyst_calcite_lamp": "Amethyst Calcite Lamp", "block.spectrum.topaz_calcite_lamp": "Topaz Calcite Lamp", "block.spectrum.citrine_calcite_lamp": "Citrine Calcite Lamp", "block.spectrum.onyx_calcite_lamp": "Onyx Calcite Lamp", "block.spectrum.moonstone_calcite_lamp": "Moonstone Calcite Lamp", - "block.spectrum.amethyst_basalt_lamp": "Amethyst Basalt Lamp", "block.spectrum.topaz_basalt_lamp": "Topaz Basalt Lamp", "block.spectrum.citrine_basalt_lamp": "Citrine Basalt Lamp", "block.spectrum.onyx_basalt_lamp": "Onyx Basalt Lamp", "block.spectrum.moonstone_basalt_lamp": "Moonstone Basalt Lamp", - "block.spectrum.pedestal": "Pigment Pedestal", "block.spectrum.pedestal_basic_topaz": "Pigment Pedestal", "block.spectrum.pedestal_basic_amethyst": "Pigment Pedestal", @@ -1103,21 +1276,22 @@ "item.spectrum.pedestal.tooltip.all_basic": "§bC§dM§eY§7 Variant", "item.spectrum.pedestal.tooltip.onyx": "§8Onyx§7 Variant", "item.spectrum.pedestal.tooltip.moonstone": "§fMoonstone§7 Variant", - - "block.spectrum.provider_node": "Pastel Network Provider Node", - "block.spectrum.puller_node": "Pastel Network Puller Node", - "block.spectrum.pusher_node": "Pastel Network Pusher Node", - "block.spectrum.storage_node": "Pastel Network Storage Node", - "block.spectrum.connection_node": "Pastel Network Connection Node", - "block.spectrum.interaction_node": "Pastel Network Interaction Node", - "block.spectrum.provider_node.tooltip": "§dProvides Items to the Network", - "block.spectrum.puller_node.tooltip": "§8Pulls items from the Network", - "block.spectrum.pusher_node.tooltip": "§ePushes Items into the Network", - "block.spectrum.storage_node.tooltip": "§bStores Items with no other Destination", - "block.spectrum.connection_node.tooltip": "§fSimple Connector", - "block.spectrum.interaction_node.tooltip": "§fRequest items form the Network", - "block.spectrum.pastel_network_nodes.tooltip.range": "Connects to other Nodes 16 Blocks from it", - + "block.spectrum.pastel_node": "Pastel Node", + "block.spectrum.provider_node": "§dPastel Network Provider Node", + "block.spectrum.gather_node": "§8Pastel Network Gather Node", + "block.spectrum.sender_node": "§ePastel Network Sender Node", + "block.spectrum.storage_node": "§bPastel Network Storage Node", + "block.spectrum.connection_node": "§7Pastel Network Connection Node", + "block.spectrum.interaction_node": "§fPastel Network Interaction Node", + "block.spectrum.pastel_network_nodes.tooltip.placing": "Place against some form of inventory", + "block.spectrum.pastel_network_nodes.tooltip.range": "Connects to other nodes in a %d block radius", + "block.spectrum.pastel_network_nodes.connection_debug": "This node is connected to:", + "block.spectrum.sender_node.tooltip": "Sends items to Gather and Storage Nodes", + "block.spectrum.gather_node.tooltip": "Gathers items from Sender, Provider and Storage Nodes", + "block.spectrum.provider_node.tooltip": "Supplies Gatherer Nodes with items", + "block.spectrum.storage_node.tooltip": "Serves as storage for Sender and Gather Nodes", + "block.spectrum.connection_node.tooltip": "Extends the range of your Network", + "block.spectrum.interaction_node.tooltip": "Allows you to request from the network", "item.spectrum.mob_head.tooltip.designer": "§7Head design by %s", "block.spectrum.goat_head": "Goat Head", "block.spectrum.glow_squid_head": "Glow Squid Head", @@ -1185,6 +1359,7 @@ "block.spectrum.sheep_red_head": "Red Sheep Head", "block.spectrum.sheep_white_head": "White Sheep Head", "block.spectrum.sheep_yellow_head": "Yellow Sheep Head", + "block.spectrum.shulker_head": "Shulker Head", "block.spectrum.shulker_black_head": "Black Shulker Head", "block.spectrum.shulker_blue_head": "Blue Shulker Head", "block.spectrum.shulker_brown_head": "Brown Shulker Head", @@ -1221,7 +1396,12 @@ "block.spectrum.zombie_villager_head": "Zombie Villager Head", "block.spectrum.zombified_piglin_head": "Zombified Piglin Head", "block.spectrum.egg_laying_wooly_pig_head": "Egg Laying Wooly Pig Head", - + "block.spectrum.warden_head": "Warden Head", + "block.spectrum.allay_head": "Allay Head", + "block.spectrum.tadpole_head": "Frog Head", + "block.spectrum.frog_temperate_head": "Frog Head", + "block.spectrum.frog_warm_head": "Frog Head", + "block.spectrum.frog_cold_head": "Frog Head", "block.spectrum.axolotl_mob_block": "Covert Idol", "block.spectrum.bat_mob_block": "Swift Idol", "block.spectrum.bee_mob_block": "Dilligent Idol", @@ -1266,7 +1446,6 @@ "block.spectrum.wither_mob_block": "Destructive Idol", "block.spectrum.wither_skeleton_mob_block": "Occult Idol", "block.spectrum.zombie_mob_block": "Forsaken Idol", - "block.spectrum.small_coal_bud": "Small Coal Bud", "block.spectrum.large_coal_bud": "Large Coal Bud", "block.spectrum.coal_cluster": "Coal Cluster", @@ -1303,14 +1482,12 @@ "block.spectrum.small_redstone_bud": "Small Redstone Bud", "block.spectrum.large_redstone_bud": "Large Redstone Bud", "block.spectrum.redstone_cluster": "Redstone Cluster", - "block.spectrum.small_certus_quartz_bud": "Small Certus Quartz Bud", "block.spectrum.large_certus_quartz_bud": "Large Certus Quartz Bud", "block.spectrum.certus_quartz_cluster": "Certus Quartz Cluster", "block.spectrum.small_fluix_bud": "Small Fluix Bud", "block.spectrum.large_fluix_bud": "Large Fluix Bud", "block.spectrum.fluix_cluster": "Fluix Cluster", - "block.spectrum.small_globette_bud": "Small Globette Bud", "block.spectrum.large_globette_bud": "Large Globette Bud", "block.spectrum.globette_cluster": "Globette Cluster", @@ -1320,7 +1497,6 @@ "block.spectrum.small_globette_nether_bud": "Small Nether Globette Bud", "block.spectrum.large_globette_nether_bud": "Large Nether Globette Bud", "block.spectrum.globette_nether_cluster": "Nether Globette Cluster", - "item.spectrum.pure_emerald": "Pure Emerald", "item.spectrum.pure_prismarine": "Pure Prismarine", "item.spectrum.pure_coal": "Pure Coal", @@ -1333,14 +1509,11 @@ "item.spectrum.pure_diamond": "Pure Diamond", "item.spectrum.pure_netherite": "Pure Netherite", "item.spectrum.pure_iron": "Pure Iron", - "item.spectrum.pure_certus_quartz": "Pure Certus Quartz", "item.spectrum.pure_fluix": "Pure Fluix", - "item.spectrum.pure_globette": "Pure Gobber Globette", "item.spectrum.pure_globette_end": "Pure End Gobber Globette", "item.spectrum.pure_globette_nether": "Pure Nether Gobber Globette", - "block.spectrum.pure_coal_block": "Pure Coal Block", "block.spectrum.pure_iron_block": "Pure Iron Block", "block.spectrum.pure_gold_block": "Pure Gold Block", @@ -1358,7 +1531,6 @@ "block.spectrum.pure_globette_block": "Pure Globette Block", "block.spectrum.pure_globette_nether_block": "Pure Nether Gobber Block", "block.spectrum.pure_globette_end_block": "Pure End Gobber Block", - "block.spectrum.mob_block.tooltip": "When triggered via use/stepping on/projectile hit:", "block.spectrum.bonemealing_mob_block.tooltip": "§7Fertilises a plant next to it", "block.spectrum.echolocating_mob_block.tooltip": "§7Echolocates creatures in a %d block radius", @@ -1382,47 +1554,47 @@ "block.spectrum.line_teleporting_mob_block.tooltip": "§7Teleports you on top of the next block of this type ", "block.spectrum.line_teleporting_mob_block.tooltip2": "§7in a straight line within %d blocks", "block.spectrum.feeding_mob_block.tooltip": "§7Feeds animals in a range of %d§7 blocks using food on the ground", - "block.spectrum.incandescent_amalgam": "Incandescent Amalgam", "block.spectrum.incandescent_amalgam.tooltip": "§6⚠§r High yield magical explosive, handle with care", - "item.spectrum.tooltip.loom_pattern_available": "✿ Usable as Banner Pattern", - "item.spectrum.exchange_staff": "Exchanging Staff", - "item.spectrum.exchange_staff.tooltip.range": "Exchanges blocks up to %s blocks around it", - "item.spectrum.exchange_staff.tooltip.crouch": "Crouch to only exchange exposed blocks", - "item.spectrum.exchange_staff.tooltip.target": "Target: %s", - "item.spectrum.placement_staff": "Constructors' Staff", - "item.spectrum.placement_staff.tooltip.range": "Extends a block structure up to %s blocks", - "item.spectrum.placement_staff.tooltip.crouch": "Crouch to include different source blocks", - "item.spectrum.placement_staff.tooltip.missing_ink": "missing Ink", - "item.spectrum.placement_staff.tooltip.none_in_inventory": "none in inventory", - "item.spectrum.light_staff": "Radiance Staff", - "item.spectrum.light_staff.tooltip": "§7Uses §eShimmerstone Gems§7 to place lights", - "item.spectrum.light_staff.tooltip.ink": "§7Uses §eYellow§7 Ink or §eShimmerstone Gems§7 to place lights", - "item.spectrum.light_staff.tooltip2": "§7Right click lights to toggle their light level", + "item.spectrum.exchanging_staff": "Exchanging Staff", + "item.spectrum.exchanging_staff.tooltip.range": "Exchanges blocks up to %s blocks around it", + "item.spectrum.exchanging_staff.tooltip.crouch": "Crouch to only exchange exposed blocks", + "item.spectrum.exchanging_staff.tooltip.target": "Target: %s", + "item.spectrum.constructors_staff": "Constructors' Staff", + "item.spectrum.constructors_staff.tooltip.range": "Extends a block structure up to %s blocks", + "item.spectrum.constructors_staff.tooltip.crouch": "Crouch to include different source blocks", + "item.spectrum.constructors_staff.tooltip.missing_ink": "missing Ink", + "item.spectrum.constructors_staff.tooltip.none_in_inventory": "none in inventory", + "item.spectrum.radiance_staff": "Radiance Staff", + "item.spectrum.radiance_staff.tooltip": "§7Uses §eShimmerstone Gems§7 to place lights", + "item.spectrum.radiance_staff.tooltip.ink": "§7Uses §eYellow§7 Ink or §eShimmerstone Gems§7 to place lights", + "item.spectrum.radiance_staff.tooltip2": "§7Right click lights to toggle their light level", "item.spectrum.music_disc_spectrum_theme": "Music Disc", "item.spectrum.music_disc_spectrum_theme.desc": "Spectrum Theme", "item.spectrum.music_disc_dimension_theme": "Music Disc", "item.spectrum.music_disc_dimension_theme.desc": "Deeper Down Theme: Radiarc - Irrelevance Fading", "item.spectrum.music_disc_everreflective": "Music Disc", "item.spectrum.music_disc_everreflective.desc": "Proper Motions - Everreflective", - "item.spectrum.invisible_item_frame": "Phantom Frame", - "item.spectrum.invisible_glow_item_frame": "Glow Phantom Frame", - "item.spectrum.ender_bag": "Bag of Holding", - "item.spectrum.void_bundle": "Bottomless Bundle", - "item.spectrum.void_bundle.tooltip.empty": "Empty", - "item.spectrum.void_bundle.tooltip.count": "%d / %d (%d stacks)", - "item.spectrum.void_bundle.tooltip.locked": "Locked (Crouch-Use to unlock)", - "item.spectrum.void_bundle.tooltip.enter_inventory": "%s that you pick up will get put in here", - "item.spectrum.void_bundle.tooltip.voiding": "§7Additional items will be §cvoided", + "item.spectrum.phantom_frame": "Phantom Frame", + "item.spectrum.glow_phantom_frame": "Glow Phantom Frame", + "item.spectrum.bag_of_holding": "Bag of Holding", + "item.spectrum.bottomless_bundle": "Bottomless Bundle", + "item.spectrum.bottomless_bundle.tooltip.empty": "Empty", + "item.spectrum.bottomless_bundle.tooltip.count": "%d / %d (%d stacks)", + "item.spectrum.bottomless_bundle.tooltip.count_of": "%d / %d of ", + "item.spectrum.bottomless_bundle.tooltip.locked": "Locked (Crouch-Use to unlock)", + "item.spectrum.bottomless_bundle.tooltip.enter_inventory": "%s that you pick up will get put in here", + "item.spectrum.bottomless_bundle.tooltip.voiding": "§7Additional items will be §cvoided", "item.spectrum.raw_azurite": "Raw Azurite", - "item.spectrum.sparklestone_gem": "Shimmerstone Gem", + "item.spectrum.shimmerstone_gem": "Shimmerstone Gem", "item.spectrum.refined_azurite": "Refined Azurite", "item.spectrum.quitoxic_powder": "Quitoxic Powder", "item.spectrum.mermaids_gem": "Mermaids Gem", - "item.spectrum.end_portal_cracker": "End Portal Cracker", - "item.spectrum.manual": "Colorful World", - "item.spectrum.manual.landing_text": "$(br)The energies growing$(br)$(c_gray) like roots, they sprout$()$(br)magic of nature overflowing$(br)$(c_gray) ’til you discover$(br) what's all about.", + "item.spectrum.perturbed_eye": "Perturbed Eye", + "item.spectrum.perturbed_eye.tooltip": "Socket into an End Portal Frame", + "item.spectrum.guidebook": "Colorful World", + "item.spectrum.guidebook.landing_text": "$(br)The energies growing$(br)$(c_gray) like roots, they sprout$()$(br)magic of nature overflowing$(br)$(c_gray) ’til you discover$(br) what's all about.", "item.spectrum.paintbrush": "Paintbrush", "item.spectrum.paintbrush.tooltip.select_color": "Crouch-Use to select a Color", "item.spectrum.paintbrush.ability.header": "Abilities:", @@ -1432,10 +1604,10 @@ "item.spectrum.paintbrush.gui.controls1": "Movement Keys to move", "item.spectrum.paintbrush.gui.controls2": "Drop/Inventory to select", "item.spectrum.multitool": "Multitool", - "item.spectrum.silker_pickaxe": "Tender Pickaxe", - "item.spectrum.fortune_pickaxe": "Lucky Pickaxe", - "item.spectrum.looting_falchion": "Razor Falchion", - "item.spectrum.voiding_pickaxe": "Oblivion Pickaxe", + "item.spectrum.tender_pickaxe": "Tender Pickaxe", + "item.spectrum.lucky_pickaxe": "Lucky Pickaxe", + "item.spectrum.razor_falchion": "Razor Falchion", + "item.spectrum.oblivion_pickaxe": "Oblivion Pickaxe", "item.spectrum.resonant_pickaxe": "Resonant Pickaxe", "item.spectrum.spectrum_fishing_rods.tooltip": "Sometimes reels in living animals", "item.spectrum.lagoon_rod": "Lagoon Rod", @@ -1443,8 +1615,8 @@ "item.spectrum.molten_rod": "Molten Rod", "item.spectrum.molten_rod.tooltip": "It's Bobber is hot enough to withstand Lava", "item.spectrum.molten_rod.tooltip2": "Set's your catch on fire - and anything else it touches", - "item.spectrum.glow_vision_helmet": "Glow Vision Goggles", - "item.spectrum.glow_vision_helmet.tooltip": "§7Powered by §bGlow Ink Sacs", + "item.spectrum.glow_vision_goggles": "Glow Vision Goggles", + "item.spectrum.glow_vision_goggles.tooltip": "§7Powered by §bGlow Ink Sacs", "item.spectrum.ender_splice": "Ender Splice", "item.spectrum.ender_splice.tooltip.unbound": "§7Use to bind to your current position", "item.spectrum.ender_splice.tooltip.bound_pos": "§7Bound to %d %d %d §7in %s§7. Use to teleport", @@ -1462,31 +1634,26 @@ "item.spectrum.enchanter_structure_placer": "Enchanter Structure Placer", "item.spectrum.spirit_instiller_structure_placer": "Spirit Instiller Structure Placer", "item.spectrum.cinderhearth_structure_placer": "Cinderhearth Structure Placer", - "item.spectrum.lightning_stone": "Storm Stone", - "item.spectrum.scarlet_fragments": "Stratine Fragments", - "item.spectrum.scarlet_gem": "Stratine Gem", - "item.spectrum.paletur_fragments": "Paltaeria Fragments", - "item.spectrum.paletur_gem": "Paltaeria Gem", + "item.spectrum.storm_stone": "Storm Stone", + "item.spectrum.stratine_fragments": "Stratine Fragments", + "item.spectrum.stratine_gem": "Stratine Gem", + "item.spectrum.paltaeria_fragments": "Paltaeria Fragments", + "item.spectrum.paltaeria_gem": "Paltaeria Gem", "item.spectrum.glistering_melon_seeds": "Glistering Melon Seeds", - "item.spectrum.honey_pastry": "Honey Pastry", - "item.spectrum.jaramel_trifle": "Jaramel Trifle", "item.spectrum.salted_jaramel_trifle": "Salted Jaramel Trifle", "item.spectrum.monster_trifle": "Monster Trifle", "item.spectrum.demon_trifle": "Demon Trifle", - "item.spectrum.jaramel_tart": "Jaramel Tart", "item.spectrum.salted_jaramel_tart": "Salted Jaramel Tart", "item.spectrum.ashen_tart": "Ashen Tart", "item.spectrum.weeping_tart": "Weeping Tart", "item.spectrum.whispy_tart": "Whispy Tart", "item.spectrum.puff_tart": "Puff Tart", - "block.spectrum.blood_orchid": "Blood Orchid", "item.spectrum.blood_orchid_petal": "Blood Orchid Petal", "item.spectrum.bloodboil_syrup": "Bloodboil Syrup", - "block.spectrum.sugar_stick": "Sugar Stick", "block.spectrum.sugar_stick.tooltip.medium": "Halfway grown", "block.spectrum.sugar_stick.tooltip.large": "Fully grown", @@ -1501,27 +1668,21 @@ "item.spectrum.citrine_rock_candy": "Citrine Rock Candy", "item.spectrum.onyx_rock_candy": "Onyx Rock Candy", "item.spectrum.moonstone_rock_candy": "Moonstone Rock Candy", - - "item.spectrum.white_crystal_grace": "Moony Crystal", - "item.spectrum.knowledge_gem": "Knowledge Gem", "item.spectrum.knowledge_gem.tooltip.stored_experience": "/ %d Experience stored", "item.spectrum.knowledge_gem.tooltip.use": "Use to drain, or crouch-use to store experience (%d/tick)", - "item.spectrum.celestial_pocketwatch": "Celestial Pocketwatch", "item.spectrum.celestial_pocketwatch.tooltip.working": "Gives you reign over Day and Night", "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule": "A great power prevents the use of your watch", "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time": "Your clock seems dysfunctional in this strange dimension", - - "item.spectrum.emergency_helmet": "Fetchling Helmet", - "item.spectrum.emergency_chestplate": "Ferocious Chestplate", - "item.spectrum.emergency_leggings": "Sylph Leggings", - "item.spectrum.emergency_boots": "Oread Boots", - "item.spectrum.emergency_helmet.tooltip": "Gives the attacker Weakness & Slowness", - "item.spectrum.emergency_chestplate.tooltip": "Grants Absorption & Resistance when hit", - "item.spectrum.emergency_leggings.tooltip": "Grants Regeneration when hit", - "item.spectrum.emergency_boots.tooltip": "Grants Speed & Invisibility when hit", - + "item.spectrum.fetchling_helmet": "Fetchling Helmet", + "item.spectrum.ferocious_chestplate": "Ferocious Chestplate", + "item.spectrum.sylph_leggings": "Sylph Leggings", + "item.spectrum.oread_boots": "Oread Boots", + "item.spectrum.fetchling_helmet.tooltip": "Gives the attacker Weakness & Slowness", + "item.spectrum.ferocious_chestplate.tooltip": "Grants Absorption & Resistance when hit", + "item.spectrum.sylph_leggings.tooltip": "Grants Regeneration when hit", + "item.spectrum.oread_boots.tooltip": "Grants Speed & Invisibility when hit", "item.spectrum.vibrant_cyan_catkin": "Vibrant Cyan Catkin", "item.spectrum.vibrant_magenta_catkin": "Vibrant Magenta Catkin", "item.spectrum.vibrant_yellow_catkin": "Vibrant Yellow Catkin", @@ -1532,13 +1693,11 @@ "item.spectrum.lucid_yellow_catkin": "Lucid Yellow Catkin", "item.spectrum.lucid_black_catkin": "Lucid Black Catkin", "item.spectrum.lucid_white_catkin": "Lucid White Catkin", - "item.spectrum.block_flooder": "Block Flooder", "item.spectrum.block_flooder.tooltip": "§fFills empty spaces (caves, ravines, pits…) ", "item.spectrum.block_flooder.tooltip2": "§fThrow to use; Radius of 10 blocks", "item.spectrum.block_flooder.tooltip3": "Takes matching blocks right out of your inventory", "item.spectrum.block_flooder.tooltip4": "Alternatively uses Cobblestone", - "item.spectrum.black_pigment": "Black Pigment", "item.spectrum.blue_pigment": "Blue Pigment", "item.spectrum.brown_pigment": "Brown Pigment", @@ -1555,13 +1714,11 @@ "item.spectrum.red_pigment": "Red Pigment", "item.spectrum.white_pigment": "White Pigment", "item.spectrum.yellow_pigment": "Yellow Pigment", - "item.spectrum.amethyst_powder": "Amethyst Powder", "item.spectrum.citrine_powder": "Citrine Powder", "item.spectrum.topaz_powder": "Topaz Powder", "item.spectrum.moonstone_powder": "Moonstone Powder", "item.spectrum.onyx_powder": "Onyx Powder", - "item.spectrum.bedrock_pickaxe": "Bedrock Pickaxe", "item.spectrum.bedrock_axe": "Bedrock Axe", "item.spectrum.bedrock_sword": "Bedrock Sword", @@ -1576,14 +1733,49 @@ "item.spectrum.bedrock_chestplate": "Bedrock Chestplate", "item.spectrum.bedrock_leggings": "Bedrock Leggings", "item.spectrum.bedrock_boots": "Bedrock Boots", - + "item.spectrum.workstaff": "Workstaff", + "item.spectrum.workstaff.tooltip.right_click_actions_disabled": "Tilling, Stripping and Flattening disabled", + "item.spectrum.workstaff.tooltip.projectiles_disabled": "Ranged Mining disabled", + "item.spectrum.workstaff.tooltip.mining_range": "%dx%d area mining active", + "item.spectrum.workstaff.message.1x1": "Selected 1x1 mining mode", + "item.spectrum.workstaff.message.3x3": "Selected 3x3 mining mode", + "item.spectrum.workstaff.message.5x5": "Selected 5x5 mining mode", + "item.spectrum.workstaff.message.resonance": "Switched Enchantment to Resonance", + "item.spectrum.workstaff.message.fortune": "Switched Enchantment to Fortune", + "item.spectrum.workstaff.message.silk_touch": "Switched Enchantment to Silk Touch", + "item.spectrum.workstaff.message.enabled_right_click_actions": "Enabled Tilling, Stripping and Flattening", + "item.spectrum.workstaff.message.disabled_right_click_actions": "Disabled Tilling, Stripping and Flattening", + "item.spectrum.workstaff.message.enabled_projectiles": "Enabled Ranged Mining", + "item.spectrum.workstaff.message.disabled_projectiles": "Disabled Ranged Mining", + "item.spectrum.malachite_workstaff": "Malachite Workstaff", + "item.spectrum.malachite_ultra_greatsword": "Malachite Ultra Greatsword", + "item.spectrum.malachite_crossbow": "Malachite Crossbow", + "item.spectrum.malachite_bident": "Malachite Bident", + "item.spectrum.glass_crest_workstaff": "Glass Crest Workstaff", + "item.spectrum.glass_crest_workstaff.tooltip.projectile": "Consumes §bCyan Ink§r to mine at a range", + "item.spectrum.glass_crest_ultra_greatsword": "Glass Crest Ultra Greatsword", + "item.spectrum.glass_crest_ultra_greatsword.tooltip": "§7Deals §f%d%%§7 of it's damage via Magic", + "item.spectrum.glass_crest_ultra_greatsword.tooltip2": "§7Charge to perform a ground slam", + "item.spectrum.glass_crest_crossbow": "Glass Crest Crossbow", + "item.spectrum.glass_crest_crossbow.message.charge": "%d%% Overcharge active", + "item.spectrum.glass_crest_crossbow.tooltip.overcharged": "§7Overcharge: %d§7%%", + "item.spectrum.glass_crest_crossbow.tooltip.how_to_overcharge": "§7Use while sneaking and loaded to §fOVERCHARGE", + "item.spectrum.ferocious_glass_crest_bident": "Ferocious Glass Crest Bident", + "item.spectrum.fractal_glass_crest_bident": "Fractal Glass Crest Bident", + "item.spectrum.malachite_glass_arrow": "Malachite Glass Arrow", + "item.spectrum.topaz_glass_arrow": "Topaz Glass Arrow", + "item.spectrum.amethyst_glass_arrow": "Amethyst Glass Arrow", + "item.spectrum.citrine_glass_arrow": "Citrine Glass Arrow", + "item.spectrum.onyx_glass_arrow": "Onyx Glass Arrow", + "item.spectrum.moonstone_glass_arrow": "Moonstone Glass Arrow", "item.spectrum.dreamflayer": "Dreamflayer", "item.spectrum.dreamflayer.tooltip": "Deals more damage the greater the difference in", "item.spectrum.dreamflayer.tooltip2": "armor between the wearer and the target is", "item.spectrum.dreamflayer.tooltip.deactivated": "Crouch-Use to overpower (consumes lots of §cRed Ink§r)", "item.spectrum.dreamflayer.tooltip.activated": "Overpowered. Crouch-Use to unpower", - - "item.spectrum.spawner": "Empty Spawner", + "item.spectrum.nightfalls_blade": "Nightfall's Blade", + "item.spectrum.nightfalls_blade.when_struck": "When Struck:", + "item.spectrum.spawner": "Spawner", "item.spectrum.spawner.tooltip.unknown_mob": "Unknown Mob", "item.spectrum.spawner.tooltip.spawn_count": "Spawn Count: %d", "item.spectrum.spawner.tooltip.min_spawn_delay": "Min Spawn Delay: %d", @@ -1595,348 +1787,339 @@ "recipe.spectrum.spawner.lore.increased_required_player_range": "Longer active when the player is farther away.", "recipe.spectrum.spawner.lore.increased_spawn_count": "Increased count of spawned creatures", "recipe.spectrum.spawner.lore.decreased_spawn_delay": "Decreased spawn delay", - "item.spectrum.citrine_shard": "Citrine Shard", "item.spectrum.topaz_shard": "Topaz Shard", "item.spectrum.onyx_shard": "Onyx Shard", "item.spectrum.moonstone_shard": "Moonstone Shard", "item.spectrum.spectral_shard": "Spectral Shard", - "item.spectrum.vegetal": "Vegetal", "item.spectrum.neolith": "Neolith", "item.spectrum.bedrock_dust": "Bedrock Dust", "item.spectrum.midnight_aberration": "Midnight Aberration", "item.spectrum.midnight_aberration.tooltip.stable": "§oHeld together by mysterious force", + "item.spectrum.midnight_aberration.cloaked": "The Perfect Compound", "item.spectrum.midnight_chip": "Midnight Chip", - + "item.spectrum.moonstone_core": "Moonstone Core", "item.spectrum.fiery_powder": "Fiery Powder", "item.spectrum.blizzard_powder": "Blizzard Powder", - "block.spectrum.small_bismuth_bud": "Small Bismuth Bud", "block.spectrum.large_bismuth_bud": "Large Bismuth Bud", "block.spectrum.bismuth_cluster": "Bismuth Cluster", "block.spectrum.bismuth_block": "Block of Bismuth", - "item.spectrum.bismuth_flake": "Bismuth Flake'", + "item.spectrum.bismuth_flake": "Bismuth Flake", "item.spectrum.bismuth_crystal": "Bismuth Crystal", - "block.spectrum.malachite_ore": "Malachite Ore", "block.spectrum.deepslate_malachite_ore": "Deepslate Malachite Ore", - "block.spectrum.downstone_malachite_ore": "Downstone Malachite Ore", "item.spectrum.raw_malachite": "Raw Malachite", "block.spectrum.small_malachite_bud": "Small Malachite Bud", "block.spectrum.large_malachite_bud": "Large Malachite Bud", "block.spectrum.malachite_cluster": "Malachite Cluster", "block.spectrum.malachite_block": "Block of Malachite", "item.spectrum.malachite_crystal": "Refined Malachite", - - "block.spectrum.downstone": "Downstone", - + "item.spectrum.dragonbone_shard": "Dragonbone Shard", + "item.spectrum.dragonbone_needle": "Cannula Bone Needle", + "item.spectrum.resonance_shard": "Resonance Shard", "item.spectrum.logo_banner_pattern": "Banner Pattern", "item.spectrum.logo_banner_pattern.desc": "Color Theory", "item.spectrum.amethyst_shard_banner_pattern": "Banner Pattern", "item.spectrum.amethyst_cluster_banner_pattern": "Banner Pattern", - - "bannerpp.pattern.spectrum.shimmer.black": "Black Shimmer", - "bannerpp.pattern.spectrum.shimmer.red": "Red Shimmer", - "bannerpp.pattern.spectrum.shimmer.green": "Green Shimmer", - "bannerpp.pattern.spectrum.shimmer.brown": "Brown Shimmer", - "bannerpp.pattern.spectrum.shimmer.blue": "Blue Shimmer", - "bannerpp.pattern.spectrum.shimmer.purple": "Purple Shimmer", - "bannerpp.pattern.spectrum.shimmer.cyan": "Cyan Shimmer", - "bannerpp.pattern.spectrum.shimmer.light_gray": "Light Gray Shimmer", - "bannerpp.pattern.spectrum.shimmer.gray": "Gray Shimmer", - "bannerpp.pattern.spectrum.shimmer.pink": "Pink Shimmer", - "bannerpp.pattern.spectrum.shimmer.lime": "Lime Shimmer", - "bannerpp.pattern.spectrum.shimmer.yellow": "Yellow Shimmer", - "bannerpp.pattern.spectrum.shimmer.light_blue": "Light Blue Shimmer", - "bannerpp.pattern.spectrum.shimmer.magenta": "Magenta Shimmer", - "bannerpp.pattern.spectrum.shimmer.orange": "Orange Shimmer", - "bannerpp.pattern.spectrum.shimmer.white": "White Shimmer", - "bannerpp.pattern.spectrum.palette.black": "Black Artistry", - "bannerpp.pattern.spectrum.palette.red": "Red Artistry", - "bannerpp.pattern.spectrum.palette.green": "Green Artistry", - "bannerpp.pattern.spectrum.palette.brown": "Brown Artistry", - "bannerpp.pattern.spectrum.palette.blue": "Blue Artistry", - "bannerpp.pattern.spectrum.palette.purple": "Purple Artistry", - "bannerpp.pattern.spectrum.palette.cyan": "Cyan Artistry", - "bannerpp.pattern.spectrum.palette.light_gray": "Light Gray Artistry", - "bannerpp.pattern.spectrum.palette.gray": "Gray Artistry", - "bannerpp.pattern.spectrum.palette.pink": "Pink Artistry", - "bannerpp.pattern.spectrum.palette.lime": "Lime Artistry", - "bannerpp.pattern.spectrum.palette.yellow": "Yellow Artistry", - "bannerpp.pattern.spectrum.palette.light_blue": "Light Blue Artistry", - "bannerpp.pattern.spectrum.palette.magenta": "Magenta Artistry", - "bannerpp.pattern.spectrum.palette.orange": "Orange Artistry", - "bannerpp.pattern.spectrum.palette.white": "White Artistry", - "bannerpp.pattern.spectrum.amethyst_cluster.black": "Black Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.red": "Red Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.green": "Green Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.brown": "Brown Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.blue": "Blue Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.purple": "Purple Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.cyan": "Cyan Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.light_gray": "Light Gray Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.gray": "Gray Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.pink": "Pink Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.lime": "Lime Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.yellow": "Yellow Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.light_blue": "Light Blue Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.magenta": "Magenta Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.orange": "Orange Amethyst Cluster", - "bannerpp.pattern.spectrum.amethyst_cluster.white": "White Amethyst Cluster", - "bannerpp.pattern.spectrum.neolith.black": "Black Neolith", - "bannerpp.pattern.spectrum.neolith.red": "Red Neolith", - "bannerpp.pattern.spectrum.neolith.green": "Green Neolith", - "bannerpp.pattern.spectrum.neolith.brown": "Brown Neolith", - "bannerpp.pattern.spectrum.neolith.blue": "Blue Neolith", - "bannerpp.pattern.spectrum.neolith.purple": "Purple Neolith", - "bannerpp.pattern.spectrum.neolith.cyan": "Cyan Neolith", - "bannerpp.pattern.spectrum.neolith.light_gray": "Light Gray Neolith", - "bannerpp.pattern.spectrum.neolith.gray": "Gray Neolith", - "bannerpp.pattern.spectrum.neolith.pink": "Pink Neolith", - "bannerpp.pattern.spectrum.neolith.lime": "Lime Neolith", - "bannerpp.pattern.spectrum.neolith.yellow": "Yellow Neolith", - "bannerpp.pattern.spectrum.neolith.light_blue": "Light Blue Neolith", - "bannerpp.pattern.spectrum.neolith.magenta": "Magenta Neolith", - "bannerpp.pattern.spectrum.neolith.orange": "Orange Neolith", - "bannerpp.pattern.spectrum.neolith.white": "White Neolith", - "bannerpp.pattern.spectrum.pigment.black": "Black Pigment", - "bannerpp.pattern.spectrum.pigment.red": "Red Pigment", - "bannerpp.pattern.spectrum.pigment.green": "Green Pigment", - "bannerpp.pattern.spectrum.pigment.brown": "Brown Pigment", - "bannerpp.pattern.spectrum.pigment.blue": "Blue Pigment", - "bannerpp.pattern.spectrum.pigment.purple": "Purple Pigment", - "bannerpp.pattern.spectrum.pigment.cyan": "Cyan Pigment", - "bannerpp.pattern.spectrum.pigment.light_gray": "Light Gray Pigment", - "bannerpp.pattern.spectrum.pigment.gray": "Gray Pigment", - "bannerpp.pattern.spectrum.pigment.pink": "Pink Pigment", - "bannerpp.pattern.spectrum.pigment.lime": "Lime Pigment", - "bannerpp.pattern.spectrum.pigment.yellow": "Yellow Pigment", - "bannerpp.pattern.spectrum.pigment.light_blue": "Light Blue Pigment", - "bannerpp.pattern.spectrum.pigment.magenta": "Magenta Pigment", - "bannerpp.pattern.spectrum.pigment.orange": "Orange Pigment", - "bannerpp.pattern.spectrum.pigment.white": "White Pigment", - "bannerpp.pattern.spectrum.knowledge_gem.black": "Black Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.red": "Red Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.green": "Green Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.brown": "Brown Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.blue": "Blue Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.purple": "Purple Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.cyan": "Cyan Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.light_gray": "Light Gray Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.gray": "Gray Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.pink": "Pink Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.lime": "Lime Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.yellow": "Yellow Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.light_blue": "Light Blue Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.magenta": "Magenta Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.orange": "Orange Knowledge Gem", - "bannerpp.pattern.spectrum.knowledge_gem.white": "White Knowledge Gem", - "bannerpp.pattern.spectrum.vegetal.black": "Black Vegetal", - "bannerpp.pattern.spectrum.vegetal.red": "Red Vegetal", - "bannerpp.pattern.spectrum.vegetal.green": "Green Vegetal", - "bannerpp.pattern.spectrum.vegetal.brown": "Brown Vegetal", - "bannerpp.pattern.spectrum.vegetal.blue": "Blue Vegetal", - "bannerpp.pattern.spectrum.vegetal.purple": "Purple Vegetal", - "bannerpp.pattern.spectrum.vegetal.cyan": "Cyan Vegetal", - "bannerpp.pattern.spectrum.vegetal.light_gray": "Light Gray Vegetal", - "bannerpp.pattern.spectrum.vegetal.gray": "Gray Vegetal", - "bannerpp.pattern.spectrum.vegetal.pink": "Pink Vegetal", - "bannerpp.pattern.spectrum.vegetal.lime": "Lime Vegetal", - "bannerpp.pattern.spectrum.vegetal.yellow": "Yellow Vegetal", - "bannerpp.pattern.spectrum.vegetal.light_blue": "Light Blue Vegetal", - "bannerpp.pattern.spectrum.vegetal.magenta": "Magenta Vegetal", - "bannerpp.pattern.spectrum.vegetal.orange": "Orange Vegetal", - "bannerpp.pattern.spectrum.vegetal.white": "White Vegetal", - "bannerpp.pattern.spectrum.logo.black": "Black Color Theory", - "bannerpp.pattern.spectrum.logo.red": "Red Color Theory", - "bannerpp.pattern.spectrum.logo.green": "Green Color Theory", - "bannerpp.pattern.spectrum.logo.brown": "Brown Color Theory", - "bannerpp.pattern.spectrum.logo.blue": "Blue Color Theory", - "bannerpp.pattern.spectrum.logo.purple": "Purple Color Theory", - "bannerpp.pattern.spectrum.logo.cyan": "Cyan Color Theory", - "bannerpp.pattern.spectrum.logo.light_gray": "Light Gray Color Theory", - "bannerpp.pattern.spectrum.logo.gray": "Gray Color Theory", - "bannerpp.pattern.spectrum.logo.pink": "Pink Color Theory", - "bannerpp.pattern.spectrum.logo.lime": "Lime Color Theory", - "bannerpp.pattern.spectrum.logo.yellow": "Yellow Color Theory", - "bannerpp.pattern.spectrum.logo.light_blue": "Light Blue Color Theory", - "bannerpp.pattern.spectrum.logo.magenta": "Magenta Color Theory", - "bannerpp.pattern.spectrum.logo.orange": "Orange Color Theory", - "bannerpp.pattern.spectrum.logo.white": "White Color Theory", - "bannerpp.pattern.spectrum.four_leaf_clover.black": "Black Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.red": "Red Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.green": "Green Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.brown": "Brown Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.blue": "Blue Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.purple": "Purple Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.cyan": "Cyan Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.light_gray": "Light Gray Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.gray": "Gray Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.pink": "Pink Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.lime": "Lime Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.yellow": "Yellow Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.light_blue": "Light Blue Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.magenta": "Magenta Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.orange": "Orange Four-leafed Clover", - "bannerpp.pattern.spectrum.four_leaf_clover.white": "White Four-leafed Clover", - "bannerpp.pattern.spectrum.multitool.black": "Black Multitool", - "bannerpp.pattern.spectrum.multitool.red": "Red Multitool", - "bannerpp.pattern.spectrum.multitool.green": "Green Multitool", - "bannerpp.pattern.spectrum.multitool.brown": "Brown Multitool", - "bannerpp.pattern.spectrum.multitool.blue": "Blue Multitool", - "bannerpp.pattern.spectrum.multitool.purple": "Purple Multitool", - "bannerpp.pattern.spectrum.multitool.cyan": "Cyan Multitool", - "bannerpp.pattern.spectrum.multitool.light_gray": "Light Gray Multitool", - "bannerpp.pattern.spectrum.multitool.gray": "Gray Multitool", - "bannerpp.pattern.spectrum.multitool.pink": "Pink Multitool", - "bannerpp.pattern.spectrum.multitool.lime": "Lime Multitool", - "bannerpp.pattern.spectrum.multitool.yellow": "Yellow Multitool", - "bannerpp.pattern.spectrum.multitool.light_blue": "Light Blue Multitool", - "bannerpp.pattern.spectrum.multitool.magenta": "Magenta Multitool", - "bannerpp.pattern.spectrum.multitool.orange": "Orange Multitool", - "bannerpp.pattern.spectrum.multitool.white": "White Multitool", - "bannerpp.pattern.spectrum.manual.black": "Black Colorful World", - "bannerpp.pattern.spectrum.manual.red": "Red Colorful World", - "bannerpp.pattern.spectrum.manual.green": "Green Colorful World", - "bannerpp.pattern.spectrum.manual.brown": "Brown Colorful World", - "bannerpp.pattern.spectrum.manual.blue": "Blue Colorful World", - "bannerpp.pattern.spectrum.manual.purple": "Purple Colorful World", - "bannerpp.pattern.spectrum.manual.cyan": "Cyan Colorful World", - "bannerpp.pattern.spectrum.manual.light_gray": "Light Gray Colorful World", - "bannerpp.pattern.spectrum.manual.gray": "Gray Colorful World", - "bannerpp.pattern.spectrum.manual.pink": "Pink Colorful World", - "bannerpp.pattern.spectrum.manual.lime": "Lime Colorful World", - "bannerpp.pattern.spectrum.manual.yellow": "Yellow Colorful World", - "bannerpp.pattern.spectrum.manual.light_blue": "Light Blue Colorful World", - "bannerpp.pattern.spectrum.manual.magenta": "Magenta Colorful World", - "bannerpp.pattern.spectrum.manual.orange": "Orange Colorful World", - "bannerpp.pattern.spectrum.manual.white": "White Colorful World", - "bannerpp.pattern.spectrum.crafting_tablet.black": "Black Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.red": "Red Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.green": "Green Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.brown": "Brown Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.blue": "Blue Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.purple": "Purple Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.cyan": "Cyan Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.light_gray": "Light Gray Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.gray": "Gray Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.pink": "Pink Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.lime": "Lime Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.yellow": "Yellow Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.light_blue": "Light Blue Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.magenta": "Magenta Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.orange": "Orange Crafting Tablet", - "bannerpp.pattern.spectrum.crafting_tablet.white": "White Crafting Tablet", - "bannerpp.pattern.spectrum.ink_flask.black": "Black Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.red": "Red Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.green": "Green Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.brown": "Brown Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.blue": "Blue Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.purple": "Purple Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.cyan": "Cyan Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.light_gray": "Light Gray Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.gray": "Gray Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.pink": "Pink Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.lime": "Lime Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.yellow": "Yellow Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.light_blue": "Light Blue Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.magenta": "Magenta Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.orange": "Orange Ink Flask", - "bannerpp.pattern.spectrum.ink_flask.white": "White Ink Flask", - "bannerpp.pattern.spectrum.amethyst_shard.black": "Black Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.red": "Red Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.green": "Green Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.brown": "Brown Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.blue": "Blue Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.purple": "Purple Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.cyan": "Cyan Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.light_gray": "Light Gray Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.gray": "Gray Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.pink": "Pink Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.lime": "Lime Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.yellow": "Yellow Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.light_blue": "Light Blue Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.magenta": "Magenta Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.orange": "Orange Amethyst Shard", - "bannerpp.pattern.spectrum.amethyst_shard.white": "White Amethyst Shard", - "bannerpp.pattern.spectrum.raw_azurite.black": "Black Azurite", - "bannerpp.pattern.spectrum.raw_azurite.red": "Red Azurite", - "bannerpp.pattern.spectrum.raw_azurite.green": "Green Azurite", - "bannerpp.pattern.spectrum.raw_azurite.brown": "Brown Azurite", - "bannerpp.pattern.spectrum.raw_azurite.blue": "Blue Azurite", - "bannerpp.pattern.spectrum.raw_azurite.purple": "Purple Azurite", - "bannerpp.pattern.spectrum.raw_azurite.cyan": "Cyan Azurite", - "bannerpp.pattern.spectrum.raw_azurite.light_gray": "Light Gray Azurite", - "bannerpp.pattern.spectrum.raw_azurite.gray": "Gray Azurite", - "bannerpp.pattern.spectrum.raw_azurite.pink": "Pink Azurite", - "bannerpp.pattern.spectrum.raw_azurite.lime": "Lime Azurite", - "bannerpp.pattern.spectrum.raw_azurite.yellow": "Yellow Azurite", - "bannerpp.pattern.spectrum.raw_azurite.light_blue": "Light Blue Azurite", - "bannerpp.pattern.spectrum.raw_azurite.magenta": "Magenta Azurite", - "bannerpp.pattern.spectrum.raw_azurite.orange": "Orange Azurite", - "bannerpp.pattern.spectrum.raw_azurite.white": "White Azurite", - - "bannerpp.pattern.spectrum.bedrock_dust.black": "Black Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.red": "Red Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.green": "Green Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.brown": "Brown Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.blue": "Blue Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.purple": "Purple Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.cyan": "Cyan Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.light_gray": "Light Gray Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.gray": "Gray Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.pink": "Pink Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.lime": "Lime Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.yellow": "Yellow Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.light_blue": "Light Blue Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.magenta": "Magenta Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.orange": "Orange Bedrock Dust", - "bannerpp.pattern.spectrum.bedrock_dust.white": "White Bedrock Dust", - - "bannerpp.pattern.spectrum.shimmerstone.black": "Black Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.red": "Red Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.green": "Green Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.brown": "Brown Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.blue": "Blue Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.purple": "Purple Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.cyan": "Cyan Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.light_gray": "Light Gray Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.gray": "Gray Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.pink": "Pink Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.lime": "Lime Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.yellow": "Yellow Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.light_blue": "Light Blue Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.magenta": "Magenta Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.orange": "Orange Shimmerstone", - "bannerpp.pattern.spectrum.shimmerstone.white": "White Shimmerstone", - - "bannerpp.pattern.spectrum.jade_vine.black": "Black Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.red": "Red Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.green": "Green Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.brown": "Brown Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.blue": "Blue Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.purple": "Purple Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.cyan": "Cyan Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.light_gray": "Light Gray Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.gray": "Gray Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.pink": "Pink Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.lime": "Lime Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.yellow": "Yellow Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.light_blue": "Light Blue Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.magenta": "Magenta Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.orange": "Orange Jade Vine", - "bannerpp.pattern.spectrum.jade_vine.white": "White Jade Vine", - + "block.minecraft.banner.spectrum.shimmer.black": "Black Shimmer", + "block.minecraft.banner.spectrum.shimmer.red": "Red Shimmer", + "block.minecraft.banner.spectrum.shimmer.green": "Green Shimmer", + "block.minecraft.banner.spectrum.shimmer.brown": "Brown Shimmer", + "block.minecraft.banner.spectrum.shimmer.blue": "Blue Shimmer", + "block.minecraft.banner.spectrum.shimmer.purple": "Purple Shimmer", + "block.minecraft.banner.spectrum.shimmer.cyan": "Cyan Shimmer", + "block.minecraft.banner.spectrum.shimmer.light_gray": "Light Gray Shimmer", + "block.minecraft.banner.spectrum.shimmer.gray": "Gray Shimmer", + "block.minecraft.banner.spectrum.shimmer.pink": "Pink Shimmer", + "block.minecraft.banner.spectrum.shimmer.lime": "Lime Shimmer", + "block.minecraft.banner.spectrum.shimmer.yellow": "Yellow Shimmer", + "block.minecraft.banner.spectrum.shimmer.light_blue": "Light Blue Shimmer", + "block.minecraft.banner.spectrum.shimmer.magenta": "Magenta Shimmer", + "block.minecraft.banner.spectrum.shimmer.orange": "Orange Shimmer", + "block.minecraft.banner.spectrum.shimmer.white": "White Shimmer", + "block.minecraft.banner.spectrum.palette.black": "Black Artistry", + "block.minecraft.banner.spectrum.palette.red": "Red Artistry", + "block.minecraft.banner.spectrum.palette.green": "Green Artistry", + "block.minecraft.banner.spectrum.palette.brown": "Brown Artistry", + "block.minecraft.banner.spectrum.palette.blue": "Blue Artistry", + "block.minecraft.banner.spectrum.palette.purple": "Purple Artistry", + "block.minecraft.banner.spectrum.palette.cyan": "Cyan Artistry", + "block.minecraft.banner.spectrum.palette.light_gray": "Light Gray Artistry", + "block.minecraft.banner.spectrum.palette.gray": "Gray Artistry", + "block.minecraft.banner.spectrum.palette.pink": "Pink Artistry", + "block.minecraft.banner.spectrum.palette.lime": "Lime Artistry", + "block.minecraft.banner.spectrum.palette.yellow": "Yellow Artistry", + "block.minecraft.banner.spectrum.palette.light_blue": "Light Blue Artistry", + "block.minecraft.banner.spectrum.palette.magenta": "Magenta Artistry", + "block.minecraft.banner.spectrum.palette.orange": "Orange Artistry", + "block.minecraft.banner.spectrum.palette.white": "White Artistry", + "block.minecraft.banner.spectrum.amethyst_cluster.black": "Black Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.red": "Red Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.green": "Green Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.brown": "Brown Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.blue": "Blue Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.purple": "Purple Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.cyan": "Cyan Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.light_gray": "Light Gray Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.gray": "Gray Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.pink": "Pink Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.lime": "Lime Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.yellow": "Yellow Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.light_blue": "Light Blue Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.magenta": "Magenta Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.orange": "Orange Amethyst Cluster", + "block.minecraft.banner.spectrum.amethyst_cluster.white": "White Amethyst Cluster", + "block.minecraft.banner.spectrum.neolith.black": "Black Neolith", + "block.minecraft.banner.spectrum.neolith.red": "Red Neolith", + "block.minecraft.banner.spectrum.neolith.green": "Green Neolith", + "block.minecraft.banner.spectrum.neolith.brown": "Brown Neolith", + "block.minecraft.banner.spectrum.neolith.blue": "Blue Neolith", + "block.minecraft.banner.spectrum.neolith.purple": "Purple Neolith", + "block.minecraft.banner.spectrum.neolith.cyan": "Cyan Neolith", + "block.minecraft.banner.spectrum.neolith.light_gray": "Light Gray Neolith", + "block.minecraft.banner.spectrum.neolith.gray": "Gray Neolith", + "block.minecraft.banner.spectrum.neolith.pink": "Pink Neolith", + "block.minecraft.banner.spectrum.neolith.lime": "Lime Neolith", + "block.minecraft.banner.spectrum.neolith.yellow": "Yellow Neolith", + "block.minecraft.banner.spectrum.neolith.light_blue": "Light Blue Neolith", + "block.minecraft.banner.spectrum.neolith.magenta": "Magenta Neolith", + "block.minecraft.banner.spectrum.neolith.orange": "Orange Neolith", + "block.minecraft.banner.spectrum.neolith.white": "White Neolith", + "block.minecraft.banner.spectrum.pigment.black": "Black Pigment", + "block.minecraft.banner.spectrum.pigment.red": "Red Pigment", + "block.minecraft.banner.spectrum.pigment.green": "Green Pigment", + "block.minecraft.banner.spectrum.pigment.brown": "Brown Pigment", + "block.minecraft.banner.spectrum.pigment.blue": "Blue Pigment", + "block.minecraft.banner.spectrum.pigment.purple": "Purple Pigment", + "block.minecraft.banner.spectrum.pigment.cyan": "Cyan Pigment", + "block.minecraft.banner.spectrum.pigment.light_gray": "Light Gray Pigment", + "block.minecraft.banner.spectrum.pigment.gray": "Gray Pigment", + "block.minecraft.banner.spectrum.pigment.pink": "Pink Pigment", + "block.minecraft.banner.spectrum.pigment.lime": "Lime Pigment", + "block.minecraft.banner.spectrum.pigment.yellow": "Yellow Pigment", + "block.minecraft.banner.spectrum.pigment.light_blue": "Light Blue Pigment", + "block.minecraft.banner.spectrum.pigment.magenta": "Magenta Pigment", + "block.minecraft.banner.spectrum.pigment.orange": "Orange Pigment", + "block.minecraft.banner.spectrum.pigment.white": "White Pigment", + "block.minecraft.banner.spectrum.knowledge_gem.black": "Black Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.red": "Red Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.green": "Green Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.brown": "Brown Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.blue": "Blue Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.purple": "Purple Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.cyan": "Cyan Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.light_gray": "Light Gray Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.gray": "Gray Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.pink": "Pink Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.lime": "Lime Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.yellow": "Yellow Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.light_blue": "Light Blue Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.magenta": "Magenta Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.orange": "Orange Knowledge Gem", + "block.minecraft.banner.spectrum.knowledge_gem.white": "White Knowledge Gem", + "block.minecraft.banner.spectrum.vegetal.black": "Black Vegetal", + "block.minecraft.banner.spectrum.vegetal.red": "Red Vegetal", + "block.minecraft.banner.spectrum.vegetal.green": "Green Vegetal", + "block.minecraft.banner.spectrum.vegetal.brown": "Brown Vegetal", + "block.minecraft.banner.spectrum.vegetal.blue": "Blue Vegetal", + "block.minecraft.banner.spectrum.vegetal.purple": "Purple Vegetal", + "block.minecraft.banner.spectrum.vegetal.cyan": "Cyan Vegetal", + "block.minecraft.banner.spectrum.vegetal.light_gray": "Light Gray Vegetal", + "block.minecraft.banner.spectrum.vegetal.gray": "Gray Vegetal", + "block.minecraft.banner.spectrum.vegetal.pink": "Pink Vegetal", + "block.minecraft.banner.spectrum.vegetal.lime": "Lime Vegetal", + "block.minecraft.banner.spectrum.vegetal.yellow": "Yellow Vegetal", + "block.minecraft.banner.spectrum.vegetal.light_blue": "Light Blue Vegetal", + "block.minecraft.banner.spectrum.vegetal.magenta": "Magenta Vegetal", + "block.minecraft.banner.spectrum.vegetal.orange": "Orange Vegetal", + "block.minecraft.banner.spectrum.vegetal.white": "White Vegetal", + "block.minecraft.banner.spectrum.logo.black": "Black Color Theory", + "block.minecraft.banner.spectrum.logo.red": "Red Color Theory", + "block.minecraft.banner.spectrum.logo.green": "Green Color Theory", + "block.minecraft.banner.spectrum.logo.brown": "Brown Color Theory", + "block.minecraft.banner.spectrum.logo.blue": "Blue Color Theory", + "block.minecraft.banner.spectrum.logo.purple": "Purple Color Theory", + "block.minecraft.banner.spectrum.logo.cyan": "Cyan Color Theory", + "block.minecraft.banner.spectrum.logo.light_gray": "Light Gray Color Theory", + "block.minecraft.banner.spectrum.logo.gray": "Gray Color Theory", + "block.minecraft.banner.spectrum.logo.pink": "Pink Color Theory", + "block.minecraft.banner.spectrum.logo.lime": "Lime Color Theory", + "block.minecraft.banner.spectrum.logo.yellow": "Yellow Color Theory", + "block.minecraft.banner.spectrum.logo.light_blue": "Light Blue Color Theory", + "block.minecraft.banner.spectrum.logo.magenta": "Magenta Color Theory", + "block.minecraft.banner.spectrum.logo.orange": "Orange Color Theory", + "block.minecraft.banner.spectrum.logo.white": "White Color Theory", + "block.minecraft.banner.spectrum.four_leaf_clover.black": "Black Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.red": "Red Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.green": "Green Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.brown": "Brown Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.blue": "Blue Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.purple": "Purple Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.cyan": "Cyan Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.light_gray": "Light Gray Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.gray": "Gray Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.pink": "Pink Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.lime": "Lime Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.yellow": "Yellow Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.light_blue": "Light Blue Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.magenta": "Magenta Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.orange": "Orange Four-leafed Clover", + "block.minecraft.banner.spectrum.four_leaf_clover.white": "White Four-leafed Clover", + "block.minecraft.banner.spectrum.multitool.black": "Black Multitool", + "block.minecraft.banner.spectrum.multitool.red": "Red Multitool", + "block.minecraft.banner.spectrum.multitool.green": "Green Multitool", + "block.minecraft.banner.spectrum.multitool.brown": "Brown Multitool", + "block.minecraft.banner.spectrum.multitool.blue": "Blue Multitool", + "block.minecraft.banner.spectrum.multitool.purple": "Purple Multitool", + "block.minecraft.banner.spectrum.multitool.cyan": "Cyan Multitool", + "block.minecraft.banner.spectrum.multitool.light_gray": "Light Gray Multitool", + "block.minecraft.banner.spectrum.multitool.gray": "Gray Multitool", + "block.minecraft.banner.spectrum.multitool.pink": "Pink Multitool", + "block.minecraft.banner.spectrum.multitool.lime": "Lime Multitool", + "block.minecraft.banner.spectrum.multitool.yellow": "Yellow Multitool", + "block.minecraft.banner.spectrum.multitool.light_blue": "Light Blue Multitool", + "block.minecraft.banner.spectrum.multitool.magenta": "Magenta Multitool", + "block.minecraft.banner.spectrum.multitool.orange": "Orange Multitool", + "block.minecraft.banner.spectrum.multitool.white": "White Multitool", + "block.minecraft.banner.spectrum.guidebook.black": "Black Colorful World", + "block.minecraft.banner.spectrum.guidebook.red": "Red Colorful World", + "block.minecraft.banner.spectrum.guidebook.green": "Green Colorful World", + "block.minecraft.banner.spectrum.guidebook.brown": "Brown Colorful World", + "block.minecraft.banner.spectrum.guidebook.blue": "Blue Colorful World", + "block.minecraft.banner.spectrum.guidebook.purple": "Purple Colorful World", + "block.minecraft.banner.spectrum.guidebook.cyan": "Cyan Colorful World", + "block.minecraft.banner.spectrum.guidebook.light_gray": "Light Gray Colorful World", + "block.minecraft.banner.spectrum.guidebook.gray": "Gray Colorful World", + "block.minecraft.banner.spectrum.guidebook.pink": "Pink Colorful World", + "block.minecraft.banner.spectrum.guidebook.lime": "Lime Colorful World", + "block.minecraft.banner.spectrum.guidebook.yellow": "Yellow Colorful World", + "block.minecraft.banner.spectrum.guidebook.light_blue": "Light Blue Colorful World", + "block.minecraft.banner.spectrum.guidebook.magenta": "Magenta Colorful World", + "block.minecraft.banner.spectrum.guidebook.orange": "Orange Colorful World", + "block.minecraft.banner.spectrum.guidebook.white": "White Colorful World", + "block.minecraft.banner.spectrum.crafting_tablet.black": "Black Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.red": "Red Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.green": "Green Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.brown": "Brown Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.blue": "Blue Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.purple": "Purple Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.cyan": "Cyan Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.light_gray": "Light Gray Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.gray": "Gray Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.pink": "Pink Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.lime": "Lime Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.yellow": "Yellow Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.light_blue": "Light Blue Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.magenta": "Magenta Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.orange": "Orange Crafting Tablet", + "block.minecraft.banner.spectrum.crafting_tablet.white": "White Crafting Tablet", + "block.minecraft.banner.spectrum.ink_flask.black": "Black Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.red": "Red Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.green": "Green Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.brown": "Brown Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.blue": "Blue Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.purple": "Purple Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.cyan": "Cyan Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.light_gray": "Light Gray Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.gray": "Gray Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.pink": "Pink Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.lime": "Lime Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.yellow": "Yellow Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.light_blue": "Light Blue Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.magenta": "Magenta Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.orange": "Orange Ink Flask", + "block.minecraft.banner.spectrum.ink_flask.white": "White Ink Flask", + "block.minecraft.banner.spectrum.amethyst_shard.black": "Black Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.red": "Red Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.green": "Green Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.brown": "Brown Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.blue": "Blue Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.purple": "Purple Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.cyan": "Cyan Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.light_gray": "Light Gray Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.gray": "Gray Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.pink": "Pink Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.lime": "Lime Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.yellow": "Yellow Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.light_blue": "Light Blue Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.magenta": "Magenta Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.orange": "Orange Amethyst Shard", + "block.minecraft.banner.spectrum.amethyst_shard.white": "White Amethyst Shard", + "block.minecraft.banner.spectrum.raw_azurite.black": "Black Azurite", + "block.minecraft.banner.spectrum.raw_azurite.red": "Red Azurite", + "block.minecraft.banner.spectrum.raw_azurite.green": "Green Azurite", + "block.minecraft.banner.spectrum.raw_azurite.brown": "Brown Azurite", + "block.minecraft.banner.spectrum.raw_azurite.blue": "Blue Azurite", + "block.minecraft.banner.spectrum.raw_azurite.purple": "Purple Azurite", + "block.minecraft.banner.spectrum.raw_azurite.cyan": "Cyan Azurite", + "block.minecraft.banner.spectrum.raw_azurite.light_gray": "Light Gray Azurite", + "block.minecraft.banner.spectrum.raw_azurite.gray": "Gray Azurite", + "block.minecraft.banner.spectrum.raw_azurite.pink": "Pink Azurite", + "block.minecraft.banner.spectrum.raw_azurite.lime": "Lime Azurite", + "block.minecraft.banner.spectrum.raw_azurite.yellow": "Yellow Azurite", + "block.minecraft.banner.spectrum.raw_azurite.light_blue": "Light Blue Azurite", + "block.minecraft.banner.spectrum.raw_azurite.magenta": "Magenta Azurite", + "block.minecraft.banner.spectrum.raw_azurite.orange": "Orange Azurite", + "block.minecraft.banner.spectrum.raw_azurite.white": "White Azurite", + "block.minecraft.banner.spectrum.bedrock_dust.black": "Black Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.red": "Red Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.green": "Green Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.brown": "Brown Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.blue": "Blue Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.purple": "Purple Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.cyan": "Cyan Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.light_gray": "Light Gray Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.gray": "Gray Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.pink": "Pink Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.lime": "Lime Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.yellow": "Yellow Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.light_blue": "Light Blue Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.magenta": "Magenta Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.orange": "Orange Bedrock Dust", + "block.minecraft.banner.spectrum.bedrock_dust.white": "White Bedrock Dust", + "block.minecraft.banner.spectrum.shimmerstone.black": "Black Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.red": "Red Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.green": "Green Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.brown": "Brown Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.blue": "Blue Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.purple": "Purple Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.cyan": "Cyan Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.light_gray": "Light Gray Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.gray": "Gray Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.pink": "Pink Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.lime": "Lime Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.yellow": "Yellow Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.light_blue": "Light Blue Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.magenta": "Magenta Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.orange": "Orange Shimmerstone", + "block.minecraft.banner.spectrum.shimmerstone.white": "White Shimmerstone", + "block.minecraft.banner.spectrum.jade_vine.black": "Black Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.red": "Red Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.green": "Green Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.brown": "Brown Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.blue": "Blue Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.purple": "Purple Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.cyan": "Cyan Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.light_gray": "Light Gray Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.gray": "Gray Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.pink": "Pink Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.lime": "Lime Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.yellow": "Yellow Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.light_blue": "Light Blue Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.magenta": "Magenta Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.orange": "Orange Jade Vine", + "block.minecraft.banner.spectrum.jade_vine.white": "White Jade Vine", "trinkets.slot.chest.pin": "Pin", "trinkets.slot.head.crown": "Crown", "trinkets.slot.legs.pigment_palette": "Pigment Palette", - "item.spectrum.fanciful_stone_ring": "Fanciful Tuff Ring", "item.spectrum.fanciful_belt": "Fanciful Belt", "item.spectrum.fanciful_pendant": "Fanciful Pendant", "item.spectrum.fanciful_circlet": "Fanciful Circlet", "item.spectrum.fanciful_gloves": "Fanciful Gloves", + "item.spectrum.fanciful_bismuth_ring": "Fanciful Bismuth Ring", "item.spectrum.jeopardant": "Jeopardant", "item.spectrum.jeopardant.tooltip.damage_zero": "§7Increased Damage on low HP (currently §80 %%§7)", "item.spectrum.jeopardant.tooltip.damage": "§7Increased Damage on low HP (currently §a+%d %%§7)", @@ -1953,23 +2136,18 @@ "item.spectrum.azure_dike_ring.tooltip": "§7Slightly increases §9Azure Dike§7 charging", "item.spectrum.shieldgrasp_amulet": "Shieldgrasp Amulet", "item.spectrum.azure_dike_provider.tooltip": "§7Grants §a%d§7 units of §9Azure Dike", - "item.spectrum.total_capped_simple_pigment_energy_storage.tooltip": "§7Stores up to %d§7 Ink in total", - "item.spectrum.pigment_palette": "Pigment Palette", "item.spectrum.pigment_palette.tooltip": "§7Stores up to %d§7 Ink per type", "item.spectrum.artists_palette": "Artists Palette", "item.spectrum.artists_palette.tooltip": "§7Stores up to %d§7 of elemental Ink in total", "item.spectrum.artists_palette.tooltip.mix_on_demand": "§7Mixes other types of Ink on demand", - "item.spectrum.ink_flask": "Ink Flask", "item.spectrum.ink_flask.tooltip": "§7Stores up to %d§7 of one type of Ink", "item.spectrum.ink_assortment": "Ink Assortment", "item.spectrum.ink_assortment.tooltip": "§7Stores up to %d§7 Ink per type", - "item.spectrum.creative_ink_assortment": "Creative Ink Assortment", "item.spectrum.creative_ink_assortment.tooltip": "§7A never ending well of Ink", - "block.spectrum.color_picker": "Color Picker", "block.spectrum.color_picker.tooltip": "Converts §2P§3i§cg§6m§be§en§dt§7 into Ink", "block.spectrum.inkwell": "Inkwell", @@ -1978,7 +2156,6 @@ "block.spectrum.ink_duct.tooltip": "Transfers Ink in a straight line", "block.spectrum.crystal_apothecary": "Crystal Apothecary", "block.spectrum.crystal_apothecary.tooltip": "Place in a Geode to harvest Gemstone Shards", - "item.spectrum.neat_ring": "A Neat Ring", "item.spectrum.neat_ring.tooltip": "§7§oIts neat", "item.spectrum.lesser_potion_pendant": "Lesser Potion Pendant", @@ -1986,6 +2163,7 @@ "item.spectrum.potion_pendant.tooltip_not_full_one": "§7Fill with an Effect in the §fPotion Workshop", "item.spectrum.potion_pendant.tooltip_not_full_count": "§7Fill with up to §f%d§7 Effects in the §fPotion Workshop", "item.spectrum.potion_pendant.tooltip_max_level": "§7Supports Effects up to level ", + "item.spectrum.potion_pendant.when_worn": "When Worn:", "item.spectrum.radiance_pin": "Radiance Pin", "item.spectrum.radiance_pin.tooltip": "§7Places temporary Lights when in the Dark", "item.spectrum.ashen_circlet": "Ashen Circlet", @@ -1993,10 +2171,10 @@ "item.spectrum.ashen_circlet.tooltip2": "§7grants better Vision and Speed in Lava", "item.spectrum.ashen_circlet.tooltip.cooldown_full": "§2Ready to absorb immense heat", "item.spectrum.ashen_circlet.tooltip.cooldown_seconds": "%d§7 Seconds until recharged", - "item.spectrum.tidal_circlet": "Weeping Circlet", - "item.spectrum.tidal_circlet.tooltip": "§7Filters Oxygen out of the Water and", - "item.spectrum.tidal_circlet.tooltip2": "§7greatly increases underwater maneuverability", - "item.spectrum.tidal_circlet.tooltip3": "§7Heals your nearly §fAxolotls", + "item.spectrum.weeping_circlet": "Weeping Circlet", + "item.spectrum.weeping_circlet.tooltip": "§7Filters Oxygen out of the Water and", + "item.spectrum.weeping_circlet.tooltip2": "§7greatly increases underwater maneuverability", + "item.spectrum.weeping_circlet.tooltip3": "§7Heals your nearly §fAxolotls", "item.spectrum.puff_circlet": "Puff Circlet", "item.spectrum.puff_circlet.tooltip": "§7Uses §9Azure Dike§7 to protect you", "item.spectrum.puff_circlet.tooltip2": "§7from Projectiles and Fall Damage", @@ -2004,20 +2182,24 @@ "item.spectrum.whispy_circlet.tooltip": "§7Prevents Spawning of Phantoms", "item.spectrum.whispy_circlet.tooltip2": "§7Reduces the duration of Negative Effects", "item.spectrum.whispy_circlet.tooltip3": "§7Sleeping fully heals", + "item.spectrum.circlet_of_arrogance": "Circlet of Arrogance", + "item.spectrum.circlet_of_arrogance.tooltip": "§7Grants you immense stat boosts at great cost if you die", "item.spectrum.heartsingers_reward": "Heartsinger's Reward", "item.spectrum.heartsingers_reward.tooltip": "Grants you extra Hearts", "item.spectrum.gloves_of_dawns_grasp": "Gloves of Dawn's Grasp", "item.spectrum.gloves_of_dawns_grasp.tooltip": "Increases your Reach", - + "item.spectrum.ring_of_pursuit": "Ring of Pursuit", + "item.spectrum.ring_of_pursuit.tooltip": "Increases your Mining Speed", "item.spectrum.crafting_tablet": "Crafting Tablet", "item.spectrum.crafting_tablet.tooltip.no_recipe": "Put items into the Crafting Grid to save a Recipe", "item.spectrum.crafting_tablet.tooltip.crafting_recipe": "Press Use to Craft", "item.spectrum.crafting_tablet.tooltip.shift_to_view_gui": "Crouch-Use to open Crafting Grid", "item.spectrum.crafting_tablet.tooltip.pedestal_recipe": "Use in a Pedestal for Autocrafting", "item.spectrum.crafting_tablet.tooltip.recipe": "%d %s", - - "item.spectrum.shooting_star": "Star Fragment", + "item.spectrum.star_fragment": "Star Fragment", "item.spectrum.stardust": "Stardust", + "item.spectrum.frigid_stardust": "Frigid Stardust", + "item.spectrum.frigid_stardust.tooltip": "§o§9Gentle power", "item.spectrum.hibernating_jade_vine_seeds": "Hibernating Jade Vine Bulb", "item.spectrum.hibernating_jade_vine_seeds.tooltip": "Kind of... deadish?", "item.spectrum.germinated_jade_vine_seeds": "Germinated Jade Vine Bulb", @@ -2025,6 +2207,7 @@ "item.spectrum.germinated_jade_vine_seeds.tooltip2": "§7Only grows when exposed to §fMoonlight", "item.spectrum.germinated_jade_vine_seeds.tooltip3": "§eâš  Dies in Sunlight", "item.spectrum.jade_vine_petals": "Jade Petals", + "item.spectrum.moonstruck_nectar": "Moonstruck Nectar", "item.spectrum.moonstruck_nectar.tooltip": "Restorative properties allow repairing any damaged tool", "item.spectrum.moonstruck_nectar.tooltip2": "Can be drunk for a short burst of Regeneration", @@ -2039,7 +2222,6 @@ "item.spectrum.jaramel": "Jaramel", "item.spectrum.lucky_roll": "Lucky Roll", "item.spectrum.triple_meat_pot_pie": "Triple Meat Pot Pie", - "item.spectrum.star_candy": "Star Candy", "item.spectrum.star_candy.tooltip": "Cures a single negative status effect", "item.spectrum.purple_star_candy": "Star Candy", @@ -2056,18 +2238,36 @@ "item.spectrum.jade_wine.tooltip.preview": "Brew it with a combination of Bulbs & Petals", "item.spectrum.jade_wine.tooltip.preview2": "Petals ferment slower than Bulbs but reduce negative effects", "item.spectrum.pure_alcohol": "Pure Alcohol", - "item.spectrum.moonshine": "Moonshine", "item.spectrum.chrysocolla": "Chrysocolla", "item.spectrum.reprise": "Reprise", "item.spectrum.reprise.tooltip.teleport": "Teleports up to %d blocks in a random direction", "item.spectrum.kimchi": "Kimchi", "item.spectrum.fresh_chocolate": "Fresh Chocolate", - "item.spectrum.bodacious_berry_bar": "§cBodacious Berry Bar", + "item.spectrum.bodacious_berry_bar": "Bodacious Berry Bar", "item.spectrum.hot_chocolate": "Hot Chocolate", "item.spectrum.demon_tea": "Demon Tea", "item.spectrum.scone": "Scone", "item.spectrum.clotted_cream": "Clotted Cream", - "item.spectrum.clotted_cream.tooltip": "§ocreamy and sweet", + "item.spectrum.clotted_cream.tooltip": "Removes all Status Effects", + "item.spectrum.clotted_cream.tooltip2": "Creamy and sweet", + "item.spectrum.myceylon": "Myceylon", + "item.spectrum.myceylon_apple_pie": "Myceylon Apple Pie", + "item.spectrum.myceylon_pumpkin_pie": "Myceylon Pumpkin Pie", + "item.spectrum.myceylon_cookie": "Myceylon Cookie", + "block.spectrum.aloe": "Aloe", + "item.spectrum.aloe_leaf": "Aloe Leaf", + "block.spectrum.bristle_sprouts": "Bristle Sprouts", + "block.spectrum.doombloom": "Doombloom", + "item.spectrum.doombloom_seed": "Doombloom Seed", + "block.spectrum.snapping_ivy": "Snapping Ivy", + "block.spectrum.sawblade_holly_bush": "Sawblade Holly Bush", + "item.spectrum.sawblade_holly_berry": "Sawblade Holly Berry", + "block.spectrum.hummingstone": "Hummingstone", + "block.spectrum.hummingstone_glass": "Hummingstone Glass", + "item.spectrum.prickly_bayleaf": "Prickly Bayleaf", + "item.spectrum.spiked_potatoes": "Spiked Potatoes", + "item.spectrum.triple_meat_pot_stew": "Triple Meat Pot Stew", + "item.spectrum.dragonbone_broth": "Dragonbone Broth", "item.spectrum.infused_beverage": "Infused Beverage", "item.spectrum.infused_beverage.tooltip.age": "%d days aged - %d %% Alc.", "item.spectrum.infused_beverage.tooltip.variant.unknown": "Undefinable flavor", @@ -2099,11 +2299,13 @@ "item.spectrum.infused_beverage.tooltip.variant.artemisa": "Artemisa", "item.spectrum.infused_beverage.tooltip.variant.advocaat": "Advocaat", "item.spectrum.infused_beverage.tooltip.variant.gin": "Gin", - + "item.spectrum.infused_beverage.tooltip.variant.myceylon_liquor": "Myceylon Liquor", + "item.spectrum.infused_beverage.tooltip.variant.spiked_mullet_wine": "Spiked Mullet Wine", + "item.spectrum.infused_beverage.tooltip.variant.myceylon_apple_juice": "Myceylon Apple Juice", + "item.spectrum.infused_beverage.tooltip.variant.moonshine": "Moonshine", "item.spectrum.freigeist": "Freigeist", "item.spectrum.freigeist.tooltip": "§4♥§r You wish you were an Angel? §4♡§r", "item.spectrum.divination_heart": "Divination Heart", - "item.spectrum.crescent_clock": "Crescent Clock", "item.spectrum.gilded_book": "Gilded Book", "item.spectrum.gilded_book.tooltip.enchantability": "High Enchantability", @@ -2111,33 +2313,30 @@ "item.spectrum.gilded_book.tooltip.copy_enchantments2": "from any desired item onto this book", "item.spectrum.enchantment_canvas": "Enchantment Canvas", "item.spectrum.enchantment_canvas.tooltip.bound_to": "§7Bound to ", - "item.spectrum.enchantment_canvas.tooltip.not_bound": "§7Click onto an item to swap Enchantments", - "item.spectrum.enchantment_canvas.tooltip.not_bound2": "§7The Canvas will be then bound to items of that type", - + "item.spectrum.enchantment_canvas.tooltip.not_bound": "§7Right click onto an item to swap Enchantments", + "item.spectrum.enchantment_canvas.tooltip.not_bound2": "§7The Canvas will be bound to items of that type", "item.spectrum.mysterious_locket": "Mysterious Locket", "item.spectrum.mysterious_locket.tooltip": "Features an crystal ornament which resembles a lock", "item.spectrum.mysterious_locket.tooltip2": "softly glowing a pale white color", - "item.spectrum.bottle_of_fading": "Bottle of Fading", "item.spectrum.bottle_of_fading.tooltip": "§2Glibbery", "item.spectrum.bottle_of_failing": "Bottle of Failing", "item.spectrum.bottle_of_failing.tooltip": "§eâš  Hungry", "item.spectrum.bottle_of_ruin": "Bottle of Ruin", "item.spectrum.bottle_of_ruin.tooltip": "§4âš  You will probably regret this, wont you?", - "item.spectrum.bottle_of_terror": "Bottle of Terror", - "item.spectrum.bottle_of_terror.tooltip": "§4âš  I hope you know what you are doing", + "item.spectrum.bottle_of_forfeiture": "Bottle of Forfeiture", + "item.spectrum.bottle_of_forfeiture.tooltip": "§4âš  I hope you know what you are doing", "item.spectrum.bottle_of_decay_away": "Bottle of Decay Away", "item.spectrum.bottle_of_decay_away.tooltip": "§2Apply directly to corrupted area", "block.spectrum.fading": "Fading", "block.spectrum.failing": "Failing", "block.spectrum.ruin": "Ruin", - "block.spectrum.terror": "Terror", + "block.spectrum.forfeiture": "Forfeiture", "block.spectrum.decay_away": "Decay Away", "block.spectrum.particle_spawner": "Particle Spawner", "block.spectrum.creative_particle_spawner": "Creative Particle Spawner", "block.spectrum.creative_particle_spawner.tooltip": "Unbreakable - does not require Redstone", "block.spectrum.cracked_end_portal_frame": "Cracked End Portal Frame", - "block.spectrum.present": "Present", "block.spectrum.present.tooltip.description": "Click it on items to add them to the Present", "block.spectrum.present.tooltip.description2": "Then put it in a crafting grid and add Pigment to wrap", @@ -2145,19 +2344,20 @@ "block.spectrum.present.tooltip.wrapped.giver": "Wrapped by %s (place and sneak-use to open)", "block.spectrum.present.tooltip.wrapped_placed": "A present! Sneak-use to open", "block.spectrum.present.tooltip.wrapped_placed.giver": "A present wrapped by %s! (sneak-use to open)", - "block.spectrum.titration_barrel": "Titration Barrel", - "block.spectrum.titration_barrel.content_count": "Contains %d items (of %d max). Seal with a Colored Plank to start fermenting.", - "block.spectrum.titration_barrel.content_count_full": "Contains %d items (full). Seal with a Colored Plank to start fermenting.", + "block.spectrum.titration_barrel.content_count_without_fluid": "Contains %d items and no liquid. Seal with a Colored Plank to start fermenting.", + "block.spectrum.titration_barrel.content_count_without_fluid_full": "Contains %d items (full) and no fluid. Seal with a Colored Plank to start fermenting.", + "block.spectrum.titration_barrel.content_count_with_fluid": "Contains %s and %d items. Seal with a Colored Plank to start fermenting.", + "block.spectrum.titration_barrel.content_count_with_fluid_full": "Contains %s and %d items (full). Seal with a Colored Plank to start fermenting.", "block.spectrum.titration_barrel.tapping_item_required": "Tapping requires a ", - "block.spectrum.titration_barrel.days_of_sealing_before_opened": "Sealed up %d days ago. Sneak-Use to open", + "block.spectrum.titration_barrel.days_of_sealing_before_opened": "Sealed up %d mc days ago (%s real days). Sneak-Use to unseal", + "block.spectrum.titration_barrel.invalid_recipe": "This does not seem like it would produce something drinkable...", "block.spectrum.titration_barrel.invalid_recipe_when_tapping": "This barrel only contained an undrinkable mixture. Eww", "block.spectrum.titration_barrel.empty_when_tapping": "It... was empty. Huh", - "block.spectrum.titration_barrel.missing_water_when_tapping": "The barrel seems to have lacked water so the content had gone bad. Pity", - "block.spectrum.titration_barrel.days_of_sealing_after_opened_with_extractable_amount": " was fermenting for %d days (enough content for %d Bottles)", - "block.spectrum.titration_barrel.invalid_recipe_after_opened": "A undrinkable mixture was fermenting for %d days. Eww", + "block.spectrum.titration_barrel.missing_liquid_when_tapping": "The barrel seems to have liquid water so the content had gone bad. Pity", + "block.spectrum.titration_barrel.days_of_sealing_after_opened_with_extractable_amount": "%s was fermenting for %d mc days (%s real days)", + "block.spectrum.titration_barrel.invalid_recipe_after_opened": "A undrinkable mixture was fermenting for %d mc days (%s real days). Eww", "block.spectrum.titration_barrel.debug_added_day": "(Debug Function) Added a real life day of fermentation time", - "advancements.spectrum.break_decayed_bedrock.title": "Groundbreaking", "advancements.spectrum.break_decayed_bedrock.description": "Break Decayed Bedrock using a Netherite Pickaxe", "advancements.spectrum.break_budding_block_with_resonance_tool.title": "Budding Friendship", @@ -2171,7 +2371,9 @@ "advancements.spectrum.build_basic_pedestal_structure.title": "Funneling Magic", "advancements.spectrum.build_basic_pedestal_structure.description": "To fully harness the powers of your improved Pigment Pedestal you will need to build a structure that funnels the energy from gemstones to it", "advancements.spectrum.build_complex_pedestal_structure.title": "Construct the Spectrum Complex", - "advancements.spectrum.build_complex_pedestal_structure.description": "Upgrade your Pedestal structure another time fully harness it's magical powers", + "advancements.spectrum.build_complex_pedestal_structure.description": "Upgrade your Pedestal Structure one last time to fully harness it's magical powers", + "advancements.spectrum.build_complex_pedestal_structure_without_moonstone.title": "A Missing Puzzle Piece", + "advancements.spectrum.build_complex_pedestal_structure_without_moonstone.description": "Pick up Moonstone Chiseled Blocks from a structure Deeper Down to expand your own Pedestals Structure", "advancements.spectrum.carry_too_many_heavy_gravity_blocks.title": "Encumbrance? We ignored that", "advancements.spectrum.carry_too_many_heavy_gravity_blocks.description": "Carry so much Stratine with you that you get unable to jump", "advancements.spectrum.carry_too_many_low_gravity_blocks.title": "Noone could see that coming", @@ -2194,14 +2396,14 @@ "advancements.spectrum.collect_gemstone_powder.description": "Crafting in the Pigment Pedestal requires Gemstone Powder. What is the most straightforward way to crush something?", "advancements.spectrum.collect_grayscale_pigments.title": "Four shades of Gray", "advancements.spectrum.collect_grayscale_pigments.description": "Complete your Pigment Collection by collecting the four grayscale Pigments", - "advancements.spectrum.collect_lightning_stone.title": "Thunderstruck", - "advancements.spectrum.collect_lightning_stone.description": "Discover the Source of Storm Stones", + "advancements.spectrum.collect_storm_stone.title": "Thunderstruck", + "advancements.spectrum.collect_storm_stone.description": "Discover the Source of Storm Stones", "advancements.spectrum.collect_mermaids_gem.title": "What grows deep under the Sea?", "advancements.spectrum.collect_mermaids_gem.description": "Collect a Mermaids Gem", "advancements.spectrum.collect_moonstone_shard.title": "The Brightest of Whites", "advancements.spectrum.collect_moonstone_shard.description": "Discover a Moonstone Geode", - "advancements.spectrum.collect_paletur.title": "Watch it fly by", - "advancements.spectrum.collect_paletur.description": "Collect a fragment of Paltaeria", + "advancements.spectrum.collect_paltaeria.title": "Watch it fly by", + "advancements.spectrum.collect_paltaeria.description": "Collect a fragment of Paltaeria", "advancements.spectrum.collect_pigment.title": "Collect pure Pigment", "advancements.spectrum.collect_pigment.description": "Break the Leaves of a Colored Tree to get the pure Pigment you so desired. The Leaves release their precious harvest only when broken by You personally", "advancements.spectrum.collect_quitoxic_reeds.title": "Swamped", @@ -2210,14 +2412,14 @@ "advancements.spectrum.craft_resonant_pickaxe.description": "Craft the Resonant Pickaxe. It's smooth vibrations seem to enable you to harvest a range of special blocks that were once unobtainable", "advancements.spectrum.collect_resonant_lily.title": "One elusive Flower", "advancements.spectrum.collect_resonant_lily.description": "Pick up a Resonant Lily", - "advancements.spectrum.collect_scarlet.title": "Heavy Load", - "advancements.spectrum.collect_scarlet.description": "Retrieve Stratine from the Depths of the Nether", - "advancements.spectrum.collect_shooting_star.title": "Starry Skies", - "advancements.spectrum.collect_shooting_star.description": "Gather the precious Remnants of a Shooting Star", + "advancements.spectrum.collect_stratine.title": "Heavy Load", + "advancements.spectrum.collect_stratine.description": "Retrieve Stratine from the Depths of the Nether", + "advancements.spectrum.collect_star_fragment.title": "Starry Skies", + "advancements.spectrum.collect_star_fragment.description": "Gather the precious Remnants of a Shooting Star", "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.title": "Having a Break", "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.description": "Place a Crystal Apothecary in the center of a Geode with fully grown Clusters", - "advancements.spectrum.collect_sparklestone.title": "More than meets the Eye", - "advancements.spectrum.collect_sparklestone.description": "You never noticed this Ore before at all.... weird. Is there more to the world than you previously thought?", + "advancements.spectrum.collect_shimmerstone.title": "More than meets the Eye", + "advancements.spectrum.collect_shimmerstone.description": "You never noticed this Ore before at all.... weird. Is there more to the world than you previously thought?", "advancements.spectrum.collect_vegetal.title": "Organic Matter", "advancements.spectrum.collect_vegetal.description": "Place them food, lean back and watch them devour... then break them to harvest their drops.", "advancements.spectrum.craft_bottle_of_fading.title": "What Should Not Be", @@ -2242,26 +2444,26 @@ "advancements.spectrum.fail_to_take_item_out_of_pedestal.description": "Trigger it with a Paintbrush or Redstone to start crafting", "advancements.spectrum.create_onyx_shard.title": "Back in Black", "advancements.spectrum.create_onyx_shard.description": "Use the Fusion Shrine to create a black shard in the darkest of nights", - "advancements.spectrum.dark_light_staff.title": "Whoa! This is Worthless", - "advancements.spectrum.dark_light_staff.description": "Change the Light Level of one of Radiance Staffs Lights to 1 by using the Staff on it", + "advancements.spectrum.dark_radiance_staff.title": "Whoa! This is Worthless", + "advancements.spectrum.dark_radiance_staff.description": "Change the Light Level of one of Radiance Staffs Lights to 1 by using the Staff on it", "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.title": "I am Speed", "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.description": "Cut through the world using an Oblivion Pickaxe enchanted with Efficiency", "advancements.spectrum.enter_dimension.title": "What was once impenetrable", "advancements.spectrum.enter_dimension.description": "-- not implemented starting here -- coming in a future update --", - "advancements.spectrum.fill_void_bundle.title": "Filled to the Brim", - "advancements.spectrum.fill_void_bundle.description": "Completely fill up a Bottomless Bundle", - "advancements.spectrum.fill_void_bundle_for_real_this_time.title": "For real this time", - "advancements.spectrum.fill_void_bundle_for_real_this_time.description": "Completely fill up a fully enchanted Bottomless Bundle by collecting 2000000000 items of one type", - "advancements.spectrum.get_player_only_glass.title": "Peace and Satisfaction", - "advancements.spectrum.get_player_only_glass.description": "Craft semi-permeable glass to protect your home from intruders", + "advancements.spectrum.fill_bottomless_bundle.title": "Filled to the Brim", + "advancements.spectrum.fill_bottomless_bundle.description": "Completely fill up a Bottomless Bundle", + "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.title": "For real this time", + "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.description": "Completely fill up a fully enchanted Bottomless Bundle by collecting 2000000000 items of one type", + "advancements.spectrum.get_semi_permeable_glass.title": "Peace and Satisfaction", + "advancements.spectrum.get_semi_permeable_glass.description": "Craft semi-permeable glass to protect your home from intruders", "advancements.spectrum.grow_ominous_sapling.title": "A failed experiment?", "advancements.spectrum.grow_ominous_sapling.description": "It looks... kind of dead?", "advancements.spectrum.place_pedestal.title": "A new way to craft", "advancements.spectrum.place_pedestal.description": "Craft your personal Pigment Pedestal and place it down", "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.title": "I must go, my planet needs me", "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.description": "Overload one of your animals with Paltaeria. Bye bye", - "advancements.spectrum.get_ender_treasure.title": "Torn from cold, dead Hands", - "advancements.spectrum.get_ender_treasure.description": "Some Endermen that appear in your world carry blocks with them that seem to radiate an eerie aura", + "advancements.spectrum.get_radiating_ender.title": "Torn from cold, dead Hands", + "advancements.spectrum.get_radiating_ender.description": "Some Endermen that appear in your world carry blocks with them that seem to radiate an eerie aura", "advancements.spectrum.spectrum.title": "Spectrum - Start of a Journey", "advancements.spectrum.spectrum.description": "A story about magic, color and chaos", "advancements.spectrum.spectrum_lategame.title": "Spectrum - Turn to Purity", @@ -2270,19 +2472,20 @@ "advancements.spectrum.spectrum_midgame.description": "A story about curiosity and greed", "advancements.spectrum.use_all_pedestal_upgrades.title": "Enhance", "advancements.spectrum.use_all_pedestal_upgrades.description": "Place an Upgrade on top of each of the four Gemstone Blocks of your Pedestal Structure to improve its properties", - "advancements.spectrum.use_end_portal_cracker.title": "I like to move it, move it", - "advancements.spectrum.use_end_portal_cracker.description": "Use an End Portal Cracker on an End Portal Frame and let destruction ensue", + "advancements.spectrum.use_perturbed_eye.title": "I like to move it, move it", + "advancements.spectrum.use_perturbed_eye.description": "Socket a Perturbed Eye into an End Portal Frame and let destruction ensue", "advancements.spectrum.use_glistering_melon_seeds.title": "A sign of Prosperity", "advancements.spectrum.use_glistering_melon_seeds.description": "Get a Glistering Melon... Plant!", "advancements.spectrum.plant_ominous_sapling.title": "Let it grow, let it grow!", "advancements.spectrum.plant_ominous_sapling.description": "You're sure combining Vegetal with a Young sapling will yield something interesting", - "advancements.spectrum.build_fusion_shrine.title": "Powerful Display", "advancements.spectrum.build_fusion_shrine.description": "Construct the Fusion Shrine", "advancements.spectrum.build_enchanting_structure.title": "Next Level Enchanting", "advancements.spectrum.build_enchanting_structure.description": "Construct the Enchanter Structure", "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.title": "Dragons last Breath", - "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.description": "Collect the Ender Dragons Head using a Weapon enchanted with Treasure Hunter", + "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.description": "Collect the Ender Dragon's Head using a Weapon enchanted with Treasure Hunter", + "advancements.spectrum.collect_warden_head_using_treasure_hunter.title": "Warden't", + "advancements.spectrum.collect_warden_head_using_treasure_hunter.description": "Collect the Warden's Head using a Weapon enchanted with Treasure Hunter", "advancements.spectrum.collect_wither_head_using_treasure_hunter.title": "A Withious Cycle", "advancements.spectrum.collect_wither_head_using_treasure_hunter.description": "Collect a Wither Skull using a weapon enchanted with Treasure Hunter", "advancements.spectrum.create_spectral_shard.title": "Somewhere over the Rainbow", @@ -2303,8 +2506,8 @@ "advancements.spectrum.fill_knowledge_gem.description": "Fill a Knowledge Gem with 10.000 Experience", "advancements.spectrum.fill_knowledge_gem_for_real_this_time.title": "My IN-Mod is +6", "advancements.spectrum.fill_knowledge_gem_for_real_this_time.description": "Fill a fully enchanted Knowledge Gem with an uncountable amount of Experience", - "advancements.spectrum.enchant_exchange_staff.title": "More than a Building Tool", - "advancements.spectrum.enchant_exchange_staff.description": "Create and enchant an Exchanging Staff", + "advancements.spectrum.enchant_exchanging_staff.title": "More than a Building Tool", + "advancements.spectrum.enchant_exchanging_staff.description": "Create and enchant an Exchanging Staff", "advancements.spectrum.gift_or_open_present.title": "Colorful Spectacle", "advancements.spectrum.gift_or_open_present.description": "Fill and wrap a present and place it down for someone you like to open - or open one yourself", "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.title": "The fastest Pick in the West", @@ -2338,7 +2541,7 @@ "advancements.spectrum.collect_all_shooting_star_variants.title": "Star Child", "advancements.spectrum.collect_all_shooting_star_variants.description": "Crouch-click on a Shooting Star to pick it up. Can you collect all variants?", "advancements.spectrum.equip_neat_ring.title": "Neat", - "advancements.spectrum.equip_neat_ring.description": "Neat", + "advancements.spectrum.equip_neat_ring.description": "Craft and equip an insanely expensive ring to assert dominance", "advancements.spectrum.high_jump_with_take_off_belt.title": "Perfect Timing", "advancements.spectrum.high_jump_with_take_off_belt.description": "Charge up a Take-Off Belt to the maximum by sneaking. Then jump!", "advancements.spectrum.take_off_belt_overcharged.title": "Not-So-Perfect Timing", @@ -2351,8 +2554,8 @@ "advancements.spectrum.high_ink_use.description": "Use a high amount of Ink with a single action", "advancements.spectrum.fill_pigment_palette.title": "So much Room for Activities", "advancements.spectrum.fill_pigment_palette.description": "Fill up your Pigment Palette with all types of Ink available", - "advancements.spectrum.craft_pigment_palette.title": "The Artist", - "advancements.spectrum.craft_pigment_palette.description": "Craft a Pigment Palette to easier store the essence of your magical powers", + "advancements.spectrum.equip_pigment_palette.title": "The Artist", + "advancements.spectrum.equip_pigment_palette.description": "Equip a Pigment Palette to easier store the essence of your magical powers. You can fill it with Ink to power your Staffs", "advancements.spectrum.fill_ink_container.title": "A new Form of Energy", "advancements.spectrum.fill_ink_container.description": "Use the Color Picker to fill an Ink container", "advancements.spectrum.brew_potion_in_potion_workshop.title": "Alchemy with a Touch of Magic", @@ -2365,8 +2568,6 @@ "advancements.spectrum.fill_potion_pendant.description": "Use the Potion Workshop to infuse a Potion Pendant with an effect", "advancements.spectrum.enchant_seven_league_boots.title": "Hell for Leather", "advancements.spectrum.enchant_seven_league_boots.description": "Enchant your Seven League Boots with Power to become even quicker", - "advancements.spectrum.collect_moonstone_chiseled_block.title": "Hostile Paradise Below", - "advancements.spectrum.collect_moonstone_chiseled_block.description": "Pick up Moonstone Chiseled Blocks from a Structure Deeper Down to expand your own Pedestals Structure", "advancements.spectrum.build_spirit_instiller_structure.title": "The Will of the Wisps", "advancements.spectrum.build_spirit_instiller_structure.description": "Construct the Spirit Instiller structure", "advancements.spectrum.manifest_memory.title": "Back Again", @@ -2401,10 +2602,10 @@ "advancements.spectrum.grow_malachite_in_crystallarieum.description": "The growth of Malachite seems so slow, you will probably not be able to experience it in your lifetime. Is there an other way?", "advancements.spectrum.build_cinderhearth_structure.title": "Going Full Blast", "advancements.spectrum.build_cinderhearth_structure.description": "Put a Cinderhearth into operation", - "advancements.spectrum.build_cinderhearth_without_lava_structure.title": "But... why?", - "advancements.spectrum.build_cinderhearth_without_lava_structure.description": "I said 'it looks so much better WITH Lava', smartass.", - "advancements.spectrum.doubled_output_in_cinderhearth.title": "Ink to Matter", - "advancements.spectrum.doubled_output_in_cinderhearth.description": "Use Light Blue Ink in the Cinderhearth to double your smelting Output", + "advancements.spectrum.build_cinderhearth_without_lava_structure.title": "Was that really necessary?", + "advancements.spectrum.build_cinderhearth_without_lava_structure.description": "The book said 'it looks so much better WITH Lava', smartass", + "advancements.spectrum.smelt_in_cinderhearth_with_yield_upgrades.title": "Ink to Matter", + "advancements.spectrum.smelt_in_cinderhearth_with_yield_upgrades.description": "Use a Production Surge and Light Blue Ink in the Cinderhearth for a chance to multiply your smelting output", "advancements.spectrum.smelt_pure_resource_in_cinderhearth.title": "Ore Avalanche", "advancements.spectrum.smelt_pure_resource_in_cinderhearth.description": "The Cinderhearth seems to be immensely more efficient when smelting pure resource clusters compared to a mundane Blast Furnace", "advancements.spectrum.collect_pure_resource.title": "Same, but Different", @@ -2434,10 +2635,10 @@ "advancements.spectrum.tap_sweetened_jade_wine.title": "Ancient Booze++", "advancements.spectrum.tap_sweetened_jade_wine.description": "Looks..tastes? like Jade Wine gets much more easy to the tongue when adding a drop of sweetness", "advancements.spectrum.tap_suspicious_brew.title": "Not a Cow's Udder Juice", - "advancements.spectrum.tap_suspicious_brew.description": "Drink a Suspicious Brew", + "advancements.spectrum.tap_suspicious_brew.description": "Brew a Suspicious Brew", "advancements.spectrum.tap_pure_alcohol.title": "Kinda high Percentage", "advancements.spectrum.tap_pure_alcohol.description": "Let a Titration Barrel ferment for so long the content turned into Pure Alcohol", - "advancements.spectrum.tap_aged_air.title": "A whole lot of Nothing", + "advancements.spectrum.tap_aged_air.title": "A whole Lot of Nothing", "advancements.spectrum.tap_aged_air.description": "Tap a Titration Barrel sealed over multiple days with nothing inside", "advancements.spectrum.tap_chrysocolla.title": "Probably better with Salad", "advancements.spectrum.tap_chrysocolla.description": "Tap Jade Wine that has matured a little too long", @@ -2445,12 +2646,12 @@ "advancements.spectrum.pluck_blood_orchid_petal.description": "Create a Blood Orchid Plant and pluck it to get more Petals", "advancements.spectrum.craft_salted_jaramel_trifle_or_tart.title": "Extra Salty", "advancements.spectrum.craft_salted_jaramel_trifle_or_tart.description": "Bake with the tears of your enemies", - "advancements.spectrum.eat_each_pastry.title": "Color Connosseur", + "advancements.spectrum.eat_each_pastry.title": "Color Connoisseur", "advancements.spectrum.eat_each_pastry.description": "Craft and eat all pastries there are", "advancements.spectrum.collect_blood_orchid_petal.title": "Jagged Leaf", "advancements.spectrum.collect_blood_orchid_petal.description": "Find a Blood Orchid Petal", "advancements.spectrum.remember_egg_laying_wooly_pig.title": "Once only a Tale", - "advancements.spectrum.remember_egg_laying_wooly_pig.description": "Hatch the Memory of a Egg Laying Wooly Pig", + "advancements.spectrum.remember_egg_laying_wooly_pig.description": "Hatch the Memory of an Egg Laying Wooly Pig", "advancements.spectrum.have_half_a_heart_with_divinity.title": "Dangerously Close To Gods", "advancements.spectrum.have_half_a_heart_with_divinity.description": "Drink Freigeist, ascend then and reach only half a heart", "advancements.spectrum.kill_a_mob_with_frenzy3.title": "Dark Passion Play", @@ -2464,15 +2665,17 @@ "advancements.spectrum.survive_drinking_incandescent_amalgam.title": "I was the Sun, Once", "advancements.spectrum.survive_drinking_incandescent_amalgam.description": "Survive the damage dealt to you when drinking Incandescent Amalgam", "advancements.spectrum.place_incandescent_amalgam.title": "Okay, now... what?", - "advancements.spectrum.place_incandescent_amalgam.description": "Incandescent Amalgam is a high yield explosive that is triggered by the slightest force of any kind and leaves behind a gigantic, burning crater", - - "advancements.spectrum.collect_mysterious_locket.title": "TODO", - "advancements.spectrum.collect_mysterious_locket.description": "TODO", - "advancements.spectrum.open_mysterious_locket.title": "TODO", + "advancements.spectrum.place_incandescent_amalgam.description": "Incandescent Amalgam is a high yield explosive that is triggered by the slightest force of any kind and leaves behind a gigantic, burning crater. Good luck.", + "advancements.spectrum.trigger_unenchanted_workstaff.title": "But Why", + "advancements.spectrum.trigger_unenchanted_workstaff.description": "Disenchant a Workstaff and think about what you've done", + "advancements.spectrum.collect_noxwood.title": "Mushroom Trees?", + "advancements.spectrum.collect_noxwood.description": "Stumble upon Noxwood", + "advancements.spectrum.collect_mysterious_locket.title": "A Mysterious Locket", + "advancements.spectrum.collect_mysterious_locket.description": "Find a mysterious locket in a dungeon chest. What is it for? Who did it belong to?", + "advancements.spectrum.open_mysterious_locket.title": "Guided by Spirit's Hand", "advancements.spectrum.open_mysterious_locket.description": "Want to know, what's inside? Stay tuned for Spectrum's next update!", - "advancements.spectrum.find_ancient_ruins.title": "An impenetrable Fort", - "advancements.spectrum.find_ancient_ruins.description": "In the underground you found a well-protected structure. There HAS to be a way to get into them! If not now, then later... better keep this place in mind.", + "advancements.spectrum.find_ancient_ruins.description": "In the underground you found a well-protected structure. There HAS to be a way to get into it! If not now, then later... better keep this place in mind.", "advancements.spectrum.enter_color_mixing_puzzle_structure.title": "Mixed Up", "advancements.spectrum.enter_color_mixing_puzzle_structure.description": "A structure guarded by a clever puzzle... no more", "advancements.spectrum.enter_ancient_ruins.title": "A Sturdy Dike", @@ -2481,15 +2684,39 @@ "advancements.spectrum.enter_wireless_redstone_puzzle_structure.description": "A structure protected by solid Bedrock... no more", "advancements.spectrum.generate_ancient_ruins_loot.title": "Gift from an Ancient Civilization", "advancements.spectrum.generate_ancient_ruins_loot.description": "Discover the precious contents of an Ancient Treasure Chest", - - "______food_tooltips" : "Food Tooltips:", + "advancements.spectrum.break_gemstone_ore.title": "Gemstone Prospector", + "advancements.spectrum.break_gemstone_ore.description": "Mine Gemstone Ore. You found it right next to a Geode - a good indicator a Geode is close!", + "advancements.spectrum.collect_moonstone_core.title": "Bright Powerhouse", + "advancements.spectrum.collect_moonstone_core.description": "Find a Moonstone Core in the underground cities", + "advancements.spectrum.create_glass_crest_tool.title": "Ink Powered", + "advancements.spectrum.create_glass_crest_tool.description": "Create a Tool made out of Malachite and socket it with a Moonstone Core", + "advancements.spectrum.open_deeper_down_portal.title": "Abysmal", + "advancements.spectrum.open_deeper_down_portal.description": "Open a Portal... Deeper Down", + "advancements.spectrum.shoot_fully_overcharged_crossbow.title": "Supercharged", + "advancements.spectrum.shoot_fully_overcharged_crossbow.description": "Shoot a fully charged Glass Crest Crossbow", + "advancements.spectrum.collect_myceylon.title": "Mushroom Aromatics", + "advancements.spectrum.collect_myceylon.description": "Use an Axe to scrap the bark off of a Noxwood Mushroom", + "advancements.spectrum.collect_prickly_bayleaf.title": "Pain Flavored", + "advancements.spectrum.collect_prickly_bayleaf.description": "Pluck a Leaf off of a Prickly Bayleaf plant. They smell amazing in stews, but aren't too great to eat raw.", + "advancements.spectrum.create_pastel_network.title": "Pastel Linked", + "advancements.spectrum.create_pastel_network.description": "Create a Pastel Network by Linking two Pastel Nodes", + "advancements.spectrum.create_pastel_network_using_every_node_type.title": "Pastel Network Engineer", + "advancements.spectrum.create_pastel_network_using_every_node_type.description": "Use at each type of Pastel Node in a single Network", + "advancements.spectrum.create_big_pastel_network.title": "Global Pastel Dispatcher", + "advancements.spectrum.create_big_pastel_network.description": "Create a giant Pastel Network spanning over 32 nodes", + "advancements.spectrum.visit_all_deeper_down_biomes.title": "Biomes Below Bedrock", + "advancements.spectrum.visit_all_deeper_down_biomes.description": "Visit each of the biomes in the Deeper Down", + "advancements.spectrum.collect_dragonbone.title": "The Dragon lies Bleeding", + "advancements.spectrum.collect_dragonbone.description": "Crack and break Dragonbone", + + "______food_tooltips": "Food Tooltips:", "spectrum.food.withChance": "%s [%d%%]", "spectrum.food.whenEaten": "When Eaten:", - "______name_changes_for_vanilla_blocks" : "Changes:", + "______name_changes_for_vanilla_blocks": "Changes:", "block.minecraft.polished_basalt": "Basalt Pillar", - "______vanilla_additions" : "Additions:", + "______vanilla_additions": "Additions:", "potion.potency.6": "VI", "potion.potency.7": "VII", "potion.potency.8": "VIII", @@ -2506,15 +2733,9 @@ "potion.potency.19": "XIX", "potion.potency.20": "XX", - "______done_until_here" : "TODO:", + "______done_until_here": "TODO:", "advancements.spectrum.craft_energy_collector.title": "Roger that", "advancements.spectrum.craft_energy_collector.description": "Construct a collector powerful enough to harvest energy from gem geodes", "advancements.spectrum.place_energy_collector.title": "A new form of energy", - "advancements.spectrum.place_energy_collector.description": "Place the collector in the center of a geode and watch it work", - - "______unused" : "UNUSED:", - "advancements.spectrum.place_bottle_of_failing.title": "It... feeds on Obsidian?", - "advancements.spectrum.place_bottle_of_failing.description": "It's WAY more powerful than your first experiment. It seems to destroy everything it touches after a while. Is there something sturdy enough to withstand its destructive potential?", - "advancements.spectrum.place_bottle_of_ruin.title": "What have you done", - "advancements.spectrum.place_bottle_of_ruin.description": "There is no going back... (for now?)" + "advancements.spectrum.place_energy_collector.description": "Place the collector in the center of a geode and watch it work" } diff --git a/src/main/resources/assets/spectrum/lang/pt_br.json b/src/main/resources/assets/spectrum/lang/pt_br.json index 4d633b82b2..b517502fa8 100644 --- a/src/main/resources/assets/spectrum/lang/pt_br.json +++ b/src/main/resources/assets/spectrum/lang/pt_br.json @@ -34,7 +34,7 @@ "recipeGroup.spectrum.decostones": "Decopedras", "recipeGroup.spectrum.gemstone_chimes": "Carrilhões de Pedras Preciosas", "recipeGroup.spectrum.colored_saplings": "Mudas Coloridas", - "recipeGroup.spectrum.sparklestone_lights": "Luzes de Pedra Cintilante", + "recipeGroup.spectrum.shimmerstone_lights": "Luzes de Pedra Cintilante", "recipeGroup.spectrum.colored_spore_blossoms": "Flor de Esporos Colorida", "recipeGroup.spectrum.glowblocks": "Blocos de Brilho", "recipeGroup.spectrum.player_only_glass": "Vidro Semi-Permeável", @@ -42,7 +42,7 @@ "recipeGroup.spectrum.bedrock_armor": "Armadura de Pedra-Mãe", "recipeGroup.spectrum.fusion_shrines": "Altar de Fusão", "recipeGroup.spectrum.item_bowls": "Tigelas de Item", - "recipeGroup.spectrum.enchanter_exchange_staff": "Bastão de Troca", + "recipeGroup.spectrum.enchanter_exchanging_staff": "Bastão de Troca", "recipeGroup.spectrum.vanilla": "Encantamentos Vanilla", "recipeGroup.spectrum.pastel_network": "Rede Pastel", "recipeGroup.spectrum.vanilla_potions": "Poções Vanilla", @@ -118,8 +118,8 @@ "entity.spectrum.block_flooder_projectile": "Alagador de Blocos", "entity.spectrum.gravity_block": "Bloco de Gravidade", - "entity.spectrum.invisible_item_frame": "Moldura Phantom", - "entity.spectrum.invisible_glow_item_frame": "Moldura Phantom Brilhante", + "entity.spectrum.phantom_frame": "Moldura Phantom", + "entity.spectrum.glow_phantom_frame": "Moldura Phantom Brilhante", "entity.spectrum.shooting_star": "Estrela Cadente", "commands.spectrum.spawn_shooting_star.success": "Gerou %d estrelas cadentes para cada jogador", @@ -128,8 +128,8 @@ "spectrum.recipe.fusion_shrine.explanation.onyx_shard": "Meia noite, apenas em uma lua nova", "spectrum.recipe.fusion_shrine.explanation.decay_away": "Precisa do céu limpo", "spectrum.recipe.fusion_shrine.explanation.ominous_sapling": "Precisa ser de dia", - "spectrum.recipe.fusion_shrine.explanation.scarlet_gem": "Precise ser durante uma tempestade de trovões", - "spectrum.recipe.fusion_shrine.explanation.paletur_gem": "Precise ser durante uma tempestade de trovões", + "spectrum.recipe.fusion_shrine.explanation.stratine_gem": "Precise ser durante uma tempestade de trovões", + "spectrum.recipe.fusion_shrine.explanation.paltaeria_gem": "Precise ser durante uma tempestade de trovões", "spectrum.recipe.fusion_shrine.explanation.midnight_aberration": "De dia com tempo ensolarado", "spectrum.recipe.fusion_shrine.explanation.spectral_shard": "O Composto perfeito", "spectrum.recipe.fusion_shrine.explanation.netherite_ingot": "arriscado, mas produzindo...", @@ -193,15 +193,15 @@ "spectrum.subtitles.ender_splice_binds": "Fenda do Fim vincula", "spectrum.subtitles.use_fail": "Uso falha", "spectrum.subtitles.natures_staff_use": "Melodia harmônica toca", - "spectrum.subtitles.block.sucking_chest.open": "Baú de Buraco Negro abre", - "spectrum.subtitles.block.sucking_chest.close": "Baú de Buraco Negro fecha", - "spectrum.subtitles.light_staff_charging": "Bastão de Luz carrega", - "spectrum.subtitles.light_staff_place": "Bastão de Luz em uso", - "spectrum.subtitles.light_staff_break": "Luz quebra", + "spectrum.subtitles.block.black_hole_chest.open": "Baú de Buraco Negro abre", + "spectrum.subtitles.block.black_hole_chest.close": "Baú de Buraco Negro fecha", + "spectrum.subtitles.radiance_staff_charging": "Bastão de Luz carrega", + "spectrum.subtitles.radiance_staff_place": "Bastão de Luz em uso", + "spectrum.subtitles.radiance_staff_break": "Luz quebra", "spectrum.subtitles.fusion_shrine_ambient": "Altar de Fusão murmura", "spectrum.subtitles.fusion_shrine_crafting_finished": "Estrondo grave", "spectrum.subtitles.fusion_shrine_crafting_aborted": "Itens sendo derrubados", - "spectrum.subtitles.exchange_staff.select": "Bastão de Troca soa", + "spectrum.subtitles.exchanging_staff.select": "Bastão de Troca soa", "spectrum.subtitles.text_revealed": "Livro Guia para Mundo Colorido badala", "spectrum.subtitles.radiance_pin_trigger": "Broche Radiante aciona", "spectrum.subtitles.air_launch_belt_charging": "Sinto de Decolagem carregando", @@ -251,12 +251,11 @@ "text.autoconfig.Spectrum.option.LightningStonesWorlds": "Mundos que geram Pedras de Tempestade", "text.autoconfig.Spectrum.option.LightningStonesChance": "Chance de gerar Pedra de Tempestade em um ralâmpago", "text.autoconfig.Spectrum.option.QuitoxicReedsGenerationBiomes": "Biomas com geração de Cana de Quitóxico", - "text.autoconfig.Spectrum.option.MermaidsBrushGenerationBiomes": "Biomas com geração de Moita de Sereias", "text.autoconfig.Spectrum.option.VanillaRecipeCraftingTimeTicks": "Quantidade de ticks para o Pedestal fabricar receitas Vanilla", "text.autoconfig.Spectrum.option.FadingDecayTickRate": "Velocidade de Propagação de Desvanecimento", "text.autoconfig.Spectrum.option.FailingDecayTickRate": "Velocidade de Propagação de Falha", "text.autoconfig.Spectrum.option.RuinDecayTickRate": "Velocidade de Propagação de Ruína", - "text.autoconfig.Spectrum.option.TerrorDecayTickRate": "Velocidade de Propagação de Terror", + "text.autoconfig.Spectrum.option.ForfeitureDecayTickRate": "Velocidade de Propagação de Terror", "text.autoconfig.Spectrum.option.AutoSmeltEnchantmentEnabled": "Encantamento Fundição disponível", "text.autoconfig.Spectrum.option.ExuberanceEnchantmentEnabled": "Encantamento Exuberância disponível", @@ -361,9 +360,9 @@ "block.spectrum.sacred_soil": "Solo Sagrado", "block.spectrum.wand_light": "Luz Spectrum", "block.spectrum.bedrock_storage_block": "Bloco de Rocha-mãe", - "block.spectrum.sparklestone_ore": "Minério de Pedra Cintilante", - "block.spectrum.deepslate_sparklestone_ore": "Minério de Pedra Cintilante de Ardósia", - "block.spectrum.sparklestone_block": "Bloco de Pedra Cintilante", + "block.spectrum.shimmerstone_ore": "Minério de Pedra Cintilante", + "block.spectrum.deepslate_shimmerstone_ore": "Minério de Pedra Cintilante de Ardósia", + "block.spectrum.shimmerstone_block": "Bloco de Pedra Cintilante", "block.spectrum.azurite_ore": "Minério de Azurita", "block.spectrum.deepslate_azurite_ore": "Minério de Azurita de Ardósia", "block.spectrum.azurite_block": "Bloco de Azurita", @@ -391,17 +390,17 @@ "block.spectrum.universe_spyhole": "Olho Mágico do Universo", "block.spectrum.ender_glass": "Vidro Ender", "block.spectrum.redstone_sand": "Areia de Redston", - "block.spectrum.stuck_lightning_stone": "Pedra de Tempestade", + "block.spectrum.stuck_storm_stone": "Pedra de Tempestade", "block.spectrum.ender_dropper": "Liberador Ender", "block.spectrum.ender_hopper": "Funil Ender", "block.spectrum.compacting_chest": "Baú Compactador", "block.spectrum.compacting_chest.toggle_crafting_mode": "Alterna Modo de Fabricação", "block.spectrum.restocking_chest": "Baú de Fabricação", - "block.spectrum.sucking_chest": "Baú de Buraco Negro", + "block.spectrum.black_hole_chest": "Baú de Buraco Negro", "block.spectrum.private_chest": "Baú Vinculado ao Coração", "block.spectrum.ominous_sapling": "Muda Sinistra", "block.spectrum.bedrock_anvil": "Bigorna de Rocha-mãe", - "block.spectrum.ender_treasure": "Ender Radiante", + "block.spectrum.radiating_ender": "Ender Radiante", "block.spectrum.blazing_crystal": "Cristal de Blaze", "block.spectrum.frostbite_crystal": "Cristal Hípergelado", "block.spectrum.resonant_lily": "Lírio Ressoante", @@ -443,13 +442,13 @@ "block.spectrum.white_spirit_sallow_vines_body": "Vinhas Pálidas de Espírito Branco", "block.spectrum.black_spirit_sallow_vines_body": "Vinhas Pálidas de Espírito Preto", - "block.spectrum.basalt_sparklestone_light": "Luz de Basalto Cintilante", - "block.spectrum.calcite_sparklestone_light": "Luz de Calcita Cintilante", - "block.spectrum.stone_sparklestone_light": "Luz de Pedra Cintilante", - "block.spectrum.granite_sparklestone_light": "Luz de Granito Cintilante", - "block.spectrum.diorite_sparklestone_light": "Luz de Diorito Cintilante", - "block.spectrum.andesite_sparklestone_light": "Luz de Andesito Cintilante", - "block.spectrum.deepslate_sparklestone_light": "Luz de Ardósia Cintilante", + "block.spectrum.basalt_shimmerstone_light": "Luz de Basalto Cintilante", + "block.spectrum.calcite_shimmerstone_light": "Luz de Calcita Cintilante", + "block.spectrum.stone_shimmerstone_light": "Luz de Pedra Cintilante", + "block.spectrum.granite_shimmerstone_light": "Luz de Granito Cintilante", + "block.spectrum.diorite_shimmerstone_light": "Luz de Diorito Cintilante", + "block.spectrum.andesite_shimmerstone_light": "Luz de Andesito Cintilante", + "block.spectrum.deepslate_shimmerstone_light": "Luz de Ardósia Cintilante", "block.spectrum.amethyst_storage_block": "Ametista Polida", "block.spectrum.citrine_storage_block": "Citrino Polido", @@ -576,132 +575,132 @@ "block.spectrum.yellow_lamp": "Lâmpada Amarela", "block.spectrum.black_planks": "Tábuas Pretas", - "block.spectrum.black_plank_button": "Botão de Tábua Preta", - "block.spectrum.black_plank_fence": "Cerca de Tábua Preta", - "block.spectrum.black_plank_pressure_plate": "Placa de Pressão de Tábua Preta", - "block.spectrum.black_plank_stairs": "Escadas de Tábua Preta", - "block.spectrum.black_plank_slab": "Lage de Tábua Preta", - "block.spectrum.black_plank_fence_gate": "Portão de Tábua Preta", + "block.spectrum.black_button": "Botão de Tábua Preta", + "block.spectrum.black_fence": "Cerca de Tábua Preta", + "block.spectrum.black_pressure_plate": "Placa de Pressão de Tábua Preta", + "block.spectrum.black_stairs": "Escadas de Tábua Preta", + "block.spectrum.black_slab": "Lage de Tábua Preta", + "block.spectrum.black_fence_gate": "Portão de Tábua Preta", "block.spectrum.blue_planks": "Tábuas Azuis", - "block.spectrum.blue_plank_button": "Botão de Tábua Azul", - "block.spectrum.blue_plank_fence": "Cerca de Tábua Azul", - "block.spectrum.blue_plank_pressure_plate": "Placa de Pressão de Tábua Azul", - "block.spectrum.blue_plank_stairs": "Escadas de Tábua Azul", - "block.spectrum.blue_plank_slab": "Lage de Tábua Azul", - "block.spectrum.blue_plank_fence_gate": "Portão de Tábua Azul", + "block.spectrum.blue_button": "Botão de Tábua Azul", + "block.spectrum.blue_fence": "Cerca de Tábua Azul", + "block.spectrum.blue_pressure_plate": "Placa de Pressão de Tábua Azul", + "block.spectrum.blue_stairs": "Escadas de Tábua Azul", + "block.spectrum.blue_slab": "Lage de Tábua Azul", + "block.spectrum.blue_fence_gate": "Portão de Tábua Azul", "block.spectrum.brown_planks": "Tábuas Marrons", - "block.spectrum.brown_plank_button": "Botão de Tábua Marrom", - "block.spectrum.brown_plank_fence": "Cerca de Tábua Marrom", - "block.spectrum.brown_plank_pressure_plate": "Placa de Pressão de Tábua Marrom", - "block.spectrum.brown_plank_stairs": "Escadas de Tábua Marrom", - "block.spectrum.brown_plank_slab": "Lage de Tábua Marrom", - "block.spectrum.brown_plank_fence_gate": "Portão de Tábua Marrom", + "block.spectrum.brown_button": "Botão de Tábua Marrom", + "block.spectrum.brown_fence": "Cerca de Tábua Marrom", + "block.spectrum.brown_pressure_plate": "Placa de Pressão de Tábua Marrom", + "block.spectrum.brown_stairs": "Escadas de Tábua Marrom", + "block.spectrum.brown_slab": "Lage de Tábua Marrom", + "block.spectrum.brown_fence_gate": "Portão de Tábua Marrom", "block.spectrum.cyan_planks": "Tábuas Cianas", - "block.spectrum.cyan_plank_button": "Botão de Tábua Ciana", - "block.spectrum.cyan_plank_fence": "Cerca de Tábua Ciana", - "block.spectrum.cyan_plank_pressure_plate": "Placa de Pressão de Tábua Ciana", - "block.spectrum.cyan_plank_stairs": "Escadas de Tábua Ciana", - "block.spectrum.cyan_plank_slab": "Lage de Tábua Ciana", - "block.spectrum.cyan_plank_fence_gate": "Portão de Tábua Ciana", + "block.spectrum.cyan_button": "Botão de Tábua Ciana", + "block.spectrum.cyan_fence": "Cerca de Tábua Ciana", + "block.spectrum.cyan_pressure_plate": "Placa de Pressão de Tábua Ciana", + "block.spectrum.cyan_stairs": "Escadas de Tábua Ciana", + "block.spectrum.cyan_slab": "Lage de Tábua Ciana", + "block.spectrum.cyan_fence_gate": "Portão de Tábua Ciana", "block.spectrum.gray_planks": "Tábuas Cinzas", - "block.spectrum.gray_plank_button": "Botão de Tábua Cinza", - "block.spectrum.gray_plank_fence": "Cerca de Tábua Cinza", - "block.spectrum.gray_plank_pressure_plate": "Placa de Pressão de Tábua Cinza", - "block.spectrum.gray_plank_stairs": "Escadas de Tábua Cinza", - "block.spectrum.gray_plank_slab": "Lage de Tábua Cinza", - "block.spectrum.gray_plank_fence_gate": "Portão de Tábua Cinza", + "block.spectrum.gray_button": "Botão de Tábua Cinza", + "block.spectrum.gray_fence": "Cerca de Tábua Cinza", + "block.spectrum.gray_pressure_plate": "Placa de Pressão de Tábua Cinza", + "block.spectrum.gray_stairs": "Escadas de Tábua Cinza", + "block.spectrum.gray_slab": "Lage de Tábua Cinza", + "block.spectrum.gray_fence_gate": "Portão de Tábua Cinza", "block.spectrum.green_planks": "Tábuas Verdes", - "block.spectrum.green_plank_button": "Botão de Tábua Verde", - "block.spectrum.green_plank_fence": "Cerca de Tábua Verde", - "block.spectrum.green_plank_pressure_plate": "Placa de Pressão de Tábua Verde", - "block.spectrum.green_plank_stairs": "Escadas de Tábua Verde", - "block.spectrum.green_plank_slab": "Lage de Tábua Verde", - "block.spectrum.green_plank_fence_gate": "Portão de Tábua Verde", + "block.spectrum.green_button": "Botão de Tábua Verde", + "block.spectrum.green_fence": "Cerca de Tábua Verde", + "block.spectrum.green_pressure_plate": "Placa de Pressão de Tábua Verde", + "block.spectrum.green_stairs": "Escadas de Tábua Verde", + "block.spectrum.green_slab": "Lage de Tábua Verde", + "block.spectrum.green_fence_gate": "Portão de Tábua Verde", "block.spectrum.light_blue_planks": "Tábuas Azul-Claro", - "block.spectrum.light_blue_plank_button": "Botão de Tábua Azul-Claro", - "block.spectrum.light_blue_plank_fence": "Cerca de Tábua Azul-Claro", - "block.spectrum.light_blue_plank_pressure_plate": "Placa de Pressão de Tábua Azul-Claro", - "block.spectrum.light_blue_plank_stairs": "Escadas de Tábua Azul-Claro", - "block.spectrum.light_blue_plank_slab": "Lage de Tábua Azul-Claro", - "block.spectrum.light_blue_plank_fence_gate": "Portão de Tábua Azul-Claro", + "block.spectrum.light_blue_button": "Botão de Tábua Azul-Claro", + "block.spectrum.light_blue_fence": "Cerca de Tábua Azul-Claro", + "block.spectrum.light_blue_pressure_plate": "Placa de Pressão de Tábua Azul-Claro", + "block.spectrum.light_blue_stairs": "Escadas de Tábua Azul-Claro", + "block.spectrum.light_blue_slab": "Lage de Tábua Azul-Claro", + "block.spectrum.light_blue_fence_gate": "Portão de Tábua Azul-Claro", "block.spectrum.light_gray_planks": "Tábuas Cinza-Claro", - "block.spectrum.light_gray_plank_button": "Botão de Tábua Cinza-Claro", - "block.spectrum.light_gray_plank_fence": "Cerca de Tábua Cinza-Claro", - "block.spectrum.light_gray_plank_pressure_plate": "Placa de Pressão de Tábua Cinza-Claro", - "block.spectrum.light_gray_plank_stairs": "Escadas de Tábua Cinza-Claro", - "block.spectrum.light_gray_plank_slab": "Lage de Tábua Cinza-Claro", - "block.spectrum.light_gray_plank_fence_gate": "Portão de Tábua Cinza-Claro", + "block.spectrum.light_gray_button": "Botão de Tábua Cinza-Claro", + "block.spectrum.light_gray_fence": "Cerca de Tábua Cinza-Claro", + "block.spectrum.light_gray_pressure_plate": "Placa de Pressão de Tábua Cinza-Claro", + "block.spectrum.light_gray_stairs": "Escadas de Tábua Cinza-Claro", + "block.spectrum.light_gray_slab": "Lage de Tábua Cinza-Claro", + "block.spectrum.light_gray_fence_gate": "Portão de Tábua Cinza-Claro", "block.spectrum.lime_planks": "Tábuas Verde-Limão", - "block.spectrum.lime_plank_button": "Botão de Tábua Verde-Limão", - "block.spectrum.lime_plank_fence": "Cerca de Tábua Verde-Limão", - "block.spectrum.lime_plank_pressure_plate": "Placa de Pressão de Tábua Verde-Limão", - "block.spectrum.lime_plank_stairs": "Escadas de Tábua Verde-Limão", - "block.spectrum.lime_plank_slab": "Lage de Tábua Verde-Limão", - "block.spectrum.lime_plank_fence_gate": "Portão de Tábua Verde-Limão", + "block.spectrum.lime_button": "Botão de Tábua Verde-Limão", + "block.spectrum.lime_fence": "Cerca de Tábua Verde-Limão", + "block.spectrum.lime_pressure_plate": "Placa de Pressão de Tábua Verde-Limão", + "block.spectrum.lime_stairs": "Escadas de Tábua Verde-Limão", + "block.spectrum.lime_slab": "Lage de Tábua Verde-Limão", + "block.spectrum.lime_fence_gate": "Portão de Tábua Verde-Limão", "block.spectrum.magenta_planks": "Tábuas Magentas", - "block.spectrum.magenta_plank_button": "Botão de Tábua Magenta", - "block.spectrum.magenta_plank_fence": "Cerca de Tábua Magenta", - "block.spectrum.magenta_plank_pressure_plate": "Placa de Pressão de Tábua Magenta", - "block.spectrum.magenta_plank_stairs": "Escadas de Tábua Magenta", - "block.spectrum.magenta_plank_slab": "Lage de Tábua Magenta", - "block.spectrum.magenta_plank_fence_gate": "Portão de Tábua Magenta", + "block.spectrum.magenta_button": "Botão de Tábua Magenta", + "block.spectrum.magenta_fence": "Cerca de Tábua Magenta", + "block.spectrum.magenta_pressure_plate": "Placa de Pressão de Tábua Magenta", + "block.spectrum.magenta_stairs": "Escadas de Tábua Magenta", + "block.spectrum.magenta_slab": "Lage de Tábua Magenta", + "block.spectrum.magenta_fence_gate": "Portão de Tábua Magenta", "block.spectrum.orange_planks": "Tábuas Laranajas", - "block.spectrum.orange_plank_button": "Botão de Tábua Laranaja", - "block.spectrum.orange_plank_fence": "Cerca de Tábua Laranaja", - "block.spectrum.orange_plank_pressure_plate": "Placa de Pressão de Tábua Laranaja", - "block.spectrum.orange_plank_stairs": "Escadas de Tábua Laranaja", - "block.spectrum.orange_plank_slab": "Lage de Tábua Laranaja", - "block.spectrum.orange_plank_fence_gate": "Portão de Tábua Laranaja", + "block.spectrum.orange_button": "Botão de Tábua Laranaja", + "block.spectrum.orange_fence": "Cerca de Tábua Laranaja", + "block.spectrum.orange_pressure_plate": "Placa de Pressão de Tábua Laranaja", + "block.spectrum.orange_stairs": "Escadas de Tábua Laranaja", + "block.spectrum.orange_slab": "Lage de Tábua Laranaja", + "block.spectrum.orange_fence_gate": "Portão de Tábua Laranaja", "block.spectrum.pink_planks": "Tábuas Rosas", - "block.spectrum.pink_plank_button": "Botão de Tábua Rosa", - "block.spectrum.pink_plank_fence": "Cerca de Tábua Rosa", - "block.spectrum.pink_plank_pressure_plate": "Placa de Pressão de Tábua Rosa", - "block.spectrum.pink_plank_stairs": "Escadas de Tábua Rosa", - "block.spectrum.pink_plank_slab": "Lage de Tábua Rosa", - "block.spectrum.pink_plank_fence_gate": "Portão de Tábua Rosa", + "block.spectrum.pink_button": "Botão de Tábua Rosa", + "block.spectrum.pink_fence": "Cerca de Tábua Rosa", + "block.spectrum.pink_pressure_plate": "Placa de Pressão de Tábua Rosa", + "block.spectrum.pink_stairs": "Escadas de Tábua Rosa", + "block.spectrum.pink_slab": "Lage de Tábua Rosa", + "block.spectrum.pink_fence_gate": "Portão de Tábua Rosa", "block.spectrum.purple_planks": "Tábuas Roxas", - "block.spectrum.purple_plank_button": "Botão de Tábua Roxa", - "block.spectrum.purple_plank_fence": "Cerca de Tábua Roxa", - "block.spectrum.purple_plank_pressure_plate": "Placa de Pressão de Tábua Roxa", - "block.spectrum.purple_plank_stairs": "Escadas de Tábua Roxa", - "block.spectrum.purple_plank_slab": "Lage de Tábua Roxa", - "block.spectrum.purple_plank_fence_gate": "Portão de Tábua Roxa", + "block.spectrum.purple_button": "Botão de Tábua Roxa", + "block.spectrum.purple_fence": "Cerca de Tábua Roxa", + "block.spectrum.purple_pressure_plate": "Placa de Pressão de Tábua Roxa", + "block.spectrum.purple_stairs": "Escadas de Tábua Roxa", + "block.spectrum.purple_slab": "Lage de Tábua Roxa", + "block.spectrum.purple_fence_gate": "Portão de Tábua Roxa", "block.spectrum.red_planks": "Tábuas Vermelhas", - "block.spectrum.red_plank_button": "Botão de Tábua Vermelha", - "block.spectrum.red_plank_fence": "Cerca de Tábua Vermelha", - "block.spectrum.red_plank_pressure_plate": "Placa de Pressão de Tábua Vermelha", - "block.spectrum.red_plank_stairs": "Escadas de Tábua Vermelha", - "block.spectrum.red_plank_slab": "Lage de Tábua Vermelha", - "block.spectrum.red_plank_fence_gate": "Portão de Tábua Vermelha", + "block.spectrum.red_button": "Botão de Tábua Vermelha", + "block.spectrum.red_fence": "Cerca de Tábua Vermelha", + "block.spectrum.red_pressure_plate": "Placa de Pressão de Tábua Vermelha", + "block.spectrum.red_stairs": "Escadas de Tábua Vermelha", + "block.spectrum.red_slab": "Lage de Tábua Vermelha", + "block.spectrum.red_fence_gate": "Portão de Tábua Vermelha", "block.spectrum.white_planks": "Tábuas Brancas", - "block.spectrum.white_plank_button": "Botão de Tábua Branca", - "block.spectrum.white_plank_fence": "Cerca de Tábua Branca", - "block.spectrum.white_plank_pressure_plate": "Placa de Pressão de Tábua Branca", - "block.spectrum.white_plank_stairs": "Escadas de Tábua Branca", - "block.spectrum.white_plank_slab": "Lage de Tábua Branca", - "block.spectrum.white_plank_fence_gate": "Portão de Tábua Branca", + "block.spectrum.white_button": "Botão de Tábua Branca", + "block.spectrum.white_fence": "Cerca de Tábua Branca", + "block.spectrum.white_pressure_plate": "Placa de Pressão de Tábua Branca", + "block.spectrum.white_stairs": "Escadas de Tábua Branca", + "block.spectrum.white_slab": "Lage de Tábua Branca", + "block.spectrum.white_fence_gate": "Portão de Tábua Branca", "block.spectrum.yellow_planks": "Tábuas Amarelas", - "block.spectrum.yellow_plank_button": "Botão de Tábua Amarela", - "block.spectrum.yellow_plank_fence": "Cerca de Tábua Amarela", - "block.spectrum.yellow_plank_pressure_plate": "Placa de Pressão de Tábua Amarela", - "block.spectrum.yellow_plank_stairs": "Escadas de Tábua Amarela", - "block.spectrum.yellow_plank_slab": "Lage de Tábua Amarela", - "block.spectrum.yellow_plank_fence_gate": "Portão de Tábua Amarela", + "block.spectrum.yellow_button": "Botão de Tábua Amarela", + "block.spectrum.yellow_fence": "Cerca de Tábua Amarela", + "block.spectrum.yellow_pressure_plate": "Placa de Pressão de Tábua Amarela", + "block.spectrum.yellow_stairs": "Escadas de Tábua Amarela", + "block.spectrum.yellow_slab": "Lage de Tábua Amarela", + "block.spectrum.yellow_fence_gate": "Portão de Tábua Amarela", "item.spectrum.mud_bucket": "Balde de Lama", "block.spectrum.mud": "Lama", @@ -715,10 +714,10 @@ "block.spectrum.midnight_solution": "Solução da Meia Noite", "block.spectrum.flowing_midnight_solution": "Solução da Meia Noite", - "block.spectrum.paletur_ore": "Minério de Turpálido", - "block.spectrum.paletur_fragment_block": "Bloco Flutuante de Turpálido", - "block.spectrum.scarlet_ore": "Minério de Carmesim", - "block.spectrum.scarlet_fragment_block": "Bloco Flutuante de Carmesim", + "block.spectrum.paltaeria_ore": "Minério de Turpálido", + "block.spectrum.paltaeria_fragment_block": "Bloco Flutuante de Turpálido", + "block.spectrum.stratine_ore": "Minério de Carmesim", + "block.spectrum.stratine_fragment_block": "Bloco Flutuante de Carmesim", "block.spectrum.hover_block": "Bloco Flutuante", "block.spectrum.shooting_star_glistering": "Estrela Cadente Reluzente", @@ -818,15 +817,15 @@ "block.spectrum.moonstone_glass": "Vidro de Pedra da Lua", "block.spectrum.glowing_glass": "Vidro Radiante", - "block.spectrum.tinted_player_only_glass": "Vidro Fosco Semi-Permeável", - "block.spectrum.glowing_player_only_glass": "Vidro Radiante Semi-Permeável", + "block.spectrum.tinted_semi_permeable_glass": "Vidro Fosco Semi-Permeável", + "block.spectrum.glowing_semi_permeable_glass": "Vidro Radiante Semi-Permeável", - "block.spectrum.vanilla_player_only_glass": "Vidro Semi-Permeável", - "block.spectrum.amethyst_player_only_glass": "Vidro Semi-Permeável de Ametista", - "block.spectrum.topaz_player_only_glass": "Vidro Semi-Permeável de Topázio", - "block.spectrum.citrine_player_only_glass": "Vidro Semi-Permeável de Citrino", - "block.spectrum.onyx_player_only_glass": "Vidro Semi-Permeável de Ônix", - "block.spectrum.moonstone_player_only_glass": "Vidro Semi-Permeável de Pedra da Lua", + "block.spectrum.vanilla_semi_permeable_glass": "Vidro Semi-Permeável", + "block.spectrum.amethyst_semi_permeable_glass": "Vidro Semi-Permeável de Ametista", + "block.spectrum.topaz_semi_permeable_glass": "Vidro Semi-Permeável de Topázio", + "block.spectrum.citrine_semi_permeable_glass": "Vidro Semi-Permeável de Citrino", + "block.spectrum.onyx_semi_permeable_glass": "Vidro Semi-Permeável de Ônix", + "block.spectrum.moonstone_semi_permeable_glass": "Vidro Semi-Permeável de Pedra da Lua", "block.spectrum.amethyst_calcite_lamp": "Lâmpada de Calcita e Ametista", "block.spectrum.topaz_calcite_lamp": "Lâmpada de Calcita e Topázio", @@ -853,21 +852,19 @@ "item.spectrum.pedestal.tooltip.all_basic": "Variante §bC§dM§eY§7", "item.spectrum.pedestal.tooltip.onyx": "§7 Variante de §8Ônix", "item.spectrum.pedestal.tooltip.moonstone": "§7 Variante de §fPedra da Lua", - "block.spectrum.provider_node": "Nó Provedor da Rede Pastel", - "block.spectrum.puller_node": "Nó Puxador da Rede Pastel", - "block.spectrum.pusher_node": "Nó Empurrador da Rede Pastel", + "block.spectrum.gather_node": "Nó Puxador da Rede Pastel", + "block.spectrum.sender_node": "Nó Empurrador da Rede Pastel", "block.spectrum.storage_node": "Nó de Armazenamento da Rede Pastel", "block.spectrum.connection_node": "Nó de Conexão da Rede Pastel", "block.spectrum.interaction_node": "Nó de Interação da Rede Pastel ", "block.spectrum.provider_node.tooltip": "§dFornece Itens para a Rede", - "block.spectrum.puller_node.tooltip": "§8Puxa Itens da Rede", - "block.spectrum.pusher_node.tooltip": "§eEmpurra Itens para a Rede", + "block.spectrum.gather_node.tooltip": "§8Puxa Itens da Rede", + "block.spectrum.sender_node.tooltip": "§eEmpurra Itens para a Rede", "block.spectrum.storage_node.tooltip": "§bArmazena Itens sem outro Destino", "block.spectrum.connection_node.tooltip": "§fConector Simples", "block.spectrum.interaction_node.tooltip": "§fPede itens para a Rede", "block.spectrum.pastel_network_nodes.tooltip.range": "Conecta a outros Nós a 16 Blocos de distância", - "item.spectrum.mob_head.tooltip.designer": "§7Design de Cabeça por%s", "block.spectrum.goat_head": "Cabeça de Cabra", "block.spectrum.glow_squid_head": "Cabeça de Lula-Brilhante", @@ -1041,44 +1038,43 @@ "block.spectrum.feeding_mob_block.tooltip": "§7Alimenta animais em um raio de %d§7 blocos usando comida no chão", "item.spectrum.tooltip.loom_pattern_available": "✿ Usável Como Desenho de Estandarte", - "item.spectrum.exchange_staff": "Bastão de Troca", - "item.spectrum.exchange_staff.tooltip.range": "Troca blocos até %s blocos de distância", - "item.spectrum.exchange_staff.tooltip.crouch": "Agaiche para trocar apenas blocos expostos", - "item.spectrum.exchange_staff.tooltip.target": "Alvo: %s", - "item.spectrum.placement_staff": "Bastão do Contrutor", - "item.spectrum.placement_staff.tooltip.range": "Extende uma estrutura de blocos até %s blocos de distância", - "item.spectrum.placement_staff.tooltip.crouch": "Agaiche para incluir outros blocos de origem", - "item.spectrum.placement_staff.tooltip.none_in_inventory": "nenhum no seu inventário", - "item.spectrum.light_staff": "Bastão Radiante", - "item.spectrum.light_staff.tooltip": "§7Usa §eGemas de Pedra Cintilante§7 para colocar Luzes", - "item.spectrum.light_staff.tooltip2": "§7Clique direito em Luzes para trocar seu nível de brilho", + "item.spectrum.exchanging_staff": "Bastão de Troca", + "item.spectrum.exchanging_staff.tooltip.range": "Troca blocos até %s blocos de distância", + "item.spectrum.exchanging_staff.tooltip.crouch": "Agaiche para trocar apenas blocos expostos", + "item.spectrum.exchanging_staff.tooltip.target": "Alvo: %s", + "item.spectrum.constructors_staff": "Bastão do Contrutor", + "item.spectrum.constructors_staff.tooltip.range": "Extende uma estrutura de blocos até %s blocos de distância", + "item.spectrum.constructors_staff.tooltip.crouch": "Agaiche para incluir outros blocos de origem", + "item.spectrum.constructors_staff.tooltip.none_in_inventory": "nenhum no seu inventário", + "item.spectrum.radiance_staff": "Bastão Radiante", + "item.spectrum.radiance_staff.tooltip": "§7Usa §eGemas de Pedra Cintilante§7 para colocar Luzes", + "item.spectrum.radiance_staff.tooltip2": "§7Clique direito em Luzes para trocar seu nível de brilho", "item.spectrum.music_disc_spectrum_theme": "Disco de Música", "item.spectrum.music_disc_spectrum_theme.desc": "Tema Spectrum", "item.spectrum.music_disc_dimension_theme": "Disco de Música", "item.spectrum.music_disc_dimension_theme.desc": "Tema do Mais Profundo: Radiarc - Irrelevance Fading", - "item.spectrum.invisible_item_frame": "Moldura Phantom", - "item.spectrum.invisible_glow_item_frame": "Moldura Phantom Brilhante", - "item.spectrum.ender_bag": "Mochila de Cerragamento", - "item.spectrum.void_bundle": "Trouxa sem Fundo", - "item.spectrum.void_bundle.tooltip.empty": "Vazia", - "item.spectrum.void_bundle.tooltip.count": "%d / %d (%d stacks)", - "item.spectrum.void_bundle.tooltip.enter_inventory": "%s que você coletar vai ser colocado aqui", - "item.spectrum.void_bundle.tooltip.voiding": "§7Itens adicionais vão levados ao §cvazio", + "item.spectrum.phantom_frame": "Moldura Phantom", + "item.spectrum.glow_phantom_frame": "Moldura Phantom Brilhante", + "item.spectrum.bag_of_holding": "Mochila de Cerragamento", + "item.spectrum.bottomless_bundle": "Trouxa sem Fundo", + "item.spectrum.bottomless_bundle.tooltip.empty": "Vazia", + "item.spectrum.bottomless_bundle.tooltip.count": "%d / %d (%d stacks)", + "item.spectrum.bottomless_bundle.tooltip.enter_inventory": "%s que você coletar vai ser colocado aqui", + "item.spectrum.bottomless_bundle.tooltip.voiding": "§7Itens adicionais vão levados ao §cvazio", "item.spectrum.raw_azurite": "Azurita Bruta", - "item.spectrum.sparklestone_gem": "Gema de Pedra Cintilante", + "item.spectrum.shimmerstone_gem": "Gema de Pedra Cintilante", "item.spectrum.refined_azurite": "Azurita Refinada", "item.spectrum.quitoxic_powder": "Pó de Quitóxico", "item.spectrum.mermaids_gem": "Gema de Sereias", - "item.spectrum.end_portal_cracker": "Trincador de Portal do End", - "item.spectrum.manual": "Mundo Colorido", + "item.spectrum.guidebook": "Mundo Colorido", "item.spectrum.multitool": "Multiferramenta", - "item.spectrum.silker_pickaxe": "Picareta Macia", - "item.spectrum.fortune_pickaxe": "Picareta Sortuda", - "item.spectrum.looting_falchion": "Cimitarra Navalha", - "item.spectrum.voiding_pickaxe": "Picareta do Esquecimento", + "item.spectrum.tender_pickaxe": "Picareta Macia", + "item.spectrum.lucky_pickaxe": "Picareta Sortuda", + "item.spectrum.razor_falchion": "Cimitarra Navalha", + "item.spectrum.oblivion_pickaxe": "Picareta do Esquecimento", "item.spectrum.resonant_pickaxe": "Picareta Ressonante", - "item.spectrum.glow_vision_helmet": "Óculos de Visão Brilhante", - "item.spectrum.glow_vision_helmet.tooltip": "§7Precisa de §bBolsa de Tinta Brilhante", + "item.spectrum.glow_vision_goggles": "Óculos de Visão Brilhante", + "item.spectrum.glow_vision_goggles.tooltip": "§7Precisa de §bBolsa de Tinta Brilhante", "item.spectrum.ender_splice": "Fenda do Fim", "item.spectrum.ender_splice.tooltip.unbound": "§7Use para vincular à sua posição atual", "item.spectrum.ender_splice.tooltip.bound_pos": "§7Vinculado à %d %d %d §7em %s§7. Use para teletransportar", @@ -1093,11 +1089,11 @@ "item.spectrum.fusion_shrine_structure_placer": "Colocador de Estrutura Altar de Fusão", "item.spectrum.enchanter_structure_placer": "Colocador de Estrutura Encantador", "item.spectrum.spirit_instiller_structure_placer": "Colocador de Estrutura Instilador de Espíritos", - "item.spectrum.lightning_stone": "Pedra de Tempestade", - "item.spectrum.scarlet_fragments": "Fragmentos Carmesim", - "item.spectrum.scarlet_gem": "Gema Carmesim", - "item.spectrum.paletur_fragments": "Fragmentos de Turpálido", - "item.spectrum.paletur_gem": "Gema de Turpálido", + "item.spectrum.storm_stone": "Pedra de Tempestade", + "item.spectrum.stratine_fragments": "Fragmentos Carmesim", + "item.spectrum.stratine_gem": "Gema Carmesim", + "item.spectrum.paltaeria_fragments": "Fragmentos de Turpálido", + "item.spectrum.paltaeria_gem": "Gema de Turpálido", "item.spectrum.glistering_melon_seeds": "Sementes de Melancia Reluzente", "item.spectrum.knowledge_gem": "Gema do Conhecimento", @@ -1109,14 +1105,14 @@ "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule": "Um grande poder previne o uso do seu relógio", "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time": "Seu relógio parece não funcionar nessa dimensão estranha", - "item.spectrum.emergency_helmet": "Capacete Buscador", - "item.spectrum.emergency_chestplate": "Peitoral Feroz", - "item.spectrum.emergency_leggings": "Calças de Sílfide", - "item.spectrum.emergency_boots": "Botas de Oréade", - "item.spectrum.emergency_helmet.tooltip": "Da Fraqueza & Lentidão ao Atacante", - "item.spectrum.emergency_chestplate.tooltip": "Te da Absorção & Vida Instantânea quando atingido", - "item.spectrum.emergency_leggings.tooltip": "Te da Velocidade & Invencibilidade quando atingido", - "item.spectrum.emergency_boots.tooltip": "Te da Resistência & Regeneraçã̀o quando atingido", + "item.spectrum.fetchling_helmet": "Capacete Buscador", + "item.spectrum.ferocious_chestplate": "Peitoral Feroz", + "item.spectrum.sylph_leggings": "Calças de Sílfide", + "item.spectrum.oread_boots": "Botas de Oréade", + "item.spectrum.fetchling_helmet.tooltip": "Da Fraqueza & Lentidão ao Atacante", + "item.spectrum.ferocious_chestplate.tooltip": "Te da Absorção & Vida Instantânea quando atingido", + "item.spectrum.sylph_leggings.tooltip": "Te da Velocidade & Invencibilidade quando atingido", + "item.spectrum.oread_boots.tooltip": "Te da Resistência & Regeneraçã̀o quando atingido", "item.spectrum.vibrant_cyan_catkin": "Amentilho Ciano Vibrante", "item.spectrum.vibrant_magenta_catkin": "Amentilho Magenta Vibrante", @@ -1202,297 +1198,297 @@ "item.spectrum.amethyst_shard_banner_pattern": "Desenho para Estandarte", "item.spectrum.amethyst_cluster_banner_pattern": "Desenho para Estandarte", - "bannerpp.pattern.spectrum.shimmer.black": "Cintilo Preto", - "bannerpp.pattern.spectrum.shimmer.red": "Cintilo Vermelho", - "bannerpp.pattern.spectrum.shimmer.green": "Cintilo Verde", - "bannerpp.pattern.spectrum.shimmer.brown": "Cintilo Marrom", - "bannerpp.pattern.spectrum.shimmer.blue": "Cintilo Azul", - "bannerpp.pattern.spectrum.shimmer.purple": "Cintilo Roxo", - "bannerpp.pattern.spectrum.shimmer.cyan": "Cintilo Ciano", - "bannerpp.pattern.spectrum.shimmer.light_gray": "Cintilo Cinza-Claro", - "bannerpp.pattern.spectrum.shimmer.gray": "Cintilo Cinza", - "bannerpp.pattern.spectrum.shimmer.pink": "Cintilo Rosa", - "bannerpp.pattern.spectrum.shimmer.lime": "Cintilo Verde-Limão", - "bannerpp.pattern.spectrum.shimmer.yellow": "Cintilo Amarelo", - "bannerpp.pattern.spectrum.shimmer.light_blue": "Cintilo Azul-Claro", - "bannerpp.pattern.spectrum.shimmer.magenta": "Cintilo Magenta", - "bannerpp.pattern.spectrum.shimmer.orange": "Cintilo Laranja", - "bannerpp.pattern.spectrum.shimmer.white": "Cintilo Branco", - "bannerpp.pattern.spectrum.palette.black": "Arte Preta", - "bannerpp.pattern.spectrum.palette.red": "Arte Vermelha", - "bannerpp.pattern.spectrum.palette.green": "Arte Verde", - "bannerpp.pattern.spectrum.palette.brown": "Arte Marrom", - "bannerpp.pattern.spectrum.palette.blue": "Arte Azul", - "bannerpp.pattern.spectrum.palette.purple": "Arte Roxa", - "bannerpp.pattern.spectrum.palette.cyan": "Arte Ciano", - "bannerpp.pattern.spectrum.palette.light_gray": "Arte Cinza-Claro", - "bannerpp.pattern.spectrum.palette.gray": "Arte Cinza", - "bannerpp.pattern.spectrum.palette.pink": "Arte Rosa", - "bannerpp.pattern.spectrum.palette.lime": "Arte Verde-Limão", - "bannerpp.pattern.spectrum.palette.yellow": "Arte Amarela", - "bannerpp.pattern.spectrum.palette.light_blue": "Arte Azul-Claro", - "bannerpp.pattern.spectrum.palette.magenta": "Arte Magenta", - "bannerpp.pattern.spectrum.palette.orange": "Arte Laranja", - "bannerpp.pattern.spectrum.palette.white": "Arte Branca", - "bannerpp.pattern.spectrum.amethyst_cluster.black": "Aglomerado de Ametista Preta", - "bannerpp.pattern.spectrum.amethyst_cluster.red": "Aglomerado de Ametista Vermelha", - "bannerpp.pattern.spectrum.amethyst_cluster.green": "Aglomerado de Ametista Verde", - "bannerpp.pattern.spectrum.amethyst_cluster.brown": "Aglomerado de Ametista Marrom", - "bannerpp.pattern.spectrum.amethyst_cluster.blue": "Aglomerado de Ametista Azul", - "bannerpp.pattern.spectrum.amethyst_cluster.purple": "Aglomerado de Ametista Roxa", - "bannerpp.pattern.spectrum.amethyst_cluster.cyan": "Aglomerado de Ametista Ciano", - "bannerpp.pattern.spectrum.amethyst_cluster.light_gray": "Aglomerado de Ametista Cinza-Claro", - "bannerpp.pattern.spectrum.amethyst_cluster.gray": "Aglomerado de Ametista Cinza", - "bannerpp.pattern.spectrum.amethyst_cluster.pink": "Aglomerado de Ametista Rosa", - "bannerpp.pattern.spectrum.amethyst_cluster.lime": "Aglomerado de Ametista Verde-Limão", - "bannerpp.pattern.spectrum.amethyst_cluster.yellow": "Aglomerado de Ametista Amarela", - "bannerpp.pattern.spectrum.amethyst_cluster.light_blue": "Aglomerado de Ametista Azul-Claro", - "bannerpp.pattern.spectrum.amethyst_cluster.magenta": "Aglomerado de Ametista Magenta", - "bannerpp.pattern.spectrum.amethyst_cluster.orange": "Aglomerado de Ametista Laranja", - "bannerpp.pattern.spectrum.amethyst_cluster.white": "Aglomerado de Ametista Branca", - "bannerpp.pattern.spectrum.neolith.black": "Neolito Preto", - "bannerpp.pattern.spectrum.neolith.red": "Neolito Vermelho", - "bannerpp.pattern.spectrum.neolith.green": "Neolito Verde", - "bannerpp.pattern.spectrum.neolith.brown": "Neolito Marrom", - "bannerpp.pattern.spectrum.neolith.blue": "Neolito Azul", - "bannerpp.pattern.spectrum.neolith.purple": "Neolito Roxo", - "bannerpp.pattern.spectrum.neolith.cyan": "Neolito Ciano", - "bannerpp.pattern.spectrum.neolith.light_gray": "Neolito Cinza-Claro", - "bannerpp.pattern.spectrum.neolith.gray": "Neolito Cinza", - "bannerpp.pattern.spectrum.neolith.pink": "Neolito Rosa", - "bannerpp.pattern.spectrum.neolith.lime": "Neolito Verde-Limão", - "bannerpp.pattern.spectrum.neolith.yellow": "Neolito Amarelo", - "bannerpp.pattern.spectrum.neolith.light_blue": "Neolito Azul-Claro", - "bannerpp.pattern.spectrum.neolith.magenta": "Neolito Magenta", - "bannerpp.pattern.spectrum.neolith.orange": "Neolito Laranja", - "bannerpp.pattern.spectrum.neolith.white": "Neolito Branco", - "bannerpp.pattern.spectrum.pigment.black": "Pigmento Preto", - "bannerpp.pattern.spectrum.pigment.red": "Pigmento Vermelho", - "bannerpp.pattern.spectrum.pigment.green": "Pigmento Verde", - "bannerpp.pattern.spectrum.pigment.brown": "Pigmento Marrom", - "bannerpp.pattern.spectrum.pigment.blue": "Pigmento Azul", - "bannerpp.pattern.spectrum.pigment.purple": "Pigmento Roxo", - "bannerpp.pattern.spectrum.pigment.cyan": "Pigmento Ciano", - "bannerpp.pattern.spectrum.pigment.light_gray": "Pigmento Cinza-Claro", - "bannerpp.pattern.spectrum.pigment.gray": "Pigmento Cinza", - "bannerpp.pattern.spectrum.pigment.pink": "Pigmento Rosa", - "bannerpp.pattern.spectrum.pigment.lime": "Pigmento Verde-Limão", - "bannerpp.pattern.spectrum.pigment.yellow": "Pigmento Amarelo", - "bannerpp.pattern.spectrum.pigment.light_blue": "Pigmento Azul-Claro", - "bannerpp.pattern.spectrum.pigment.magenta": "Pigmento Magenta", - "bannerpp.pattern.spectrum.pigment.orange": "Pigmento Laranja", - "bannerpp.pattern.spectrum.pigment.white": "Pigmento Branco", - "bannerpp.pattern.spectrum.knowledge_gem.black": "Gema do Conhecimento Preta", - "bannerpp.pattern.spectrum.knowledge_gem.red": "Gema do Conhecimento Vermelha", - "bannerpp.pattern.spectrum.knowledge_gem.green": "Gema do Conhecimento Verde", - "bannerpp.pattern.spectrum.knowledge_gem.brown": "Gema do Conhecimento Marrom", - "bannerpp.pattern.spectrum.knowledge_gem.blue": "Gema do Conhecimento Azul", - "bannerpp.pattern.spectrum.knowledge_gem.purple": "Gema do Conhecimento Roxa", - "bannerpp.pattern.spectrum.knowledge_gem.cyan": "Gema do Conhecimento Ciano", - "bannerpp.pattern.spectrum.knowledge_gem.light_gray": "Gema do Conhecimento Cinza-Claro", - "bannerpp.pattern.spectrum.knowledge_gem.gray": "Gema do Conhecimento Cinza", - "bannerpp.pattern.spectrum.knowledge_gem.pink": "Gema do Conhecimento Rosa", - "bannerpp.pattern.spectrum.knowledge_gem.lime": "Gema do Conhecimento Verde-Limão", - "bannerpp.pattern.spectrum.knowledge_gem.yellow": "Gema do Conhecimento Amarela", - "bannerpp.pattern.spectrum.knowledge_gem.light_blue": "Gema do Conhecimento Azul-Claro", - "bannerpp.pattern.spectrum.knowledge_gem.magenta": "Gema do Conhecimento Magenta", - "bannerpp.pattern.spectrum.knowledge_gem.orange": "Gema do Conhecimento Laranja", - "bannerpp.pattern.spectrum.knowledge_gem.white": "Gema do Conhecimento Branca", - "bannerpp.pattern.spectrum.vegetal.black": "Vegetal Preto", - "bannerpp.pattern.spectrum.vegetal.red": "Vegetal Vermelho", - "bannerpp.pattern.spectrum.vegetal.green": "Vegetal Verde", - "bannerpp.pattern.spectrum.vegetal.brown": "Vegetal Marrom", - "bannerpp.pattern.spectrum.vegetal.blue": "Vegetal Azul", - "bannerpp.pattern.spectrum.vegetal.purple": "Vegetal Roxo", - "bannerpp.pattern.spectrum.vegetal.cyan": "Vegetal Ciano", - "bannerpp.pattern.spectrum.vegetal.light_gray": "Vegetal Cinza-Claro", - "bannerpp.pattern.spectrum.vegetal.gray": "Vegetal Cinza", - "bannerpp.pattern.spectrum.vegetal.pink": "Vegetal Rosa", - "bannerpp.pattern.spectrum.vegetal.lime": "Vegetal Verde-Limão", - "bannerpp.pattern.spectrum.vegetal.yellow": "Vegetal Amarelo", - "bannerpp.pattern.spectrum.vegetal.light_blue": "Vegetal Azul-Claro", - "bannerpp.pattern.spectrum.vegetal.magenta": "Vegetal Magenta", - "bannerpp.pattern.spectrum.vegetal.orange": "Vegetal Laranja", - "bannerpp.pattern.spectrum.vegetal.white": "Vegetal Branco", - "bannerpp.pattern.spectrum.logo.black": "Teoria das Cores Preta", - "bannerpp.pattern.spectrum.logo.red": "Teoria das Cores Vermelha", - "bannerpp.pattern.spectrum.logo.green": "Teoria das Cores Verde", - "bannerpp.pattern.spectrum.logo.brown": "Teoria das Cores Marrom", - "bannerpp.pattern.spectrum.logo.blue": "Teoria das Cores Azul", - "bannerpp.pattern.spectrum.logo.purple": "Teoria das Cores Roxa", - "bannerpp.pattern.spectrum.logo.cyan": "Teoria das Cores Ciano", - "bannerpp.pattern.spectrum.logo.light_gray": "Teoria das Cores Cinza-Claro", - "bannerpp.pattern.spectrum.logo.gray": "Teoria das Cores Cinza", - "bannerpp.pattern.spectrum.logo.pink": "Teoria das Cores Rosa", - "bannerpp.pattern.spectrum.logo.lime": "Teoria das Cores Verde-Limão", - "bannerpp.pattern.spectrum.logo.yellow": "Teoria das Cores Amarela", - "bannerpp.pattern.spectrum.logo.light_blue": "Teoria das Cores Azul-Claro", - "bannerpp.pattern.spectrum.logo.magenta": "Teoria das Cores Magenta", - "bannerpp.pattern.spectrum.logo.orange": "Teoria das Cores Laranja", - "bannerpp.pattern.spectrum.logo.white": "Teoria das Cores Branca", - "bannerpp.pattern.spectrum.four_leaf_clover.black": "Trevo de Quatro Folhas Preto", - "bannerpp.pattern.spectrum.four_leaf_clover.red": "Trevo de Quatro Folhas Vermelho", - "bannerpp.pattern.spectrum.four_leaf_clover.green": "Trevo de Quatro Folhas Verde", - "bannerpp.pattern.spectrum.four_leaf_clover.brown": "Trevo de Quatro Folhas Marrom", - "bannerpp.pattern.spectrum.four_leaf_clover.blue": "Trevo de Quatro Folhas Azul", - "bannerpp.pattern.spectrum.four_leaf_clover.purple": "Trevo de Quatro Folhas Roxo", - "bannerpp.pattern.spectrum.four_leaf_clover.cyan": "Trevo de Quatro Folhas Ciano", - "bannerpp.pattern.spectrum.four_leaf_clover.light_gray": "Trevo de Quatro Folhas Cinza-Claro", - "bannerpp.pattern.spectrum.four_leaf_clover.gray": "Trevo de Quatro Folhas Cinza", - "bannerpp.pattern.spectrum.four_leaf_clover.pink": "Trevo de Quatro Folhas Rosa", - "bannerpp.pattern.spectrum.four_leaf_clover.lime": "Trevo de Quatro Folhas Verde-Limão", - "bannerpp.pattern.spectrum.four_leaf_clover.yellow": "Trevo de Quatro Folhas Amarelo", - "bannerpp.pattern.spectrum.four_leaf_clover.light_blue": "Trevo de Quatro Folhas Azul-Claro", - "bannerpp.pattern.spectrum.four_leaf_clover.magenta": "Trevo de Quatro Folhas Magenta", - "bannerpp.pattern.spectrum.four_leaf_clover.orange": "Trevo de Quatro Folhas Laranja", - "bannerpp.pattern.spectrum.four_leaf_clover.white": "Trevo de Quatro Folhas Branco", - "bannerpp.pattern.spectrum.multitool.black": "Multiferramenta Preta", - "bannerpp.pattern.spectrum.multitool.red": "Multiferramenta Vermelha", - "bannerpp.pattern.spectrum.multitool.green": "Multiferramenta Verde", - "bannerpp.pattern.spectrum.multitool.brown": "Multiferramenta Marrom", - "bannerpp.pattern.spectrum.multitool.blue": "Multiferramenta Azul", - "bannerpp.pattern.spectrum.multitool.purple": "Multiferramenta Roxa", - "bannerpp.pattern.spectrum.multitool.cyan": "Multiferramenta Ciano", - "bannerpp.pattern.spectrum.multitool.light_gray": "Multiferramenta Cinza-Claro", - "bannerpp.pattern.spectrum.multitool.gray": "Multiferramenta Cinza", - "bannerpp.pattern.spectrum.multitool.pink": "Multiferramenta Rosa", - "bannerpp.pattern.spectrum.multitool.lime": "Multiferramenta Verde-Limão", - "bannerpp.pattern.spectrum.multitool.yellow": "Multiferramenta Amarela", - "bannerpp.pattern.spectrum.multitool.light_blue": "Multiferramenta Azul-Claro", - "bannerpp.pattern.spectrum.multitool.magenta": "Multiferramenta Magenta", - "bannerpp.pattern.spectrum.multitool.orange": "Multiferramenta Laranja", - "bannerpp.pattern.spectrum.multitool.white": "Multiferramenta Branca", - "bannerpp.pattern.spectrum.manual.black": "Mundo Colorido Preto", - "bannerpp.pattern.spectrum.manual.red": "Mundo Colorido Vermelho", - "bannerpp.pattern.spectrum.manual.green": "Mundo Colorido Verde", - "bannerpp.pattern.spectrum.manual.brown": "Mundo Colorido Marrom", - "bannerpp.pattern.spectrum.manual.blue": "Mundo Colorido Azul", - "bannerpp.pattern.spectrum.manual.purple": "Mundo Colorido Roxo", - "bannerpp.pattern.spectrum.manual.cyan": "Mundo Colorido Ciano", - "bannerpp.pattern.spectrum.manual.light_gray": "Mundo Colorido Cinza-Claro", - "bannerpp.pattern.spectrum.manual.gray": "Mundo Colorido Cinza", - "bannerpp.pattern.spectrum.manual.pink": "Mundo Colorido Rosa", - "bannerpp.pattern.spectrum.manual.lime": "Mundo Colorido Verde-Limão", - "bannerpp.pattern.spectrum.manual.yellow": "Mundo Colorido Amarelo", - "bannerpp.pattern.spectrum.manual.light_blue": "Mundo Colorido Azul-Claro", - "bannerpp.pattern.spectrum.manual.magenta": "Mundo Colorido Magenta", - "bannerpp.pattern.spectrum.manual.orange": "Mundo Colorido Laranja", - "bannerpp.pattern.spectrum.manual.white": "Mundo Colorido Branco", - "bannerpp.pattern.spectrum.crafting_tablet.black": "Tábua de Fabricação Preta", - "bannerpp.pattern.spectrum.crafting_tablet.red": "Tábua de Fabricação Vermelha", - "bannerpp.pattern.spectrum.crafting_tablet.green": "Tábua de Fabricação Verde", - "bannerpp.pattern.spectrum.crafting_tablet.brown": "Tábua de Fabricação Marrom", - "bannerpp.pattern.spectrum.crafting_tablet.blue": "Tábua de Fabricação Azul", - "bannerpp.pattern.spectrum.crafting_tablet.purple": "Tábua de Fabricação Roxa", - "bannerpp.pattern.spectrum.crafting_tablet.cyan": "Tábua de Fabricação Ciano", - "bannerpp.pattern.spectrum.crafting_tablet.light_gray": "Tábua de Fabricação Cinza-Claro", - "bannerpp.pattern.spectrum.crafting_tablet.gray": "Tábua de Fabricação Cinza", - "bannerpp.pattern.spectrum.crafting_tablet.pink": "Tábua de Fabricação Rosa", - "bannerpp.pattern.spectrum.crafting_tablet.lime": "Tábua de Fabricação Verde-Limão", - "bannerpp.pattern.spectrum.crafting_tablet.yellow": "Tábua de Fabricação Amarela", - "bannerpp.pattern.spectrum.crafting_tablet.light_blue": "Tábua de Fabricação Azul-Claro", - "bannerpp.pattern.spectrum.crafting_tablet.magenta": "Tábua de Fabricação Magenta", - "bannerpp.pattern.spectrum.crafting_tablet.orange": "Tábua de Fabricação Laranja", - "bannerpp.pattern.spectrum.crafting_tablet.white": "Tábua de Fabricação Branca", - "bannerpp.pattern.spectrum.ink_flask.black": "Frasco de Tinta Preta", - "bannerpp.pattern.spectrum.ink_flask.red": "Frasco de Tinta Vermelha", - "bannerpp.pattern.spectrum.ink_flask.green": "Frasco de Tinta Verde", - "bannerpp.pattern.spectrum.ink_flask.brown": "Frasco de Tinta Marrom", - "bannerpp.pattern.spectrum.ink_flask.blue": "Frasco de Tinta Azul", - "bannerpp.pattern.spectrum.ink_flask.purple": "Frasco de Tinta Roxa", - "bannerpp.pattern.spectrum.ink_flask.cyan": "Frasco de Tinta Ciano", - "bannerpp.pattern.spectrum.ink_flask.light_gray": "Frasco de Tinta Cinza-Claro", - "bannerpp.pattern.spectrum.ink_flask.gray": "Frasco de Tinta Cinza", - "bannerpp.pattern.spectrum.ink_flask.pink": "Frasco de Tinta Rosa", - "bannerpp.pattern.spectrum.ink_flask.lime": "Frasco de Tinta Verde-Limão", - "bannerpp.pattern.spectrum.ink_flask.yellow": "Frasco de Tinta Amarela", - "bannerpp.pattern.spectrum.ink_flask.light_blue": "Frasco de Tinta Azul-Claro", - "bannerpp.pattern.spectrum.ink_flask.magenta": "Frasco de Tinta Magenta", - "bannerpp.pattern.spectrum.ink_flask.orange": "Frasco de Tinta Laranja", - "bannerpp.pattern.spectrum.ink_flask.white": "Frasco de Tinta Branca", - "bannerpp.pattern.spectrum.amethyst_shard.black": "Fragmento de Ametista Preta", - "bannerpp.pattern.spectrum.amethyst_shard.red": "Fragmento de Ametista Vermelha", - "bannerpp.pattern.spectrum.amethyst_shard.green": "Fragmento de Ametista Verde", - "bannerpp.pattern.spectrum.amethyst_shard.brown": "Fragmento de Ametista Marrom", - "bannerpp.pattern.spectrum.amethyst_shard.blue": "Fragmento de Ametista Azul", - "bannerpp.pattern.spectrum.amethyst_shard.purple": "Fragmento de Ametista Roxa", - "bannerpp.pattern.spectrum.amethyst_shard.cyan": "Fragmento de Ametista Ciano", - "bannerpp.pattern.spectrum.amethyst_shard.light_gray": "Fragmento de Ametista Cinza-Claro", - "bannerpp.pattern.spectrum.amethyst_shard.gray": "Fragmento de Ametista Cinza", - "bannerpp.pattern.spectrum.amethyst_shard.pink": "Fragmento de Ametista Rosa", - "bannerpp.pattern.spectrum.amethyst_shard.lime": "Fragmento de Ametista Verde-Limão", - "bannerpp.pattern.spectrum.amethyst_shard.yellow": "Fragmento de Ametista Amarela", - "bannerpp.pattern.spectrum.amethyst_shard.light_blue": "Fragmento de Ametista Azul-Claro", - "bannerpp.pattern.spectrum.amethyst_shard.magenta": "Fragmento de Ametista Magenta", - "bannerpp.pattern.spectrum.amethyst_shard.orange": "Fragmento de Ametista Laranja", - "bannerpp.pattern.spectrum.amethyst_shard.white": "Fragmento de Ametista Branca", - "bannerpp.pattern.spectrum.raw_azurite.black": "Azurita Preta", - "bannerpp.pattern.spectrum.raw_azurite.red": "Azurita Vermelha", - "bannerpp.pattern.spectrum.raw_azurite.green": "Azurita Verde", - "bannerpp.pattern.spectrum.raw_azurite.brown": "Azurita Marrom", - "bannerpp.pattern.spectrum.raw_azurite.blue": "Azurita Azul", - "bannerpp.pattern.spectrum.raw_azurite.purple": "Azurita Roxa", - "bannerpp.pattern.spectrum.raw_azurite.cyan": "Azurita Ciano", - "bannerpp.pattern.spectrum.raw_azurite.light_gray": "Azurita Cinza-Claro", - "bannerpp.pattern.spectrum.raw_azurite.gray": "Azurita Cinza", - "bannerpp.pattern.spectrum.raw_azurite.pink": "Azurita Rosa", - "bannerpp.pattern.spectrum.raw_azurite.lime": "Azurita Verde-Limão", - "bannerpp.pattern.spectrum.raw_azurite.yellow": "Azurita Amarela", - "bannerpp.pattern.spectrum.raw_azurite.light_blue": "Azurita Azul-Claro", - "bannerpp.pattern.spectrum.raw_azurite.magenta": "Azurita Magenta", - "bannerpp.pattern.spectrum.raw_azurite.orange": "Azurita Laranja", - "bannerpp.pattern.spectrum.raw_azurite.white": "Azurita Branca", - - "bannerpp.pattern.spectrum.bedrock_dust.black": "Pó de Rocha-Mãe Preta", - "bannerpp.pattern.spectrum.bedrock_dust.red": "Pó de Rocha-Mãe Vermelha", - "bannerpp.pattern.spectrum.bedrock_dust.green": "Pó de Rocha-Mãe Verde", - "bannerpp.pattern.spectrum.bedrock_dust.brown": "Pó de Rocha-Mãe Marrom", - "bannerpp.pattern.spectrum.bedrock_dust.blue": "Pó de Rocha-Mãe Azul", - "bannerpp.pattern.spectrum.bedrock_dust.purple": "Pó de Rocha-Mãe Roxa", - "bannerpp.pattern.spectrum.bedrock_dust.cyan": "Pó de Rocha-Mãe Ciano", - "bannerpp.pattern.spectrum.bedrock_dust.light_gray": "Pó de Rocha-Mãe Cinza-Claro", - "bannerpp.pattern.spectrum.bedrock_dust.gray": "Pó de Rocha-Mãe Cinza", - "bannerpp.pattern.spectrum.bedrock_dust.pink": "Pó de Rocha-Mãe Rosa", - "bannerpp.pattern.spectrum.bedrock_dust.lime": "Pó de Rocha-Mãe Verde-Limão", - "bannerpp.pattern.spectrum.bedrock_dust.yellow": "Pó de Rocha-Mãe Amarela", - "bannerpp.pattern.spectrum.bedrock_dust.light_blue": "Pó de Rocha-Mãe Azul-Claro", - "bannerpp.pattern.spectrum.bedrock_dust.magenta": "Pó de Rocha-Mãe Magenta", - "bannerpp.pattern.spectrum.bedrock_dust.orange": "Pó de Rocha-Mãe Laranja", - "bannerpp.pattern.spectrum.bedrock_dust.white": "Pó de Rocha-Mãe Branca", - - "bannerpp.pattern.spectrum.shimmerstone.black": "Pedra Cintilante Preta", - "bannerpp.pattern.spectrum.shimmerstone.red": "Pedra Cintilante Vermelha", - "bannerpp.pattern.spectrum.shimmerstone.green": "Pedra Cintilante Verde", - "bannerpp.pattern.spectrum.shimmerstone.brown": "Pedra Cintilante Marrom", - "bannerpp.pattern.spectrum.shimmerstone.blue": "Pedra Cintilante Azul", - "bannerpp.pattern.spectrum.shimmerstone.purple": "Pedra Cintilante Roxa", - "bannerpp.pattern.spectrum.shimmerstone.cyan": "Pedra Cintilante Ciano", - "bannerpp.pattern.spectrum.shimmerstone.light_gray": "Pedra Cintilante Cinza-Claro", - "bannerpp.pattern.spectrum.shimmerstone.gray": "Pedra Cintilante Cinza", - "bannerpp.pattern.spectrum.shimmerstone.pink": "Pedra Cintilante Rosa", - "bannerpp.pattern.spectrum.shimmerstone.lime": "Pedra Cintilante Verde-Limão", - "bannerpp.pattern.spectrum.shimmerstone.yellow": "Pedra Cintilante Amarela", - "bannerpp.pattern.spectrum.shimmerstone.light_blue": "Pedra Cintilante Azul-Claro", - "bannerpp.pattern.spectrum.shimmerstone.magenta": "Pedra Cintilante Magenta", - "bannerpp.pattern.spectrum.shimmerstone.orange": "Pedra Cintilante Laranja", - "bannerpp.pattern.spectrum.shimmerstone.white": "Pedra Cintilante Branca", - - "bannerpp.pattern.spectrum.jade_vine.black": "Vinha de Jade Preta", - "bannerpp.pattern.spectrum.jade_vine.red": "Vinha de Jade Vermelha", - "bannerpp.pattern.spectrum.jade_vine.green": "Vinha de Jade Verde", - "bannerpp.pattern.spectrum.jade_vine.brown": "Vinha de Jade Marrom", - "bannerpp.pattern.spectrum.jade_vine.blue": "Vinha de Jade Azul", - "bannerpp.pattern.spectrum.jade_vine.purple": "Vinha de Jade Roxa", - "bannerpp.pattern.spectrum.jade_vine.cyan": "Vinha de Jade Ciano", - "bannerpp.pattern.spectrum.jade_vine.light_gray": "Vinha de Jade Cinza-Claro", - "bannerpp.pattern.spectrum.jade_vine.gray": "Vinha de Jade Cinza", - "bannerpp.pattern.spectrum.jade_vine.pink": "Vinha de Jade Rosa", - "bannerpp.pattern.spectrum.jade_vine.lime": "Vinha de Jade Verde-Limão", - "bannerpp.pattern.spectrum.jade_vine.yellow": "Vinha de Jade Amarela", - "bannerpp.pattern.spectrum.jade_vine.light_blue": "Vinha de Jade Azul-Claro", - "bannerpp.pattern.spectrum.jade_vine.magenta": "Vinha de Jade Magenta", - "bannerpp.pattern.spectrum.jade_vine.orange": "Vinha de Jade Laranja", - "bannerpp.pattern.spectrum.jade_vine.white": "Vinha de Jade Branca", + "block.minecraft.banner.spectrum.shimmer.black": "Cintilo Preto", + "block.minecraft.banner.spectrum.shimmer.red": "Cintilo Vermelho", + "block.minecraft.banner.spectrum.shimmer.green": "Cintilo Verde", + "block.minecraft.banner.spectrum.shimmer.brown": "Cintilo Marrom", + "block.minecraft.banner.spectrum.shimmer.blue": "Cintilo Azul", + "block.minecraft.banner.spectrum.shimmer.purple": "Cintilo Roxo", + "block.minecraft.banner.spectrum.shimmer.cyan": "Cintilo Ciano", + "block.minecraft.banner.spectrum.shimmer.light_gray": "Cintilo Cinza-Claro", + "block.minecraft.banner.spectrum.shimmer.gray": "Cintilo Cinza", + "block.minecraft.banner.spectrum.shimmer.pink": "Cintilo Rosa", + "block.minecraft.banner.spectrum.shimmer.lime": "Cintilo Verde-Limão", + "block.minecraft.banner.spectrum.shimmer.yellow": "Cintilo Amarelo", + "block.minecraft.banner.spectrum.shimmer.light_blue": "Cintilo Azul-Claro", + "block.minecraft.banner.spectrum.shimmer.magenta": "Cintilo Magenta", + "block.minecraft.banner.spectrum.shimmer.orange": "Cintilo Laranja", + "block.minecraft.banner.spectrum.shimmer.white": "Cintilo Branco", + "block.minecraft.banner.spectrum.palette.black": "Arte Preta", + "block.minecraft.banner.spectrum.palette.red": "Arte Vermelha", + "block.minecraft.banner.spectrum.palette.green": "Arte Verde", + "block.minecraft.banner.spectrum.palette.brown": "Arte Marrom", + "block.minecraft.banner.spectrum.palette.blue": "Arte Azul", + "block.minecraft.banner.spectrum.palette.purple": "Arte Roxa", + "block.minecraft.banner.spectrum.palette.cyan": "Arte Ciano", + "block.minecraft.banner.spectrum.palette.light_gray": "Arte Cinza-Claro", + "block.minecraft.banner.spectrum.palette.gray": "Arte Cinza", + "block.minecraft.banner.spectrum.palette.pink": "Arte Rosa", + "block.minecraft.banner.spectrum.palette.lime": "Arte Verde-Limão", + "block.minecraft.banner.spectrum.palette.yellow": "Arte Amarela", + "block.minecraft.banner.spectrum.palette.light_blue": "Arte Azul-Claro", + "block.minecraft.banner.spectrum.palette.magenta": "Arte Magenta", + "block.minecraft.banner.spectrum.palette.orange": "Arte Laranja", + "block.minecraft.banner.spectrum.palette.white": "Arte Branca", + "block.minecraft.banner.spectrum.amethyst_cluster.black": "Aglomerado de Ametista Preta", + "block.minecraft.banner.spectrum.amethyst_cluster.red": "Aglomerado de Ametista Vermelha", + "block.minecraft.banner.spectrum.amethyst_cluster.green": "Aglomerado de Ametista Verde", + "block.minecraft.banner.spectrum.amethyst_cluster.brown": "Aglomerado de Ametista Marrom", + "block.minecraft.banner.spectrum.amethyst_cluster.blue": "Aglomerado de Ametista Azul", + "block.minecraft.banner.spectrum.amethyst_cluster.purple": "Aglomerado de Ametista Roxa", + "block.minecraft.banner.spectrum.amethyst_cluster.cyan": "Aglomerado de Ametista Ciano", + "block.minecraft.banner.spectrum.amethyst_cluster.light_gray": "Aglomerado de Ametista Cinza-Claro", + "block.minecraft.banner.spectrum.amethyst_cluster.gray": "Aglomerado de Ametista Cinza", + "block.minecraft.banner.spectrum.amethyst_cluster.pink": "Aglomerado de Ametista Rosa", + "block.minecraft.banner.spectrum.amethyst_cluster.lime": "Aglomerado de Ametista Verde-Limão", + "block.minecraft.banner.spectrum.amethyst_cluster.yellow": "Aglomerado de Ametista Amarela", + "block.minecraft.banner.spectrum.amethyst_cluster.light_blue": "Aglomerado de Ametista Azul-Claro", + "block.minecraft.banner.spectrum.amethyst_cluster.magenta": "Aglomerado de Ametista Magenta", + "block.minecraft.banner.spectrum.amethyst_cluster.orange": "Aglomerado de Ametista Laranja", + "block.minecraft.banner.spectrum.amethyst_cluster.white": "Aglomerado de Ametista Branca", + "block.minecraft.banner.spectrum.neolith.black": "Neolito Preto", + "block.minecraft.banner.spectrum.neolith.red": "Neolito Vermelho", + "block.minecraft.banner.spectrum.neolith.green": "Neolito Verde", + "block.minecraft.banner.spectrum.neolith.brown": "Neolito Marrom", + "block.minecraft.banner.spectrum.neolith.blue": "Neolito Azul", + "block.minecraft.banner.spectrum.neolith.purple": "Neolito Roxo", + "block.minecraft.banner.spectrum.neolith.cyan": "Neolito Ciano", + "block.minecraft.banner.spectrum.neolith.light_gray": "Neolito Cinza-Claro", + "block.minecraft.banner.spectrum.neolith.gray": "Neolito Cinza", + "block.minecraft.banner.spectrum.neolith.pink": "Neolito Rosa", + "block.minecraft.banner.spectrum.neolith.lime": "Neolito Verde-Limão", + "block.minecraft.banner.spectrum.neolith.yellow": "Neolito Amarelo", + "block.minecraft.banner.spectrum.neolith.light_blue": "Neolito Azul-Claro", + "block.minecraft.banner.spectrum.neolith.magenta": "Neolito Magenta", + "block.minecraft.banner.spectrum.neolith.orange": "Neolito Laranja", + "block.minecraft.banner.spectrum.neolith.white": "Neolito Branco", + "block.minecraft.banner.spectrum.pigment.black": "Pigmento Preto", + "block.minecraft.banner.spectrum.pigment.red": "Pigmento Vermelho", + "block.minecraft.banner.spectrum.pigment.green": "Pigmento Verde", + "block.minecraft.banner.spectrum.pigment.brown": "Pigmento Marrom", + "block.minecraft.banner.spectrum.pigment.blue": "Pigmento Azul", + "block.minecraft.banner.spectrum.pigment.purple": "Pigmento Roxo", + "block.minecraft.banner.spectrum.pigment.cyan": "Pigmento Ciano", + "block.minecraft.banner.spectrum.pigment.light_gray": "Pigmento Cinza-Claro", + "block.minecraft.banner.spectrum.pigment.gray": "Pigmento Cinza", + "block.minecraft.banner.spectrum.pigment.pink": "Pigmento Rosa", + "block.minecraft.banner.spectrum.pigment.lime": "Pigmento Verde-Limão", + "block.minecraft.banner.spectrum.pigment.yellow": "Pigmento Amarelo", + "block.minecraft.banner.spectrum.pigment.light_blue": "Pigmento Azul-Claro", + "block.minecraft.banner.spectrum.pigment.magenta": "Pigmento Magenta", + "block.minecraft.banner.spectrum.pigment.orange": "Pigmento Laranja", + "block.minecraft.banner.spectrum.pigment.white": "Pigmento Branco", + "block.minecraft.banner.spectrum.knowledge_gem.black": "Gema do Conhecimento Preta", + "block.minecraft.banner.spectrum.knowledge_gem.red": "Gema do Conhecimento Vermelha", + "block.minecraft.banner.spectrum.knowledge_gem.green": "Gema do Conhecimento Verde", + "block.minecraft.banner.spectrum.knowledge_gem.brown": "Gema do Conhecimento Marrom", + "block.minecraft.banner.spectrum.knowledge_gem.blue": "Gema do Conhecimento Azul", + "block.minecraft.banner.spectrum.knowledge_gem.purple": "Gema do Conhecimento Roxa", + "block.minecraft.banner.spectrum.knowledge_gem.cyan": "Gema do Conhecimento Ciano", + "block.minecraft.banner.spectrum.knowledge_gem.light_gray": "Gema do Conhecimento Cinza-Claro", + "block.minecraft.banner.spectrum.knowledge_gem.gray": "Gema do Conhecimento Cinza", + "block.minecraft.banner.spectrum.knowledge_gem.pink": "Gema do Conhecimento Rosa", + "block.minecraft.banner.spectrum.knowledge_gem.lime": "Gema do Conhecimento Verde-Limão", + "block.minecraft.banner.spectrum.knowledge_gem.yellow": "Gema do Conhecimento Amarela", + "block.minecraft.banner.spectrum.knowledge_gem.light_blue": "Gema do Conhecimento Azul-Claro", + "block.minecraft.banner.spectrum.knowledge_gem.magenta": "Gema do Conhecimento Magenta", + "block.minecraft.banner.spectrum.knowledge_gem.orange": "Gema do Conhecimento Laranja", + "block.minecraft.banner.spectrum.knowledge_gem.white": "Gema do Conhecimento Branca", + "block.minecraft.banner.spectrum.vegetal.black": "Vegetal Preto", + "block.minecraft.banner.spectrum.vegetal.red": "Vegetal Vermelho", + "block.minecraft.banner.spectrum.vegetal.green": "Vegetal Verde", + "block.minecraft.banner.spectrum.vegetal.brown": "Vegetal Marrom", + "block.minecraft.banner.spectrum.vegetal.blue": "Vegetal Azul", + "block.minecraft.banner.spectrum.vegetal.purple": "Vegetal Roxo", + "block.minecraft.banner.spectrum.vegetal.cyan": "Vegetal Ciano", + "block.minecraft.banner.spectrum.vegetal.light_gray": "Vegetal Cinza-Claro", + "block.minecraft.banner.spectrum.vegetal.gray": "Vegetal Cinza", + "block.minecraft.banner.spectrum.vegetal.pink": "Vegetal Rosa", + "block.minecraft.banner.spectrum.vegetal.lime": "Vegetal Verde-Limão", + "block.minecraft.banner.spectrum.vegetal.yellow": "Vegetal Amarelo", + "block.minecraft.banner.spectrum.vegetal.light_blue": "Vegetal Azul-Claro", + "block.minecraft.banner.spectrum.vegetal.magenta": "Vegetal Magenta", + "block.minecraft.banner.spectrum.vegetal.orange": "Vegetal Laranja", + "block.minecraft.banner.spectrum.vegetal.white": "Vegetal Branco", + "block.minecraft.banner.spectrum.logo.black": "Teoria das Cores Preta", + "block.minecraft.banner.spectrum.logo.red": "Teoria das Cores Vermelha", + "block.minecraft.banner.spectrum.logo.green": "Teoria das Cores Verde", + "block.minecraft.banner.spectrum.logo.brown": "Teoria das Cores Marrom", + "block.minecraft.banner.spectrum.logo.blue": "Teoria das Cores Azul", + "block.minecraft.banner.spectrum.logo.purple": "Teoria das Cores Roxa", + "block.minecraft.banner.spectrum.logo.cyan": "Teoria das Cores Ciano", + "block.minecraft.banner.spectrum.logo.light_gray": "Teoria das Cores Cinza-Claro", + "block.minecraft.banner.spectrum.logo.gray": "Teoria das Cores Cinza", + "block.minecraft.banner.spectrum.logo.pink": "Teoria das Cores Rosa", + "block.minecraft.banner.spectrum.logo.lime": "Teoria das Cores Verde-Limão", + "block.minecraft.banner.spectrum.logo.yellow": "Teoria das Cores Amarela", + "block.minecraft.banner.spectrum.logo.light_blue": "Teoria das Cores Azul-Claro", + "block.minecraft.banner.spectrum.logo.magenta": "Teoria das Cores Magenta", + "block.minecraft.banner.spectrum.logo.orange": "Teoria das Cores Laranja", + "block.minecraft.banner.spectrum.logo.white": "Teoria das Cores Branca", + "block.minecraft.banner.spectrum.four_leaf_clover.black": "Trevo de Quatro Folhas Preto", + "block.minecraft.banner.spectrum.four_leaf_clover.red": "Trevo de Quatro Folhas Vermelho", + "block.minecraft.banner.spectrum.four_leaf_clover.green": "Trevo de Quatro Folhas Verde", + "block.minecraft.banner.spectrum.four_leaf_clover.brown": "Trevo de Quatro Folhas Marrom", + "block.minecraft.banner.spectrum.four_leaf_clover.blue": "Trevo de Quatro Folhas Azul", + "block.minecraft.banner.spectrum.four_leaf_clover.purple": "Trevo de Quatro Folhas Roxo", + "block.minecraft.banner.spectrum.four_leaf_clover.cyan": "Trevo de Quatro Folhas Ciano", + "block.minecraft.banner.spectrum.four_leaf_clover.light_gray": "Trevo de Quatro Folhas Cinza-Claro", + "block.minecraft.banner.spectrum.four_leaf_clover.gray": "Trevo de Quatro Folhas Cinza", + "block.minecraft.banner.spectrum.four_leaf_clover.pink": "Trevo de Quatro Folhas Rosa", + "block.minecraft.banner.spectrum.four_leaf_clover.lime": "Trevo de Quatro Folhas Verde-Limão", + "block.minecraft.banner.spectrum.four_leaf_clover.yellow": "Trevo de Quatro Folhas Amarelo", + "block.minecraft.banner.spectrum.four_leaf_clover.light_blue": "Trevo de Quatro Folhas Azul-Claro", + "block.minecraft.banner.spectrum.four_leaf_clover.magenta": "Trevo de Quatro Folhas Magenta", + "block.minecraft.banner.spectrum.four_leaf_clover.orange": "Trevo de Quatro Folhas Laranja", + "block.minecraft.banner.spectrum.four_leaf_clover.white": "Trevo de Quatro Folhas Branco", + "block.minecraft.banner.spectrum.multitool.black": "Multiferramenta Preta", + "block.minecraft.banner.spectrum.multitool.red": "Multiferramenta Vermelha", + "block.minecraft.banner.spectrum.multitool.green": "Multiferramenta Verde", + "block.minecraft.banner.spectrum.multitool.brown": "Multiferramenta Marrom", + "block.minecraft.banner.spectrum.multitool.blue": "Multiferramenta Azul", + "block.minecraft.banner.spectrum.multitool.purple": "Multiferramenta Roxa", + "block.minecraft.banner.spectrum.multitool.cyan": "Multiferramenta Ciano", + "block.minecraft.banner.spectrum.multitool.light_gray": "Multiferramenta Cinza-Claro", + "block.minecraft.banner.spectrum.multitool.gray": "Multiferramenta Cinza", + "block.minecraft.banner.spectrum.multitool.pink": "Multiferramenta Rosa", + "block.minecraft.banner.spectrum.multitool.lime": "Multiferramenta Verde-Limão", + "block.minecraft.banner.spectrum.multitool.yellow": "Multiferramenta Amarela", + "block.minecraft.banner.spectrum.multitool.light_blue": "Multiferramenta Azul-Claro", + "block.minecraft.banner.spectrum.multitool.magenta": "Multiferramenta Magenta", + "block.minecraft.banner.spectrum.multitool.orange": "Multiferramenta Laranja", + "block.minecraft.banner.spectrum.multitool.white": "Multiferramenta Branca", + "block.minecraft.banner.spectrum.guidebook.black": "Mundo Colorido Preto", + "block.minecraft.banner.spectrum.guidebook.red": "Mundo Colorido Vermelho", + "block.minecraft.banner.spectrum.guidebook.green": "Mundo Colorido Verde", + "block.minecraft.banner.spectrum.guidebook.brown": "Mundo Colorido Marrom", + "block.minecraft.banner.spectrum.guidebook.blue": "Mundo Colorido Azul", + "block.minecraft.banner.spectrum.guidebook.purple": "Mundo Colorido Roxo", + "block.minecraft.banner.spectrum.guidebook.cyan": "Mundo Colorido Ciano", + "block.minecraft.banner.spectrum.guidebook.light_gray": "Mundo Colorido Cinza-Claro", + "block.minecraft.banner.spectrum.guidebook.gray": "Mundo Colorido Cinza", + "block.minecraft.banner.spectrum.guidebook.pink": "Mundo Colorido Rosa", + "block.minecraft.banner.spectrum.guidebook.lime": "Mundo Colorido Verde-Limão", + "block.minecraft.banner.spectrum.manual.yellow": "Mundo Colorido Amarelo", + "block.minecraft.banner.spectrum.manual.light_blue": "Mundo Colorido Azul-Claro", + "block.minecraft.banner.spectrum.manual.magenta": "Mundo Colorido Magenta", + "block.minecraft.banner.spectrum.manual.orange": "Mundo Colorido Laranja", + "block.minecraft.banner.spectrum.manual.white": "Mundo Colorido Branco", + "block.minecraft.banner.spectrum.crafting_tablet.black": "Tábua de Fabricação Preta", + "block.minecraft.banner.spectrum.crafting_tablet.red": "Tábua de Fabricação Vermelha", + "block.minecraft.banner.spectrum.crafting_tablet.green": "Tábua de Fabricação Verde", + "block.minecraft.banner.spectrum.crafting_tablet.brown": "Tábua de Fabricação Marrom", + "block.minecraft.banner.spectrum.crafting_tablet.blue": "Tábua de Fabricação Azul", + "block.minecraft.banner.spectrum.crafting_tablet.purple": "Tábua de Fabricação Roxa", + "block.minecraft.banner.spectrum.crafting_tablet.cyan": "Tábua de Fabricação Ciano", + "block.minecraft.banner.spectrum.crafting_tablet.light_gray": "Tábua de Fabricação Cinza-Claro", + "block.minecraft.banner.spectrum.crafting_tablet.gray": "Tábua de Fabricação Cinza", + "block.minecraft.banner.spectrum.crafting_tablet.pink": "Tábua de Fabricação Rosa", + "block.minecraft.banner.spectrum.crafting_tablet.lime": "Tábua de Fabricação Verde-Limão", + "block.minecraft.banner.spectrum.crafting_tablet.yellow": "Tábua de Fabricação Amarela", + "block.minecraft.banner.spectrum.crafting_tablet.light_blue": "Tábua de Fabricação Azul-Claro", + "block.minecraft.banner.spectrum.crafting_tablet.magenta": "Tábua de Fabricação Magenta", + "block.minecraft.banner.spectrum.crafting_tablet.orange": "Tábua de Fabricação Laranja", + "block.minecraft.banner.spectrum.crafting_tablet.white": "Tábua de Fabricação Branca", + "block.minecraft.banner.spectrum.ink_flask.black": "Frasco de Tinta Preta", + "block.minecraft.banner.spectrum.ink_flask.red": "Frasco de Tinta Vermelha", + "block.minecraft.banner.spectrum.ink_flask.green": "Frasco de Tinta Verde", + "block.minecraft.banner.spectrum.ink_flask.brown": "Frasco de Tinta Marrom", + "block.minecraft.banner.spectrum.ink_flask.blue": "Frasco de Tinta Azul", + "block.minecraft.banner.spectrum.ink_flask.purple": "Frasco de Tinta Roxa", + "block.minecraft.banner.spectrum.ink_flask.cyan": "Frasco de Tinta Ciano", + "block.minecraft.banner.spectrum.ink_flask.light_gray": "Frasco de Tinta Cinza-Claro", + "block.minecraft.banner.spectrum.ink_flask.gray": "Frasco de Tinta Cinza", + "block.minecraft.banner.spectrum.ink_flask.pink": "Frasco de Tinta Rosa", + "block.minecraft.banner.spectrum.ink_flask.lime": "Frasco de Tinta Verde-Limão", + "block.minecraft.banner.spectrum.ink_flask.yellow": "Frasco de Tinta Amarela", + "block.minecraft.banner.spectrum.ink_flask.light_blue": "Frasco de Tinta Azul-Claro", + "block.minecraft.banner.spectrum.ink_flask.magenta": "Frasco de Tinta Magenta", + "block.minecraft.banner.spectrum.ink_flask.orange": "Frasco de Tinta Laranja", + "block.minecraft.banner.spectrum.ink_flask.white": "Frasco de Tinta Branca", + "block.minecraft.banner.spectrum.amethyst_shard.black": "Fragmento de Ametista Preta", + "block.minecraft.banner.spectrum.amethyst_shard.red": "Fragmento de Ametista Vermelha", + "block.minecraft.banner.spectrum.amethyst_shard.green": "Fragmento de Ametista Verde", + "block.minecraft.banner.spectrum.amethyst_shard.brown": "Fragmento de Ametista Marrom", + "block.minecraft.banner.spectrum.amethyst_shard.blue": "Fragmento de Ametista Azul", + "block.minecraft.banner.spectrum.amethyst_shard.purple": "Fragmento de Ametista Roxa", + "block.minecraft.banner.spectrum.amethyst_shard.cyan": "Fragmento de Ametista Ciano", + "block.minecraft.banner.spectrum.amethyst_shard.light_gray": "Fragmento de Ametista Cinza-Claro", + "block.minecraft.banner.spectrum.amethyst_shard.gray": "Fragmento de Ametista Cinza", + "block.minecraft.banner.spectrum.amethyst_shard.pink": "Fragmento de Ametista Rosa", + "block.minecraft.banner.spectrum.amethyst_shard.lime": "Fragmento de Ametista Verde-Limão", + "block.minecraft.banner.spectrum.amethyst_shard.yellow": "Fragmento de Ametista Amarela", + "block.minecraft.banner.spectrum.amethyst_shard.light_blue": "Fragmento de Ametista Azul-Claro", + "block.minecraft.banner.spectrum.amethyst_shard.magenta": "Fragmento de Ametista Magenta", + "block.minecraft.banner.spectrum.amethyst_shard.orange": "Fragmento de Ametista Laranja", + "block.minecraft.banner.spectrum.amethyst_shard.white": "Fragmento de Ametista Branca", + "block.minecraft.banner.spectrum.raw_azurite.black": "Azurita Preta", + "block.minecraft.banner.spectrum.raw_azurite.red": "Azurita Vermelha", + "block.minecraft.banner.spectrum.raw_azurite.green": "Azurita Verde", + "block.minecraft.banner.spectrum.raw_azurite.brown": "Azurita Marrom", + "block.minecraft.banner.spectrum.raw_azurite.blue": "Azurita Azul", + "block.minecraft.banner.spectrum.raw_azurite.purple": "Azurita Roxa", + "block.minecraft.banner.spectrum.raw_azurite.cyan": "Azurita Ciano", + "block.minecraft.banner.spectrum.raw_azurite.light_gray": "Azurita Cinza-Claro", + "block.minecraft.banner.spectrum.raw_azurite.gray": "Azurita Cinza", + "block.minecraft.banner.spectrum.raw_azurite.pink": "Azurita Rosa", + "block.minecraft.banner.spectrum.raw_azurite.lime": "Azurita Verde-Limão", + "block.minecraft.banner.spectrum.raw_azurite.yellow": "Azurita Amarela", + "block.minecraft.banner.spectrum.raw_azurite.light_blue": "Azurita Azul-Claro", + "block.minecraft.banner.spectrum.raw_azurite.magenta": "Azurita Magenta", + "block.minecraft.banner.spectrum.raw_azurite.orange": "Azurita Laranja", + "block.minecraft.banner.spectrum.raw_azurite.white": "Azurita Branca", + + "block.minecraft.banner.spectrum.bedrock_dust.black": "Pó de Rocha-Mãe Preta", + "block.minecraft.banner.spectrum.bedrock_dust.red": "Pó de Rocha-Mãe Vermelha", + "block.minecraft.banner.spectrum.bedrock_dust.green": "Pó de Rocha-Mãe Verde", + "block.minecraft.banner.spectrum.bedrock_dust.brown": "Pó de Rocha-Mãe Marrom", + "block.minecraft.banner.spectrum.bedrock_dust.blue": "Pó de Rocha-Mãe Azul", + "block.minecraft.banner.spectrum.bedrock_dust.purple": "Pó de Rocha-Mãe Roxa", + "block.minecraft.banner.spectrum.bedrock_dust.cyan": "Pó de Rocha-Mãe Ciano", + "block.minecraft.banner.spectrum.bedrock_dust.light_gray": "Pó de Rocha-Mãe Cinza-Claro", + "block.minecraft.banner.spectrum.bedrock_dust.gray": "Pó de Rocha-Mãe Cinza", + "block.minecraft.banner.spectrum.bedrock_dust.pink": "Pó de Rocha-Mãe Rosa", + "block.minecraft.banner.spectrum.bedrock_dust.lime": "Pó de Rocha-Mãe Verde-Limão", + "block.minecraft.banner.spectrum.bedrock_dust.yellow": "Pó de Rocha-Mãe Amarela", + "block.minecraft.banner.spectrum.bedrock_dust.light_blue": "Pó de Rocha-Mãe Azul-Claro", + "block.minecraft.banner.spectrum.bedrock_dust.magenta": "Pó de Rocha-Mãe Magenta", + "block.minecraft.banner.spectrum.bedrock_dust.orange": "Pó de Rocha-Mãe Laranja", + "block.minecraft.banner.spectrum.bedrock_dust.white": "Pó de Rocha-Mãe Branca", + + "block.minecraft.banner.spectrum.shimmerstone.black": "Pedra Cintilante Preta", + "block.minecraft.banner.spectrum.shimmerstone.red": "Pedra Cintilante Vermelha", + "block.minecraft.banner.spectrum.shimmerstone.green": "Pedra Cintilante Verde", + "block.minecraft.banner.spectrum.shimmerstone.brown": "Pedra Cintilante Marrom", + "block.minecraft.banner.spectrum.shimmerstone.blue": "Pedra Cintilante Azul", + "block.minecraft.banner.spectrum.shimmerstone.purple": "Pedra Cintilante Roxa", + "block.minecraft.banner.spectrum.shimmerstone.cyan": "Pedra Cintilante Ciano", + "block.minecraft.banner.spectrum.shimmerstone.light_gray": "Pedra Cintilante Cinza-Claro", + "block.minecraft.banner.spectrum.shimmerstone.gray": "Pedra Cintilante Cinza", + "block.minecraft.banner.spectrum.shimmerstone.pink": "Pedra Cintilante Rosa", + "block.minecraft.banner.spectrum.shimmerstone.lime": "Pedra Cintilante Verde-Limão", + "block.minecraft.banner.spectrum.shimmerstone.yellow": "Pedra Cintilante Amarela", + "block.minecraft.banner.spectrum.shimmerstone.light_blue": "Pedra Cintilante Azul-Claro", + "block.minecraft.banner.spectrum.shimmerstone.magenta": "Pedra Cintilante Magenta", + "block.minecraft.banner.spectrum.shimmerstone.orange": "Pedra Cintilante Laranja", + "block.minecraft.banner.spectrum.shimmerstone.white": "Pedra Cintilante Branca", + + "block.minecraft.banner.spectrum.jade_vine.black": "Vinha de Jade Preta", + "block.minecraft.banner.spectrum.jade_vine.red": "Vinha de Jade Vermelha", + "block.minecraft.banner.spectrum.jade_vine.green": "Vinha de Jade Verde", + "block.minecraft.banner.spectrum.jade_vine.brown": "Vinha de Jade Marrom", + "block.minecraft.banner.spectrum.jade_vine.blue": "Vinha de Jade Azul", + "block.minecraft.banner.spectrum.jade_vine.purple": "Vinha de Jade Roxa", + "block.minecraft.banner.spectrum.jade_vine.cyan": "Vinha de Jade Ciano", + "block.minecraft.banner.spectrum.jade_vine.light_gray": "Vinha de Jade Cinza-Claro", + "block.minecraft.banner.spectrum.jade_vine.gray": "Vinha de Jade Cinza", + "block.minecraft.banner.spectrum.jade_vine.pink": "Vinha de Jade Rosa", + "block.minecraft.banner.spectrum.jade_vine.lime": "Vinha de Jade Verde-Limão", + "block.minecraft.banner.spectrum.jade_vine.yellow": "Vinha de Jade Amarela", + "block.minecraft.banner.spectrum.jade_vine.light_blue": "Vinha de Jade Azul-Claro", + "block.minecraft.banner.spectrum.jade_vine.magenta": "Vinha de Jade Magenta", + "block.minecraft.banner.spectrum.jade_vine.orange": "Vinha de Jade Laranja", + "block.minecraft.banner.spectrum.jade_vine.white": "Vinha de Jade Branca", "trinkets.slot.chest.pin": "Broche", "trinkets.slot.head.crown": "Coroa", @@ -1552,10 +1548,10 @@ "item.spectrum.ashen_circlet.tooltip2": "§7te da melhor Visão e Velocidade na Lava", "item.spectrum.ashen_circlet.tooltip.cooldown_full": "§2Pronto para absorver calor imenso", "item.spectrum.ashen_circlet.tooltip.cooldown_seconds": "%d§7 Segundos até estar recarregado", - "item.spectrum.tidal_circlet": "Bracelete Chorão", - "item.spectrum.tidal_circlet.tooltip": "§7Filtra Oxigênio da Ãgua e", - "item.spectrum.tidal_circlet.tooltip2": "§7aumenta grandemente manobrabilidade na água", - "item.spectrum.tidal_circlet.tooltip3": "§7Te cura quando perto de §fAxolotes", + "item.spectrum.weeping_circlet": "Bracelete Chorão", + "item.spectrum.weeping_circlet.tooltip": "§7Filtra Oxigênio da Ãgua e", + "item.spectrum.weeping_circlet.tooltip2": "§7aumenta grandemente manobrabilidade na água", + "item.spectrum.weeping_circlet.tooltip3": "§7Te cura quando perto de §fAxolotes", "item.spectrum.puff_circlet": "Bracelete Pufante", "item.spectrum.puff_circlet.tooltip": "§7Usa §9Dique Azul§7 para te proteger", "item.spectrum.puff_circlet.tooltip2": "§7de Projéteis de Dano de Queda", @@ -1571,7 +1567,7 @@ "item.spectrum.crafting_tablet.tooltip.pedestal_recipe": "Use em um Pedestal para Autofabricação", "item.spectrum.crafting_tablet.tooltip.recipe": "%d %s", - "item.spectrum.shooting_star": "Fragmento de Estrela", + "item.spectrum.star_fragment": "Fragmento de Estrela", "item.spectrum.stardust": "Pó de Estrela", "item.spectrum.hibernating_jade_vine_seeds": "Bulba de Vinha de Jade Hibernando", "item.spectrum.hibernating_jade_vine_seeds.tooltip": "meio... morta?", @@ -1600,14 +1596,14 @@ "item.spectrum.bottle_of_failing.tooltip": "§eâš  Faminto", "item.spectrum.bottle_of_ruin": "Frasco de Ruína", "item.spectrum.bottle_of_ruin.tooltip": "§4âš  Você provavelmente vai se arrepender disso, não vai?", - "item.spectrum.bottle_of_terror": "Frasco de Terror", - "item.spectrum.bottle_of_terror.tooltip": "§4âš  Eu espero que você saiba o que está fazendo", + "item.spectrum.bottle_of_forfeiture": "Frasco de Terror", + "item.spectrum.bottle_of_forfeiture.tooltip": "§4âš  Eu espero que você saiba o que está fazendo", "item.spectrum.bottle_of_decay_away": "Frasco de Decaimento", "item.spectrum.bottle_of_decay_away.tooltip": "§2Aplicar diretamente à área corrompida", "block.spectrum.fading": "Desvanecimento", "block.spectrum.failing": "Falha", "block.spectrum.ruin": "Ruína", - "block.spectrum.terror": "Terror", + "block.spectrum.forfeiture": "Terror", "block.spectrum.decay_away": "Decaimento", "block.spectrum.particle_spawner": "Gerador de Partículas", "block.spectrum.creative_particle_spawner": "Gerador de Partículas Creativo", @@ -1650,14 +1646,14 @@ "advancements.spectrum.collect_gemstone_powder.description": "Fabricar um Pedestal de Pigmentos precisa de Pó de Pedra Gema. Qual o jeito mais direto de esmagar algo?", "advancements.spectrum.collect_grayscale_pigments.title": "Quatro tons de Cinza", "advancements.spectrum.collect_grayscale_pigments.description": "Complete sua coleção de Pigmentos criando os quatro Pigmentos na escala de cinzas", - "advancements.spectrum.collect_lightning_stone.title": "Chocado", - "advancements.spectrum.collect_lightning_stone.description": "Descubra a Fonte de Pedras de Tempestade", + "advancements.spectrum.collect_storm_stone.title": "Chocado", + "advancements.spectrum.collect_storm_stone.description": "Descubra a Fonte de Pedras de Tempestade", "advancements.spectrum.collect_mermaids_gem.title": "O que cresce la no fundo do Mar?", "advancements.spectrum.collect_mermaids_gem.description": "Colete uma Gema de Sereias", "advancements.spectrum.collect_moonstone_shard.title": "O mais Claro dos Brancos", "advancements.spectrum.collect_moonstone_shard.description": "Descubra um Geodo de Pedra da Lua", - "advancements.spectrum.collect_paletur.title": "Veja ele voar", - "advancements.spectrum.collect_paletur.description": "Colete Turpálido", + "advancements.spectrum.collect_paltaeria.title": "Veja ele voar", + "advancements.spectrum.collect_paltaeria.description": "Colete Turpálido", "advancements.spectrum.collect_pigment.title": "Colete Pigmento puro", "advancements.spectrum.collect_pigment.description": "Quebre as Folhas de uma Ãrvore Colorida para ter o Pigmento puro que você tanto queria. As folhas soltam sua colheita preciosa apenas quando quebradas por Você pessoalmente", "advancements.spectrum.collect_quitoxic_reeds.title": "Empantanado", @@ -1666,14 +1662,14 @@ "advancements.spectrum.craft_resonant_pickaxe.description": "Fabrique a Picareta Ressonante", "advancements.spectrum.collect_resonant_lily.title": "Uma Flor elusiva", "advancements.spectrum.collect_resonant_lily.description": "Pegue um Lírio Ressonante", - "advancements.spectrum.collect_scarlet.title": "Carga Pesada", - "advancements.spectrum.collect_scarlet.description": "Recupere Carmesim das Profundesas do Nether", - "advancements.spectrum.collect_shooting_star.title": "Céu Estrelado", - "advancements.spectrum.collect_shooting_star.description": "Colete os Restos preciosos de uma Estrela Cadente", + "advancements.spectrum.collect_stratine.title": "Carga Pesada", + "advancements.spectrum.collect_stratine.description": "Recupere Carmesim das Profundesas do Nether", + "advancements.spectrum.collect_star_fragment.title": "Céu Estrelado", + "advancements.spectrum.collect_star_fragment.description": "Colete os Restos preciosos de uma Estrela Cadente", "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.title": "Dando uma Pausa", "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.description": "Coloque um Botícario de Cristal no centro de um geodo com Agregados crescidos completamente", - "advancements.spectrum.collect_sparklestone.title": "Mais do que da pra ver", - "advancements.spectrum.collect_sparklestone.description": "Você nunca notou esse Minério antes.... estranho. Tem mais nesse mundo do que você pensava antes?", + "advancements.spectrum.collect_shimmerstone.title": "Mais do que da pra ver", + "advancements.spectrum.collect_shimmerstone.description": "Você nunca notou esse Minério antes.... estranho. Tem mais nesse mundo do que você pensava antes?", "advancements.spectrum.collect_vegetal.title": "Matéria Orgânica", "advancements.spectrum.collect_vegetal.description": "Coloque comida para ela, se afeste um poco e olhe ela devorar... então quebre ela para coletar seus espólios.", "advancements.spectrum.craft_bottle_of_fading.title": "O que Não Deveria Ser", @@ -1696,26 +1692,26 @@ "advancements.spectrum.craft_using_pedestal.description": "Usando seu Pedestal de Pigmento fabrique alguma coisa usando Pó de Pedra Gema. Parece reagir a Redstone?", "advancements.spectrum.create_onyx_shard.title": "Back in Black", "advancements.spectrum.create_onyx_shard.description": "Use o Altar de Fusão para criar um fragmento na mais escura das noites", - "advancements.spectrum.dark_light_staff.title": "Uau! Isso não vale Nada", - "advancements.spectrum.dark_light_staff.description": "Troque o Nível de Luz e uma das Luzes do Bastão Radiante para 1 usando o Bastão nela", + "advancements.spectrum.dark_radiance_staff.title": "Uau! Isso não vale Nada", + "advancements.spectrum.dark_radiance_staff.description": "Troque o Nível de Luz e uma das Luzes do Bastão Radiante para 1 usando o Bastão nela", "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.title": "Eu sou a Velocidade", "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.description": "Corte pelo mundo usando uma Picareta do Esquecimento encantada com Eficiência", "advancements.spectrum.enter_dimension.title": "O que já foi impenetrável", "advancements.spectrum.enter_dimension.description": "Descubra o que tem debaixo do chão de Rocha-Mãe", - "advancements.spectrum.fill_void_bundle.title": "Cheio até a Borda", - "advancements.spectrum.fill_void_bundle.description": "Enxa completamente uma Trouxa sem Fundo", - "advancements.spectrum.fill_void_bundle_for_real_this_time.title": "Agora é de verdade", - "advancements.spectrum.fill_void_bundle_for_real_this_time.description": "Enxa completamente uma Trouxa sem Fundo Encantada coletando 2000000000 itens de um único tipo", - "advancements.spectrum.get_player_only_glass.title": "Paz e Satisfação", - "advancements.spectrum.get_player_only_glass.description": "Fabrique vidro semi-premeável para proteger sua casa de invasores", + "advancements.spectrum.fill_bottomless_bundle.title": "Cheio até a Borda", + "advancements.spectrum.fill_bottomless_bundle.description": "Enxa completamente uma Trouxa sem Fundo", + "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.title": "Agora é de verdade", + "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.description": "Enxa completamente uma Trouxa sem Fundo Encantada coletando 2000000000 itens de um único tipo", + "advancements.spectrum.get_semi_permeable_glass.title": "Paz e Satisfação", + "advancements.spectrum.get_semi_permeable_glass.description": "Fabrique vidro semi-premeável para proteger sua casa de invasores", "advancements.spectrum.grow_ominous_sapling.title": "Um experimento falho?", "advancements.spectrum.grow_ominous_sapling.description": "Parece... meio morto?", "advancements.spectrum.place_pedestal.title": "Um novo jeito de fabricar", "advancements.spectrum.place_pedestal.description": "Fabrique o seu Pedestal de Pigmento pessoal e o coloque no chão", "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.title": "Eu preciso ir, meu planeta precisa de mim", "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.description": "Sobrecarregue um dos seu animais com Turpálido. Tchau tchau", - "advancements.spectrum.get_ender_treasure.title": "Rasgado pelo frio, Mãos mortas", - "advancements.spectrum.get_ender_treasure.description": "Alguns Enderman no seu mundo carregam blocos que parecem emitir uma aura estranha", + "advancements.spectrum.get_radiating_ender.title": "Rasgado pelo frio, Mãos mortas", + "advancements.spectrum.get_radiating_ender.description": "Alguns Enderman no seu mundo carregam blocos que parecem emitir uma aura estranha", "advancements.spectrum.spectrum.title": "Spectrum - Começo de uma Jornada", "advancements.spectrum.spectrum.description": "Uma história sobre mágia, cor e caos", "advancements.spectrum.spectrum_lategame.title": "Spectrum - Se tornando a Pureza", @@ -1724,13 +1720,12 @@ "advancements.spectrum.spectrum_midgame.description": "Uma história sobre curiosidade e ganância", "advancements.spectrum.use_all_pedestal_upgrades.title": "Aprimore", "advancements.spectrum.use_all_pedestal_upgrades.description": "Coloque uma Melhoria em cima de cada um dos quatro Blocos de Pedra Gema da sua Estrutura de Pedestal para melhor suas propriedades", - "advancements.spectrum.use_end_portal_cracker.title": "Eu me remexo muito", - "advancements.spectrum.use_end_portal_cracker.description": "Use um Rachador de Portal do End em uma Moldura de Portal do End para deixar a destruição acontecer", + "advancements.spectrum.use_perturbed_eye.title": "Eu me remexo muito", + "advancements.spectrum.use_perturbed_eye.description": "Use um Rachador de Portal do End em uma Moldura de Portal do End para deixar a destruição acontecer", "advancements.spectrum.use_glistering_melon_seeds.title": "Um sinal de Prosperidade", "advancements.spectrum.use_glistering_melon_seeds.description": "Consiga uma Melancia Reluzente... Plantável!", "advancements.spectrum.plant_ominous_sapling.title": "Crescendo estou, crescendo estou!", "advancements.spectrum.plant_ominous_sapling.description": "Você tem certeza que combinar Vegetal com um muda Jovem vai gerar algo interessante", - "advancements.spectrum.build_fusion_shrine.title": "Demonstração Poderosa", "advancements.spectrum.build_fusion_shrine.description": "Construa o Altar de Fusão", "advancements.spectrum.build_enchanting_structure.title": "Encantamento de Outro Nível", @@ -1755,8 +1750,8 @@ "advancements.spectrum.create_refined_azurite.description": "Refine Azurita na forma de Barra", "advancements.spectrum.fill_knowledge_gem.title": "O Sabixão", "advancements.spectrum.fill_knowledge_gem.description": "Enxa uma Gema do Conhecimento com 10.000 de Experiência", - "advancements.spectrum.enchant_exchange_staff.title": "Mais do que uma Ferramenta de Construção", - "advancements.spectrum.enchant_exchange_staff.description": "Crie e Encante um Bastão de Troca", + "advancements.spectrum.enchant_exchanging_staff.title": "Mais do que uma Ferramenta de Construção", + "advancements.spectrum.enchant_exchanging_staff.description": "Crie e Encante um Bastão de Troca", "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.title": "A Picareta mais rápida do Oeste", "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.description": "Quebre 500 Blocos idênticos usando uma Ferramenta encantada com Inêrcia", "advancements.spectrum.use_natures_staff_on_dead_bush.title": "Revivificar", diff --git a/src/main/resources/assets/spectrum/lang/zh_cn.json b/src/main/resources/assets/spectrum/lang/zh_cn.json index b7f355e443..866de347a2 100644 --- a/src/main/resources/assets/spectrum/lang/zh_cn.json +++ b/src/main/resources/assets/spectrum/lang/zh_cn.json @@ -1,2011 +1,2510 @@ { - "itemGroup.spectrum.general": "光谱世界", - "itemGroup.spectrum.general.tab.general": "光谱世界", - "itemGroup.spectrum.general.tab.tools": "光谱世界 - 工具", - "itemGroup.spectrum.general.tab.worldgen": "光谱世界 - 世界生æˆ", - "itemGroup.spectrum.general.tab.items": "光谱世界 - 资æº", - "itemGroup.spectrum.blocks": "光谱世界 - 建筑方å—", - "itemGroup.spectrum.blocks.tab.decoration": "光谱世界 - 装饰物å“", - "itemGroup.spectrum.blocks.tab.colored_wood": "光谱世界 - 染色木头", - "itemGroup.spectrum.blocks.tab.mob_heads": "光谱世界 - 怪物头颅", - "itemGroup.spectrum.blocks.tab.predefined_items": "预定义物å“", - "itemGroup.spectrum.general.button.discord": "光谱世界的DiscordæœåС噍", - "itemGroup.spectrum.general.button.github": "光谱世界的Github仓库", - "itemGroup.spectrum.general.button.curseforge": "打开光谱世界的CurseForge页é¢", - "itemGroup.spectrum.general.button.modrinth": "打开光谱世界的Modrinth页é¢", - "itemGroup.spectrum.blocks.button.discord": "加入光谱世界的DiscordæœåС噍", - "itemGroup.spectrum.blocks.button.github": "打开光谱世界的Github仓库", - "itemGroup.spectrum.blocks.button.curseforge": "打开光谱世界的CurseForge页é¢", - "itemGroup.spectrum.blocks.button.modrinth": "打开光谱世界的Modrinth页é¢", - "recipeGroup.spectrum.topaz_lamps": "黄玉ç¯", - "recipeGroup.spectrum.amethyst_lamps": "ç´«æ°´æ™¶ç¯", - "recipeGroup.spectrum.citrine_lamps": "黄水晶ç¯", - "recipeGroup.spectrum.onyx_lamps": "缟玛瑙ç¯", - "recipeGroup.spectrum.moonstone_lamps": "月长石ç¯", - "recipeGroup.spectrum.topaz_runes": "黄玉符文", - "recipeGroup.spectrum.amethyst_runes": "紫水晶符文", - "recipeGroup.spectrum.citrine_runes": "黄水晶符文", - "recipeGroup.spectrum.onyx_runes": "缟玛瑙符文", - "recipeGroup.spectrum.moonstone_runes": "月长石符文", - "recipeGroup.spectrum.colored_lamps": "染色红石ç¯", - "recipeGroup.spectrum.gemstone_glass": "å®çŸ³çŽ»ç’ƒ", - "recipeGroup.spectrum.decostones": "摆件", - "recipeGroup.spectrum.gemstone_chimes": "å®çŸ³é£Žé“ƒ", - "recipeGroup.spectrum.colored_saplings": "染色树苗", - "recipeGroup.spectrum.sparklestone_lights": "ç«èŠ±çŸ³ç¯", - "recipeGroup.spectrum.colored_spore_blossoms": "染色孢å­èб", - "recipeGroup.spectrum.glowblocks": "å‘光方å—", - "recipeGroup.spectrum.player_only_glass": "åŠç©¿é€çŽ»ç’ƒ", - "recipeGroup.spectrum.bedrock_tools": "基岩工具", - "recipeGroup.spectrum.bedrock_armor": "基岩盔甲", - "recipeGroup.spectrum.fusion_shrines": "èžåˆç¥žé¾›", - "recipeGroup.spectrum.item_bowls": "物å“基座", - "recipeGroup.spectrum.enchanter_exchange_staff": "æ–¹å—转æ¢é­”æ–", - "recipeGroup.spectrum.vanilla": "原版附魔", - "recipeGroup.spectrum.pastel_network": "彩绘网络", - "recipeGroup.spectrum.vanilla_potions": "åŽŸç‰ˆè¯æ°´", - "recipeGroup.spectrum.resistance_potions": "æŠ—æ€§è¯æ°´", - "recipeGroup.spectrum.horse_armor": "马铠", - "recipeGroup.spectrum.memories": "记忆", - "recipeGroup.spectrum.boss_memories": "Boss的记忆", - "recipeGroup.spectrum.restoration_tea": "æ¢å¤ä¹‹èŒ¶", - "recipeGroup.spectrum.mob_blocks": "魔盒", - "recipeGroup.spectrum.botania_mushrooms": "染色蘑è‡", - "recipeGroup.spectrum.botania_glimmering_flowers": "è§å…‰èб", - "recipeGroup.spectrum.chalk_chalk": "ä¸å¯ç ´å的粉笔", - "recipeGroup.spectrum.chalk_glow_chalk": "ä¸å¯ç ´åçš„è§å…‰ç²‰ç¬”", - "effect.spectrum.immunity": "å…ç–«", - "item.spectrum.potion": "§2染§3§7è‰²è¯æ°´", - "item.spectrum.splash_potion": "喷溅型§2染§3§7è‰²è¯æ°´", - "item.spectrum.lingering_potion": "滞留型§2染§3§7è‰²è¯æ°´", - "item.spectrum.tipped_arrow": "§2染§3§7色之箭", - "item.spectrum.potion.tooltip.unidentifiable": "§0漆黑一片, 难以辨认", - "spectrum.tooltip.coming_soon": "§4在生存中暂ä¸å¯ç”¨", - "spectrum.gui.lexicon.reveal_hint_button.text": "显示æç¤º ", - "spectrum.gui.lexicon.reveal_hint_button.tooltip.pay": "支付一点费用æ¥è§£é”æç¤º", - "spectrum.gui.lexicon.reveal_hint_button.tooltip.lacking_resource": "背包中没有å¯ç”¨çš„费用", - "container.spectrum.owned_by_player": " of %s", - "container.spectrum.rei.pedestal_crafting.title": "ä¸ƒå½©åŸºåº§åˆæˆ", - "container.spectrum.rei.pedestal_crafting.crafting_time_and_xp": "花费 %f ç§’ - %f ç»éªŒ", - "container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp": "花费 %f ç§’ - %f ç»éªŒ", - "container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1": "你尚未解é”", - "container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2": "è¿™ä¸ªé…æ–¹", - "container.spectrum.rei.enchanting.title": "光谱世界 附魔", - "container.spectrum.rei.enchanting.crafting_time": "%f ç§’", - "container.spectrum.rei.enchanting.crafting_time_one_second": "%f ç§’", - "container.spectrum.rei.enchantment_upgrading.title": "附魔å‡çº§", - "container.spectrum.rei.enchantment_upgrade.required_item_count": "(%fx)", - "container.spectrum.rei.midnight_solution_converting.title": "åˆå¤œæº¶æ¶² : 侵染", - "container.spectrum.rei.ink_converting.title": "墨水转æ¢", - "container.spectrum.rei.heating.title": "加热", - "container.spectrum.rei.freezing.title": "冷冻", - "container.spectrum.rei.chance": "概率: %.0f %%", - "container.spectrum.rei.ink_converting.color": "颜色: %s", - "container.spectrum.rei.ink_converting.amount": "æ•°é‡: %d", - "container.spectrum.bedrock_anvil": "ä¿®å¤, 命å和修改属性", - "container.spectrum.bedrock_anvil.tooltip": "åšä¸å¯æ‘§. 无需ç»éªŒé‡å‘½å, æ— ç»éªŒ", - "container.spectrum.bedrock_anvil.tooltip2": "等级é™åˆ¶ & å¯ä»¥ä¸ºç‰©å“添加鼠标悬浮æç¤º", - "container.spectrum.bedrock_anvil.lore": "属性:", - "container.spectrum.rei.anvil_crushing.title": "é“砧粉碎", - "container.spectrum.rei.anvil_crushing.low_force_required": "所需力é‡ï¼šä½Ž", - "container.spectrum.rei.anvil_crushing.medium_force_required": "所需力é‡ï¼šä¸­", - "container.spectrum.rei.anvil_crushing.high_force_required": "所需力é‡ï¼šé«˜", - "container.spectrum.rei.anvil_crushing.plus_xp": "+%f ç»éªŒ", - "container.spectrum.rei.potion_workshop_brewing.title": "è¯æ°´å·¥ä½œç«™é…¿é€ ", - "container.spectrum.rei.potion_workshop_crafting.title": "è¯æ°´å·¥ä½œç«™åˆæˆ", - "container.spectrum.rei.potion_workshop.crafting_time": "%f ç§’", - "container.spectrum.rei.potion_workshop_reacting.title": "è¯æ°´ææ–™", - "spectrum.rei.potion_workshop_reacting.minecraft.dragon_breath": "åˆæˆæ»žç•™è¯æ°´ - åŒæ—¶éœ€è¦ç«è¯ä½œä¸ºææ–™. 将玻璃瓶替æ¢ä¸ºç®­èƒ½å¤Ÿåˆ¶ä½œè¯ç®­.", - "spectrum.rei.potion_workshop_reacting.minecraft.glowstone_dust": "æå‡è¯æ°´å¼ºåº¦", - "spectrum.rei.potion_workshop_reacting.minecraft.gunpowder": "åˆæˆå–·æº…è¯æ°´", - "spectrum.rei.potion_workshop_reacting.minecraft.redstone": "å»¶é•¿æŒç»­æ—¶é—´", - "spectrum.rei.potion_workshop_reacting.spectrum.amethyst_powder": "短暂延长æŒç»­æ—¶é—´", - "spectrum.rei.potion_workshop_reacting.spectrum.bedrock_dust": "å¢žå¼ºè¯æ°´å¼ºåº¦å¹¶å‡å°‘æŒç»­æ—¶é—´", - "spectrum.rei.potion_workshop_reacting.spectrum.citrine_powder": "å°å¹…å¢žå¼ºè¯æ°´å¼ºåº¦", - "spectrum.rei.potion_workshop_reacting.spectrum.four_leaf_clover": "ä¸ºè¯æ°´ç‰¹æ€§éšæœºæä¾›å·¨å¤§æå‡", - "spectrum.rei.potion_workshop_reacting.spectrum.lightning_stone": "å¼€å§‹æ—¶å¢žå¼ºè¯æ°´å¼ºåº¦, 但éšç€æ—¶é—´çš„æŽ¨ç§», è¯æ°´å¼ºåº¦å°†è¿…速å‡å¼±.", - "spectrum.rei.potion_workshop_reacting.spectrum.midnight_chip": "æå‡è¯æ°´å¼ºåº¦å¹¶å»¶é•¿è¯æ°´æŒç»­æ—¶é—´30ç§’, 但大幅é™ä½Žè¯æ°´äº§é‡.", - "spectrum.rei.potion_workshop_reacting.spectrum.moonstone_powder": "å°†æ‰€æœ‰è´Ÿé¢æ•ˆæžœè½¬æ¢ä¸ºæ­£é¢æ•ˆæžœ.", - "spectrum.rei.potion_workshop_reacting.spectrum.moonstruck_nectar": "ä½¿è¯æ°´æ›´åŠ é†‡å’Œ, 从而加快饮用速度.", - "spectrum.rei.potion_workshop_reacting.spectrum.neolith": "增加产é‡, å…è®¸ä½ å¤šé…¿é€ ä¸€ä¸ªè¯æ°´", - "spectrum.rei.potion_workshop_reacting.spectrum.onyx_powder": "ä¸ºè¯æ°´æ·»åŠ äº†éžå¸¸å¥‡æ€ªçš„味é“和气味, 使其无法被识别.$(br)使其完全å˜ä¸ºé»‘色.", - "spectrum.rei.potion_workshop_reacting.spectrum.paletur_fragments": "éšæœºæ·»åŠ ä¸€ä¸ªæ­£é¢æ•ˆæžœ", - "spectrum.rei.potion_workshop_reacting.spectrum.quitoxic_powder": "大幅æå‡æ‰€æœ‰è´Ÿé¢æ•ˆæžœå¼ºåº¦", - "spectrum.rei.potion_workshop_reacting.spectrum.raw_azurite": "ç§»é™¤æ»žç•™è¯æ°´å’Œè¯ç®­çš„æŒç»­æ—¶é—´æƒ©ç½š", - "spectrum.rei.potion_workshop_reacting.spectrum.scarlet_fragments": "大幅æå‡è¯æ°´å¼ºåº¦ï¼Œä½†éšæœºæ·»åŠ ä¸€ä¸ªè´Ÿé¢æ•ˆæžœ", - "spectrum.rei.potion_workshop_reacting.spectrum.shooting_star": "确定增加之å‰é…¿é€ çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœçš„æ¦‚çŽ‡ï¼Œä½†ä½¿è¯æ°´å¼ºåº¦ç¨æœ‰ä¸‹é™", - "spectrum.rei.potion_workshop_reacting.spectrum.sparklestone_gem": "对æŒç»­æ—¶é—´å’Œè¯æ°´å¼ºåº¦ç¨æœ‰æå‡", - "spectrum.rei.potion_workshop_reacting.spectrum.stardust": "å°æ¦‚çŽ‡å¢žåŠ é…¿åˆ¶è¿‡çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœ", - "spectrum.rei.potion_workshop_reacting.spectrum.topaz_powder": "ç§»é™¤è¯æ°´ç²’å­", - "spectrum.rei.potion_workshop_reacting.spectrum.vegetal": "å»¶é•¿è¯æ°´æŒç»­æ—¶é—´, ä½†ä½¿è¯æ°´å¼ºåº¦é™ä½Ž.", - "spectrum.rei.potion_workshop_reacting.botania.pixie_dust": "转æ¢è¯æ°´ä¸ºæ»žç•™è¯æ°´å¹¶ä½œä¸ºä¸€ä¸ªå•ç‹¬ææ–™. 这也将使你å¯ä»¥ç›´æŽ¥åˆæˆè¯ç®­.", - "spectrum.rei.potion_workshop_reacting.botania.black_lotus": "ä¸ºè¯æ°´æ³¨å…¥å¤§é‡é¢å¤–的正é¢å’Œè´Ÿé¢æ•ˆæžœ, 但它的黑色使其无法被识别. 你会得到什么呢?", - "spectrum.rei.potion_workshop_reacting.botania.blacker_lotus": "ä¸ºè¯æ°´æ³¨å…¥å¤§é‡é¢å¤–的效果 - ç»å¤§å¤šæ•°éƒ½æ˜¯æ­£é¢æ•ˆæžœ, 但它的黑色使其无法被识别. 你会得到什么呢?", - "spectrum.rei.potion_workshop_reacting.botania.life_essence": "å¤§å¹…å¢žåŠ è¯æ°´å¼ºåº¦, ä½†åŒæ—¶æŸå¤±å¤§é‡æŒç»­æ—¶é—´. 如果æŒç»­æ—¶é—´å¤ªçŸ­, è¯æ°´å¯èƒ½æœ€ç»ˆå¤±å޻价值...", - "spectrum.rei.potion_workshop_reacting.botania.mana_powder": "å°å¹…å¢žå¼ºè¯æ°´æŒç»­æ—¶é—´å¹¶å°æ¦‚çŽ‡å¢žåŠ é…¿åˆ¶è¿‡çš„è¯æ°´çš„æ•ˆæžœ", - "multiblock.spectrum.pedestal.upgrade_available": "结构å‡çº§å¯ç”¨!", - "multiblock.spectrum.pedestal.simple_structure": "光谱注魔å°", - "multiblock.spectrum.pedestal.advanced_structure": "光谱注魔祭å›", - "multiblock.spectrum.pedestal.complex_structure": "光谱注魔宫殿", - "multiblock.spectrum.fusion_shrine.structure": "èžåˆç¥žé¾›", - "multiblock.spectrum.enchanter.structure": "注魔å°", - "multiblock.spectrum.spirit_instiller.structure": "çµé­‚çŒæ³¨å°", - "multiblock.spectrum.cinderhearth.structure": "Cinderhearth", - "death.attack.spectrum_decay": "%s 与虚空亲密接触", - "death.attack.spectrum_floatblock": "%s 被浮空方å—压æ‰äº†", - "death.attack.spectrum_shooting_star": "%s è¢«æµæ˜Ÿå‡»ä¸­äº†. 快许愿å§!", - "death.attack.spectrum_midnight_solution": "%s 迷失于折射之中", - "death.attack.spectrum_dike_gate": "%s ä¸çŸ¥é“他是ä¸è¢«æ¬¢è¿Žçš„", - "entity.spectrum.block_flooder_projectile": "æ–¹å—填充法æ–", - "entity.spectrum.gravity_block": "é‡åŠ›æ–¹å—", - "entity.spectrum.invisible_item_frame": "éšå½¢ç‰©å“展示框", - "entity.spectrum.invisible_glow_item_frame": "éšå½¢è§å…‰ç‰©å“展示框", - "entity.spectrum.shooting_star": "æµæ˜Ÿ", - "commands.spectrum.spawn_shooting_star.success": "为æ¯ä¸ªçŽ©å®¶ç”Ÿæˆäº† %d ä¸ªæµæ˜Ÿ", - "commands.spectrum.progression_sanity.success": "å°†ç†æ™ºæ£€æµ‹(Sanity check)结果输出到æœåŠ¡å™¨æŽ§åˆ¶å°", - "spectrum.ink.color.black": "§8黑色§r", - "spectrum.ink.color.red": "§c红色§r", - "spectrum.ink.color.green": "§2绿色§r", - "spectrum.ink.color.brown": "§6棕色§r", - "spectrum.ink.color.blue": "§9è“色§r", - "spectrum.ink.color.purple": "§5紫色§r", - "spectrum.ink.color.cyan": "§bé’色§r", - "spectrum.ink.color.light_gray": "§7æ·¡ç°è‰²Â§r", - "spectrum.ink.color.gray": "§8ç°è‰²Â§r", - "spectrum.ink.color.pink": "§d粉色§r", - "spectrum.ink.color.lime": "§a黄绿色§r", - "spectrum.ink.color.yellow": "§e黄色§r", - "spectrum.ink.color.light_blue": "§3æ·¡è“色§r", - "spectrum.ink.color.magenta": "§då“红色§r", - "spectrum.ink.color.orange": "§6橙色§r", - "spectrum.ink.color.white": "§f白色§r", - "spectrum.tooltip.ink_powered.prefix": "消耗以下墨水类型: ", - "spectrum.tooltip.ink_powered.cyan": "消耗 §bé’色墨水§r", - "spectrum.tooltip.ink_powered.magenta": "消耗 §då“红色墨水§r", - "spectrum.tooltip.ink_powered.yellow": "消耗 §e黄色墨水§r", - "spectrum.tooltip.ink_powered.black": "消耗 §8黑色墨水§r", - "spectrum.tooltip.ink_powered.white": "消耗 §f白色墨水§r", - "spectrum.tooltip.ink_powered.blue": "消耗 §9è“色墨水§r", - "spectrum.tooltip.ink_powered.brown": "消耗 §6棕色墨水§r", - "spectrum.tooltip.ink_powered.gray": "消耗 §8ç°è‰²å¢¨æ°´Â§r", - "spectrum.tooltip.ink_powered.green": "消耗 §2绿色墨水§r", - "spectrum.tooltip.ink_powered.light_blue": "消耗 §3æ·¡è“色墨水§r", - "spectrum.tooltip.ink_powered.light_gray": "消耗 §7æ·¡ç°è‰²å¢¨æ°´Â§r", - "spectrum.tooltip.ink_powered.lime": "消耗 §a黄绿色墨水§r", - "spectrum.tooltip.ink_powered.orange": "消耗 §6橙色墨水§r", - "spectrum.tooltip.ink_powered.pink": "消耗 §d粉色墨水§r", - "spectrum.tooltip.ink_powered.purple": "消耗 §5紫色墨水§r", - "spectrum.tooltip.ink_powered.red": "消耗 §c红色墨水§r", - "spectrum.tooltip.ink_powered.bullet.cyan": "§bâ—† %d §bé’色墨水§r", - "spectrum.tooltip.ink_powered.bullet.magenta": "§dâ—† %d §då“红色墨水§r", - "spectrum.tooltip.ink_powered.bullet.yellow": "§eâ—† %d §e黄色墨水§r", - "spectrum.tooltip.ink_powered.bullet.black": "§8â—† %d §8黑色墨水§r", - "spectrum.tooltip.ink_powered.bullet.white": "§fâ—† %d §f白色墨水§r", - "spectrum.tooltip.ink_powered.bullet.blue": "§9â—† %d §9Bè“色墨水§r", - "spectrum.tooltip.ink_powered.bullet.brown": "§6â—† %d §6棕色墨水§r", - "spectrum.tooltip.ink_powered.bullet.gray": "§8â—† %d §8ç°è‰²å¢¨æ°´Â§r", - "spectrum.tooltip.ink_powered.bullet.green": "§2â—† %d §2绿色墨水§r", - "spectrum.tooltip.ink_powered.bullet.light_blue": "§3â—† %d §3æ·¡è“色墨水§r", - "spectrum.tooltip.ink_powered.bullet.light_gray": "§7â—† %d §7æ·¡ç°è‰²å¢¨æ°´Â§r", - "spectrum.tooltip.ink_powered.bullet.lime": "§aâ—† %d §a黄绿色墨水§r", - "spectrum.tooltip.ink_powered.bullet.orange": "§6â—† %d §6橙色墨水§r", - "spectrum.tooltip.ink_powered.bullet.pink": "§dâ—† %d §d粉色墨水§r", - "spectrum.tooltip.ink_powered.bullet.purple": "§5â—† %d §5紫色墨水§r", - "spectrum.tooltip.ink_powered.bullet.red": "§câ—† %d §c红色墨水§r", - "spectrum.tooltip.ink_powered.empty": "空", - "spectrum.tooltip.ink_powered.stored": "已存储:", - "spectrum.tooltip.ink_powered.unselect_color": "未选中颜色", - "spectrum.tooltip.ink_powered.percent_filled": "%d 墨水 (%d %%)", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.cyan": "%d §bé’色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.magenta": "%d §då“红色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.yellow": "%d §e黄色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.black": "%d §8黑色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.white": "%d §f白色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.blue": "%d §9è“色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.brown": "%d §6棕色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.gray": "%d §8ç°è‰²å¢¨æ°´Â§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.green": "%d §2绿色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.light_blue": "%d §3æ·¡è“色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.light_gray": "%d §7æ·¡ç°è‰²Â§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.lime": "%d §a黄绿色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.orange": "%d §6橙色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.pink": "%d §d粉色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.purple": "%d §5紫色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.red": "%d §c红色墨水§r 直到下次å˜åŒ–", - "spectrum.tooltip.ink_drain.tooltip.maxed_out": "§fâ­Â§r 已满 §fâ­Â§r", - "spectrum.recipe.fusion_shrine.explanation.onyx_shard": "新月时å¯ç”¨", - "spectrum.recipe.fusion_shrine.explanation.decay_away": "晴天时å¯ç”¨", - "spectrum.recipe.fusion_shrine.explanation.ominous_sapling": "需è¦ç™½å¤©æ—¶å¯ç”¨", - "spectrum.recipe.fusion_shrine.explanation.scarlet_gem": "雷雨天气时å¯ç”¨", - "spectrum.recipe.fusion_shrine.explanation.paletur_gem": "雷雨天气时å¯ç”¨", - "spectrum.recipe.fusion_shrine.explanation.midnight_aberration": "晴天时å¯ç”¨", - "spectrum.recipe.fusion_shrine.explanation.spectral_shard": "完美的化åˆ", - "spectrum.recipe.fusion_shrine.explanation.netherite_ingot": "有风险, 但也有回报...", - "spectrum.recipe.fusion_shrine.explanation.weather_clear": "将天气å˜ä¸ºæ™´å¤©", - "spectrum.recipe.fusion_shrine.explanation.weather_rain": "将天气å˜ä¸ºé›¨å¤©", - "spectrum.recipe.fusion_shrine.explanation.weather_thunder": "将天气å˜ä¸ºé›·æš´", - "spectrum.recipe.fusion_shrine.explanation.dreamflayer": "满月的åˆå¤œ", - "spectrum.tooltip.dragon_and_wither_immune": "§7ç»è¿‡æœ«å½±é¾™å’Œå‡‹é›¶çš„è¯æ˜Ž", - "enchantment.spectrum.resonance": "共振", - "enchantment.spectrum.resonance.desc": "é€šè¿‡æ¸©å’Œçš„æŒ¯åŠ¨ä½¿ä¸€äº›æ–¹å—æŽ‰è½è‡ªèº«", - "enchantment.spectrum.pest_control": "害虫防治", - "enchantment.spectrum.pest_control.desc": "ç ´åè¢«è™«èš€çš„æ–¹å—æ—¶å…于蠹虫的侵扰", - "enchantment.spectrum.autosmelt": "自动烧炼", - "enchantment.spectrum.autosmelt.desc": "自动烧炼被破å的方å—", - "enchantment.spectrum.inventory_insertion": "自动收集", - "enchantment.spectrum.inventory_insertion.desc": "将破å的方å—è‡ªåŠ¨æ”¾åˆ°ç‰©å“æ ä¸­", - "enchantment.spectrum.voiding": "§c虚空诅咒", - "enchantment.spectrum.voiding.desc": "ç ´åæŽ‰æ‰€æœ‰è¢«ç ´å的方å—", - "enchantment.spectrum.exuberance": "ç»åŠ›æ—ºç››", - "enchantment.spectrum.exuberance.desc": "增加掉è½çš„ç»éªŒ", - "enchantment.spectrum.treasure_hunter": "çµé­‚猎手", - "enchantment.spectrum.treasure_hunter.desc": "åœ¨å‡»æ€æ€ªç‰©æ—¶æœ‰å‡ çŽ‡æŽ‰è½å¤´é¢…", - "enchantment.spectrum.disarming": "除你武器", - "enchantment.spectrum.disarming.desc": "使敌人有概率掉è½ä»–们的武器", - "enchantment.spectrum.first_strike": "å…ˆå‘制人", - "enchantment.spectrum.first_strike.desc": "当敌人满血时增加其å—伤害值", - "enchantment.spectrum.improved_critical": "é‡å‡»å¢žå¼º", - "enchantment.spectrum.improved_critical.desc": "增加暴击伤害", - "enchantment.spectrum.inertia": "惯性", - "enchantment.spectrum.inertia.desc": "é™ä½ŽæŒ–掘速度. 但连续挖相åŒç±»åž‹çš„æ–¹å—时增加挖掘速度", - "enchantment.spectrum.clovers_favor": "å››å¶è‰çš„é’ç", - "enchantment.spectrum.clovers_favor.desc": "增加得到稀有掉è½ç‰©çš„æ¦‚率", - "enchantment.spectrum.sniper": "狙击手", - "enchantment.spectrum.sniper.desc": "增加弹射物的速度", - "enchantment.spectrum.tight_grip": "快手", - "enchantment.spectrum.tight_grip.desc": "é™ä½Žæ”»å‡»å†·å´", - "enchantment.spectrum.steadfast": "æ„å¿—åšå®š", - "enchantment.spectrum.steadfast.desc": "当在地é¢ä¸Šæ—¶, 对ç»å¤§å¤šæ•°ç±»åž‹çš„伤害å…ç–«", - "enchantment.spectrum.indestructible": "åšä¸å¯æ‘§", - "enchantment.spectrum.indestructible.desc": "使工具完全ä¸å¯ç ´å", - "spectrum.subtitles.celestial_pocket_watch_ticking": "天体怀表:滴答地走", - "spectrum.subtitles.shooting_star_cracker": "æµæ˜Ÿ : 破裂", - "spectrum.subtitles.block.memory.advance": "记忆 : 定义", - "spectrum.subtitles.block.mud.ambient": "æ³¥ : æµåЍ", - "spectrum.subtitles.block.liquid_crystal.ambient": "液体水晶 : æµåЍ", - "spectrum.subtitles.block.midnight_solution.ambient": "åˆå¤œæº¶æ¶² :嘶å¼", - "spectrum.subtitles.dimension.ambient": "æ´žç©´ : 呼啸", - "spectrum.subtitles.blocks.pedestal.crafting_finished": "七彩基座 : å®å½“", - "spectrum.subtitles.block.fading.place": "å°–é”的声音", - "spectrum.subtitles.block.failing.place": "å°–é”的声音", - "spectrum.subtitles.block.ruin.place": "å°–é”的声音", - "spectrum.subtitles.spectrum_theme_plays": "光谱主旋律 :播放", - "spectrum.subtitles.boss_theme_plays": "Boss主旋律 : 播放", - "spectrum.subtitles.deeper_down_theme_plays": "Deeper Down 主题曲 : 播放", - "spectrum.subtitles.dimension_ambient": "æ´žç©´ : 呼啸", - "spectrum.subtitles.player_teleports": "玩家 : ä¼ é€", - "spectrum.subtitles.puff_circlet": "æ³¡èŠ™å¤´ç® : 鸣å“", - "spectrum.subtitles.ender_splice_charges": "末影绑定器 : 充能", - "spectrum.subtitles.ender_splice_binds": "末影绑定器 : 绑定", - "spectrum.subtitles.use_fail": "使用失败", - "spectrum.subtitles.natures_staff_use": "å’Œè°çš„æ—‹å¾‹ : 鸣å“", - "spectrum.subtitles.block.sucking_chest.open": "é»‘æ´žç®±å­ : å¼€å¯", - "spectrum.subtitles.block.sucking_chest.close": "é»‘æ´žç®±å­ : 关闭", - "spectrum.subtitles.light_staff_charging": "å…‰ä¹‹æ³•æ– : 充能", - "spectrum.subtitles.light_staff_place": "å…‰ä¹‹æ³•æ– : 工作", - "spectrum.subtitles.light_staff_break": "å…‰æº : 被破å", - "spectrum.subtitles.fusion_shrine_ambient": "èžåˆç¥žé¾› : å—¡å—¡", - "spectrum.subtitles.fusion_shrine_crafting_finished": "低声轰鸣", - "spectrum.subtitles.fusion_shrine_crafting_aborted": "ç‰©å“æŽ‰è½", - "spectrum.subtitles.exchange_staff.select": "æ–¹å—æ›¿æ¢æ³•æ– : å®å½“", - "spectrum.subtitles.text_revealed": "多彩幻世指å—:鸣å“", - "spectrum.subtitles.radiance_pin_trigger": "光芒之针 : 触å‘", - "spectrum.subtitles.air_launch_belt_charging": "蓄能皮带 : 充能", - "spectrum.subtitles.midnight_aberration_crumbling": "åˆå¤œç•¸å˜ : 碎裂", - "spectrum.subtitles.structure_success": "风铃 : 鸣å“", - "spectrum.subtitles.dreamflayer_activates": "Dreamflayer 激活", - "spectrum.subtitles.dreamflayer_deactivates": "Dreamflayer åœæ­¢", - "subtitles.block.citrine_block.chime": "黄水晶 : 鸣å“", - "subtitles.block.topaz_block.chime": "黄玉 : 鸣å“", - "subtitles.block.onyx_block.chime": "缟玛瑙 : 鸣å“", - "subtitles.block.moonstone_block.chime": "月长石 : 鸣å“", - "spectrum.toast.revelation.title": "你获得了关于这个世界的知识", - "spectrum.toast.revelation.text": "新的事物展现在了你的é¢å‰", - "spectrum.toast.pedestal_recipe_unlocked.title": "æ–°ä¸ƒå½©åŸºåº§é…æ–¹:", - "spectrum.toast.pedestal_recipes_unlocked.title": "æ–°ä¸ƒå½©åŸºåº§é…æ–¹:", - "spectrum.toast.fusion_shrine_recipe_unlocked.title": "æ–°èžåˆç¥žé¾›é…æ–¹:", - "spectrum.toast.fusion_shrine_recipes_unlocked.title": "æ–°èžåˆç¥žé¾›é…æ–¹:", - "spectrum.toast.enchanter_recipe_unlocked.title": "æ–°æ³¨é­”åŸºåº§é…æ–¹:", - "spectrum.toast.enchanter_recipes_unlocked.title": "æ–°æ³¨é­”åŸºåº§é…æ–¹:", - "spectrum.toast.potion_workshop_recipe_unlocked.title": "æ–°çš„è¯æ°´å·¥ä½œç«™é…æ–¹:", - "spectrum.toast.potion_workshop_recipes_unlocked.title": "æ–°çš„è¯æ°´å·¥ä½œç«™é…æ–¹:", - "spectrum.toast.spirit_instiller_recipe_unlocked.title": "æ–°çš„çµé­‚çŒæ³¨å°é…æ–¹:", - "spectrum.toast.spirit_instiller_recipes_unlocked.title": "æ–°çš„çµé­‚çŒæ³¨å°é…æ–¹:", - "spectrum.toast.ink_converting_recipe_unlocked.title": "æ–°çš„è¯æ°´è½¬æ¢é…æ–¹:", - "spectrum.toast.ink_converting_recipes_unlocked.title": "æ–°çš„è¯æ°´è½¬æ¢é…æ–¹:", - "spectrum.toast.potion_reagent_unlocked.title": "æ–°çš„è¯æ°´ææ–™:", - "spectrum.toast.potion_reagents_unlocked.title": "æ–°çš„è¯æ°´ææ–™:", - "spectrum.toast.crystallarieum_recipe_unlocked.title": "æ–°ç»“æ™¶å™¨é…æ–¹:", - "spectrum.toast.crystallarieum_recipes_unlocked.title": "æ–°ç»“æ™¶å™¨é…æ–¹:", - "spectrum.toast.cinderhearth_recipe_unlocked.title": "新煤渣炉(暂译)é…æ–¹:", - "spectrum.toast.cinderhearth_recipes_unlocked.title": "新煤渣炉(暂译)é…æ–¹:", - "spectrum.toast.message.second_advancement_tree_unlocked.title": "第二章:从优雅中å è½", - "spectrum.toast.message.second_advancement_tree_unlocked.text": "ä½ è§£é”了一个新的æˆå°±åˆ†æ”¯", - "spectrum.toast.message.third_advancement_tree_unlocked.title": "第三章:转å‘纯粹", - "spectrum.toast.message.third_advancement_tree_unlocked.text": "ä½ è§£é”了一个新的æˆå°±åˆ†æ”¯", - "spectrum.toast.message.shooting_stars_unlocked.title": "星星的护佑", - "spectrum.toast.message.shooting_stars_unlocked.text": "ä½ èŽ·å¾—äº†å¤œç©ºçš„æ©æƒ ", - "spectrum.toast.message.overchanting_unlocked.title": "附魔书å‡çº§", - "spectrum.toast.message.overchanting_unlocked.text": "将附魔å‡çº§è‡³é«˜äºŽåŽŸç‰ˆç­‰çº§", - "spectrum.toast.message.enchant_conflicting_enchantments_unlocked.title": "附魔掌控", - "spectrum.toast.message.enchant_conflicting_enchantments_unlocked.text": "çªç ´å†²çªé™„魔的é™åˆ¶", - "spectrum.toast.message.fourth_potion_reagent_unlocked.title": "酿造掌控", - "spectrum.toast.message.fourth_potion_reagent_unlocked.text": "在酿造中使用第四ç§åŽŸæ–™", - "text.autoconfig.Spectrum.option.CitrineGeodeMinAboveBottomGenerationHeight": "é»„æ°´æ™¶æ´žç”Ÿæˆæœ€ä½Žé«˜åº¦ (世界高度)", - "text.autoconfig.Spectrum.option.CitrineGeodeFixedMaxGenerationHeight": "é»„æ°´æ™¶æ´žç”Ÿæˆæœ€é«˜é«˜åº¦ (Y值)", - "text.autoconfig.Spectrum.option.TopazGeodeMinFixedGenerationHeight": "é»„çŽ‰ç”Ÿæˆæœ€ä½Žé«˜åº¦ (Y值)", - "text.autoconfig.Spectrum.option.TopazGeodeMaxBelowTopGenerationHeight": "é»„çŽ‰ç”Ÿæˆæœ€é«˜é«˜åº¦ (从最大Y值算起)", - "text.autoconfig.Spectrum.option.TopazGeodeChunkChance": "黄玉生æˆå‡ çއ (区å—)", - "text.autoconfig.Spectrum.option.CitrineGeodeChunkChance": "黄水晶生æˆå‡ çއ (区å—)", - "text.autoconfig.Spectrum.option.MoonstoneGeodeChunkChance": "月长石生æˆå‡ çއ (区å—)", - "text.autoconfig.Spectrum.option.EndermanHoldingEnderTreasureChance": "末影人手æŒç‰¹æ®Šæ–¹å—几率", - "text.autoconfig.Spectrum.option.EndermanHoldingEnderTreasureInEndChance": "末地中末影人手æŒç‰¹æ®Šæ–¹å—几率", - "text.autoconfig.Spectrum.option.ColoredTreePatchChanceChunk": "在所有区å—å°è¯•ç”ŸæˆæŸ“色之树", - "text.autoconfig.Spectrum.option.ShootingStarWorlds": "å¸¦æœ‰æµæ˜Ÿçš„世界", - "text.autoconfig.Spectrum.option.ShootingStarChance": "æµæ˜Ÿæ¯100游æˆåˆ»æŽ‰è½çš„几率", - "text.autoconfig.Spectrum.option.LightningStonesWorlds": "生æˆé—ªç”µçŸ³çš„世界", - "text.autoconfig.Spectrum.option.LightningStonesChance": "æ¯æ¬¡é›·å‡»ç”Ÿæˆé—ªç”µçŸ³çš„æ¦‚率", - "text.autoconfig.Spectrum.option.QuitoxicReedsGenerationBiomes": "祛毒甘蔗生æˆçš„群系", - "text.autoconfig.Spectrum.option.MermaidsBrushGenerationBiomes": "ç¾Žäººé±¼çŒæœ¨ä¸›ç”Ÿæˆçš„群系", - "text.autoconfig.Spectrum.option.VanillaRecipeCraftingTimeTicks": "ä¸ƒå½©åŸºåº§åˆæˆåŽŸç‰ˆé…æ–¹æ‰€éœ€æ¸¸æˆåˆ»æ•°", - "text.autoconfig.Spectrum.option.FadingDecayTickRate": "消é€å¾®ç”Ÿç‰©æ‰©æ•£é€Ÿåº¦", - "text.autoconfig.Spectrum.option.FailingDecayTickRate": "侵蚀微生物扩散速度", - "text.autoconfig.Spectrum.option.RuinDecayTickRate": "æŸå微生物扩散速度", - "text.autoconfig.Spectrum.option.TerrorDecayTickRate": "ææ€–微生物扩散速度", - "text.autoconfig.Spectrum.option.AutoSmeltEnchantmentEnabled": "是å¦å¯èŽ·å¾— 自动烧炼 附魔", - "text.autoconfig.Spectrum.option.ExuberanceEnchantmentEnabled": "是å¦å¯èŽ·å¾— ç»åŠ›æ—ºç›› 附魔", - "text.autoconfig.Spectrum.option.InventoryInsertionEnchantmentEnabled": "是å¦å¯èŽ·å¾— 自动收集 附魔", - "text.autoconfig.Spectrum.option.PestControlEnchantmentEnabled": "是å¦å¯èŽ·å¾— 害虫防治 附魔", - "text.autoconfig.Spectrum.option.ResonanceEnchantmentEnabled": "是å¦å¯èŽ·å¾— 共振 附魔", - "text.autoconfig.Spectrum.option.TreasureHunterEnchantmentEnabled": "是å¦å¯èŽ·å¾— çµé­‚猎手 附魔", - "text.autoconfig.Spectrum.option.DisarmingEnchantmentEnabled": "是å¦å¯èŽ·å¾— 除你武器 附魔", - "text.autoconfig.Spectrum.option.FirstStrikeEnchantmentEnabled": "是å¦å¯èŽ·å¾— å…ˆå‘制人 附魔", - "text.autoconfig.Spectrum.option.ImprovedCriticalEnchantmentEnabled": "是å¦å¯èŽ·å¾— é‡å‡»å¢žå¼º 附魔", - "text.autoconfig.Spectrum.option.InertiaEnchantmentEnabled": "是å¦å¯èŽ·å¾— 惯性 附魔", - "text.autoconfig.Spectrum.option.CloversFavorEnchantmentEnabled": "是å¦å¯èŽ·å¾— å››å¶è‰çš„é’ç 附魔", - "text.autoconfig.Spectrum.option.SniperEnchantmentEnabled": "是å¦å¯èŽ·å¾— 狙击手 附魔", - "text.autoconfig.Spectrum.option.TightGripEnchantmentEnabled": "是å¦å¯èŽ·å¾— 快手 附魔", - "text.autoconfig.Spectrum.option.SteadfastEnchantmentEnabled": "是å¦å¯èŽ·å¾— æ„å¿—åšå®š 附魔", - "text.autoconfig.Spectrum.option.IndestructibleEnchantmentEnabled": "是å¦å¯èŽ·å¾— åšä¸å¯æ‘§ 附魔", - "text.autoconfig.Spectrum.option.TreasureHunterMaxLevel": "çµé­‚猎手 附魔最大等级", - "text.autoconfig.Spectrum.option.DisarmingMaxLevel": "除你武器 附魔最大等级", - "text.autoconfig.Spectrum.option.FirstStrikeMaxLevel": "å…ˆå‘制人 附魔最大等级", - "text.autoconfig.Spectrum.option.CloversFavorMaxLevel": "å››å¶è‰çš„é’ç 附魔最大等级", - "text.autoconfig.Spectrum.option.ImprovedCriticalMaxLevel": "é‡å‡»å¢žå¼º 附魔最大等级", - "text.autoconfig.Spectrum.option.InertiaMaxLevel": "惯性 附魔最大等级", - "text.autoconfig.Spectrum.option.RareLootMaxLevel": "Rare Loot 附魔最大等级", - "text.autoconfig.Spectrum.option.TightGripMaxLevel": "快手 附魔最大等级", - "text.autoconfig.Spectrum.option.ExuberanceMaxLevel": "ç»åŠ›æ—ºç›› 附魔最大等级", - "text.autoconfig.Spectrum.option.ExuberanceBonusExperiencePercentPerLevel": "带有ç»åŠ›æ—ºç››é™„é­”çš„ç‰©å“击æ€ç”Ÿç‰©æ—¶æŽ‰è½çš„ç»éªŒå€¼", - "text.autoconfig.Spectrum.option.ImprovedCriticalExtraDamageMultiplierPerLevel": "æ¯çº§é‡å‡»å¢žå¼ºé™„é­”æå‡çš„伤害å€çއ", - "text.autoconfig.Spectrum.option.FirstStrikeDamagePerLevel": "æ¯çº§å…ˆå‘制人附魔增加的伤害", - "text.autoconfig.Spectrum.option.GlowVisionGogglesDuration": "夜视眼镜æä¾›æ•ˆæžœçš„æ—¶é—´(ç§’)", - "text.autoconfig.Spectrum.option.DisarmingChancePerLevelMobs": "æ¯çº§é™¤ä½ æ­¦å™¨é™„é­”ä½¿æ€ªç‰©æŽ‰è½æ­¦å™¨çš„æ¦‚率", - "text.autoconfig.Spectrum.option.DisarmingChancePerLevelPlayers": "æ¯çº§é™¤ä½ æ­¦å™¨é™„é­”ä½¿çŽ©å®¶æŽ‰è½æ­¦å™¨çš„æ¦‚率", - "text.autoconfig.Spectrum.option.REIListsRecipesAsNotUnlocked": "在REI物å“管ç†å™¨ä¸­æ˜¾ç¤ºæœªè§£é”çš„é…æ–¹æç¤º", - "text.autoconfig.Spectrum.option.azureDikeHudOffsetX": "蔚è“防御值显示æ åœ¨çީ家å±å¹•上的 X åæ ‡ä½ç½®. 默认值: 在饱食度显示æ ä¸Šæ–¹", - "text.autoconfig.Spectrum.option.azureDikeHudOffsetY": "蔚è“防御值显示æ åœ¨çީ家å±å¹•上的 Y åæ ‡ä½ç½®. 默认值: 在饱食度显示æ ä¸Šæ–¹", - "text.autoconfig.Spectrum.option.azureDikeHudOffsetYWithArmor": "蔚è“防御值显示æ åœ¨çީ家å±å¹•上的 Y åæ ‡ä½ç½®. 默认值: 在盔甲æ ä¸Šæ–¹", - "block.spectrum.upgrade_speed": "Içº§åˆæˆåŠ é€Ÿå™¨", - "block.spectrum.upgrade_speed2": "IIçº§åˆæˆåŠ é€Ÿå™¨", - "block.spectrum.upgrade_speed3": "IIIçº§åˆæˆåŠ é€Ÿå™¨", - "block.spectrum.upgrade_efficiency": "I级å应催化器", - "block.spectrum.upgrade_efficiency2": "II级å应催化器", - "block.spectrum.upgrade_yield": "I级转化率æå‡å™¨", - "block.spectrum.upgrade_yield2": "II级转化率æå‡å™¨", - "block.spectrum.upgrade_experience": "I级知识汇集器", - "block.spectrum.upgrade_experience2": "II级知识汇集器", - "item.spectrum.upgrade_speed.tooltip": "略微æå‡åˆæˆé€Ÿåº¦", - "item.spectrum.upgrade_speed2.tooltip": "显著地æå‡åˆæˆé€Ÿåº¦", - "item.spectrum.upgrade_speed3.tooltip": "大幅æé«˜åˆæˆé€Ÿåº¦", - "item.spectrum.upgrade_efficiency.tooltip": "å°æ¦‚率使å应原料ä¸è¢«ç”¨å…‰", - "item.spectrum.upgrade_efficiency2.tooltip": "一定概率使å应原料ä¸è¢«ç”¨å…‰", - "item.spectrum.upgrade_yield.tooltip": "å°æ¦‚çŽ‡å¢žåŠ åˆæˆè¾“出", - "item.spectrum.upgrade_yield2.tooltip": "ä¸€å®šæ¦‚çŽ‡å¢žåŠ åˆæˆè¾“出", - "item.spectrum.upgrade_experience.tooltip": "ç•¥å¾®å¢žåŠ åˆæˆå¾—到的ç»éªŒ", - "item.spectrum.upgrade_experience2.tooltip": "å¤§å¹…å¢žåŠ åˆæˆå¾—到的ç»éªŒ", - "item.spectrum.upgrade.tooltip_increase": "æ¯å‡ä¸€çº§ä¼šæˆå€åœ°å¢žåŠ æ•ˆæžœ", - "block.spectrum.fusion_shrine": "èžåˆç¥žé¾›", - "block.spectrum.fusion_shrine_basalt": "èžåˆç¥žé¾›", - "block.spectrum.fusion_shrine_calcite": "èžåˆç¥žé¾›", - "block.spectrum.enchanter": "注魔基座", - "block.spectrum.item_bowl_basalt": "物å“基座", - "block.spectrum.item_bowl_calcite": "物å“基座", - "block.spectrum.potion_workshop": "è¯æ°´å·¥ä½œç«™", - "block.spectrum.spirit_instiller": "çµé­‚çŒæ³¨å™¨", - "block.spectrum.crystallarieum": "结晶器(暂译)", - "block.spectrum.cinderhearth": "煤渣炉", - "block.spectrum.stonesetting_workshop": "镶石工作站", - "block.spectrum.memory": "记忆", - "item.spectrum.memory.tooltip.entity_type": "§7è®°å½•ç€ Â§f%s §7的记忆", - "item.spectrum.memory.tooltip.unrecognizable_entity_type": "è¯¥è®°å¿†æ¨¡ç³Šä¸æ¸…", - "item.spectrum.memory.tooltip.unset_entity_type": "é—忘的记忆", - "item.spectrum.memory.tooltip.extra_long_time_to_manifest": "转化该记忆将耗费æžé•¿æ—¶é—´", - "item.spectrum.memory.tooltip.long_time_to_manifest": "转化该记忆将耗费较长时间", - "item.spectrum.memory.tooltip.medium_time_to_manifest": "å¯èƒ½åœ¨æŽ¥ä¸‹æ¥çš„几天中转化", - "item.spectrum.memory.tooltip.short_time_to_manifest": "该记忆将很快转化!", - "item.spectrum.memory.tooltip.does_not_manifest": "该记忆一生中都无法转æ¢", - "block.spectrum.black_materia": "黑暗物质", - "block.spectrum.preservation_controller": "ä¿æŠ¤æŽ§åˆ¶å™¨", - "block.spectrum.preservation_stone": "ä¿æŠ¤çŸ³å¤´", - "block.spectrum.preservation_glass": "ä¿æŠ¤çŽ»ç’ƒ", - "block.spectrum.tinted_preservation_glass": "æœ‰è‰²ä¿æŠ¤çŽ»ç’ƒ", - "block.spectrum.preservation_bricks": "ä¿æŠ¤ç –å—", - "block.spectrum.shimmering_preservation_bricks": "å‘å…‰ä¿æŠ¤ç –å—", - "block.spectrum.dike_chiseled_preservation_stone": "錾制蔚è“防御石", - "block.spectrum.dike_gate": "è”šè“æ¡†æž¶", - "block.spectrum.dike_gate_fountain": "蔚è“喷泉", - "block.spectrum.courier_statue": "无法辨认的雕åƒ", - "block.spectrum.treasure_chest": "å¤ä»£è—å®ç®±", - "block.spectrum.jade_vines": "å¤çŽ‰è—¤æ ‘", - "block.spectrum.jade_vine_petal_block": "玉藤花瓣å—", - "block.spectrum.jade_vine_petal_carpet": "玉藤花瓣地毯", - "block.spectrum.spirit_sallow_roots": "çµé­‚木根", - "block.spectrum.spirit_sallow_log": "çµé­‚原木", - "block.spectrum.spirit_sallow_leaves": "çµé­‚æ ‘å¶", - "block.spectrum.spirit_sallow_heart": "çµé­‚之心", - "block.spectrum.sacred_soil": "神圣的土壤", - "block.spectrum.wand_light": "光谱ç¯", - "block.spectrum.bedrock_storage_block": "基岩方å—", - "block.spectrum.sparklestone_ore": "ç«èŠ±çŸ³çŸ¿çŸ³", - "block.spectrum.deepslate_sparklestone_ore": "深层ç«èŠ±çŸ³çŸ¿çŸ³", - "block.spectrum.sparklestone_block": "ç«èŠ±çŸ³å—", - "block.spectrum.azurite_ore": "天é’石矿石", - "block.spectrum.deepslate_azurite_ore": "深层天é’石矿石", - "block.spectrum.azurite_block": "天é’石å—", - "block.spectrum.quitoxic_reeds": "祛毒甘蔗", - "block.spectrum.mermaids_brush": "美人鱼è‰", - "block.spectrum.lava_sponge": "岩浆海绵", - "block.spectrum.wet_lava_sponge": "湿岩浆海绵", - "item.spectrum.wet_lava_sponge.tooltip": "§eâš  警告: å°å¿ƒé«˜æ¸© âš ", - "block.spectrum.amethyst_decostone": "紫水晶摆件", - "block.spectrum.topaz_decostone": "黄玉摆件", - "block.spectrum.citrine_decostone": "黄水晶摆件", - "block.spectrum.moonstone_decostone": "月长石摆件", - "block.spectrum.onyx_decostone": "缟玛瑙摆件", - "block.spectrum.amethyst_chime": "紫水晶风铃", - "block.spectrum.topaz_chime": "黄玉风铃", - "block.spectrum.citrine_chime": "黄水晶风铃", - "block.spectrum.moonstone_chime": "月长石风铃", - "block.spectrum.onyx_chime": "缟玛瑙风铃", - "block.spectrum.clover": "三å¶è‰", - "block.spectrum.four_leaf_clover": "å››å¶è‰", - "block.spectrum.ethereal_platform": "仙域平å°", - "block.spectrum.universe_spyhole": "宇宙é€è§†æ–¹å—", - "block.spectrum.ender_glass": "末影玻璃", - "block.spectrum.redstone_sand": "红石沙å­", - "block.spectrum.stuck_lightning_stone": "闪电石", - "block.spectrum.ender_dropper": "末影投掷器", - "block.spectrum.ender_hopper": "æœ«å½±æ¼æ–—", - "block.spectrum.compacting_chest": "压缩箱", - "block.spectrum.compacting_chest.toggle_crafting_mode": "切æ¢åˆæˆæ–¹å¼", - "block.spectrum.restocking_chest": "装é…ç®±", - "block.spectrum.sucking_chest": "黑洞箱", - "block.spectrum.private_chest": "心çµç»‘定箱", - "block.spectrum.ominous_sapling": "ä¸è¯¦æ ‘è‹—", - "block.spectrum.bedrock_anvil": "基岩é“ç §", - "block.spectrum.ender_treasure": "末影è¾å°„", - "block.spectrum.blazing_crystal": "炽热水晶", - "block.spectrum.frostbite_crystal": "寒霜水晶", - "block.spectrum.resonant_lily": "共振百åˆèб", - "block.spectrum.player_detector": "玩家探测器", - "block.spectrum.item_detector": "ç‰©å“æŽ¢æµ‹å™¨", - "block.spectrum.weather_detector": "天气探测器", - "block.spectrum.light_level_detector": "æ–¹å—光探测器", - "block.spectrum.entity_detector": "生物探测器", - "block.spectrum.block_placer": "æ–¹å—æ”¾ç½®å™¨", - "block.spectrum.redstone_wireless": "无线红石", - "block.spectrum.redstone_calculator": "红石计算器", - "block.spectrum.redstone_calculator.mode_set": "红石计算器已被设为: ", - "block.spectrum.redstone_calculator.mode.addition": "加法模å¼", - "block.spectrum.redstone_calculator.mode.subtraction": "凿³•模å¼", - "block.spectrum.redstone_calculator.mode.multiplication": "乘法模å¼", - "block.spectrum.redstone_calculator.mode.division": "除法模å¼", - "block.spectrum.redstone_calculator.mode.modulo": "å–æ¨¡æ¨¡å¼", - "block.spectrum.redstone_calculator.mode.min": "最å°å€¼æ¨¡å¼", - "block.spectrum.redstone_calculator.mode.max": "最大值模å¼", - "block.spectrum.redstone_timer": "红石计时器", - "block.spectrum.redstone_timer.setting.active": "激活时间被设为: ", - "block.spectrum.redstone_timer.setting.inactive": "åœç”¨æ—¶é—´è¢«è®¾ä¸º: ", - "block.spectrum.redstone_timer.setting.one_second": "1 ç§’", - "block.spectrum.redstone_timer.setting.ten_seconds": "10 ç§’", - "block.spectrum.redstone_timer.setting.one_minute": "1 分钟", - "block.spectrum.redstone_timer.setting.ten_minutes": "10 分钟", - "block.spectrum.redstone_timer.setting.one_hour": "1 䏀尿—¶", - "block.spectrum.cyan_spirit_sallow_vines_head": "é’色çµé­‚藤蔓", - "block.spectrum.magenta_spirit_sallow_vines_head": "å“红色çµé­‚藤蔓", - "block.spectrum.yellow_spirit_sallow_vines_head": "黄色çµé­‚藤蔓", - "block.spectrum.white_spirit_sallow_vines_head": "白色çµé­‚藤蔓", - "block.spectrum.black_spirit_sallow_vines_head": "黑色çµé­‚藤蔓", - "block.spectrum.cyan_spirit_sallow_vines_body": "é’色çµé­‚藤蔓", - "block.spectrum.magenta_spirit_sallow_vines_body": "å“红色çµé­‚藤蔓", - "block.spectrum.yellow_spirit_sallow_vines_body": "黄色çµé­‚藤蔓", - "block.spectrum.white_spirit_sallow_vines_body": "白色çµé­‚藤蔓", - "block.spectrum.black_spirit_sallow_vines_body": "黑色çµé­‚藤蔓", - "block.spectrum.basalt_sparklestone_light": "玄武岩ç«èŠ±çŸ³ç¯", - "block.spectrum.calcite_sparklestone_light": "方解石ç«èŠ±çŸ³ç¯", - "block.spectrum.stone_sparklestone_light": "石质ç«èŠ±çŸ³ç¯", - "block.spectrum.granite_sparklestone_light": "花岗岩ç«èŠ±çŸ³ç¯", - "block.spectrum.diorite_sparklestone_light": "闪长岩ç«èŠ±çŸ³ç¯", - "block.spectrum.andesite_sparklestone_light": "安山岩ç«èŠ±çŸ³ç¯", - "block.spectrum.deepslate_sparklestone_light": "æ·±æ¿å²©ç«èŠ±çŸ³ç¯", - "block.spectrum.amethyst_storage_block": "磨制紫水晶", - "block.spectrum.citrine_storage_block": "磨制黄水晶", - "block.spectrum.topaz_storage_block": "磨制黄玉", - "block.spectrum.onyx_storage_block": "磨制缟玛瑙", - "block.spectrum.moonstone_storage_block": "磨制月长石", - "block.spectrum.spectral_shard_storage_block": "磨制化åˆç¢Žç‰‡å—", - "block.spectrum.black_block": "黑色方å—", - "block.spectrum.blue_block": "è“色方å—", - "block.spectrum.brown_block": "棕色方å—", - "block.spectrum.cyan_block": "é’色方å—", - "block.spectrum.gray_block": "ç°è‰²æ–¹å—", - "block.spectrum.green_block": "绿色方å—", - "block.spectrum.light_blue_block": "æ·¡è“色方å—", - "block.spectrum.light_gray_block": "æ·¡ç°è‰²æ–¹å—", - "block.spectrum.lime_block": "黄绿色方å—", - "block.spectrum.magenta_block": "å“红色方å—", - "block.spectrum.orange_block": "橙色方å—", - "block.spectrum.pink_block": "粉色方å—", - "block.spectrum.purple_block": "紫色方å—", - "block.spectrum.red_block": "红色方å—", - "block.spectrum.white_block": "白色方å—", - "block.spectrum.yellow_block": "黄色方å—", - "block.spectrum.black_spore_blossom": "黑色孢å­èб", - "block.spectrum.blue_spore_blossom": "è“色孢å­èб", - "block.spectrum.brown_spore_blossom": "棕色孢å­èб", - "block.spectrum.cyan_spore_blossom": "é’色孢å­èб", - "block.spectrum.gray_spore_blossom": "ç°è‰²å­¢å­èб", - "block.spectrum.green_spore_blossom": "绿色孢å­èб", - "block.spectrum.light_blue_spore_blossom": "æ·¡è“色孢å­èб", - "block.spectrum.light_gray_spore_blossom": "æ·¡ç°è‰²å­¢å­èб", - "block.spectrum.lime_spore_blossom": "绿色孢å­èб", - "block.spectrum.magenta_spore_blossom": "å“红色孢å­èб", - "block.spectrum.orange_spore_blossom": "橙色孢å­èб", - "block.spectrum.pink_spore_blossom": "粉色孢å­èб", - "block.spectrum.purple_spore_blossom": "紫色孢å­èб", - "block.spectrum.red_spore_blossom": "红色孢å­èб", - "block.spectrum.white_spore_blossom": "白色孢å­èб", - "block.spectrum.yellow_spore_blossom": "黄色孢å­èб", - "block.spectrum.black_sapling": "黑色树苗", - "block.spectrum.black_log": "黑色原木", - "block.spectrum.black_leaves": "黑色树å¶", - "block.spectrum.blue_sapling": "è“色树苗", - "block.spectrum.blue_log": "è“色原木", - "block.spectrum.blue_leaves": "è“色树å¶", - "block.spectrum.brown_sapling": "棕色树苗", - "block.spectrum.brown_log": "棕色原木", - "block.spectrum.brown_leaves": "棕色树å¶", - "block.spectrum.cyan_sapling": "é’色树苗", - "block.spectrum.cyan_log": "é’色原木", - "block.spectrum.cyan_leaves": "é’色树å¶", - "block.spectrum.gray_sapling": "ç°è‰²æ ‘è‹—", - "block.spectrum.gray_log": "ç°è‰²åŽŸæœ¨", - "block.spectrum.gray_leaves": "ç°è‰²æ ‘å¶", - "block.spectrum.green_sapling": "绿色树苗", - "block.spectrum.green_log": "绿色原木", - "block.spectrum.green_leaves": "绿色树å¶", - "block.spectrum.light_blue_sapling": "æ·¡è“色树苗", - "block.spectrum.light_blue_log": "æ·¡è“色原木", - "block.spectrum.light_blue_leaves": "æ·¡è“色树å¶", - "block.spectrum.light_gray_sapling": "浅绿色树苗", - "block.spectrum.light_gray_log": "æ·¡ç°è‰²åŽŸæœ¨", - "block.spectrum.light_gray_leaves": "æ·¡ç°è‰²æ ‘å¶", - "block.spectrum.lime_sapling": "黄绿色树苗", - "block.spectrum.lime_log": "黄绿色原木", - "block.spectrum.lime_leaves": "黄绿色树å¶", - "block.spectrum.magenta_sapling": "å“红色树苗", - "block.spectrum.magenta_log": "å“红色原木", - "block.spectrum.magenta_leaves": "å“红色树å¶", - "block.spectrum.orange_sapling": "橙色树苗", - "block.spectrum.orange_log": "橙色原木", - "block.spectrum.orange_leaves": "橙色树å¶", - "block.spectrum.pink_sapling": "粉色树苗", - "block.spectrum.pink_log": "粉色原木", - "block.spectrum.pink_leaves": "粉色树å¶", - "block.spectrum.purple_sapling": "紫色树苗", - "block.spectrum.purple_log": "紫色原木", - "block.spectrum.purple_leaves": "紫色树å¶", - "block.spectrum.red_sapling": "红色树苗", - "block.spectrum.red_log": "红色原木", - "block.spectrum.red_leaves": "红色树å¶", - "block.spectrum.white_sapling": "白色树苗", - "block.spectrum.white_log": "白色原木", - "block.spectrum.white_leaves": "白色树å¶", - "block.spectrum.yellow_sapling": "黄色树苗", - "block.spectrum.yellow_log": "黄色原木", - "block.spectrum.yellow_leaves": "黄色树å¶", - "block.spectrum.black_glowblock": "黑色å‘光方å—", - "block.spectrum.blue_glowblock": "è“色å‘光方å—", - "block.spectrum.brown_glowblock": "棕色å‘光方å—", - "block.spectrum.cyan_glowblock": "é’色å‘光方å—", - "block.spectrum.gray_glowblock": "ç°è‰²å‘光方å—", - "block.spectrum.green_glowblock": "绿色å‘光方å—", - "block.spectrum.light_blue_glowblock": "æ·¡è“色å‘光方å—", - "block.spectrum.light_gray_glowblock": "æ·¡ç°è‰²å‘光方å—", - "block.spectrum.lime_glowblock": "黄绿色å‘光方å—", - "block.spectrum.magenta_glowblock": "å“红色å‘光方å—", - "block.spectrum.orange_glowblock": "橙色å‘光方å—", - "block.spectrum.pink_glowblock": "粉色å‘光方å—", - "block.spectrum.purple_glowblock": "紫色å‘光方å—", - "block.spectrum.red_glowblock": "红色å‘光方å—", - "block.spectrum.white_glowblock": "白色å‘光方å—", - "block.spectrum.yellow_glowblock": "黄色å‘光方å—", - "block.spectrum.black_lamp": "黑色红石ç¯", - "block.spectrum.blue_lamp": "è“色红石ç¯", - "block.spectrum.brown_lamp": "棕色红石ç¯", - "block.spectrum.cyan_lamp": "é’色红石ç¯", - "block.spectrum.gray_lamp": "ç°è‰²çº¢çŸ³ç¯", - "block.spectrum.green_lamp": "绿色红石ç¯", - "block.spectrum.light_blue_lamp": "æ·¡è“色红石ç¯", - "block.spectrum.light_gray_lamp": "æ·¡ç°è‰²çº¢çŸ³ç¯", - "block.spectrum.lime_lamp": "黄绿色红石ç¯", - "block.spectrum.magenta_lamp": "å“红色红石ç¯", - "block.spectrum.orange_lamp": "橙色红石ç¯", - "block.spectrum.pink_lamp": "粉色红石ç¯", - "block.spectrum.purple_lamp": "紫色红石ç¯", - "block.spectrum.red_lamp": "红色红石ç¯", - "block.spectrum.white_lamp": "白色红石ç¯", - "block.spectrum.yellow_lamp": "黄色红石ç¯", - "block.spectrum.black_planks": "黑色木æ¿", - "block.spectrum.black_plank_button": "黑色木按钮", - "block.spectrum.black_plank_fence": "黑色木栅æ ", - "block.spectrum.black_plank_pressure_plate": "黑色木压力æ¿", - "block.spectrum.black_plank_stairs": "黑色木楼梯", - "block.spectrum.black_plank_slab": "黑色木å°é˜¶", - "block.spectrum.black_plank_fence_gate": "黑色木栅æ é—¨", - "block.spectrum.blue_planks": "è“色木æ¿", - "block.spectrum.blue_plank_button": "è“色木按钮", - "block.spectrum.blue_plank_fence": "è“色木栅æ ", - "block.spectrum.blue_plank_pressure_plate": "è“色木压力æ¿", - "block.spectrum.blue_plank_stairs": "è“色木楼梯", - "block.spectrum.blue_plank_slab": "è“色木å°é˜¶", - "block.spectrum.blue_plank_fence_gate": "è“色木栅æ é—¨", - "block.spectrum.brown_planks": "棕色木æ¿", - "block.spectrum.brown_plank_button": "棕色木按钮", - "block.spectrum.brown_plank_fence": "棕色木栅æ ", - "block.spectrum.brown_plank_pressure_plate": "棕色木压力æ¿", - "block.spectrum.brown_plank_stairs": "棕色木楼梯", - "block.spectrum.brown_plank_slab": "棕色木å°é˜¶", - "block.spectrum.brown_plank_fence_gate": "棕色木栅æ é—¨", - "block.spectrum.cyan_planks": "é’色木æ¿s", - "block.spectrum.cyan_plank_button": "é’色木按钮", - "block.spectrum.cyan_plank_fence": "é’色木栅æ ", - "block.spectrum.cyan_plank_pressure_plate": "é’色木压力æ¿", - "block.spectrum.cyan_plank_stairs": "é’色木楼梯", - "block.spectrum.cyan_plank_slab": "é’色木å°é˜¶", - "block.spectrum.cyan_plank_fence_gate": "é’色木栅æ é—¨", - "block.spectrum.gray_planks": "ç°è‰²æœ¨æ¿", - "block.spectrum.gray_plank_button": "ç°è‰²æœ¨æŒ‰é’®", - "block.spectrum.gray_plank_fence": "ç°è‰²æœ¨æ …æ ", - "block.spectrum.gray_plank_pressure_plate": "ç°è‰²æœ¨åŽ‹åŠ›æ¿", - "block.spectrum.gray_plank_stairs": "ç°è‰²æœ¨æ¥¼æ¢¯", - "block.spectrum.gray_plank_slab": "ç°è‰²æœ¨å°é˜¶", - "block.spectrum.gray_plank_fence_gate": "ç°è‰²æœ¨æ …æ é—¨", - "block.spectrum.green_planks": "绿色木æ¿", - "block.spectrum.green_plank_button": "绿色木按钮", - "block.spectrum.green_plank_fence": "绿色木栅æ ", - "block.spectrum.green_plank_pressure_plate": "绿色木压力æ¿", - "block.spectrum.green_plank_stairs": "绿色木楼梯", - "block.spectrum.green_plank_slab": "绿色木å°é˜¶", - "block.spectrum.green_plank_fence_gate": "绿色木栅æ é—¨", - "block.spectrum.light_blue_planks": "æ·¡è“色木æ¿", - "block.spectrum.light_blue_plank_button": "æ·¡è“色木按钮", - "block.spectrum.light_blue_plank_fence": "æ·¡è“色木栅æ ", - "block.spectrum.light_blue_plank_pressure_plate": "æ·¡è“色木压力æ¿", - "block.spectrum.light_blue_plank_stairs": "æ·¡è“色木楼梯", - "block.spectrum.light_blue_plank_slab": "æ·¡è“色木å°é˜¶", - "block.spectrum.light_blue_plank_fence_gate": "æ·¡è“色木栅æ é—¨", - "block.spectrum.light_gray_planks": "æ·¡ç°è‰²æœ¨æ¿", - "block.spectrum.light_gray_plank_button": "æ·¡ç°è‰²æœ¨æŒ‰é’®", - "block.spectrum.light_gray_plank_fence": "æ·¡ç°è‰²æœ¨æ …æ ", - "block.spectrum.light_gray_plank_pressure_plate": "æ·¡ç°è‰²æœ¨åŽ‹åŠ›æ¿", - "block.spectrum.light_gray_plank_stairs": "æ·¡ç°è‰²æœ¨æ¥¼æ¢¯", - "block.spectrum.light_gray_plank_slab": "æ·¡ç°è‰²æœ¨å°é˜¶", - "block.spectrum.light_gray_plank_fence_gate": "æ·¡ç°è‰²æœ¨æ …æ é—¨", - "block.spectrum.lime_planks": "黄绿色木æ¿", - "block.spectrum.lime_plank_button": "黄绿色木按钮", - "block.spectrum.lime_plank_fence": "黄绿色木栅æ ", - "block.spectrum.lime_plank_pressure_plate": "黄绿色木压力æ¿", - "block.spectrum.lime_plank_stairs": "黄绿色木楼梯", - "block.spectrum.lime_plank_slab": "黄绿色木å°é˜¶", - "block.spectrum.lime_plank_fence_gate": "黄绿色木栅æ é—¨", - "block.spectrum.magenta_planks": "å“红色木æ¿", - "block.spectrum.magenta_plank_button": "å“红色木按钮", - "block.spectrum.magenta_plank_fence": "å“红色木栅æ ", - "block.spectrum.magenta_plank_pressure_plate": "å“红色木压力æ¿", - "block.spectrum.magenta_plank_stairs": "å“红色木楼梯", - "block.spectrum.magenta_plank_slab": "å“红色木å°é˜¶", - "block.spectrum.magenta_plank_fence_gate": "å“红色木栅æ é—¨", - "block.spectrum.orange_planks": "橙色木æ¿", - "block.spectrum.orange_plank_button": "橙色木按钮", - "block.spectrum.orange_plank_fence": "橙色木栅æ ", - "block.spectrum.orange_plank_pressure_plate": "橙色木压力æ¿", - "block.spectrum.orange_plank_stairs": "橙色木楼梯", - "block.spectrum.orange_plank_slab": "橙色木å°é˜¶", - "block.spectrum.orange_plank_fence_gate": "橙色木栅æ é—¨", - "block.spectrum.pink_planks": "粉色木æ¿", - "block.spectrum.pink_plank_button": "粉色木按钮", - "block.spectrum.pink_plank_fence": "粉色木栅æ ", - "block.spectrum.pink_plank_pressure_plate": "粉色木压力æ¿", - "block.spectrum.pink_plank_stairs": "粉色木楼梯", - "block.spectrum.pink_plank_slab": "粉色木å°é˜¶", - "block.spectrum.pink_plank_fence_gate": "粉色木栅æ é—¨", - "block.spectrum.purple_planks": "紫色木æ¿", - "block.spectrum.purple_plank_button": "紫色木按钮", - "block.spectrum.purple_plank_fence": "紫色木栅æ ", - "block.spectrum.purple_plank_pressure_plate": "紫色木压力æ¿", - "block.spectrum.purple_plank_stairs": "紫色木楼梯", - "block.spectrum.purple_plank_slab": "紫色木å°é˜¶", - "block.spectrum.purple_plank_fence_gate": "紫色木栅æ é—¨", - "block.spectrum.red_planks": "红色木æ¿", - "block.spectrum.red_plank_button": "红色木按钮", - "block.spectrum.red_plank_fence": "红色木栅æ ", - "block.spectrum.red_plank_pressure_plate": "红色木压力æ¿", - "block.spectrum.red_plank_stairs": "红色木楼梯", - "block.spectrum.red_plank_slab": "红色木å°é˜¶", - "block.spectrum.red_plank_fence_gate": "红色木栅æ é—¨", - "block.spectrum.white_planks": "白色木æ¿", - "block.spectrum.white_plank_button": "白色木按钮", - "block.spectrum.white_plank_fence": "白色木栅æ ", - "block.spectrum.white_plank_pressure_plate": "白色木压力æ¿", - "block.spectrum.white_plank_stairs": "白色木楼梯", - "block.spectrum.white_plank_slab": "白色木å°é˜¶", - "block.spectrum.white_plank_fence_gate": "白色木栅æ é—¨", - "block.spectrum.yellow_planks": "黄色木æ¿", - "block.spectrum.yellow_plank_button": "黄色木按钮", - "block.spectrum.yellow_plank_fence": "黄色木栅æ ", - "block.spectrum.yellow_plank_pressure_plate": "黄色木压力æ¿", - "block.spectrum.yellow_plank_stairs": "黄色木楼梯", - "block.spectrum.yellow_plank_slab": "黄色木å°é˜¶", - "block.spectrum.yellow_plank_fence_gate": "黄色木栅æ é—¨", - "item.spectrum.mud_bucket": "泥桶", - "block.spectrum.mud": "æ³¥", - "block.spectrum.flowing_mud": "æ³¥", - "item.spectrum.liquid_crystal_bucket": "液体水晶桶", - "block.spectrum.liquid_crystal": "液体水晶", - "block.spectrum.flowing_liquid_crystal": "液体水晶", - "item.spectrum.midnight_solution_bucket": "åˆå¤œæº¶æ¶²æ¡¶", - "block.spectrum.midnight_solution": "åˆå¤œæº¶æ¶²", - "block.spectrum.flowing_midnight_solution": "åˆå¤œæº¶æ¶²", - "block.spectrum.paletur_ore": "è‹ç»¿çŸ¿çŸ³", - "block.spectrum.paletur_fragment_block": "è‹ç»¿æ‚¬æµ®æ–¹å—", - "block.spectrum.scarlet_ore": "绯红矿石", - "block.spectrum.scarlet_fragment_block": "绯红悬浮方å—", - "block.spectrum.hover_block": "悬浮方å—", - "block.spectrum.shooting_star_glistering": "å‘å…‰çš„æµæ˜Ÿ", - "block.spectrum.shooting_star_fiery": "ç«çƒ­çš„æµæ˜Ÿ", - "block.spectrum.shooting_star_colorful": "ä¸ƒå½©çš„æµæ˜Ÿ", - "block.spectrum.shooting_star_pristine": "æ¸…æ–°çš„æµæ˜Ÿ", - "block.spectrum.shooting_star_gemstone": "å®çŸ³æµæ˜Ÿ", - "block.spectrum.glistering_melon": "é—ªçƒçš„西瓜", - "block.spectrum.glistering_melon_stem": "é—ªçƒçš„西瓜ç§å­", - "block.spectrum.attached_glistering_melon_stem": "é—ªçƒçš„西瓜ç§å­", - "block.spectrum.spectral_shard_block": "化åˆç¢Žç‰‡å—", - "block.spectrum.small_citrine_bud": "å°åž‹é»„水晶芽", - "block.spectrum.medium_citrine_bud": "中型黄水晶芽", - "block.spectrum.large_citrine_bud": "大型黄水晶芽", - "block.spectrum.citrine_cluster": "黄水晶簇", - "block.spectrum.citrine_block": "黄水晶å—", - "block.spectrum.budding_citrine": "黄水晶æ¯å²©", - "block.spectrum.small_topaz_bud": "å°åž‹é»„玉芽", - "block.spectrum.medium_topaz_bud": "中型黄玉芽", - "block.spectrum.large_topaz_bud": "大型黄玉芽", - "block.spectrum.topaz_cluster": "黄玉簇", - "block.spectrum.topaz_block": "黄玉å—", - "block.spectrum.budding_topaz": "黄玉æ¯å²©", - "block.spectrum.small_onyx_bud": "å°åž‹ç¼ŸçŽ›ç‘™èŠ½", - "block.spectrum.medium_onyx_bud": "中型缟玛瑙芽", - "block.spectrum.large_onyx_bud": "大型缟玛瑙芽", - "block.spectrum.onyx_cluster": "缟玛瑙簇", - "block.spectrum.onyx_block": "缟玛瑙å—", - "block.spectrum.budding_onyx": "缟玛瑙æ¯å²©", - "block.spectrum.small_moonstone_bud": "å°åž‹æœˆé•¿çŸ³èн", - "block.spectrum.medium_moonstone_bud": "中型月长石芽", - "block.spectrum.large_moonstone_bud": "大型月长石芽", - "block.spectrum.moonstone_cluster": "月长石簇", - "block.spectrum.moonstone_block": "月长石å—", - "block.spectrum.budding_moonstone": "月长石æ¯å²©", - "block.spectrum.amethyst_ore": "紫水晶矿石", - "block.spectrum.citrine_ore": "黄水晶矿石", - "block.spectrum.topaz_ore": "黄玉矿石", - "block.spectrum.onyx_ore": "缟玛瑙矿石", - "block.spectrum.moonstone_ore": "月长石矿石", - "block.spectrum.deepslate_amethyst_ore": "深层紫水晶矿石", - "block.spectrum.deepslate_citrine_ore": "深层黄水晶矿石", - "block.spectrum.deepslate_topaz_ore": "深层黄玉矿石", - "block.spectrum.deepslate_onyx_ore": "深层缟玛瑙矿石", - "block.spectrum.deepslate_moonstone_ore": "深层月长石矿石", - "block.spectrum.smooth_basalt_slab": "平滑玄武岩å°é˜¶", - "block.spectrum.smooth_basalt_wall": "平滑玄武岩墙", - "block.spectrum.smooth_basalt_stairs": "平滑玄武岩楼梯", - "block.spectrum.polished_basalt": "磨制玄武岩", - "block.spectrum.polished_basalt_pillar": "磨制玄武岩柱", - "block.spectrum.polished_basalt_crest": "錾制饰纹玄武岩", - "block.spectrum.chiseled_polished_basalt": "錾制磨制玄武岩", - "block.spectrum.notched_polished_basalt": "錾制缺å£çŽ„æ­¦å²©", - "block.spectrum.polished_basalt_slab": "磨制玄武岩å°é˜¶", - "block.spectrum.polished_basalt_wall": "磨制玄武岩墙", - "block.spectrum.polished_basalt_stairs": "磨制玄武岩楼梯", - "block.spectrum.basalt_bricks": "磨制玄武岩砖å—", - "block.spectrum.basalt_brick_slab": "玄武岩砖å°é˜¶", - "block.spectrum.basalt_brick_wall": "玄武岩砖墙", - "block.spectrum.basalt_brick_stairs": "玄武岩砖楼梯", - "block.spectrum.amethyst_chiseled_basalt": "錾制紫水晶玄武岩", - "block.spectrum.topaz_chiseled_basalt": "錾制黄玉玄武岩", - "block.spectrum.citrine_chiseled_basalt": "錾制黄水晶玄武岩", - "block.spectrum.onyx_chiseled_basalt": "錾制缟玛瑙玄武岩", - "block.spectrum.moonstone_chiseled_basalt": "錾制月长石玄武岩", - "block.spectrum.calcite_slab": "方解石å°é˜¶", - "block.spectrum.calcite_wall": "方解石墙", - "block.spectrum.calcite_stairs": "楼梯", - "block.spectrum.polished_calcite": "磨制饰纹方解石", - "block.spectrum.polished_calcite_pillar": "磨制方解石柱", - "block.spectrum.polished_calcite_crest": "錾制方解石", - "block.spectrum.chiseled_polished_calcite": "錾制磨制方解石", - "block.spectrum.notched_polished_calcite": "éŒ¾åˆ¶ç¼ºå£æ–¹è§£çŸ³", - "block.spectrum.polished_calcite_slab": "磨制方解石å°é˜¶", - "block.spectrum.polished_calcite_wall": "磨制方解石墙", - "block.spectrum.polished_calcite_stairs": "磨制方解石楼梯", - "block.spectrum.calcite_bricks": "磨制方解石砖å—", - "block.spectrum.calcite_brick_slab": "方解石砖å°é˜¶", - "block.spectrum.calcite_brick_wall": "方解石砖墙", - "block.spectrum.calcite_brick_stairs": "方解石砖楼梯", - "block.spectrum.amethyst_chiseled_calcite": "錾制紫水晶方解石", - "block.spectrum.topaz_chiseled_calcite": "錾制黄玉方解石", - "block.spectrum.citrine_chiseled_calcite": "錾制黄水晶方解石", - "block.spectrum.onyx_chiseled_calcite": "錾制缟玛瑙方解石", - "block.spectrum.moonstone_chiseled_calcite": "錾制月长石方解石", - "block.spectrum.amethyst_glass": "紫水晶玻璃", - "block.spectrum.topaz_glass": "黄玉玻璃", - "block.spectrum.citrine_glass": "黄水晶玻璃", - "block.spectrum.onyx_glass": "缟玛瑙玻璃", - "block.spectrum.moonstone_glass": "月长石玻璃", - "block.spectrum.glowing_glass": "å‘光玻璃", - "block.spectrum.tinted_player_only_glass": "åŠç©¿é€é®å…‰çŽ»ç’ƒ", - "block.spectrum.glowing_player_only_glass": "åŠç©¿é€å‘光玻璃", - "block.spectrum.vanilla_player_only_glass": "åŠç©¿é€çŽ»ç’ƒ", - "block.spectrum.amethyst_player_only_glass": "åŠç©¿é€ç´«æ°´æ™¶çŽ»ç’ƒ", - "block.spectrum.topaz_player_only_glass": "åŠç©¿é€é»„玉玻璃", - "block.spectrum.citrine_player_only_glass": "åŠç©¿é€é»„水晶玻璃", - "block.spectrum.onyx_player_only_glass": "åŠç©¿é€ç¼ŸçŽ›ç‘™çŽ»ç’ƒ", - "block.spectrum.moonstone_player_only_glass": "åŠç©¿é€æœˆé•¿çŸ³çŽ»ç’ƒ", - "block.spectrum.amethyst_calcite_lamp": "紫水晶方解石ç¯", - "block.spectrum.topaz_calcite_lamp": "黄玉方解石ç¯", - "block.spectrum.citrine_calcite_lamp": "黄水晶方解石ç¯", - "block.spectrum.onyx_calcite_lamp": "缟玛瑙方解石ç¯", - "block.spectrum.moonstone_calcite_lamp": "月长石方解石ç¯", - "block.spectrum.amethyst_basalt_lamp": "紫水晶玄武岩ç¯", - "block.spectrum.topaz_basalt_lamp": "黄玉玄武岩ç¯", - "block.spectrum.citrine_basalt_lamp": "黄水晶玄武岩ç¯", - "block.spectrum.onyx_basalt_lamp": "缟玛瑙玄武岩ç¯", - "block.spectrum.moonstone_basalt_lamp": "月长石玄武岩ç¯", - "block.spectrum.pedestal": "七彩基座", - "block.spectrum.pedestal_basic_topaz": "七彩基座", - "block.spectrum.pedestal_basic_amethyst": "七彩基座", - "block.spectrum.pedestal_basic_citrine": "七彩基座", - "block.spectrum.pedestal_all_basic": "七彩基座", - "block.spectrum.pedestal_onyx": "七彩基座", - "block.spectrum.pedestal_moonstone": "七彩基座", - "item.spectrum.pedestal.tooltip.basic_topaz": "§b黄玉§7 å˜ç§", - "item.spectrum.pedestal.tooltip.basic_amethyst": "§d紫水晶§7 å˜ç§", - "item.spectrum.pedestal.tooltip.basic_citrine": "§e黄水晶§7 å˜ç§", - "item.spectrum.pedestal.tooltip.all_basic": "§bC§dM§eY§7 å˜ç§", - "item.spectrum.pedestal.tooltip.onyx": "§8缟玛瑙§7 å˜ç§", - "item.spectrum.pedestal.tooltip.moonstone": "§f月长石§7 å˜ç§", - "block.spectrum.provider_node": "彩绘网络æä¾›èŠ‚ç‚¹", - "block.spectrum.puller_node": "彩绘网络接å—节点", - "block.spectrum.pusher_node": "彩绘网络å‘é€èŠ‚ç‚¹", - "block.spectrum.storage_node": "彩绘网络存储节点", - "block.spectrum.connection_node": "彩绘网络连接节点", - "block.spectrum.interaction_node": "彩绘网络交互节点", - "block.spectrum.provider_node.tooltip": "§då°†ç‰©å“æä¾›ç»™å½©ç»˜ç½‘ç»œ", - "block.spectrum.puller_node.tooltip": "§8从彩绘网络拉å–节点", - "block.spectrum.pusher_node.tooltip": "§eå°†ç‰©å“æŽ¨é€è‡³å½©ç»˜ç½‘络", - "block.spectrum.storage_node.tooltip": "§b将物å“存储于当å‰èŠ‚ç‚¹", - "block.spectrum.connection_node.tooltip": "§f简易连接器", - "block.spectrum.interaction_node.tooltip": "§f从网络请求物å“", - "block.spectrum.pastel_network_nodes.tooltip.range": "连接到è·å½“å‰ä½ç½®16格的节点", - "item.spectrum.mob_head.tooltip.designer": "§7头颅由%s设计", - "block.spectrum.goat_head": "山羊头颅", - "block.spectrum.glow_squid_head": "å‘光鱿鱼头颅", - "block.spectrum.axolotl_blue_head": "è“色美西螈头颅", - "block.spectrum.axolotl_brown_head": "棕色美西螈头颅", - "block.spectrum.axolotl_cyan_head": "é’色美西螈头颅", - "block.spectrum.axolotl_gold_head": "金色美西螈头颅", - "block.spectrum.axolotl_leucistic_head": "粉红色美西螈头颅", - "block.spectrum.bat_head": "è™è å¤´é¢…", - "block.spectrum.bee_head": "蜜蜂头颅", - "block.spectrum.blaze_head": "烈焰人头颅", - "block.spectrum.cat_head": "猫头颅", - "block.spectrum.cave_spider_head": "洞穴蜘蛛头颅", - "block.spectrum.chicken_head": "鸡的头", - "block.spectrum.clownfish_head": "热带鱼头颅", - "block.spectrum.cow_head": "牛头", - "block.spectrum.donkey_head": "驴头", - "block.spectrum.drowned_head": "溺尸的头颅", - "block.spectrum.elder_guardian_head": "远å¤å®ˆå«è€…头颅", - "block.spectrum.enderman_head": "末影人的头", - "block.spectrum.endermite_head": "末影螨的头", - "block.spectrum.evoker_head": "唤魔者的头", - "block.spectrum.fox_head": "ç‹ç‹¸çš„头", - "block.spectrum.fox_arctic_head": "北æžç‹çš„头", - "block.spectrum.ghast_head": "æ¶é­‚的头", - "block.spectrum.guardian_head": "守å«è€…的头", - "block.spectrum.hoglin_head": "疣猪兽的头", - "block.spectrum.horse_head": "马头", - "block.spectrum.husk_head": "尸壳的头", - "block.spectrum.illusioner_head": "幻术师的头", - "block.spectrum.iron_golem_head": "é“傀儡的头", - "block.spectrum.llama_head": "羊驼的头", - "block.spectrum.magma_cube_head": "岩浆怪的头", - "block.spectrum.mooshroom_brown_head": "棕色哞è‡å¤´", - "block.spectrum.mooshroom_red_head": "红色哞è‡å¤´", - "block.spectrum.mule_head": "骡的头", - "block.spectrum.ocelot_head": "豹猫的头", - "block.spectrum.panda_head": "熊猫头", - "block.spectrum.parrot_blue_head": "è“色鹦鹉的头", - "block.spectrum.parrot_cyan_head": "é’色鹦鹉的头", - "block.spectrum.parrot_gray_head": "ç°è‰²é¹¦é¹‰çš„头", - "block.spectrum.parrot_green_head": "绿色鹦鹉的头", - "block.spectrum.parrot_red_head": "红色鹦鹉的头", - "block.spectrum.phantom_head": "幻翼的头", - "block.spectrum.pig_head": "猪头", - "block.spectrum.piglin_head": "猪çµçš„头", - "block.spectrum.polar_bear_head": "北æžç†Šçš„头", - "block.spectrum.pufferfish_head": "河豚的头", - "block.spectrum.rabbit_head": "å…”å­çš„头", - "block.spectrum.ravager_head": "劫掠兽的头", - "block.spectrum.salmon_head": "鲑鱼的头", - "block.spectrum.sheep_black_head": "黑色羊的头", - "block.spectrum.sheep_blue_head": "è“色羊的头", - "block.spectrum.sheep_brown_head": "棕色羊的头", - "block.spectrum.sheep_cyan_head": "é’色羊的头", - "block.spectrum.sheep_gray_head": "ç°è‰²ç¾Šçš„头", - "block.spectrum.sheep_green_head": "绿色羊的头", - "block.spectrum.sheep_light_blue_head": "æ·¡è“色羊的头", - "block.spectrum.sheep_light_gray_head": "æ·¡ç°è‰²ç¾Šçš„头", - "block.spectrum.sheep_lime_head": "黄绿色羊的头", - "block.spectrum.sheep_magenta_head": "å“红色羊的头", - "block.spectrum.sheep_orange_head": "橙色羊的头", - "block.spectrum.sheep_pink_head": "粉色羊的头", - "block.spectrum.sheep_purple_head": "紫色羊的头", - "block.spectrum.sheep_red_head": "红色羊的头", - "block.spectrum.sheep_white_head": "白色羊的头", - "block.spectrum.sheep_yellow_head": "黄色羊的头", - "block.spectrum.shulker_black_head": "黑色潜影è´çš„头", - "block.spectrum.shulker_blue_head": "è“色潜影è´çš„头", - "block.spectrum.shulker_brown_head": "棕色潜影è´çš„头", - "block.spectrum.shulker_cyan_head": "é’色潜影è´çš„头", - "block.spectrum.shulker_gray_head": "ç°è‰²æ½œå½±è´çš„头", - "block.spectrum.shulker_green_head": "绿色潜影è´çš„头", - "block.spectrum.shulker_light_blue_head": "æ·¡è“色潜影è´çš„头", - "block.spectrum.shulker_light_gray_head": "æ·¡ç°è‰²æ½œå½±è´çš„头", - "block.spectrum.shulker_lime_head": "黄绿色潜影è´çš„头", - "block.spectrum.shulker_magenta_head": "å“红色潜影è´çš„头", - "block.spectrum.shulker_orange_head": "橙色潜影è´çš„头", - "block.spectrum.shulker_pink_head": "粉色潜影è´çš„头", - "block.spectrum.shulker_purple_head": "紫色潜影è´çš„头", - "block.spectrum.shulker_red_head": "红色潜影è´çš„头", - "block.spectrum.shulker_white_head": "白色潜影è´çš„头", - "block.spectrum.shulker_yellow_head": "黄色潜影è´çš„头", - "block.spectrum.silverfish_head": "蠹虫的头", - "block.spectrum.slime_head": "å²èŽ±å§†çš„å¤´", - "block.spectrum.snow_golem_head": "雪傀儡的头", - "block.spectrum.spider_head": "蜘蛛的头", - "block.spectrum.squid_head": "鱿鱼的头", - "block.spectrum.stray_head": "æµæµªè€…的头", - "block.spectrum.strider_head": "赤足兽的头", - "block.spectrum.trader_llama_head": "行商羊驼的头", - "block.spectrum.turtle_head": "海龟的头", - "block.spectrum.vex_head": "æ¼é¬¼çš„头", - "block.spectrum.villager_head": "æ‘æ°‘的头", - "block.spectrum.vindicator_head": "å«é“士的头", - "block.spectrum.wandering_trader_head": "æµæµªå•†äººçš„头", - "block.spectrum.witch_head": "女巫的头", - "block.spectrum.wither_head": "凋零的头", - "block.spectrum.wolf_head": "狼头", - "block.spectrum.zoglin_head": "僵尸疣猪兽的头", - "block.spectrum.zombie_villager_head": "åƒµå°¸æ‘æ°‘的头", - "block.spectrum.zombified_piglin_head": "僵尸猪çµçš„头", - "block.spectrum.axolotl_mob_block": "æ¢å¤é­”ç›’", - "block.spectrum.bat_mob_block": "定ä½é­”ç›’", - "block.spectrum.bee_mob_block": "肥料魔盒", - "block.spectrum.blaze_mob_block": "ç«ç„°é­”ç›’", - "block.spectrum.cat_mob_block": "轻柔魔盒", - "block.spectrum.chicken_mob_block": "漂浮魔盒", - "block.spectrum.cow_mob_block": "祛魔魔盒", - "block.spectrum.creeper_mob_block": "爆炸魔盒", - "block.spectrum.ender_dragon_mob_block": "强力魔盒", - "block.spectrum.enderman_mob_block": "异世魔盒", - "block.spectrum.endermite_mob_block": "超传魔盒", - "block.spectrum.evoker_mob_block": "æ¼é¬¼é­”ç›’", - "block.spectrum.fish_mob_block": "水肺魔盒", - "block.spectrum.fox_mob_block": "急迫魔盒", - "block.spectrum.ghast_mob_block": "诡异魔盒", - "block.spectrum.wolf_mob_block": "忠诚魔盒", - "block.spectrum.glow_squid_mob_block": "å‘光魔盒", - "block.spectrum.goat_mob_block": "击退魔盒", - "block.spectrum.guardian_mob_block": "疲劳魔盒", - "block.spectrum.horse_mob_block": "力é‡é­”ç›’", - "block.spectrum.illusioner_mob_block": "欺骗魔盒", - "block.spectrum.ocelot_mob_block": "夜视魔盒", - "block.spectrum.parrot_mob_block": "伤害叿”¶é­”ç›’", - "block.spectrum.phantom_mob_block": "失眠魔盒", - "block.spectrum.pig_mob_block": "喂食魔盒", - "block.spectrum.piglin_mob_block": "交易魔盒", - "block.spectrum.polar_bear_mob_block": "冰冻魔盒", - "block.spectrum.pufferfish_mob_block": "致幻魔盒", - "block.spectrum.rabbit_mob_block": "跳跃魔盒", - "block.spectrum.sheep_mob_block": "剃毛魔盒", - "block.spectrum.shulker_mob_block": "失é‡é­”ç›’", - "block.spectrum.silverfish_mob_block": "虫蚀魔盒", - "block.spectrum.skeleton_mob_block": "箭矢魔盒", - "block.spectrum.slime_mob_block": "充气魔盒", - "block.spectrum.snow_golem_mob_block": "雪çƒé­”ç›’", - "block.spectrum.spider_mob_block": "剧毒魔盒", - "block.spectrum.squid_mob_block": "致盲魔盒", - "block.spectrum.stray_mob_block": "缓慢魔盒", - "block.spectrum.strider_mob_block": "陿¸©é­”ç›’", - "block.spectrum.turtle_mob_block": "抗击魔盒", - "block.spectrum.witch_mob_block": "虚弱魔盒", - "block.spectrum.wither_mob_block": "æ¯ç­é­”ç›’", - "block.spectrum.wither_skeleton_mob_block": "凋è½é­”ç›’", - "block.spectrum.zombie_mob_block": "饥饿魔盒", - "block.spectrum.small_coal_bud": "å°åž‹ç…¤èн", - "block.spectrum.large_coal_bud": "大型煤芽", - "block.spectrum.coal_cluster": "煤簇", - "block.spectrum.small_copper_bud": "å°åž‹é“œèн", - "block.spectrum.large_copper_bud": "大型铜芽", - "block.spectrum.copper_cluster": "铜簇", - "block.spectrum.small_diamond_bud": "å°åž‹é’»çŸ³èн", - "block.spectrum.large_diamond_bud": "大型钻石芽", - "block.spectrum.diamond_cluster": "钻石簇", - "block.spectrum.small_emerald_bud": "å°åž‹ç»¿å®çŸ³èн", - "block.spectrum.large_emerald_bud": "大型绿å®çŸ³èн", - "block.spectrum.emerald_cluster": "绿å®çŸ³ç°‡", - "block.spectrum.small_glowstone_bud": "å°åž‹è¤çŸ³èн", - "block.spectrum.large_glowstone_bud": "大型è¤çŸ³èн", - "block.spectrum.glowstone_cluster": "è¤çŸ³ç°‡", - "block.spectrum.small_gold_bud": "å°åž‹é‡‘芽", - "block.spectrum.large_gold_bud": "大型金芽", - "block.spectrum.gold_cluster": "金簇", - "block.spectrum.small_iron_bud": "å°åž‹é“芽", - "block.spectrum.large_iron_bud": "大型é“芽", - "block.spectrum.iron_cluster": "é“ç°‡", - "block.spectrum.small_lapis_bud": "å°åž‹é’金石芽", - "block.spectrum.large_lapis_bud": "大型é’金石芽", - "block.spectrum.lapis_cluster": "é’金石簇", - "block.spectrum.small_netherite_bud": "å°åž‹ä¸‹ç•Œåˆé‡‘芽", - "block.spectrum.large_netherite_bud": "大型下界åˆé‡‘芽", - "block.spectrum.netherite_cluster": "下界åˆé‡‘ç°‡", - "block.spectrum.small_prismarine_bud": "å°åž‹æµ·æ™¶çŸ³èн", - "block.spectrum.large_prismarine_bud": "大型海晶石芽", - "block.spectrum.prismarine_cluster": "海晶石簇", - "block.spectrum.small_quartz_bud": "å°åž‹çŸ³è‹±èн", - "block.spectrum.large_quartz_bud": "大型石英芽", - "block.spectrum.quartz_cluster": "石英簇", - "block.spectrum.small_redstone_bud": "å°åž‹çº¢çŸ³èн", - "block.spectrum.large_redstone_bud": "大型红石芽", - "block.spectrum.redstone_cluster": "红石簇", - "block.spectrum.small_certus_quartz_bud": "å°åž‹æ°´æ™¶çŸ³è‹±èн", - "block.spectrum.large_certus_quartz_bud": "大型水晶石英芽", - "block.spectrum.certus_quartz_cluster": "水晶石英簇", - "block.spectrum.small_fluix_bud": "å°åž‹Fluix芽", - "block.spectrum.large_fluix_bud": "大型Fluix芽", - "block.spectrum.fluix_cluster": "Fluixç°‡", - "block.spectrum.small_globette_bud": "å°åž‹æˆˆä¼¯èн", - "block.spectrum.large_globette_bud": "大型戈伯芽", - "block.spectrum.globette_cluster": "戈伯çƒç°‡", - "block.spectrum.small_globette_end_bud": "å°åž‹æœ«åœ°æˆˆä¼¯èн", - "block.spectrum.large_globette_end_bud": "大型末地戈伯芽", - "block.spectrum.globette_end_cluster": "末地戈伯çƒç°‡", - "block.spectrum.small_globette_nether_bud": "å°åž‹ä¸‹ç•Œæˆˆä¼¯èн", - "block.spectrum.large_globette_nether_bud": "大型下界戈伯芽", - "block.spectrum.globette_nether_cluster": "下界戈伯çƒç°‡", - "item.spectrum.pure_emerald": "原生绿å®çŸ³", - "item.spectrum.pure_prismarine": "原生海晶石", - "item.spectrum.pure_coal": "原生煤", - "item.spectrum.pure_redstone": "原生红石", - "item.spectrum.pure_glowstone": "原生è¤çŸ³", - "item.spectrum.pure_lapis": "原生é’金石", - "item.spectrum.pure_copper": "原生铜", - "item.spectrum.pure_quartz": "原生石英", - "item.spectrum.pure_gold": "原生金", - "item.spectrum.pure_diamond": "原生钻石", - "item.spectrum.pure_netherite": "原生下界åˆé‡‘", - "item.spectrum.pure_iron": "原生é“", - "item.spectrum.pure_certus_quartz": "原生水晶石英", - "item.spectrum.pure_fluix": "原生Fluix", - "item.spectrum.pure_globette": "原生戈伯", - "item.spectrum.pure_globette_end": "原生末地戈伯", - "item.spectrum.pure_globette_nether": "原生下界戈伯", - "block.spectrum.mob_block.tooltip": "当按下使用键/踩è¸/投掷物击中时:", - "block.spectrum.bonemealing_mob_block.tooltip": "§7为周围的æ¤ç‰©æ–½è‚¥", - "block.spectrum.echolocating_mob_block.tooltip": "§7高亮显示 %d §7格范围内的生物", - "block.spectrum.entity_summoning_mob_block.tooltip": "§7ç”Ÿæˆ %s", - "block.spectrum.explosion_mob_block.tooltip": "§7引å‘åŠå¾„ %d §7格的爆炸", - "block.spectrum.fall_damage_negating_mob_block.tooltip": "§7æ‘”è½äºŽä¸Šé¢æ—¶å…除所有伤害", - "block.spectrum.fall_damage_negating_mob_block.tooltip2": "§7ä¼šæš‚æ—¶ä¿æŒä¼¤å®³", - "block.spectrum.firestarter_mob_block.tooltip": "§7引起ç«ç„° & èžåŒ–冰å—", - "block.spectrum.freezing_mob_block.tooltip": "§7冻结周围的方å—", - "block.spectrum.insomnia_mob_block.tooltip": "§7导致失眠", - "block.spectrum.knockback_mob_block.tooltip": "§7给予击退", - "block.spectrum.milking_mob_block.tooltip": "§7去除 %d §7ä¸ªèŒƒå›´å†…çš„ç”Ÿç‰©çš„è¯æ°´æ•ˆæžœ", - "block.spectrum.milking_mob_block.tooltip2": "§7åœ¨åŠ¨ç‰©å‘¨å›´éœ€è¦ Â§f桶§7 或 §f碗§7", - "block.spectrum.piglin_trade_mob_block.tooltip": "§7使用 §f金锭§7 和你交易", - "block.spectrum.potion_effect_mob_block.tooltip": "§7给予 %s §7效果", - "block.spectrum.projectile_mob_block.tooltip": "§7å‘å°„ %s", - "block.spectrum.shearing_mob_block.tooltip": "§7为周围实体剪毛", - "block.spectrum.silverfish_inserting_mob_block.tooltip": "§7在方å—表é¢ç”Ÿæˆä¸€åªè ¹è™«", - "block.spectrum.slime_sizing_mob_block.tooltip": "§7æå‡å‘¨å›´å²èŽ±å§†çš„å¤§å°", - "block.spectrum.random_teleporting_mob_block.tooltip": "§7将你传é€åˆ° %d §7æ ¼å†…çš„éšæœºä½ç½®", - "block.spectrum.line_teleporting_mob_block.tooltip": "§7将你传é€åˆ°åŒä¸€ç›´çº¿ä¸Š", - "block.spectrum.line_teleporting_mob_block.tooltip2": "§7%d 格内åŒç§é­”盒的表é¢ä¸Š", - "block.spectrum.feeding_mob_block.tooltip": "§7使用地上的食物喂 %d§7 格内的动物", - "item.spectrum.tooltip.loom_pattern_available": "å¯ä»¥ç”¨äºŽæ——帜图案", - "item.spectrum.exchange_staff": "æ–¹å—æ›¿æ¢æ³•æ–", - "item.spectrum.exchange_staff.tooltip.range": "æ›¿æ¢æ–¹åœ† %s 格的方å—", - "item.spectrum.exchange_staff.tooltip.crouch": "蹲下时åªä¼šäº¤æ¢éœ²åœ¨è¡¨é¢çš„æ–¹å—", - "item.spectrum.exchange_staff.tooltip.target": "替æ¢ä¸º %s", - "item.spectrum.placement_staff": "建造法æ–", - "item.spectrum.placement_staff.tooltip.range": "æé«˜æ–¹åœ† %s 格的方å—", - "item.spectrum.placement_staff.tooltip.crouch": "蹲下时会包å«ä¸åŒç§ç±»çš„æ–¹å—", - "item.spectrum.placement_staff.tooltip.missing_ink": "æ— æ³•è¾¨è®¤çš„è¯æ°´", - "item.spectrum.placement_staff.tooltip.none_in_inventory": "背包中无方å—", - "item.spectrum.light_staff": "光之法æ–", - "item.spectrum.light_staff.tooltip": "§7使用 §eç«èŠ±çŸ³Â§7 æ¥æ”¾ç½®å…‰æº", - "item.spectrum.light_staff.tooltip.ink": "§7使用 §e黄色§7墨水 或者 §e闪光石§7 æ¥æ”¾ç½®å…‰æº", - "item.spectrum.light_staff.tooltip2": "§7å³é”®å…‰æºæ¥è°ƒæ•´å…¶å…‰ç…§å¼ºåº¦", - "item.spectrum.music_disc_spectrum_theme": "音ä¹å”±ç‰‡", - "item.spectrum.music_disc_spectrum_theme.desc": "光谱世界主题曲", - "item.spectrum.music_disc_dimension_theme": "音ä¹å”±ç‰‡", - "item.spectrum.music_disc_dimension_theme.desc": "Deeper Down 主题曲: Radiarc - Irrelevance Fading", - "item.spectrum.invisible_item_frame": "éšå½¢ç‰©å“展示框", - "item.spectrum.invisible_glow_item_frame": "éšå½¢è§å…‰ç‰©å“展示框", - "item.spectrum.ender_bag": "æ‰‹æŒæœ«å½±å¸¦", - "item.spectrum.void_bundle": "无底袋", - "item.spectrum.void_bundle.tooltip.empty": "空", - "item.spectrum.void_bundle.tooltip.count": "%d / %d (%d 组)", - "item.spectrum.void_bundle.tooltip.enter_inventory": "ä½ æ¡èµ·çš„ %s 会被放在这里", - "item.spectrum.void_bundle.tooltip.voiding": "§7其他物å“将被§cç ´å", - "item.spectrum.raw_azurite": "天é’石", - "item.spectrum.sparklestone_gem": "ç«èŠ±çŸ³", - "item.spectrum.refined_azurite": "精炼天é’石", - "item.spectrum.quitoxic_powder": "祛毒粉末", - "item.spectrum.mermaids_gem": "美人鱼å®çŸ³", - "item.spectrum.end_portal_cracker": "末影传é€é—¨ç ´è¯‘器", - "item.spectrum.manual": "七彩世界", - "item.spectrum.manual.landing_text": "$(br)能é‡$(br)$(c_gray)盘根错节, 它们èŒå‘出$()$(br)自然的魔力$(br)$(c_gray) 直到你å‘现$(br)它们是关于什么的.", - "item.spectrum.multitool": "多功能工具", - "item.spectrum.silker_pickaxe": "精准采集é•", - "item.spectrum.fortune_pickaxe": "幸è¿ä¹‹é•", - "item.spectrum.looting_falchion": "抢夺法器", - "item.spectrum.voiding_pickaxe": "清除之é•", - "item.spectrum.resonant_pickaxe": "共鸣之é•", - "item.spectrum.glow_vision_helmet": "夜视眼镜", - "item.spectrum.glow_vision_helmet.tooltip": "§7ç”± §bè§å…‰å¢¨å›Š §7æä¾›èƒ½æº", - "item.spectrum.ender_splice": "末影绑定器", - "item.spectrum.ender_splice.tooltip.unbound": "§7使用它æ¥ç»‘定你的档期ä½ç½®", - "item.spectrum.ender_splice.tooltip.bound_pos": "§7绑定于 %d %d %d §7 在 %s§7. 使用它æ¥ä¼ é€", - "item.spectrum.ender_splice.tooltip.bound_player": "§7绑定于玩家 %s. 使用它æ¥ä¼ é€", - "item.spectrum.ender_splice.wrong_dimension": "此末影绑定器的能é‡ä¸è¶³ä»¥æ”¯æŒè·¨ç»´åº¦ä¼ é€", - "item.spectrum.natures_staff": "自然法æ–", - "item.spectrum.natures_staff.tooltip": "§7使用 §aæ¤ç‰©èƒ½é‡Â§7 æ¥ç§æ¤æ‰€æœ‰ç±»åž‹çš„æ¤ç‰©", - "item.spectrum.natures_staff.tooltip_with_chance": "§7使用 §aæ¤ç‰©èƒ½é‡Â§7 æ¥ç§æ¤æ‰€æœ‰ç±»åž‹çš„æ¤ç‰© (%d%%§7)", - "item.spectrum.pedestal_tier_1_structure_placer": "Içº§ä¸ƒå½©åˆæˆç»“构放置器", - "item.spectrum.pedestal_tier_2_structure_placer": "IIçº§ä¸ƒå½©åˆæˆç»“构放置器", - "item.spectrum.pedestal_tier_3_structure_placer": "IIIçº§ä¸ƒå½©åˆæˆæ”¾ç½®å™¨", - "item.spectrum.fusion_shrine_structure_placer": "èžåˆç¥žé¾›ç»“构放置器", - "item.spectrum.enchanter_structure_placer": "注魔å°ç»“构放置器", - "item.spectrum.spirit_instiller_structure_placer": "çµé­‚çŒæ³¨å°ç»“构放置器", - "item.spectrum.cinderhearth_structure_placer": "Cinderhearth结构放置器", - "item.spectrum.lightning_stone": "风暴之石", - "item.spectrum.scarlet_fragments": "绯红碎片", - "item.spectrum.scarlet_gem": "绯红å®çŸ³", - "item.spectrum.paletur_fragments": "è‹ç»¿ç¢Žç‰‡", - "item.spectrum.paletur_gem": "è‹ç»¿å®çŸ³", - "item.spectrum.glistering_melon_seeds": "é—ªçƒçš„西瓜ç§å­", - "item.spectrum.white_crystal_grace": "Moony Crystal", - "item.spectrum.knowledge_gem": "知识å®çŸ³", - "item.spectrum.knowledge_gem.tooltip.stored_experience": "ç»éªŒè¢«å­˜å‚¨", - "item.spectrum.knowledge_gem.tooltip.use": "按使用键放出ç»éªŒ, 或者按ä½ä½¿ç”¨é”®æ½œè¡Œæ”¾å‡ºç»éªŒ", - "item.spectrum.celestial_pocketwatch": "天体怀表", - "item.spectrum.celestial_pocketwatch.tooltip.working": "给予你时间之控制æƒ", - "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule": "一股强大的力é‡é˜»æ­¢äº†ä½ ä½¿ç”¨å¤©ä½“怀表", - "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time": "看起æ¥ä½ çš„天体怀表于这个维度中失çµäº†", - "item.spectrum.emergency_helmet": "勾魂头盔", - "item.spectrum.emergency_chestplate": "残暴胸甲", - "item.spectrum.emergency_leggings": "çµæ°”护腿", - "item.spectrum.emergency_boots": "山岳女神之é´", - "item.spectrum.emergency_helmet.tooltip": "给予攻击者虚弱和缓慢效果", - "item.spectrum.emergency_chestplate.tooltip": "å—å‡»æ—¶ç»™äºˆä¼¤å®³å¸æ”¶å’Œçž¬é—´æ²»ç–—效果", - "item.spectrum.emergency_leggings.tooltip": "å—击时给予éšèº«å’Œé€Ÿåº¦æ•ˆæžœ", - "item.spectrum.emergency_boots.tooltip": "å—击时给予抗性æå‡å’Œå†ç”Ÿè¯æ°´æ•ˆæžœ", - "item.spectrum.vibrant_cyan_catkin": "充满活力的é’色柔è‘花åº", - "item.spectrum.vibrant_magenta_catkin": "充满活力的å“红色柔è‘花åº", - "item.spectrum.vibrant_yellow_catkin": "充满活力的黄色柔è‘花åº", - "item.spectrum.vibrant_black_catkin": "充满活力的黑色柔è‘花åº", - "item.spectrum.vibrant_white_catkin": "充满活力的白色柔è‘花åº", - "item.spectrum.lucid_cyan_catkin": "鲜活的é’色柔è‘花åº", - "item.spectrum.lucid_magenta_catkin": "鲜活的å“红色柔è‘花åº", - "item.spectrum.lucid_yellow_catkin": "鲜活的黄色柔è‘花åº", - "item.spectrum.lucid_black_catkin": "鲜活的黑色柔è‘花åº", - "item.spectrum.lucid_white_catkin": "鲜活的白色柔è‘花åº", - "item.spectrum.block_flooder": "æ–¹å—填充器", - "item.spectrum.block_flooder.tooltip": "§få¡«å……æ–¹å—间的空隙(æ´žç©´, 峡谷…) ", - "item.spectrum.block_flooder.tooltip2": "§f投掷以使用; åŠå¾„: 10 æ–¹å—", - "item.spectrum.block_flooder.tooltip3": "从你的背包中拿å–适åˆçš„æ–¹å—", - "item.spectrum.block_flooder.tooltip4": "若没有则使用圆石", - "item.spectrum.black_pigment": "黑色颜料", - "item.spectrum.blue_pigment": "è“色颜料", - "item.spectrum.brown_pigment": "棕色颜料", - "item.spectrum.cyan_pigment": "é’色颜料", - "item.spectrum.gray_pigment": "ç°è‰²é¢œæ–™", - "item.spectrum.green_pigment": "绿色颜料", - "item.spectrum.light_blue_pigment": "æ·¡è“色颜料", - "item.spectrum.light_gray_pigment": "æ·¡ç°è‰²é¢œæ–™", - "item.spectrum.lime_pigment": "黄绿色颜料", - "item.spectrum.magenta_pigment": "å“红色颜料", - "item.spectrum.orange_pigment": "橙色颜料", - "item.spectrum.pink_pigment": "粉色颜料", - "item.spectrum.purple_pigment": "紫色颜料", - "item.spectrum.red_pigment": "红色颜料", - "item.spectrum.white_pigment": "白色颜料", - "item.spectrum.yellow_pigment": "黄色颜料", - "item.spectrum.amethyst_powder": "紫水晶粉末", - "item.spectrum.citrine_powder": "黄水晶粉末", - "item.spectrum.topaz_powder": "黄玉粉末", - "item.spectrum.moonstone_powder": "月长石粉末", - "item.spectrum.onyx_powder": "缟玛瑙粉末", - "item.spectrum.bedrock_pickaxe": "基岩é•", - "item.spectrum.bedrock_axe": "基岩斧", - "item.spectrum.bedrock_sword": "基岩剑", - "item.spectrum.bedrock_shovel": "基岩铲", - "item.spectrum.bedrock_hoe": "基岩锄", - "item.spectrum.bedrock_bow": "基岩弓", - "item.spectrum.bedrock_crossbow": "基岩弩", - "item.spectrum.bedrock_fishing_rod": "基岩钓鱼竿", - "item.spectrum.bedrock_shears": "基岩剪刀", - "item.spectrum.bedrock_helmet": "基岩头盔", - "item.spectrum.bedrock_chestplate": "基岩胸甲", - "item.spectrum.bedrock_leggings": "基岩护腿", - "item.spectrum.bedrock_boots": "基岩é´å­", - "item.spectrum.dreamflayer": "Dreamflayer", - "item.spectrum.spawner": "空刷怪笼", - "item.spectrum.spawner.tooltip.unknown_mob": "未知生物", - "item.spectrum.spawner.tooltip.spawn_count": "ç”Ÿæˆæ•°é‡: %d", - "item.spectrum.spawner.tooltip.min_spawn_delay": "最å°ç”Ÿæˆå»¶è¿Ÿ: %d", - "item.spectrum.spawner.tooltip.max_spawn_delay": "最大生æˆå»¶è¿Ÿ: %d", - "item.spectrum.spawner.tooltip.spawn_range": "生æˆèŒƒå›´: %d", - "item.spectrum.spawner.tooltip.required_player_range": "玩家挂机范围: %d", - "recipe.spectrum.spawner.lore.changed_creature": "将刷怪笼生物改为头颅对应的生物", - "recipe.spectrum.spawner.lore.increased_max_nearby_entities": "增大刷怪笼的刷怪生物上é™", - "recipe.spectrum.spawner.lore.increased_required_player_range": "æå‡åˆ·æ€ªç¬¼æ¿€æ´»åŠå¾„", - "recipe.spectrum.spawner.lore.increased_spawn_count": "ç”Ÿæˆæ•°é‡å·²å¢žåŠ ", - "recipe.spectrum.spawner.lore.decreased_spawn_delay": "生æˆå»¶è¿Ÿå·²é™ä½Ž", - "item.spectrum.citrine_shard": "黄水晶碎片", - "item.spectrum.topaz_shard": "黄玉碎片", - "item.spectrum.onyx_shard": "缟玛瑙碎片", - "item.spectrum.moonstone_shard": "月长石碎片", - "item.spectrum.spectral_shard": "化åˆç¢Žç‰‡", - "item.spectrum.vegetal": "æ¤ç‰©èƒ½é‡ç²‰", - "item.spectrum.neolith": "黑曜能é‡ç²‰", - "item.spectrum.bedrock_dust": "基岩粉", - "item.spectrum.midnight_aberration": "åˆå¤œç•¸å˜", - "item.spectrum.midnight_aberration.tooltip.stable": "§o由神秘力é‡èšåˆè€Œæˆ", - "item.spectrum.midnight_chip": "åˆå¤œç¢Žç‰‡", - "item.spectrum.fiery_powder": "燃烧之粉", - "item.spectrum.blizzard_powder": "暴风雪之粉", - "item.spectrum.small_bismuth_bud": "铋片", - "block.spectrum.small_bismuth_bud": "å°åž‹é“‹èн", - "block.spectrum.large_bismuth_bud": "大型铋芽", - "block.spectrum.bismuth_cluster": "é“‹ç°‡", - "block.spectrum.bismuth_block": "é“‹å—", - "item.spectrum.bismuth_crystal": "é“‹æ°´æ™¶", - "block.spectrum.malachite_ore": "孔雀石矿", - "block.spectrum.deepslate_malachite_ore": "深层孔雀石矿", - "block.spectrum.downstone_malachite_ore": "黎明孔雀石矿", - "item.spectrum.raw_malachite": "孔雀石", - "block.spectrum.small_malachite_bud": "å°å­”雀石芽", - "block.spectrum.large_malachite_bud": "大孔雀石芽", - "block.spectrum.malachite_cluster": "孔雀石簇", - "block.spectrum.malachite_block": "粗孔雀石", - "item.spectrum.malachite_crystal": "精炼孔雀石", - "block.spectrum.downstone": "黎明之石", - "item.spectrum.logo_banner_pattern": "旗帜图案", - "item.spectrum.logo_banner_pattern.desc": "颜色ç†è®º", - "item.spectrum.amethyst_shard_banner_pattern": "旗帜图案", - "item.spectrum.amethyst_cluster_banner_pattern": "旗帜图案", - "bannerpp.pattern.spectrum.shimmer.black": "黑色光点", - "bannerpp.pattern.spectrum.shimmer.red": "红色光点", - "bannerpp.pattern.spectrum.shimmer.green": "绿色光点", - "bannerpp.pattern.spectrum.shimmer.brown": "棕色光点", - "bannerpp.pattern.spectrum.shimmer.blue": "è“色光点", - "bannerpp.pattern.spectrum.shimmer.purple": "紫色光点", - "bannerpp.pattern.spectrum.shimmer.cyan": "é’色光点", - "bannerpp.pattern.spectrum.shimmer.light_gray": "æ·¡ç°è‰²å…‰ç‚¹", - "bannerpp.pattern.spectrum.shimmer.gray": "ç°è‰²å…‰ç‚¹", - "bannerpp.pattern.spectrum.shimmer.pink": "粉色光点", - "bannerpp.pattern.spectrum.shimmer.lime": "黄绿色光点", - "bannerpp.pattern.spectrum.shimmer.yellow": "黄色光点", - "bannerpp.pattern.spectrum.shimmer.light_blue": "æ·¡è“色光点", - "bannerpp.pattern.spectrum.shimmer.magenta": "å“红色光点", - "bannerpp.pattern.spectrum.shimmer.orange": "橙色光点", - "bannerpp.pattern.spectrum.shimmer.white": "白色光点", - "bannerpp.pattern.spectrum.palette.black": "黑色艺术", - "bannerpp.pattern.spectrum.palette.red": "红色艺术", - "bannerpp.pattern.spectrum.palette.green": "绿色艺术", - "bannerpp.pattern.spectrum.palette.brown": "棕色艺术", - "bannerpp.pattern.spectrum.palette.blue": "è“色艺术", - "bannerpp.pattern.spectrum.palette.purple": "紫色艺术", - "bannerpp.pattern.spectrum.palette.cyan": "é’色艺术", - "bannerpp.pattern.spectrum.palette.light_gray": "æ·¡ç°è‰²è‰ºæœ¯", - "bannerpp.pattern.spectrum.palette.gray": "ç°è‰²è‰ºæœ¯", - "bannerpp.pattern.spectrum.palette.pink": "粉色艺术", - "bannerpp.pattern.spectrum.palette.lime": "黄绿色艺术", - "bannerpp.pattern.spectrum.palette.yellow": "黄色艺术", - "bannerpp.pattern.spectrum.palette.light_blue": "æ·¡è“色艺术", - "bannerpp.pattern.spectrum.palette.magenta": "å“红色艺术", - "bannerpp.pattern.spectrum.palette.orange": "橙色艺术", - "bannerpp.pattern.spectrum.palette.white": "白色艺术", - "bannerpp.pattern.spectrum.amethyst_cluster.black": "黑色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.red": "红色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.green": "绿色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.brown": "棕色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.blue": "è“色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.purple": "紫色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.cyan": "é’色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.light_gray": "æ·¡ç°è‰²ç´«æ°´æ™¶ç°‡", - "bannerpp.pattern.spectrum.amethyst_cluster.gray": "ç°è‰²ç´«æ°´æ™¶ç°‡", - "bannerpp.pattern.spectrum.amethyst_cluster.pink": "粉色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.lime": "黄绿色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.yellow": "黄色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.light_blue": "æ·¡è“色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.magenta": "å“红色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.orange": "橙色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_cluster.white": "白色紫水晶簇", - "bannerpp.pattern.spectrum.neolith.black": "黑色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.red": "红色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.green": "绿色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.brown": "棕色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.blue": "è“色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.purple": "紫色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.cyan": "é’色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.light_gray": "æ·¡ç°è‰²é»‘耀能é‡", - "bannerpp.pattern.spectrum.neolith.gray": "ç°è‰²é»‘耀能é‡", - "bannerpp.pattern.spectrum.neolith.pink": "粉色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.lime": "黄绿色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.yellow": "黄色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.light_blue": "æ·¡è“色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.magenta": "å“红色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.orange": "橙色黑耀能é‡", - "bannerpp.pattern.spectrum.neolith.white": "白色黑耀能é‡", - "bannerpp.pattern.spectrum.pigment.black": "黑色颜料", - "bannerpp.pattern.spectrum.pigment.red": "红色颜料", - "bannerpp.pattern.spectrum.pigment.green": "绿色颜料", - "bannerpp.pattern.spectrum.pigment.brown": "棕色颜料", - "bannerpp.pattern.spectrum.pigment.blue": "è“色颜料", - "bannerpp.pattern.spectrum.pigment.purple": "紫色颜料", - "bannerpp.pattern.spectrum.pigment.cyan": "é’色颜料", - "bannerpp.pattern.spectrum.pigment.light_gray": "æ·¡ç°è‰²é¢œæ–™", - "bannerpp.pattern.spectrum.pigment.gray": "ç°è‰²é¢œæ–™", - "bannerpp.pattern.spectrum.pigment.pink": "粉色颜料", - "bannerpp.pattern.spectrum.pigment.lime": "黄绿色颜料", - "bannerpp.pattern.spectrum.pigment.yellow": "黄色颜料", - "bannerpp.pattern.spectrum.pigment.light_blue": "æ·¡è“色颜料", - "bannerpp.pattern.spectrum.pigment.magenta": "å“红色颜料", - "bannerpp.pattern.spectrum.pigment.orange": "橙色颜料", - "bannerpp.pattern.spectrum.pigment.white": "白色颜料", - "bannerpp.pattern.spectrum.knowledge_gem.black": "黑色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.red": "红色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.green": "绿色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.brown": "棕色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.blue": "è“色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.purple": "紫色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.cyan": "é’色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.light_gray": "æ·¡ç°è‰²çŸ¥è¯†å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.gray": "ç°è‰²çŸ¥è¯†å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.pink": "粉色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.lime": "黄绿色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.yellow": "黄色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.light_blue": "æ·¡è“色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.magenta": "å“红色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.orange": "橙色知识å®çŸ³", - "bannerpp.pattern.spectrum.knowledge_gem.white": "白色知识å®çŸ³", - "bannerpp.pattern.spectrum.vegetal.black": "黑色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.red": "红色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.green": "绿色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.brown": "棕色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.blue": "è“色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.purple": "紫色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.cyan": "é’色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.light_gray": "æ·¡ç°è‰²æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.gray": "ç°è‰²æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.pink": "粉色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.lime": "黄绿色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.yellow": "黄色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.light_blue": "æ·¡è“色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.magenta": "å“红色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.orange": "橙色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.vegetal.white": "白色æ¤ç‰©èƒ½é‡", - "bannerpp.pattern.spectrum.logo.black": "黑色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.red": "红色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.green": "绿色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.brown": "棕色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.blue": "è“色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.purple": "紫色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.cyan": "é’色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.light_gray": "æ·¡ç°è‰²é¢œè‰²ç†è®º", - "bannerpp.pattern.spectrum.logo.gray": "ç°è‰²é¢œè‰²ç†è®º", - "bannerpp.pattern.spectrum.logo.pink": "粉色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.lime": "黄绿色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.yellow": "黄色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.light_blue": "æ·¡è“色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.magenta": "å“红色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.orange": "橙色颜色ç†è®º", - "bannerpp.pattern.spectrum.logo.white": "白色颜色ç†è®º", - "bannerpp.pattern.spectrum.four_leaf_clover.black": "黑色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.red": "红色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.green": "绿色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.brown": "棕色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.blue": "è“色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.purple": "紫色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.cyan": "é’色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.light_gray": "æ·¡ç°è‰²å››å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.gray": "ç°è‰²å››å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.pink": "粉色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.lime": "黄绿色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.yellow": "黄色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.light_blue": "æ·¡è“色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.magenta": "å“红色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.orange": "橙色四å¶è‰", - "bannerpp.pattern.spectrum.four_leaf_clover.white": "白色四å¶è‰", - "bannerpp.pattern.spectrum.multitool.black": "黑色多功能工具", - "bannerpp.pattern.spectrum.multitool.red": "红色多功能工具", - "bannerpp.pattern.spectrum.multitool.green": "绿色多功能工具", - "bannerpp.pattern.spectrum.multitool.brown": "棕色多功能工具", - "bannerpp.pattern.spectrum.multitool.blue": "è“色多功能工具", - "bannerpp.pattern.spectrum.multitool.purple": "紫色多功能工具", - "bannerpp.pattern.spectrum.multitool.cyan": "é’色多功能工具", - "bannerpp.pattern.spectrum.multitool.light_gray": "æ·¡ç°è‰²å¤šåŠŸèƒ½å·¥å…·", - "bannerpp.pattern.spectrum.multitool.gray": "ç°è‰²å¤šåŠŸèƒ½å·¥å…·", - "bannerpp.pattern.spectrum.multitool.pink": "粉色多功能工具", - "bannerpp.pattern.spectrum.multitool.lime": "黄绿色多功能工具", - "bannerpp.pattern.spectrum.multitool.yellow": "黄色多功能工具", - "bannerpp.pattern.spectrum.multitool.light_blue": "æ·¡è“色多功能工具", - "bannerpp.pattern.spectrum.multitool.magenta": "å“红色多功能工具", - "bannerpp.pattern.spectrum.multitool.orange": "橙色多功能工具", - "bannerpp.pattern.spectrum.multitool.white": "白色多功能工具", - "bannerpp.pattern.spectrum.manual.black": "黑色七彩世界", - "bannerpp.pattern.spectrum.manual.red": "红色七彩世界", - "bannerpp.pattern.spectrum.manual.green": "绿色七彩世界", - "bannerpp.pattern.spectrum.manual.brown": "棕色七彩世界", - "bannerpp.pattern.spectrum.manual.blue": "è“色七彩世界", - "bannerpp.pattern.spectrum.manual.purple": "紫色七彩世界", - "bannerpp.pattern.spectrum.manual.cyan": "é’色七彩世界", - "bannerpp.pattern.spectrum.manual.light_gray": "æ·¡ç°è‰²ä¸ƒå½©ä¸–界", - "bannerpp.pattern.spectrum.manual.gray": "ç°è‰²ä¸ƒå½©ä¸–界", - "bannerpp.pattern.spectrum.manual.pink": "粉色七彩世界", - "bannerpp.pattern.spectrum.manual.lime": "黄绿色七彩世界", - "bannerpp.pattern.spectrum.manual.yellow": "黄色七彩世界", - "bannerpp.pattern.spectrum.manual.light_blue": "æ·¡è“色七彩世界", - "bannerpp.pattern.spectrum.manual.magenta": "å“红色七彩世界", - "bannerpp.pattern.spectrum.manual.orange": "橙色七彩世界", - "bannerpp.pattern.spectrum.manual.white": "白色七彩世界", - "bannerpp.pattern.spectrum.crafting_tablet.black": "é»‘è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.red": "çº¢è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.green": "ç»¿è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.brown": "æ£•è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.blue": "è“è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.purple": "ç´«è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.cyan": "é’è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.light_gray": "æ·¡ç°è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.gray": "ç°è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.pink": "ç²‰è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.lime": "é»„ç»¿è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.yellow": "é»„è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.light_blue": "æ·¡è“è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.magenta": "å“çº¢è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.orange": "æ©™è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.crafting_tablet.white": "ç™½è‰²åˆæˆæ¨¡æ¿", - "bannerpp.pattern.spectrum.ink_flask.black": "黑色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.red": "红色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.green": "绿色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.brown": "棕色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.blue": "è“色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.purple": "紫色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.cyan": "é’色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.light_gray": "æ·¡ç°è‰²å¢¨æ°´ç“¶", - "bannerpp.pattern.spectrum.ink_flask.gray": "ç°è‰²å¢¨æ°´ç“¶", - "bannerpp.pattern.spectrum.ink_flask.pink": "粉色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.lime": "黄绿色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.yellow": "黄色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.light_blue": "æ·¡è“色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.magenta": "å“红色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.orange": "橙色墨水瓶", - "bannerpp.pattern.spectrum.ink_flask.white": "白色墨水瓶", - "bannerpp.pattern.spectrum.amethyst_shard.black": "黑色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.red": "红色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.green": "绿色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.brown": "棕色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.blue": "è“色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.purple": "紫色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.cyan": "é’色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.light_gray": "æ·¡ç°è‰²ç´«æ°´æ™¶ç°‡", - "bannerpp.pattern.spectrum.amethyst_shard.gray": "ç°è‰²ç´«æ°´æ™¶ç°‡", - "bannerpp.pattern.spectrum.amethyst_shard.pink": "粉色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.lime": "黄绿色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.yellow": "黄色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.light_blue": "æ·¡è“色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.magenta": "å“红色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.orange": "橙色紫水晶簇", - "bannerpp.pattern.spectrum.amethyst_shard.white": "白色紫水晶簇", - "bannerpp.pattern.spectrum.raw_azurite.black": "黑色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.red": "红色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.green": "绿色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.brown": "棕色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.blue": "è“色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.purple": "紫色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.cyan": "é’色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.light_gray": "æ·¡ç°è‰²å¤©é’石", - "bannerpp.pattern.spectrum.raw_azurite.gray": "ç°è‰²å¤©é’石", - "bannerpp.pattern.spectrum.raw_azurite.pink": "粉色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.lime": "黄绿色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.yellow": "黄色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.light_blue": "æ·¡è“色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.magenta": "å“红色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.orange": "橙色天é’石", - "bannerpp.pattern.spectrum.raw_azurite.white": "白色天é’石", - "bannerpp.pattern.spectrum.bedrock_dust.black": "黑色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.red": "红色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.green": "绿色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.brown": "棕色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.blue": "è“色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.purple": "紫色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.cyan": "é’色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.light_gray": "æ·¡ç°è‰²åŸºå²©ç²‰", - "bannerpp.pattern.spectrum.bedrock_dust.gray": "ç°è‰²åŸºå²©ç²‰", - "bannerpp.pattern.spectrum.bedrock_dust.pink": "粉色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.lime": "黄绿色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.yellow": "黄色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.light_blue": "æ·¡è“色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.magenta": "å“红色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.orange": "橙色基岩粉", - "bannerpp.pattern.spectrum.bedrock_dust.white": "白色基岩粉", - "bannerpp.pattern.spectrum.shimmerstone.black": "黑色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.red": "红色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.green": "绿色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.brown": "棕色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.blue": "è“色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.purple": "紫色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.cyan": "é’色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.light_gray": "æ·¡ç°è‰²é—ªå…‰çŸ³", - "bannerpp.pattern.spectrum.shimmerstone.gray": "ç°è‰²é—ªå…‰çŸ³", - "bannerpp.pattern.spectrum.shimmerstone.pink": "粉色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.lime": "黄绿色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.yellow": "黄色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.light_blue": "æ·¡è“色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.magenta": "å“红色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.orange": "橙色闪光石", - "bannerpp.pattern.spectrum.shimmerstone.white": "白色闪光石", - "bannerpp.pattern.spectrum.jade_vine.black": "黑色玉藤", - "bannerpp.pattern.spectrum.jade_vine.red": "红色玉藤", - "bannerpp.pattern.spectrum.jade_vine.green": "绿色玉藤", - "bannerpp.pattern.spectrum.jade_vine.brown": "棕色玉藤", - "bannerpp.pattern.spectrum.jade_vine.blue": "è“色玉藤", - "bannerpp.pattern.spectrum.jade_vine.purple": "紫色玉藤", - "bannerpp.pattern.spectrum.jade_vine.cyan": "é’色玉藤", - "bannerpp.pattern.spectrum.jade_vine.light_gray": "æ·¡ç°è‰²çŽ‰è—¤", - "bannerpp.pattern.spectrum.jade_vine.gray": "ç°è‰²çŽ‰è—¤", - "bannerpp.pattern.spectrum.jade_vine.pink": "粉色玉藤", - "bannerpp.pattern.spectrum.jade_vine.lime": "黄绿色玉藤", - "bannerpp.pattern.spectrum.jade_vine.yellow": "黄色玉藤", - "bannerpp.pattern.spectrum.jade_vine.light_blue": "æ·¡è“色玉藤", - "bannerpp.pattern.spectrum.jade_vine.magenta": "å“红色玉藤", - "bannerpp.pattern.spectrum.jade_vine.orange": "橙色玉藤", - "bannerpp.pattern.spectrum.jade_vine.white": "白色玉藤", - "trinkets.slot.chest.pin": "别针", - "trinkets.slot.head.crown": "王冠", - "trinkets.slot.legs.pigment_palette": "调色æ¿", - "item.spectrum.fanciful_stone_ring": "幻想石戒指", - "item.spectrum.fanciful_belt": "幻想腰带", - "item.spectrum.fanciful_pendant": "幻想åŠå ", - "item.spectrum.fanciful_circlet": "幻想å‘ç®", - "item.spectrum.fanciful_gloves": "幻想手套", - "item.spectrum.jeopardant": "孤勇戒指", - "item.spectrum.jeopardant.tooltip.damage_zero": "§7ä½Žè¡€é‡æ—¶å¢žåР伤害 (当å‰ä¸º §80 %%§7)", - "item.spectrum.jeopardant.tooltip.damage": "§7ä½Žè¡€é‡æ—¶å¢žåР伤害 (当å‰å€¼ §a+%d %%§7)", - "item.spectrum.seven_league_boots": "飞跃é´å­", - "item.spectrum.gleaming_pin": "闪耀别针", - "item.spectrum.gleaming_pin.tooltip": "§7å—击时高亮显示周围所有怪物", - "item.spectrum.totem_pendant": "图腾åŠå ", - "item.spectrum.totem_pendant.tooltip": "§7防止玩家死亡(一次性)", - "item.spectrum.take_off_belt": "蓄能腰带", - "item.spectrum.take_off_belt.tooltip": "潜行æ¥ä¸ºé«˜è·³å……能", - "item.spectrum.azure_dike_belt": "蔚è“防御腰带", - "item.spectrum.azure_dike_belt.tooltip": "§7åœ¨æ¯æ¬¡å—å‡»åŽæç¤º §9蔚è“防御值§7", - "item.spectrum.azure_dike_ring": "蔚è“防御戒指", - "item.spectrum.azure_dike_ring.tooltip": "§7略微æå‡å—å‡»åŽ Â§9蔚è“防御值§7 回å¤é€Ÿåº¦", - "item.spectrum.shieldgrasp_amulet": "ç›¾ç‰ŒæŠ“å–æŠ¤èº«ç¬¦(暂译)", - "item.spectrum.azure_dike_provider.tooltip": "§7给予 §a%d§7 §9蔚è“防御值", - "item.spectrum.total_capped_simple_pigment_energy_storage.tooltip": "§7总共å¯ä»¥å­˜å‚¨æœ€å¤š %d§7 的墨水", - "item.spectrum.pigment_palette": "调色æ¿", - "item.spectrum.pigment_palette.tooltip": "§7以纯净魔法形å¼å­˜å‚¨ §2染§3æ–™", - "item.spectrum.artists_palette": "艺术家调色æ¿", - "item.spectrum.artists_palette.tooltip": "§7总共å¯ä»¥å­˜å‚¨æœ€å¤š %d§7 的墨水", - "item.spectrum.artists_palette.tooltip.mix_on_demand": "§7æŒ‰éœ€æ··åˆæ°”体类型墨水", - "item.spectrum.ink_flask": "墨水瓶", - "item.spectrum.ink_flask.tooltip": "§7总共å¯ä»¥å­˜å‚¨æœ€å¤š %d§7 的墨水", - "item.spectrum.ink_assortment": "墨水混åˆå™¨", - "item.spectrum.ink_assortment.tooltip": "§7æ¯ç§å¢¨æ°´å¯ä»¥å­˜å‚¨ %d§7", - "item.spectrum.creative_ink_assortment": "创造模å¼å¢¨æ°´æ··åˆå™¨", - "item.spectrum.creative_ink_assortment.tooltip": "§7无尽的墨水之井", - "block.spectrum.color_picker": "颜色选å–器", - "block.spectrum.color_picker.tooltip": "å°† §2颜§3料§7 转å˜ä¸ºå¢¨æ°´", - "block.spectrum.inkwell": "墨水瓶", - "block.spectrum.inkwell.tooltip": "放置于 Gemstone Farmer ä¸Šæ¥æ‹¿å–墨水", - "block.spectrum.ink_duct": "墨管", - "block.spectrum.ink_duct.tooltip": "将墨水划为直线", - "block.spectrum.crystal_apothecary": "水晶收集器", - "block.spectrum.crystal_apothecary.tooltip": "å°†å…¶æ”¾ç½®äºŽæ™¶æ´žä¸­æ¥æ”¶é›†å®çŸ³ç¢Žç‰‡", - "item.spectrum.neat_ring": "æ•´æ´çš„æˆ’指", - "item.spectrum.neat_ring.tooltip": "§7确实很§oæ•´æ´", - "item.spectrum.lesser_potion_pendant": "ä½Žçº§è¯æ°´åŠå ", - "item.spectrum.greater_potion_pendant": "é«˜çº§è¯æ°´åŠå ", - "item.spectrum.potion_pendant.tooltip_not_full_one": "§7在§fè¯æ°´å·¥ä½œç«™Â§7中填充了一个效果", - "item.spectrum.potion_pendant.tooltip_not_full_count": "§7在§fè¯æ°´å·¥ä½œç«™Â§7中填充了 §f%d§7 效果", - "item.spectrum.potion_pendant.tooltip_max_level": "§7支æŒçš„è¯æ°´æ•ˆæžœä¸Žç­‰çº§æœ‰å…³ ", - "item.spectrum.radiance_pin": "è¾å°„别针", - "item.spectrum.radiance_pin.tooltip": "§7在黑暗中自动放置临时光æº", - "item.spectrum.ashen_circlet": "è‹ç™½å‘ç®", - "item.spectrum.ashen_circlet.tooltip": "§7ä¿æŠ¤ä½ å…于ç«ç„°ä¼¤å®³å¹¶åœ¨å²©", - "item.spectrum.ashen_circlet.tooltip2": "§7浆中获得更好的视野和速度", - "item.spectrum.ashen_circlet.tooltip.cooldown_full": "§2准备好叿”¶å·¨å¤§çƒ­é‡", - "item.spectrum.ashen_circlet.tooltip.cooldown_seconds": "%d§7 ç§’è·é‡æ–°å……能", - "item.spectrum.tidal_circlet": "啜泣å‘ç®", - "item.spectrum.tidal_circlet.tooltip": "§7从水中过滤出氧气并大幅", - "item.spectrum.tidal_circlet.tooltip2": "§7æå‡çŽ©å®¶çš„æ°´ä¸‹æœºåŠ¨æ€§", - "item.spectrum.tidal_circlet.tooltip3": "§7治愈你周围的 §f美西螈", - "item.spectrum.puff_circlet": "泡芙å‘ç®", - "item.spectrum.puff_circlet.tooltip": "§7使用 §9蔚è“防御值§7 æ¥ä¿æŠ¤ä½ ", - "item.spectrum.puff_circlet.tooltip2": "§7å…于投掷物和衰è½ä¼¤å®³", - "item.spectrum.whispy_circlet": "舒缓å‘ç®", - "item.spectrum.whispy_circlet.tooltip": "§7防止幻翼生æˆ", - "item.spectrum.whispy_circlet.tooltip2": "§7é™ä½Žè´Ÿé¢æ•ˆæžœçš„æŒç»­æ—¶é—´", - "item.spectrum.whispy_circlet.tooltip3": "§7ç¡è§‰å›žè¡€", - "item.spectrum.heartsingers_reward": "心之歌手的奖励", - "item.spectrum.heartsingers_reward.tooltip": "æç¤ºæœ€å¤§ç”Ÿå‘½å€¼", - "item.spectrum.gloves_of_dawns_grasp": "黎明之æ¡çš„æ‰‹å¥—", - "item.spectrum.gloves_of_dawns_grasp.tooltip": "æå‡ä½ çš„æ”»å‡»è·ç¦»", - "item.spectrum.crafting_tablet": "åˆæˆæ¨¡æ¿", - "item.spectrum.crafting_tablet.tooltip.no_recipe": "å°†ç‰©å“æ·»åŠ åˆ°åˆæˆæ¿ä¸­ä»¥è®¾ç½®é…æ–¹", - "item.spectrum.crafting_tablet.tooltip.crafting_recipe": "æŒ‰ä¸‹ä½¿ç”¨é”®åˆæˆ", - "item.spectrum.crafting_tablet.tooltip.shift_to_view_gui": "æ½œè¡Œå¹¶æŒ‰ä¸‹ä½¿ç”¨é”®æ¥æ‰“开设置界é¢", - "item.spectrum.crafting_tablet.tooltip.pedestal_recipe": "äºŽä¸ƒå½©åŸºåº§ä¸­ä½¿ç”¨ä»¥è‡ªåŠ¨åˆæˆ", - "item.spectrum.crafting_tablet.tooltip.recipe": "%d %s", - "item.spectrum.shooting_star": "æµæ˜Ÿ", - "item.spectrum.stardust": "星尘", - "item.spectrum.hibernating_jade_vine_seeds": "冬眠的玉藤树ç§å­", - "item.spectrum.hibernating_jade_vine_seeds.tooltip": "有些... 死气沉沉?", - "item.spectrum.germinated_jade_vine_seeds": "å‘芽的玉藤树ç§å­", - "item.spectrum.germinated_jade_vine_seeds.tooltip": "§7在木栅æ ä¸Šç”Ÿé•¿", - "item.spectrum.germinated_jade_vine_seeds.tooltip2": "§7åªåœ¨ §f月光 §7下生长", - "item.spectrum.germinated_jade_vine_seeds.tooltip3": "§eâš  暴露在阳光下会使其枯èŽ", - "item.spectrum.jade_vine_petals": "玉藤花瓣", - "item.spectrum.moonstruck_nectar": "追月花蜜", - "item.spectrum.moonstruck_nectar.tooltip": "它的修å¤èƒ½åŠ›ä½¿å…¶èƒ½ä¿®å¤ä»»ä½•æŸå的工具", - "item.spectrum.moonstruck_nectar.tooltip2": "饮用åŽèŽ·å¾—çŸ­æ—¶é—´çš„ç”Ÿå‘½æ¢å¤æ•ˆæžœ", - "item.spectrum.restoration_tea": "æ¢å¤ä¹‹èŒ¶", - "item.spectrum.restoration_tea.tooltip": "§7ç¥›é™¤æ‰€æœ‰è´Ÿé¢æ•ˆæžœå¹¶", - "item.spectrum.restoration_tea.tooltip2": "§7使你暂时对它们å…ç–«", - "item.spectrum.restoration_tea.tooltip_milk": "å«å¥¶", - "item.spectrum.jade_jelly": "玉藤果冻", - "item.spectrum.jade_jelly.tooltip": "è¥å…»ä¸Žé£Žå‘³ä¿±ä½³", - "item.spectrum.crescent_clock": "月之时钟", - "item.spectrum.gilded_book": "éŽé‡‘之书", - "item.spectrum.gilded_book.tooltip.enchantability": "附魔能é‡", - "item.spectrum.gilded_book.tooltip.copy_enchantments": "在注魔å°ä¸­ä»Žå…¶ä»–", - "item.spectrum.gilded_book.tooltip.copy_enchantments2": "物å“中æå–附魔", - "item.spectrum.bottle_of_fading": "消é€å¾®ç”Ÿç‰©ä¹‹ç“¶", - "item.spectrum.bottle_of_fading.tooltip": "§2滑溜溜的!", - "item.spectrum.bottle_of_failing": "侵蚀微生物之瓶", - "item.spectrum.bottle_of_failing.tooltip": "§eâš  饥饿", - "item.spectrum.bottle_of_ruin": "æŸæ¯å¾®ç”Ÿç‰©ä¹‹ç“¶", - "item.spectrum.bottle_of_ruin.tooltip": "§4âš  ä½ å¤§æ¦‚ä¼šåŽæ‚”这样åšçš„", - "item.spectrum.bottle_of_terror": "ææ€–微生物之瓶", - "item.spectrum.bottle_of_terror.tooltip": "§4âš  我希望你明白自己在干什么", - "item.spectrum.bottle_of_decay_away": "清ç†å¾®ç”Ÿç‰©ä¹‹ç“¶", - "item.spectrum.bottle_of_decay_away.tooltip": "§2æ€ç­99%的自我å¤åˆ¶å¾®ç”Ÿç‰©", - "block.spectrum.fading": "消é€å¾®ç”Ÿç‰©", - "block.spectrum.failing": "侵蚀微生物", - "block.spectrum.ruin": "æŸæ¯å¾®ç”Ÿç‰©", - "block.spectrum.terror": "ææ€–微生物", - "block.spectrum.decay_away": "清ç†å¾®ç”Ÿç‰©", - "block.spectrum.particle_spawner": "ç²’å­ç”Ÿæˆå™¨", - "block.spectrum.creative_particle_spawner": "创造模å¼ç²’å­ç”Ÿæˆå™¨", - "block.spectrum.creative_particle_spawner.tooltip": "无法破å - ä¸éœ€è¦çº¢çŸ³", - "block.spectrum.cracked_end_portal_frame": "破解的末地传é€é—¨", - "advancements.spectrum.break_decayed_bedrock.title": "凿穿地壳", - "advancements.spectrum.break_decayed_bedrock.description": "使用下界åˆé‡‘é•ç ´å一个基岩", - "advancements.spectrum.break_budding_block_with_resonance_tool.title": "å‹è°Šçš„èŒèн", - "advancements.spectrum.break_budding_block_with_resonance_tool.description": "使用带有共振附魔的工具破åå®çŸ³èн", - "advancements.spectrum.break_infested_block_with_resonance_tool.title": "è€æœ‹å‹, 今天ä¸è¡Œ", - "advancements.spectrum.break_infested_block_with_resonance_tool.description": "使用带有共振附魔的工具破å被虫蚀的方å—", - "advancements.spectrum.break_spawner_with_resonance_tool.title": "内有魔鬼", - "advancements.spectrum.break_spawner_with_resonance_tool.description": "使用带有共振附魔的工具破å刷怪笼", - "advancements.spectrum.build_advanced_pedestal_structure.title": "建造神殿!", - "advancements.spectrum.build_advanced_pedestal_structure.description": "建造å‡çº§çš„七彩基座结构", - "advancements.spectrum.build_basic_pedestal_structure.title": "æ¼æ–—魔法", - "advancements.spectrum.build_basic_pedestal_structure.description": "为了完全驾驭å‡çº§åŽçš„七彩基座, 你需è¦å»ºé€ æ¼æ–—结构æ¥å°†èƒ½é‡ä»Žå®çŸ³ä¼ å¯¼åˆ°ä¸ƒå½©åŸºåº§ä¸Š", - "advancements.spectrum.build_complex_pedestal_structure.title": "夿‚七彩基座", - "advancements.spectrum.build_complex_pedestal_structure.description": "冿¬¡å‡çº§ä¸ƒå½©åŸºåº§ä»¥å®Œå…¨æŽŒæŽ§å…¶é­”力U", - "advancements.spectrum.carry_too_many_heavy_gravity_blocks.title": "è¶…é‡? 我们忽略了这一点", - "advancements.spectrum.carry_too_many_heavy_gravity_blocks.description": "过多的绯红物å“使你无法跳跃", - "advancements.spectrum.carry_too_many_low_gravity_blocks.title": "无人预料到这一点", - "advancements.spectrum.carry_too_many_low_gravity_blocks.description": "过多的è‹ç»¿ç‰©å“使你飞了起æ¥", - "advancements.spectrum.catch_shooting_star.title": "摘星星", - "advancements.spectrum.catch_shooting_star.description": "æ•æ‰ä¸€åˆ»æµæ˜Ÿ", - "advancements.spectrum.collect_all_basic_pigments.title": "我全都è¦", - "advancements.spectrum.collect_all_basic_pigments.description": "集é½12ç§æŸ“æ–™", - "advancements.spectrum.collect_all_basic_pigments_besides_brown.title": "诡异棕色", - "advancements.spectrum.collect_all_basic_pigments_besides_brown.description": "æ··åˆé¢œè‰²çœ‹ä¸ŠåŽ»å¾ˆç®€å•. 但是棕色破å了你的好兴致. 你的调色æ¿ä¸èƒ½å†ç”¨äº†", - "advancements.spectrum.collect_all_basic_shards.title": "到底有多少?", - "advancements.spectrum.collect_all_basic_shards.description": "收集所有自然生æˆçš„å®çŸ³", - "advancements.spectrum.collect_azurite.title": "看我å‘现了什么? è“色!", - "advancements.spectrum.collect_azurite.description": "收集到天é’石. 在使用å‰å¿…须进行精炼", - "advancements.spectrum.collect_neolith.title": "无形之物", - "advancements.spectrum.collect_neolith.description": "获得黑曜能é‡ç²‰ - æ­å–œ!", - "advancements.spectrum.collect_four_leaf_clover.title": "å万分之一", - "advancements.spectrum.collect_four_leaf_clover.description": "找到一个四å¶è‰", - "advancements.spectrum.collect_gemstone_powder.title": "粉碎", - "advancements.spectrum.collect_gemstone_powder.description": "ä¸ƒå½©åŸºåº§ä¸­åˆæˆéœ€è¦å®çŸ³ç²‰æœ«. 粉碎物å“çš„æœ€ç®€å•æ–¹å¼æ˜¯ä»€ä¹ˆ?", - "advancements.spectrum.collect_grayscale_pigments.title": "ç°è‰²æœ‰å››ç§è‰²è°ƒ", - "advancements.spectrum.collect_grayscale_pigments.description": "通过收集四ç§è‰²è°ƒçš„ç°è‰²é¢œæ–™æ¥å……实你的颜料收è—", - "advancements.spectrum.collect_lightning_stone.title": "天打雷劈", - "advancements.spectrum.collect_lightning_stone.description": "å‘çŽ°é£Žæš´ä¹‹çŸ³çš„æ¥æº", - "advancements.spectrum.collect_mermaids_gem.title": "海洋深处", - "advancements.spectrum.collect_mermaids_gem.description": "收集到美人鱼å®çŸ³", - "advancements.spectrum.collect_moonstone_shard.title": "最耀眼的白色", - "advancements.spectrum.collect_moonstone_shard.description": "å‘现一个月长石晶洞", - "advancements.spectrum.collect_paletur.title": "袖手æ—è§‚", - "advancements.spectrum.collect_paletur.description": "收集到è‹ç»¿ä¹‹çŸ³", - "advancements.spectrum.collect_pigment.title": "收集纯净的颜料", - "advancements.spectrum.collect_pigment.description": "ç ´åæŸ“色树的å¶å­æ¥èŽ·å¾—ä½ æ¸´æ±‚çš„çº¯å‡€é¢œæ–™. åªæœ‰ä½ äº²è‡ªç ´åæ ‘å¶, 它们æ‰ä¼šé‡Šæ”¾å‡ºå…¶ç贵的颜料", - "advancements.spectrum.collect_quitoxic_reeds.title": "淹没", - "advancements.spectrum.collect_quitoxic_reeds.description": "å‘现祛毒甘蔗", - "advancements.spectrum.craft_resonant_pickaxe.title": "震动", - "advancements.spectrum.craft_resonant_pickaxe.description": "制造共振é•", - "advancements.spectrum.collect_resonant_lily.title": "éš¾ä»¥æ‰æ‘¸ä¹‹èб", - "advancements.spectrum.collect_resonant_lily.description": "采摘一朵共振百åˆèб", - "advancements.spectrum.collect_scarlet.title": "沉é‡çš„è´Ÿè·", - "advancements.spectrum.collect_scarlet.description": "于下界之中找回绯红之力", - "advancements.spectrum.collect_shooting_star.title": "星空", - "advancements.spectrum.collect_shooting_star.description": "å¯»æ‰¾æµæ˜Ÿçš„æ®‹ç•™ç‰©", - "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.title": "休æ¯ä¸€ä¸‹", - "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.description": "在晶洞的中心放置水晶收集器æ¥è‡ªåŠ¨æ”¶é›†é•¿å¤§çš„æ°´æ™¶ç°‡", - "advancements.spectrum.collect_sparklestone.title": "这竟然是新的", - "advancements.spectrum.collect_sparklestone.description": "ä½ ä»Žæ¥æ²¡æ³¨æ„过这ç§çŸ¿çŸ³...奇怪", - "advancements.spectrum.collect_vegetal.title": "有机物", - "advancements.spectrum.collect_vegetal.description": "喂它, ç„¶åŽå和放宽", - "advancements.spectrum.craft_bottle_of_fading.title": "ä½ ä¸åº”该这样的", - "advancements.spectrum.craft_bottle_of_fading.description": "是时候用你的新魔法能力创造生命了! è¿™æˆ–è®¸æ›´åƒæ˜¯...微生物. 它既虚弱åˆç¼“æ…¢... 它们以什么为食?", - "advancements.spectrum.craft_bottle_of_failing.title": "这样ä¸å¯ä»¥!", - "advancements.spectrum.craft_bottle_of_failing.description": "你的第一个实验看起æ¥å¾ˆæˆåŠŸ. 但是还有更多...", - "advancements.spectrum.craft_bottle_of_ruin.title": "永远ä¸åº”该这样!", - "advancements.spectrum.craft_bottle_of_ruin.description": "看起æ¥åŽé¢è¿˜æœ‰æ›´å¤šå®žéªŒ. é€šè¿‡å‘æ°´æ™¶æ³¨å…¥è™šç©ºåŠ›é‡åˆ›é€ å‡ºç ´å世界的微生物", - "advancements.spectrum.craft_colored_pedestal.title": "CMY å¼€å¯", - "advancements.spectrum.craft_colored_pedestal.description": "使用所有你收集到的å®çŸ³å‡çº§ä½ çš„七彩基座", - "advancements.spectrum.craft_colored_sapling.title": "周围都是熟悉的é¢å­”", - "advancements.spectrum.craft_colored_sapling.description": "ä½¿ç”¨ä½ çš„é­”æ³•èƒ½åŠ›åˆæˆæŸ“色树苗", - "advancements.spectrum.craft_moonstone_pedestal.title": "炽热之光", - "advancements.spectrum.craft_moonstone_pedestal.description": "ä½¿ç”¨æœˆé•¿çŸ³å†æ¬¡å‡çº§ä½ çš„七彩基座", - "advancements.spectrum.craft_onyx_pedestal.title": "冿¥ä¸€æ¬¡ä¹Ÿæ²¡ä»€ä¹ˆå处?", - "advancements.spectrum.craft_onyx_pedestal.description": "ä½¿ç”¨ç¼ŸçŽ›ç‘™å†æ¬¡å‡çº§ä½ çš„七彩基座", - "advancements.spectrum.craft_something_brown.title": "彩虹的å¦ä¸€é¢", - "advancements.spectrum.craft_something_brown.description": "ä½¿ç”¨ç¼ŸçŽ›ç‘™ç²‰äºŽä¸ƒå½©åŸºåº§ä¸­åˆæˆæ£•色物å“", - "advancements.spectrum.craft_using_pedestal.title": "奇怪的熟悉感", - "advancements.spectrum.craft_using_pedestal.description": "ä½¿ç”¨ç¼ŸçŽ›ç‘™ç²‰äºŽä¸ƒå½©åŸºåº§ä¸­åˆæˆä¸€äº›ç‰©å“. å®ƒä¼¼ä¹Žå¯¹çº¢çŸ³ä¿¡å·æœ‰æ‰€å应?", - "advancements.spectrum.craft_using_pedestal_without_redstone.title": "它看起æ¥å¯¹çº¢çŸ³æœ‰å应", - "advancements.spectrum.craft_using_pedestal_without_redstone.description": "它看起æ¥å¯¹çº¢çŸ³æœ‰å应", - "advancements.spectrum.create_onyx_shard.title": "é‡è¿”黑暗", - "advancements.spectrum.create_onyx_shard.description": "在月黑风高的晚上使用èžåˆç¥žé¾›äºŽé»‘暗中创造黑色碎片", - "advancements.spectrum.dark_light_staff.title": "这波血äº", - "advancements.spectrum.dark_light_staff.description": "使用光之法æ–移除一个其产生的光æº", - "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.title": "太快啦", - "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.description": "ä½¿ç”¨é™„é­”äº†æ•ˆçŽ‡çš„æ¸…é™¤ä¹‹é•æŒ–穿世界", - "advancements.spectrum.enter_dimension.title": "密ä¸é€é£Ž, è‡³å°‘æ›¾ç»æ˜¯è¿™æ ·çš„", - "advancements.spectrum.enter_dimension.description": "探寻基岩层下的秘密", - "advancements.spectrum.fill_void_bundle.title": "满载而归", - "advancements.spectrum.fill_void_bundle.description": "完全填满一个无底袋", - "advancements.spectrum.fill_void_bundle_for_real_this_time.title": "这次是真的满了", - "advancements.spectrum.fill_void_bundle_for_real_this_time.description": "用2000000000个物å“完全填满一个附魔的无底袋", - "advancements.spectrum.get_player_only_glass.title": "和平与满足", - "advancements.spectrum.get_player_only_glass.description": "åˆæˆåŠç©¿é€çŽ»ç’ƒæ¥ä¿æŠ¤ä½ çš„æˆ¿å­ä¸å—怪物侵袭", - "advancements.spectrum.grow_ominous_sapling.title": "一次失败的实验?", - "advancements.spectrum.grow_ominous_sapling.description": "它看起æ¥...å·²ç»æ­»äº†?", - "advancements.spectrum.place_pedestal.title": "å…¨æ–°çš„åˆæˆæ–¹å¼", - "advancements.spectrum.place_pedestal.description": "制作你的七彩基座并把它放下", - "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.title": "我必须走了, 我的星çƒéœ€è¦æˆ‘", - "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.description": "使用è‹ç»¿ä¹‹çŸ³ä½¿ä½ çš„动物超载", - "advancements.spectrum.get_ender_treasure.title": "抢夺于冰冷之手", - "advancements.spectrum.get_ender_treasure.description": "ä¸€äº›æœ«å½±äººå¸¦ç€æ•£å‘ç€é˜´æš—光芒的方å—出现在了你的世界中", - "advancements.spectrum.spectrum.title": "光谱世界", - "advancements.spectrum.spectrum.description": "一个关于颜色, 魔法和混乱的故事", - "advancements.spectrum.spectrum_lategame.title": "光谱世界 - 精通", - "advancements.spectrum.spectrum_lategame.description": "ä¸€ä¸ªå…³äºŽå¾æœä¸–界的故事", - "advancements.spectrum.spectrum_midgame.title": "光谱世界 - 艺术", - "advancements.spectrum.spectrum_midgame.description": "一个关于好奇心的故事", - "advancements.spectrum.use_all_pedestal_upgrades.title": "终æžåŠ å¼º", - "advancements.spectrum.use_all_pedestal_upgrades.description": "在你的七彩基座的所有å®çŸ³æ–¹å—上进行å‡çº§", - "advancements.spectrum.use_end_portal_cracker.title": "我就是喜欢移动", - "advancements.spectrum.use_end_portal_cracker.description": "于末地传é€é—¨æ¡†æž¶ä¸Šä½¿ç”¨æœ«åœ°ä¼ é€é—¨ç ´è¯‘器", - "advancements.spectrum.use_glistering_melon_seeds.title": "兴旺之兆", - "advancements.spectrum.use_glistering_melon_seeds.description": "获得å‘光西瓜...!", - "advancements.spectrum.plant_ominous_sapling.title": "让它生长!", - "advancements.spectrum.plant_ominous_sapling.description": "你很确定将æ¤ç‰©èƒ½é‡ç²‰å’Œæ ‘è‹—æ··åˆä¼šåˆ¶é€ å‡ºä¸€äº›æœ‰æ„æ€çš„东西", - "advancements.spectrum.build_fusion_shrine.title": "强大的显示", - "advancements.spectrum.build_fusion_shrine.description": "建造èžåˆç¥žé¾›", - "advancements.spectrum.build_enchanting_structure.title": "次世代附魔", - "advancements.spectrum.build_enchanting_structure.description": "建造注魔å°ç»“æž„", - "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.title": "é¾™æ¯", - "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.description": "使用带有ç å¤´åŠŸé™„é­”çš„æ­¦å™¨å‰²ä¸‹æœ«å½±é¾™çš„å¤´é¢…", - "advancements.spectrum.collect_wither_head_using_treasure_hunter.title": "循环", - "advancements.spectrum.collect_wither_head_using_treasure_hunter.description": "使用带有ç å¤´åŠŸé™„é­”çš„æ­¦å™¨å‰²ä¸‹å‡‹é›¶çš„å¤´é¢…", - "advancements.spectrum.create_spectral_shard.title": "彩虹上的碎片", - "advancements.spectrum.create_spectral_shard.description": "åˆæˆåŒ–åˆç¢Žç‰‡", - "advancements.spectrum.enter_liquid_crystal.title": "æµä½“魔法", - "advancements.spectrum.enter_liquid_crystal.description": "与液体形å¼çš„å®çŸ³äº²å¯†æŽ¥è§¦", - "advancements.spectrum.gift_wet_lava_sponge.title": "烫手!", - "advancements.spectrum.gift_wet_lava_sponge.description": "将一个湿岩浆海绵扔给其他玩家", - "advancements.spectrum.get_hit_while_wearing_full_suit_of_gemstone_armor.title": "充电过度", - "advancements.spectrum.get_hit_while_wearing_full_suit_of_gemstone_armor.description": "在穿全套å®çŸ³ç›”甲时å—击", - "advancements.spectrum.collect_mob_head_using_treasure_hunter.title": "摸ä¸ç€å¤´è„‘", - "advancements.spectrum.collect_mob_head_using_treasure_hunter.description": "使用带有ç å¤´åŠŸé™„é­”çš„æ­¦å™¨å‰²ä¸‹æ€ªç‰©çš„å¤´é¢…", - "advancements.spectrum.build_wither_using_wither_heads.title": "别, åƒä¸‡åˆ«è¿™æ ·", - "advancements.spectrum.build_wither_using_wither_heads.description": "使用凋零头颅å¬å”¤ä¸€ä¸ªå‡‹é›¶", - "advancements.spectrum.create_refined_azurite.title": "è“色之梦", - "advancements.spectrum.create_refined_azurite.description": "将天é’石铸造为锭的形å¼", - "advancements.spectrum.fill_knowledge_gem.title": "知识转移", - "advancements.spectrum.fill_knowledge_gem.description": "用10000点ç»éªŒå¡«å……知识å®çŸ³", - "advancements.spectrum.enchant_exchange_staff.title": "ä¸åªæ˜¯å»ºç­‘工具", - "advancements.spectrum.enchant_exchange_staff.description": "åˆæˆå¹¶é™„é­”ä¸€ä¸ªæ–¹å—æ›¿æ¢æ³•æ–", - "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.title": "西部最快的é•", - "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.description": "使用带有惯性附魔连续破å500ä¸ªç›¸åŒæ–¹å—", - "advancements.spectrum.use_natures_staff_on_dead_bush.title": "起死回生", - "advancements.spectrum.use_natures_staff_on_dead_bush.description": "使用自然法æ–å’Œæ¤ç‰©èƒ½é‡ç²‰å°†æž¯æ­»çš„çŒæœ¨å¤æ´»", - "advancements.spectrum.enchant_item_worth_2500_xp.title": "è€æ¿å¤§æ°”!", - "advancements.spectrum.enchant_item_worth_2500_xp.description": "通过注魔å°å•次使用2500ç»éªŒé™„魔一个物å“", - "advancements.spectrum.create_resonance_enchanted_book.title": "更震一步", - "advancements.spectrum.create_resonance_enchanted_book.description": "使用注魔å°åˆ¶ä½œå…±æŒ¯é™„魔书", - "advancements.spectrum.upgrade_enchanted_book_to_fortune4.title": "更加幸è¿", - "advancements.spectrum.upgrade_enchanted_book_to_fortune4.description": "使用注魔å°å°†æ—¶è¿III附魔å‡çº§è‡³æ—¶è¿IV", - "advancements.spectrum.craft_bottle_of_decay_away.title": "谨言慎行ä¸åƒäº, è½»çŽ‡èŽ½æ’žå¿…åŽæ‚”", - "advancements.spectrum.craft_bottle_of_decay_away.description": "为自己准备一个清ç†ä¹‹ç“¶ä»¥é˜²å‡ºçŽ°ä»€ä¹ˆå·®é”™", - "advancements.spectrum.enchant_book.title": "æ— æŸåŽ‹ç¼©", - "advancements.spectrum.enchant_book.description": "使用注魔å°ä»Žå…¶ä»–附魔书上å¤åˆ¶é™„é­”. éžå¸¸æ˜‚è´µ", - "advancements.spectrum.craft_and_get_25_xp.title": "富有ç»éªŒçš„艺术家", - "advancements.spectrum.craft_and_get_25_xp.description": "åˆæˆä¸€ä¸ªä¸ƒå½©åŸºåº§ä¼šç»™äºˆä½ 25ç»éªŒ", - "advancements.spectrum.enter_ender_glass.title": "çµæ´»ç©¿é€", - "advancements.spectrum.enter_ender_glass.description": "穿过激活的末影玻璃", - "advancements.spectrum.create_midnight_aberration.title": "完美的å¤åˆç‰©", - "advancements.spectrum.create_midnight_aberration.description": "èžåˆé»„玉, ç´«æ°´æ™¶, 黄水晶和黑耀能é‡ç²‰", - "advancements.spectrum.collect_midnight_chip.title": "å°æ¶é­”", - "advancements.spectrum.collect_midnight_chip.description": "通过åˆå¤œæº¶æ¶²èŽ·å¾—åˆå¤œç•¸å˜", - "advancements.spectrum.finish_progression.title": "旅程的终点", - "advancements.spectrum.finish_progression.description": "到达魔法旅程的终点. æ­å–œä½ , 颜料师!", - "advancements.spectrum.finish_progression_without_tips.title": "传说中的美术家", - "advancements.spectrum.finish_progression_without_tips.description": "ä¸ä½¿ç”¨æç¤ºå®Œæˆã€Šå…‰è°±ä¸–界》的所有进度. æ­å–œä½ !", - "advancements.spectrum.create_budding_onyx.title": "ç§æ¤é»‘æš—", - "advancements.spectrum.create_budding_onyx.description": "使用化åˆç¢Žç‰‡åˆ¶ä½œç¼ŸçŽ›ç‘™èŠ½. 看æ¥ä½ ä¸å†åªä¾èµ–于èžåˆäº†!", - "advancements.spectrum.collect_all_shooting_star_variants.title": "星之å­", - "advancements.spectrum.collect_all_shooting_star_variants.description": "潜行å³é”®æ¥æ¡èµ·æµæ˜Ÿ. ä½ èƒ½æ”¶é›†åˆ°æ‰€æœ‰æµæ˜Ÿå˜ç§å—?", - "advancements.spectrum.equip_neat_ring.title": "æ•´æ´", - "advancements.spectrum.equip_neat_ring.description": "æ•´æ´", - "advancements.spectrum.high_jump_with_take_off_belt.title": "时间管ç†å¤§å¸ˆ", - "advancements.spectrum.high_jump_with_take_off_belt.description": "通过潜行将蓄能腰带完全充能... è·³!", - "advancements.spectrum.take_off_belt_overcharged.title": "时间管ç†å¤§å¸ˆä¹Ÿæœ‰å¤±æ‰‹ä¹‹æ—¶", - "advancements.spectrum.take_off_belt_overcharged.description": "通过潜行将蓄能腰带过度充能", - "advancements.spectrum.kill_entity_with_jeopardant_and_half_a_heart.title": "在死亡边缘游走", - "advancements.spectrum.kill_entity_with_jeopardant_and_half_a_heart.description": "佩戴孤注一掷戒指, 在åªå‰©åŠé¢—心时给予对方致命一击", - "advancements.spectrum.get_azure_dike_charge.title": "举盾", - "advancements.spectrum.get_azure_dike_charge.description": "装备由天é’çŸ³åˆ¶ä½œçš„è£…å¤‡æ¥æå‡è”šè“防御值", - "advancements.spectrum.high_ink_use.title": "大手笔", - "advancements.spectrum.high_ink_use.description": "一次性用掉大é‡å¢¨æ°´", - "advancements.spectrum.fill_pigment_palette.title": "æžå¤§çš„æ´»åŠ¨ç©ºé—´", - "advancements.spectrum.fill_pigment_palette.description": "使用所有å¯ç”¨çš„燃料填充调色æ¿", - "advancements.spectrum.craft_pigment_palette.title": "美术家", - "advancements.spectrum.craft_pigment_palette.description": "åˆæˆä¸€ä¸ªè°ƒè‰²æ¿æ¥æ›´åŠ ç®€å•地存储你的魔力", - "advancements.spectrum.fill_ink_container.title": "新能æº", - "advancements.spectrum.fill_ink_container.description": "åˆæˆé¢œè‰²é€‰å–器并使用它æ¥å¡«å……墨水容器", - "advancements.spectrum.brew_potion_in_potion_workshop.title": "魔法炼金术", - "advancements.spectrum.brew_potion_in_potion_workshop.description": "ä½¿ç”¨è¯æ°´å·¥ä½œç«™æ¥é…¿é€ è¯æ°´, 获得更多效果", - "advancements.spectrum.fill_potion_pendant.title": "强力åŠå ", - "advancements.spectrum.fill_potion_pendant.description": "ä½¿ç”¨è¯æ°´å·¥ä½œç«™ä¸ºè¯æ°´åŠå çŒæ³¨è¯æ°´æ•ˆæžœ", - "advancements.spectrum.brew_powerful_potion_in_potion_workshop.title": "æˆåŠŸçš„å–œæ‚¦", - "advancements.spectrum.brew_powerful_potion_in_potion_workshop.description": "通过åˆå¹¶è¯•剂æ¥é…¿é€ IVçº§è¯æ°´", - "advancements.spectrum.enchant_seven_league_boots.title": "ä¸é¡¾ä¸€åˆ‡", - "advancements.spectrum.enchant_seven_league_boots.description": "为你的飞跃é´å­é™„魔使其更快", - "advancements.spectrum.collect_moonstone_chiseled_block.title": "敌对者的天堂之下", - "advancements.spectrum.collect_moonstone_chiseled_block.description": "从Deeper Downçš„ç»“æž„ä¸­èŽ·å–æœˆé•¿çŸ³æ¥æ‹“展你的基座结构", - "advancements.spectrum.build_spirit_instiller_structure.title": "é‡èŽ·æ–°ç”Ÿ", - "advancements.spectrum.build_spirit_instiller_structure.description": "建造çµé­‚çŒæ³¨å°", - "advancements.spectrum.manifest_memory.title": "夿´»", - "advancements.spectrum.manifest_memory.description": "创造并转化记忆", - "advancements.spectrum.craft_blacklisted_memory_fail.title": "å†åº¦æ¾æ‡ˆ", - "advancements.spectrum.craft_blacklisted_memory_fail.description": "无法识别一个强大生物的记忆", - "advancements.spectrum.craft_blacklisted_memory_success.title": "å†åº¦æœ‰åŠ›", - "advancements.spectrum.craft_blacklisted_memory_success.description": "æˆåŠŸè¯†åˆ«ä¸€ä¸ªå¼ºå¤§ç”Ÿç‰©çš„è®°å¿†. 你对转化记忆已ç»å¾ˆç†Ÿç»ƒäº†, 䏿˜¯å—?", - "advancements.spectrum.plant_jade_vines.title": "历å²é—留问题", - "advancements.spectrum.plant_jade_vines.description": "让冬眠的玉藤树ç§å­å‘言并把它ç§åœ¨æ …æ ä¸Š. åƒæ‰€æœ‰çš„藤蔓一样, 它会å‘下生长. é•¿æ—¶é—´ä¸è§æ—¥å…‰, 阳光对你的æ¤ç‰©æ¥è¯´å¤ªäº®äº†. 它åªåœ¨æ¸©å’Œçš„æœˆå…‰ä¸‹ç”Ÿé•¿", - "advancements.spectrum.drink_restoration_tea_with_milk.title": "异教徒", - "advancements.spectrum.drink_restoration_tea_with_milk.description": "å–带有牛奶的æ¢å¤ä¹‹èŒ¶", - "advancements.spectrum.harvest_moonstruck_nectar.title": "æ¢å¤èŠ±èœœ", - "advancements.spectrum.harvest_moonstruck_nectar.description": "使用玻璃瓶从æˆç†Ÿçš„å¤çŽ‰è—¤æ ‘ä¸Šæ”¶èŽ·è¿½æœˆèŠ±èœœ", - "advancements.spectrum.find_ancient_ruins.title": "åšä¸å¯æ‘§çš„è¦å¡ž", - "advancements.spectrum.find_ancient_ruins.description": "在地下你å‘çŽ°äº†ä¸€ä¸ªè¢«ç¥žç§˜ä¿æŠ¤åœºä¿æŠ¤çš„å·¨å¤§çš„ç»“æž„", - "advancements.spectrum.enter_ancient_ruins.title": "ç‰¢å›ºçš„ä¿æŠ¤", - "advancements.spectrum.enter_ancient_ruins.description": "这些神秘的标志想è¦å‘Šè¯‰ä½ ç¥žç§˜? 肯定有办法进入的这个结构中. 现在ä¸è¡Œçš„è¯ä»¥åŽæ€»æ˜¯å¯ä»¥çš„... 你最好记ä½è¿™é‡Œ", - "advancements.spectrum.generate_ancient_ruins_loot.title": "æ¥è‡ªå¤ä»£æ–‡æ˜Žçš„礼物", - "advancements.spectrum.generate_ancient_ruins_loot.description": "打开一个å¤ä»£å®ç®±", - "advancements.spectrum.create_huge_slime.title": "å……æ°”", - "advancements.spectrum.create_huge_slime.description": "使用充气魔盒æ¥ä½¿å²èޱ姆å˜å¤§", - "advancements.spectrum.collect_hover_block.title": "ä¸å¯é˜»æŒ¡çš„åŠ›é‡ vs. 自我", - "advancements.spectrum.collect_hover_block.description": "我在想...", - "advancements.spectrum.wear_complete_set_of_bedrock_armor.title": "黑暗骑士", - "advancements.spectrum.wear_complete_set_of_bedrock_armor.description": "åœ¨ç‰©å“æ ä¸­èŽ·å¾—æ‰€æœ‰åŸºå²©è´¨ç›”ç”²", - "advancements.spectrum.place_color_picker.title": "挑剔", - "advancements.spectrum.place_color_picker.description": "åˆæˆå¹¶ä½¿ç”¨é¢œè‰²é€‰å–器", - "advancements.spectrum.collect_bismuth.title": "50ç§è‰²è°ƒçš„èžåˆ", - "advancements.spectrum.collect_bismuth.description": "获得铋", - "advancements.spectrum.collect_bismuth_crystal.title": "原始之梦", - "advancements.spectrum.collect_bismuth_crystal.description": "å°†é“‹åŸ¹å…»ä¸ºå®Œæ•´çš„æ™¶ä½“å¹¶ç ´åæŽ‰å®ƒ. è¿™ç§è‰²å½©æ–‘æ–“çš„ææ–™ä¼¼ä¹Žä¼šä»Žå‘¨å›´çš„金属中汲å–能é‡.", - "advancements.spectrum.grow_bismuth_in_crystallarieum.title": "åšå®žçš„æ”¹è¿›", - "advancements.spectrum.grow_bismuth_in_crystallarieum.description": "使用结晶器(暂译)培养铋.", - "advancements.spectrum.collect_malachite.title": "一抹令人ç€è¿·çš„绿色阴影", - "advancements.spectrum.collect_malachite.description": "在å‰å¾€Deeper Down的路上碰上孔雀石", - "advancements.spectrum.grow_malachite_in_crystallarieum.title": "浓缩时间", - "advancements.spectrum.grow_malachite_in_crystallarieum.description": "孔雀石的生长æžå…¶ç¼“æ…¢, 看起æ¥ä½ æœ‰ç”Ÿä¹‹å¹´éƒ½èŽ·å¾—ä¸åˆ°å®ƒ. 有其他方法å—?", - "advancements.spectrum.build_cinderhearth_structure.title": "全速å‰è¿›", - "advancements.spectrum.build_cinderhearth_structure.description": "使煤渣炉(暂译)工作起æ¥", - "advancements.spectrum.build_cinderhearth_without_lava_structure.title": "但这是为什么呢?", - "advancements.spectrum.build_cinderhearth_without_lava_structure.description": "我说过它在有岩浆的情况下看起æ¥**好多了**, 机çµé¬¼.", - "advancements.spectrum.doubled_output_in_cinderhearth.title": "由墨水到物质", - "advancements.spectrum.doubled_output_in_cinderhearth.description": "在煤渣炉(暂译)中使用淡è“色墨水æ¥ä½¿ä½ çš„烧炼产出æå‡ä¸€å€.", - "advancements.spectrum.smelt_pure_resource_in_cinderhearth.title": "高速烧炼", - "advancements.spectrum.smelt_pure_resource_in_cinderhearth.description": "看起æ¥ç…¤æ¸£ç‚‰(暂译)åœ¨ä½¿ç”¨åŽŸç”Ÿèµ„æºæ—¶æ¯”普通熔炉快多了", - "advancements.spectrum.collect_pure_resource.title": "似是而éž", - "advancements.spectrum.collect_pure_resource.description": "获得原生资æºç°‡. 它比你获得的普通矿石è¦çº¯å‡€çš„多.", + "zhcnLangInfo":"zh_cn_230826_TEST", + + "itemGroup.spectrum.general": "光谱世界", + "itemGroup.spectrum.general.tab.general": "光谱世界 - 基本", + "itemGroup.spectrum.general.tab.equipment": "光谱世界 - 装备", + "itemGroup.spectrum.general.tab.consumables": "光谱世界 - 消耗å“", + "itemGroup.spectrum.general.tab.resources": "光谱世界 - 资æº", + "itemGroup.spectrum.blocks": "光谱世界 - 建筑方å—", + "itemGroup.spectrum.blocks.tab.decoration": "光谱世界 - 装饰物å“", + "itemGroup.spectrum.blocks.tab.colored_wood": "光谱世界 - 染色木头", + "itemGroup.spectrum.blocks.tab.mob_heads": "光谱世界 - 魔盒与怪物的头", + "itemGroup.spectrum.blocks.tab.predefined_items": "光谱世界 - 预定义物å“", - "______name_changes_for_vanilla_blocks" : "改å˜:", - "block.minecraft.polished_basalt": "玄武岩柱", + "itemGroup.spectrum.general.button.discord": "加入光谱世界的DiscordæœåС噍", + "itemGroup.spectrum.general.button.github": "打开光谱世界的Github仓库", + "itemGroup.spectrum.general.button.curseforge": "打开光谱世界的CurseForge页é¢", + "itemGroup.spectrum.general.button.modrinth": "打开光谱世界的Modrinth页é¢", + "itemGroup.spectrum.blocks.button.discord": "加入光谱世界的DiscordæœåС噍", + "itemGroup.spectrum.blocks.button.github": "打开光谱世界的Github仓库", + "itemGroup.spectrum.blocks.button.curseforge": "打开光谱世界的CurseForge页é¢", + "itemGroup.spectrum.blocks.button.modrinth": "打开光谱世界的Modrinth页é¢", + + "recipeGroup.spectrum.topaz_lamps": "托帕石ç¯", + "recipeGroup.spectrum.amethyst_lamps": "ç´«æ°´æ™¶ç¯", + "recipeGroup.spectrum.citrine_lamps": "黄水晶ç¯", + "recipeGroup.spectrum.onyx_lamps": "缟玛瑙ç¯", + "recipeGroup.spectrum.moonstone_lamps": "月长石ç¯", + "recipeGroup.spectrum.topaz_runes": "托帕石符文", + "recipeGroup.spectrum.amethyst_runes": "紫水晶符文", + "recipeGroup.spectrum.citrine_runes": "黄水晶符文", + "recipeGroup.spectrum.onyx_runes": "缟玛瑙符文", + "recipeGroup.spectrum.moonstone_runes": "月长石符文", + "recipeGroup.spectrum.colored_lamps": "染色红石ç¯", + "recipeGroup.spectrum.gemstone_glass": "å®çŸ³æ™¶çŽ»ç’ƒ", + "recipeGroup.spectrum.decostones": "摆件", + "recipeGroup.spectrum.gemstone_chimes": "å®çŸ³æ™¶é£Žé“ƒ", + "recipeGroup.spectrum.colored_saplings": "彩色树苗", + "recipeGroup.spectrum.shimmerstone_lights": "闪光石ç¯", + "recipeGroup.spectrum.colored_spore_blossoms": "彩色孢å­èб", + "recipeGroup.spectrum.glowblocks": "è§å…‰æ–¹å—", + "recipeGroup.spectrum.player_only_glass": "åŠç©¿é€çŽ»ç’ƒ", + "recipeGroup.spectrum.bedrock_tools": "基岩工具", + "recipeGroup.spectrum.bedrock_armor": "基岩盔甲", + "recipeGroup.spectrum.fusion_shrines": "èžåˆåœ£å›", + "recipeGroup.spectrum.item_bowls": "物å“底座", + "recipeGroup.spectrum.enchanter_exchanging_staff": "充能法æ–", + "recipeGroup.spectrum.vanilla": "原版附魔", + "recipeGroup.spectrum.pastel_network": "绘彩网络", + "recipeGroup.spectrum.vanilla_potions": "åŽŸç‰ˆè¯æ°´", + "recipeGroup.spectrum.resistance_potions": "抗性æå‡è¯æ°´", + "recipeGroup.spectrum.horse_armor": "马铠", + "recipeGroup.spectrum.memories": "回忆", + "recipeGroup.spectrum.boss_memories": "Boss的回忆", + "recipeGroup.spectrum.restoration_tea": "æ¢å¤ä¹‹èŒ¶", + "recipeGroup.spectrum.mob_blocks": "魔盒", + "recipeGroup.spectrum.spawner_manipulation": "刷怪笼æ“纵", + "recipeGroup.spectrum.infused_beverages": "çŒæ³¨é¥®æ–™", + "recipeGroup.spectrum.extraalchemy_potions": "å¢žå¼ºåž‹ç‚¼é‡‘æœ¯è¯æ°´", + "recipeGroup.spectrum.crystallarieum_growable_crushing": "催化石晶芽", + "recipeGroup.spectrum.gemstone_crushing": "å®çŸ³æ™¶ç¢Žç‰‡ä¸ŽçŸ³æ™¶èн", + "recipeGroup.spectrum.bismuth_crushing": "é“‹", + + "recipeGroup.spectrum.botania_mushrooms": "染色蘑è‡", + "recipeGroup.spectrum.botania_glimmering_flowers": "è§å…‰èб", + "recipeGroup.spectrum.chalk_chalk": "ä¸å¯ç ´å的粉笔", + "recipeGroup.spectrum.chalk_glow_chalk": "ä¸å¯ç ´åçš„è§å…‰ç²‰ç¬”", + + "effect.spectrum.immunity": "å…ç–«", + "effect.spectrum.another_roll": "幸è¿é‡æŽ·", + "effect.spectrum.scarred": "留疤", + "effect.spectrum.density": "致密", + "effect.spectrum.swiftness": "è¿…æ·", + "effect.spectrum.stiffness": "刚强", + "effect.spectrum.millenia_disease": "åƒå¹´ä¹‹ç–«", + "effect.spectrum.ascension": "飞å‡", + "effect.spectrum.divinity": "圣化", + "effect.spectrum.frenzy": "ç‹‚èº", + "effect.spectrum.blazing": "炽烈", + "effect.spectrum.projectile_rebound": "åå¼¹", + "effect.spectrum.lightweight": "轻盈", + "effect.spectrum.vulnerability": "脆弱", + + "item.minecraft.potion.effect.pigment_potion": "§2颜§3料§fè¯æ°´", + "item.minecraft.splash_potion.effect.pigment_potion": "喷溅型§2颜§3料§fè¯æ°´", + "item.minecraft.lingering_potion.effect.pigment_potion": "滞留型§2颜§3料§fè¯æ°´", + "item.minecraft.tipped_arrow.effect.pigment_potion": "§2颜§3料§f之箭", + "item.spectrum.potion.tooltip.unidentifiable": "§0漆黑一片,ä¸å¯å状", + + "spectrum.tooltip.coming_soon": "§4生存模å¼ä¸­æš‚ä¸å¯ç”¨", + + "spectrum.gui.lexicon.reveal_hint_button.text": "显示æç¤º ", + "spectrum.gui.lexicon.reveal_hint_button.tooltip.pay": "æ¶ˆè€—ä¸€ç‚¹ç‚¹è´¹ç”¨ä»¥è§£é”æç¤º", + "spectrum.gui.lexicon.reveal_hint_button.tooltip.lacking_resource": "ç‰©å“æ ä¸­æ²¡æœ‰å¯ç”¨çš„费用", + + "container.spectrum.owned_by_player": "(拥有者:%s)", + "container.spectrum.rei.pedestal_crafting.title": "ä¸ƒå½©åŸºåº§åˆæˆ", + "container.spectrum.rei.pedestal_crafting.crafting_time_and_xp": "%fç§’ - %fç»éªŒ", + "container.spectrum.rei.pedestal_crafting.crafting_time_one_second_and_xp": "%fç§’ - %fç»éªŒ", + "container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_1": "你尚未解é”", + "container.spectrum.rei.pedestal_crafting.recipe_not_unlocked_line_2": "è¿™ä¸ªé…æ–¹", + "container.spectrum.rei.enchanting.title": "光谱附魔", + "container.spectrum.rei.enchanting.crafting_time": "%fç§’", + "container.spectrum.rei.enchanting.crafting_time_one_second": "%fç§’", + "container.spectrum.rei.enchantment_upgrading.title": "附魔å‡çº§", + "container.spectrum.rei.enchantment_upgrade.required_item_count": "(%fx)", + "container.spectrum.rei.midnight_solution_converting.title": "åˆå¤œæº¶æ¶²ï¼šä¾µæŸ“", + "container.spectrum.rei.liquid_crystal_converting.title": "水晶:侵染", + "container.spectrum.rei.ink_converting.title": "墨水:转æ¢", + "container.spectrum.rei.heating.title": "加热", + "container.spectrum.rei.freezing.title": "冷冻", + "container.spectrum.rei.chance": "概率:%.0f %%", + "container.spectrum.rei.ink_converting.color": "颜色:%s", + "container.spectrum.rei.ink_converting.amount": "æ•°é‡ï¼š%d", + "container.spectrum.rei.crystallarieum.requires_catalyst": "需è¦å‚¬åŒ–剂", + "container.spectrum.rei.crystallarieum.crafting_time_per_stage_seconds": "æ¯ç”Ÿé•¿é˜¶æ®µéœ€è¦%fç§’", + "container.spectrum.rei.crystallarieum.crafting_time_per_stage_seconds_catalyst_required": "æ¯é˜¶æ®µ%fç§’ - 需è¦å‚¬åŒ–剂", + "container.spectrum.patchouli.crystallarieum.catalyst": "催化剂:$(br)加速:$(br)墨水消耗:$(br)æ˜¯å¦æ¶ˆè€—自身:", + "container.spectrum.rei.crystallarieum.catalyst": "催化剂:", + "container.spectrum.rei.crystallarieum.accelerator": "加速:", + "container.spectrum.rei.crystallarieum.ink_consumption": "墨水消耗", + "container.spectrum.rei.crystallarieum.used_up": "æ˜¯å¦æ¶ˆè€—自身:", + "container.spectrum.rei.titration_barrel.time_hours": "需è¦%då°æ—¶ï¼ˆçŽ°å®žç”Ÿæ´»çš„ï¼‰", + "container.spectrum.rei.titration_barrel.time_days": "需è¦%d天(现实生活的)", + "container.spectrum.rei.titration_barrel.at_least_time_hours": "至少需è¦%då°æ—¶ï¼ˆçŽ°å®žç”Ÿæ´»çš„ï¼‰", + "container.spectrum.rei.titration_barrel.at_least_time_days": "至少需è¦%d天(现实生活的)", + "container.spectrum.rei.titration_barrel.time_hour": "需è¦1å°æ—¶ï¼ˆçŽ°å®žç”Ÿæ´»çš„ï¼‰", + "container.spectrum.rei.titration_barrel.time_day": "需è¦1天(现实生活的)", + "container.spectrum.rei.titration_barrel.at_least_time_hour": "至少需è¦1å°æ—¶ï¼ˆçŽ°å®žç”Ÿæ´»çš„ï¼‰", + "container.spectrum.rei.titration_barrel.at_least_time_day": "至少需è¦1天(现实生活的)", + + "container.spectrum.bedrock_anvil": "ä¿®å¤ï¼Œé‡å‘½åå’Œè‡ªå®šä¹‰ç‰©å“æè¿°ä¿¡æ¯", + "container.spectrum.bedrock_anvil.tooltip": "åšä¸å¯æ‘§ã€‚å…è´¹é‡å‘½å,无等级花销上é™", + "container.spectrum.bedrock_anvil.tooltip2": "且å¯ä»¥ä¸ºç‰©å“添加鼠标悬浮æè¿°ä¿¡æ¯", + "container.spectrum.bedrock_anvil.lore": "ç‰©å“æè¿°ï¼š", + + "container.spectrum.rei.anvil_crushing.title": "é“砧粉碎", + "container.spectrum.rei.anvil_crushing.low_force_required": "所需力度:低", + "container.spectrum.rei.anvil_crushing.medium_force_required": "所需力度:中", + "container.spectrum.rei.anvil_crushing.high_force_required": "所需力度:高", + "container.spectrum.rei.anvil_crushing.plus_xp": "+%fç»éªŒ", + + "container.spectrum.rei.potion_workshop_brewing.title": "è¯æ°´å·¥ä½œç«™ç‚¼åˆ¶", + "container.spectrum.rei.potion_workshop_crafting.title": "è¯æ°´å·¥ä½œç«™åˆæˆ", + "container.spectrum.rei.potion_workshop.crafting_time": "%fç§’", + "container.spectrum.rei.potion_workshop_reacting.title": "è¯æ°´ç‚¼æ", + + "spectrum.rei.potion_workshop_reacting.minecraft.dragon_breath": "åˆæˆæ»žç•™åž‹è¯æ°´ - åŒæ—¶éœ€è¦ç«è¯ä½œä¸ºç‚¼æã€‚将玻璃瓶替æ¢ä¸ºç®­èƒ½å¤Ÿåˆ¶ä½œè¯ç®­", + "spectrum.rei.potion_workshop_reacting.minecraft.glowstone_dust": "æå‡æ•ˆæžœå¼ºåº¦", + "spectrum.rei.potion_workshop_reacting.minecraft.gunpowder": "åˆæˆå–·æº…åž‹è¯æ°´", + "spectrum.rei.potion_workshop_reacting.minecraft.redstone": "效果æŒç»­æ—¶é—´åŠ å€", + "spectrum.rei.potion_workshop_reacting.spectrum.amethyst_powder": "å°å¹…加长效果æŒç»­æ—¶é—´", + "spectrum.rei.potion_workshop_reacting.spectrum.bedrock_dust": "效果强度加å€ï¼Œä½†å‡å°‘æŒç»­æ—¶é—´", + "spectrum.rei.potion_workshop_reacting.spectrum.citrine_powder": "å°å¹…å€å¢žæ•ˆæžœå¼ºåº¦", + "spectrum.rei.potion_workshop_reacting.spectrum.four_leaf_clover": "ä¸ºéšæœºä¸€ä¸ªæ•ˆæžœæä¾›å·¨å¤§å¢žå¹…", + "spectrum.rei.potion_workshop_reacting.spectrum.storm_stone": "åœ¨æœ€åˆæ—¶å¢žå¼ºè¯æ°´çš„æ•ˆæžœï¼Œä½†å…¶ä¼šéšç€æ—¶é—´çš„æŽ¨ç§»è€Œè¿…速é™ä½Žé€€", + "spectrum.rei.potion_workshop_reacting.spectrum.midnight_chip": "æå‡æ•ˆæžœå¼ºåº¦å¹¶å»¶é•¿æ•ˆæžœæŒç»­æ—¶é—´30秒,但大幅é™ä½Žè¯æ°´äº§é‡", + "spectrum.rei.potion_workshop_reacting.spectrum.moonstone_powder": "å°†æ‰€æœ‰è´Ÿé¢æ•ˆæžœè½¬æ¢ä¸ºå¯¹åº”çš„æ­£é¢æ•ˆæžœ", + "spectrum.rei.potion_workshop_reacting.spectrum.moonstruck_nectar": "ä½¿è¯æ°´æ›´åŠ é†‡å’Œï¼Œä»Žè€ŒåŠ å¿«é¥®ç”¨é€Ÿåº¦", + "spectrum.rei.potion_workshop_reacting.spectrum.neolith": "增加产é‡ï¼Œå…è®¸ä½ å¤šç‚¼åˆ¶ä¸€ç“¶è¯æ°´", + "spectrum.rei.potion_workshop_reacting.spectrum.onyx_powder": "ä¸ºè¯æ°´å¢žæ·»æŸç§å¥‡æ€ªçš„味é“和气味,使其无法被辨认$(br)并将其完全å˜ä¸ºé»‘色", + "spectrum.rei.potion_workshop_reacting.spectrum.paltaeria_fragments": "æ·»åŠ éšæœºä¸€ç§çŠ¶æ€æ•ˆæžœ", + "spectrum.rei.potion_workshop_reacting.spectrum.quitoxic_powder": "巨幅æå‡æ‰€æœ‰è´Ÿé¢æ•ˆæžœçš„æ•ˆæžœå¼ºåº¦", + "spectrum.rei.potion_workshop_reacting.spectrum.raw_azurite": "ç§»é™¤æ»žç•™è¯æ°´å’Œè¯æ°´ç®­çš„æŒç»­æ—¶é—´æƒ©ç½š", + "spectrum.rei.potion_workshop_reacting.spectrum.stratine_fragments": "ä»¥å¢žåŠ éšæœºçš„è´Ÿé¢æ•ˆæžœä¸ºä»£ä»·ï¼Œä½¿æ•ˆæžœå¼ºåº¦å¤§å¹…增强", + "spectrum.rei.potion_workshop_reacting.spectrum.star_fragment": "ä¿è¯æœ‰æ¦‚率添加之å‰é…¿é€ çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœï¼Œä½†å…¶å¼ºåº¦ä¼šç•¥æœ‰é™ä½Ž", + "spectrum.rei.potion_workshop_reacting.spectrum.shimmerstone_gem": "ç¨å¾®å¢žåŠ è¯æ°´çš„æŒç»­æ—¶é—´å’Œæ•ˆæžœå¼ºåº¦", + "spectrum.rei.potion_workshop_reacting.spectrum.stardust": "å°æ¦‚çŽ‡ä¸ºè¯æ°´æ·»åŠ å…ˆå‰ç‚¼åˆ¶è¿‡çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœ", + "spectrum.rei.potion_workshop_reacting.spectrum.topaz_powder": "移除效果粒å­", + "spectrum.rei.potion_workshop_reacting.spectrum.vegetal": "以é™ä½Žæ•ˆæžœå¼ºåº¦ä¸ºä»£ä»·ï¼Œä½¿æ•ˆæžœæŒç»­æ—¶é—´åŠ å€", + + "spectrum.rei.potion_workshop_reacting.botania.pixie_dust": "å°†è¯æ°´ä½œä¸ºå•项炼æï¼Œè½¬æ¢ä¸ºæ»žç•™è¯æ°´ã€‚è¿™å…è®¸ä½ ä»¥æ­¤ç›´æŽ¥åˆæˆè¯æ°´ç®­", + "spectrum.rei.potion_workshop_reacting.botania.black_lotus": "ä¸ºè¯æ°´æ³¨å…¥å¤§é‡é¢å¤–的正é¢å’Œè´Ÿé¢æ•ˆæžœï¼Œä½†å°†å…¶å˜ä¸ºæ— æ³•辨别的黑色。会得到什么呢?", + "spectrum.rei.potion_workshop_reacting.botania.blacker_lotus": "ä¸ºè¯æ°´æ³¨å…¥å¤§é‡é¢å¤–的效果——ç»å¤§å¤šæ•°éƒ½æ˜¯æ­£é¢æ•ˆæžœï¼Œä½†å°†å…¶å˜ä¸ºæ— æ³•辨别的黑色。会得到什么呢?", + "spectrum.rei.potion_workshop_reacting.botania.life_essence": "æŸå¤±å¤§é‡æ•ˆæžœæŒç»­æ—¶é—´çš„åŒæ—¶å¤§å¹…增强效果强度。如果æŒç»­æ—¶é—´å¤ªçŸ­ï¼Œè¯æ°´å°±æ²¡ç”¨äº†â€¦â€¦", + "spectrum.rei.potion_workshop_reacting.botania.mana_powder": "å°å¹…å¢žå¼ºè¯æ°´æŒç»­æ—¶é—´å¹¶å°æ¦‚率增加先å‰ç‚¼åˆ¶è¿‡çš„è¯æ°´çš„æ•ˆæžœ", + + "multiblock.spectrum.pedestal.upgrade_available": "å¯å‡çº§å½“å‰å¤šæ–¹å—结构ï¼", + "multiblock.spectrum.pedestal.simple_structure": "光谱注魔基座", + "multiblock.spectrum.pedestal.advanced_structure": "光谱注魔祭å›", + "multiblock.spectrum.pedestal.complex_structure": "光谱注魔殿堂", + "multiblock.spectrum.fusion_shrine.structure": "èžåˆåœ£å›", + "multiblock.spectrum.enchanter.structure": "注魔基座结构", + "multiblock.spectrum.spirit_instiller.structure": "çµé­‚çŒæ³¨å°", + "multiblock.spectrum.cinderhearth.structure": "炼化炉", + + "death.attack.spectrum_decay": "%s被活生生地啃蚀殆尽", + "death.attack.spectrum_ink_projectile": "%2$s教会了%1$s去感å—绘画的多彩", + "death.attack.spectrum_ink_projectile.item": "%2$s使用%3$s教会了%1$s去感å—绘画的多彩", + "death.attack.spectrum_floatblock": "%s被浮空方å—压æ‰äº†", + "death.attack.spectrum_shooting_star": "%sè¢«æµæ˜Ÿå‡»ä¸­äº†ï¼Œå¿«è®¸æ„¿å§!", + "death.attack.spectrum_midnight_solution": "%s在黑色的折射中消失了", + "death.attack.spectrum_dike_gate": "%s被力场拒之门外", + "death.attack.spectrum_incandescence": "%s被烧ç¼çš„通体å‘白", + "death.attack.spectrum_incandescence.player": "%1$s亲眼目ç¹äº†%2&så˜æˆäº†ä¸€é¢—迅速飞å‘è‡ªå·±çš„æµæ˜Ÿ - 为ç«ç„°åŠ©ç‡ƒå§ï¼", - "______vanilla_additions" : "拓展:", - "potion.potency.7": "VII", - "potion.potency.8": "VIII", - "potion.potency.9": "IX", - "potion.potency.10": "X", - "potion.potency.11": "XI", - "potion.potency.12": "XII", - "potion.potency.13": "XIII", - "potion.potency.14": "XIV", - "potion.potency.15": "XV", - "potion.potency.16": "XVI", - "potion.potency.17": "XVII", - "potion.potency.18": "XVIII", - "potion.potency.19": "XIX", - "potion.potency.20": "XX", + "entity.spectrum.block_flooder_projectile": "æ–¹å—填充物", + "entity.spectrum.gravity_block": "é‡åŠ›æ–¹å—", + "entity.spectrum.phantom_frame": "幻影物å“展示框", + "entity.spectrum.glow_phantom_frame": "è§å…‰å¹»å½±ç‰©å“展示框", + "entity.spectrum.shooting_star": "æµæ˜Ÿ", + "entity.spectrum.lagoon_fishing_bobber": "湖光钓竿浮标", + "entity.spectrum.molten_fishing_bobber": "炽熔钓竿浮标", + "entity.spectrum.bedrock_fishing_bobber": "基岩钓竿浮标", + "entity.spectrum.ink_projectile": "墨水射弹", + "entity.spectrum.living_marker": "è®°å·ç¬”", + "entity.spectrum.egg_laying_wooly_pig": "下蛋绒猪", + + "item.spectrum.egg_laying_wooly_pig_spawn_egg": "下蛋绒猪刷怪蛋", + + "commands.spectrum.spawn_shooting_star.success": "为选定的玩家å„生æˆäº†%dä¸ªæµæ˜Ÿ", + "commands.spectrum.progression_sanity.success": "é…æ–¹ä¸Žè¿›åº¦åˆç†æ€§æ£€éªŒç»“果已输出到æœåŠ¡å™¨æŽ§åˆ¶å°", + + "spectrum.ink.color.black": "§8黑色§r", + "spectrum.ink.color.red": "§c红色§r", + "spectrum.ink.color.green": "§2绿色§r", + "spectrum.ink.color.brown": "§6棕色§r", + "spectrum.ink.color.blue": "§9è“色§r", + "spectrum.ink.color.purple": "§5紫色§r", + "spectrum.ink.color.cyan": "§bé’色§r", + "spectrum.ink.color.light_gray": "§7æ·¡ç°è‰²Â§r", + "spectrum.ink.color.gray": "§8ç°è‰²Â§r", + "spectrum.ink.color.pink": "§d粉红色§r", + "spectrum.ink.color.lime": "§a黄绿色§r", + "spectrum.ink.color.yellow": "§e黄色§r", + "spectrum.ink.color.light_blue": "§3æ·¡è“色§r", + "spectrum.ink.color.magenta": "§då“红色§r", + "spectrum.ink.color.orange": "§6橙色§r", + "spectrum.ink.color.white": "§f白色§r", + + "spectrum.tooltip.ink_powered.prefix": "消耗以下墨水类型: ", + "spectrum.tooltip.ink_powered.cyan": "消耗§bé’色墨水§r", + "spectrum.tooltip.ink_powered.magenta": "消耗§då“红色墨水§r", + "spectrum.tooltip.ink_powered.yellow": "消耗§e黄色墨水§r", + "spectrum.tooltip.ink_powered.black": "消耗§8黑色墨水§r", + "spectrum.tooltip.ink_powered.white": "消耗§f白色墨水§r", + "spectrum.tooltip.ink_powered.blue": "消耗§9è“色墨水§r", + "spectrum.tooltip.ink_powered.brown": "消耗§6棕色墨水§r", + "spectrum.tooltip.ink_powered.gray": "消耗§8ç°è‰²å¢¨æ°´Â§r", + "spectrum.tooltip.ink_powered.green": "消耗§2绿色墨水§r", + "spectrum.tooltip.ink_powered.light_blue": "消耗§3æ·¡è“色墨水§r", + "spectrum.tooltip.ink_powered.light_gray": "消耗§7æ·¡ç°è‰²å¢¨æ°´Â§r", + "spectrum.tooltip.ink_powered.lime": "消耗§a黄绿色墨水§r", + "spectrum.tooltip.ink_powered.orange": "消耗§6橙色墨水§r", + "spectrum.tooltip.ink_powered.pink": "消耗§d粉红色墨水§r", + "spectrum.tooltip.ink_powered.purple": "消耗§5紫色墨水§r", + "spectrum.tooltip.ink_powered.red": "消耗§c红色墨水§r", + + "spectrum.tooltip.ink_powered.bullet.cyan": "§bâ—†%d§bé’色墨水§r", + "spectrum.tooltip.ink_powered.bullet.magenta": "§dâ—†%d§då“红色墨水§r", + "spectrum.tooltip.ink_powered.bullet.yellow": "§eâ—†%d§e黄色墨水§r", + "spectrum.tooltip.ink_powered.bullet.black": "§8â—†%d§8黑色墨水§r", + "spectrum.tooltip.ink_powered.bullet.white": "§fâ—†%d§f白色墨水§r", + "spectrum.tooltip.ink_powered.bullet.blue": "§9â—†%d§9Bè“色墨水§r", + "spectrum.tooltip.ink_powered.bullet.brown": "§6â—†%d§6棕色墨水§r", + "spectrum.tooltip.ink_powered.bullet.gray": "§8â—†%d§8ç°è‰²å¢¨æ°´Â§r", + "spectrum.tooltip.ink_powered.bullet.green": "§2â—†%d§2绿色墨水§r", + "spectrum.tooltip.ink_powered.bullet.light_blue": "§3â—†%d§3æ·¡è“色墨水§r", + "spectrum.tooltip.ink_powered.bullet.light_gray": "§7â—†%d§7æ·¡ç°è‰²å¢¨æ°´Â§r", + "spectrum.tooltip.ink_powered.bullet.lime": "§aâ—†%d§a黄绿色墨水§r", + "spectrum.tooltip.ink_powered.bullet.orange": "§6â—†%d§6橙色墨水§r", + "spectrum.tooltip.ink_powered.bullet.pink": "§dâ—†%d§d粉红色墨水§r", + "spectrum.tooltip.ink_powered.bullet.purple": "§5â—†%d§5紫色墨水§r", + "spectrum.tooltip.ink_powered.bullet.red": "§câ—†%d§c红色墨水§r", + "spectrum.tooltip.ink_powered.empty": "空", + "spectrum.tooltip.ink_powered.stored": "已存储:", + "spectrum.tooltip.ink_powered.unselect_color": "å–æ¶ˆé€‰å–颜色", + "spectrum.tooltip.ink_powered.percent_filled": "%d墨水(%d%%)", + + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.cyan": " %d§b é’色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.magenta": " %d§d å“红色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.yellow": " %d§e 黄色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.black": " %d§8 黑色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.white": " %d§f 白色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.blue": " %d§9 è“色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.brown": " %d§6 棕色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.gray": " %d§8 ç°è‰²å¢¨æ°´Â§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.green": " %d§2 绿色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.light_blue": " %d§3 æ·¡è“色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.light_gray": " %d§7 æ·¡ç°è‰²Â§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.lime": " %d§a 黄绿色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.orange": " %d§6 橙色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.pink": " %d§d 粉红色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.purple": " %d§5 紫色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.ink_for_next_step.red": " %d§c 红色墨水§r 以å‡çº§åˆ°ä¸‹ä¸€é˜¶æ®µ", + "spectrum.tooltip.ink_drain.tooltip.maxed_out": "§fâ­Â§r 已满 §fâ­Â§r", + + "spectrum.recipe.fusion_shrine.explanation.onyx_shard": "须在新月时的åˆå¤œè¿›è¡Œ", + "spectrum.recipe.fusion_shrine.explanation.decay_away": "须在晴天进行", + "spectrum.recipe.fusion_shrine.explanation.ominous_sapling": "须在白天进行", + "spectrum.recipe.fusion_shrine.explanation.stratine_gem": "须在雷暴天进行", + "spectrum.recipe.fusion_shrine.explanation.paltaeria_gem": "须在雷暴天进行", + "spectrum.recipe.fusion_shrine.explanation.midnight_aberration": "须在天晴的白天时进行", + "spectrum.recipe.fusion_shrine.explanation.spectral_shard": "完美的化åˆç‰©", + "spectrum.recipe.fusion_shrine.explanation.netherite_ingot": "风险和回报毕竟并存……", + "spectrum.recipe.fusion_shrine.explanation.weather_clear": "将天气转为晴天", + "spectrum.recipe.fusion_shrine.explanation.weather_rain": "将天气转为雨天", + "spectrum.recipe.fusion_shrine.explanation.weather_thunder": "将天气转为雷暴天", + "spectrum.recipe.fusion_shrine.explanation.dreamflayer": "须在满月的åˆå¤œè¿›è¡Œ", + "spectrum.recipe.fusion_shrine.explanation.shooting_star_hardening": "ç¡¬åŒ–æµæ˜Ÿï¼Œä½¿å…¶æ— æ³•æŸå", + "spectrum.recipe.fusion_shrine.explanation.egg_laying_wooly_pig_head": "", + + "spectrum.tooltip.dragon_and_wither_immune": "§7å…疫末影龙和凋çµ", + + "enchantment.spectrum.resonance": "共振", + "enchantment.spectrum.resonance.desc": "ç”¨æ¸©å’Œçš„æŒ¯åŠ¨ä½¿ä¸€äº›æ–¹å—æŽ‰è½è‡ªèº«", + "enchantment.spectrum.pest_control": "害虫防治", + "enchantment.spectrum.pest_control.desc": "ç ´åè¢«è™«èš€çš„æ–¹å—æ—¶å…于蠹虫的侵扰", + "enchantment.spectrum.autosmelt": "自动烧炼", + "enchantment.spectrum.autosmelt.desc": "自动烧炼被破å的方å—", + "enchantment.spectrum.inventory_insertion": "自动收集", + "enchantment.spectrum.inventory_insertion.desc": "将破å的方å—è‡ªåŠ¨æ”¾åˆ°ç‰©å“æ ä¸­", + "enchantment.spectrum.voiding": "§c虚空诅咒", + "enchantment.spectrum.voiding.desc": "é”€æ¯æ‰€æœ‰è¢«ç ´å的方å—", + "enchantment.spectrum.exuberance": "ç»éªŒå……æ²›", + "enchantment.spectrum.exuberance.desc": "增加掉è½çš„ç»éªŒ", + "enchantment.spectrum.treasure_hunter": "奇ç猎手", + "enchantment.spectrum.treasure_hunter.desc": "在击æ€ç”Ÿç‰©æ—¶æœ‰å‡ çŽ‡æŽ‰è½å¤´", + "enchantment.spectrum.disarming": "缴械", + "enchantment.spectrum.disarming.desc": "有概率使敌人掉è½ä»–们的装备", + "enchantment.spectrum.first_strike": "å…ˆå‘制人", + "enchantment.spectrum.first_strike.desc": "增加对满生命值敌人的伤害值", + "enchantment.spectrum.improved_critical": "暴击增强", + "enchantment.spectrum.improved_critical.desc": "增加暴击伤害", + "enchantment.spectrum.inertia": "惯性", + "enchantment.spectrum.inertia.desc": "é™ä½ŽæŒ–掘速度,但连续挖掘相åŒç±»åž‹çš„æ–¹å—时增加挖掘速度", + "enchantment.spectrum.clovers_favor": "å››å¶è‰çš„眷佑", + "enchantment.spectrum.clovers_favor.desc": "增加得到稀有掉è½ç‰©çš„æ¦‚率", + "enchantment.spectrum.sniper": "狙击", + "enchantment.spectrum.sniper.desc": "增加弹射物的速度", + "enchantment.spectrum.tight_grip": "åˆ©è½æŠŠæŸ„", + "enchantment.spectrum.tight_grip.desc": "é™ä½Žæ”»å‡»å†·å´", + "enchantment.spectrum.steadfast": "åšéŸ§", + "enchantment.spectrum.steadfast.desc": "掉è½ç‰©çжæ€ä¸‹å…ç–«ç»å¤§å¤šæ•°ç±»åž‹çš„伤害", + "enchantment.spectrum.indestructible": "åšä¸å¯æ‘§", + "enchantment.spectrum.indestructible.desc": "使工具完全ä¸å¯ç ´å", + "enchantment.spectrum.big_catch": "æ•鱼达人", + "enchantment.spectrum.big_catch.desc": "有更高几率直接æ•获活体生物", + + "spectrum.subtitles.paintbrush_trigger": "画笔:激活", + "spectrum.subtitles.paintbrush_paint": "画笔:涂鸦", + "spectrum.subtitles.ink_projectile_hit": "墨水:击中方å—", + "spectrum.subtitles.celestial_pocket_watch_ticking": "天体怀表:滴答", + "spectrum.subtitles.shooting_star_cracker": "æµæ˜Ÿï¼šç ´è£‚", + "spectrum.subtitles.block.memory.advance": "回忆:å†å¡‘", + "spectrum.subtitles.block.mud.ambient": "泥浆:æµåЍ", + "spectrum.subtitles.block.liquid_crystal.ambient": "液体水晶:鸣å“", + "spectrum.subtitles.block.midnight_solution.ambient": "åˆå¤œæº¶æ¶²ï¼šå˜¶å¼", + "spectrum.subtitles.dimension.ambient": "洞穴:呼啸", + "spectrum.subtitles.blocks.pedestal.crafting_finished": "七彩基座:å®å½“", + "spectrum.subtitles.block.fading.place": "å°–é”的声音", + "spectrum.subtitles.block.failing.place": "å°–é”的声音", + "spectrum.subtitles.block.ruin.place": "å°–é”的声音", + "spectrum.subtitles.spectrum_theme_plays": "光谱主题曲:播放", + "spectrum.subtitles.boss_theme_plays": "Boss主题曲:播放", + "spectrum.subtitles.deeper_down_theme_plays": "渊深领域主题曲:播放", + "spectrum.subtitles.dimension_ambient": "洞穴:呼啸", + "spectrum.subtitles.player_teleports": "玩家:传é€", + "spectrum.subtitles.puff_circlet": "蓬蓬头ç®ï¼šå™—å—¤", + "spectrum.subtitles.ender_splice_charges": "末影连弦:充能", + "spectrum.subtitles.ender_splice_binds": "末影连弦:绑定", + "spectrum.subtitles.use_fail": "使用失败", + "spectrum.subtitles.natures_staff_use": "å’Œè°çš„æ—‹å¾‹ï¼šé¸£å“", + "spectrum.subtitles.block.black_hole_chest.open": "黑洞箱:打开", + "spectrum.subtitles.block.black_hole_chest.close": "黑洞箱:关闭", + "spectrum.subtitles.radiance_staff_charging": "闪电法æ–:充能", + "spectrum.subtitles.radiance_staff_place": "闪电法æ–:施法", + "spectrum.subtitles.radiance_staff_break": "闪电法æ–::被破å", + "spectrum.subtitles.fusion_shrine_ambient": "èžåˆåœ£å›ï¼šå—¡å—¡", + "spectrum.subtitles.fusion_shrine_crafting_finished": "低声轰鸣", + "spectrum.subtitles.fusion_shrine_crafting_aborted": "ç‰©å“æŽ‰è½", + "spectrum.subtitles.exchanging_staff.select": "äº¤æ¢æ³•æ–:鸣å“", + "spectrum.subtitles.text_revealed": "七彩世界指å—:鸣å“", + "spectrum.subtitles.radiance_pin_trigger": "è¾èŠ’èƒ¸é’ˆ: 触å‘", + "spectrum.subtitles.air_launch_belt_charging": "弹射腰带: 充能", + "spectrum.subtitles.midnight_aberration_crumbling": "åˆå¤œåƒå·®: 崩溃", + "spectrum.subtitles.structure_success": "风铃: 鸣å“", + "spectrum.subtitles.dreamflayer_activates": "离梦利刃:激活", + "spectrum.subtitles.dreamflayer_deactivates": "ç¦»æ¢¦åˆ©åˆƒï¼šåœæ­¢", + + "subtitles.block.citrine_block.chime": "黄水晶: 鸣å“", + "subtitles.block.topaz_block.chime": "托帕石: 鸣å“", + "subtitles.block.onyx_block.chime": "缟玛瑙: 鸣å“", + "subtitles.block.moonstone_block.chime": "月长石: 鸣å“", + + "spectrum.toast.revelation.title": "你获得了这个世界的知识", + "spectrum.toast.revelation.text": "新的事物展现在了你的é¢å‰", + "spectrum.toast.anvil_crushing_recipe_unlocked.title": "æ–°çš„ç²‰ç¢Žé…æ–¹ï¼š", + "spectrum.toast.anvil_crushing_recipes_unlocked.title": "æ–°çš„ç²‰ç¢Žé…æ–¹ï¼š", + "spectrum.toast.pedestal_recipe_unlocked.title": "æ–°çš„ä¸ƒå½©åŸºåº§é…æ–¹ï¼š", + "spectrum.toast.pedestal_recipes_unlocked.title": "æ–°çš„ä¸ƒå½©åŸºåº§é…æ–¹ï¼š", + "spectrum.toast.fusion_shrine_recipe_unlocked.title": "æ–°çš„èžåˆåœ£å›é…方:", + "spectrum.toast.fusion_shrine_recipes_unlocked.title": "æ–°çš„èžåˆåœ£å›é…方:", + "spectrum.toast.enchanter_recipe_unlocked.title": "æ–°çš„æ³¨é­”åŸºåº§é…æ–¹ï¼š", + "spectrum.toast.enchanter_recipes_unlocked.title": "æ–°çš„æ³¨é­”åŸºåº§é…æ–¹ï¼š", + "spectrum.toast.enchantment_upgrade_recipe_unlocked.title": "新的附魔å‡çº§ï¼š", + "spectrum.toast.enchantment_upgrade_recipes_unlocked.title": "新的附魔å°é…方:", + "spectrum.toast.potion_workshop_crafting_recipe_unlocked.title": "æ–°çš„è¯æ°´å·¥ä½œç«™é…方:", + "spectrum.toast.potion_workshop_crafting_recipes_unlocked.title": "æ–°çš„è¯æ°´å·¥ä½œç«™é…方:", + "spectrum.toast.potion_workshop_brewing_recipe_unlocked.title": "æ–°çš„è¯æ°´å·¥ä½œç«™é…方:", + "spectrum.toast.potion_workshop_brewing_recipes_unlocked.title": "æ–°çš„è¯æ°´å·¥ä½œç«™é…方:", + "spectrum.toast.spirit_instiller_recipe_unlocked.title": "æ–°çš„çµé­‚çŒæ³¨å°é…方:", + "spectrum.toast.spirit_instiller_recipes_unlocked.title": "æ–°çš„çµé­‚çŒæ³¨å°é…方:", + "spectrum.toast.ink_converting_recipe_unlocked.title": "新的墨水转æ¢é…方:", + "spectrum.toast.ink_converting_recipes_unlocked.title": "新的墨水转æ¢é…方:", + "spectrum.toast.potion_workshop_reacting_recipes_unlocked.title": "æ–°çš„è¯æ°´è¯•剂:", + "spectrum.toast.potion_workshop_reacting_recipe_unlocked.title": "æ–°çš„è¯æ°´è¯•剂:", + "spectrum.toast.crystallarieum_recipe_unlocked.title": "æ–°ç»“æ™¶å®¤é…æ–¹ï¼š", + "spectrum.toast.crystallarieum_recipes_unlocked.title": "æ–°ç»“æ™¶å®¤é…æ–¹ï¼š", + "spectrum.toast.cinderhearth_recipe_unlocked.title": "æ–°ç‚¼åŒ–ç‚‰é…æ–¹ï¼š", + "spectrum.toast.cinderhearth_recipes_unlocked.title": "æ–°ç‚¼åŒ–ç‚‰é…æ–¹ï¼š", + "spectrum.toast.titration_barrel_recipe_unlocked.title": "æ–°çš„å‘酵酿–¹ï¼š", + "spectrum.toast.titration_barrel_recipes_unlocked.title": "æ–°çš„å‘酵酿–¹ï¼š", + "spectrum.toast.midnight_solution_converting_recipe_unlocked.title": "æ–°çš„åˆå¤œæº¶æ¶²é…方:", + "spectrum.toast.midnight_solution_converting_recipes_unlocked.title": "æ–°çš„åˆå¤œæº¶æ¶²é…方:", + + "spectrum.toast.message.second_advancement_tree_unlocked.title": "第二章:堕è½", + "spectrum.toast.message.second_advancement_tree_unlocked.text": "ä½ è§£é”了一个新的进度分支", + "spectrum.toast.message.third_advancement_tree_unlocked.title": "第三章:纯化", + "spectrum.toast.message.third_advancement_tree_unlocked.text": "ä½ è§£é”了一个新的进度分支", + "spectrum.toast.message.shooting_stars_unlocked.title": "星之庇佑", + "spectrum.toast.message.shooting_stars_unlocked.text": "ä½ èŽ·å¾—äº†å¤œç©ºçš„æ©æƒ ", + "spectrum.toast.message.overchanting_unlocked.title": "附魔学徒", + "spectrum.toast.message.overchanting_unlocked.text": "将附魔超越原版等级上é™", + "spectrum.toast.message.enchant_conflicting_enchantments_unlocked.title": "附魔专精", + "spectrum.toast.message.enchant_conflicting_enchantments_unlocked.text": "çªç ´é™„魔冲çªçš„é™åˆ¶", + "spectrum.toast.message.fourth_potion_reagent_unlocked.title": "炼制专精", + "spectrum.toast.message.fourth_potion_reagent_unlocked.text": "在炼制中使用第四ç§ç‚¼æ", + "spectrum.toast.message.block_coloring_unlocked.title": "新画笔功能:", + "spectrum.toast.message.block_coloring_unlocked.text": "æ–¹å—上色", + "spectrum.toast.message.paint_flinging_unlocked.title": "新画笔功能:", + "spectrum.toast.message.paint_flinging_unlocked.text": "墨水喷射", + + "text.autoconfig.Spectrum.option.ToastTimeMilliseconds": "以毫秒为å•ä½ï¼Œåœ¨å±å¹•上显示游æˆå†…çš„é…æ–¹æˆ–è§£é”弹窗", + "text.autoconfig.Spectrum.option.BedrockAnvilCanExceedMaxVanillaEnchantmentLevel": "基岩é“砧能超过的最大附魔等级", + "text.autoconfig.Spectrum.option.CitrineGeodeMinAboveBottomGenerationHeight": "é»„æ°´æ™¶æ´žç”Ÿæˆæœ€ä½Žé«˜åº¦ï¼ˆä¸–界高度)", + "text.autoconfig.Spectrum.option.CitrineGeodeFixedMaxGenerationHeight": "é»„æ°´æ™¶æ´žç”Ÿæˆæœ€é«˜é«˜åº¦ï¼ˆY值)", + "text.autoconfig.Spectrum.option.TopazGeodeMinFixedGenerationHeight": "æ‰˜å¸•çŸ³æ™¶æ´žç”Ÿæˆæœ€ä½Žé«˜åº¦ï¼ˆY值)", + "text.autoconfig.Spectrum.option.TopazGeodeMaxBelowTopGenerationHeight": "æ‰˜å¸•çŸ³æ™¶æ´žç”Ÿæˆæœ€é«˜é«˜åº¦ï¼ˆä»Žæœ€å¤§Y值算起)", + "text.autoconfig.Spectrum.option.TopazGeodeChunkChance": "托帕石晶洞生æˆå‡ çŽ‡ï¼ˆåŒºå—)", + "text.autoconfig.Spectrum.option.CitrineGeodeChunkChance": "黄水晶洞生æˆå‡ çŽ‡ï¼ˆåŒºå—)", + "text.autoconfig.Spectrum.option.MoonstoneGeodeChunkChance": "月长石晶洞生æˆå‡ çŽ‡ï¼ˆåŒºå—)", + "text.autoconfig.Spectrum.option.EndermanHoldingEnderTreasureChance": "末影人手æŒç‰¹æ®Šæ–¹å—几率", + "text.autoconfig.Spectrum.option.EndermanHoldingEnderTreasureInEndChance": "末地中末影人手æŒç‰¹æ®Šæ–¹å—几率", + "text.autoconfig.Spectrum.option.ColoredTreePatchChanceChunk": "在所有X个区å—ä¸­è¯•å›¾ç”ŸæˆæŸ“色的树", + "text.autoconfig.Spectrum.option.ShootingStarWorlds": "å¸¦æœ‰æµæ˜Ÿçš„世界", + "text.autoconfig.Spectrum.option.ShootingStarChance": "æµæ˜Ÿæ¯100游æˆåˆ»æŽ‰è½çš„几率", + "text.autoconfig.Spectrum.option.LightningStonesWorlds": "生æˆé£Žæš´çŸ³çš„世界", + "text.autoconfig.Spectrum.option.LightningStonesChance": "æ¯æ¬¡é›·å‡»ç”Ÿæˆé£Žæš´çŸ³çš„æ¦‚率", + "text.autoconfig.Spectrum.option.QuitoxicReedsGenerationBiomes": "奇毒苇生æˆçš„群系", + "text.autoconfig.Spectrum.option.MermaidsBrushChanceChunk": "美人鱼è‰çš„区å—ç”Ÿæˆæ¦‚率", + "text.autoconfig.Spectrum.option.QuitoxicReedsCountPerChunk": "奇毒苇的区å—ç”Ÿæˆæ•°é‡", + "text.autoconfig.Spectrum.option.VanillaRecipeCraftingTimeTicks": "ä¸ƒå½©åŸºåº§åˆæˆåŽŸç‰ˆé…æ–¹æ‰€éœ€æ¸¸æˆåˆ»æ•°", + "text.autoconfig.Spectrum.option.FadingDecayTickRate": "褪解微生物扩散速度", + "text.autoconfig.Spectrum.option.FailingDecayTickRate": "蚀解微生物扩散速度", + "text.autoconfig.Spectrum.option.RuinDecayTickRate": "åç­å¾®ç”Ÿç‰©æ‰©æ•£é€Ÿåº¦", + "text.autoconfig.Spectrum.option.TerrorDecayTickRate": "收缴微生物扩散速度", + + "text.autoconfig.Spectrum.option.GemstoneArmorHelmetProtection": "å®çŸ³æ™¶å¤´ç›”护甲值", + "text.autoconfig.Spectrum.option.GemstoneArmorChestplateProtection": "å®çŸ³æ™¶èƒ¸ç”²æŠ¤ç”²å€¼", + "text.autoconfig.Spectrum.option.GemstoneArmorLeggingsProtection": "å®çŸ³æ™¶æŠ¤è…¿æŠ¤ç”²å€¼", + "text.autoconfig.Spectrum.option.GemstoneArmorBootsProtection": "å®çŸ³æ™¶é´å­æŠ¤ç”²å€¼", + "text.autoconfig.Spectrum.option.GemstoneArmorToughness": "å®çŸ³æ™¶ç›”甲韧性", + "text.autoconfig.Spectrum.option.GemstoneArmorKnockbackResistance": "å®çŸ³æ™¶ç›”甲击退抗性", + + "text.autoconfig.Spectrum.option.GemstoneArmorWeaknessAmplifier": "å®çŸ³æ™¶ç›”甲虚弱效果等级", + "text.autoconfig.Spectrum.option.GemstoneArmorSlownessAmplifier": "å®çŸ³æ™¶ç›”甲缓慢效果等级", + "text.autoconfig.Spectrum.option.GemstoneArmorAbsorptionAmplifier": "å®çŸ³æ™¶ç›”ç”²ä¼¤å®³å¸æ”¶æ•ˆæžœç­‰çº§", + "text.autoconfig.Spectrum.option.GemstoneArmorResistanceAmplifier": "å®çŸ³æ™¶ç›”甲抗性æå‡æ•ˆæžœç­‰çº§", + "text.autoconfig.Spectrum.option.GemstoneArmorRegenerationAmplifier": "å®çŸ³æ™¶ç›”甲生命æ¢å¤æ•ˆæžœç­‰çº§", + "text.autoconfig.Spectrum.option.GemstoneArmorSpeedAmplifier": "å®çŸ³æ™¶ç›”甲速度效果等级", + + "text.autoconfig.Spectrum.option.BedrockArmorHelmetProtection": "基岩头盔护甲值", + "text.autoconfig.Spectrum.option.BedrockArmorLeggingsProtection": "基岩护腿护甲值", + "text.autoconfig.Spectrum.option.BedrockArmorChestplateProtection": "基岩胸甲护甲值", + "text.autoconfig.Spectrum.option.BedrockArmorBootsProtection": "基岩护腿护甲值", + "text.autoconfig.Spectrum.option.BedrockArmorToughness": "基岩盔甲韧性", + "text.autoconfig.Spectrum.option.BedrockArmorKnockbackResistance": "基岩盔甲击退抗性", + + "text.autoconfig.Spectrum.option.MaxLevelForEffectsInLesserPotionPendant": "å°åž‹è¯æ°´åŠå çš„çŠ¶æ€æ•ˆæžœæœ€å¤§ç­‰çº§", + "text.autoconfig.Spectrum.option.MaxLevelForEffectsInGreaterPotionPendant": "å¤§åž‹è¯æ°´åŠå çš„çŠ¶æ€æ•ˆæžœæœ€å¤§ç­‰çº§", + + "text.autoconfig.Spectrum.option.AutoSmeltEnchantmentEnabled": "是å¦å¯èŽ·å¾— 自动烧炼 附魔", + "text.autoconfig.Spectrum.option.ExuberanceEnchantmentEnabled": "是å¦å¯èŽ·å¾— ç»éªŒå……æ²› 附魔", + "text.autoconfig.Spectrum.option.InventoryInsertionEnchantmentEnabled": "是å¦å¯èŽ·å¾— 自动收集 附魔", + "text.autoconfig.Spectrum.option.PestControlEnchantmentEnabled": "是å¦å¯èŽ·å¾— 害虫防治 附魔", + "text.autoconfig.Spectrum.option.ResonanceEnchantmentEnabled": "是å¦å¯èŽ·å¾— 共振 附魔", + "text.autoconfig.Spectrum.option.TreasureHunterEnchantmentEnabled": "是å¦å¯èŽ·å¾— 奇ç猎手 附魔", + "text.autoconfig.Spectrum.option.DisarmingEnchantmentEnabled": "是å¦å¯èŽ·å¾— 缴械 附魔", + "text.autoconfig.Spectrum.option.FirstStrikeEnchantmentEnabled": "是å¦å¯èŽ·å¾— å…ˆå‘制人 附魔", + "text.autoconfig.Spectrum.option.ImprovedCriticalEnchantmentEnabled": "是å¦å¯èŽ·å¾— 暴击增强 附魔", + "text.autoconfig.Spectrum.option.InertiaEnchantmentEnabled": "是å¦å¯èŽ·å¾— 惯性 附魔", + "text.autoconfig.Spectrum.option.CloversFavorEnchantmentEnabled": "是å¦å¯èŽ·å¾— å››å¶è‰çš„眷佑 附魔", + "text.autoconfig.Spectrum.option.SniperEnchantmentEnabled": "是å¦å¯èŽ·å¾— 狙击 附魔", + "text.autoconfig.Spectrum.option.TightGripEnchantmentEnabled": "是å¦å¯èŽ·å¾— åˆ©è½æŠŠæŸ„ 附魔", + "text.autoconfig.Spectrum.option.SteadfastEnchantmentEnabled": "是å¦å¯èŽ·å¾— åšéŸ§ 附魔", + "text.autoconfig.Spectrum.option.IndestructibleEnchantmentEnabled": "是å¦å¯èŽ·å¾— åšä¸å¯æ‘§ 附魔", + "text.autoconfig.Spectrum.option.BigCatchEnchantmentEnabled": "是å¦å¯èŽ·å¾— æ•鱼达人 附魔", + + "text.autoconfig.Spectrum.option.TreasureHunterMaxLevel": "奇ç猎手 附魔最大等级", + "text.autoconfig.Spectrum.option.DisarmingMaxLevel": "缴械 附魔最大等级", + "text.autoconfig.Spectrum.option.FirstStrikeMaxLevel": "å…ˆå‘制人 附魔最大等级", + "text.autoconfig.Spectrum.option.CloversFavorMaxLevel": "å››å¶è‰çš„眷佑 附魔最大等级", + "text.autoconfig.Spectrum.option.ImprovedCriticalMaxLevel": "暴击增强 附魔最大等级", + "text.autoconfig.Spectrum.option.InertiaMaxLevel": "惯性 附魔最大等级", + "text.autoconfig.Spectrum.option.RareLootMaxLevel": "Rare Loot 附魔最大等级", + "text.autoconfig.Spectrum.option.TightGripMaxLevel": "åˆ©è½æŠŠæŸ„ 附魔最大等级", + "text.autoconfig.Spectrum.option.ExuberanceMaxLevel": "ç»éªŒå……æ²› 附魔最大等级", + "text.autoconfig.Spectrum.option.ExuberanceBonusExperiencePercentPerLevel": "带有ç»éªŒå……沛附魔的物å“击æ€ç”Ÿç‰©æ—¶æŽ‰è½çš„ç»éªŒå€¼", + "text.autoconfig.Spectrum.option.ImprovedCriticalExtraDamageMultiplierPerLevel": "æ¯çº§æš´å‡»å¢žå¼ºé™„é­”æå‡çš„伤害å€çއ", + "text.autoconfig.Spectrum.option.FirstStrikeDamagePerLevel": "æ¯çº§å…ˆå‘制人附魔增加的伤害", + "text.autoconfig.Spectrum.option.GlowVisionGogglesDuration": "è§å…‰ç›®é•œæä¾›æ•ˆæžœçš„æ—¶é—´ï¼ˆç§’)", + "text.autoconfig.Spectrum.option.DisarmingChancePerLevelMobs": "æ¯çº§ç¼´æ¢°é™„é­”ä½¿æ€ªç‰©æŽ‰è½æ­¦å™¨çš„æ¦‚率", + "text.autoconfig.Spectrum.option.DisarmingChancePerLevelPlayers": "æ¯çº§ç¼´æ¢°é™„é­”ä½¿çŽ©å®¶æŽ‰è½æ­¦å™¨çš„æ¦‚率", + + "text.autoconfig.Spectrum.option.BlockSoundVolume": "多方å—结构的音效音é‡å¤§å°", + "text.autoconfig.Spectrum.option.REIListsRecipesAsNotUnlocked": "在REI中显示未解é”çš„é…æ–¹æç¤º", + "text.autoconfig.Spectrum.option.azureDikeHudOffsetX": "è”šè“æŠ¤ç›¾å€¼æ˜¾ç¤ºæ åœ¨å±å¹•上的Xåæ ‡ä½ç½®ã€‚默认值:在生命值上方", + "text.autoconfig.Spectrum.option.azureDikeHudOffsetY": "è”šè“æŠ¤ç›¾å€¼æ˜¾ç¤ºæ åœ¨å±å¹•上的Yåæ ‡ä½ç½®ã€‚默认值:在生命值上方", + "text.autoconfig.Spectrum.option.azureDikeHudOffsetYWithArmor": "å­˜åœ¨æŠ¤ç”²å€¼æ—¶è”šè“æŠ¤ç›¾å€¼æ˜¾ç¤ºæ åœ¨å±å¹•上的Yåæ ‡ä½ç½®ã€‚默认值:在护甲值上方", + "text.autoconfig.Spectrum.option.azureDikeHudOffsetYForEachRowOfExtraHearts": "新增的æ¯ä¸€è¡Œè”šè“护盾值在å±å¹•上的Yåæ ‡å¢žé‡", + + "block.spectrum.upgrade_speed": "Içº§åˆæˆåŠ é€Ÿå™¨", + "block.spectrum.upgrade_speed2": "IIçº§åˆæˆåŠ é€Ÿå™¨", + "block.spectrum.upgrade_speed3": "IIIçº§åˆæˆåŠ é€Ÿå™¨", + "block.spectrum.upgrade_efficiency": "I级å应催化器", + "block.spectrum.upgrade_efficiency2": "II级å应催化器", + "block.spectrum.upgrade_yield": "I级转化率æå‡å™¨", + "block.spectrum.upgrade_yield2": "II级转化率æå‡å™¨", + "block.spectrum.upgrade_experience": "I级知识汇集器", + "block.spectrum.upgrade_experience2": "II级知识汇集器", + "item.spectrum.upgrade_speed.tooltip": "略微æå‡åˆæˆé€Ÿåº¦", + "item.spectrum.upgrade_speed2.tooltip": "显著æå‡åˆæˆé€Ÿåº¦", + "item.spectrum.upgrade_speed3.tooltip": "巨幅æå‡åˆæˆé€Ÿåº¦", + "item.spectrum.upgrade_efficiency.tooltip": "å°æ¦‚çŽ‡ä¸æ¶ˆè€—å应原料", + "item.spectrum.upgrade_efficiency2.tooltip": "ä¸€å®šæ¦‚çŽ‡ä¸æ¶ˆè€—å应原料", + "item.spectrum.upgrade_yield.tooltip": "å°æ¦‚çŽ‡å¢žåŠ åˆæˆäº§é‡", + "item.spectrum.upgrade_yield2.tooltip": "ä¸€å®šæ¦‚çŽ‡å¢žåŠ åˆæˆäº§é‡", + "item.spectrum.upgrade_experience.tooltip": "略微增加/å‡å°‘åˆæˆå¾—到/消耗的ç»éªŒ", + "item.spectrum.upgrade_experience2.tooltip": "巨幅增加/å‡å°‘åˆæˆå¾—到/消耗的ç»éªŒ", + "item.spectrum.upgrade.tooltip_increase": "åŒç±»å¢žç›Šå™¨æ•ˆæžœå åŠ ï¼Œä½†åŠ æˆé€’å‡", + + "block.spectrum.fusion_shrine": "èžåˆåœ£å›", + "block.spectrum.fusion_shrine_basalt": "èžåˆåœ£å›", + "block.spectrum.fusion_shrine_calcite": "èžåˆåœ£å›", + "block.spectrum.enchanter": "注魔基座", + "block.spectrum.item_bowl_basalt": "物å“底座", + "block.spectrum.item_bowl_calcite": "物å“底座", + "block.spectrum.item_roundel": "ç‰©å“æ—‹è½®å°", + "block.spectrum.potion_workshop": "è¯æ°´å·¥ä½œç«™", + "block.spectrum.spirit_instiller": "çµé­‚çŒæ³¨å°", + "block.spectrum.crystallarieum": "结晶室", + "block.spectrum.cinderhearth": "炼化炉", + "block.spectrum.stonesetting_workshop": "å®çŸ³é•¶åµŒç«™", + + "block.spectrum.memory": "回忆", + "item.spectrum.memory.tooltip.entity_type": "§7记录ç€Â§f%s§7的回忆", + "item.spectrum.memory.tooltip.unrecognizable_entity_type": "è¯¥å›žå¿†æ¨¡ç³Šä¸æ¸…", + "item.spectrum.memory.tooltip.unset_entity_type": "é—忘的回忆", + "item.spectrum.memory.tooltip.extra_long_time_to_manifest": "具现化这份回忆将耗费æžé•¿æ—¶é—´", + "item.spectrum.memory.tooltip.long_time_to_manifest": "具现化这份回忆将耗费较长时间", + "item.spectrum.memory.tooltip.medium_time_to_manifest": "å¯èƒ½åœ¨æŽ¥ä¸‹æ¥çš„几天中具现化", + "item.spectrum.memory.tooltip.short_time_to_manifest": "这份回忆将很快具现化ï¼", + "item.spectrum.memory.tooltip.does_not_manifest": "你一生都无法具现化这份回忆", + + "block.spectrum.black_materia": "黑暗物质", + + "block.spectrum.preservation_controller": "防护控制器", + "block.spectrum.preservation_stone": "防护石", + "block.spectrum.preservation_glass": "防护玻璃", + "block.spectrum.tinted_preservation_glass": "é®å…‰é˜²æŠ¤çŽ»ç’ƒ", + "block.spectrum.preservation_bricks": "防护砖å—", + "block.spectrum.shimmering_preservation_bricks": "è§å…‰é˜²æŠ¤ç –å—", + "block.spectrum.powder_chiseled_preservation_stone": "錾制充能防护石", + "block.spectrum.dike_chiseled_preservation_stone": "錾制蔚è“防护石", + "block.spectrum.preservation_roundel": "é˜²æŠ¤ç‰©å“æ—‹è½®å°", + "block.spectrum.dike_gate": "蔚è“力场", + "block.spectrum.dike_gate_fountain": "è”šè“æºæ³‰", + "block.spectrum.invisible_wall": "éšå½¢ä¹‹å¢™", + "block.spectrum.courier_statue": "远å¤é›•åƒ", + "block.spectrum.treasure_chest": "å¤ä»£è—å®ç®±", + + "block.spectrum.blackslag": "黢黑矿渣", + "block.spectrum.blackslag_coal_ore": "黢黑煤矿石", + "block.spectrum.blackslag_iron_ore": "黢黑é“矿石", + "block.spectrum.blackslag_gold_ore": "黢黑金矿石", + "block.spectrum.blackslag_diamond_ore": "黢黑钻石矿石", + "block.spectrum.blackslag_redstone_ore": "黢黑红石矿石", + "block.spectrum.blackslag_lapis_ore": "黢黑é’金石矿石", + "block.spectrum.blackslag_emerald_ore": "黢黑绿å®çŸ³çŸ¿çŸ³", + "block.spectrum.blackslag_shimmerstone_ore": "黢黑闪光石矿石", + "block.spectrum.blackslag_malachite_ore": "黢黑孔雀石矿石", + + "block.spectrum.jade_vines": "玉藤", + "block.spectrum.jade_vine_petal_block": "玉藤花瓣å—", + "block.spectrum.jade_vine_petal_carpet": "玉藤花瓣地毯", + + "block.spectrum.spirit_sallow_roots": "é­‚çµæŸ³æ ¹", + "block.spectrum.spirit_sallow_log": "é­‚çµåŽŸæœ¨", + "block.spectrum.spirit_sallow_leaves": "é­‚çµæŸ³æ ‘å¶", + "block.spectrum.spirit_sallow_heart": "é­‚çµæŸ³ä¹‹å¿ƒ", + "block.spectrum.sacred_soil": "神圣土壤", + "block.spectrum.wand_light": "闪光石ç¯", + "block.spectrum.bedrock_storage_block": "基岩粉å—", + "block.spectrum.shimmerstone_ore": "闪光石矿石", + "block.spectrum.deepslate_shimmerstone_ore": "深层闪光石矿石", + "block.spectrum.shimmerstone_block": "闪光石å—", + "block.spectrum.azurite_ore": "石é’矿石", + "block.spectrum.deepslate_azurite_ore": "深层石é’矿石", + "block.spectrum.azurite_block": "石é’å—", + "block.spectrum.quitoxic_reeds": "奇毒苇", + "block.spectrum.mermaids_brush": "美人鱼è‰", + "block.spectrum.lava_sponge": "熔岩海绵", + "block.spectrum.wet_lava_sponge": "湿熔岩海绵", + "item.spectrum.wet_lava_sponge.tooltip": "§e⚠警告: å°å¿ƒé«˜æ¸©âš ", + + "item.spectrum.amaranth_grains": "è‹‹èœç±½", + "block.spectrum.amaranth": "è‹‹èœ", + "block.spectrum.amaranth_bushel": "è‹‹èœ", + "block.spectrum.potted_amaranth_bushel": "è‹‹èœç›†æ ½", + + "block.spectrum.amethyst_decostone": "紫水晶摆件", + "block.spectrum.topaz_decostone": "托帕石摆件", + "block.spectrum.citrine_decostone": "黄水晶摆件", + "block.spectrum.moonstone_decostone": "月长石摆件", + "block.spectrum.onyx_decostone": "缟玛瑙摆件", + + "block.spectrum.amethyst_chime": "紫水晶风铃", + "block.spectrum.topaz_chime": "托帕石风铃", + "block.spectrum.citrine_chime": "黄水晶风铃", + "block.spectrum.moonstone_chime": "月长石风铃", + "block.spectrum.onyx_chime": "缟玛瑙风铃", + + "block.spectrum.clover": "三å¶è‰", + "block.spectrum.four_leaf_clover": "å››å¶è‰", + "block.spectrum.ethereal_platform": "缥缈平å°", + "block.spectrum.universe_spyhole": "全视é€é•œ", + "block.spectrum.ender_glass": "末影玻璃", + "block.spectrum.redstone_sand": "红石沙å­", + "block.spectrum.stuck_storm_stone": "风暴石", + "block.spectrum.ender_dropper": "末影投掷器", + "block.spectrum.ender_hopper": "æœ«å½±æ¼æ–—", + "block.spectrum.compacting_chest": "压缩箱", + "block.spectrum.compacting_chest.toggle_crafting_mode": "切æ¢åˆæˆæ–¹å¼", + "block.spectrum.restocking_chest": "装é…ç®±", + "block.spectrum.black_hole_chest": "黑洞箱", + "block.spectrum.private_chest": "心çµç»“å°ç®±", + "block.spectrum.ominous_sapling": "ä¸ç¥¥æ ‘è‹—", + "block.spectrum.bedrock_anvil": "基岩é“ç §", + "block.spectrum.radiating_ender": "è¾å°„端å£", + "block.spectrum.blazing_crystal": "炽热水晶", + "block.spectrum.frostbite_crystal": "霜冻水晶", + "block.spectrum.resonant_lily": "共振百åˆ", + "block.spectrum.player_detector": "玩家探测器", + "block.spectrum.item_detector": "ç‰©å“æŽ¢æµ‹å™¨", + "block.spectrum.weather_detector": "天气探测器", + "block.spectrum.light_level_detector": "æ–¹å—光探测器", + "block.spectrum.entity_detector": "生物探测器", + "block.spectrum.block_placer": "æ–¹å—æ”¾ç½®å™¨", + "block.spectrum.redstone_wireless": "无线红石", + + "block.spectrum.redstone_calculator": "红石计算器", + "block.spectrum.redstone_calculator.mode_set": "红石计算器已被设为:", + "block.spectrum.redstone_calculator.mode.addition": "加法模å¼", + "block.spectrum.redstone_calculator.mode.subtraction": "凿³•模å¼", + "block.spectrum.redstone_calculator.mode.multiplication": "乘法模å¼", + "block.spectrum.redstone_calculator.mode.division": "除法模å¼", + "block.spectrum.redstone_calculator.mode.modulo": "å–æ¨¡æ¨¡å¼", + "block.spectrum.redstone_calculator.mode.min": "最å°å€¼æ¨¡å¼", + "block.spectrum.redstone_calculator.mode.max": "最大值模å¼", + + "block.spectrum.redstone_timer": "红石计时器", + "block.spectrum.redstone_timer.setting.active": "激活时间被设为:", + "block.spectrum.redstone_timer.setting.inactive": "åœç”¨æ—¶é—´è¢«è®¾ä¸ºï¼š", + "block.spectrum.redstone_timer.setting.one_second": "1ç§’", + "block.spectrum.redstone_timer.setting.ten_seconds": "10ç§’", + "block.spectrum.redstone_timer.setting.one_minute": "1分钟", + "block.spectrum.redstone_timer.setting.ten_minutes": "10分钟", + "block.spectrum.redstone_timer.setting.one_hour": "1å°æ—¶", + + "block.spectrum.cyan_spirit_sallow_vines_head": "é’è‰²é­‚çµæŸ³è—¤", + "block.spectrum.magenta_spirit_sallow_vines_head": "å“çº¢è‰²é­‚çµæŸ³è—¤", + "block.spectrum.yellow_spirit_sallow_vines_head": "é»„è‰²é­‚çµæŸ³è—¤", + "block.spectrum.white_spirit_sallow_vines_head": "ç™½è‰²é­‚çµæŸ³è—¤", + "block.spectrum.black_spirit_sallow_vines_head": "é»‘è‰²é­‚çµæŸ³è—¤", + "block.spectrum.cyan_spirit_sallow_vines_body": "é’è‰²é­‚çµæŸ³è—¤", + "block.spectrum.magenta_spirit_sallow_vines_body": "å“çº¢è‰²é­‚çµæŸ³è—¤", + "block.spectrum.yellow_spirit_sallow_vines_body": "é»„è‰²é­‚çµæŸ³è—¤", + "block.spectrum.white_spirit_sallow_vines_body": "ç™½è‰²é­‚çµæŸ³è—¤", + "block.spectrum.black_spirit_sallow_vines_body": "é»‘è‰²é­‚çµæŸ³è—¤", + + "block.spectrum.basalt_shimmerstone_light": "玄武岩制闪光石ç¯", + "block.spectrum.calcite_shimmerstone_light": "方解石制闪光石ç¯", + "block.spectrum.stone_shimmerstone_light": "石制闪光石ç¯", + "block.spectrum.granite_shimmerstone_light": "花岗岩制闪光石ç¯", + "block.spectrum.diorite_shimmerstone_light": "闪长岩制闪光石ç¯", + "block.spectrum.andesite_shimmerstone_light": "安山岩制闪光石ç¯", + "block.spectrum.deepslate_shimmerstone_light": "æ·±æ¿å²©åˆ¶é—ªå…‰çŸ³ç¯", + + "block.spectrum.amethyst_storage_block": "磨制紫水晶å—", + "block.spectrum.citrine_storage_block": "磨制黄水晶å—", + "block.spectrum.topaz_storage_block": "磨制托帕石晶å—", + "block.spectrum.onyx_storage_block": "磨制缟玛瑙晶å—", + "block.spectrum.moonstone_storage_block": "磨制月长石晶å—", + "block.spectrum.spectral_shard_storage_block": "磨制七彩碎片å—", + + "block.spectrum.black_block": "黑色方å—", + "block.spectrum.blue_block": "è“色方å—", + "block.spectrum.brown_block": "棕色方å—", + "block.spectrum.cyan_block": "é’色方å—", + "block.spectrum.gray_block": "ç°è‰²æ–¹å—", + "block.spectrum.green_block": "绿色方å—", + "block.spectrum.light_blue_block": "æ·¡è“色方å—", + "block.spectrum.light_gray_block": "æ·¡ç°è‰²æ–¹å—", + "block.spectrum.lime_block": "黄绿色方å—", + "block.spectrum.magenta_block": "å“红色方å—", + "block.spectrum.orange_block": "橙色方å—", + "block.spectrum.pink_block": "粉红色方å—", + "block.spectrum.purple_block": "紫色方å—", + "block.spectrum.red_block": "红色方å—", + "block.spectrum.white_block": "白色方å—", + "block.spectrum.yellow_block": "黄色方å—", + + "block.spectrum.black_spore_blossom": "黑色孢å­èб", + "block.spectrum.blue_spore_blossom": "è“色孢å­èб", + "block.spectrum.brown_spore_blossom": "棕色孢å­èб", + "block.spectrum.cyan_spore_blossom": "é’色孢å­èб", + "block.spectrum.gray_spore_blossom": "ç°è‰²å­¢å­èб", + "block.spectrum.green_spore_blossom": "绿色孢å­èб", + "block.spectrum.light_blue_spore_blossom": "æ·¡è“色孢å­èб", + "block.spectrum.light_gray_spore_blossom": "æ·¡ç°è‰²å­¢å­èб", + "block.spectrum.lime_spore_blossom": "绿色孢å­èб", + "block.spectrum.magenta_spore_blossom": "å“红色孢å­èб", + "block.spectrum.orange_spore_blossom": "橙色孢å­èб", + "block.spectrum.pink_spore_blossom": "粉红色孢å­èб", + "block.spectrum.purple_spore_blossom": "紫色孢å­èб", + "block.spectrum.red_spore_blossom": "红色孢å­èб", + "block.spectrum.white_spore_blossom": "白色孢å­èб", + "block.spectrum.yellow_spore_blossom": "黄色孢å­èб", + + "block.spectrum.black_sapling": "黑色树苗", + "block.spectrum.black_log": "黑色原木", + "block.spectrum.black_leaves": "黑色树å¶", + "block.spectrum.blue_sapling": "è“色树苗", + "block.spectrum.blue_log": "è“色原木", + "block.spectrum.blue_leaves": "è“色树å¶", + "block.spectrum.brown_sapling": "棕色树苗", + "block.spectrum.brown_log": "棕色原木", + "block.spectrum.brown_leaves": "棕色树å¶", + "block.spectrum.cyan_sapling": "é’色树苗", + "block.spectrum.cyan_log": "é’色原木", + "block.spectrum.cyan_leaves": "é’色树å¶", + "block.spectrum.gray_sapling": "ç°è‰²æ ‘è‹—", + "block.spectrum.gray_log": "ç°è‰²åŽŸæœ¨", + "block.spectrum.gray_leaves": "ç°è‰²æ ‘å¶", + "block.spectrum.green_sapling": "绿色树苗", + "block.spectrum.green_log": "绿色原木", + "block.spectrum.green_leaves": "绿色树å¶", + "block.spectrum.light_blue_sapling": "æ·¡è“色树苗", + "block.spectrum.light_blue_log": "æ·¡è“色原木", + "block.spectrum.light_blue_leaves": "æ·¡è“色树å¶", + "block.spectrum.light_gray_sapling": "浅绿色树苗", + "block.spectrum.light_gray_log": "æ·¡ç°è‰²åŽŸæœ¨", + "block.spectrum.light_gray_leaves": "æ·¡ç°è‰²æ ‘å¶", + "block.spectrum.lime_sapling": "黄绿色树苗", + "block.spectrum.lime_log": "黄绿色原木", + "block.spectrum.lime_leaves": "黄绿色树å¶", + "block.spectrum.magenta_sapling": "å“红色树苗", + "block.spectrum.magenta_log": "å“红色原木", + "block.spectrum.magenta_leaves": "å“红色树å¶", + "block.spectrum.orange_sapling": "橙色树苗", + "block.spectrum.orange_log": "橙色原木", + "block.spectrum.orange_leaves": "橙色树å¶", + "block.spectrum.pink_sapling": "粉红色树苗", + "block.spectrum.pink_log": "粉红色原木", + "block.spectrum.pink_leaves": "粉红色树å¶", + "block.spectrum.purple_sapling": "紫色树苗", + "block.spectrum.purple_log": "紫色原木", + "block.spectrum.purple_leaves": "紫色树å¶", + "block.spectrum.red_sapling": "红色树苗", + "block.spectrum.red_log": "红色原木", + "block.spectrum.red_leaves": "红色树å¶", + "block.spectrum.white_sapling": "白色树苗", + "block.spectrum.white_log": "白色原木", + "block.spectrum.white_leaves": "白色树å¶", + "block.spectrum.yellow_sapling": "黄色树苗", + "block.spectrum.yellow_log": "黄色原木", + "block.spectrum.yellow_leaves": "黄色树å¶", + + "block.spectrum.black_glowblock": "黑色è§å…‰æ–¹å—", + "block.spectrum.blue_glowblock": "è“色è§å…‰æ–¹å—", + "block.spectrum.brown_glowblock": "棕色è§å…‰æ–¹å—", + "block.spectrum.cyan_glowblock": "é’色è§å…‰æ–¹å—", + "block.spectrum.gray_glowblock": "ç°è‰²è§å…‰æ–¹å—", + "block.spectrum.green_glowblock": "绿色è§å…‰æ–¹å—", + "block.spectrum.light_blue_glowblock": "æ·¡è“色è§å…‰æ–¹å—", + "block.spectrum.light_gray_glowblock": "æ·¡ç°è‰²è§å…‰æ–¹å—", + "block.spectrum.lime_glowblock": "黄绿色è§å…‰æ–¹å—", + "block.spectrum.magenta_glowblock": "å“红色è§å…‰æ–¹å—", + "block.spectrum.orange_glowblock": "橙色è§å…‰æ–¹å—", + "block.spectrum.pink_glowblock": "粉红色è§å…‰æ–¹å—", + "block.spectrum.purple_glowblock": "紫色è§å…‰æ–¹å—", + "block.spectrum.red_glowblock": "红色è§å…‰æ–¹å—", + "block.spectrum.white_glowblock": "白色è§å…‰æ–¹å—", + "block.spectrum.yellow_glowblock": "黄色è§å…‰æ–¹å—", + + "block.spectrum.black_lamp": "黑色红石ç¯", + "block.spectrum.blue_lamp": "è“色红石ç¯", + "block.spectrum.brown_lamp": "棕色红石ç¯", + "block.spectrum.cyan_lamp": "é’色红石ç¯", + "block.spectrum.gray_lamp": "ç°è‰²çº¢çŸ³ç¯", + "block.spectrum.green_lamp": "绿色红石ç¯", + "block.spectrum.light_blue_lamp": "æ·¡è“色红石ç¯", + "block.spectrum.light_gray_lamp": "æ·¡ç°è‰²çº¢çŸ³ç¯", + "block.spectrum.lime_lamp": "黄绿色红石ç¯", + "block.spectrum.magenta_lamp": "å“红色红石ç¯", + "block.spectrum.orange_lamp": "橙色红石ç¯", + "block.spectrum.pink_lamp": "粉红色红石ç¯", + "block.spectrum.purple_lamp": "紫色红石ç¯", + "block.spectrum.red_lamp": "红色红石ç¯", + "block.spectrum.white_lamp": "白色红石ç¯", + "block.spectrum.yellow_lamp": "黄色红石ç¯", + + "block.spectrum.black_planks": "黑色木æ¿", + "block.spectrum.black_button": "黑色按钮", + "block.spectrum.black_fence": "黑色栅æ ", + "block.spectrum.black_pressure_plate": "黑色压力æ¿", + "block.spectrum.black_stairs": "黑色楼梯", + "block.spectrum.black_slab": "黑色å°é˜¶", + "block.spectrum.black_fence_gate": "黑色栅æ é—¨", + + "block.spectrum.blue_planks": "è“色木æ¿", + "block.spectrum.blue_button": "è“色按钮", + "block.spectrum.blue_fence": "è“色栅æ ", + "block.spectrum.blue_pressure_plate": "è“色压力æ¿", + "block.spectrum.blue_stairs": "è“色楼梯", + "block.spectrum.blue_slab": "è“色å°é˜¶", + "block.spectrum.blue_fence_gate": "è“色栅æ é—¨", + + "block.spectrum.brown_planks": "棕色木æ¿", + "block.spectrum.brown_button": "棕色按钮", + "block.spectrum.brown_fence": "棕色栅æ ", + "block.spectrum.brown_pressure_plate": "棕色压力æ¿", + "block.spectrum.brown_stairs": "棕色楼梯", + "block.spectrum.brown_slab": "棕色å°é˜¶", + "block.spectrum.brown_fence_gate": "棕色栅æ é—¨", + + "block.spectrum.cyan_planks": "é’色木æ¿", + "block.spectrum.cyan_button": "é’色按钮", + "block.spectrum.cyan_fence": "é’色栅æ ", + "block.spectrum.cyan_pressure_plate": "é’色压力æ¿", + "block.spectrum.cyan_stairs": "é’色楼梯", + "block.spectrum.cyan_slab": "é’色å°é˜¶", + "block.spectrum.cyan_fence_gate": "é’色栅æ é—¨", + + "block.spectrum.gray_planks": "ç°è‰²æœ¨æ¿", + "block.spectrum.gray_button": "ç°è‰²æŒ‰é’®", + "block.spectrum.gray_fence": "ç°è‰²æ …æ ", + "block.spectrum.gray_pressure_plate": "ç°è‰²åŽ‹åŠ›æ¿", + "block.spectrum.gray_stairs": "ç°è‰²æ¥¼æ¢¯", + "block.spectrum.gray_slab": "ç°è‰²å°é˜¶", + "block.spectrum.gray_fence_gate": "ç°è‰²æ …æ é—¨", + + "block.spectrum.green_planks": "绿色木æ¿", + "block.spectrum.green_button": "绿色按钮", + "block.spectrum.green_fence": "绿色栅æ ", + "block.spectrum.green_pressure_plate": "绿色压力æ¿", + "block.spectrum.green_stairs": "绿色楼梯", + "block.spectrum.green_slab": "绿色å°é˜¶", + "block.spectrum.green_fence_gate": "绿色栅æ é—¨", + + "block.spectrum.light_blue_planks": "æ·¡è“色木æ¿", + "block.spectrum.light_blue_button": "æ·¡è“色按钮", + "block.spectrum.light_blue_fence": "æ·¡è“色栅æ ", + "block.spectrum.light_blue_pressure_plate": "æ·¡è“色压力æ¿", + "block.spectrum.light_blue_stairs": "æ·¡è“色楼梯", + "block.spectrum.light_blue_slab": "æ·¡è“色å°é˜¶", + "block.spectrum.light_blue_fence_gate": "æ·¡è“色栅æ é—¨", + + "block.spectrum.light_gray_planks": "æ·¡ç°è‰²æœ¨æ¿", + "block.spectrum.light_gray_button": "æ·¡ç°è‰²æŒ‰é’®", + "block.spectrum.light_gray_fence": "æ·¡ç°è‰²æ …æ ", + "block.spectrum.light_gray_pressure_plate": "æ·¡ç°è‰²åŽ‹åŠ›æ¿", + "block.spectrum.light_gray_stairs": "æ·¡ç°è‰²æ¥¼æ¢¯", + "block.spectrum.light_gray_slab": "æ·¡ç°è‰²å°é˜¶", + "block.spectrum.light_gray_fence_gate": "æ·¡ç°è‰²æ …æ é—¨", + + "block.spectrum.lime_planks": "黄绿色木æ¿", + "block.spectrum.lime_button": "黄绿色按钮", + "block.spectrum.lime_fence": "黄绿色栅æ ", + "block.spectrum.lime_pressure_plate": "黄绿色压力æ¿", + "block.spectrum.lime_stairs": "黄绿色楼梯", + "block.spectrum.lime_slab": "黄绿色å°é˜¶", + "block.spectrum.lime_fence_gate": "黄绿色栅æ é—¨", + + "block.spectrum.magenta_planks": "å“红色木æ¿", + "block.spectrum.magenta_button": "å“红色按钮", + "block.spectrum.magenta_fence": "å“红色栅æ ", + "block.spectrum.magenta_pressure_plate": "å“红色压力æ¿", + "block.spectrum.magenta_stairs": "å“红色楼梯", + "block.spectrum.magenta_slab": "å“红色å°é˜¶", + "block.spectrum.magenta_fence_gate": "å“红色栅æ é—¨", + + "block.spectrum.orange_planks": "橙色木æ¿", + "block.spectrum.orange_button": "橙色按钮", + "block.spectrum.orange_fence": "橙色栅æ ", + "block.spectrum.orange_pressure_plate": "橙色压力æ¿", + "block.spectrum.orange_stairs": "橙色楼梯", + "block.spectrum.orange_slab": "橙色å°é˜¶", + "block.spectrum.orange_fence_gate": "橙色栅æ é—¨", + + "block.spectrum.pink_planks": "粉红色木æ¿", + "block.spectrum.pink_button": "粉红色按钮", + "block.spectrum.pink_fence": "粉红色栅æ ", + "block.spectrum.pink_pressure_plate": "粉红色压力æ¿", + "block.spectrum.pink_stairs": "粉红色楼梯", + "block.spectrum.pink_slab": "粉红色å°é˜¶", + "block.spectrum.pink_fence_gate": "粉红色栅æ é—¨", + + "block.spectrum.purple_planks": "紫色木æ¿", + "block.spectrum.purple_button": "紫色按钮", + "block.spectrum.purple_fence": "紫色栅æ ", + "block.spectrum.purple_pressure_plate": "紫色压力æ¿", + "block.spectrum.purple_stairs": "紫色楼梯", + "block.spectrum.purple_slab": "紫色å°é˜¶", + "block.spectrum.purple_fence_gate": "紫色栅æ é—¨", + + "block.spectrum.red_planks": "红色木æ¿", + "block.spectrum.red_button": "红色按钮", + "block.spectrum.red_fence": "红色栅æ ", + "block.spectrum.red_pressure_plate": "红色压力æ¿", + "block.spectrum.red_stairs": "红色楼梯", + "block.spectrum.red_slab": "红色å°é˜¶", + "block.spectrum.red_fence_gate": "红色栅æ é—¨", + + "block.spectrum.white_planks": "白色木æ¿", + "block.spectrum.white_button": "白色按钮", + "block.spectrum.white_fence": "白色栅æ ", + "block.spectrum.white_pressure_plate": "白色压力æ¿", + "block.spectrum.white_stairs": "白色楼梯", + "block.spectrum.white_slab": "白色å°é˜¶", + "block.spectrum.white_fence_gate": "白色栅æ é—¨", + + "block.spectrum.yellow_planks": "黄色木æ¿", + "block.spectrum.yellow_button": "黄色按钮", + "block.spectrum.yellow_fence": "黄色栅æ ", + "block.spectrum.yellow_pressure_plate": "黄色压力æ¿", + "block.spectrum.yellow_stairs": "黄色楼梯", + "block.spectrum.yellow_slab": "黄色å°é˜¶", + "block.spectrum.yellow_fence_gate": "黄色栅æ é—¨", + + "item.spectrum.mud_bucket": "泥浆桶", + "block.spectrum.mud": "泥浆", + "block.spectrum.flowing_mud": "泥浆", + + "item.spectrum.liquid_crystal_bucket": "液体水晶桶", + "block.spectrum.liquid_crystal": "液体水晶", + "block.spectrum.flowing_liquid_crystal": "液体水晶", + + "item.spectrum.midnight_solution_bucket": "åˆå¤œæº¶æ¶²æ¡¶", + "block.spectrum.midnight_solution": "åˆå¤œæº¶æ¶²", + "block.spectrum.flowing_midnight_solution": "åˆå¤œæº¶æ¶²", + + "block.spectrum.paltaeria_ore": "Paltaeria矿石", + "block.spectrum.paltaeria_fragment_block": "Paltaeriaæµ®å—", + "block.spectrum.stratine_ore": "Stratine矿石", + "block.spectrum.stratine_fragment_block": "Stratineæµ®å—", + "block.spectrum.hover_block": "悬浮方å—", + + "block.spectrum.shooting_star_glistering": "é—ªçƒæµæ˜Ÿ", + "block.spectrum.shooting_star_fiery": "ç‚½çƒ­æµæ˜Ÿ", + "block.spectrum.shooting_star_colorful": "ä¸ƒå½©æµæ˜Ÿ", + "block.spectrum.shooting_star_pristine": "åŽŸå§‹æµæ˜Ÿ", + "block.spectrum.shooting_star_gemstone": "å®çŸ³æµæ˜Ÿ", + "item.spectrum.shooting_star.tooltip.hardened": "已硬化 - 无法破å", + + "block.spectrum.sag_leaf": "垂藤å¶", + "block.spectrum.sag_bubble": "åž‚è—¤çƒæžœ", + "block.spectrum.small_sag_bubble": "å°åž‹åž‚è—¤çƒæžœ", + "block.spectrum.glistering_melon": "é—ªçƒçš„西瓜", + "block.spectrum.glistering_melon_stem": "é—ªçƒçš„西瓜茎", + "block.spectrum.attached_glistering_melon_stem": "结果的闪çƒçš„西瓜茎", + + "block.spectrum.spectral_shard_block": "七彩碎片å—", + "block.spectrum.small_citrine_bud": "å°åž‹é»„水晶芽", + "block.spectrum.medium_citrine_bud": "中型黄水晶芽", + "block.spectrum.large_citrine_bud": "大型黄水晶芽", + "block.spectrum.citrine_cluster": "黄水晶簇", + "block.spectrum.citrine_block": "黄水晶å—", + "block.spectrum.budding_citrine": "黄水晶æ¯å²©", + "block.spectrum.small_topaz_bud": "å°åž‹æ‰˜å¸•石晶芽", + "block.spectrum.medium_topaz_bud": "中型托帕石晶芽", + "block.spectrum.large_topaz_bud": "大型托帕石晶芽", + "block.spectrum.topaz_cluster": "托帕石晶簇", + "block.spectrum.topaz_block": "托帕石晶å—", + "block.spectrum.budding_topaz": "托帕石æ¯å²©", + "block.spectrum.small_onyx_bud": "å°åž‹ç¼ŸçŽ›ç‘™æ™¶èŠ½", + "block.spectrum.medium_onyx_bud": "中型缟玛瑙晶芽", + "block.spectrum.large_onyx_bud": "大型缟玛瑙晶芽", + "block.spectrum.onyx_cluster": "缟玛瑙晶簇", + "block.spectrum.onyx_block": "缟玛瑙晶å—", + "block.spectrum.budding_onyx": "缟玛瑙æ¯å²©", + "block.spectrum.small_moonstone_bud": "å°åž‹æœˆé•¿çŸ³æ™¶èн", + "block.spectrum.medium_moonstone_bud": "中型月长石晶芽", + "block.spectrum.large_moonstone_bud": "大型月长石晶芽", + "block.spectrum.moonstone_cluster": "月长石晶簇", + "block.spectrum.moonstone_block": "月长石晶å—", + "block.spectrum.budding_moonstone": "月长石æ¯å²©", + + "block.spectrum.amethyst_ore": "紫水晶矿石", + "block.spectrum.citrine_ore": "黄水晶矿石", + "block.spectrum.topaz_ore": "托帕石矿石", + "block.spectrum.onyx_ore": "缟玛瑙矿石", + "block.spectrum.moonstone_ore": "月长石矿石", + + "block.spectrum.deepslate_amethyst_ore": "深层紫水晶矿石", + "block.spectrum.deepslate_citrine_ore": "深层黄水晶矿石", + "block.spectrum.deepslate_topaz_ore": "深层托帕石矿石", + "block.spectrum.deepslate_onyx_ore": "深层缟玛瑙矿石", + "block.spectrum.deepslate_moonstone_ore": "深层月长石矿石", + + "block.spectrum.smooth_basalt_slab": "平滑玄武岩å°é˜¶", + "block.spectrum.smooth_basalt_wall": "平滑玄武岩墙", + "block.spectrum.smooth_basalt_stairs": "平滑玄武岩楼梯", + "block.spectrum.polished_basalt": "磨制玄武岩", + "block.spectrum.polished_basalt_pillar": "磨制玄武岩柱", + "block.spectrum.polished_basalt_crest": "磨制饰纹玄武岩", + "block.spectrum.chiseled_polished_basalt": "錾制磨制玄武岩", + "block.spectrum.notched_polished_basalt": "æ— å°ç£¨åˆ¶çŽ„æ­¦å²©", + "block.spectrum.polished_basalt_slab": "磨制玄武岩å°é˜¶", + "block.spectrum.polished_basalt_wall": "磨制玄武岩墙", + "block.spectrum.polished_basalt_stairs": "磨制玄武岩楼梯", + "block.spectrum.basalt_bricks": "玄武岩砖å—", + "block.spectrum.basalt_brick_slab": "玄武岩砖å°é˜¶", + "block.spectrum.basalt_brick_wall": "玄武岩砖墙", + "block.spectrum.basalt_brick_stairs": "玄武岩砖楼梯", + "block.spectrum.amethyst_chiseled_basalt": "錾制紫水晶玄武岩", + "block.spectrum.topaz_chiseled_basalt": "錾制托帕石玄武岩", + "block.spectrum.citrine_chiseled_basalt": "錾制黄水晶玄武岩", + "block.spectrum.onyx_chiseled_basalt": "錾制缟玛瑙玄武岩", + "block.spectrum.moonstone_chiseled_basalt": "錾制月长石玄武岩", + + "block.spectrum.calcite_slab": "方解石å°é˜¶", + "block.spectrum.calcite_wall": "方解石墙", + "block.spectrum.calcite_stairs": "方解石楼梯", + "block.spectrum.polished_calcite": "磨制方解石", + "block.spectrum.polished_calcite_pillar": "磨制方解石柱", + "block.spectrum.polished_calcite_crest": "磨制饰纹方解石", + "block.spectrum.chiseled_polished_calcite": "錾制磨制方解石", + "block.spectrum.notched_polished_calcite": "æ— å°ç£¨åˆ¶æ–¹è§£çŸ³", + "block.spectrum.polished_calcite_slab": "磨制方解石å°é˜¶", + "block.spectrum.polished_calcite_wall": "磨制方解石墙", + "block.spectrum.polished_calcite_stairs": "磨制方解石楼梯", + "block.spectrum.calcite_bricks": "方解石砖å—", + "block.spectrum.calcite_brick_slab": "方解石砖å°é˜¶", + "block.spectrum.calcite_brick_wall": "方解石砖墙", + "block.spectrum.calcite_brick_stairs": "方解石砖楼梯", + "block.spectrum.amethyst_chiseled_calcite": "錾制紫水晶方解石", + "block.spectrum.topaz_chiseled_calcite": "錾制托帕石方解石", + "block.spectrum.citrine_chiseled_calcite": "錾制黄水晶方解石", + "block.spectrum.onyx_chiseled_calcite": "錾制缟玛瑙方解石", + "block.spectrum.moonstone_chiseled_calcite": "錾制月长石方解石", - "______done_until_here" : "TODO:", - "advancements.spectrum.craft_energy_collector.title": "Roger that", - "advancements.spectrum.craft_energy_collector.description": "Construct a collector powerful enough to harvest energy from gem geodes", - "advancements.spectrum.place_energy_collector.title": "A new form of energy", - "advancements.spectrum.place_energy_collector.description": "Place the collector in the center of a geode and watch it work", - - "______unused" : "UNUSED:", - "advancements.spectrum.place_bottle_of_failing.title": "It... feeds on Obsidian?", - "advancements.spectrum.place_bottle_of_failing.description": "It's WAY more powerful than your first experiment. It seems to destroy everything it touches after a while. Is there something sturdy enough to withstand its destructive potential?", - "advancements.spectrum.place_bottle_of_ruin.title": "What have you done", - "advancements.spectrum.place_bottle_of_ruin.description": "There is no going back... (for now?)" - } + "block.spectrum.amethyst_glass": "紫水晶玻璃", + "block.spectrum.topaz_glass": "托帕石玻璃", + "block.spectrum.citrine_glass": "黄水晶玻璃", + "block.spectrum.onyx_glass": "缟玛瑙玻璃", + "block.spectrum.moonstone_glass": "月长石玻璃", + + "block.spectrum.glowing_glass": "è§å…‰çŽ»ç’ƒ", + "block.spectrum.tinted_semi_permeable_glass": "åŠç©¿é€é®å…‰çŽ»ç’ƒ", + "block.spectrum.glowing_semi_permeable_glass": "åŠç©¿é€è¾å°„玻璃", + "block.spectrum.vanilla_semi_permeable_glass": "åŠç©¿é€çŽ»ç’ƒ", + "block.spectrum.amethyst_semi_permeable_glass": "åŠç©¿é€ç´«æ°´æ™¶çŽ»ç’ƒ", + "block.spectrum.topaz_semi_permeable_glass": "åŠç©¿é€æ‰˜å¸•石玻璃", + "block.spectrum.citrine_semi_permeable_glass": "åŠç©¿é€é»„水晶玻璃", + "block.spectrum.onyx_semi_permeable_glass": "åŠç©¿é€ç¼ŸçŽ›ç‘™çŽ»ç’ƒ", + "block.spectrum.moonstone_semi_permeable_glass": "åŠç©¿é€æœˆé•¿çŸ³çŽ»ç’ƒ", + + "block.spectrum.amethyst_calcite_lamp": "紫水晶方解石ç¯", + "block.spectrum.topaz_calcite_lamp": "托帕石方解石ç¯", + "block.spectrum.citrine_calcite_lamp": "黄水晶方解石ç¯", + "block.spectrum.onyx_calcite_lamp": "缟玛瑙方解石ç¯", + "block.spectrum.moonstone_calcite_lamp": "月长石方解石ç¯", + + "block.spectrum.amethyst_basalt_lamp": "紫水晶玄武岩ç¯", + "block.spectrum.topaz_basalt_lamp": "托帕石玄武岩ç¯", + "block.spectrum.citrine_basalt_lamp": "黄水晶玄武岩ç¯", + "block.spectrum.onyx_basalt_lamp": "缟玛瑙玄武岩ç¯", + "block.spectrum.moonstone_basalt_lamp": "月长石玄武岩ç¯", + + "block.spectrum.pedestal": "七彩基座", + "block.spectrum.pedestal_basic_topaz": "七彩基座", + "block.spectrum.pedestal_basic_amethyst": "七彩基座", + "block.spectrum.pedestal_basic_citrine": "七彩基座", + "block.spectrum.pedestal_all_basic": "七彩基座", + "block.spectrum.pedestal_onyx": "七彩基座", + "block.spectrum.pedestal_moonstone": "七彩基座", + + "item.spectrum.pedestal.tooltip.basic_topaz": "§b托帕石§7å˜ç§", + "item.spectrum.pedestal.tooltip.basic_amethyst": "§d紫水晶§7å˜ç§", + "item.spectrum.pedestal.tooltip.basic_citrine": "§e黄水晶§7å˜ç§", + "item.spectrum.pedestal.tooltip.all_basic": "§bC§dM§eY§7å˜ç§", + "item.spectrum.pedestal.tooltip.onyx": "§8缟玛瑙§7å˜ç§", + "item.spectrum.pedestal.tooltip.moonstone": "§f月长石§7å˜ç§", + + "block.spectrum.provider_node": "绘彩网络供应节点", + "block.spectrum.puller_node": "绘彩网络输入节点", + "block.spectrum.pusher_node": "绘彩网络输出节点", + "block.spectrum.storage_node": "绘彩网络储存节点", + "block.spectrum.connection_node": "绘彩网络连接节点", + "block.spectrum.interaction_node": "绘彩网络交互节点", + "block.spectrum.provider_node.tooltip": "§d为绘彩网络æä¾›ç‰©å“", + "block.spectrum.puller_node.tooltip": "§8从绘彩网络中输出物å“", + "block.spectrum.pusher_node.tooltip": "§e为绘彩网络输é€ç‰©å“", + "block.spectrum.storage_node.tooltip": "§b无目标的储存物å“", + "block.spectrum.connection_node.tooltip": "§f简易的连接器", + "block.spectrum.interaction_node.tooltip": "§f从绘彩网络中请求物å“", + "block.spectrum.pastel_network_nodes.tooltip.range": "连接到è·å½“å‰èŠ‚ç‚¹ä½ç½®16格的其他节点", + + "item.spectrum.mob_head.tooltip.designer": "§7头颅由%s设计", + "block.spectrum.goat_head": "山羊的头", + "block.spectrum.glow_squid_head": "è§å…‰é±¿é±¼çš„头", + "block.spectrum.axolotl_blue_head": "è“色美西螈的头", + "block.spectrum.axolotl_brown_head": "棕色美西螈的头", + "block.spectrum.axolotl_cyan_head": "é’色美西螈的头", + "block.spectrum.axolotl_gold_head": "金色美西螈的头", + "block.spectrum.axolotl_leucistic_head": "粉红色美西螈的头", + "block.spectrum.bat_head": "è™è çš„头", + "block.spectrum.bee_head": "蜜蜂的头", + "block.spectrum.blaze_head": "烈焰人的头", + "block.spectrum.cat_head": "猫的头", + "block.spectrum.cave_spider_head": "洞穴蜘蛛的头", + "block.spectrum.chicken_head": "鸡的头", + "block.spectrum.clownfish_head": "热带鱼的头", + "block.spectrum.cow_head": "牛的头", + "block.spectrum.donkey_head": "驴的头", + "block.spectrum.drowned_head": "溺尸的头", + "block.spectrum.elder_guardian_head": "远å¤å®ˆå«è€…的头", + "block.spectrum.enderman_head": "末影人的头", + "block.spectrum.endermite_head": "末影螨的头", + "block.spectrum.evoker_head": "唤魔者的头", + "block.spectrum.fox_head": "ç‹ç‹¸çš„头", + "block.spectrum.fox_arctic_head": "北æžç‹çš„头", + "block.spectrum.ghast_head": "æ¶é­‚的头", + "block.spectrum.guardian_head": "守å«è€…的头", + "block.spectrum.hoglin_head": "疣猪兽的头", + "block.spectrum.horse_head": "马的头", + "block.spectrum.husk_head": "尸壳的头", + "block.spectrum.illusioner_head": "幻术师的头", + "block.spectrum.iron_golem_head": "é“傀儡的头", + "block.spectrum.llama_head": "羊驼的头", + "block.spectrum.magma_cube_head": "岩浆怪的头", + "block.spectrum.mooshroom_brown_head": "棕色哞è‡çš„头", + "block.spectrum.mooshroom_red_head": "红色哞è‡çš„头", + "block.spectrum.mule_head": "骡的头", + "block.spectrum.ocelot_head": "豹猫的头", + "block.spectrum.panda_head": "熊猫的头", + "block.spectrum.parrot_blue_head": "è“色鹦鹉的头", + "block.spectrum.parrot_cyan_head": "é’色鹦鹉的头", + "block.spectrum.parrot_gray_head": "ç°è‰²é¹¦é¹‰çš„头", + "block.spectrum.parrot_green_head": "绿色鹦鹉的头", + "block.spectrum.parrot_red_head": "红色鹦鹉的头", + "block.spectrum.phantom_head": "幻翼的头", + "block.spectrum.pig_head": "猪的头", + "block.spectrum.piglin_head": "猪çµçš„头", + "block.spectrum.polar_bear_head": "北æžç†Šçš„头", + "block.spectrum.pufferfish_head": "河豚的头", + "block.spectrum.rabbit_head": "å…”å­çš„头", + "block.spectrum.ravager_head": "劫掠兽的头", + "block.spectrum.salmon_head": "鲑鱼的头", + "block.spectrum.sheep_black_head": "黑色羊的头", + "block.spectrum.sheep_blue_head": "è“色羊的头", + "block.spectrum.sheep_brown_head": "棕色羊的头", + "block.spectrum.sheep_cyan_head": "é’色羊的头", + "block.spectrum.sheep_gray_head": "ç°è‰²ç¾Šçš„头", + "block.spectrum.sheep_green_head": "绿色羊的头", + "block.spectrum.sheep_light_blue_head": "æ·¡è“色羊的头", + "block.spectrum.sheep_light_gray_head": "æ·¡ç°è‰²ç¾Šçš„头", + "block.spectrum.sheep_lime_head": "黄绿色羊的头", + "block.spectrum.sheep_magenta_head": "å“红色羊的头", + "block.spectrum.sheep_orange_head": "橙色羊的头", + "block.spectrum.sheep_pink_head": "粉红色羊的头", + "block.spectrum.sheep_purple_head": "紫色羊的头", + "block.spectrum.sheep_red_head": "红色羊的头", + "block.spectrum.sheep_white_head": "白色羊的头", + "block.spectrum.sheep_yellow_head": "黄色羊的头", + "block.spectrum.shulker_black_head": "黑色潜影è´çš„头", + "block.spectrum.shulker_blue_head": "è“色潜影è´çš„头", + "block.spectrum.shulker_brown_head": "棕色潜影è´çš„头", + "block.spectrum.shulker_cyan_head": "é’色潜影è´çš„头", + "block.spectrum.shulker_gray_head": "ç°è‰²æ½œå½±è´çš„头", + "block.spectrum.shulker_green_head": "绿色潜影è´çš„头", + "block.spectrum.shulker_light_blue_head": "æ·¡è“色潜影è´çš„头", + "block.spectrum.shulker_light_gray_head": "æ·¡ç°è‰²æ½œå½±è´çš„头", + "block.spectrum.shulker_lime_head": "黄绿色潜影è´çš„头", + "block.spectrum.shulker_magenta_head": "å“红色潜影è´çš„头", + "block.spectrum.shulker_orange_head": "橙色潜影è´çš„头", + "block.spectrum.shulker_pink_head": "粉红色潜影è´çš„头", + "block.spectrum.shulker_purple_head": "紫色潜影è´çš„头", + "block.spectrum.shulker_red_head": "红色潜影è´çš„头", + "block.spectrum.shulker_white_head": "白色潜影è´çš„头", + "block.spectrum.shulker_yellow_head": "黄色潜影è´çš„头", + "block.spectrum.silverfish_head": "蠹虫的头", + "block.spectrum.slime_head": "å²èŽ±å§†çš„å¤´", + "block.spectrum.snow_golem_head": "雪傀儡的头", + "block.spectrum.spider_head": "蜘蛛的头", + "block.spectrum.squid_head": "鱿鱼的头", + "block.spectrum.stray_head": "æµæµªè€…的头", + "block.spectrum.strider_head": "炽足兽的头", + "block.spectrum.trader_llama_head": "行商羊驼的头", + "block.spectrum.turtle_head": "海龟的头", + "block.spectrum.vex_head": "æ¼é¬¼çš„头", + "block.spectrum.villager_head": "æ‘æ°‘的头", + "block.spectrum.vindicator_head": "å«é“士的头", + "block.spectrum.wandering_trader_head": "æµæµªå•†äººçš„头", + "block.spectrum.witch_head": "女巫的头", + "block.spectrum.wither_head": "凋çµçš„头", + "block.spectrum.wolf_head": "狼的头", + "block.spectrum.zoglin_head": "僵尸疣猪兽的头", + "block.spectrum.zombie_villager_head": "åƒµå°¸æ‘æ°‘的头", + "block.spectrum.zombified_piglin_head": "僵尸猪çµçš„头", + "block.spectrum.egg_laying_wooly_pig_head": "下蛋绒猪的头", + + "block.spectrum.axolotl_mob_block": "æ¢å¤é­”ç›’", + "block.spectrum.bat_mob_block": "定ä½é­”ç›’", + "block.spectrum.bee_mob_block": "肥料魔盒", + "block.spectrum.blaze_mob_block": "ç«ç„°é­”ç›’", + "block.spectrum.cat_mob_block": "轻柔魔盒", + "block.spectrum.chicken_mob_block": "漂浮魔盒", + "block.spectrum.cow_mob_block": "祛魔魔盒", + "block.spectrum.creeper_mob_block": "爆炸魔盒", + "block.spectrum.ender_dragon_mob_block": "强力魔盒", + "block.spectrum.enderman_mob_block": "异世魔盒", + "block.spectrum.endermite_mob_block": "超传魔盒", + "block.spectrum.evoker_mob_block": "æ¼é¬¼é­”ç›’", + "block.spectrum.fish_mob_block": "水肺魔盒", + "block.spectrum.fox_mob_block": "急迫魔盒", + "block.spectrum.ghast_mob_block": "诡异魔盒", + "block.spectrum.wolf_mob_block": "忠诚魔盒", + "block.spectrum.glow_squid_mob_block": "è§å…‰é­”ç›’", + "block.spectrum.goat_mob_block": "击退魔盒", + "block.spectrum.guardian_mob_block": "疲劳魔盒", + "block.spectrum.horse_mob_block": "力é‡é­”ç›’", + "block.spectrum.illusioner_mob_block": "欺骗魔盒", + "block.spectrum.ocelot_mob_block": "夜视魔盒", + "block.spectrum.parrot_mob_block": "伤害叿”¶é­”ç›’", + "block.spectrum.phantom_mob_block": "失眠魔盒", + "block.spectrum.pig_mob_block": "喂食魔盒", + "block.spectrum.piglin_mob_block": "交易魔盒", + "block.spectrum.polar_bear_mob_block": "冰冻魔盒", + "block.spectrum.pufferfish_mob_block": "致幻魔盒", + "block.spectrum.rabbit_mob_block": "跳跃魔盒", + "block.spectrum.sheep_mob_block": "剃毛魔盒", + "block.spectrum.shulker_mob_block": "失é‡é­”ç›’", + "block.spectrum.silverfish_mob_block": "虫蚀魔盒", + "block.spectrum.skeleton_mob_block": "箭矢魔盒", + "block.spectrum.slime_mob_block": "充气魔盒", + "block.spectrum.snow_golem_mob_block": "雪çƒé­”ç›’", + "block.spectrum.spider_mob_block": "剧毒魔盒", + "block.spectrum.squid_mob_block": "致盲魔盒", + "block.spectrum.stray_mob_block": "缓慢魔盒", + "block.spectrum.strider_mob_block": "陿¸©é­”ç›’", + "block.spectrum.turtle_mob_block": "抗击魔盒", + "block.spectrum.witch_mob_block": "虚弱魔盒", + "block.spectrum.wither_mob_block": "æ¯ç­é­”ç›’", + "block.spectrum.wither_skeleton_mob_block": "凋èŽé­”ç›’", + "block.spectrum.zombie_mob_block": "饥饿魔盒", + + "block.spectrum.small_coal_bud": "å°åž‹ç…¤çŸ¿èн", + "block.spectrum.large_coal_bud": "大型煤矿芽", + "block.spectrum.coal_cluster": "煤矿簇", + "block.spectrum.small_copper_bud": "å°åž‹é“œçŸ¿èн", + "block.spectrum.large_copper_bud": "大型铜矿芽", + "block.spectrum.copper_cluster": "铜矿簇", + "block.spectrum.small_diamond_bud": "å°åž‹é’»çŸ³çŸ¿èн", + "block.spectrum.large_diamond_bud": "大型钻石矿芽", + "block.spectrum.diamond_cluster": "钻石矿簇", + "block.spectrum.small_emerald_bud": "å°åž‹ç»¿å®çŸ³çŸ¿èн", + "block.spectrum.large_emerald_bud": "大型绿å®çŸ³çŸ¿èн", + "block.spectrum.emerald_cluster": "绿å®çŸ³çŸ¿ç°‡", + "block.spectrum.small_glowstone_bud": "å°åž‹è§çŸ³èн", + "block.spectrum.large_glowstone_bud": "大型è§çŸ³èн", + "block.spectrum.glowstone_cluster": "è§çŸ³ç°‡", + "block.spectrum.small_gold_bud": "å°åž‹é‡‘矿芽", + "block.spectrum.large_gold_bud": "大型金矿芽", + "block.spectrum.gold_cluster": "金矿簇", + "block.spectrum.small_iron_bud": "å°åž‹é“矿芽", + "block.spectrum.large_iron_bud": "大型é“矿芽", + "block.spectrum.iron_cluster": "é“矿簇", + "block.spectrum.small_lapis_bud": "å°åž‹é’金石矿芽", + "block.spectrum.large_lapis_bud": "大型é’金石矿芽", + "block.spectrum.lapis_cluster": "é’金石矿簇", + "block.spectrum.small_netherite_bud": "å°åž‹ä¸‹ç•Œåˆé‡‘芽", + "block.spectrum.large_netherite_bud": "大型下界åˆé‡‘芽", + "block.spectrum.netherite_cluster": "下界åˆé‡‘ç°‡", + "block.spectrum.small_prismarine_bud": "å°åž‹æµ·æ™¶çŸ³èн", + "block.spectrum.large_prismarine_bud": "大型海晶石芽", + "block.spectrum.prismarine_cluster": "海晶石簇", + "block.spectrum.small_quartz_bud": "å°åž‹çŸ³è‹±èн", + "block.spectrum.large_quartz_bud": "大型石英芽", + "block.spectrum.quartz_cluster": "石英簇", + "block.spectrum.small_redstone_bud": "å°åž‹çº¢çŸ³çŸ¿èн", + "block.spectrum.large_redstone_bud": "大型红石矿芽", + "block.spectrum.redstone_cluster": "红石矿簇", + + "block.spectrum.small_certus_quartz_bud": "å°åž‹èµ›ç‰¹æ–¯çŸ³è‹±èн", + "block.spectrum.large_certus_quartz_bud": "大型赛特斯石英芽", + "block.spectrum.certus_quartz_cluster": "赛特斯石英簇", + "block.spectrum.small_fluix_bud": "å°åž‹ç¦é²ä¼Šå…‹æ–¯èн", + "block.spectrum.large_fluix_bud": "大型ç¦é²ä¼Šå…‹æ–¯èн", + "block.spectrum.fluix_cluster": "ç¦é²ä¼Šå…‹æ–¯ç°‡", + + "block.spectrum.small_globette_bud": "å°åž‹æˆˆä¼¯çŸ¿èн", + "block.spectrum.large_globette_bud": "大型戈伯矿芽", + "block.spectrum.globette_cluster": "戈伯çƒç°‡", + "block.spectrum.small_globette_end_bud": "å°åž‹æœ«åœ°æˆˆä¼¯çŸ¿èн", + "block.spectrum.large_globette_end_bud": "大型末地戈伯矿芽", + "block.spectrum.globette_end_cluster": "末地戈伯çƒç°‡", + "block.spectrum.small_globette_nether_bud": "å°åž‹ä¸‹ç•Œæˆˆä¼¯çŸ¿èн", + "block.spectrum.large_globette_nether_bud": "大型下界戈伯矿芽", + "block.spectrum.globette_nether_cluster": "下界戈伯çƒç°‡", + + "item.spectrum.pure_emerald": "高纯绿å®çŸ³", + "item.spectrum.pure_prismarine": "高纯海晶石", + "item.spectrum.pure_coal": "高纯煤炭", + "item.spectrum.pure_redstone": "高纯红石", + "item.spectrum.pure_glowstone": "高纯è§çŸ³", + "item.spectrum.pure_lapis": "高纯é’金石", + "item.spectrum.pure_copper": "高纯铜锭", + "item.spectrum.pure_quartz": "高纯石英", + "item.spectrum.pure_gold": "高纯金锭", + "item.spectrum.pure_diamond": "高纯钻石", + "item.spectrum.pure_netherite": "高纯下界åˆé‡‘é”­", + "item.spectrum.pure_iron": "高纯é“é”­", + + "item.spectrum.pure_certus_quartz": "高纯赛特斯石英", + "item.spectrum.pure_fluix": "高纯Fluix", + + "item.spectrum.pure_globette": "高纯戈伯çƒç°‡", + "item.spectrum.pure_globette_end": "高纯末地戈伯çƒç°‡", + "item.spectrum.pure_globette_nether": "高纯下界戈伯çƒç°‡", + + "block.spectrum.pure_coal_block": "高纯煤炭å—", + "block.spectrum.pure_iron_block": "高纯é“å—", + "block.spectrum.pure_gold_block": "高纯金å—", + "block.spectrum.pure_diamond_block": "高纯钻石å—", + "block.spectrum.pure_emerald_block": "高纯绿å®çŸ³å—", + "block.spectrum.pure_redstone_block": "高纯红石å—", + "block.spectrum.pure_lapis_block": "高纯é’金石å—", + "block.spectrum.pure_copper_block": "高纯铜å—", + "block.spectrum.pure_quartz_block": "高纯石英å—", + "block.spectrum.pure_netherite_block": "高纯下界åˆé‡‘å—", + "block.spectrum.pure_glowstone_block": "高纯è§çŸ³å—", + "block.spectrum.pure_prismarine_block": "高纯海晶石å—", + "block.spectrum.pure_certus_quartz_block": "高纯赛特斯石英å—", + "block.spectrum.pure_fluix_block": "高纯Fluixå—", + "block.spectrum.pure_globette_block": "高纯çƒç°‡å—", + "block.spectrum.pure_globette_nether_block": "高纯下界戈伯å—", + "block.spectrum.pure_globette_end_block": "高纯末地戈伯å—", + + "block.spectrum.mob_block.tooltip": "当按下使用键/踩è¸/弹射物击中时:", + "block.spectrum.bonemealing_mob_block.tooltip": "§7为周围的æ¤ç‰©æ–½è‚¥", + "block.spectrum.echolocating_mob_block.tooltip": "§7高亮显示åŠå¾„%d§7格内的生物", + "block.spectrum.entity_summoning_mob_block.tooltip": "§7生æˆ%s", + "block.spectrum.explosion_mob_block.tooltip": "§7引å‘åŠå¾„%d§7格的爆炸", + "block.spectrum.fall_damage_negating_mob_block.tooltip": "§7è½åœ¨å…¶ä¸Šæ–¹æ—¶å…除所有摔è½ä¼¤å®³", + "block.spectrum.fall_damage_negating_mob_block.tooltip2": "§7也会中断摔è½è¿‡ç¨‹", + "block.spectrum.firestarter_mob_block.tooltip": "§7引起ç«ç„° & èžåŒ–冰å—", + "block.spectrum.freezing_mob_block.tooltip": "§7冻结周围的方å—", + "block.spectrum.insomnia_mob_block.tooltip": "§7造æˆå¤±çœ ", + "block.spectrum.knockback_mob_block.tooltip": "§7造æˆå‡»é€€", + "block.spectrum.milking_mob_block.tooltip": "§7为åŠå¾„%d§7格内的生物挤奶", + "block.spectrum.milking_mob_block.tooltip2": "§7在动物周围需è¦Â§f桶§7或§f碗§7", + "block.spectrum.piglin_trade_mob_block.tooltip": "§7使用§f金锭§7å³å¯è¿›è¡Œäº¤æ˜“", + "block.spectrum.potion_effect_mob_block.tooltip": "§7给予%s§7效果", + "block.spectrum.projectile_mob_block.tooltip": "§7å‘å°„%s", + "block.spectrum.shearing_mob_block.tooltip": "§7为周围实体剪毛", + "block.spectrum.silverfish_inserting_mob_block.tooltip": "§7ä¸ºå‘¨å›´çš„æ–¹å—æ³¨å…¥è ¹è™«", + "block.spectrum.slime_sizing_mob_block.tooltip": "§7使附近的å²èޱ姆å˜å¤§", + "block.spectrum.random_teleporting_mob_block.tooltip": "§7将你传é€åˆ°åŠå¾„%d§7æ ¼å†…çš„éšæœºä½ç½®", + "block.spectrum.line_teleporting_mob_block.tooltip": "§7将你传é€é¢æœæ–¹ä½ç›´çº¿ä¸Š", + "block.spectrum.line_teleporting_mob_block.tooltip2": "§7%d格内的超传魔盒上", + "block.spectrum.feeding_mob_block.tooltip": "§7使用地上的食物喂养åŠå¾„%d§7格内的动物", + + "block.spectrum.incandescent_amalgam": "白炽åˆé‡‘", + "block.spectrum.incandescent_amalgam.tooltip": "§6⚠§r相当有å¨åŠ›çš„é­”æ³•ç‚¸è¯ï¼Œæ‹¿å–æ—¶å°å¿ƒç‚¹", + + "item.spectrum.tooltip.loom_pattern_available": "✿å¯ä½œä¸ºæ——帜图案使用", + "item.spectrum.exchanging_staff": "äº¤æ¢æ³•æ–", + "item.spectrum.exchanging_staff.tooltip.range": "将选定的方å—äº¤æ¢æˆå…¶å‘¨å›´%s格方å—", + "item.spectrum.exchanging_staff.tooltip.crouch": "æŒ‰ä½æ½œè¡Œé”®æ—¶ä»…äº¤æ¢æš´éœ²åœ¨å¤–的方å—", + "item.spectrum.exchanging_staff.tooltip.target": "目标:%s", + "item.spectrum.constructors_staff": "建造法æ–", + "item.spectrum.constructors_staff.tooltip.range": "将选定的一个多方å—结构æé«˜%sæ ¼", + "item.spectrum.constructors_staff.tooltip.crouch": "æŒ‰ä½æ½œè¡Œé”®æ—¶ä¼šåŒ…å«ä¸åŒç§ç±»çš„æ–¹å—", + "item.spectrum.constructors_staff.tooltip.missing_ink": "缺ä¹å¢¨æ°´", + "item.spectrum.constructors_staff.tooltip.none_in_inventory": "ç‰©å“æ ä¸­æ— ç›¸åº”æ–¹å—", + "item.spectrum.radiance_staff": "光之法æ–", + "item.spectrum.radiance_staff.tooltip": "§7使用§e闪光石§7以放置光æº", + "item.spectrum.radiance_staff.tooltip.ink": "§7使用§e黄色§7墨水或§e闪光石§7以放置光æº", + "item.spectrum.radiance_staff.tooltip2": "§7对光æºå³å‡»ä»¥æ›´æ”¹å…¶å…‰ç…§å¼ºåº¦", + "item.spectrum.music_disc_spectrum_theme": "音ä¹å”±ç‰‡", + "item.spectrum.music_disc_spectrum_theme.desc": "光谱世界主题曲", + "item.spectrum.music_disc_dimension_theme": "音ä¹å”±ç‰‡", + "item.spectrum.music_disc_dimension_theme.desc": "Radiarc - Irrelevance Fading", + "item.spectrum.music_disc_everreflective": "音ä¹å”±ç‰‡", + "item.spectrum.music_disc_everreflective.desc": "Proper Motions - Everreflective", + "item.spectrum.phantom_frame": "幻影物å“展示框", + "item.spectrum.glow_phantom_frame": "è§å…‰å¹»å½±ç‰©å“展示框", + "item.spectrum.bag_of_holding": "纳袋", + "item.spectrum.bottomless_bundle": "无底袋", + "item.spectrum.bottomless_bundle.tooltip.empty": "空", + "item.spectrum.bottomless_bundle.tooltip.count": "%d / %d(%d组)", + "item.spectrum.bottomless_bundle.tooltip.locked": "å·²é”å®šï¼ˆæŒ‰ä½æ½œè¡Œé”®å¹¶å³å‡»ä»¥è§£é”)", + "item.spectrum.bottomless_bundle.tooltip.enter_inventory": "ä½ æ¡èµ·çš„%s将会被放置于此", + "item.spectrum.bottomless_bundle.tooltip.voiding": "§7其他物å“将会被§c虚空§7æ‰€åžæ²¡", + "item.spectrum.raw_azurite": "粗石é’", + "item.spectrum.shimmerstone_gem": "闪光石", + "item.spectrum.refined_azurite": "精炼石é’", + "item.spectrum.quitoxic_powder": "奇毒粉末", + "item.spectrum.mermaids_gem": "美人鱼å®çŸ³", + "item.spectrum.end_portal_cracker": "末地传é€é—¨æ‹†è§£å™¨", + "item.spectrum.guidebook": "七彩世界", + "item.spectrum.guidebook.landing_text": "$(br)能é‡$(br)$(c_gray)盘根错节, 它们èŒå‘出$()$(br)自然的魔力$(br)$(c_gray) 直到你å‘现$(br)一切都是因何而起。", + "item.spectrum.paintbrush": "画笔", + "item.spectrum.paintbrush.tooltip.select_color": "潜行使用以选择颜色", + "item.spectrum.paintbrush.ability.header": "功能:", + "item.spectrum.paintbrush.ability.pedestal_triggering": "·基座激活", + "item.spectrum.paintbrush.ability.block_coloring": "·方å—上色", + "item.spectrum.paintbrush.ability.ink_slinging": "·墨水喷射", + "item.spectrum.paintbrush.gui.controls1": "使用移动按键进行移动", + "item.spectrum.paintbrush.gui.controls2": "ä½¿ç”¨ä¸¢å¼ƒç‰©å“æˆ–å¼€å¯ç‰©å“æ æŒ‰é”®è¿›è¡Œé€‰å–", + "item.spectrum.multitool": "多功能工具", + "item.spectrum.tender_pickaxe": "精准之é•", + "item.spectrum.lucky_pickaxe": "幸è¿ä¹‹é•", + "item.spectrum.razor_falchion": "抢夺西洋剑", + "item.spectrum.oblivion_pickaxe": "净除之é•", + "item.spectrum.resonant_pickaxe": "共鸣之é•", + "item.spectrum.spectrum_fishing_rods.tooltip": "有时候会把活的动物钓上æ¥", + "item.spectrum.lagoon_rod": "湖光钓竿", + "item.spectrum.lagoon_rod.tooltip": "浮漂会在开阔水域上æç¤ºä¸Šé’©", + "item.spectrum.molten_rod": "炽熔钓竿", + "item.spectrum.molten_rod.tooltip": "å¯åœ¨ç†”岩或其它液体中钓鱼", + "item.spectrum.molten_rod.tooltip2": "并顺带引燃你的战利å“", + "item.spectrum.glow_vision_goggles": "è§å…‰ç›®é•œ", + "item.spectrum.glow_vision_goggles.tooltip": "§7使用§bè§å…‰å¢¨å›ŠÂ§7æä¾›èƒ½é‡", + "item.spectrum.ender_splice": "末影连弦", + "item.spectrum.ender_splice.tooltip.unbound": "§7使用它以绑定你的当å‰ä½ç½®", + "item.spectrum.ender_splice.tooltip.bound_pos": "§7绑定于 %d %d %d§7 在 %s§7。使用它æ¥ä¼ é€", + "item.spectrum.ender_splice.tooltip.bound_player": "§7绑定于玩家%s。使用它æ¥ä¼ é€", + "item.spectrum.ender_splice.wrong_dimension": "末影连弦的能é‡ä¸è¶³ä»¥æ”¯æŒè·¨ç»´åº¦ä¼ é€", + "item.spectrum.natures_staff": "自然法æ–", + "item.spectrum.natures_staff.tooltip": "§7使用§aæ¤æœ¬è´¨Â§7æ¥ç§æ¤æ‰€æœ‰ç±»åž‹çš„æ¤ç‰©", + "item.spectrum.natures_staff.tooltip_with_chance": "§7使用§aæ¤æœ¬è´¨Â§7æ¥ç§æ¤æ‰€æœ‰ç±»åž‹çš„æ¤ç‰©ï¼ˆ%d%%§7)", + "item.spectrum.natures_staff.tooltip_with_ink": "§7使用§aæ¤æœ¬è´¨Â§7墨水或者§a黄绿色墨水§7æ¥ç§æ¤æ‰€æœ‰ç±»åž‹çš„æ¤ç‰©", + "item.spectrum.natures_staff.tooltip_with_ink_and_chance": "§7使用§aæ¤æœ¬è´¨Â§7或者§a黄绿色墨水§7æ¥ç§æ¤æ‰€æœ‰ç±»åž‹çš„æ¤ç‰©ï¼ˆ%d%%§7)", + "item.spectrum.pedestal_tier_1_structure_placer": "光谱注魔基座放置器", + "item.spectrum.pedestal_tier_2_structure_placer": "å…‰è°±æ³¨é­”ç¥­å›æ”¾ç½®å™¨", + "item.spectrum.pedestal_tier_3_structure_placer": "光谱注魔殿堂放置器", + "item.spectrum.fusion_shrine_structure_placer": "èžåˆåœ£å›ç»“构放置器", + "item.spectrum.enchanter_structure_placer": "注魔基座结构放置器", + "item.spectrum.spirit_instiller_structure_placer": "çµé­‚çŒæ³¨å°ç»“构放置器", + "item.spectrum.cinderhearth_structure_placer": "炼化炉结构放置器", + "item.spectrum.storm_stone": "风暴石", + "item.spectrum.stratine_fragments": "Stratine碎片", + "item.spectrum.stratine_gem": "Stratineå®çŸ³", + "item.spectrum.paltaeria_fragments": "Paltaeria碎片", + "item.spectrum.paltaeria_gem": "Paltaeriaå®çŸ³", + "item.spectrum.glistering_melon_seeds": "é—ªçƒçš„西瓜ç§å­", + + "item.spectrum.honey_pastry": "甜蜜糕点", + + "item.spectrum.jaramel_trifle": "玉藤焦糖å°ç³•", + "item.spectrum.salted_jaramel_trifle": "加ç›çŽ‰è—¤ç„¦ç³–å°ç³•", + "item.spectrum.monster_trifle": "怪物å°ç³•", + "item.spectrum.demon_trifle": "æ¶é­”å°ç³•", + + "item.spectrum.jaramel_tart": "玉藤焦糖蛋挞", + "item.spectrum.salted_jaramel_tart": "加ç›çŽ‰è—¤ç„¦ç³–è›‹æŒž", + "item.spectrum.ashen_tart": "ç°çƒ¬è›‹æŒž", + "item.spectrum.weeping_tart": "哭泣蛋挞", + "item.spectrum.whispy_tart": "舒缓蛋挞", + "item.spectrum.puff_tart": "蓬蓬蛋挞", + + "block.spectrum.blood_orchid": "血红兰", + "item.spectrum.blood_orchid_petal": "血红兰花瓣", + "item.spectrum.bloodboil_syrup": "炽血糖浆", + + "block.spectrum.sugar_stick": "ç³–æ£", + "block.spectrum.sugar_stick.tooltip.medium": "åŠå…¨é•¿æˆ", + "block.spectrum.sugar_stick.tooltip.large": "完全长æˆ", + "block.spectrum.topaz_sugar_stick": "托帕石糖æ£", + "block.spectrum.amethyst_sugar_stick": "ç´«æ°´æ™¶ç³–æ£", + "block.spectrum.citrine_sugar_stick": "黄水晶糖æ£", + "block.spectrum.onyx_sugar_stick": "缟玛瑙糖æ£", + "block.spectrum.moonstone_sugar_stick": "月长石糖æ£", + "item.spectrum.rock_candy": "冰糖", + "item.spectrum.topaz_rock_candy": "托帕石冰糖", + "item.spectrum.amethyst_rock_candy": "紫水晶冰糖", + "item.spectrum.citrine_rock_candy": "黄水晶冰糖", + "item.spectrum.onyx_rock_candy": "缟玛瑙冰糖", + "item.spectrum.moonstone_rock_candy": "月长石冰糖", + + "item.spectrum.white_crystal_grace": "月亮å®çŸ³", + + "item.spectrum.knowledge_gem": "知识å®çŸ³", + "item.spectrum.knowledge_gem.tooltip.stored_experience": "/%dç»éªŒè¢«å­˜å‚¨", + "item.spectrum.knowledge_gem.tooltip.use": "按使用键放出ç»éªŒï¼Œæˆ–者潜行时按使用键存储ç»éªŒ", + + "item.spectrum.celestial_pocketwatch": "天体怀表", + "item.spectrum.celestial_pocketwatch.tooltip.working": "日月轮转?ä¸è¿‡å¼¹æŒ‡ä¸€æ‹¨å°”。", + "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_gamerule": "一股强大的力é‡é˜»æ­¢äº†ä½ ä½¿ç”¨å¤©ä½“怀表", + "item.spectrum.celestial_pocketwatch.tooltip.use_blocked_fixed_time": "看起æ¥ä½ çš„天体怀表于这个维度中失çµäº†", + + "item.spectrum.fetchling_helmet": "勾魂头盔", + "item.spectrum.ferocious_chestplate": "残暴胸甲", + "item.spectrum.sylph_leggings": "çµæ°”护腿", + "item.spectrum.oread_boots": "å±±å·é´å­", + "item.spectrum.fetchling_helmet.tooltip": "ç»™äºˆè¢­å‡»è€…è™šå¼±å’Œç¼“æ…¢çš„çŠ¶æ€æ•ˆæžœ", + "item.spectrum.ferocious_chestplate.tooltip": "å—å‡»æ—¶ç»™äºˆä¼¤å®³å¸æ”¶å’Œçž¬é—´æ²»ç–—çš„çŠ¶æ€æ•ˆæžœ", + "item.spectrum.sylph_leggings.tooltip": "å—击时给予生命æ¢å¤çš„çŠ¶æ€æ•ˆæžœ", + "item.spectrum.oread_boots.tooltip": "å—击时给予éšèº«å’Œè¿…æ·çš„çŠ¶æ€æ•ˆæžœ", + + "item.spectrum.vibrant_cyan_catkin": "充满活力的é’色柔è‘花åº", + "item.spectrum.vibrant_magenta_catkin": "充满活力的å“红色柔è‘花åº", + "item.spectrum.vibrant_yellow_catkin": "充满活力的黄色柔è‘花åº", + "item.spectrum.vibrant_black_catkin": "充满活力的黑色柔è‘花åº", + "item.spectrum.vibrant_white_catkin": "充满活力的白色柔è‘花åº", + "item.spectrum.lucid_cyan_catkin": "鲜活的é’色柔è‘花åº", + "item.spectrum.lucid_magenta_catkin": "鲜活的å“红色柔è‘花åº", + "item.spectrum.lucid_yellow_catkin": "鲜活的黄色柔è‘花åº", + "item.spectrum.lucid_black_catkin": "鲜活的黑色柔è‘花åº", + "item.spectrum.lucid_white_catkin": "鲜活的白色柔è‘花åº", + + "item.spectrum.block_flooder": "æ–¹å—填充器", + "item.spectrum.block_flooder.tooltip": "§få¡«å……æ–¹å—间的空隙(洞穴,峡谷…)", + "item.spectrum.block_flooder.tooltip2": "§f投掷以使用;åŠå¾„:10æ–¹å—", + "item.spectrum.block_flooder.tooltip3": "从你的背包中拿å–适åˆçš„æ–¹å—", + "item.spectrum.block_flooder.tooltip4": "若没有则使用圆石", + + "item.spectrum.black_pigment": "黑色颜料", + "item.spectrum.blue_pigment": "è“色颜料", + "item.spectrum.brown_pigment": "棕色颜料", + "item.spectrum.cyan_pigment": "é’色颜料", + "item.spectrum.gray_pigment": "ç°è‰²é¢œæ–™", + "item.spectrum.green_pigment": "绿色颜料", + "item.spectrum.light_blue_pigment": "æ·¡è“色颜料", + "item.spectrum.light_gray_pigment": "æ·¡ç°è‰²é¢œæ–™", + "item.spectrum.lime_pigment": "黄绿色颜料", + "item.spectrum.magenta_pigment": "å“红色颜料", + "item.spectrum.orange_pigment": "橙色颜料", + "item.spectrum.pink_pigment": "粉红色颜料", + "item.spectrum.purple_pigment": "紫色颜料", + "item.spectrum.red_pigment": "红色颜料", + "item.spectrum.white_pigment": "白色颜料", + "item.spectrum.yellow_pigment": "黄色颜料", + + "item.spectrum.amethyst_powder": "紫水晶粉末", + "item.spectrum.citrine_powder": "黄水晶粉末", + "item.spectrum.topaz_powder": "托帕石粉末", + "item.spectrum.moonstone_powder": "月长石粉末", + "item.spectrum.onyx_powder": "缟玛瑙粉末", + + "item.spectrum.bedrock_pickaxe": "基岩é•", + "item.spectrum.bedrock_axe": "基岩斧", + "item.spectrum.bedrock_sword": "基岩剑", + "item.spectrum.bedrock_shovel": "基岩锹", + "item.spectrum.bedrock_hoe": "基岩锄", + "item.spectrum.bedrock_bow": "基岩弓", + "item.spectrum.bedrock_crossbow": "基岩弩", + "item.spectrum.bedrock_fishing_rod": "基岩钓鱼竿", + "item.spectrum.bedrock_fishing_rod.tooltip": "在最为凶暴的液体之中也能安然钓鱼", + "item.spectrum.bedrock_shears": "基岩剪刀", + "item.spectrum.bedrock_helmet": "基岩头盔", + "item.spectrum.bedrock_chestplate": "基岩胸甲", + "item.spectrum.bedrock_leggings": "基岩护腿", + "item.spectrum.bedrock_boots": "基岩é´å­", + + "item.spectrum.dreamflayer": "离梦利刃", + "item.spectrum.dreamflayer.tooltip": "自身与对方防御值差è·è¶Šå¤§", + "item.spectrum.dreamflayer.tooltip2": "造æˆçš„伤害越高", + "item.spectrum.dreamflayer.tooltip.deactivated": "潜行使用进行充能(消耗巨é‡Â§c红墨水§r)", + "item.spectrum.dreamflayer.tooltip.activated": "å·²å……èƒ½ã€‚å†æ¬¡æ½œè¡Œä½¿ç”¨ä»¥å–消激活。", + + "item.spectrum.spawner": "刷怪笼", + "item.spectrum.spawner.tooltip.unknown_mob": "未知生物", + "item.spectrum.spawner.tooltip.spawn_count": "ç”Ÿæˆæ•°é‡ï¼š%d", + "item.spectrum.spawner.tooltip.min_spawn_delay": "最å°ç”Ÿæˆå»¶è¿Ÿï¼š%d", + "item.spectrum.spawner.tooltip.max_spawn_delay": "最大生æˆå»¶è¿Ÿï¼š%d", + "item.spectrum.spawner.tooltip.spawn_range": "生æˆèŒƒå›´ï¼š%d", + "item.spectrum.spawner.tooltip.required_player_range": "玩家挂机范围:%d", + "recipe.spectrum.spawner.lore.changed_creature": "将刷怪笼生物改为头颅对应的生物", + "recipe.spectrum.spawner.lore.increased_max_nearby_entities": "增大刷怪笼的刷怪生物上é™", + "recipe.spectrum.spawner.lore.increased_required_player_range": "æå‡åˆ·æ€ªç¬¼æ¿€æ´»åŠå¾„", + "recipe.spectrum.spawner.lore.increased_spawn_count": "ç”Ÿæˆæ•°é‡å·²å¢žåŠ ", + "recipe.spectrum.spawner.lore.decreased_spawn_delay": "生æˆå»¶è¿Ÿå·²é™ä½Ž", + + "item.spectrum.citrine_shard": "黄紫水晶碎片", + "item.spectrum.topaz_shard": "托帕石碎片", + "item.spectrum.onyx_shard": "缟玛瑙碎片", + "item.spectrum.moonstone_shard": "月长石碎片", + "item.spectrum.spectral_shard": "七彩碎片", + + "item.spectrum.vegetal": "æ¤æœ¬è´¨", + "item.spectrum.neolith": "新异石", + "item.spectrum.bedrock_dust": "基岩粉", + "item.spectrum.midnight_aberration": "åˆå¤œåƒå·®", + "item.spectrum.midnight_aberration.tooltip.stable": "§o由神秘力é‡èšåˆè€Œæˆ", + "item.spectrum.midnight_chip": "åˆå¤œæ®‹ç‰‡", + + "item.spectrum.fiery_powder": "炽烈粉", + "item.spectrum.blizzard_powder": "凛寒粉", + + "block.spectrum.small_bismuth_bud": "å°åž‹é“‹æ™¶èн", + "block.spectrum.large_bismuth_bud": "大型铋晶芽", + "block.spectrum.bismuth_cluster": "é“‹æ™¶ç°‡", + "block.spectrum.bismuth_block": "é“‹æ™¶å—", + "item.spectrum.bismuth_flake": "铋晶片", + "item.spectrum.bismuth_crystal": "é“‹æ™¶", + + "block.spectrum.malachite_ore": "孔雀石矿石", + "block.spectrum.deepslate_malachite_ore": "深层孔雀石矿石", + "block.spectrum.downstone_malachite_ore": "覆底孔雀石矿石", + "item.spectrum.raw_malachite": "孔雀石", + "block.spectrum.small_malachite_bud": "å°å­”雀石芽", + "block.spectrum.large_malachite_bud": "大孔雀石芽", + "block.spectrum.malachite_cluster": "孔雀石簇", + "block.spectrum.malachite_block": "粗孔雀石", + "item.spectrum.malachite_crystal": "精炼孔雀石", + + "block.spectrum.downstone": "覆底石", + + "item.spectrum.logo_banner_pattern": "旗帜图案", + "item.spectrum.logo_banner_pattern.desc": "颜色ç†è®º", + "item.spectrum.amethyst_shard_banner_pattern": "旗帜图案", + "item.spectrum.amethyst_cluster_banner_pattern": "旗帜图案", + + "block.minecraft.banner.spectrum.shimmer.black": "黑色光点", + "block.minecraft.banner.spectrum.shimmer.red": "红色光点", + "block.minecraft.banner.spectrum.shimmer.green": "绿色光点", + "block.minecraft.banner.spectrum.shimmer.brown": "棕色光点", + "block.minecraft.banner.spectrum.shimmer.blue": "è“色光点", + "block.minecraft.banner.spectrum.shimmer.purple": "紫色光点", + "block.minecraft.banner.spectrum.shimmer.cyan": "é’色光点", + "block.minecraft.banner.spectrum.shimmer.light_gray": "æ·¡ç°è‰²å…‰ç‚¹", + "block.minecraft.banner.spectrum.shimmer.gray": "ç°è‰²å…‰ç‚¹", + "block.minecraft.banner.spectrum.shimmer.pink": "粉红色光点", + "block.minecraft.banner.spectrum.shimmer.lime": "黄绿色光点", + "block.minecraft.banner.spectrum.shimmer.yellow": "黄色光点", + "block.minecraft.banner.spectrum.shimmer.light_blue": "æ·¡è“色光点", + "block.minecraft.banner.spectrum.shimmer.magenta": "å“红色光点", + "block.minecraft.banner.spectrum.shimmer.orange": "橙色光点", + "block.minecraft.banner.spectrum.shimmer.white": "白色光点", + "block.minecraft.banner.spectrum.palette.black": "黑色艺术å“", + "block.minecraft.banner.spectrum.palette.red": "红色艺术å“", + "block.minecraft.banner.spectrum.palette.green": "绿色艺术å“", + "block.minecraft.banner.spectrum.palette.brown": "棕色艺术å“", + "block.minecraft.banner.spectrum.palette.blue": "è“色艺术å“", + "block.minecraft.banner.spectrum.palette.purple": "紫色艺术å“", + "block.minecraft.banner.spectrum.palette.cyan": "é’色艺术å“", + "block.minecraft.banner.spectrum.palette.light_gray": "æ·¡ç°è‰²è‰ºæœ¯å“", + "block.minecraft.banner.spectrum.palette.gray": "ç°è‰²è‰ºæœ¯å“", + "block.minecraft.banner.spectrum.palette.pink": "粉红色艺术å“", + "block.minecraft.banner.spectrum.palette.lime": "黄绿色艺术å“", + "block.minecraft.banner.spectrum.palette.yellow": "黄色艺术å“", + "block.minecraft.banner.spectrum.palette.light_blue": "æ·¡è“色艺术å“", + "block.minecraft.banner.spectrum.palette.magenta": "å“红色艺术å“", + "block.minecraft.banner.spectrum.palette.orange": "橙色艺术å“", + "block.minecraft.banner.spectrum.palette.white": "白色艺术å“", + "block.minecraft.banner.spectrum.amethyst_cluster.black": "黑色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.red": "红色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.green": "绿色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.brown": "棕色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.blue": "è“色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.purple": "紫色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.cyan": "é’色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.light_gray": "æ·¡ç°è‰²ç´«æ°´æ™¶ç°‡å›¾æ¡ˆ", + "block.minecraft.banner.spectrum.amethyst_cluster.gray": "ç°è‰²ç´«æ°´æ™¶ç°‡å›¾æ¡ˆ", + "block.minecraft.banner.spectrum.amethyst_cluster.pink": "粉红色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.lime": "黄绿色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.yellow": "黄色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.light_blue": "æ·¡è“色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.magenta": "å“红色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.orange": "橙色紫水晶簇图案", + "block.minecraft.banner.spectrum.amethyst_cluster.white": "白色紫水晶簇图案", + "block.minecraft.banner.spectrum.neolith.black": "黑色新异石", + "block.minecraft.banner.spectrum.neolith.red": "红色新异石", + "block.minecraft.banner.spectrum.neolith.green": "绿色新异石", + "block.minecraft.banner.spectrum.neolith.brown": "棕色新异石", + "block.minecraft.banner.spectrum.neolith.blue": "è“色新异石", + "block.minecraft.banner.spectrum.neolith.purple": "紫色新异石", + "block.minecraft.banner.spectrum.neolith.cyan": "é’色新异石", + "block.minecraft.banner.spectrum.neolith.light_gray": "æ·¡ç°è‰²æ–°å¼‚石", + "block.minecraft.banner.spectrum.neolith.gray": "ç°è‰²æ–°å¼‚石", + "block.minecraft.banner.spectrum.neolith.pink": "粉红色新异石", + "block.minecraft.banner.spectrum.neolith.lime": "黄绿色新异石", + "block.minecraft.banner.spectrum.neolith.yellow": "黄色新异石", + "block.minecraft.banner.spectrum.neolith.light_blue": "æ·¡è“色新异石", + "block.minecraft.banner.spectrum.neolith.magenta": "å“红色新异石", + "block.minecraft.banner.spectrum.neolith.orange": "橙色新异石", + "block.minecraft.banner.spectrum.neolith.white": "白色新异石", + "block.minecraft.banner.spectrum.pigment.black": "黑色颜料", + "block.minecraft.banner.spectrum.pigment.red": "红色颜料", + "block.minecraft.banner.spectrum.pigment.green": "绿色颜料", + "block.minecraft.banner.spectrum.pigment.brown": "棕色颜料", + "block.minecraft.banner.spectrum.pigment.blue": "è“色颜料", + "block.minecraft.banner.spectrum.pigment.purple": "紫色颜料", + "block.minecraft.banner.spectrum.pigment.cyan": "é’色颜料", + "block.minecraft.banner.spectrum.pigment.light_gray": "æ·¡ç°è‰²é¢œæ–™", + "block.minecraft.banner.spectrum.pigment.gray": "ç°è‰²é¢œæ–™", + "block.minecraft.banner.spectrum.pigment.pink": "粉红色颜料", + "block.minecraft.banner.spectrum.pigment.lime": "黄绿色颜料", + "block.minecraft.banner.spectrum.pigment.yellow": "黄色颜料", + "block.minecraft.banner.spectrum.pigment.light_blue": "æ·¡è“色颜料", + "block.minecraft.banner.spectrum.pigment.magenta": "å“红色颜料", + "block.minecraft.banner.spectrum.pigment.orange": "橙色颜料", + "block.minecraft.banner.spectrum.pigment.white": "白色颜料", + "block.minecraft.banner.spectrum.knowledge_gem.black": "黑色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.red": "红色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.green": "绿色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.brown": "棕色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.blue": "è“色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.purple": "紫色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.cyan": "é’色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.light_gray": "æ·¡ç°è‰²çŸ¥è¯†å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.gray": "ç°è‰²çŸ¥è¯†å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.pink": "粉红色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.lime": "黄绿色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.yellow": "黄色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.light_blue": "æ·¡è“色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.magenta": "å“红色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.orange": "橙色知识å®çŸ³", + "block.minecraft.banner.spectrum.knowledge_gem.white": "白色知识å®çŸ³", + "block.minecraft.banner.spectrum.vegetal.black": "黑色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.red": "红色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.green": "绿色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.brown": "棕色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.blue": "è“色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.purple": "紫色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.cyan": "é’色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.light_gray": "æ·¡ç°è‰²æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.gray": "ç°è‰²æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.pink": "粉红色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.lime": "黄绿色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.yellow": "黄色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.light_blue": "æ·¡è“色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.magenta": "å“红色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.orange": "橙色æ¤ç´ ", + "block.minecraft.banner.spectrum.vegetal.white": "白色æ¤ç´ ", + "block.minecraft.banner.spectrum.logo.black": "黑色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.red": "红色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.green": "绿色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.brown": "棕色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.blue": "è“色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.purple": "紫色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.cyan": "é’色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.light_gray": "æ·¡ç°è‰²é¢œè‰²ç†è®º", + "block.minecraft.banner.spectrum.logo.gray": "ç°è‰²é¢œè‰²ç†è®º", + "block.minecraft.banner.spectrum.logo.pink": "粉红色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.lime": "黄绿色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.yellow": "黄色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.light_blue": "æ·¡è“色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.magenta": "å“红色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.orange": "橙色颜色ç†è®º", + "block.minecraft.banner.spectrum.logo.white": "白色颜色ç†è®º", + "block.minecraft.banner.spectrum.four_leaf_clover.black": "黑色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.red": "红色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.green": "绿色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.brown": "棕色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.blue": "è“色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.purple": "紫色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.cyan": "é’色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.light_gray": "æ·¡ç°è‰²å››å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.gray": "ç°è‰²å››å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.pink": "粉红色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.lime": "黄绿色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.yellow": "黄色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.light_blue": "æ·¡è“色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.magenta": "å“红色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.orange": "橙色四å¶è‰", + "block.minecraft.banner.spectrum.four_leaf_clover.white": "白色四å¶è‰", + "block.minecraft.banner.spectrum.multitool.black": "黑色多功能工具", + "block.minecraft.banner.spectrum.multitool.red": "红色多功能工具", + "block.minecraft.banner.spectrum.multitool.green": "绿色多功能工具", + "block.minecraft.banner.spectrum.multitool.brown": "棕色多功能工具", + "block.minecraft.banner.spectrum.multitool.blue": "è“色多功能工具", + "block.minecraft.banner.spectrum.multitool.purple": "紫色多功能工具", + "block.minecraft.banner.spectrum.multitool.cyan": "é’色多功能工具", + "block.minecraft.banner.spectrum.multitool.light_gray": "æ·¡ç°è‰²å¤šåŠŸèƒ½å·¥å…·", + "block.minecraft.banner.spectrum.multitool.gray": "ç°è‰²å¤šåŠŸèƒ½å·¥å…·", + "block.minecraft.banner.spectrum.multitool.pink": "粉红色多功能工具", + "block.minecraft.banner.spectrum.multitool.lime": "黄绿色多功能工具", + "block.minecraft.banner.spectrum.multitool.yellow": "黄色多功能工具", + "block.minecraft.banner.spectrum.multitool.light_blue": "æ·¡è“色多功能工具", + "block.minecraft.banner.spectrum.multitool.magenta": "å“红色多功能工具", + "block.minecraft.banner.spectrum.multitool.orange": "橙色多功能工具", + "block.minecraft.banner.spectrum.multitool.white": "白色多功能工具", + "block.minecraft.banner.spectrum.guidebook.black": "黑色七彩世界", + "block.minecraft.banner.spectrum.guidebook.red": "红色七彩世界", + "block.minecraft.banner.spectrum.guidebook.green": "绿色七彩世界", + "block.minecraft.banner.spectrum.guidebook.brown": "棕色七彩世界", + "block.minecraft.banner.spectrum.guidebook.blue": "è“色七彩世界", + "block.minecraft.banner.spectrum.guidebook.purple": "紫色七彩世界", + "block.minecraft.banner.spectrum.guidebook.cyan": "é’色七彩世界", + "block.minecraft.banner.spectrum.guidebook.light_gray": "æ·¡ç°è‰²ä¸ƒå½©ä¸–界", + "block.minecraft.banner.spectrum.guidebook.gray": "ç°è‰²ä¸ƒå½©ä¸–界", + "block.minecraft.banner.spectrum.guidebook.pink": "粉红色七彩世界", + "block.minecraft.banner.spectrum.guidebook.lime": "黄绿色七彩世界", + "block.minecraft.banner.spectrum.guidebook.yellow": "黄色七彩世界", + "block.minecraft.banner.spectrum.guidebook.light_blue": "æ·¡è“色七彩世界", + "block.minecraft.banner.spectrum.guidebook.magenta": "å“红色七彩世界", + "block.minecraft.banner.spectrum.guidebook.orange": "橙色七彩世界", + "block.minecraft.banner.spectrum.guidebook.white": "白色七彩世界", + "block.minecraft.banner.spectrum.crafting_tablet.black": "é»‘è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.red": "çº¢è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.green": "ç»¿è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.brown": "æ£•è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.blue": "è“è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.purple": "ç´«è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.cyan": "é’è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.light_gray": "æ·¡ç°è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.gray": "ç°è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.pink": "ç²‰çº¢è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.lime": "é»„ç»¿è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.yellow": "é»„è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.light_blue": "æ·¡è“è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.magenta": "å“çº¢è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.orange": "æ©™è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.crafting_tablet.white": "ç™½è‰²åˆæˆæ¨¡æ¿", + "block.minecraft.banner.spectrum.ink_flask.black": "黑色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.red": "红色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.green": "绿色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.brown": "棕色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.blue": "è“色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.purple": "紫色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.cyan": "é’色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.light_gray": "æ·¡ç°è‰²å¢¨æ°´ç“¶", + "block.minecraft.banner.spectrum.ink_flask.gray": "ç°è‰²å¢¨æ°´ç“¶", + "block.minecraft.banner.spectrum.ink_flask.pink": "粉红色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.lime": "黄绿色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.yellow": "黄色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.light_blue": "æ·¡è“色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.magenta": "å“红色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.orange": "橙色墨水瓶", + "block.minecraft.banner.spectrum.ink_flask.white": "白色墨水瓶", + "block.minecraft.banner.spectrum.amethyst_shard.black": "黑色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.red": "红色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.green": "绿色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.brown": "棕色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.blue": "è“色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.purple": "紫色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.cyan": "é’色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.light_gray": "æ·¡ç°è‰²ç´«æ°´æ™¶ç¢Žç‰‡", + "block.minecraft.banner.spectrum.amethyst_shard.gray": "ç°è‰²ç´«æ°´æ™¶ç¢Žç‰‡", + "block.minecraft.banner.spectrum.amethyst_shard.pink": "粉红色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.lime": "黄绿色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.yellow": "黄色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.light_blue": "æ·¡è“色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.magenta": "å“红色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.orange": "橙色紫水晶碎片", + "block.minecraft.banner.spectrum.amethyst_shard.white": "白色紫水晶碎片", + "block.minecraft.banner.spectrum.raw_azurite.black": "黑色石é’", + "block.minecraft.banner.spectrum.raw_azurite.red": "红色石é’", + "block.minecraft.banner.spectrum.raw_azurite.green": "绿色石é’", + "block.minecraft.banner.spectrum.raw_azurite.brown": "棕色石é’", + "block.minecraft.banner.spectrum.raw_azurite.blue": "è“色石é’", + "block.minecraft.banner.spectrum.raw_azurite.purple": "紫色石é’", + "block.minecraft.banner.spectrum.raw_azurite.cyan": "é’色石é’", + "block.minecraft.banner.spectrum.raw_azurite.light_gray": "æ·¡ç°è‰²çŸ³é’", + "block.minecraft.banner.spectrum.raw_azurite.gray": "ç°è‰²çŸ³é’", + "block.minecraft.banner.spectrum.raw_azurite.pink": "粉红色石é’", + "block.minecraft.banner.spectrum.raw_azurite.lime": "黄绿色石é’", + "block.minecraft.banner.spectrum.raw_azurite.yellow": "黄色石é’", + "block.minecraft.banner.spectrum.raw_azurite.light_blue": "æ·¡è“色石é’", + "block.minecraft.banner.spectrum.raw_azurite.magenta": "å“红色石é’", + "block.minecraft.banner.spectrum.raw_azurite.orange": "橙色石é’", + "block.minecraft.banner.spectrum.raw_azurite.white": "白色石é’", + "block.minecraft.banner.spectrum.bedrock_dust.black": "黑色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.red": "红色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.green": "绿色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.brown": "棕色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.blue": "è“色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.purple": "紫色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.cyan": "é’色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.light_gray": "æ·¡ç°è‰²åŸºå²©ç²‰", + "block.minecraft.banner.spectrum.bedrock_dust.gray": "ç°è‰²åŸºå²©ç²‰", + "block.minecraft.banner.spectrum.bedrock_dust.pink": "粉红色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.lime": "黄绿色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.yellow": "黄色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.light_blue": "æ·¡è“色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.magenta": "å“红色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.orange": "橙色基岩粉", + "block.minecraft.banner.spectrum.bedrock_dust.white": "白色基岩粉", + "block.minecraft.banner.spectrum.shimmerstone.black": "黑色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.red": "红色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.green": "绿色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.brown": "棕色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.blue": "è“色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.purple": "紫色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.cyan": "é’色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.light_gray": "æ·¡ç°è‰²é—ªå…‰çŸ³", + "block.minecraft.banner.spectrum.shimmerstone.gray": "ç°è‰²é—ªå…‰çŸ³", + "block.minecraft.banner.spectrum.shimmerstone.pink": "粉红色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.lime": "黄绿色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.yellow": "黄色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.light_blue": "æ·¡è“色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.magenta": "å“红色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.orange": "橙色闪光石", + "block.minecraft.banner.spectrum.shimmerstone.white": "白色闪光石", + "block.minecraft.banner.spectrum.jade_vine.black": "黑色玉藤", + "block.minecraft.banner.spectrum.jade_vine.red": "红色玉藤", + "block.minecraft.banner.spectrum.jade_vine.green": "绿色玉藤", + "block.minecraft.banner.spectrum.jade_vine.brown": "棕色玉藤", + "block.minecraft.banner.spectrum.jade_vine.blue": "è“色玉藤", + "block.minecraft.banner.spectrum.jade_vine.purple": "紫色玉藤", + "block.minecraft.banner.spectrum.jade_vine.cyan": "é’色玉藤", + "block.minecraft.banner.spectrum.jade_vine.light_gray": "æ·¡ç°è‰²çŽ‰è—¤", + "block.minecraft.banner.spectrum.jade_vine.gray": "ç°è‰²çŽ‰è—¤", + "block.minecraft.banner.spectrum.jade_vine.pink": "粉红色玉藤", + "block.minecraft.banner.spectrum.jade_vine.lime": "黄绿色玉藤", + "block.minecraft.banner.spectrum.jade_vine.yellow": "黄色玉藤", + "block.minecraft.banner.spectrum.jade_vine.light_blue": "æ·¡è“色玉藤", + "block.minecraft.banner.spectrum.jade_vine.magenta": "å“红色玉藤", + "block.minecraft.banner.spectrum.jade_vine.orange": "橙色玉藤", + "block.minecraft.banner.spectrum.jade_vine.white": "白色玉藤", + + "trinkets.slot.chest.pin": "胸针", + "trinkets.slot.head.crown": "王冠", + "trinkets.slot.legs.pigment_palette": "调色æ¿", + + "item.spectrum.fanciful_stone_ring": "花ä¿çŸ³æˆ’指", + "item.spectrum.fanciful_belt": "花ä¿è…°å¸¦", + "item.spectrum.fanciful_pendant": "花ä¿åŠå ", + "item.spectrum.fanciful_circlet": "花ä¿å¤´ç®", + "item.spectrum.fanciful_gloves": "èŠ±ä¿æ‰‹å¥—", + "item.spectrum.jeopardant": "孤勇戒指", + "item.spectrum.jeopardant.tooltip.damage_zero": "§7ä½Žè¡€é‡æ—¶å¢žåŠ ä¼¤å®³ï¼ˆå½“å‰ä¸ºÂ§80%%§7)", + "item.spectrum.jeopardant.tooltip.damage": "§7ä½Žè¡€é‡æ—¶å¢žåŠ ä¼¤å®³ï¼ˆå½“å‰ä¸ºÂ§a+%d%%§7)", + "item.spectrum.seven_league_boots": "飞跃é´å­", + "item.spectrum.gleaming_pin": "闪耀胸针", + "item.spectrum.gleaming_pin.tooltip": "§7å—击时高亮显示周围所有怪物", + "item.spectrum.totem_pendant": "图腾åŠå ", + "item.spectrum.totem_pendant.tooltip": "§7防止玩家死亡(一次性)", + "item.spectrum.take_off_belt": "弹射腰带", + "item.spectrum.take_off_belt.tooltip": "潜行æ¥ä¸ºé«˜è·³å……能", + "item.spectrum.azure_dike_belt": "è”šè“æŠ¤ç›¾è…°å¸¦", + "item.spectrum.azure_dike_belt.tooltip": "§7åœ¨æ¯æ¬¡å—å‡»åŽæç¤ºÂ§9è”šè“æŠ¤ç›¾å€¼Â§7", + "item.spectrum.azure_dike_ring": "è”šè“æŠ¤ç›¾æˆ’æŒ‡", + "item.spectrum.azure_dike_ring.tooltip": "§7略微æå‡å—击åŽÂ§9è”šè“æŠ¤ç›¾å€¼Â§7回å¤é€Ÿåº¦", + "item.spectrum.shieldgrasp_amulet": "åšç›¾æŠ¤ç¬¦", + "item.spectrum.azure_dike_provider.tooltip": "§7给予§a%d§7§9è”šè“æŠ¤ç›¾å€¼", + + "item.spectrum.total_capped_simple_pigment_energy_storage.tooltip": "§7总共å¯ä»¥å­˜å‚¨æœ€å¤š%d§7的墨水", + + "item.spectrum.pigment_palette": "调色æ¿", + "item.spectrum.pigment_palette.tooltip": "§7以纯净魔法形å¼å­˜å‚¨Â§2染§3æ–™", + "item.spectrum.artists_palette": "艺术家调色æ¿", + "item.spectrum.artists_palette.tooltip": "§7总共å¯ä»¥å­˜å‚¨æœ€å¤š%d§7的墨水", + "item.spectrum.artists_palette.tooltip.mix_on_demand": "§7按需混åˆå¢¨æ°´", + + "item.spectrum.ink_flask": "墨水瓶", + "item.spectrum.ink_flask.tooltip": "§7总共å¯ä»¥å­˜å‚¨æœ€å¤š%d§7的墨水", + "item.spectrum.ink_assortment": "墨水混åˆå™¨", + "item.spectrum.ink_assortment.tooltip": "§7æ¯ç§å¢¨æ°´å¯ä»¥å­˜å‚¨%d§7", + + "item.spectrum.creative_ink_assortment": "创造模å¼å¢¨æ°´æ··åˆå™¨", + "item.spectrum.creative_ink_assortment.tooltip": "§7æºæºä¸æ–­çš„墨水瓶", + + "block.spectrum.color_picker": "颜色选å–器", + "block.spectrum.color_picker.tooltip": "将§2颜§3料§7转å˜ä¸ºå¢¨æ°´", + "block.spectrum.inkwell": "墨水井", + "block.spectrum.inkwell.tooltip": "æ”¾ç½®äºŽæ°´æ™¶æ”¶é›†å™¨ä¸Šæ¥æå–墨水", + "block.spectrum.ink_duct": "墨水导管", + "block.spectrum.ink_duct.tooltip": "直线传输墨水", + "block.spectrum.crystal_apothecary": "水晶收集器", + "block.spectrum.crystal_apothecary.tooltip": "å°†å…¶æ”¾ç½®äºŽæ™¶æ´žä¸­æ¥æ”¶é›†å®çŸ³æ™¶ç¢Žç‰‡", + + "item.spectrum.neat_ring": "æ•´æ´çš„æˆ’指", + "item.spectrum.neat_ring.tooltip": "§7确实很§oæ•´æ´", + "item.spectrum.lesser_potion_pendant": "å°åž‹è¯æ°´åŠå ", + "item.spectrum.greater_potion_pendant": "å¤§åž‹è¯æ°´åŠå ", + "item.spectrum.potion_pendant.tooltip_not_full_one": "§7å¯åœ¨Â§fè¯æ°´å·¥ä½œç«™Â§7ä¸­å¡«å……ä¸€ç§æ•ˆæžœ", + "item.spectrum.potion_pendant.tooltip_not_full_count": "§7å¯åœ¨Â§fè¯æ°´å·¥ä½œç«™Â§7中填充至多§f%d§7ç§æ•ˆæžœ", + "item.spectrum.potion_pendant.tooltip_max_level": "§7支æŒçš„æ•ˆæžœç­‰çº§æœ€é«˜ä¸º", + "item.spectrum.radiance_pin": "è¾èŠ’èƒ¸é’ˆ", + "item.spectrum.radiance_pin.tooltip": "§7在黑暗中自动放置临时光æº", + "item.spectrum.ashen_circlet": "余烬头ç®", + "item.spectrum.ashen_circlet.tooltip": "§7ä¿æŠ¤ä½ å…于ç«ç„°ä¼¤å®³", + "item.spectrum.ashen_circlet.tooltip2": "§7并在岩浆中获得更好的视野和速度", + "item.spectrum.ashen_circlet.tooltip.cooldown_full": "§2ç»çƒ­åŠŸèƒ½å°±ç»ª", + "item.spectrum.ashen_circlet.tooltip.cooldown_seconds": "§7ç§’è·é‡æ–°å……能还有§f%d§7ç§’", + "item.spectrum.weeping_circlet": "哭泣头环", + "item.spectrum.weeping_circlet.tooltip": "§7从水中过滤出氧气并大幅", + "item.spectrum.weeping_circlet.tooltip2": "§7æå‡çŽ©å®¶çš„æ°´ä¸‹æœºåŠ¨æ€§", + "item.spectrum.weeping_circlet.tooltip3": "§7治愈你周围的 §f美西螈", + "item.spectrum.puff_circlet": "蓬蓬头ç®", + "item.spectrum.puff_circlet.tooltip": "§7消耗§9è”šè“æŠ¤ç›¾å€¼Â§7", + "item.spectrum.puff_circlet.tooltip2": "§7æ¥å…疫弹射物和衰è½ä¼¤å®³", + "item.spectrum.whispy_circlet": "舒缓头ç®", + "item.spectrum.whispy_circlet.tooltip": "§7防止幻翼生æˆ", + "item.spectrum.whispy_circlet.tooltip2": "§7ç¼©çŸ­è´Ÿé¢æ•ˆæžœçš„æŒç»­æ—¶é—´", + "item.spectrum.whispy_circlet.tooltip3": "§7ç¡è§‰å›žè¡€", + "item.spectrum.heartsingers_reward": "å¿ƒçµæ­Œæ‰‹çš„回报", + "item.spectrum.heartsingers_reward.tooltip": "æç¤ºæœ€å¤§ç”Ÿå‘½å€¼", + "item.spectrum.gloves_of_dawns_grasp": "黎明之æ¡çš„æ‰‹å¥—", + "item.spectrum.gloves_of_dawns_grasp.tooltip": "æå‡ä½ çš„æ”»å‡»è·ç¦»", + + "item.spectrum.crafting_tablet": "åˆæˆæ¨¡æ¿", + "item.spectrum.crafting_tablet.tooltip.no_recipe": "å°†ç‰©å“æ·»åŠ åˆ°åˆæˆæ¿ä¸­ä»¥è®¾ç½®é…æ–¹", + "item.spectrum.crafting_tablet.tooltip.crafting_recipe": "æŒ‰ä¸‹ä½¿ç”¨é”®åˆæˆ", + "item.spectrum.crafting_tablet.tooltip.shift_to_view_gui": "æ½œè¡Œå¹¶æŒ‰ä¸‹ä½¿ç”¨é”®æ¥æ‰“开设置界é¢", + "item.spectrum.crafting_tablet.tooltip.pedestal_recipe": "äºŽä¸ƒå½©åŸºåº§ä¸­ä½¿ç”¨ä»¥è‡ªåŠ¨åˆæˆ", + "item.spectrum.crafting_tablet.tooltip.recipe": "%d %s", + + "item.spectrum.star_fragment": "æµæ˜Ÿç¢Žç‰‡", + "item.spectrum.stardust": "星尘", + "item.spectrum.hibernating_jade_vine_seeds": "æ²‰çœ çš„çŽ‰è—¤çƒæžœ", + "item.spectrum.hibernating_jade_vine_seeds.tooltip": "有些……死气沉沉?", + "item.spectrum.germinated_jade_vine_seeds": "ç„•æ´»çš„çŽ‰è—¤çƒæžœ", + "item.spectrum.germinated_jade_vine_seeds.tooltip": "§7ä¾é™„在木制栅æ ä¸Šç”Ÿé•¿", + "item.spectrum.germinated_jade_vine_seeds.tooltip2": "§7åªåœ¨Â§f月光§7下生长", + "item.spectrum.germinated_jade_vine_seeds.tooltip3": "§e⚠暴露在阳光下会使其枯èŽ", + "item.spectrum.jade_vine_petals": "玉藤花瓣", + "item.spectrum.moonstruck_nectar": "æœ›èˆ’ç¼æµ†", + "item.spectrum.moonstruck_nectar.tooltip": "它能修å¤ä»»ä½•æŸå的工具", + "item.spectrum.moonstruck_nectar.tooltip2": "饮用åŽèŽ·å¾—çŸ­æ—¶é—´çš„ç”Ÿå‘½æ¢å¤çˆ†å‘", + "item.spectrum.restoration_tea": "æ¢å¤ä¹‹èŒ¶", + "item.spectrum.restoration_tea.tooltip": "§7ç¥›é™¤æ‰€æœ‰è´Ÿé¢æ•ˆæžœ", + "item.spectrum.restoration_tea.tooltip2": "§7并使你暂时对它们å…ç–«", + "item.spectrum.restoration_tea.tooltip_milk": "加奶", + "item.spectrum.jade_jelly": "玉藤冻", + "item.spectrum.jade_jelly.tooltip": "è¥å…»ä¸Žé£Žå‘³ä¿±ä½³", + "item.spectrum.glistering_jelly_tea": "闪光å‡å†»èŒ¶", + "item.spectrum.glistering_jelly_tea.tooltip": "暂时性增加你的攻击频率", + "item.spectrum.jaramel": "玉藤焦糖", + "item.spectrum.lucky_roll": "幸è¿å·", + "item.spectrum.triple_meat_pot_pie": "三层肉酱派", + + "item.spectrum.star_candy": "星星糖", + "item.spectrum.star_candy.tooltip": "清除å•独的一个负é¢çŠ¶æ€æ•ˆæžœ", + "item.spectrum.purple_star_candy": "紫色星星糖", + "item.spectrum.purple_star_candy.tooltip": "清除所有的负é¢çŠ¶æ€æ•ˆæžœ", + "item.spectrum.purple_star_candy.tooltip2": "将玩家完全治愈并终结饥饿", + "item.spectrum.suspicious_brew": "谜之酒酿", + "item.spectrum.suspicious_brew.tooltip": "这里é¢åˆ°åº•掺了点啥?", + "item.spectrum.suspicious_brew.tooltip.preview": "æŒç»­æ—¶é—´éšé…’精度的增加而呈指数级增长", + "item.spectrum.suspicious_brew.tooltip.preview2": "效果增益由加入的花朵决定", + "item.spectrum.jade_wine": "玉藤酒", + "item.spectrum.jade_wine.tooltip.bloominess": "%d %% 绽放度", + "item.spectrum.jade_wine.tooltip.sweetened": "加甜", + "item.spectrum.jade_wine.tooltip.preview3": "é…’ç²¾åº¦è¶Šé«˜ï¼Œä¿æŠ¤æ€§æ•ˆæžœå°±è¶Šå¤šè¶Šé•¿", + "item.spectrum.jade_wine.tooltip.preview": "ç”¨çƒæžœä¸ŽèŠ±ç“£çš„ç»„åˆä½“æ¥é…¿é€ ", + "item.spectrum.jade_wine.tooltip.preview2": "èŠ±ç“£æ¯”çƒæžœå‘酵更慢,但æä¾›çš„è´Ÿé¢æ•ˆæžœä¼šæ›´å°‘", + "item.spectrum.pure_alcohol": "纯酒精", + "item.spectrum.moonshine": "烈酒", + "item.spectrum.chrysocolla": "凤凰石酒", + "item.spectrum.reprise": "è€è°ƒé‡å¼¹ï¼ˆæš‚译)", + "item.spectrum.reprise.tooltip.teleport": "å¾€éšæœºæ–¹å‘瞬移%dæ ¼", + "item.spectrum.kimchi": "泡èœ", + "item.spectrum.fresh_chocolate": "鲜巧克力", + "item.spectrum.bodacious_berry_bar": "元气莓果棒", + "item.spectrum.hot_chocolate": "热巧克力", + "item.spectrum.demon_tea": "魔鬼花茶", + "item.spectrum.scone": "å¸åº·é¥¼", + "item.spectrum.clotted_cream": "å‡è„‚奶油", + "item.spectrum.clotted_cream.tooltip": "ç§»é™¤æ‰€æœ‰çš„çŠ¶æ€æ•ˆæžœ", + "item.spectrum.infused_beverage": "注魔饮料", + "item.spectrum.infused_beverage.tooltip.age": "已酿造%d天 - %d %% 酒精度", + "item.spectrum.infused_beverage.tooltip.variant.unknown": "难以辨认的味é“", + "item.spectrum.infused_beverage.tooltip.variant.apple_cider": "苹果汽水", + "item.spectrum.infused_beverage.tooltip.variant.apple_liquor": "苹果酒", + "item.spectrum.infused_beverage.tooltip.variant.golden_apple_cider": "金苹果汽水", + "item.spectrum.infused_beverage.tooltip.variant.enchanted_apple_cider": "附魔苹果汽水", + "item.spectrum.infused_beverage.tooltip.variant.beer": "啤酒", + "item.spectrum.infused_beverage.tooltip.variant.berry_cider": "莓果汽水", + "item.spectrum.infused_beverage.tooltip.variant.berry_liquor": "莓果酒", + "item.spectrum.infused_beverage.tooltip.variant.glow_berry_cider": "å‘光莓果汽水", + "item.spectrum.infused_beverage.tooltip.variant.glow_berry_liquor": "å‘光莓果酒", + "item.spectrum.infused_beverage.tooltip.variant.malt_beer": "麦芽啤酒", + "item.spectrum.infused_beverage.tooltip.variant.mead": "蜜酒", + "item.spectrum.infused_beverage.tooltip.variant.mint_schnapps": "è–„è·çƒˆé…’", + "item.spectrum.infused_beverage.tooltip.variant.mint_cream": "è–„è·æ¸…酒(暂译)", + "item.spectrum.infused_beverage.tooltip.variant.rabbit_poison": "兔孿¯’è¯", + "item.spectrum.infused_beverage.tooltip.variant.poisonous_vodka": "ä¼ç‰¹åŠ ", + "item.spectrum.infused_beverage.tooltip.variant.vodka": "ä¼ç‰¹åŠ ", + "item.spectrum.infused_beverage.tooltip.variant.tequila": "龙舌兰酒", + "item.spectrum.infused_beverage.tooltip.variant.sake": "清酒", + "item.spectrum.infused_beverage.tooltip.variant.ale": "白啤酒", + "item.spectrum.infused_beverage.tooltip.variant.rum": "朗姆酒", + "item.spectrum.infused_beverage.tooltip.variant.damassine": "大马士é©é…’", + "item.spectrum.infused_beverage.tooltip.variant.incubus_cream": "淫鬼油", + "item.spectrum.infused_beverage.tooltip.variant.lager": "陈啤", + "item.spectrum.infused_beverage.tooltip.variant.porter": "波特酒", + "item.spectrum.infused_beverage.tooltip.variant.hare_bane_creme": "赫尔ç­çº³é…’(暂译)", + "item.spectrum.infused_beverage.tooltip.variant.artemisa": "è’¿è‰é…’(暂译)", + "item.spectrum.infused_beverage.tooltip.variant.advocaat": "蛋黄酒", + "item.spectrum.infused_beverage.tooltip.variant.gin": "ç´é…’", + + "item.spectrum.freigeist": "圣çµé…’", + "item.spectrum.freigeist.tooltip": "§4♥§r 你希望你是个天使? §4♡§r", + "item.spectrum.divination_heart": "圣化之心", + + "item.spectrum.crescent_clock": "月相时钟", + "item.spectrum.gilded_book": "éŽé‡‘之书", + "item.spectrum.gilded_book.tooltip.enchantability": "附魔亲和力强", + "item.spectrum.gilded_book.tooltip.copy_enchantments": "在注魔基座中", + "item.spectrum.gilded_book.tooltip.copy_enchantments2": "从其他物å“中æå–附魔", + "item.spectrum.enchantment_canvas": "附魔画布", + "item.spectrum.enchantment_canvas.tooltip.bound_to": "§7绑定于:", + "item.spectrum.enchantment_canvas.tooltip.not_bound": "§7å³å‡»åœ¨å¯¹åº”物å“上以调æ¢é™„é­”", + "item.spectrum.enchantment_canvas.tooltip.not_bound2": "§7该画布将绑定于该ç§ç‰©å“", + + "item.spectrum.mysterious_locket": "神秘å é¥°ç›’", + "item.spectrum.mysterious_locket.tooltip": "展示出一个é”状的水晶åŠå ", + "item.spectrum.mysterious_locket.tooltip2": "柔和地闪çƒç€é›ªç™½", + + "item.spectrum.bottle_of_fading": "消é€å¾®ç”Ÿç‰©ä¹‹ç“¶", + "item.spectrum.bottle_of_fading.tooltip": "§2滑溜溜的!", + "item.spectrum.bottle_of_failing": "侵蚀微生物之瓶", + "item.spectrum.bottle_of_failing.tooltip": "§eâš  饥饿", + "item.spectrum.bottle_of_ruin": "æŸæ¯å¾®ç”Ÿç‰©ä¹‹ç“¶", + "item.spectrum.bottle_of_ruin.tooltip": "§4âš  ä½ å¯èƒ½ä¼šåŽæ‚”这样åšçš„,对å§ï¼Ÿ", + "item.spectrum.bottle_of_terror": "ææ€–微生物之瓶", + "item.spectrum.bottle_of_terror.tooltip": "§4âš  我希望你明白自己在干什么", + "item.spectrum.bottle_of_decay_away": "清ç†å¾®ç”Ÿç‰©ä¹‹ç“¶", + "item.spectrum.bottle_of_decay_away.tooltip": "§2æ€ç­99%的自我å¤åˆ¶å¾®ç”Ÿç‰©", + "block.spectrum.fading": "消é€å¾®ç”Ÿç‰©", + "block.spectrum.failing": "侵蚀微生物", + "block.spectrum.ruin": "æŸæ¯å¾®ç”Ÿç‰©", + "block.spectrum.terror": "ææ…Œå¾®ç”Ÿç‰©", + "block.spectrum.decay_away": "清ç†å¾®ç”Ÿç‰©", + "block.spectrum.particle_spawner": "ç²’å­ç”Ÿæˆå™¨", + "block.spectrum.creative_particle_spawner": "创造模å¼ç²’å­ç”Ÿæˆå™¨", + "block.spectrum.creative_particle_spawner.tooltip": "无法破å且无需红石", + "block.spectrum.cracked_end_portal_frame": "ç ´æŸçš„æœ«åœ°ä¼ é€é—¨", + + "block.spectrum.present": "礼物", + "block.spectrum.present.tooltip.description": "点击物å“å³å¯å°†å…¶åŒ…入礼物中", + "block.spectrum.present.tooltip.description2": "å°†å…¶æ”¾å…¥åˆæˆæ ¼åŽä¸Žé¢œæ–™åˆæˆå³å¯æ‰“包", + "block.spectrum.present.tooltip.wrapped": "å·²æ‰“åŒ…ï¼ˆæ”¾ç½®åŽæŒ‰ä½æ½œè¡Œé”®å¹¶å³å‡»å³å¯æ‰“开)", + "block.spectrum.present.tooltip.wrapped.giver": "ç”± %s æ‰“åŒ…ï¼ˆæ”¾ç½®åŽæŒ‰ä½æ½œè¡Œé”®å¹¶å³å‡»å³å¯æ‰“开)", + "block.spectrum.present.tooltip.wrapped_placed": "æ˜¯ç¤¼ç‰©ï¼æŒ‰ä½æ½œè¡Œé”®å¹¶å³å‡»æ¥æ‰“å¼€å§", + "block.spectrum.present.tooltip.wrapped_placed.giver": "是%sé€çš„ç¤¼ç‰©ï¼æŒ‰ä½æ½œè¡Œé”®å¹¶å³å‡»æ¥æ‰“å¼€å§", + + "block.spectrum.titration_barrel": "å‘酵桶", + "block.spectrum.titration_barrel.content_count": "包å«%d个物å“(最多%d个)。使用染色木æ¿å¯†å°ä»¥å¼€å§‹å‘é…µ", + "block.spectrum.titration_barrel.content_count_full": "包å«%d个物å“(已满)。使用染色木æ¿å¯†å°ä»¥å¼€å§‹å‘é…µ", + "block.spectrum.titration_barrel.tapping_item_required": "è‹¥è¦æ‰“开,需è¦ä½¿ç”¨", + "block.spectrum.titration_barrel.days_of_sealing_before_opened": "密å°äºŽ%dæ¸¸æˆæ—¥ï¼ˆçŽ°å®žç”Ÿæ´»ä¸­çš„%s天)å‰ã€‚æŒ‰ä½æ½œè¡Œé”®å¯¹å…¶å³å‡»ä»¥è§£å°", + "block.spectrum.titration_barrel.invalid_recipe": "看上去它还ä¸èƒ½ç”Ÿäº§ç‚¹å¯ä»¥å–的东西æ¥...", + "block.spectrum.titration_barrel.invalid_recipe_when_tapping": "é¢ï¼Œè¿™æ¡¶é‡Œçš„æ··åˆç‰©æ˜¯ä¸å¯é¥®ç”¨çš„", + "block.spectrum.titration_barrel.empty_when_tapping": "å—¯...它是空的", + "block.spectrum.titration_barrel.missing_liquid_when_tapping": "å”‰ï¼Œè¿™æ¡¶å› ä¸ºæ··è¿›åŽ»äº†ç‚¹æ¶²æ€æ°´ï¼Œé‡Œé¢çš„东西已ç»å˜è´¨äº†", + "block.spectrum.titration_barrel.days_of_sealing_after_opened_with_extractable_amount": "%s需è¦è€—æ—¶%dæ¸¸æˆæ—¥ï¼ˆçŽ°å®žç”Ÿæ´»ä¸­çš„%s天)æ¥è¿›è¡Œå‘é…µ", + "block.spectrum.titration_barrel.invalid_recipe_after_opened": "é¢ï¼Œä¸€ç§ä¸å¯é¥®ç”¨çš„æ··åˆç‰©éœ€è¦è€—æ—¶%dæ¸¸æˆæ—¥ï¼ˆçŽ°å®žç”Ÿæ´»ä¸­çš„%s天)æ¥è¿›è¡Œå‘é…µ", + "block.spectrum.titration_barrel.debug_added_day": "(调试功能)增加(现实生活中的)一天的å‘酵时间", + + "advancements.spectrum.break_decayed_bedrock.title": "石破天惊", + "advancements.spectrum.break_decayed_bedrock.description": "使用下界åˆé‡‘é•ç ´å一个基岩", + "advancements.spectrum.break_budding_block_with_resonance_tool.title": "å‹è°Šçš„èŒèн", + "advancements.spectrum.break_budding_block_with_resonance_tool.description": "使用带有共振附魔的工具破åå®çŸ³æ™¶èн", + "advancements.spectrum.break_infested_block_with_resonance_tool.title": "你也有今天", + "advancements.spectrum.break_infested_block_with_resonance_tool.description": "使用带有共振附魔的工具破å被虫蚀的方å—", + "advancements.spectrum.break_spawner_with_resonance_tool.title": "ã€Šæ±æ–¹å°é­”録》", + "advancements.spectrum.break_spawner_with_resonance_tool.description": "使用带有共振附魔的工具破å刷怪笼", + "advancements.spectrum.build_advanced_pedestal_structure.title": "建造祭å›", + "advancements.spectrum.build_advanced_pedestal_structure.description": "建造å‡çº§çš„七彩基座结构", + "advancements.spectrum.build_basic_pedestal_structure.title": "传导魔法", + "advancements.spectrum.build_basic_pedestal_structure.description": "为了完全驾驭å‡çº§åŽçš„七彩基座,你需è¦å»ºé€ ä¸€ç§ç»“æž„æ¥å°†èƒ½é‡ä»Žå®çŸ³æ™¶ä¼ å¯¼åˆ°ä¸ƒå½©åŸºåº§ä¸Š", + "advancements.spectrum.build_complex_pedestal_structure.title": "建造殿堂", + "advancements.spectrum.build_complex_pedestal_structure.description": "冿¬¡å‡çº§ä¸ƒå½©åŸºåº§ä»¥å®Œå…¨è§£æ”¾å…¶é­”力", + "advancements.spectrum.carry_too_many_heavy_gravity_blocks.title": "è¶…é‡æ˜¯ä»€ä¹ˆè®¾å®šï¼Ÿ", + "advancements.spectrum.carry_too_many_heavy_gravity_blocks.description": "身上的绯红物å“太多,你跳ä¸èµ·æ¥äº†", + "advancements.spectrum.carry_too_many_low_gravity_blocks.title": "ä½ è®°ä¸è®°å¾—有一招从天而é™çš„……", + "advancements.spectrum.carry_too_many_low_gravity_blocks.description": "身上的è‹ç»¿ç‰©å“太多,你飞了起æ¥", + "advancements.spectrum.catch_shooting_star.title": "æ‰‹å¯æ‘˜æ˜Ÿè¾°", + "advancements.spectrum.catch_shooting_star.description": "æ•æ‰ä¸€é¢—æµæ˜Ÿ", + "advancements.spectrum.collect_all_basic_pigments.title": "ä¸€ä¸ªä¹Ÿä¸æ”¾è¿‡", + "advancements.spectrum.collect_all_basic_pigments.description": "集é½12ç§æŸ“æ–™", + "advancements.spectrum.collect_all_basic_pigments_besides_brown.title": "棕色好诡异", + "advancements.spectrum.collect_all_basic_pigments_besides_brown.description": "æ··åˆé¢œè‰²ä¼¼ä¹Žå¾ˆç®€å•。然而棕色破å了你的好兴致。你还真的无法混åˆå‡ºæ£•色", + "advancements.spectrum.collect_all_basic_shards.title": "到底有多少?", + "advancements.spectrum.collect_all_basic_shards.description": "收集所有自然生æˆçš„å®çŸ³æ™¶", + "advancements.spectrum.collect_azurite.title": "å¿§éƒâ€œè“â€è°ƒ", + "advancements.spectrum.collect_azurite.description": "收集到粗石é’。需è¦ç²¾ç‚¼æ‰èƒ½æ›´æœ‰ç”¨å¤„", + "advancements.spectrum.collect_neolith.title": "ä¸å®šå½¢ï¼Œåˆä¸æ˜¯é‚£ä¹ˆä¸å®šå½¢", + "advancements.spectrum.collect_neolith.description": "获得新异石", + "advancements.spectrum.collect_four_leaf_clover.title": "å万分之一", + "advancements.spectrum.collect_four_leaf_clover.description": "找到一个四å¶è‰", + "advancements.spectrum.collect_gemstone_powder.title": "粉碎", + "advancements.spectrum.collect_gemstone_powder.description": "ä¸ƒå½©åŸºåº§ä¸­åˆæˆéœ€è¦å®çŸ³æ™¶ç²‰æœ«ã€‚粉碎物å“çš„æœ€ç›´æŽ¥æ–¹å¼æ˜¯ä»€ä¹ˆå‘¢ï¼Ÿ", + "advancements.spectrum.collect_grayscale_pigments.title": "四度ç°", + "advancements.spectrum.collect_grayscale_pigments.description": "通过收集四ç§è‰²è°ƒçš„ç°è‰²é¢œæ–™æ¥å……实你的颜料收è—", + "advancements.spectrum.collect_storm_stone.title": "风å¹é›·æ‰“", + "advancements.spectrum.collect_storm_stone.description": "找到风暴石的æºå¤´", + "advancements.spectrum.collect_mermaids_gem.title": "是è°é•¿åœ¨æ·±æµ·çš„æ²™ç ¾çŸ³é‡Œï¼Ÿ", + "advancements.spectrum.collect_mermaids_gem.description": "获å–美人鱼å®çŸ³", + "advancements.spectrum.collect_moonstone_shard.title": "夺目炫白", + "advancements.spectrum.collect_moonstone_shard.description": "å‘现一个月长石晶洞", + "advancements.spectrum.collect_paltaeria.title": "看它飘过", + "advancements.spectrum.collect_paltaeria.description": "获得è‹ç»¿çŸ³ç¢Žç‰‡", + "advancements.spectrum.collect_pigment.title": "收集精炼颜料", + "advancements.spectrum.collect_pigment.description": "ç ´åæŸ“色树的å¶å­æ¥èŽ·å¾—ä½ æ¸´æ±‚çš„çº¯å‡€é¢œæ–™ã€‚åªæœ‰ä½ äº²è‡ªç ´åæ ‘å¶ï¼Œå®ƒä»¬æ‰ä¼šé‡Šæ”¾å‡ºå…¶ç贵的颜料", + "advancements.spectrum.collect_quitoxic_reeds.title": "淹没在池沼里", + "advancements.spectrum.collect_quitoxic_reeds.description": "å‘现奇毒苇", + "advancements.spectrum.craft_resonant_pickaxe.title": "微妙共振", + "advancements.spectrum.craft_resonant_pickaxe.description": "制造共振é•", + "advancements.spectrum.collect_resonant_lily.title": "花影难觅", + "advancements.spectrum.collect_resonant_lily.description": "采摘一朵共振百åˆèб", + "advancements.spectrum.collect_stratine.title": "沉é‡è´Ÿæ‹…", + "advancements.spectrum.collect_stratine.description": "于下界深处寻回绯红石", + "advancements.spectrum.collect_star_fragment.title": "ç¹æ˜Ÿä¹‹ç©º", + "advancements.spectrum.collect_star_fragment.description": "å¯»æ‰¾æµæ˜Ÿçš„ç贵残骸", + "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.title": "ç¨ä½œä¼‘æ¯", + "advancements.spectrum.collect_gemstone_shard_using_crystal_apothecary.description": "在晶洞的中心放置水晶收集器æ¥è‡ªåŠ¨æ”¶é›†é•¿å¤§çš„ç´«æ°´æ™¶ç°‡", + "advancements.spectrum.collect_shimmerstone.title": "一è§é’Ÿæƒ…", + "advancements.spectrum.collect_shimmerstone.description": "ä½ ä»Žæ¥æ²¡æ³¨æ„过这ç§çŸ¿çŸ³...真是奇了怪了ï¼ä¼šä¸ä¼šè¿™ä¸–上有比你曾想过的还è¦å¤šçš„东西?", + "advancements.spectrum.collect_vegetal.title": "有机之物", + "advancements.spectrum.collect_vegetal.description": "给它们喂食,然åŽå和放宽……å†ç ´å它们以å–得掉è½ç‰©", + "advancements.spectrum.craft_bottle_of_fading.title": "人ä¸åº”该……", + "advancements.spectrum.craft_bottle_of_fading.description": "是时候用你的全新魔法能力创造生命了! 或者是æŸç§â€¦â€¦å¾®ç”Ÿç‰©ã€‚虚弱而åˆç¼“慢……但好歹起眼。它们åƒä»€ä¹ˆï¼Ÿ", + "advancements.spectrum.craft_bottle_of_failing.title": "人更ä¸èƒ½â€¦â€¦", + "advancements.spectrum.craft_bottle_of_failing.description": "你的第一个实验很æˆåŠŸã€‚ä½†æ˜¯è¿˜æœ‰æ›´å¤šâ€¦â€¦", + "advancements.spectrum.craft_bottle_of_ruin.title": "ç»å¯¹ç¦å¿Œ", + "advancements.spectrum.craft_bottle_of_ruin.description": "看起æ¥è¿˜æœ‰ä¸å°‘事情å¯ä»¥æŽ¢ç´¢ã€‚利用纯粹的水晶注入虚空的力é‡ï¼Œåˆ›é€ å‡ºå™¬ç­ä¸–界的崩å之物", + "advancements.spectrum.craft_colored_pedestal.title": "三原色,å¯åЍï¼", + "advancements.spectrum.craft_colored_pedestal.description": "使用所有你收集到的å®çŸ³æ™¶å‡çº§ä½ çš„七彩基座", + "advancements.spectrum.craft_colored_sapling.title": "ä½ çš„é¢å­”熟悉而åˆé™Œç”Ÿ", + "advancements.spectrum.craft_colored_sapling.description": "ä½¿ç”¨ä½ çš„é­”æ³•èƒ½åŠ›åˆæˆæŸ“色树苗", + "advancements.spectrum.craft_moonstone_pedestal.title": "白炽之光", + "advancements.spectrum.craft_moonstone_pedestal.description": "ä½¿ç”¨æœˆé•¿çŸ³å†æ¬¡å‡çº§ä½ çš„七彩基座", + "advancements.spectrum.craft_onyx_pedestal.title": "冿¥ä¸€æ¬¡ä¹Ÿæ²¡ä»€ä¹ˆå处?", + "advancements.spectrum.craft_onyx_pedestal.description": "ä½¿ç”¨ç¼ŸçŽ›ç‘™å†æ¬¡å‡çº§ä½ çš„七彩基座", + "advancements.spectrum.craft_something_brown.title": "彩虹的å¦ä¸€é¢", + "advancements.spectrum.craft_something_brown.description": "ä½¿ç”¨ç¼ŸçŽ›ç‘™ç²‰äºŽä¸ƒå½©åŸºåº§ä¸­åˆæˆçº¯æ­£çš„æ£•色物å“", + "advancements.spectrum.craft_using_pedestal.title": "似曾相识", + "advancements.spectrum.craft_using_pedestal.description": "在七彩基座中使用å®çŸ³æ™¶ç¢Žç‰‡åˆæˆä¸€äº›ç‰©å“ã€‚å®ƒä¼¼ä¹Žå¯¹çº¢çŸ³ä¿¡å·æœ‰æ‰€å应?", + "advancements.spectrum.fail_to_take_item_out_of_pedestal.title": "ä½¿ç”¨ç”»ç¬”æ¿€æ´»ä»¥å¼€å§‹åˆæˆ", + "advancements.spectrum.fail_to_take_item_out_of_pedestal.description": "ä½¿ç”¨ç”»ç¬”æ¿€æ´»ä»¥å¼€å§‹åˆæˆ", + "advancements.spectrum.create_onyx_shard.title": "é‡è¿”黑暗", + "advancements.spectrum.create_onyx_shard.description": "在月黑风高的夜晚使用èžåˆåœ£å›åˆ›é€ é»‘色碎片", + "advancements.spectrum.dark_radiance_staff.title": "å—¬ï¼è¿™æ³¢è¡€äº", + "advancements.spectrum.dark_radiance_staff.description": "使用光之法æ–移除一个其产生的光æº", + "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.title": "我å³é€Ÿåº¦", + "advancements.spectrum.use_oblivion_pickaxe_with_efficiency.description": "ä½¿ç”¨é™„ä¸Šæ•ˆçŽ‡é™„é­”çš„å‡€é™¤ä¹‹é•æ´žç©¿ä¸–界", + "advancements.spectrum.enter_dimension.title": "他山之玉,å¯ä»¥æ”»çŸ³", + "advancements.spectrum.enter_dimension.description": "尚未实装的内容从这开始——é™å¾…æ—¥åŽæ›´æ–°", + "advancements.spectrum.fill_bottomless_bundle.title": "满载而归", + "advancements.spectrum.fill_bottomless_bundle.description": "完全填满一个无底袋", + "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.title": "本次已满", + "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.description": "用2,000,000,000个物å“完全填满一个附魔的无底袋", + "advancements.spectrum.get_semi_permeable_glass.title": "和平与满足", + "advancements.spectrum.get_semi_permeable_glass.description": "åˆæˆåŠç©¿é€çŽ»ç’ƒæ¥ä¿æŠ¤ä½ çš„æˆ¿å­ä¸å—怪物侵袭", + "advancements.spectrum.grow_ominous_sapling.title": "一次失败的实验?", + "advancements.spectrum.grow_ominous_sapling.description": "看起æ¥â€¦â€¦è¿™æ˜¯æ­»äº†å—?", + "advancements.spectrum.place_pedestal.title": "å…¨æ–°çš„åˆæˆæ–¹å¼", + "advancements.spectrum.place_pedestal.description": "制作你的七彩基座并放置它", + "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.title": "è¿™åœ°çƒæˆ‘是一秒也呆ä¸ä¸‹åŽ»äº†ï¼", + "advancements.spectrum.put_too_many_low_gravity_blocks_into_animal.description": "使用è‹ç»¿ä¹‹çŸ³ä½¿ä½ çš„动物超载å§ï¼Œå†è§ï¼è‰¾ä¿ºå§†å¤–星人ï¼", + "advancements.spectrum.get_radiating_ender.title": "抢夺于冰冷之手", + "advancements.spectrum.get_radiating_ender.description": "ä¸€äº›æœ«å½±äººå¸¦ç€æ•£å‘ç€é˜´æš—光芒的方å—出现在了你的世界中", + "advancements.spectrum.spectrum.title": "光谱世界 - å¯ç¨‹", + "advancements.spectrum.spectrum.description": "一个关于颜色, 魔法和混乱的故事", + "advancements.spectrum.spectrum_lategame.title": "光谱世界 - 纯化", + "advancements.spectrum.spectrum_lategame.description": "一个关于旅途终点的故事", + "advancements.spectrum.spectrum_midgame.title": "光谱世界 - å •è½", + "advancements.spectrum.spectrum_midgame.description": "一个关于好奇心和贪婪的故事", + "advancements.spectrum.use_all_pedestal_upgrades.title": "å…¨é¢å‡çº§", + "advancements.spectrum.use_all_pedestal_upgrades.description": "在你的七彩基座的所有å®çŸ³æ™¶æ–¹å—上放上å‡çº§", + "advancements.spectrum.use_perturbed_eye.title": "动起æ¥ï¼ŒåŠ¨èµ·æ¥ï¼", + "advancements.spectrum.use_perturbed_eye.description": "在末地传é€é—¨æ¡†æž¶ä¸Šä½¿ç”¨æœ«åœ°ä¼ é€é—¨æ‹†è§£å™¨", + "advancements.spectrum.use_glistering_melon_seeds.title": "兴旺之兆", + "advancements.spectrum.use_glistering_melon_seeds.description": "获得闪çƒçš„西瓜...作物ï¼", + "advancements.spectrum.plant_ominous_sapling.title": "éšå®ƒé•¿ï¼Œéšå®ƒé•¿ï¼", + "advancements.spectrum.plant_ominous_sapling.description": "你深知将æ¤ç´ å’Œæ ‘è‹—æ··åˆä¼šåˆ¶é€ å‡ºä¸€äº›æœ‰æ„æ€çš„东西", + + "advancements.spectrum.build_fusion_shrine.title": "力é‡çš„体现", + "advancements.spectrum.build_fusion_shrine.description": "建造èžåˆåœ£å›", + "advancements.spectrum.build_enchanting_structure.title": "次世代附魔", + "advancements.spectrum.build_enchanting_structure.description": "建造注魔基座结构", + "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.title": "最åŽçš„é¾™æ¯", + "advancements.spectrum.collect_ender_dragon_head_using_treasure_hunter.description": "使用带有奇ç猎手附魔的武器将末影龙斩首", + "advancements.spectrum.collect_warden_head_using_treasure_hunter.title": "失守", + "advancements.spectrum.collect_warden_head_using_treasure_hunter.description": "使用带有奇ç猎手附魔的武器将监守者斩首", + "advancements.spectrum.collect_wither_head_using_treasure_hunter.title": "凋败的轮回", + "advancements.spectrum.collect_wither_head_using_treasure_hunter.description": "使用带有奇ççŒŽæ‰‹é™„é­”çš„æ­¦å™¨å°†å‡‹çµæ–©é¦–", + "advancements.spectrum.create_spectral_shard.title": "彩虹上的碎片", + "advancements.spectrum.create_spectral_shard.description": "åˆæˆä¸ƒå½©ç¢Žç‰‡", + "advancements.spectrum.enter_liquid_crystal.title": "液体的魔法", + "advancements.spectrum.enter_liquid_crystal.description": "与液体形å¼çš„å®çŸ³æ™¶äº²å¯†æŽ¥è§¦", + "advancements.spectrum.gift_wet_lava_sponge.title": "å°å¿ƒçƒ«æ‰‹ï¼", + "advancements.spectrum.gift_wet_lava_sponge.description": "将一个湿熔岩海绵扔给其他玩家", + "advancements.spectrum.get_hit_while_wearing_full_suit_of_gemstone_armor.title": "强力超载", + "advancements.spectrum.get_hit_while_wearing_full_suit_of_gemstone_armor.description": "在穿全套å®çŸ³æ™¶ç›”甲时å—击", + "advancements.spectrum.collect_mob_head_using_treasure_hunter.title": "摸ä¸ç€å¤´è„‘", + "advancements.spectrum.collect_mob_head_using_treasure_hunter.description": "使用带有奇ç猎手附魔的武器将怪物斩首", + "advancements.spectrum.build_wither_using_wither_heads.title": "怎么这也行", + "advancements.spectrum.build_wither_using_wither_heads.description": "使用凋çµçš„头å¬å”¤ä¸€ä¸ªå‡‹çµ", + "advancements.spectrum.create_refined_azurite.title": "梦之è“", + "advancements.spectrum.create_refined_azurite.description": "将石é’铸造为锭", + "advancements.spectrum.fill_knowledge_gem.title": "知识转移", + "advancements.spectrum.fill_knowledge_gem.description": "用10000点ç»éªŒå¡«å……知识å®çŸ³", + "advancements.spectrum.fill_knowledge_gem_for_real_this_time.title": "My IN-Mod is +6", + "advancements.spectrum.fill_knowledge_gem_for_real_this_time.description": "为附魔知识å®çŸ³è£…满ä¸å¯è®¡é‡çš„ç»éªŒå€¼", + "advancements.spectrum.enchant_exchanging_staff.title": "䏿­¢æ˜¯ä¸€ä¸ªå»ºé€ å·¥å…·", + "advancements.spectrum.enchant_exchanging_staff.description": "åˆæˆä¸€ä¸ªäº¤æ¢æ³•æ–并为其附魔", + "advancements.spectrum.gift_or_open_present.title": "七彩奇观", + "advancements.spectrum.gift_or_open_present.description": "装满并打包好一个礼物,并将其放在你想è¦é€ç»™çš„人的地方 - 或者干脆由你亲手打开", + "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.title": "è¥¿éƒ¨å¿«é•æ‰‹", + "advancements.spectrum.get_tool_with_inertia_500_blocks_broken.description": "使用带有惯性附魔连续破å500ä¸ªç›¸åŒæ–¹å—", + "advancements.spectrum.use_natures_staff_on_dead_bush.title": "起死回生", + "advancements.spectrum.use_natures_staff_on_dead_bush.description": "使用自然法æ–å’Œæ¤æœ¬è´¨å°†æž¯æ­»çš„çŒæœ¨å¤æ´»", + "advancements.spectrum.enchant_item_worth_2500_xp.title": "è€æ¿å¤§æ°”ï¼", + "advancements.spectrum.enchant_item_worth_2500_xp.description": "é€šè¿‡æ³¨é­”åŸºåº§å•æ¬¡ä½¿ç”¨2500ç»éªŒé™„魔一个物å“", + "advancements.spectrum.create_resonance_enchanted_book.title": "为之一振", + "advancements.spectrum.create_resonance_enchanted_book.description": "使用注魔基座制作共振附魔书", + "advancements.spectrum.upgrade_enchanted_book_to_fortune4.title": "æ—¶è¿æ›´æµŽ", + "advancements.spectrum.upgrade_enchanted_book_to_fortune4.description": "使用注魔基座将时è¿III附魔å‡çº§è‡³æ—¶è¿IV", + "advancements.spectrum.craft_bottle_of_decay_away.title": "谨言慎行ä¸åƒäºï¼Œè½»çŽ‡èŽ½æ’žå¿…åŽæ‚”", + "advancements.spectrum.craft_bottle_of_decay_away.description": "为自己准备一个祛消解之瓶以防出现什么差错", + "advancements.spectrum.enchant_book.title": "æ— æŸåŽ‹ç¼©", + "advancements.spectrum.enchant_book.description": "使用注魔基座从其他附魔书上å¤åˆ¶é™„魔。会很昂贵的", + "advancements.spectrum.craft_and_get_25_xp.title": "ç»éªŒæ»¡æ»¡è‰ºæœ¯å®¶", + "advancements.spectrum.craft_and_get_25_xp.description": "åˆæˆä¸€ä¸ªä¸ƒå½©åŸºåº§ä¼šç»™äºˆä½ 25ç»éªŒ", + "advancements.spectrum.enter_ender_glass.title": "çµæ´»ç©¿é€", + "advancements.spectrum.enter_ender_glass.description": "穿过激活的末影玻璃", + "advancements.spectrum.create_midnight_aberration.title": "完美的化åˆç‰©ï¼Ÿ", + "advancements.spectrum.create_midnight_aberration.description": "èžåˆæ‰˜å¸•石,紫水晶,黄水晶和新异石", + "advancements.spectrum.collect_midnight_chip.title": "细碎的æ¶", + "advancements.spectrum.collect_midnight_chip.description": "通过åˆå¤œæº¶æ¶²èŽ·å¾—åˆå¤œæ®‹ç‰‡", + "advancements.spectrum.finish_progression.title": "旅程的终点", + "advancements.spectrum.finish_progression.description": "到达魔法旅程的终点。æ­å–œä½ ï¼Œè‰²å½©å¤§å¸ˆï¼", + "advancements.spectrum.finish_progression_without_tips.title": "传说级美术大师", + "advancements.spectrum.finish_progression_without_tips.description": "ä¸ä½¿ç”¨æç¤ºå®Œæˆã€Šå…‰è°±ä¸–界》的所有进度。太棒了ï¼è¿™æ˜¯ä½ åº”å¾—çš„å°ç¤¼ç‰©~", + "advancements.spectrum.create_budding_onyx.title": "芽芽ä¹", + "advancements.spectrum.create_budding_onyx.description": "使用七彩碎片制作缟玛瑙晶芽。看æ¥ä½ ä¸ç”¨ä¾èµ–èžåˆäº†!", + "advancements.spectrum.collect_all_shooting_star_variants.title": "星之å­", + "advancements.spectrum.collect_all_shooting_star_variants.description": "潜行å³é”®æ¥æ¡èµ·æµæ˜Ÿã€‚ä½ èƒ½æ”¶é›†åˆ°æ‰€æœ‰æµæ˜Ÿå˜ç§å—?", + "advancements.spectrum.equip_neat_ring.title": "纯净无暇", + "advancements.spectrum.equip_neat_ring.description": "åˆæˆå¹¶æˆ´ä¸Šä¸€ä¸ªæžä¸ºæ˜‚贵的戒指æ¥ç»´æŠ¤ä½ çš„统治地ä½", + "advancements.spectrum.high_jump_with_take_off_belt.title": "时间管ç†å¤§å¸ˆ", + "advancements.spectrum.high_jump_with_take_off_belt.description": "通过潜行将弹射腰带完全充能……然åŽèµ·è·³ï¼", + "advancements.spectrum.take_off_belt_overcharged.title": "时间管ç†å¤§å¸ˆä¹Ÿä¼šå¤±æ‰‹çš„æ—¶å€™", + "advancements.spectrum.take_off_belt_overcharged.description": "过充能弹射腰带,导致失充能", + "advancements.spectrum.kill_entity_with_jeopardant_and_half_a_heart.title": "在死亡边缘游走", + "advancements.spectrum.kill_entity_with_jeopardant_and_half_a_heart.description": "佩戴孤勇戒指,在åªå‰©åŠé¢—心时给予对方致命一击", + "advancements.spectrum.get_azure_dike_charge.title": "力场充能", + "advancements.spectrum.get_azure_dike_charge.description": "装备由石é’åˆ¶ä½œçš„è£…å¤‡æ¥æå‡è”šè“护盾值", + "advancements.spectrum.high_ink_use.title": "大手笔", + "advancements.spectrum.high_ink_use.description": "一次性用掉大é‡å¢¨æ°´", + "advancements.spectrum.fill_pigment_palette.title": "çµæ„Ÿå¥”æ¶Œ", + "advancements.spectrum.fill_pigment_palette.description": "使用所有å¯ç”¨çš„墨水填充调色æ¿", + "advancements.spectrum.craft_pigment_palette.title": "美术大师", + "advancements.spectrum.craft_pigment_palette.description": "åˆæˆä¸€ä¸ªè°ƒè‰²æ¿æ¥æ›´åŠ æ–¹ä¾¿åœ°å­˜å‚¨ä½ çš„é­”åŠ›", + "advancements.spectrum.fill_ink_container.title": "全新能æº", + "advancements.spectrum.fill_ink_container.description": "åˆæˆé¢œè‰²é€‰å–器并使用它æ¥å¡«å……墨水容器", + "advancements.spectrum.brew_potion_in_potion_workshop.title": "魔法炼金术", + "advancements.spectrum.brew_potion_in_potion_workshop.description": "ä½¿ç”¨è¯æ°´å·¥ä½œç«™æ¥ç‚¼åˆ¶è¯æ°´ï¼Œæ·»åŠ ç‚¼ææ¥èŽ·å–æ›´å¤šæ•ˆæžœ", + "advancements.spectrum.brew_powerful_potion_in_potion_workshop.title": "æˆåŠŸçš„å–œæ‚¦", + "advancements.spectrum.brew_powerful_potion_in_potion_workshop.description": "通过åˆå¹¶è¯•剂æ¥ç‚¼åˆ¶IVçº§è¯æ°´", + "advancements.spectrum.brew_potion_with_four_effects_in_potion_workshop.title": "é‚ªæ¶æ··åˆ", + "advancements.spectrum.brew_potion_with_four_effects_in_potion_workshop.description": "酿造一瓶拥有4ç§ç‹¬ç‰¹æ•ˆæžœçš„è¯æ°´", + "advancements.spectrum.fill_potion_pendant.title": "强力åŠå ", + "advancements.spectrum.fill_potion_pendant.description": "ä½¿ç”¨è¯æ°´å·¥ä½œç«™ä¸ºè¯æ°´åŠå çŒæ³¨è¯æ°´æ•ˆæžœ", + "advancements.spectrum.enchant_seven_league_boots.title": "全力以赴", + "advancements.spectrum.enchant_seven_league_boots.description": "为你的飞跃é´å­é™„魔使其更快", + "advancements.spectrum.build_spirit_instiller_structure.title": "é­‚çµä¸æ•£", + "advancements.spectrum.build_spirit_instiller_structure.description": "建造çµé­‚çŒæ³¨å°", + "advancements.spectrum.manifest_memory.title": "å†çް", + "advancements.spectrum.manifest_memory.description": "创造并具现化一份回忆", + "advancements.spectrum.craft_blacklisted_memory_fail.title": "å†ä¸èƒ½çް", + "advancements.spectrum.craft_blacklisted_memory_fail.description": "æˆåŠŸåœ°è¯†åˆ«å¤±è´¥ä¸€ä¸ªå¼ºå¤§ç”Ÿç‰©çš„å›žå¿†", + "advancements.spectrum.craft_blacklisted_memory_success.title": "有力å†çް", + "advancements.spectrum.craft_blacklisted_memory_success.description": "æˆåŠŸè¯†åˆ«ä¸€ä¸ªå¼ºå¤§ç”Ÿç‰©çš„å›žå¿†ã€‚ä½ å¯¹å…·çŽ°åŒ–å›žå¿†å·²ç»å¾ˆç†Ÿç»ƒäº†ï¼Œæ˜¯ä¸æ˜¯ï¼Ÿ", + "advancements.spectrum.plant_jade_vines.title": "历å²çš„é—物", + "advancements.spectrum.plant_jade_vines.description": "è®©æ²‰çœ çš„çŽ‰è—¤çƒæžœå‘芽并把它ç§åœ¨æ …æ åº•部。它和一般的藤蔓一样å‘下生长。长时间ä¸è§å¤©æ—¥ï¼Œé˜³å…‰å¯¹å®ƒæ¥è¯´å¤ªäº®äº†â€”—它åªèƒ½åœ¨æ¸©å’Œçš„æœˆå…‰ä¸‹ç”Ÿé•¿", + "advancements.spectrum.drink_tea_with_milk.title": "异教徒", + "advancements.spectrum.drink_tea_with_milk.description": "å–下掺奶的疗愈è¯èŒ¶", + "advancements.spectrum.harvest_moonstruck_nectar.title": "甜蜜月色", + "advancements.spectrum.harvest_moonstruck_nectar.description": "用玻璃瓶在æˆç†Ÿçš„çŽ‰è—¤ä¸Šæ”¶èŽ·æœ›èˆ’ç¼æµ†", + "advancements.spectrum.create_huge_slime.title": "「你给我å˜å¤§å§ã€", + "advancements.spectrum.create_huge_slime.description": "使用充气魔盒膨胀出一个超巨大å²èޱ姆", + "advancements.spectrum.collect_hover_block.title": "你头é“还是我头é“", + "advancements.spectrum.collect_hover_block.description": "我在想……", + "advancements.spectrum.wear_complete_set_of_bedrock_armor.title": "黑暗骑士崛起", + "advancements.spectrum.wear_complete_set_of_bedrock_armor.description": "åŽè‡ªåšçŸ³å‘,夭而ä¸é¡ï¼ŒçŽ„è€Œä¸å‡‹ã€‚穿上所有基岩盔甲", + "advancements.spectrum.place_color_picker.title": "挑剔", + "advancements.spectrum.place_color_picker.description": "åˆæˆå¹¶ä½¿ç”¨é¢œè‰²é€‰å–器", + "advancements.spectrum.collect_bismuth.title": "五å度彩", + "advancements.spectrum.collect_bismuth.description": "获得铋晶", + "advancements.spectrum.collect_bismuth_crystal.title": "原始之梦", + "advancements.spectrum.collect_bismuth_crystal.description": "å°†é“‹æ™¶åŸ¹å…»ä¸ºå®Œæ•´çš„æ™¶ä½“å¹¶ç ´åæŽ‰å®ƒã€‚è¿™ç§ä¸ƒå½©æ–‘æ–“çš„ææ–™ä¼¼ä¹Žä¼šä»Žå‘¨å›´çš„金属中汲å–能é‡", + "advancements.spectrum.grow_bismuth_in_crystallarieum.title": "一大进步", + "advancements.spectrum.grow_bismuth_in_crystallarieum.description": "使用结晶室培养铋晶", + "advancements.spectrum.collect_malachite.title": "一抹迷人的绿", + "advancements.spectrum.collect_malachite.description": "在å‰å¾€æ¸Šæ·±é¢†åŸŸçš„路上碰上孔雀石", + "advancements.spectrum.grow_malachite_in_crystallarieum.title": "亘å¤å³é¡»è‡¾", + "advancements.spectrum.grow_malachite_in_crystallarieum.description": "孔雀石的生长æžå…¶ç¼“慢,看æ¥ä½ æœ‰ç”Ÿä¹‹å¹´éƒ½èŽ·å–ä¸åˆ°ã€‚有别的方法å—?", + "advancements.spectrum.build_cinderhearth_structure.title": "ç«åЛ免开", + "advancements.spectrum.build_cinderhearth_structure.description": "使炼化炉工作起æ¥", + "advancements.spectrum.build_cinderhearth_without_lava_structure.title": "这真的有必è¦å—?", + "advancements.spectrum.build_cinderhearth_without_lava_structure.description": "我应该说过“有熔岩的è¯å°±Â§l好§l看§l得§l多§râ€å¯¹å§ï¼Ÿå¤§èªæ˜Žã€‚", + "advancements.spectrum.smelt_in_cinderhearth_with_yield_upgrades.title": "从墨水到物质", + "advancements.spectrum.smelt_in_cinderhearth_with_yield_upgrades.description": "在煤渣炉(暂译)中使用淡è“色墨水æ¥ä½¿ä½ çš„烧炼产出æå‡ä¸€å€", + "advancements.spectrum.smelt_pure_resource_in_cinderhearth.title": "高速烧炼", + "advancements.spectrum.smelt_pure_resource_in_cinderhearth.description": "看起æ¥ç…¤æ¸£ç‚‰(暂译)åœ¨ä½¿ç”¨åŽŸç”Ÿèµ„æºæ—¶æ¯”普通熔炉快多了", + "advancements.spectrum.collect_pure_resource.title": "似是而éž", + "advancements.spectrum.collect_pure_resource.description": "获得高纯矿物簇. 它比你获得的普通矿石è¦çº¯å‡€çš„多", + "advancements.spectrum.kill_entity_with_ink_projectile.title": "éžæˆ‘也,笔也", + "advancements.spectrum.kill_entity_with_ink_projectile.description": "使用画笔的墨水喷射功能打死一åªç”Ÿç‰©", + "advancements.spectrum.collect_all_mob_heads.title": "丰功伟绩", + "advancements.spectrum.collect_all_mob_heads.description": "收集æ¯ä¸€ä¸ªç”Ÿç‰©å¤´é¢…。布置一个大一点的展厅如何?", + "advancements.spectrum.fish_in_lava.title": "炎炎欲ç«", + "advancements.spectrum.fish_in_lava.description": "想啊,很想啊...", + "advancements.spectrum.hook_entity_with_molten_rod.title": "引ç«çƒ§èº«", + "advancements.spectrum.hook_entity_with_molten_rod.description": "授人以鱼,饱腹一日。授人炽竿,点ç«ä½œä¹±", + "advancements.spectrum.fish_an_entity.title": "没错你上钩了,这一切很值得", + "advancements.spectrum.fish_an_entity.description": "钓上一波大的", + "advancements.spectrum.fish_in_many_liquids.title": "钓鱼佬永ä¸ç©ºå†›", + "advancements.spectrum.fish_in_many_liquids.description": "在所有å¯ä»¥é’“鱼的液体中钓鱼", + "advancements.spectrum.collect_amaranth.title": "é—忘已久的作物", + "advancements.spectrum.collect_amaranth.description": "找到苋èœç±½", + "advancements.spectrum.collect_amaranth_bushel.title": "跃跃欲试", + "advancements.spectrum.collect_amaranth_bushel.description": "ç§ä¸‹ä¸€é¢—è‹‹èœï¼Œä½¿å…¶é•¿æˆå¹¶å°†å…¶æ”¶èŽ·", + "advancements.spectrum.consume_purple_star_candy.title": "一星级的èœå•", + "advancements.spectrum.consume_purple_star_candy.description": "找到并åƒä¸‹ä¸€å—附魔星星曲奇", + "advancements.spectrum.tap_titration_barrel.title": "冰手å¯å†·", + "advancements.spectrum.tap_titration_barrel.description": "打开一个å‘酵桶,给自己酿造点清爽(或者ä¸é‚£ä¹ˆæ¸…爽)的饮料å§", + "advancements.spectrum.drink_jade_wine.title": "远å¤ç¾Žé…’", + "advancements.spectrum.drink_jade_wine.description": "å–下玉藤酒", + "advancements.spectrum.tap_sweetened_jade_wine.title": "远å¤ç¾Žé…’++", + "advancements.spectrum.tap_sweetened_jade_wine.description": "看一看...å°ä¸€å°ï¼Ÿå°±åƒçŽ‰è—¤è‹¥æ˜¯åŠ ç‚¹ç³–åˆ™ä¼šæ›´åŠ ä¸Šå£", + "advancements.spectrum.tap_suspicious_brew.title": "éžç‰›å¥¶ä¹Ÿ", + "advancements.spectrum.tap_suspicious_brew.description": "酿造一份谜之酒酿", + "advancements.spectrum.tap_pure_alcohol.title": "æˆåˆ†æœ‰ç‚¹è¿‡äº†", + "advancements.spectrum.tap_pure_alcohol.description": "让å‘酵桶长时间å‘酵,使其内的æˆåˆ†è½¬æ¢æˆçº¯é…’ç²¾", + "advancements.spectrum.tap_aged_air.title": "此地无银三百两", + "advancements.spectrum.tap_aged_air.description": "倒出一个被空ç€å°å­˜äº†å¥½å‡ å¤©çš„å‘酵桶里的东西", + "advancements.spectrum.tap_chrysocolla.title": "ä¼´ç€æ²™æ‹‰åƒæ›´é…哦", + "advancements.spectrum.tap_chrysocolla.description": "倒出一份陈酿多时的玉藤酒", + "advancements.spectrum.pluck_blood_orchid_petal.title": "怕我å—ï¼Ÿä¸æ€•", + "advancements.spectrum.pluck_blood_orchid_petal.description": "åˆæˆä¸€ä¸ªè¡€çº¢å…°æ¤æ ªå¹¶æ‹”下它æ¥èŽ·å¾—æ›´å¤šçš„èŠ±ç“£", + "advancements.spectrum.craft_salted_jaramel_trifle_or_tart.title": "é½å’¸", + "advancements.spectrum.craft_salted_jaramel_trifle_or_tart.description": "加点你的敌人的眼泪æ¥çƒ¤åˆ¶", + "advancements.spectrum.eat_each_pastry.title": "色彩鉴èµå®¶", + "advancements.spectrum.eat_each_pastry.description": "åˆæˆå¹¶åƒä¸‹æ‰€æœ‰æ¨¡ç»„的糕点", + "advancements.spectrum.collect_blood_orchid_petal.title": "锯齿状å¶", + "advancements.spectrum.collect_blood_orchid_petal.description": "找到一片血红兰花瓣", + "advancements.spectrum.remember_egg_laying_wooly_pig.title": "曾几何时", + "advancements.spectrum.remember_egg_laying_wooly_pig.description": "孵化一个下蛋绒猪的记忆", + "advancements.spectrum.have_half_a_heart_with_divinity.title": "险æˆç¥žè¯", + "advancements.spectrum.have_half_a_heart_with_divinity.description": "å–下圣çµé…’,飞å‡å¹¶è¾¾åˆ°åªæœ‰åŠé¢—心的生命值", + "advancements.spectrum.kill_a_mob_with_frenzy3.title": "黑暗激情剧", + "advancements.spectrum.kill_a_mob_with_frenzy3.description": "在拥有狂热IIIæˆ–æ›´é«˜ç­‰çº§çš„çŠ¶æ€æ•ˆæžœçš„æƒ…å†µä¸‹æ€æ­»ä¸€ä¸ªç”Ÿç‰©ã€‚(注æ„è¯¥æ•ˆæžœä¸æ˜¯å»¶é•¿æŒç»­æ—¶é—´ï¼Œç¬¬äºŒæ¬¡èŽ·å¾—æ•ˆæžœå°†å‡çº§å®ƒçš„等级)", + "advancements.spectrum.collect_gemstone_rock_candy.title": "å¤šå½©åˆæ¾è„†çš„ç³–æžœ", + "advancements.spectrum.collect_gemstone_rock_candy.description": "获得一堆å®çŸ³æŸ“色冰糖", + "advancements.spectrum.apply_divinity.title": "超凡精神", + "advancements.spectrum.apply_divinity.description": "饮用圣çµé…’以获得大é‡çš„æ•ˆæžœå¢žç›Š...ä¸è¿‡å¦‚果你死了,你将会因此而付出巨大的代价", + "advancements.spectrum.drink_tea_with_scone.title": "精致的英å¼ç”Ÿæ´»", + "advancements.spectrum.drink_tea_with_scone.description": "åœ¨ä½ çš„ç‰©å“æ å†…有å¸åº·é¥¼çš„æƒ…况下饮茶,这太优雅了ï¼", + "advancements.spectrum.survive_drinking_incandescent_amalgam.title": "我曾是太阳", + "advancements.spectrum.survive_drinking_incandescent_amalgam.description": "饮用白炽åˆé‡‘,挺过其造æˆçš„伤害并幸存下æ¥", + "advancements.spectrum.place_incandescent_amalgam.title": "好的,现在...什么?", + "advancements.spectrum.place_incandescent_amalgam.description": "白炽åˆé‡‘是一ç§é«˜å½“é‡çš„炸è¯ï¼Œä»»ä½•类型的,哪怕是最轻微的触碰也能将其引爆,并留下一个巨大并燃烧的爆炸å‘。ç¥ä½ å¥½è¿ã€‚", + + "advancements.spectrum.collect_mysterious_locket.title": "神秘å é¥°ç›’", + "advancements.spectrum.collect_mysterious_locket.description": "在地牢的箱å­ä¸­æ‰¾åˆ°ä¸€ä¸ªç¥žç§˜å é¥°ç›’。它有何用?它属于è°ï¼Ÿ", + + "advancements.spectrum.find_ancient_ruins.title": "牢ä¸å¯ç ´çš„è¦å¡ž", + "advancements.spectrum.find_ancient_ruins.description": "在地下你å‘çŽ°äº†ä¸€ä¸ªè¢«ç¥žç§˜åŠ›åœºä¿æŠ¤çš„å·¨å¤§çš„ç»“æž„", + "advancements.spectrum.enter_color_mixing_puzzle_structure.title": "æ··åˆ", + "advancements.spectrum.enter_color_mixing_puzzle_structure.description": "一个内å«ç²¾è‡´è°œé¢˜çš„结构...其他什么的就没了", + "advancements.spectrum.enter_ancient_ruins.title": "åšå›ºçš„防护", + "advancements.spectrum.enter_ancient_ruins.description": "这些神秘的标志暗示了什么?肯定有办法进入这个结构中的。现在ä¸è¡Œçš„è¯ä»¥åŽæ€»æ˜¯å¯ä»¥çš„……你最好记ä½è¿™é‡Œ", + "advancements.spectrum.enter_wireless_redstone_puzzle_structure.title": "短接", + "advancements.spectrum.enter_wireless_redstone_puzzle_structure.description": "一个由åšå›ºçš„åŸºå²©ä¿æŠ¤çš„ç»“æž„...其他什么的就没了", + "advancements.spectrum.generate_ancient_ruins_loot.title": "æ¥è‡ªå¤ä»£æ–‡æ˜Žçš„礼物", + "advancements.spectrum.generate_ancient_ruins_loot.description": "打开一个å¤ä»£å®ç®±", + + "______food_tooltips": "é£Ÿç‰©ä¿¡æ¯æç¤ºï¼š", + "spectrum.food.withChance": "%s [%d%%]", + "spectrum.food.whenEaten": "食用åŽï¼š", + + "______name_changes_for_vanilla_blocks": "改å˜ï¼š", + "block.minecraft.polished_basalt": "玄武岩柱", + + "______vanilla_additions": "拓展:", + "potion.potency.6": "VI", + "potion.potency.7": "VII", + "potion.potency.8": "VIII", + "potion.potency.9": "IX", + "potion.potency.10": "X", + "potion.potency.11": "XI", + "potion.potency.12": "XII", + "potion.potency.13": "XIII", + "potion.potency.14": "XIV", + "potion.potency.15": "XV", + "potion.potency.16": "XVI", + "potion.potency.17": "XVII", + "potion.potency.18": "XVIII", + "potion.potency.19": "XIX", + "potion.potency.20": "XX", + "______done_until_here": "TODO:", + "advancements.spectrum.craft_energy_collector.title": "好的收到", + "advancements.spectrum.craft_energy_collector.description": "建造足够强劲的收集器æ¥ä»Žæ™¶æ´žä¸­æ”¶é›†èƒ½é‡", + "advancements.spectrum.place_energy_collector.title": "新型能æº", + "advancements.spectrum.place_energy_collector.description": "将收集器放置在晶洞中间使其è¿ä½œ" +} diff --git a/src/main/resources/assets/spectrum/models/block/aloe0.json b/src/main/resources/assets/spectrum/models/block/aloe0.json new file mode 100644 index 0000000000..26b04cde55 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/aloe0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/aloe0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/aloe1.json b/src/main/resources/assets/spectrum/models/block/aloe1.json new file mode 100644 index 0000000000..09a4edfee8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/aloe1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/aloe1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/aloe2.json b/src/main/resources/assets/spectrum/models/block/aloe2.json new file mode 100644 index 0000000000..173c94566b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/aloe2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/aloe2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/aloe3.json b/src/main/resources/assets/spectrum/models/block/aloe3.json new file mode 100644 index 0000000000..9c1c9ea57c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/aloe3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/aloe3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/aloe4.json b/src/main/resources/assets/spectrum/models/block/aloe4.json new file mode 100644 index 0000000000..cf859b081c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/aloe4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/aloe4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/amethyst_basalt_lamp.json b/src/main/resources/assets/spectrum/models/block/amethyst_basalt_lamp.json index 5264f541e5..7dd4e4131c 100644 --- a/src/main/resources/assets/spectrum/models/block/amethyst_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/amethyst_basalt_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/amethyst_basalt_lamp", - "vertical": "spectrum:block/polished_basalt", - "side_outer": "spectrum:block/amethyst_basalt_lamp", - "inner": "minecraft:block/amethyst_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_basalt", + "side": "spectrum:block/amethyst_basalt_lamp", + "inside": "minecraft:block/amethyst_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/amethyst_calcite_lamp.json b/src/main/resources/assets/spectrum/models/block/amethyst_calcite_lamp.json index 6b38769889..b9576d81ab 100644 --- a/src/main/resources/assets/spectrum/models/block/amethyst_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/amethyst_calcite_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/amethyst_calcite_lamp", - "vertical": "spectrum:block/polished_calcite", - "side_outer": "spectrum:block/amethyst_calcite_lamp", - "inner": "minecraft:block/amethyst_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_calcite", + "side": "spectrum:block/amethyst_calcite_lamp", + "inside": "minecraft:block/amethyst_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/amethyst_chime.json b/src/main/resources/assets/spectrum/models/block/amethyst_chime.json index 85cecfb0e0..5dd8d05515 100644 --- a/src/main/resources/assets/spectrum/models/block/amethyst_chime.json +++ b/src/main/resources/assets/spectrum/models/block/amethyst_chime.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_chime", + "parent": "spectrum:templates/chime", "textures": { "gemstone": "spectrum:block/amethyst_glass" } diff --git a/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick0.json b/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick0.json index efc3cdc16d..e2627d70cc 100644 --- a/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick0.json +++ b/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick0.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick0", - "textures": { - "0": "spectrum:block/amethyst_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/amethyst_glass" - } + "parent": "spectrum:templates/sugar_stick0", + "textures": { + "0": "spectrum:block/amethyst_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/amethyst_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick1.json b/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick1.json index 4cbb235d9a..76bc56d1f5 100644 --- a/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick1.json +++ b/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick1.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick1", - "textures": { - "0": "spectrum:block/amethyst_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/amethyst_glass" - } + "parent": "spectrum:templates/sugar_stick1", + "textures": { + "0": "spectrum:block/amethyst_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/amethyst_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick2.json b/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick2.json index 7053a9ff5b..e9ecf2605a 100644 --- a/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/amethyst_sugar_stick2.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick2", - "textures": { - "0": "spectrum:block/amethyst_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/amethyst_glass" - } + "parent": "spectrum:templates/sugar_stick2", + "textures": { + "0": "spectrum:block/amethyst_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/amethyst_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ancient_chiseled_polished_blackslag.json b/src/main/resources/assets/spectrum/models/block/ancient_chiseled_polished_blackslag.json new file mode 100644 index 0000000000..a27e3df3f9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ancient_chiseled_polished_blackslag.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/ancient_chiseled_polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/andesite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/andesite_shimmerstone_light.json new file mode 100644 index 0000000000..a98675f395 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/andesite_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "minecraft:block/polished_andesite", + "inner": "spectrum:block/shimmerstone_light", + "particle": "minecraft:block/polished_andesite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/andesite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/andesite_sparklestone_light.json deleted file mode 100644 index 8c829d6793..0000000000 --- a/src/main/resources/assets/spectrum/models/block/andesite_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "minecraft:block/polished_andesite", - "inner": "spectrum:block/sparklestone_light", - "particle": "minecraft:block/polished_andesite" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick.json b/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick.json index d2f71d892d..4bc434ab82 100644 --- a/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick.json +++ b/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick.json @@ -1,47 +1,215 @@ { - "credit": "Made with Blockbench", - "textures": { - "0": "spectrum:block/amethyst_glass", - "particle": "spectrum:block/amethyst_glass" - }, - "elements": [ - { - "from": [7, 3, 7], - "to": [10, 8, 10], - "faces": { - "north": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#0"} - } - }, - { - "from": [7, 4, 10], - "to": [9, 7, 11], - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 2, 1], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 1], "texture": "#0"} - } - }, - { - "name": "stick", - "from": [8, 3, 8], - "to": [9, 16, 9], - "color": 2, - "faces": { - "north": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "east": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "south": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "west": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#missing"} - } - } - ] + "credit": "Made with Blockbench", + "textures": { + "0": "spectrum:block/amethyst_glass", + "particle": "spectrum:block/amethyst_glass" + }, + "elements": [ + { + "from": [ + 7, + 3, + 7 + ], + "to": [ + 10, + 8, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 7, + 4, + 10 + ], + "to": [ + 9, + 7, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#0" + } + } + }, + { + "name": "stick", + "from": [ + 8, + 3, + 8 + ], + "to": [ + 9, + 16, + 9 + ], + "color": 2, + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#missing" + } + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick2.json b/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick2.json index a5fd6409d5..41c3f21965 100644 --- a/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/anethyst_rock_candy_stick2.json @@ -1,95 +1,487 @@ { - "credit": "Made with Blockbench", - "textures": { - "0": "spectrum:block/amethyst_glass", - "particle": "spectrum:block/amethyst_glass" - }, - "elements": [ - { - "from": [7, 3, 7], - "to": [10, 8, 10], - "faces": { - "north": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#0"} - } - }, - { - "from": [6, 4, 7], - "to": [7, 7, 9], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 1, 2], "texture": "#0"}, - "down": {"uv": [0, 0, 1, 2], "texture": "#0"} - } - }, - { - "from": [7, 4, 10], - "to": [9, 7, 11], - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 2, 1], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 1], "texture": "#0"} - } - }, - { - "from": [8, 2, 6], - "to": [11, 7, 9], - "faces": { - "north": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 5], "texture": "#0"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#0"} - } - }, - { - "from": [7, 8, 8], - "to": [10, 9, 11], - "faces": { - "north": {"uv": [0, 0, 3, 1], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 1], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 1], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 1], "texture": "#0"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#0"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#0"} - } - }, - { - "from": [7, 9, 7], - "to": [9, 12, 9], - "faces": { - "north": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "east": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "south": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "west": {"uv": [0, 0, 2, 3], "texture": "#0"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#0"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#0"} - } - }, - { - "name": "stick", - "from": [8, 3, 8], - "to": [9, 16, 9], - "color": 2, - "faces": { - "north": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "east": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "south": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "west": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#missing"} - } - } - ] + "credit": "Made with Blockbench", + "textures": { + "0": "spectrum:block/amethyst_glass", + "particle": "spectrum:block/amethyst_glass" + }, + "elements": [ + { + "from": [ + 7, + 3, + 7 + ], + "to": [ + 10, + 8, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 6, + 4, + 7 + ], + "to": [ + 7, + 7, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 7, + 4, + 10 + ], + "to": [ + 9, + 7, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 8, + 2, + 6 + ], + "to": [ + 11, + 7, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 7, + 8, + 8 + ], + "to": [ + 10, + 9, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 7, + 9, + 7 + ], + "to": [ + 9, + 12, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 3 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#0" + } + } + }, + { + "name": "stick", + "from": [ + 8, + 3, + 8 + ], + "to": [ + 9, + 16, + 9 + ], + "color": 2, + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#missing" + } + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/axolotl_blue.json b/src/main/resources/assets/spectrum/models/block/axolotl_blue.json deleted file mode 100644 index 9d9b2aa950..0000000000 --- a/src/main/resources/assets/spectrum/models/block/axolotl_blue.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/axolotl_brown.json b/src/main/resources/assets/spectrum/models/block/axolotl_brown.json deleted file mode 100644 index cb24b5564c..0000000000 --- a/src/main/resources/assets/spectrum/models/block/axolotl_brown.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/brown_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/axolotl_cyan.json b/src/main/resources/assets/spectrum/models/block/axolotl_cyan.json deleted file mode 100644 index 7e886485f3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/axolotl_cyan.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/cyan_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/axolotl_gold.json b/src/main/resources/assets/spectrum/models/block/axolotl_gold.json deleted file mode 100644 index 5e59e31dd3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/axolotl_gold.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/yellow_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/axolotl_leucistic.json b/src/main/resources/assets/spectrum/models/block/axolotl_leucistic.json deleted file mode 100644 index 60e76ca905..0000000000 --- a/src/main/resources/assets/spectrum/models/block/axolotl_leucistic.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/pink_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/azurite_chiseled_basalt.json b/src/main/resources/assets/spectrum/models/block/azurite_chiseled_basalt.json new file mode 100644 index 0000000000..2d705d40b9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/azurite_chiseled_basalt.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/azurite_chiseled_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/azurite_chiseled_calcite.json b/src/main/resources/assets/spectrum/models/block/azurite_chiseled_calcite.json new file mode 100644 index 0000000000..6e4b8767ac --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/azurite_chiseled_calcite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/azurite_chiseled_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/basalt_shimmerstone_light.json new file mode 100644 index 0000000000..80a19dca76 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "spectrum:block/polished_basalt", + "inner": "spectrum:block/shimmerstone_light", + "particle": "spectrum:block/polished_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/basalt_sparklestone_light.json deleted file mode 100644 index edffb78351..0000000000 --- a/src/main/resources/assets/spectrum/models/block/basalt_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "spectrum:block/polished_basalt", - "inner": "spectrum:block/sparklestone_light", - "particle": "spectrum:block/polished_basalt" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_slab.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_slab.json new file mode 100644 index 0000000000..0d4d415cc7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/basalt_tiles", + "top": "spectrum:block/basalt_tiles", + "side": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_slab_top.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_slab_top.json new file mode 100644 index 0000000000..b434e746b4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/basalt_tiles", + "top": "spectrum:block/basalt_tiles", + "side": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs.json new file mode 100644 index 0000000000..5d99d2d614 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/basalt_tiles", + "top": "spectrum:block/basalt_tiles", + "side": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs_inner.json new file mode 100644 index 0000000000..22be1c0a1b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/basalt_tiles", + "top": "spectrum:block/basalt_tiles", + "side": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs_outer.json new file mode 100644 index 0000000000..b4689c5a5a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/basalt_tiles", + "top": "spectrum:block/basalt_tiles", + "side": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_inventory.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_inventory.json new file mode 100644 index 0000000000..783178c2ab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_post.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_post.json new file mode 100644 index 0000000000..6908eb276a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_side.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_side.json new file mode 100644 index 0000000000..d45a6870e1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_side_tall.json b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_side_tall.json new file mode 100644 index 0000000000..950136f7dd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tile_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/basalt_tiles.json b/src/main/resources/assets/spectrum/models/block/basalt_tiles.json new file mode 100644 index 0000000000..5ec538bbd4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/basalt_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/base_fusion_shrine.json b/src/main/resources/assets/spectrum/models/block/base_fusion_shrine.json index 6fe8fdb5f2..eccb9ef795 100755 --- a/src/main/resources/assets/spectrum/models/block/base_fusion_shrine.json +++ b/src/main/resources/assets/spectrum/models/block/base_fusion_shrine.json @@ -1,93 +1,380 @@ { - "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", - "texture_size": [32, 32], - "textures": { - "0": "#shrine", - "particle": "#shrine" - }, - "elements": [ - { - "name": "neck", - "from": [2, 0, 2], - "to": [14, 12, 14], - "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "south": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "west": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "up": {"uv": [8.5, 0.5, 14.5, 6.5], "texture": "#0"}, - "down": {"uv": [0.5, 8.5, 6.5, 14.5], "texture": "#0"} - } - }, - { - "name": "basin", - "from": [1, 12, 1], - "to": [15, 15, 15], - "faces": { - "north": {"uv": [0, 6, 7, 7.5], "texture": "#0"}, - "east": {"uv": [0, 6, 7, 7.5], "texture": "#0"}, - "south": {"uv": [0, 6, 7, 7.5], "texture": "#0"}, - "west": {"uv": [0, 6, 7, 7.5], "texture": "#0"}, - "up": {"uv": [8, 0, 15, 7], "texture": "#0"}, - "down": {"uv": [0, 8, 7, 15], "texture": "#0"} - } - }, - { - "name": "basin inner", - "from": [14, 15, 14], - "to": [2, 13, 2], - "faces": { - "north": {"uv": [0.5, 14, 6.5, 15], "texture": "#0"}, - "east": {"uv": [0.5, 14, 6.5, 15], "texture": "#0"}, - "south": {"uv": [0.5, 14, 6.5, 15], "texture": "#0"}, - "west": {"uv": [0.5, 14, 6.5, 15], "texture": "#0"}, - "up": {"uv": [0.5, 8.5, 6.5, 14.5], "texture": "#0"}, - "down": {"uv": [8.5, 0.5, 14.5, 6.5], "texture": "#0"} - } - }, - { - "name": "crystal Z", - "from": [6.5, 13, 6.5], - "to": [9.5, 23, 9.5], - "faces": { - "north": {"uv": [11, 11, 12.5, 16], "texture": "#0"}, - "east": {"uv": [11, 11, 12.5, 16], "texture": "#0"}, - "south": {"uv": [11, 11, 12.5, 16], "texture": "#0"}, - "west": {"uv": [11, 11, 12.5, 16], "texture": "#0"}, - "up": {"uv": [11, 9.5, 12.5, 11], "texture": "#0"}, - "down": {"uv": [9.5, 9.5, 11, 11], "texture": "#0"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - } + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "texture_size": [ + 32, + 32 + ], + "textures": { + "0": "#shrine", + "particle": "#shrine" + }, + "elements": [ + { + "name": "neck", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 12, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8.5, + 0.5, + 14.5, + 6.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0.5, + 8.5, + 6.5, + 14.5 + ], + "texture": "#0" + } + } + }, + { + "name": "basin", + "from": [ + 1, + 12, + 1 + ], + "to": [ + 15, + 15, + 15 + ], + "faces": { + "north": { + "uv": [ + 0, + 6, + 7, + 7.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 6, + 7, + 7.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 6, + 7, + 7.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 6, + 7, + 7.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 0, + 15, + 7 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 8, + 7, + 15 + ], + "texture": "#0" + } + } + }, + { + "name": "basin inner", + "from": [ + 14, + 15, + 14 + ], + "to": [ + 2, + 13, + 2 + ], + "faces": { + "north": { + "uv": [ + 0.5, + 14, + 6.5, + 15 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0.5, + 14, + 6.5, + 15 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0.5, + 14, + 6.5, + 15 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0.5, + 14, + 6.5, + 15 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0.5, + 8.5, + 6.5, + 14.5 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 8.5, + 0.5, + 14.5, + 6.5 + ], + "texture": "#0" + } + } + }, + { + "name": "crystal Z", + "from": [ + 6.5, + 13, + 6.5 + ], + "to": [ + 9.5, + 23, + 9.5 + ], + "faces": { + "north": { + "uv": [ + 11, + 11, + 12.5, + 16 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 11, + 11, + 12.5, + 16 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 11, + 11, + 12.5, + 16 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 11, + 11, + 12.5, + 16 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 11, + 9.5, + 12.5, + 11 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9.5, + 9.5, + 11, + 11 + ], + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/bee.json b/src/main/resources/assets/spectrum/models/block/bee.json deleted file mode 100644 index 5e59e31dd3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/bee.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/yellow_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_button.json b/src/main/resources/assets/spectrum/models/block/black_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_button.json rename to src/main/resources/assets/spectrum/models/block/black_button.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/black_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/black_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/black_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/black_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/black_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/black_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/black_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/black_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/black_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/black_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/black_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/black_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/black_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/black_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/black_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/black_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/black_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/black_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/sucking_chest.json b/src/main/resources/assets/spectrum/models/block/black_hole_chest.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/sucking_chest.json rename to src/main/resources/assets/spectrum/models/block/black_hole_chest.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/black_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/black_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/black_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/black_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_slab.json b/src/main/resources/assets/spectrum/models/block/black_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/black_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/black_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/black_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/black_sludge.json b/src/main/resources/assets/spectrum/models/block/black_sludge.json new file mode 100644 index 0000000000..ad548d540b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/black_sludge.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/black_sludge" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/black_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/black_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/black_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/black_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/black_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/black_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/black_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/black_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_amethyst_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_amethyst_ore.json new file mode 100644 index 0000000000..e72b623563 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_amethyst_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_amethyst_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_azurite_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_azurite_ore.json new file mode 100644 index 0000000000..c0915c75d0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_azurite_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_azurite_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_slab.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_slab.json new file mode 100644 index 0000000000..acba37e5d2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/blackslag_bricks", + "top": "spectrum:block/blackslag_bricks", + "side": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_slab_top.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_slab_top.json new file mode 100644 index 0000000000..826394aea4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/blackslag_bricks", + "top": "spectrum:block/blackslag_bricks", + "side": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs.json new file mode 100644 index 0000000000..73ad091b4c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/blackslag_bricks", + "top": "spectrum:block/blackslag_bricks", + "side": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs_inner.json new file mode 100644 index 0000000000..012556ee52 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/blackslag_bricks", + "top": "spectrum:block/blackslag_bricks", + "side": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs_outer.json new file mode 100644 index 0000000000..453c064708 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/blackslag_bricks", + "top": "spectrum:block/blackslag_bricks", + "side": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_inventory.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_inventory.json new file mode 100644 index 0000000000..277ff0df13 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_post.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_post.json new file mode 100644 index 0000000000..4fbfbf6542 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_side.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_side.json new file mode 100644 index 0000000000..4e4fe61716 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_side_tall.json b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_side_tall.json new file mode 100644 index 0000000000..91aeb7b886 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_bricks.json b/src/main/resources/assets/spectrum/models/block/blackslag_bricks.json new file mode 100644 index 0000000000..83a3a5ccdb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_citrine_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_citrine_ore.json new file mode 100644 index 0000000000..f0ed57cf05 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_citrine_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_citrine_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_coal_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_coal_ore.json index a58a34c005..71f8d5902f 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_coal_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_coal_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_coal_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_coal_ore_top", + "side": "spectrum:block/blackslag_coal_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_copper_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_copper_ore.json new file mode 100644 index 0000000000..40a82f5baa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_copper_ore.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_copper_ore_top", + "side": "spectrum:block/blackslag_copper_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_diamond_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_diamond_ore.json index 9544578624..f3b2fa15af 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_diamond_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_diamond_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_diamond_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_diamond_ore_top", + "side": "spectrum:block/blackslag_diamond_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_emerald_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_emerald_ore.json index f70ee6d8c1..fccadc6943 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_emerald_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_emerald_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_emerald_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_emerald_ore_top", + "side": "spectrum:block/blackslag_emerald_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_gold_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_gold_ore.json index f4719bc099..b549e29ce8 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_gold_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_gold_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_gold_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_gold_ore_top", + "side": "spectrum:block/blackslag_gold_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_iron_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_iron_ore.json index cca5ef2316..a8b44e8726 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_iron_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_iron_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_iron_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_iron_ore_top", + "side": "spectrum:block/blackslag_iron_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_lapis_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_lapis_ore.json index 33cb93479a..4ce8d751f7 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_lapis_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_lapis_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_lapis_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_lapis_ore_top", + "side": "spectrum:block/blackslag_lapis_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_malachite_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_malachite_ore.json index b2d65abc20..f29d596f10 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_malachite_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_malachite_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_side" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_malachite_ore_top", + "side": "spectrum:block/blackslag_malachite_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_mirrored.json b/src/main/resources/assets/spectrum/models/block/blackslag_mirrored.json new file mode 100644 index 0000000000..36b3194b2c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_mirrored.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_mirrored", + "textures": { + "end": "spectrum:block/blackslag_top", + "side": "spectrum:block/blackslag_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_moonstone_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_moonstone_ore.json new file mode 100644 index 0000000000..8b5bed0216 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_moonstone_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_moonstone_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_onyx_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_onyx_ore.json new file mode 100644 index 0000000000..45b930243d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_onyx_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_onyx_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_redstone_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_redstone_ore.json index 307680db03..916cb37266 100644 --- a/src/main/resources/assets/spectrum/models/block/blackslag_redstone_ore.json +++ b/src/main/resources/assets/spectrum/models/block/blackslag_redstone_ore.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_redstone_ore" - } + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_redstone_ore_top", + "side": "spectrum:block/blackslag_redstone_ore" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/blackslag_shimmerstone_light.json new file mode 100644 index 0000000000..afebe412cf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "spectrum:block/polished_blackslag", + "inner": "spectrum:block/shimmerstone_light", + "particle": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_shimmerstone_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_shimmerstone_ore.json new file mode 100644 index 0000000000..cbcd657e26 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_shimmerstone_ore.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_shimmerstone_ore_top", + "side": "spectrum:block/blackslag_shimmerstone_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_sparklestone_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_sparklestone_ore.json deleted file mode 100644 index 4cbc860385..0000000000 --- a/src/main/resources/assets/spectrum/models/block/blackslag_sparklestone_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/blackslag_sparklestone_ore" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_stairs.json b/src/main/resources/assets/spectrum/models/block/blackslag_stairs.json new file mode 100644 index 0000000000..44d459640a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "top": "spectrum:block/blackslag_top", + "side": "spectrum:block/blackslag_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/blackslag_stairs_inner.json new file mode 100644 index 0000000000..04b6346e88 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "top": "spectrum:block/blackslag_top", + "side": "spectrum:block/blackslag_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/blackslag_stairs_outer.json new file mode 100644 index 0000000000..39d0cc5e7e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "top": "spectrum:block/blackslag_top", + "side": "spectrum:block/blackslag_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_slab.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_slab.json new file mode 100644 index 0000000000..bdf8975956 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/blackslag_tiles", + "top": "spectrum:block/blackslag_tiles", + "side": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_slab_top.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_slab_top.json new file mode 100644 index 0000000000..af1316c273 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/blackslag_tiles", + "top": "spectrum:block/blackslag_tiles", + "side": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs.json new file mode 100644 index 0000000000..d9a74bfff3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/blackslag_tiles", + "top": "spectrum:block/blackslag_tiles", + "side": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs_inner.json new file mode 100644 index 0000000000..96d2ac6ae7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/blackslag_tiles", + "top": "spectrum:block/blackslag_tiles", + "side": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs_outer.json new file mode 100644 index 0000000000..739d855eea --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/blackslag_tiles", + "top": "spectrum:block/blackslag_tiles", + "side": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_inventory.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_inventory.json new file mode 100644 index 0000000000..7a93398fc8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_post.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_post.json new file mode 100644 index 0000000000..dc1b6fc6bc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_side.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_side.json new file mode 100644 index 0000000000..148657fa73 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_side_tall.json b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_side_tall.json new file mode 100644 index 0000000000..179657927b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tile_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_tiles.json b/src/main/resources/assets/spectrum/models/block/blackslag_tiles.json new file mode 100644 index 0000000000..a0660bd4a3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blackslag_topaz_ore.json b/src/main/resources/assets/spectrum/models/block/blackslag_topaz_ore.json new file mode 100644 index 0000000000..802b3f08ba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/blackslag_topaz_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/blackslag_topaz_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blaze.json b/src/main/resources/assets/spectrum/models/block/blaze.json deleted file mode 100644 index 5e59e31dd3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/blaze.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/yellow_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_button.json b/src/main/resources/assets/spectrum/models/block/blue_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_button.json rename to src/main/resources/assets/spectrum/models/block/blue_button.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/blue_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/blue_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/blue_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/blue_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/blue_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/blue_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/blue_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/blue_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/blue_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/blue_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/blue_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/blue_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/blue_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/blue_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/blue_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/blue_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_slab.json b/src/main/resources/assets/spectrum/models/block/blue_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/blue_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/blue_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/blue_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/blue_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/blue_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/blue_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/blue_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/blue_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/blue_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/blue_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/blue_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/bristle_sprouts.json b/src/main/resources/assets/spectrum/models/block/bristle_sprouts.json new file mode 100644 index 0000000000..b46b2f917a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/bristle_sprouts.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/bristle_sprouts" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_button.json b/src/main/resources/assets/spectrum/models/block/brown_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_button.json rename to src/main/resources/assets/spectrum/models/block/brown_button.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/brown_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/brown_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/brown_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/brown_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/brown_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/brown_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/brown_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/brown_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/brown_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/brown_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/brown_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/brown_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/brown_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/brown_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/brown_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/brown_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_slab.json b/src/main/resources/assets/spectrum/models/block/brown_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/brown_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/brown_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/brown_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/brown_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/brown_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/brown_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/brown_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/brown_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/brown_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/brown_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/brown_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/calcite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/calcite_shimmerstone_light.json new file mode 100644 index 0000000000..468a89299a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "spectrum:block/polished_calcite", + "inner": "spectrum:block/shimmerstone_light", + "particle": "spectrum:block/polished_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/calcite_sparklestone_light.json deleted file mode 100644 index 66f6d1923e..0000000000 --- a/src/main/resources/assets/spectrum/models/block/calcite_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "spectrum:block/polished_calcite", - "inner": "spectrum:block/sparklestone_light", - "particle": "spectrum:block/polished_calcite" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_slab.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_slab.json new file mode 100644 index 0000000000..b3fb3953cd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/calcite_tiles", + "top": "spectrum:block/calcite_tiles", + "side": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_slab_top.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_slab_top.json new file mode 100644 index 0000000000..7122370439 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/calcite_tiles", + "top": "spectrum:block/calcite_tiles", + "side": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs.json new file mode 100644 index 0000000000..862be48706 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/calcite_tiles", + "top": "spectrum:block/calcite_tiles", + "side": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs_inner.json new file mode 100644 index 0000000000..865af2074b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/calcite_tiles", + "top": "spectrum:block/calcite_tiles", + "side": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs_outer.json new file mode 100644 index 0000000000..161ebafd41 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/calcite_tiles", + "top": "spectrum:block/calcite_tiles", + "side": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_inventory.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_inventory.json new file mode 100644 index 0000000000..7a9d1bf621 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_post.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_post.json new file mode 100644 index 0000000000..70a1357b19 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_side.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_side.json new file mode 100644 index 0000000000..e6faccfe7f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_side_tall.json b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_side_tall.json new file mode 100644 index 0000000000..1243ddb405 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tile_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/calcite_tiles.json b/src/main/resources/assets/spectrum/models/block/calcite_tiles.json new file mode 100644 index 0000000000..c50209d85d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/calcite_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cat.json b/src/main/resources/assets/spectrum/models/block/cat.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/cat.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cave_spider.json b/src/main/resources/assets/spectrum/models/block/cave_spider.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/cave_spider.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chest_template.json b/src/main/resources/assets/spectrum/models/block/chest_template.json deleted file mode 100644 index 94598f1bb2..0000000000 --- a/src/main/resources/assets/spectrum/models/block/chest_template.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "parent": "block/block", - "elements": [ - { - "from": [ - 1, - 0, - 1 - ], - "to": [ - 15, - 10, - 15 - ], - "faces": { - "north": { - "uv": [ - 3.5, - 8.25, - 7, - 10.75 - ], - "rotation": 180, - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 8.25, - 3.5, - 10.75 - ], - "rotation": 180, - "texture": "#0" - }, - "south": { - "uv": [ - 10.5, - 8.25, - 14, - 10.75 - ], - "rotation": 180, - "texture": "#0" - }, - "west": { - "uv": [ - 7, - 8.25, - 10.5, - 10.75 - ], - "rotation": 180, - "texture": "#0" - }, - "up": { - "uv": [ - 7, - 4.75, - 10.5, - 8.25 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 3.5, - 0, - 7, - 3.5 - ], - "texture": "#0" - } - } - }, - { - "from": [ - 1, - 9, - 1 - ], - "to": [ - 15, - 14, - 15 - ], - "faces": { - "north": { - "uv": [ - 10.5, - 3.5, - 14, - 4.75 - ], - "rotation": 180, - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 3.5, - 3.5, - 4.75 - ], - "rotation": 180, - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 3.5, - 3.5, - 4.75 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 7, - 3.5, - 10.5, - 4.75 - ], - "rotation": 180, - "texture": "#0" - }, - "up": { - "uv": [ - 7, - 0, - 10.5, - 3.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 7, - 0, - 10.5, - 3.5 - ], - "texture": "#0" - } - } - }, - { - "from": [ - 7, - 7, - 0 - ], - "to": [ - 9, - 11, - 1 - ], - "faces": { - "north": { - "uv": [ - 0.25, - 0.25, - 0.75, - 1.25 - ], - "rotation": 180, - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0.25, - 0.25, - 1.25 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 1, - 0.25, - 1.5, - 1.25 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 0.75, - 0.25, - 1, - 1.25 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0.25, - 0.75, - 0.5 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 0, - 0.75, - 1.25, - 0.5 - ], - "texture": "#0" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - 75, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - 75, - 45, - 0 - ], - "translation": [ - 0, - 2.5, - 0 - ], - "scale": [ - 0.375, - 0.375, - 0.375 - ] - }, - "firstperson_righthand": { - "rotation": [ - 0, - 45, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 0, - 225, - 0 - ], - "scale": [ - 0.4, - 0.4, - 0.4 - ] - }, - "ground": { - "translation": [ - 0, - 3, - 0 - ], - "scale": [ - 0.25, - 0.25, - 0.25 - ] - }, - "gui": { - "rotation": [ - 30, - 225, - 0 - ], - "scale": [ - 0.625, - 0.625, - 0.625 - ] - }, - "head": { - "translation": [ - 0, - 0.5, - 0 - ] - }, - "fixed": { - "scale": [ - 0.5, - 0.5, - 0.5 - ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_cap.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_cap.json new file mode 100644 index 0000000000..29f3c15fab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/chestnut_noxcap_cap_top", + "side": "spectrum:block/chestnut_noxcap_cap" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_gills.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_gills.json new file mode 100644 index 0000000000..f28dde3bc5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_gills.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/chestnut_noxcap_gills_top", + "side": "spectrum:block/chestnut_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_stem.json new file mode 100644 index 0000000000..b2e6a48105 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/chestnut_noxcap_stem_top", + "side": "spectrum:block/chestnut_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxshroom.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxshroom.json new file mode 100644 index 0000000000..344fa874d4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/chestnut_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_amphora.json new file mode 100644 index 0000000000..f0f88bfb5e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_amphora.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_amphora_bottom", + "side": "spectrum:block/chestnut_noxwood_amphora", + "top": "spectrum:block/chestnut_noxwood_amphora_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_amphora_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_amphora_open.json new file mode 100644 index 0000000000..723217b8be --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_amphora_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_amphora_bottom", + "side": "spectrum:block/chestnut_noxwood_amphora", + "top": "spectrum:block/chestnut_noxwood_amphora_top_open" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_beam.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_beam.json new file mode 100644 index 0000000000..f3e998bbad --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_beam.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/chestnut_noxwood_beam_top", + "side": "spectrum:block/chestnut_noxwood_beam" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button.json new file mode 100644 index 0000000000..7d82c736c6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button_inventory.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button_inventory.json new file mode 100644 index 0000000000..d9456fbad1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button_pressed.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button_pressed.json new file mode 100644 index 0000000000..6fee27d9c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_left.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_left.json new file mode 100644 index 0000000000..895e4476bf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_left_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_left_open.json new file mode 100644 index 0000000000..0aed6874b3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_right.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_right.json new file mode 100644 index 0000000000..fe11aafe1e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_right_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_right_open.json new file mode 100644 index 0000000000..2fe24a68ef --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_left.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_left.json new file mode 100644 index 0000000000..73169ba1ae --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_left_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_left_open.json new file mode 100644 index 0000000000..424ca7f135 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_right.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_right.json new file mode 100644 index 0000000000..8485b49478 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_right_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_right_open.json new file mode 100644 index 0000000000..46b6ab3276 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_door_bottom", + "top": "spectrum:block/chestnut_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate.json new file mode 100644 index 0000000000..03c0c595dc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_open.json new file mode 100644 index 0000000000..46a4d656e9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_wall.json new file mode 100644 index 0000000000..8a9cab6fe2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_wall_open.json new file mode 100644 index 0000000000..501269449e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_inventory.json new file mode 100644 index 0000000000..94676783a3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_post.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_post.json new file mode 100644 index 0000000000..8160e9267d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_side.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_side.json new file mode 100644 index 0000000000..94baa3ce0a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp.json new file mode 100644 index 0000000000..666e8e1451 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_alt.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_alt.json new file mode 100644 index 0000000000..943bf8e6c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_alt", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_diagonal.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_diagonal.json new file mode 100644 index 0000000000..67bdbd8564 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_diagonal_alt.json new file mode 100644 index 0000000000..69ae42825e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal_alt", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging.json new file mode 100644 index 0000000000..e491483a9a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_alt.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_alt.json new file mode 100644 index 0000000000..1611a3ade5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_alt", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_diagonal.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_diagonal.json new file mode 100644 index 0000000000..f01bf70ebe --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_diagonal_alt.json new file mode 100644 index 0000000000..86e3cdbb90 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lamp_hanging_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal_alt", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lantern_off.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lantern_off.json new file mode 100644 index 0000000000..05841e5a76 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lantern_off.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lantern_off" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lantern_on.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lantern_on.json new file mode 100644 index 0000000000..adb4e3a310 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_lantern_on.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/chestnut_noxwood_lantern_on" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_light.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_light.json new file mode 100644 index 0000000000..931e6547c1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/multilayer_light", + "textures": { + "top": "spectrum:block/chestnut_noxwood_light_top", + "side": "spectrum:block/chestnut_noxwood_light", + "inside": "spectrum:block/chestnut_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_planks.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_planks.json new file mode 100644 index 0000000000..d2e3663f11 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_pressure_plate.json new file mode 100644 index 0000000000..05af74102b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_pressure_plate_down.json new file mode 100644 index 0000000000..aae3232d81 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_slab.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_slab.json new file mode 100644 index 0000000000..54d57e1f4f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_planks", + "top": "spectrum:block/chestnut_noxwood_planks", + "side": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_slab_top.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_slab_top.json new file mode 100644 index 0000000000..8a06503ce6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_planks", + "top": "spectrum:block/chestnut_noxwood_planks", + "side": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs.json new file mode 100644 index 0000000000..9d238c055f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_planks", + "top": "spectrum:block/chestnut_noxwood_planks", + "side": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs_inner.json new file mode 100644 index 0000000000..c719384b72 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_planks", + "top": "spectrum:block/chestnut_noxwood_planks", + "side": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs_outer.json new file mode 100644 index 0000000000..ae4689184d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/chestnut_noxwood_planks", + "top": "spectrum:block/chestnut_noxwood_planks", + "side": "spectrum:block/chestnut_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_bottom.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_bottom.json new file mode 100644 index 0000000000..1d6683f1c0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_open.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_open.json new file mode 100644 index 0000000000..1beeba9ef9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_top.json b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_top.json new file mode 100644 index 0000000000..1f727baa94 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chestnut_noxwood_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "spectrum:block/chestnut_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chicken.json b/src/main/resources/assets/spectrum/models/block/chicken.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/chicken.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/chiseled_polished_blackslag.json b/src/main/resources/assets/spectrum/models/block/chiseled_polished_blackslag.json new file mode 100644 index 0000000000..34bd3bbdb5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/chiseled_polished_blackslag.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/chiseled_polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cinderhearth.json b/src/main/resources/assets/spectrum/models/block/cinderhearth.json index e72a2b760f..113bf54881 100644 --- a/src/main/resources/assets/spectrum/models/block/cinderhearth.json +++ b/src/main/resources/assets/spectrum/models/block/cinderhearth.json @@ -1,72 +1,350 @@ { - "parent": "block/block", - "credit": "Made with Blockbench", - "textures": { - "0": "spectrum:block/polished_basalt", - "1": "spectrum:block/polished_calcite", - "2": "spectrum:block/cinderhearth", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 4, 16], - "faces": { - "north": {"uv": [0, 12, 16, 16], "rotation": 180, "texture": "#0"}, - "east": {"uv": [0, 12, 16, 16], "rotation": 180, "texture": "#0"}, - "south": {"uv": [0, 12, 16, 16], "rotation": 180, "texture": "#0"}, - "west": {"uv": [0, 12, 16, 16], "rotation": 180, "texture": "#0"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#0"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#0"} - } - }, - { - "from": [4, 4, 0], - "to": [12, 6, 3], - "faces": { - "north": {"uv": [5, 3, 13, 5], "texture": "#0"}, - "east": {"uv": [3, 3, 6, 5], "texture": "#0"}, - "south": {"uv": [2, 3, 10, 5], "texture": "#0"}, - "west": {"uv": [4, 3, 7, 5], "texture": "#0"}, - "up": {"uv": [4, 8, 12, 11], "texture": "#0"}, - "down": {"uv": [3, 5, 11, 8], "texture": "#0"} - } - }, - { - "from": [1, 4, 3], - "to": [15, 13, 16], - "faces": { - "north": {"uv": [0, 0, 14, 9], "texture": "#2"}, - "east": {"uv": [3, 7, 16, 16], "texture": "#1"}, - "south": {"uv": [2, 7, 16, 16], "texture": "#1"}, - "west": {"uv": [3, 7, 16, 16], "texture": "#1"}, - "up": {"uv": [2, 3, 16, 16], "texture": "#1"}, - "down": {"uv": [2, 3, 16, 16], "texture": "#1"} - } - }, - { - "from": [2, 13, 9], - "to": [6, 17, 13], - "faces": { - "north": {"uv": [3, 11, 7, 15], "rotation": 180, "texture": "#1"}, - "east": {"uv": [2, 3, 6, 7], "texture": "#1"}, - "south": {"uv": [3, 4, 7, 8], "texture": "#1"}, - "west": {"uv": [3, 4, 7, 8], "texture": "#1"}, - "up": {"uv": [11, 11, 15, 15], "texture": "#2"} - } - }, - { - "from": [5, 13, 4], - "to": [13, 15, 14], - "faces": { - "north": {"uv": [3, 11, 11, 13], "rotation": 180, "texture": "#1"}, - "east": {"uv": [2, 3, 12, 5], "texture": "#1"}, - "south": {"uv": [3, 4, 11, 6], "texture": "#1"}, - "west": {"uv": [3, 4, 13, 6], "texture": "#1"}, - "up": {"uv": [3, 2, 11, 12], "texture": "#1"}, - "down": {"uv": [3, 2, 11, 12], "texture": "#1"} - } - } - ], - "display": {} + "parent": "block/block", + "credit": "Made with Blockbench", + "textures": { + "0": "spectrum:block/polished_basalt", + "1": "spectrum:block/polished_calcite", + "2": "spectrum:block/cinderhearth", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 4, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "rotation": 180, + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "rotation": 180, + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "rotation": 180, + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 12, + 16, + 16 + ], + "rotation": 180, + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 4, + 4, + 0 + ], + "to": [ + 12, + 6, + 3 + ], + "faces": { + "north": { + "uv": [ + 5, + 3, + 13, + 5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 3, + 3, + 6, + 5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 2, + 3, + 10, + 5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4, + 3, + 7, + 5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 4, + 8, + 12, + 11 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 5, + 11, + 8 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 1, + 4, + 3 + ], + "to": [ + 15, + 13, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 14, + 9 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 3, + 7, + 16, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 2, + 7, + 16, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3, + 7, + 16, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 2, + 3, + 16, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 2, + 3, + 16, + 16 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 2, + 13, + 9 + ], + "to": [ + 6, + 17, + 13 + ], + "faces": { + "north": { + "uv": [ + 3, + 11, + 7, + 15 + ], + "rotation": 180, + "texture": "#1" + }, + "east": { + "uv": [ + 2, + 3, + 6, + 7 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3, + 4, + 7, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3, + 4, + 7, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 11, + 11, + 15, + 15 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 13, + 4 + ], + "to": [ + 13, + 15, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 11, + 11, + 13 + ], + "rotation": 180, + "texture": "#1" + }, + "east": { + "uv": [ + 2, + 3, + 12, + 5 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 3, + 4, + 11, + 6 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 3, + 4, + 13, + 6 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 2, + 11, + 12 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 3, + 2, + 11, + 12 + ], + "texture": "#1" + } + } + } + ], + "display": {} } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_basalt_lamp.json b/src/main/resources/assets/spectrum/models/block/citrine_basalt_lamp.json index ae4b470ac7..0c0bbb1073 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_basalt_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/citrine_basalt_lamp", - "vertical": "spectrum:block/polished_basalt", - "side_outer": "spectrum:block/citrine_basalt_lamp", - "inner": "spectrum:block/citrine_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_basalt", + "side": "spectrum:block/citrine_basalt_lamp", + "inside": "spectrum:block/citrine_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_calcite_lamp.json b/src/main/resources/assets/spectrum/models/block/citrine_calcite_lamp.json index db217f3de8..d06c5a34be 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_calcite_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/citrine_calcite_lamp", - "vertical": "spectrum:block/polished_calcite", - "side_outer": "spectrum:block/citrine_calcite_lamp", - "inner": "spectrum:block/citrine_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_calcite", + "side": "spectrum:block/citrine_calcite_lamp", + "inside": "spectrum:block/citrine_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_chime.json b/src/main/resources/assets/spectrum/models/block/citrine_chime.json index dbcb071d30..372c29d666 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_chime.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_chime.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_chime", + "parent": "spectrum:templates/chime", "textures": { "gemstone": "spectrum:block/citrine_glass" } diff --git a/src/main/resources/assets/spectrum/models/block/citrine_decostone_bottom.json b/src/main/resources/assets/spectrum/models/block/citrine_decostone_bottom.json index 733bdf968a..e17cc60592 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_decostone_bottom.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_decostone_bottom.json @@ -1,384 +1,1876 @@ { - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "0": "spectrum:block/polished_basalt", - "1": "spectrum:block/polished_calcite", - "2": "spectrum:block/citrine_decostone", - "3": "spectrum:block/polished_basalt_pillar_side", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [3, 3, 7], - "to": [4, 8, 11], - "faces": { - "north": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [10, 3, 8], - "to": [11, 8, 11], - "faces": { - "north": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [5, 3, 12], - "to": [9, 8, 13], - "faces": { - "north": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [5, 3, 5], - "to": [8, 8, 6], - "faces": { - "north": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [4, 3, 6], - "to": [10, 9, 12], - "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 6, 6], "texture": "#2"} - } - }, - { - "from": [2, 10, 9], - "to": [3, 14, 13], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [9, 10, 9], - "to": [10, 14, 13], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [4, 10, 14], - "to": [8, 14, 15], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"}, - "down": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [4, 10, 7], - "to": [8, 14, 8], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [3, 9, 8], - "to": [9, 15, 14], - "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"}, - "down": {"uv": [0, 0, 6, 6], "texture": "#2"} - } - }, - { - "from": [6, 14, 6], - "to": [7, 15, 10], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [13, 14, 6], - "to": [14, 16, 10], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [8, 14, 11], - "to": [12, 16, 12], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "down": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [8, 14, 4], - "to": [12, 16, 5], - "faces": { - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "down": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [7, 13, 5], - "to": [13, 16, 11], - "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [7, 3, 4], - "to": [8, 7, 7], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [13, 3, 4], - "to": [14, 7, 7], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [11, 3, 8], - "to": [12, 7, 9], - "faces": { - "north": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [9, 3, 2], - "to": [12, 7, 3], - "faces": { - "north": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [8, 3, 3], - "to": [13, 8, 8], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 5], "texture": "#2"} - } - }, - { - "from": [5, 9, 5], - "to": [6, 12, 8], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [11, 9, 5], - "to": [12, 12, 8], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [9, 9, 9], - "to": [10, 10, 10], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [7, 9, 3], - "to": [10, 12, 4], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [6, 8, 4], - "to": [11, 13, 9], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "down": {"uv": [0, 0, 5, 5], "texture": "#2"} - } - }, - { - "from": [4, 15, 5], - "to": [7, 16, 10], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "down": {"uv": [0, 0, 5, 5], "texture": "#2"} - } - }, - { - "name": "upper", - "from": [2, 2, 2], - "to": [14, 3, 14], - "faces": { - "north": {"uv": [3, 15, 15, 16], "texture": "#1"}, - "east": {"uv": [0, 15, 12, 16], "texture": "#1"}, - "south": {"uv": [4, 15, 16, 16], "texture": "#1"}, - "west": {"uv": [1, 15, 13, 16], "texture": "#1"}, - "up": {"uv": [3, 3, 15, 15], "texture": "#1"} - } - }, - { - "name": "lower", - "from": [1, 0, 1], - "to": [15, 2, 15], - "faces": { - "north": {"uv": [0, 2, 14, 4], "rotation": 180, "texture": "#3"}, - "east": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "south": {"uv": [1, 15, 15, 16], "texture": "#3"}, - "west": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "up": {"uv": [1, 1, 15, 15], "texture": "#0"}, - "down": {"uv": [1, 1, 15, 15], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "crystal", - "origin": [0, 0, 0], - "color": 0, - "children": [ - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2, 3, 4] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [5, 6, 7, 8, 9] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [10, 11, 12, 13, 14] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [15, 16, 17, 18, 19] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [20, 21, 22, 23, 24] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [25] - } - ] - }, - { - "name": "base", - "origin": [0, 0, 0], - "color": 0, - "children": [26, 27] - } - ] + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "spectrum:block/polished_basalt", + "1": "spectrum:block/polished_calcite", + "2": "spectrum:block/citrine_decostone", + "3": "spectrum:block/polished_basalt_pillar_side", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 3, + 3, + 7 + ], + "to": [ + 4, + 8, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 10, + 3, + 8 + ], + "to": [ + 11, + 8, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 3, + 12 + ], + "to": [ + 9, + 8, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 3, + 5 + ], + "to": [ + 8, + 8, + 6 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 3, + 6 + ], + "to": [ + 10, + 9, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 2, + 10, + 9 + ], + "to": [ + 3, + 14, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 10, + 9 + ], + "to": [ + 10, + 14, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 10, + 14 + ], + "to": [ + 8, + 14, + 15 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 10, + 7 + ], + "to": [ + 8, + 14, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 9, + 8 + ], + "to": [ + 9, + 15, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 14, + 6 + ], + "to": [ + 7, + 15, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 13, + 14, + 6 + ], + "to": [ + 14, + 16, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 14, + 11 + ], + "to": [ + 12, + 16, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 14, + 4 + ], + "to": [ + 12, + 16, + 5 + ], + "faces": { + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 13, + 5 + ], + "to": [ + 13, + 16, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 3, + 4 + ], + "to": [ + 8, + 7, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 13, + 3, + 4 + ], + "to": [ + 14, + 7, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 3, + 8 + ], + "to": [ + 12, + 7, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 3, + 2 + ], + "to": [ + 12, + 7, + 3 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 3, + 3 + ], + "to": [ + 13, + 8, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 9, + 5 + ], + "to": [ + 6, + 12, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 9, + 5 + ], + "to": [ + 12, + 12, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 9, + 9 + ], + "to": [ + 10, + 10, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 9, + 3 + ], + "to": [ + 10, + 12, + 4 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 8, + 4 + ], + "to": [ + 11, + 13, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 15, + 5 + ], + "to": [ + 7, + 16, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + } + } + }, + { + "name": "upper", + "from": [ + 2, + 2, + 2 + ], + "to": [ + 14, + 3, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 15, + 15, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 15, + 12, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 4, + 15, + 16, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 1, + 15, + 13, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 3, + 15, + 15 + ], + "texture": "#1" + } + } + }, + { + "name": "lower", + "from": [ + 1, + 0, + 1 + ], + "to": [ + 15, + 2, + 15 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 14, + 4 + ], + "rotation": 180, + "texture": "#3" + }, + "east": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "south": { + "uv": [ + 1, + 15, + 15, + 16 + ], + "texture": "#3" + }, + "west": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "up": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + } + } + } + ], + "groups": [ + { + "name": "crystal", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + 4 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 5, + 6, + 7, + 8, + 9 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 10, + 11, + 12, + 13, + 14 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 15, + 16, + 17, + 18, + 19 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 20, + 21, + 22, + 23, + 24 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 25 + ] + } + ] + }, + { + "name": "base", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 26, + 27 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_decostone_top.json b/src/main/resources/assets/spectrum/models/block/citrine_decostone_top.json index 53a281c1d8..046168315d 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_decostone_top.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_decostone_top.json @@ -1,509 +1,2650 @@ { - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "2": "spectrum:block/citrine_decostone", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [13, 0, 6], - "to": [14, 2, 10], - "faces": { - "north": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 4], "texture": "#2"} - } - }, - { - "from": [8, 0, 11], - "to": [12, 2, 12], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [8, 0, 4], - "to": [12, 2, 5], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 1], "texture": "#2"} - } - }, - { - "from": [9, 0, 5], - "to": [13, 3, 11], - "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 6, 6], "texture": "#2"} - } - }, - { - "from": [3, 0, 6], - "to": [4, 3, 9], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [5, 0, 10], - "to": [8, 2, 11], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [5, 0, 4], - "to": [7, 3, 5], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [4, 0, 5], - "to": [9, 4, 10], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 5], "texture": "#2"} - } - }, - { - "from": [4, 6, 8], - "to": [5, 9, 11], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [10, 6, 8], - "to": [11, 9, 11], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [6, 6, 12], - "to": [9, 9, 13], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [6, 8, 6], - "to": [9, 9, 7], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [5, 5, 7], - "to": [10, 10, 12], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "down": {"uv": [0, 0, 5, 5], "texture": "#2"} - } - }, - { - "from": [4, 10, 6], - "to": [5, 12, 8], - "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 2], "texture": "#2"} - } - }, - { - "from": [8, 11, 5], - "to": [9, 13, 7], - "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 2], "texture": "#2"} - } - }, - { - "from": [6, 11, 8], - "to": [8, 13, 9], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 1], "texture": "#2"} - } - }, - { - "from": [5, 10, 4], - "to": [7, 12, 5], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 1], "texture": "#2"} - } - }, - { - "from": [5, 10, 5], - "to": [8, 13, 8], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#2"} - } - }, - { - "from": [5, 13, 6], - "to": [7, 14, 8], - "faces": { - "north": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#2"} - } - }, - { - "from": [7, 13, 8], - "to": [8, 15, 10], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#2"} - } - }, - { - "from": [4, 0, 11], - "to": [6, 1, 13], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [6, 8, 4], - "to": [8, 10, 6], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#2"} - } - }, - { - "from": [5, 11, 10], - "to": [6, 13, 12], - "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 2], "texture": "#2"} - } - }, - { - "from": [9, 12, 9], - "to": [10, 14, 11], - "faces": { - "north": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 2], "texture": "#2"} - } - }, - { - "from": [7, 12, 12], - "to": [9, 14, 13], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 1], "texture": "#2"} - } - }, - { - "from": [7, 10, 10], - "to": [9, 11, 12], - "faces": { - "north": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#2"} - } - }, - { - "from": [6, 11, 8], - "to": [8, 13, 9], - "faces": { - "north": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 2], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 2], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 2, 1], "texture": "#2"} - } - }, - { - "from": [6, 11, 9], - "to": [9, 14, 12], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#2"} - } - }, - { - "from": [5, 4, 4], - "to": [6, 7, 7], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [11, 4, 4], - "to": [12, 7, 7], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [7, 4, 8], - "to": [10, 5, 9], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [7, 4, 2], - "to": [10, 7, 3], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [6, 3, 3], - "to": [11, 8, 8], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "down": {"uv": [0, 0, 5, 5], "texture": "#2"} - } - }, - { - "from": [1, 2, 9], - "to": [2, 5, 12], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [4, 4, 5, 7], "texture": "#2"} - } - }, - { - "from": [7, 2, 9], - "to": [8, 5, 12], - "faces": { - "north": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 1, 3], "texture": "#2"} - } - }, - { - "from": [3, 2, 13], - "to": [6, 5, 14], - "faces": { - "north": {"uv": [5, 3, 8, 6], "texture": "#2"}, - "east": {"uv": [2, 1, 3, 4], "texture": "#2"}, - "south": {"uv": [6, 6, 9, 9], "texture": "#2"}, - "west": {"uv": [3, 4, 4, 7], "texture": "#2"}, - "up": {"uv": [8, 2, 11, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [3, 3, 7], - "to": [6, 5, 8], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 1], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 1], "texture": "#2"} - } - }, - { - "from": [2, 1, 8], - "to": [7, 6, 13], - "faces": { - "north": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 5, 5], "texture": "#2"}, - "up": {"uv": [3, 3, 8, 8], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - } - ], - "groups": [ - { - "name": "crystal", - "origin": [0, 0, 0], - "color": 0, - "children": [ - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2, 3] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [4, 5, 6, 7] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [8, 9, 10, 11, 12] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [13, 14, 15, 16, 17, 18, 19, 20, 21] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [22, 23, 24, 25, 26, 27] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [28, 29, 30, 31, 32] - }, - { - "name": "blob", - "origin": [0, 0, 0], - "color": 0, - "children": [33, 34, 35, 36, 37] - } - ] - } - ] + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "2": "spectrum:block/citrine_decostone", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 13, + 0, + 6 + ], + "to": [ + 14, + 2, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 0, + 11 + ], + "to": [ + 12, + 2, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 0, + 4 + ], + "to": [ + 12, + 2, + 5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 0, + 5 + ], + "to": [ + 13, + 3, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 6, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 0, + 6 + ], + "to": [ + 4, + 3, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 0, + 10 + ], + "to": [ + 8, + 2, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 0, + 4 + ], + "to": [ + 7, + 3, + 5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 0, + 5 + ], + "to": [ + 9, + 4, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 6, + 8 + ], + "to": [ + 5, + 9, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 10, + 6, + 8 + ], + "to": [ + 11, + 9, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 6, + 12 + ], + "to": [ + 9, + 9, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 8, + 6 + ], + "to": [ + 9, + 9, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 5, + 7 + ], + "to": [ + 10, + 10, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 10, + 6 + ], + "to": [ + 5, + 12, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 11, + 5 + ], + "to": [ + 9, + 13, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 11, + 8 + ], + "to": [ + 8, + 13, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 10, + 4 + ], + "to": [ + 7, + 12, + 5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 10, + 5 + ], + "to": [ + 8, + 13, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 13, + 6 + ], + "to": [ + 7, + 14, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 13, + 8 + ], + "to": [ + 8, + 15, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 0, + 11 + ], + "to": [ + 6, + 1, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 8, + 4 + ], + "to": [ + 8, + 10, + 6 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 11, + 10 + ], + "to": [ + 6, + 13, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 12, + 9 + ], + "to": [ + 10, + 14, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 12, + 12 + ], + "to": [ + 9, + 14, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 10, + 10 + ], + "to": [ + 9, + 11, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 11, + 8 + ], + "to": [ + 8, + 13, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 2 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 11, + 9 + ], + "to": [ + 9, + 14, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 4, + 4 + ], + "to": [ + 6, + 7, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 11, + 4, + 4 + ], + "to": [ + 12, + 7, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 4, + 8 + ], + "to": [ + 10, + 5, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 4, + 2 + ], + "to": [ + 10, + 7, + 3 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 3, + 3 + ], + "to": [ + 11, + 8, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 1, + 2, + 9 + ], + "to": [ + 2, + 5, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 4, + 4, + 5, + 7 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 2, + 9 + ], + "to": [ + 8, + 5, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 2, + 13 + ], + "to": [ + 6, + 5, + 14 + ], + "faces": { + "north": { + "uv": [ + 5, + 3, + 8, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 2, + 1, + 3, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 6, + 6, + 9, + 9 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 3, + 4, + 4, + 7 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 8, + 2, + 11, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 3, + 7 + ], + "to": [ + 6, + 5, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 1 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 2, + 1, + 8 + ], + "to": [ + 7, + 6, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 5, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 3, + 3, + 8, + 8 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + } + ], + "groups": [ + { + "name": "crystal", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + 3 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 4, + 5, + 6, + 7 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 8, + 9, + 10, + 11, + 12 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 22, + 23, + 24, + 25, + 26, + 27 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 28, + 29, + 30, + 31, + 32 + ] + }, + { + "name": "blob", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 33, + 34, + 35, + 36, + 37 + ] + } + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick0.json b/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick0.json index 51ccc96888..a3d42efcbe 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick0.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick0.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick0", - "textures": { - "0": "spectrum:block/citrine_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/citrine_glass" - } + "parent": "spectrum:templates/sugar_stick0", + "textures": { + "0": "spectrum:block/citrine_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/citrine_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick1.json b/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick1.json index 6ca1f52a6c..098a15a0b3 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick1.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick1.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick1", - "textures": { - "0": "spectrum:block/citrine_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/citrine_glass" - } + "parent": "spectrum:templates/sugar_stick1", + "textures": { + "0": "spectrum:block/citrine_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/citrine_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick2.json b/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick2.json index 6a57b7b30b..e194d937ff 100644 --- a/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/citrine_sugar_stick2.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick2", - "textures": { - "0": "spectrum:block/citrine_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/citrine_glass" - } + "parent": "spectrum:templates/sugar_stick2", + "textures": { + "0": "spectrum:block/citrine_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/citrine_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/clownfish.json b/src/main/resources/assets/spectrum/models/block/clownfish.json deleted file mode 100644 index b2bd200f22..0000000000 --- a/src/main/resources/assets/spectrum/models/block/clownfish.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/orange_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag.json new file mode 100644 index 0000000000..fb72e5e825 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_slab.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_slab.json new file mode 100644 index 0000000000..28003e0a11 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/cobbled_blackslag", + "top": "spectrum:block/cobbled_blackslag", + "side": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_slab_top.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_slab_top.json new file mode 100644 index 0000000000..6aa631f952 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/cobbled_blackslag", + "top": "spectrum:block/cobbled_blackslag", + "side": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs.json new file mode 100644 index 0000000000..f9f6d8a12f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/cobbled_blackslag", + "top": "spectrum:block/cobbled_blackslag", + "side": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs_inner.json new file mode 100644 index 0000000000..6f44d1bf9a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/cobbled_blackslag", + "top": "spectrum:block/cobbled_blackslag", + "side": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs_outer.json new file mode 100644 index 0000000000..d7292f3a0a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/cobbled_blackslag", + "top": "spectrum:block/cobbled_blackslag", + "side": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_inventory.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_inventory.json new file mode 100644 index 0000000000..a6918f4ffc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_post.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_post.json new file mode 100644 index 0000000000..ccb03e546b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_side.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_side.json new file mode 100644 index 0000000000..d01c053678 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_side_tall.json b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_side_tall.json new file mode 100644 index 0000000000..9339c90d0a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cobbled_blackslag_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/cobbled_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cow.json b/src/main/resources/assets/spectrum/models/block/cow.json deleted file mode 100644 index cb24b5564c..0000000000 --- a/src/main/resources/assets/spectrum/models/block/cow.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/brown_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cracked_basalt_bricks.json b/src/main/resources/assets/spectrum/models/block/cracked_basalt_bricks.json new file mode 100644 index 0000000000..d1b847ba22 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cracked_basalt_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cracked_basalt_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cracked_basalt_tiles.json b/src/main/resources/assets/spectrum/models/block/cracked_basalt_tiles.json new file mode 100644 index 0000000000..4499edc292 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cracked_basalt_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cracked_basalt_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cracked_blackslag_bricks.json b/src/main/resources/assets/spectrum/models/block/cracked_blackslag_bricks.json new file mode 100644 index 0000000000..ca98156333 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cracked_blackslag_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cracked_blackslag_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cracked_blackslag_tiles.json b/src/main/resources/assets/spectrum/models/block/cracked_blackslag_tiles.json new file mode 100644 index 0000000000..90b9516dae --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cracked_blackslag_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cracked_blackslag_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cracked_calcite_bricks.json b/src/main/resources/assets/spectrum/models/block/cracked_calcite_bricks.json new file mode 100644 index 0000000000..75f6cd987e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cracked_calcite_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cracked_calcite_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/cracked_calcite_tiles.json b/src/main/resources/assets/spectrum/models/block/cracked_calcite_tiles.json new file mode 100644 index 0000000000..f9130e1c58 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/cracked_calcite_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/cracked_calcite_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/crystallarieum.json b/src/main/resources/assets/spectrum/models/block/crystallarieum.json index b8500ff1be..b69e96ad1d 100755 --- a/src/main/resources/assets/spectrum/models/block/crystallarieum.json +++ b/src/main/resources/assets/spectrum/models/block/crystallarieum.json @@ -1,170 +1,633 @@ { - "credit": "Made with Blockbench", - "texture_size": [32, 32], - "textures": { - "0": "spectrum:block/crystallarieum", - "1": "spectrum:block/liquid_crystal_still", - "2": "spectrum:block/crystallarieum_overlay", - "particle": "spectrum:block/crystallarieum_breaking" - }, - "elements": [ - { - "name": "foundation", - "from": [0, 0, 0], - "to": [16, 1, 16], - "faces": { - "north": {"uv": [0, 7.5, 8, 8], "texture": "#0"}, - "east": {"uv": [0, 7.5, 8, 8], "texture": "#0"}, - "south": {"uv": [0, 7.5, 8, 8], "texture": "#0"}, - "west": {"uv": [0, 7.5, 8, 8], "texture": "#0"}, - "up": {"uv": [0, 8, 8, 16], "texture": "#0"}, - "down": {"uv": [0, 8, 8, 16], "texture": "#0"} - } - }, - { - "name": "body", - "from": [1, 1, 1], - "to": [15, 14, 15], - "faces": { - "north": {"uv": [0.5, 1, 7.5, 7.5], "texture": "#0"}, - "east": {"uv": [0.5, 1, 7.5, 7.5], "texture": "#0"}, - "south": {"uv": [0.5, 1, 7.5, 7.5], "texture": "#0"}, - "west": {"uv": [0.5, 1, 7.5, 7.5], "texture": "#0"} - } - }, - { - "name": "shell", - "from": [0.001, 2, 0.001], - "to": [15.999, 12, 15.999], - "faces": { - "north": {"uv": [0, 2, 8, 7], "texture": "#0"}, - "east": {"uv": [0, 2, 8, 7], "texture": "#0"}, - "south": {"uv": [0, 2, 8, 7], "texture": "#0"}, - "west": {"uv": [0, 2, 8, 7], "texture": "#0"}, - "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, - "down": {"uv": [0, 8, 8, 16], "texture": "#0"} - } - }, - { - "name": "basin outside", - "from": [0, 14, 0], - "to": [16, 15, 16], - "faces": { - "north": {"uv": [0, 0.5, 8, 1], "texture": "#0"}, - "east": {"uv": [0, 0.5, 8, 1], "texture": "#0"}, - "south": {"uv": [0, 0.5, 8, 1], "texture": "#0"}, - "west": {"uv": [0, 0.5, 8, 1], "texture": "#0"}, - "up": {"uv": [8, 8, 16, 16], "texture": "#0"}, - "down": {"uv": [8, 8, 16, 16], "texture": "#0"} - } - }, - { - "name": "basin outside", - "from": [0, 15, 0], - "to": [1, 16, 16], - "faces": { - "north": {"uv": [0, 0, 0.5, 0.5], "texture": "#0"}, - "east": {"uv": [0, 0, 8, 0.5], "texture": "#0"}, - "south": {"uv": [7.5, 0, 8, 0.5], "texture": "#0"}, - "west": {"uv": [0, 0, 8, 0.5], "texture": "#0"}, - "up": {"uv": [15.5, 8, 16, 16], "texture": "#0"} - } - }, - { - "name": "basin outside", - "from": [15, 15, 0], - "to": [16, 16, 16], - "faces": { - "north": {"uv": [0, 0, 0.5, 0.5], "texture": "#0"}, - "east": {"uv": [0, 0, 8, 0.5], "texture": "#0"}, - "south": {"uv": [7.5, 0, 8, 0.5], "texture": "#0"}, - "west": {"uv": [0, 0, 8, 0.5], "texture": "#0"}, - "up": {"uv": [8, 8, 8.5, 16], "texture": "#0"} - } - }, - { - "name": "basin outside", - "from": [1, 15, 0], - "to": [15, 16, 1], - "faces": { - "north": {"uv": [0.5, 0, 7.5, 0.5], "texture": "#0"}, - "south": {"uv": [0.5, 0, 7.5, 0.5], "texture": "#0"}, - "up": {"uv": [8.5, 8, 15.5, 8.5], "texture": "#0"} - } - }, - { - "name": "basin outside", - "from": [1, 15, 15], - "to": [15, 16, 16], - "faces": { - "north": {"uv": [0.5, 0, 7.5, 0.5], "texture": "#0"}, - "south": {"uv": [0.5, 0, 7.5, 0.5], "texture": "#0"}, - "up": {"uv": [8.5, 8, 15.5, 8.5], "texture": "#0"} - } - }, - { - "name": "fluid", - "from": [1, 15.5, 1], - "to": [15, 15.5, 15], - "faces": { - "up": {"uv": [0, 0, 7, 7], "texture": "#1"}, - "down": {"uv": [1, 1, 1, 1], "texture": "#2"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "body", - "origin": [0, 0, 0], - "color": 0, - "children": [ - 0, - 1, - 2, - { - "name": "group", - "origin": [0, 0, 0], - "color": 0, - "children": [] - }, - 3, - 4, - 5, - 6, - 7, - 8 - ] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 32, + 32 + ], + "textures": { + "0": "spectrum:block/crystallarieum", + "1": "spectrum:block/liquid_crystal_still", + "2": "spectrum:block/crystallarieum_overlay", + "particle": "spectrum:block/crystallarieum_breaking" + }, + "elements": [ + { + "name": "foundation", + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 1, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 7.5, + 8, + 8 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 7.5, + 8, + 8 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 7.5, + 8, + 8 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 7.5, + 8, + 8 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 8, + 8, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 8, + 8, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "body", + "from": [ + 1, + 1, + 1 + ], + "to": [ + 15, + 14, + 15 + ], + "faces": { + "north": { + "uv": [ + 0.5, + 1, + 7.5, + 7.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0.5, + 1, + 7.5, + 7.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0.5, + 1, + 7.5, + 7.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0.5, + 1, + 7.5, + 7.5 + ], + "texture": "#0" + } + } + }, + { + "name": "shell", + "from": [ + 0.001, + 2, + 0.001 + ], + "to": [ + 15.999, + 12, + 15.999 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 8, + 7 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 2, + 8, + 7 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 2, + 8, + 7 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 2, + 8, + 7 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 0, + 16, + 8 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 8, + 8, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "basin outside", + "from": [ + 0, + 14, + 0 + ], + "to": [ + 16, + 15, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0.5, + 8, + 1 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0.5, + 8, + 1 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0.5, + 8, + 1 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0.5, + 8, + 1 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 8, + 16, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 8, + 8, + 16, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "basin outside", + "from": [ + 0, + 15, + 0 + ], + "to": [ + 1, + 16, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 0.5, + 0.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 8, + 0.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 7.5, + 0, + 8, + 0.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 8, + 0.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 15.5, + 8, + 16, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "basin outside", + "from": [ + 15, + 15, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 0.5, + 0.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 8, + 0.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 7.5, + 0, + 8, + 0.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 8, + 0.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 8, + 8.5, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "basin outside", + "from": [ + 1, + 15, + 0 + ], + "to": [ + 15, + 16, + 1 + ], + "faces": { + "north": { + "uv": [ + 0.5, + 0, + 7.5, + 0.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0.5, + 0, + 7.5, + 0.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8.5, + 8, + 15.5, + 8.5 + ], + "texture": "#0" + } + } + }, + { + "name": "basin outside", + "from": [ + 1, + 15, + 15 + ], + "to": [ + 15, + 16, + 16 + ], + "faces": { + "north": { + "uv": [ + 0.5, + 0, + 7.5, + 0.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0.5, + 0, + 7.5, + 0.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8.5, + 8, + 15.5, + 8.5 + ], + "texture": "#0" + } + } + }, + { + "name": "fluid", + "from": [ + 1, + 15.5, + 1 + ], + "to": [ + 15, + 15.5, + 15 + ], + "faces": { + "up": { + "uv": [ + 0, + 0, + 7, + 7 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 1, + 1, + 1, + 1 + ], + "texture": "#2" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + { + "name": "body", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + { + "name": "group", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [] + }, + 3, + 4, + 5, + 6, + 7, + 8 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/crystallarieum_farmable.json b/src/main/resources/assets/spectrum/models/block/crystallarieum_farmable.json index 7e2732836c..acff8c4d6e 100644 --- a/src/main/resources/assets/spectrum/models/block/crystallarieum_farmable.json +++ b/src/main/resources/assets/spectrum/models/block/crystallarieum_farmable.json @@ -5,23 +5,89 @@ }, "elements": [ { - "from": [ 0.8, -1, 8 ], - "to": [ 15.2, 15, 8 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "from": [ + 0.8, + -1, + 8 + ], + "to": [ + 15.2, + 15, + 8 + ], + "rotation": { + "origin": [ + 8, + 8, + 8 + ], + "axis": "y", + "angle": 45, + "rescale": true + }, "shade": false, "faces": { - "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, - "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } } }, { - "from": [ 8, -1, 0.8 ], - "to": [ 8, 15, 15.2 ], - "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, + "from": [ + 8, + -1, + 0.8 + ], + "to": [ + 8, + 15, + 15.2 + ], + "rotation": { + "origin": [ + 8, + 8, + 8 + ], + "axis": "y", + "angle": 45, + "rescale": true + }, "shade": false, "faces": { - "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }, - "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" } + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } } } ] diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_button.json b/src/main/resources/assets/spectrum/models/block/cyan_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_button.json rename to src/main/resources/assets/spectrum/models/block/cyan_button.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/cyan_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/cyan_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/cyan_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/cyan_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/cyan_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/cyan_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/cyan_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/cyan_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/cyan_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/cyan_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_slab.json b/src/main/resources/assets/spectrum/models/block/cyan_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/cyan_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/cyan_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/cyan_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/cyan_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/cyan_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/cyan_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/cyan_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/cyan_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/cyan_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/cyan_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/cyan_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/deeper_down_portal.json b/src/main/resources/assets/spectrum/models/block/deeper_down_portal.json index 29417f7c86..4da339e33f 100644 --- a/src/main/resources/assets/spectrum/models/block/deeper_down_portal.json +++ b/src/main/resources/assets/spectrum/models/block/deeper_down_portal.json @@ -1,5 +1,77 @@ { "textures": { + "0": "minecraft:block/bedrock", + "1": "spectrum:block/deeper_down_portal", "particle": "minecraft:block/bedrock" - } + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 4, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 4 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 4 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 4 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 4 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + } + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/deeper_down_portal_up.json b/src/main/resources/assets/spectrum/models/block/deeper_down_portal_up.json new file mode 100644 index 0000000000..c7287f695a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/deeper_down_portal_up.json @@ -0,0 +1,77 @@ +{ + "textures": { + "0": "minecraft:block/bedrock", + "1": "spectrum:block/deeper_down_portal", + "particle": "minecraft:block/bedrock" + }, + "elements": [ + { + "from": [ + 0, + 4, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 12 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 12 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 12 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 12 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#1" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/deepslate_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/deepslate_shimmerstone_light.json new file mode 100644 index 0000000000..b1c10064f5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/deepslate_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "minecraft:block/polished_deepslate", + "inner": "spectrum:block/shimmerstone_light", + "particle": "minecraft:block/polished_deepslate" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/deepslate_shimmerstone_ore.json b/src/main/resources/assets/spectrum/models/block/deepslate_shimmerstone_ore.json new file mode 100644 index 0000000000..05c5b8793b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/deepslate_shimmerstone_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/deepslate_shimmerstone_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/deepslate_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/deepslate_sparklestone_light.json deleted file mode 100644 index 3716650740..0000000000 --- a/src/main/resources/assets/spectrum/models/block/deepslate_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "minecraft:block/polished_deepslate", - "inner": "spectrum:block/sparklestone_light", - "particle": "minecraft:block/polished_deepslate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/deepslate_sparklestone_ore.json b/src/main/resources/assets/spectrum/models/block/deepslate_sparklestone_ore.json deleted file mode 100644 index 792c860c8d..0000000000 --- a/src/main/resources/assets/spectrum/models/block/deepslate_sparklestone_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/deepslate_sparklestone_ore" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/diorite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/diorite_shimmerstone_light.json new file mode 100644 index 0000000000..7888496c33 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/diorite_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "minecraft:block/polished_diorite", + "inner": "spectrum:block/shimmerstone_light", + "particle": "minecraft:block/polished_diorite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/diorite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/diorite_sparklestone_light.json deleted file mode 100644 index 03a7b28032..0000000000 --- a/src/main/resources/assets/spectrum/models/block/diorite_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "minecraft:block/polished_diorite", - "inner": "spectrum:block/sparklestone_light", - "particle": "minecraft:block/polished_diorite" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/donkey.json b/src/main/resources/assets/spectrum/models/block/donkey.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/donkey.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/doombloom0.json b/src/main/resources/assets/spectrum/models/block/doombloom0.json new file mode 100644 index 0000000000..37de4fa59b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/doombloom0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/doombloom0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/doombloom1.json b/src/main/resources/assets/spectrum/models/block/doombloom1.json new file mode 100644 index 0000000000..1929e7120c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/doombloom1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/doombloom1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/doombloom2.json b/src/main/resources/assets/spectrum/models/block/doombloom2.json new file mode 100644 index 0000000000..a6c18d0858 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/doombloom2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/doombloom2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/doombloom3.json b/src/main/resources/assets/spectrum/models/block/doombloom3.json new file mode 100644 index 0000000000..e067a921fc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/doombloom3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/doombloom3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/doombloom4.json b/src/main/resources/assets/spectrum/models/block/doombloom4.json new file mode 100644 index 0000000000..92a51be7d3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/doombloom4.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/doombloom4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/downstone.json b/src/main/resources/assets/spectrum/models/block/downstone.json new file mode 100644 index 0000000000..3a0ca85438 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/downstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/downstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/dragonbone.json b/src/main/resources/assets/spectrum/models/block/dragonbone.json new file mode 100644 index 0000000000..87b63217c9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/dragonbone.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/dragonbone_top", + "side": "spectrum:block/dragonbone_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/dragonrot.json b/src/main/resources/assets/spectrum/models/block/dragonrot.json new file mode 100644 index 0000000000..4d3939c661 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/dragonrot.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "spectrum:block/dragonrot_still" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/drowned.json b/src/main/resources/assets/spectrum/models/block/drowned.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/drowned.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxcap_cap.json b/src/main/resources/assets/spectrum/models/block/ebony_noxcap_cap.json new file mode 100644 index 0000000000..4c7e5feb30 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ebony_noxcap_cap_top", + "side": "spectrum:block/ebony_noxcap_cap" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxcap_gills.json b/src/main/resources/assets/spectrum/models/block/ebony_noxcap_gills.json new file mode 100644 index 0000000000..f11300c0c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxcap_gills.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ebony_noxcap_gills_top", + "side": "spectrum:block/ebony_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/ebony_noxcap_stem.json new file mode 100644 index 0000000000..baf254ad9a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ebony_noxcap_stem_top", + "side": "spectrum:block/ebony_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxshroom.json b/src/main/resources/assets/spectrum/models/block/ebony_noxshroom.json new file mode 100644 index 0000000000..08761d55f0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/ebony_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_amphora.json new file mode 100644 index 0000000000..c6cd65aa23 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_amphora.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_amphora_bottom", + "side": "spectrum:block/ebony_noxwood_amphora", + "top": "spectrum:block/ebony_noxwood_amphora_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_amphora_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_amphora_open.json new file mode 100644 index 0000000000..f163769260 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_amphora_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_amphora_bottom", + "side": "spectrum:block/ebony_noxwood_amphora", + "top": "spectrum:block/ebony_noxwood_amphora_top_open" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_beam.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_beam.json new file mode 100644 index 0000000000..0ad43f1330 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_beam.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ebony_noxwood_beam_top", + "side": "spectrum:block/ebony_noxwood_beam" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button.json new file mode 100644 index 0000000000..83a83ae2ee --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button_inventory.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button_inventory.json new file mode 100644 index 0000000000..464f2d1c29 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button_pressed.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button_pressed.json new file mode 100644 index 0000000000..9ec2a3742c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_left.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_left.json new file mode 100644 index 0000000000..de4be34e5f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_left_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_left_open.json new file mode 100644 index 0000000000..86bb138f25 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_right.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_right.json new file mode 100644 index 0000000000..ceb31abda8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_right_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_right_open.json new file mode 100644 index 0000000000..a226a5c1b8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_left.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_left.json new file mode 100644 index 0000000000..8082b129d2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_left_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_left_open.json new file mode 100644 index 0000000000..46531ee684 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_right.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_right.json new file mode 100644 index 0000000000..b9557ea28b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_right_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_right_open.json new file mode 100644 index 0000000000..b99e213a34 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_door_bottom", + "top": "spectrum:block/ebony_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate.json new file mode 100644 index 0000000000..ec06dd031a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_open.json new file mode 100644 index 0000000000..98ae570759 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_wall.json new file mode 100644 index 0000000000..ed55e29260 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_wall_open.json new file mode 100644 index 0000000000..cb3738d015 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_inventory.json new file mode 100644 index 0000000000..ef12634aeb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_post.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_post.json new file mode 100644 index 0000000000..84644c05e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_side.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_side.json new file mode 100644 index 0000000000..db1c2b807e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp.json new file mode 100644 index 0000000000..4eb511e010 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_alt.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_alt.json new file mode 100644 index 0000000000..cc82180b1f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_alt", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_diagonal.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_diagonal.json new file mode 100644 index 0000000000..428f8013fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_diagonal_alt.json new file mode 100644 index 0000000000..a4f39add22 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal_alt", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging.json new file mode 100644 index 0000000000..52b84a0aa6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_alt.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_alt.json new file mode 100644 index 0000000000..324915740b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_alt", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_diagonal.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_diagonal.json new file mode 100644 index 0000000000..39638b73ac --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_diagonal_alt.json new file mode 100644 index 0000000000..862e387fe8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lamp_hanging_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal_alt", + "textures": { + "all": "spectrum:block/ebony_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lantern_off.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lantern_off.json new file mode 100644 index 0000000000..dca5d502a9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lantern_off.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/ebony_noxwood_lantern_off" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lantern_on.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lantern_on.json new file mode 100644 index 0000000000..c1d82051b2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_lantern_on.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/ebony_noxwood_lantern_on" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_light.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_light.json new file mode 100644 index 0000000000..4837f1287e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/multilayer_light", + "textures": { + "top": "spectrum:block/ebony_noxwood_light_top", + "side": "spectrum:block/ebony_noxwood_light", + "inside": "spectrum:block/ebony_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_planks.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_planks.json new file mode 100644 index 0000000000..c4fae56255 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_pressure_plate.json new file mode 100644 index 0000000000..bfac2ac38b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_pressure_plate_down.json new file mode 100644 index 0000000000..9ea0eeaeb2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_slab.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_slab.json new file mode 100644 index 0000000000..507aee8416 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_planks", + "top": "spectrum:block/ebony_noxwood_planks", + "side": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_slab_top.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_slab_top.json new file mode 100644 index 0000000000..fbe29f4064 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_planks", + "top": "spectrum:block/ebony_noxwood_planks", + "side": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs.json new file mode 100644 index 0000000000..17cf6eaf09 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_planks", + "top": "spectrum:block/ebony_noxwood_planks", + "side": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs_inner.json new file mode 100644 index 0000000000..14982be794 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_planks", + "top": "spectrum:block/ebony_noxwood_planks", + "side": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs_outer.json new file mode 100644 index 0000000000..be7c0290d1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/ebony_noxwood_planks", + "top": "spectrum:block/ebony_noxwood_planks", + "side": "spectrum:block/ebony_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_bottom.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_bottom.json new file mode 100644 index 0000000000..c1acf0363d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "spectrum:block/ebony_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_open.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_open.json new file mode 100644 index 0000000000..4d54f33a30 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "spectrum:block/ebony_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_top.json b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_top.json new file mode 100644 index 0000000000..20b39c50e3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ebony_noxwood_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "spectrum:block/ebony_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/egg_laying_wooly_pig_head.json b/src/main/resources/assets/spectrum/models/block/egg_laying_wooly_pig_head.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/egg_laying_wooly_pig_head.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/elder_guardian.json b/src/main/resources/assets/spectrum/models/block/elder_guardian.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/elder_guardian.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/enchanter.json b/src/main/resources/assets/spectrum/models/block/enchanter.json index 64693910cd..6db8266c6f 100755 --- a/src/main/resources/assets/spectrum/models/block/enchanter.json +++ b/src/main/resources/assets/spectrum/models/block/enchanter.json @@ -1,144 +1,607 @@ { - "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/enchanter", - "particle": "spectrum:block/enchanter_breaking" - }, - "elements": [ - { - "name": "foot", - "from": [0, 0, 0], - "to": [16, 3, 16], - "faces": { - "north": {"uv": [0, 3.25, 4, 4], "texture": "#0"}, - "east": {"uv": [0, 3.25, 4, 4], "texture": "#0"}, - "south": {"uv": [0, 3.25, 4, 4], "texture": "#0"}, - "west": {"uv": [0, 3.25, 4, 4], "texture": "#0"}, - "up": {"uv": [8, 0, 12, 4], "texture": "#0"}, - "down": {"uv": [8, 0, 12, 4], "texture": "#0"} - } - }, - { - "name": "neck", - "from": [1, 3, 1], - "to": [15, 12, 15], - "faces": { - "north": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "east": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "south": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "west": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "up": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "down": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"} - } - }, - { - "name": "head", - "from": [0, 12, 0], - "to": [16, 15, 16], - "faces": { - "north": {"uv": [0, 0, 4, 0.75], "texture": "#0"}, - "east": {"uv": [0, 0, 4, 0.75], "texture": "#0"}, - "south": {"uv": [0, 0, 4, 0.75], "texture": "#0"}, - "west": {"uv": [0, 0, 4, 0.75], "texture": "#0"}, - "up": {"uv": [0, 4, 4, 8], "texture": "#0"}, - "down": {"uv": [8, 0, 12, 4], "texture": "#0"} - } - }, - { - "name": "cloth", - "from": [0, 3, 0], - "to": [16, 12, 16], - "faces": { - "north": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "east": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "south": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "west": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "up": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "down": {"uv": [0, 1, 4, 3.25], "texture": "#0"} - } - }, - { - "name": "neck", - "from": [1, 3, 1], - "to": [15, 12, 15], - "faces": { - "north": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "east": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "south": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "west": {"uv": [4.25, 1, 7.75, 3.25], "texture": "#0"}, - "up": {"uv": [0, 15.5, 0.5, 16], "texture": "#0"}, - "down": {"uv": [0, 15.5, 0.5, 16], "texture": "#0"} - } - }, - { - "name": "cloth_inverse", - "from": [16, 12, 16], - "to": [0, 3, 0], - "faces": { - "north": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "east": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "south": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "west": {"uv": [0, 1, 4, 3.25], "texture": "#0"}, - "up": {"uv": [0, 15.5, 0.5, 16], "texture": "#0"}, - "down": {"uv": [0, 15.5, 0.5, 16], "texture": "#0"} - } - }, - { - "name": "floor", - "from": [-9, 0.01, -9], - "to": [25, 0.01, 25], - "faces": { - "north": {"uv": [5.75, 5.75, 14.25, 14.25], "texture": "#0"}, - "east": {"uv": [5.75, 5.75, 14.25, 14.25], "texture": "#0"}, - "south": {"uv": [5.75, 5.75, 14.25, 14.25], "texture": "#0"}, - "west": {"uv": [5.75, 5.75, 14.25, 14.25], "texture": "#0"}, - "up": {"uv": [5.75, 5.75, 14.25, 14.25], "texture": "#0"}, - "down": {"uv": [5.75, 5.75, 14.25, 14.25], "texture": "#0"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - 1, - 2, - { - "name": "cloth", - "origin": [8, 8, 8], - "color": 0, - "children": [3, 4, 5] - }, - 6 - ] + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/enchanter", + "particle": "spectrum:block/enchanter_breaking" + }, + "elements": [ + { + "name": "foot", + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 3, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 3.25, + 4, + 4 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 3.25, + 4, + 4 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 3.25, + 4, + 4 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 3.25, + 4, + 4 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 8, + 0, + 12, + 4 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 8, + 0, + 12, + 4 + ], + "texture": "#0" + } + } + }, + { + "name": "neck", + "from": [ + 1, + 3, + 1 + ], + "to": [ + 15, + 12, + 15 + ], + "faces": { + "north": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + } + } + }, + { + "name": "head", + "from": [ + 0, + 12, + 0 + ], + "to": [ + 16, + 15, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 0.75 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 0.75 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 0.75 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 0.75 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 4, + 4, + 8 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 8, + 0, + 12, + 4 + ], + "texture": "#0" + } + } + }, + { + "name": "cloth", + "from": [ + 0, + 3, + 0 + ], + "to": [ + 16, + 12, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + } + } + }, + { + "name": "neck", + "from": [ + 1, + 3, + 1 + ], + "to": [ + 15, + 12, + 15 + ], + "faces": { + "north": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 4.25, + 1, + 7.75, + 3.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 15.5, + 0.5, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 15.5, + 0.5, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "cloth_inverse", + "from": [ + 16, + 12, + 16 + ], + "to": [ + 0, + 3, + 0 + ], + "faces": { + "north": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 1, + 4, + 3.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 15.5, + 0.5, + 16 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 15.5, + 0.5, + 16 + ], + "texture": "#0" + } + } + }, + { + "name": "floor", + "from": [ + -9, + 0.01, + -9 + ], + "to": [ + 25, + 0.01, + 25 + ], + "faces": { + "north": { + "uv": [ + 5.75, + 5.75, + 14.25, + 14.25 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 5.75, + 5.75, + 14.25, + 14.25 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 5.75, + 5.75, + 14.25, + 14.25 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 5.75, + 5.75, + 14.25, + 14.25 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 5.75, + 5.75, + 14.25, + 14.25 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 5.75, + 5.75, + 14.25, + 14.25 + ], + "texture": "#0" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + 1, + 2, + { + "name": "cloth", + "origin": [ + 8, + 8, + 8 + ], + "color": 0, + "children": [ + 3, + 4, + 5 + ] + }, + 6 + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ender_treasure.json b/src/main/resources/assets/spectrum/models/block/ender_treasure.json deleted file mode 100644 index 06725d7bac..0000000000 --- a/src/main/resources/assets/spectrum/models/block/ender_treasure.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "spectrum:block/ender_treasure" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/enderman.json b/src/main/resources/assets/spectrum/models/block/enderman.json deleted file mode 100644 index 30b58c5a57..0000000000 --- a/src/main/resources/assets/spectrum/models/block/enderman.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/black_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/endermite.json b/src/main/resources/assets/spectrum/models/block/endermite.json deleted file mode 100644 index 50572a864f..0000000000 --- a/src/main/resources/assets/spectrum/models/block/endermite.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/purple_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/evoker.json b/src/main/resources/assets/spectrum/models/block/evoker.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/evoker.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay.json b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay.json new file mode 100644 index 0000000000..6195aebeeb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/exposed_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_slab.json new file mode 100644 index 0000000000..9b662c19c2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/exposed_polished_shale_clay", + "top": "spectrum:block/exposed_polished_shale_clay", + "side": "spectrum:block/exposed_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_slab_top.json b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_slab_top.json new file mode 100644 index 0000000000..41f71077c5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/exposed_polished_shale_clay", + "top": "spectrum:block/exposed_polished_shale_clay", + "side": "spectrum:block/exposed_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..6e28752cb1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/exposed_polished_shale_clay", + "top": "spectrum:block/exposed_polished_shale_clay", + "side": "spectrum:block/exposed_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs_inner.json new file mode 100644 index 0000000000..aeecc808e7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/exposed_polished_shale_clay", + "top": "spectrum:block/exposed_polished_shale_clay", + "side": "spectrum:block/exposed_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs_outer.json new file mode 100644 index 0000000000..b7fdc4c870 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_polished_shale_clay_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/exposed_polished_shale_clay", + "top": "spectrum:block/exposed_polished_shale_clay", + "side": "spectrum:block/exposed_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_slab.json new file mode 100644 index 0000000000..deef73c083 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_bricks", + "top": "spectrum:block/exposed_shale_clay_bricks", + "side": "spectrum:block/exposed_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_slab_top.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_slab_top.json new file mode 100644 index 0000000000..d147c7058c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_bricks", + "top": "spectrum:block/exposed_shale_clay_bricks", + "side": "spectrum:block/exposed_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..dcdf2b7128 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_bricks", + "top": "spectrum:block/exposed_shale_clay_bricks", + "side": "spectrum:block/exposed_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs_inner.json new file mode 100644 index 0000000000..adc4ec9d52 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_bricks", + "top": "spectrum:block/exposed_shale_clay_bricks", + "side": "spectrum:block/exposed_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs_outer.json new file mode 100644 index 0000000000..af15391637 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_bricks", + "top": "spectrum:block/exposed_shale_clay_bricks", + "side": "spectrum:block/exposed_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_bricks.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_bricks.json new file mode 100644 index 0000000000..aaf470d193 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/exposed_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_slab.json new file mode 100644 index 0000000000..4c20b598c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_tiles", + "top": "spectrum:block/exposed_shale_clay_tiles", + "side": "spectrum:block/exposed_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_slab_top.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_slab_top.json new file mode 100644 index 0000000000..bb5509b2ff --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_tiles", + "top": "spectrum:block/exposed_shale_clay_tiles", + "side": "spectrum:block/exposed_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..c4346a9a75 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_tiles", + "top": "spectrum:block/exposed_shale_clay_tiles", + "side": "spectrum:block/exposed_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs_inner.json new file mode 100644 index 0000000000..9ff8ae96fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_tiles", + "top": "spectrum:block/exposed_shale_clay_tiles", + "side": "spectrum:block/exposed_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs_outer.json new file mode 100644 index 0000000000..87a855d161 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/exposed_shale_clay_tiles", + "top": "spectrum:block/exposed_shale_clay_tiles", + "side": "spectrum:block/exposed_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tiles.json b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tiles.json new file mode 100644 index 0000000000..bc88683e62 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/exposed_shale_clay_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/exposed_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/forfeiture_bedrock.json b/src/main/resources/assets/spectrum/models/block/forfeiture_bedrock.json new file mode 100644 index 0000000000..afd6405ee5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/forfeiture_bedrock.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/forfeiture_bedrock" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/forfeiture_default.json b/src/main/resources/assets/spectrum/models/block/forfeiture_default.json new file mode 100644 index 0000000000..81f818c050 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/forfeiture_default.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/forfeiture_default" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/fox.json b/src/main/resources/assets/spectrum/models/block/fox.json deleted file mode 100644 index b2bd200f22..0000000000 --- a/src/main/resources/assets/spectrum/models/block/fox.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/orange_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/fox_arctic.json b/src/main/resources/assets/spectrum/models/block/fox_arctic.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/fox_arctic.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/puller_node.json b/src/main/resources/assets/spectrum/models/block/gather_node.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/puller_node.json rename to src/main/resources/assets/spectrum/models/block/gather_node.json diff --git a/src/main/resources/assets/spectrum/models/block/ghast.json b/src/main/resources/assets/spectrum/models/block/ghast.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/ghast.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/glow_squid.json b/src/main/resources/assets/spectrum/models/block/glow_squid.json deleted file mode 100644 index 9d9b2aa950..0000000000 --- a/src/main/resources/assets/spectrum/models/block/glow_squid.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/goat.json b/src/main/resources/assets/spectrum/models/block/goat.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/goat.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/granite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/granite_shimmerstone_light.json new file mode 100644 index 0000000000..167764e8ba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/granite_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "minecraft:block/polished_granite", + "inner": "spectrum:block/shimmerstone_light", + "particle": "minecraft:block/polished_granite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/granite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/granite_sparklestone_light.json deleted file mode 100644 index 189a65ae5b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/granite_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "minecraft:block/polished_granite", - "inner": "spectrum:block/sparklestone_light", - "particle": "minecraft:block/polished_granite" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_button.json b/src/main/resources/assets/spectrum/models/block/gray_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_button.json rename to src/main/resources/assets/spectrum/models/block/gray_button.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/gray_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/gray_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/gray_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/gray_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/gray_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/gray_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/gray_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/gray_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/gray_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/gray_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/gray_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/gray_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/gray_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/gray_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/gray_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/gray_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_slab.json b/src/main/resources/assets/spectrum/models/block/gray_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/gray_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/gray_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/gray_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/gray_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/gray_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/gray_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/gray_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/gray_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/gray_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/gray_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/gray_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_button.json b/src/main/resources/assets/spectrum/models/block/green_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_button.json rename to src/main/resources/assets/spectrum/models/block/green_button.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/green_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/green_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/green_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/green_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/green_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/green_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/green_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/green_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/green_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/green_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/green_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/green_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/green_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/green_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/green_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/green_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/green_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/green_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/green_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/green_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/green_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/green_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_slab.json b/src/main/resources/assets/spectrum/models/block/green_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/green_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/green_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/green_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/green_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/green_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/green_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/green_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/green_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/green_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/green_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/green_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/guardian.json b/src/main/resources/assets/spectrum/models/block/guardian.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/guardian.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/hoglin.json b/src/main/resources/assets/spectrum/models/block/hoglin.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/hoglin.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/horse.json b/src/main/resources/assets/spectrum/models/block/horse.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/horse.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/hummingstone.json b/src/main/resources/assets/spectrum/models/block/hummingstone.json new file mode 100644 index 0000000000..eab907df64 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/hummingstone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/hummingstone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/hummingstone_glass.json b/src/main/resources/assets/spectrum/models/block/hummingstone_glass.json new file mode 100644 index 0000000000..b6e796b9ec --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/hummingstone_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/hummingstone_glass" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/hummingstone_humming.json b/src/main/resources/assets/spectrum/models/block/hummingstone_humming.json new file mode 100644 index 0000000000..7ef253eacc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/hummingstone_humming.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/hummingstone_humming" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/husk.json b/src/main/resources/assets/spectrum/models/block/husk.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/husk.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/illusioner.json b/src/main/resources/assets/spectrum/models/block/illusioner.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/illusioner.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/incandescent_amalgam.json b/src/main/resources/assets/spectrum/models/block/incandescent_amalgam.json index 31aa13781b..86564d0287 100644 --- a/src/main/resources/assets/spectrum/models/block/incandescent_amalgam.json +++ b/src/main/resources/assets/spectrum/models/block/incandescent_amalgam.json @@ -7,23 +7,89 @@ "ambientocclusion": false, "elements": [ { - "from": [0.8, -3, 8], - "to": [15.2, 13, 8], + "from": [ + 0.8, + -3, + 8 + ], + "to": [ + 15.2, + 13, + 8 + ], "shade": false, - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8], "rescale": true}, + "rotation": { + "angle": 45, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ], + "rescale": true + }, "faces": { - "north": {"uv": [0, 0, 16, 16], "texture": "#cross"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#cross"} + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } } }, { - "from": [8, -3, 0.8], - "to": [8, 13, 15.2], + "from": [ + 8, + -3, + 0.8 + ], + "to": [ + 8, + 13, + 15.2 + ], "shade": false, - "rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8], "rescale": true}, + "rotation": { + "angle": 45, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ], + "rescale": true + }, "faces": { - "east": {"uv": [0, 0, 16, 16], "texture": "#cross"}, - "west": {"uv": [0, 0, 16, 16], "texture": "#cross"} + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } } } ] diff --git a/src/main/resources/assets/spectrum/models/block/infested_blackslag.json b/src/main/resources/assets/spectrum/models/block/infested_blackslag.json new file mode 100644 index 0000000000..e458d973b0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/infested_blackslag.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/blackslag_top", + "side": "spectrum:block/blackslag_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/interaction_node.json b/src/main/resources/assets/spectrum/models/block/interaction_node.json deleted file mode 100644 index 047941382f..0000000000 --- a/src/main/resources/assets/spectrum/models/block/interaction_node.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "minecraft:block/dirt" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/iron_golem.json b/src/main/resources/assets/spectrum/models/block/iron_golem.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/iron_golem.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/item_bowl_basalt.json b/src/main/resources/assets/spectrum/models/block/item_bowl_basalt.json index b605537855..0ace946599 100644 --- a/src/main/resources/assets/spectrum/models/block/item_bowl_basalt.json +++ b/src/main/resources/assets/spectrum/models/block/item_bowl_basalt.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_item_bowl", + "parent": "spectrum:templates/item_bowl", "textures": { "0": "spectrum:block/item_bowl_basalt", "1": "spectrum:block/polished_basalt_pillar_side", diff --git a/src/main/resources/assets/spectrum/models/block/item_bowl_calcite.json b/src/main/resources/assets/spectrum/models/block/item_bowl_calcite.json index 7f6c66386a..afd0163099 100644 --- a/src/main/resources/assets/spectrum/models/block/item_bowl_calcite.json +++ b/src/main/resources/assets/spectrum/models/block/item_bowl_calcite.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_item_bowl", + "parent": "spectrum:templates/item_bowl", "textures": { "0": "spectrum:block/item_bowl_calcite", "1": "spectrum:block/polished_calcite_pillar_side", diff --git a/src/main/resources/assets/spectrum/models/block/item_roundel.json b/src/main/resources/assets/spectrum/models/block/item_roundel.json index 10e50a55e4..49ea008e6e 100644 --- a/src/main/resources/assets/spectrum/models/block/item_roundel.json +++ b/src/main/resources/assets/spectrum/models/block/item_roundel.json @@ -1,9 +1,9 @@ { - "parent": "spectrum:block/template_roundel", - "textures": { - "base": "spectrum:block/polished_basalt_12", - "side": "spectrum:block/polished_calcite_pillar_side", - "top": "spectrum:block/polished_calcite_pillar_top", - "particle": "spectrum:block/polished_basalt" - } + "parent": "spectrum:templates/roundel", + "textures": { + "base": "spectrum:block/polished_basalt_12", + "side": "spectrum:block/polished_calcite_pillar_side", + "top": "spectrum:block/polished_calcite_pillar_top", + "particle": "spectrum:block/polished_basalt" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxcap_cap.json b/src/main/resources/assets/spectrum/models/block/ivory_noxcap_cap.json new file mode 100644 index 0000000000..a06933befe --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ivory_noxcap_cap_top", + "side": "spectrum:block/ivory_noxcap_cap" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxcap_gills.json b/src/main/resources/assets/spectrum/models/block/ivory_noxcap_gills.json new file mode 100644 index 0000000000..75776305bc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxcap_gills.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ivory_noxcap_gills_top", + "side": "spectrum:block/ivory_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/ivory_noxcap_stem.json new file mode 100644 index 0000000000..93de0eed91 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ivory_noxcap_stem_top", + "side": "spectrum:block/ivory_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxshroom.json b/src/main/resources/assets/spectrum/models/block/ivory_noxshroom.json new file mode 100644 index 0000000000..ed2efa5ab2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/ivory_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_amphora.json new file mode 100644 index 0000000000..bf6055ef1d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_amphora.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_amphora_bottom", + "side": "spectrum:block/ivory_noxwood_amphora", + "top": "spectrum:block/ivory_noxwood_amphora_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_amphora_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_amphora_open.json new file mode 100644 index 0000000000..c0108ff6b0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_amphora_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_amphora_bottom", + "side": "spectrum:block/ivory_noxwood_amphora", + "top": "spectrum:block/ivory_noxwood_amphora_top_open" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_beam.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_beam.json new file mode 100644 index 0000000000..9fe8ea5b4d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_beam.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/ivory_noxwood_beam_top", + "side": "spectrum:block/ivory_noxwood_beam" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button.json new file mode 100644 index 0000000000..3862c67093 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button_inventory.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button_inventory.json new file mode 100644 index 0000000000..e0442b8434 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button_pressed.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button_pressed.json new file mode 100644 index 0000000000..9a861c1378 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_left.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_left.json new file mode 100644 index 0000000000..391d81c917 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_left_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_left_open.json new file mode 100644 index 0000000000..2a83a1feda --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_right.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_right.json new file mode 100644 index 0000000000..17bbff745d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_right_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_right_open.json new file mode 100644 index 0000000000..40c1e7375c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_left.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_left.json new file mode 100644 index 0000000000..bf35024b3d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_left_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_left_open.json new file mode 100644 index 0000000000..ea7547cebd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_right.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_right.json new file mode 100644 index 0000000000..4f1444d857 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_right_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_right_open.json new file mode 100644 index 0000000000..dc8fcb9d6c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_door_bottom", + "top": "spectrum:block/ivory_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate.json new file mode 100644 index 0000000000..0651cb2a2b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_open.json new file mode 100644 index 0000000000..2d4d2d6356 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_wall.json new file mode 100644 index 0000000000..0e3037def6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_wall_open.json new file mode 100644 index 0000000000..0a1e8712ae --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_inventory.json new file mode 100644 index 0000000000..85ad07e312 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_post.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_post.json new file mode 100644 index 0000000000..ec051bdfea --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_side.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_side.json new file mode 100644 index 0000000000..30ca6016e2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp.json new file mode 100644 index 0000000000..a35c311c2e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_alt.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_alt.json new file mode 100644 index 0000000000..1ae8c76940 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_alt", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_diagonal.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_diagonal.json new file mode 100644 index 0000000000..4e3f7fc840 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_diagonal_alt.json new file mode 100644 index 0000000000..59eb55ca44 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal_alt", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging.json new file mode 100644 index 0000000000..ff6e1aea53 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_alt.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_alt.json new file mode 100644 index 0000000000..88e544846f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_alt", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_diagonal.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_diagonal.json new file mode 100644 index 0000000000..8493d1d62b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_diagonal_alt.json new file mode 100644 index 0000000000..952ad4a7f1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lamp_hanging_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal_alt", + "textures": { + "all": "spectrum:block/ivory_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lantern_off.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lantern_off.json new file mode 100644 index 0000000000..bf231781b6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lantern_off.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/ivory_noxwood_lantern_off" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lantern_on.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lantern_on.json new file mode 100644 index 0000000000..8b20ab10e8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_lantern_on.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/ivory_noxwood_lantern_on" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_light.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_light.json new file mode 100644 index 0000000000..d006bc217a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/multilayer_light", + "textures": { + "top": "spectrum:block/ivory_noxwood_light_top", + "side": "spectrum:block/ivory_noxwood_light", + "inside": "spectrum:block/ivory_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_planks.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_planks.json new file mode 100644 index 0000000000..8b8d8b5801 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_pressure_plate.json new file mode 100644 index 0000000000..aed618b00d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_pressure_plate_down.json new file mode 100644 index 0000000000..ba805e596c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_slab.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_slab.json new file mode 100644 index 0000000000..c90bf10329 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_planks", + "top": "spectrum:block/ivory_noxwood_planks", + "side": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_slab_top.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_slab_top.json new file mode 100644 index 0000000000..6c4f7b225d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_planks", + "top": "spectrum:block/ivory_noxwood_planks", + "side": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs.json new file mode 100644 index 0000000000..3929180e55 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_planks", + "top": "spectrum:block/ivory_noxwood_planks", + "side": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs_inner.json new file mode 100644 index 0000000000..3f1995c19e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_planks", + "top": "spectrum:block/ivory_noxwood_planks", + "side": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs_outer.json new file mode 100644 index 0000000000..c38e3d5b6a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/ivory_noxwood_planks", + "top": "spectrum:block/ivory_noxwood_planks", + "side": "spectrum:block/ivory_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_bottom.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_bottom.json new file mode 100644 index 0000000000..d17781727a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "spectrum:block/ivory_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_open.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_open.json new file mode 100644 index 0000000000..7b156da1b5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "spectrum:block/ivory_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_top.json b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_top.json new file mode 100644 index 0000000000..7053349b26 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/ivory_noxwood_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "spectrum:block/ivory_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_button.json b/src/main/resources/assets/spectrum/models/block/light_blue_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_button.json rename to src/main/resources/assets/spectrum/models/block/light_blue_button.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/light_blue_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/light_blue_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/light_blue_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/light_blue_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/light_blue_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/light_blue_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/light_blue_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/light_blue_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/light_blue_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/light_blue_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_slab.json b/src/main/resources/assets/spectrum/models/block/light_blue_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/light_blue_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/light_blue_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/light_blue_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/light_blue_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/light_blue_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/light_blue_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/light_blue_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/light_blue_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/light_blue_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_blue_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/light_blue_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_button.json b/src/main/resources/assets/spectrum/models/block/light_gray_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_button.json rename to src/main/resources/assets/spectrum/models/block/light_gray_button.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/light_gray_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/light_gray_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/light_gray_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/light_gray_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/light_gray_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/light_gray_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/light_gray_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/light_gray_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/light_gray_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/light_gray_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_slab.json b/src/main/resources/assets/spectrum/models/block/light_gray_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/light_gray_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/light_gray_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/light_gray_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/light_gray_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/light_gray_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/light_gray_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/light_gray_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/light_gray_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/light_gray_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/light_gray_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/light_gray_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_button.json b/src/main/resources/assets/spectrum/models/block/lime_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_button.json rename to src/main/resources/assets/spectrum/models/block/lime_button.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/lime_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/lime_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/lime_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/lime_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/lime_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/lime_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/lime_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/lime_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/lime_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/lime_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/lime_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/lime_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/lime_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/lime_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/lime_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/lime_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_slab.json b/src/main/resources/assets/spectrum/models/block/lime_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/lime_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/lime_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/lime_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/lime_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/lime_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/lime_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/lime_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/lime_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/lime_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/lime_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/lime_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/llama.json b/src/main/resources/assets/spectrum/models/block/llama.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/llama.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_button.json b/src/main/resources/assets/spectrum/models/block/magenta_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_button.json rename to src/main/resources/assets/spectrum/models/block/magenta_button.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/magenta_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/magenta_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/magenta_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/magenta_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/magenta_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/magenta_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/magenta_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/magenta_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/magenta_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/magenta_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_slab.json b/src/main/resources/assets/spectrum/models/block/magenta_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/magenta_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/magenta_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/magenta_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/magenta_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/magenta_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/magenta_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/magenta_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/magenta_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/magenta_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/magenta_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/magenta_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/magma_cube.json b/src/main/resources/assets/spectrum/models/block/magma_cube.json deleted file mode 100644 index 96a7a38a8b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/magma_cube.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/red_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/malachite_chiseled_basalt.json b/src/main/resources/assets/spectrum/models/block/malachite_chiseled_basalt.json new file mode 100644 index 0000000000..5d13b8f57e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/malachite_chiseled_basalt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/malachite_chiseled_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/malachite_chiseled_calcite.json b/src/main/resources/assets/spectrum/models/block/malachite_chiseled_calcite.json new file mode 100644 index 0000000000..25271c6146 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/malachite_chiseled_calcite.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/malachite_chiseled_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/bat.json b/src/main/resources/assets/spectrum/models/block/mob_head.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/bat.json rename to src/main/resources/assets/spectrum/models/block/mob_head.json diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_basalt_lamp.json b/src/main/resources/assets/spectrum/models/block/moonstone_basalt_lamp.json index 834adc454f..54693ba45d 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_basalt_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/moonstone_basalt_lamp", - "vertical": "spectrum:block/polished_basalt", - "side_outer": "spectrum:block/moonstone_basalt_lamp", - "inner": "spectrum:block/moonstone_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_basalt", + "side": "spectrum:block/moonstone_basalt_lamp", + "inside": "spectrum:block/moonstone_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_calcite_lamp.json b/src/main/resources/assets/spectrum/models/block/moonstone_calcite_lamp.json index a8c58a4e29..dfaac30e23 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_calcite_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/moonstone_calcite_lamp", - "vertical": "spectrum:block/polished_calcite", - "side_outer": "spectrum:block/moonstone_calcite_lamp", - "inner": "spectrum:block/moonstone_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_calcite", + "side": "spectrum:block/moonstone_calcite_lamp", + "inside": "spectrum:block/moonstone_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_chime.json b/src/main/resources/assets/spectrum/models/block/moonstone_chime.json index a717e5eda2..fb7aebfa56 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_chime.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_chime.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_chime", + "parent": "spectrum:templates/chime", "textures": { "gemstone": "spectrum:block/moonstone_glass" } diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_decostone_bottom.json b/src/main/resources/assets/spectrum/models/block/moonstone_decostone_bottom.json index 4c029b6b48..aa9dcfea16 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_decostone_bottom.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_decostone_bottom.json @@ -1,135 +1,604 @@ { - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "0": "spectrum:block/polished_basalt", - "1": "spectrum:block/polished_calcite", - "2": "spectrum:block/moonstone_decostone", - "3": "spectrum:block/polished_basalt_pillar_side", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [5, 3, 6], - "to": [9, 16, 10], - "faces": { - "north": {"uv": [0, 0, 4, 13], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 16], "texture": "#2"} - } - }, - { - "from": [3, 3, 8], - "to": [7, 16, 12], - "faces": { - "north": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 13], "texture": "#2"} - } - }, - { - "from": [7, 3, 7], - "to": [11, 16, 11], - "faces": { - "north": {"uv": [0, 0, 4, 13], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 16], "texture": "#2"} - } - }, - { - "from": [4, 3, 9], - "to": [8, 16, 13], - "faces": { - "north": {"uv": [0, 0, 4, 13], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 13], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 13], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 13], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [3, 3, 3], - "to": [6, 9, 7], - "faces": { - "north": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [10, 3, 4], - "to": [12, 16, 8], - "faces": { - "north": {"uv": [0, 0, 2, 13], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 15], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 15], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 15], "texture": "#2"} - } - }, - { - "from": [6, 3, 3], - "to": [10, 16, 7], - "faces": { - "north": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 16], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 13], "texture": "#2"} - } - }, - { - "from": [9, 3, 8], - "to": [13, 13, 12], - "faces": { - "north": {"uv": [0, 0, 4, 10], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 10], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 10], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 10], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "name": "upper", - "from": [2, 2, 2], - "to": [14, 3, 14], - "faces": { - "north": {"uv": [3, 15, 15, 16], "texture": "#1"}, - "east": {"uv": [0, 15, 12, 16], "texture": "#1"}, - "south": {"uv": [4, 15, 16, 16], "texture": "#1"}, - "west": {"uv": [1, 15, 13, 16], "texture": "#1"}, - "up": {"uv": [3, 3, 15, 15], "texture": "#1"} - } - }, - { - "name": "lower", - "from": [1, 0, 1], - "to": [15, 2, 15], - "faces": { - "north": {"uv": [0, 2, 14, 4], "rotation": 180, "texture": "#3"}, - "east": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "south": {"uv": [1, 15, 15, 16], "texture": "#3"}, - "west": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "up": {"uv": [1, 1, 15, 15], "texture": "#0"}, - "down": {"uv": [1, 1, 15, 15], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "crystal", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7] - }, - { - "name": "base", - "origin": [0, 0, 0], - "color": 0, - "children": [8, 9] - } - ] + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "spectrum:block/polished_basalt", + "1": "spectrum:block/polished_calcite", + "2": "spectrum:block/moonstone_decostone", + "3": "spectrum:block/polished_basalt_pillar_side", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 5, + 3, + 6 + ], + "to": [ + 9, + 16, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 3, + 8 + ], + "to": [ + 7, + 16, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 3, + 7 + ], + "to": [ + 11, + 16, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 3, + 9 + ], + "to": [ + 8, + 16, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 3, + 3 + ], + "to": [ + 6, + 9, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 10, + 3, + 4 + ], + "to": [ + 12, + 16, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 13 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 15 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 15 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 15 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 3, + 3 + ], + "to": [ + 10, + 16, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 16 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 13 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 3, + 8 + ], + "to": [ + 13, + 13, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 10 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 10 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 10 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 10 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "name": "upper", + "from": [ + 2, + 2, + 2 + ], + "to": [ + 14, + 3, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 15, + 15, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 15, + 12, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 4, + 15, + 16, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 1, + 15, + 13, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 3, + 15, + 15 + ], + "texture": "#1" + } + } + }, + { + "name": "lower", + "from": [ + 1, + 0, + 1 + ], + "to": [ + 15, + 2, + 15 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 14, + 4 + ], + "rotation": 180, + "texture": "#3" + }, + "east": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "south": { + "uv": [ + 1, + 15, + 15, + 16 + ], + "texture": "#3" + }, + "west": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "up": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + } + } + } + ], + "groups": [ + { + "name": "crystal", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "name": "base", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick0.json b/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick0.json index d0e1aad472..e183f9bc7f 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick0.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick0.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick0", - "textures": { - "0": "spectrum:block/moonstone_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/moonstone_glass" - } + "parent": "spectrum:templates/sugar_stick0", + "textures": { + "0": "spectrum:block/moonstone_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/moonstone_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick1.json b/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick1.json index 91709f970a..2b4a9072f7 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick1.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick1.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick1", - "textures": { - "0": "spectrum:block/moonstone_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/moonstone_glass" - } + "parent": "spectrum:templates/sugar_stick1", + "textures": { + "0": "spectrum:block/moonstone_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/moonstone_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick2.json b/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick2.json index 904ac7c233..acb9865034 100644 --- a/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/moonstone_sugar_stick2.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick2", - "textures": { - "0": "spectrum:block/moonstone_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/moonstone_glass" - } + "parent": "spectrum:templates/sugar_stick2", + "textures": { + "0": "spectrum:block/moonstone_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/moonstone_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/mooshroom_brown.json b/src/main/resources/assets/spectrum/models/block/mooshroom_brown.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/mooshroom_brown.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/mooshroom_red.json b/src/main/resources/assets/spectrum/models/block/mooshroom_red.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/mooshroom_red.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/mule.json b/src/main/resources/assets/spectrum/models/block/mule.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/mule.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ocelot.json b/src/main/resources/assets/spectrum/models/block/ocelot.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/ocelot.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/onyx_basalt_lamp.json b/src/main/resources/assets/spectrum/models/block/onyx_basalt_lamp.json index b531f77b04..c56da17bf9 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_basalt_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/onyx_basalt_lamp", - "vertical": "spectrum:block/polished_basalt", - "side_outer": "spectrum:block/onyx_basalt_lamp", - "inner": "spectrum:block/onyx_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_basalt", + "side": "spectrum:block/onyx_basalt_lamp", + "inside": "spectrum:block/onyx_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/onyx_calcite_lamp.json b/src/main/resources/assets/spectrum/models/block/onyx_calcite_lamp.json index aa61247a41..4a68cbaf47 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_calcite_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/onyx_calcite_lamp", - "vertical": "spectrum:block/polished_calcite", - "side_outer": "spectrum:block/onyx_calcite_lamp", - "inner": "spectrum:block/onyx_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_calcite", + "side": "spectrum:block/onyx_calcite_lamp", + "inside": "spectrum:block/onyx_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/onyx_chime.json b/src/main/resources/assets/spectrum/models/block/onyx_chime.json index 6bc88fc467..18f29a9a38 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_chime.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_chime.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_chime", + "parent": "spectrum:templates/chime", "textures": { "gemstone": "spectrum:block/onyx_glass" } diff --git a/src/main/resources/assets/spectrum/models/block/onyx_decostone_bottom.json b/src/main/resources/assets/spectrum/models/block/onyx_decostone_bottom.json index 4225c9de57..e9c96205e9 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_decostone_bottom.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_decostone_bottom.json @@ -1,173 +1,829 @@ { - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "0": "spectrum:block/polished_basalt", - "1": "spectrum:block/polished_calcite", - "2": "spectrum:block/onyx_decostone", - "3": "spectrum:block/polished_basalt_pillar_side", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [3, 3, 3], - "to": [7, 10, 7], - "faces": { - "north": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [5, 10, 5], - "to": [9, 16, 9], - "faces": { - "north": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "down": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [5, 8, 9], - "to": [8, 16, 12], - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 12], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 12], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 12], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#2"} - } - }, - { - "from": [8, 10, 7], - "to": [12, 16, 11], - "faces": { - "north": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "down": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [9, 9, 4], - "to": [12, 16, 7], - "faces": { - "north": {"uv": [0, 0, 3, 7], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 10], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 10], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 10], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 3], "texture": "#2"} - } - }, - { - "from": [9, 3, 3], - "to": [13, 9, 7], - "faces": { - "north": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [8, 3, 7], - "to": [13, 11, 12], - "faces": { - "north": {"uv": [0, 0, 4, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 8], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [6, 3, 9], - "to": [10, 9, 13], - "faces": { - "north": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [3, 3, 9], - "to": [6, 6, 13], - "faces": { - "north": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 3], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 3], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 3], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 4], "texture": "#2"}, - "down": {"uv": [0, 0, 3, 4], "texture": "#2"} - } - }, - { - "from": [4, 3, 7], - "to": [8, 12, 11], - "faces": { - "north": {"uv": [0, 0, 4, 9], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 9], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 9], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 9], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "from": [7, 3, 4], - "to": [9, 14, 5], - "faces": { - "north": {"uv": [0, 0, 4, 11], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 11], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 11], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 11], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 4], "texture": "#2"} - } - }, - { - "name": "upper", - "from": [2, 2, 2], - "to": [14, 3, 14], - "faces": { - "north": {"uv": [3, 15, 15, 16], "texture": "#1"}, - "east": {"uv": [0, 15, 12, 16], "texture": "#1"}, - "south": {"uv": [4, 15, 16, 16], "texture": "#1"}, - "west": {"uv": [1, 15, 13, 16], "texture": "#1"}, - "up": {"uv": [3, 3, 15, 15], "texture": "#1"} - } - }, - { - "name": "lower", - "from": [1, 0, 1], - "to": [15, 2, 15], - "faces": { - "north": {"uv": [0, 2, 14, 4], "rotation": 180, "texture": "#3"}, - "east": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "south": {"uv": [1, 15, 15, 16], "texture": "#3"}, - "west": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "up": {"uv": [1, 1, 15, 15], "texture": "#0"}, - "down": {"uv": [1, 1, 15, 15], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "crystal", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - }, - { - "name": "base", - "origin": [0, 0, 0], - "color": 0, - "children": [11, 12] - } - ] + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "spectrum:block/polished_basalt", + "1": "spectrum:block/polished_calcite", + "2": "spectrum:block/onyx_decostone", + "3": "spectrum:block/polished_basalt_pillar_side", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 3, + 3, + 3 + ], + "to": [ + 7, + 10, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 10, + 5 + ], + "to": [ + 9, + 16, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 8, + 9 + ], + "to": [ + 8, + 16, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 12 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 12 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 12 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 10, + 7 + ], + "to": [ + 12, + 16, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 9, + 4 + ], + "to": [ + 12, + 16, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 7 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 10 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 10 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 10 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 3, + 3 + ], + "to": [ + 13, + 9, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 8, + 3, + 7 + ], + "to": [ + 13, + 11, + 12 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 8 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 8 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 8 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 3, + 9 + ], + "to": [ + 10, + 9, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 6 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 3, + 3, + 9 + ], + "to": [ + 6, + 6, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 3 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 3 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 3, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 3, + 7 + ], + "to": [ + 8, + 12, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 9 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 9 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 9 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 9 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 3, + 4 + ], + "to": [ + 9, + 14, + 5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 11 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 11 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 11 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 11 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + } + } + }, + { + "name": "upper", + "from": [ + 2, + 2, + 2 + ], + "to": [ + 14, + 3, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 15, + 15, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 15, + 12, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 4, + 15, + 16, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 1, + 15, + 13, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 3, + 15, + 15 + ], + "texture": "#1" + } + } + }, + { + "name": "lower", + "from": [ + 1, + 0, + 1 + ], + "to": [ + 15, + 2, + 15 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 14, + 4 + ], + "rotation": 180, + "texture": "#3" + }, + "east": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "south": { + "uv": [ + 1, + 15, + 15, + 16 + ], + "texture": "#3" + }, + "west": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "up": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + } + } + } + ], + "groups": [ + { + "name": "crystal", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ] + }, + { + "name": "base", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 11, + 12 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick0.json b/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick0.json index d0bcae2bf6..6713aaa3d8 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick0.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick0.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick0", - "textures": { - "0": "spectrum:block/onyx_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/onyx_glass" - } + "parent": "spectrum:templates/sugar_stick0", + "textures": { + "0": "spectrum:block/onyx_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/onyx_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick1.json b/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick1.json index c756cde272..0e0173cd9b 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick1.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick1.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick1", - "textures": { - "0": "spectrum:block/onyx_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/onyx_glass" - } + "parent": "spectrum:templates/sugar_stick1", + "textures": { + "0": "spectrum:block/onyx_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/onyx_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick2.json b/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick2.json index 39ca09b172..e72140fd73 100644 --- a/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/onyx_sugar_stick2.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick2", - "textures": { - "0": "spectrum:block/onyx_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/onyx_glass" - } + "parent": "spectrum:templates/sugar_stick2", + "textures": { + "0": "spectrum:block/onyx_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/onyx_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_button.json b/src/main/resources/assets/spectrum/models/block/orange_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_button.json rename to src/main/resources/assets/spectrum/models/block/orange_button.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/orange_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/orange_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/orange_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/orange_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/orange_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/orange_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/orange_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/orange_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/orange_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/orange_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/orange_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/orange_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/orange_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/orange_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/orange_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/orange_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_slab.json b/src/main/resources/assets/spectrum/models/block/orange_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/orange_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/orange_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/orange_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/orange_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/orange_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/orange_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/orange_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/orange_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/orange_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/orange_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/orange_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/overgrown_blackslag.json b/src/main/resources/assets/spectrum/models/block/overgrown_blackslag.json new file mode 100644 index 0000000000..b78240eff6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/overgrown_blackslag.json @@ -0,0 +1,145 @@ +{ + "parent": "minecraft:block/block", + "textures": { + "particle": "spectrum:block/blackslag_top", + "bottom": "spectrum:block/blackslag_top", + "top": "spectrum:block/overgrown_blackslag_top", + "side": "spectrum:block/overgrown_blackslag_side", + "overlay": "spectrum:block/overgrown_blackslag_side_overlay" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#bottom", + "cullface": "down" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#top", + "cullface": "up", + "tintindex": 0 + }, + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side", + "cullface": "north" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side", + "cullface": "west" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#side", + "cullface": "east" + } + } + }, + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#overlay", + "tintindex": 0, + "cullface": "north" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#overlay", + "tintindex": 0, + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#overlay", + "tintindex": 0, + "cullface": "west" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#overlay", + "tintindex": 0, + "cullface": "east" + } + } + } + ] +} diff --git a/src/main/resources/assets/spectrum/models/block/overgrown_blackslag_snow.json b/src/main/resources/assets/spectrum/models/block/overgrown_blackslag_snow.json new file mode 100644 index 0000000000..f597de5bdf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/overgrown_blackslag_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "particle": "spectrum:block/blackslag_top", + "bottom": "spectrum:block/blackslag_top", + "side": "spectrum:block/overgrown_blackslag_side_snow", + "top": "spectrum:block/overgrown_blackslag_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/paletur_fragment_block.json b/src/main/resources/assets/spectrum/models/block/paletur_fragment_block.json deleted file mode 100644 index 2e1559ab93..0000000000 --- a/src/main/resources/assets/spectrum/models/block/paletur_fragment_block.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "particle": "spectrum:block/paletur_fragment_block_side", - "north": "spectrum:block/paletur_fragment_block_side", - "east": "spectrum:block/paletur_fragment_block_side", - "south": "spectrum:block/paletur_fragment_block_side", - "west": "spectrum:block/paletur_fragment_block_side", - "up": "spectrum:block/paletur_fragment_block_vertical", - "down": "spectrum:block/paletur_fragment_block_vertical" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/paletur_ore.json b/src/main/resources/assets/spectrum/models/block/paletur_ore.json deleted file mode 100644 index ebc5055ef1..0000000000 --- a/src/main/resources/assets/spectrum/models/block/paletur_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/paletur_ore" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/paltaeria_fragment_block.json b/src/main/resources/assets/spectrum/models/block/paltaeria_fragment_block.json new file mode 100644 index 0000000000..21bd65f21f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/paltaeria_fragment_block.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "particle": "spectrum:block/paltaeria_fragment_block_side", + "north": "spectrum:block/paltaeria_fragment_block_side", + "east": "spectrum:block/paltaeria_fragment_block_side", + "south": "spectrum:block/paltaeria_fragment_block_side", + "west": "spectrum:block/paltaeria_fragment_block_side", + "up": "spectrum:block/paltaeria_fragment_block_vertical", + "down": "spectrum:block/paltaeria_fragment_block_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/paltaeria_ore.json b/src/main/resources/assets/spectrum/models/block/paltaeria_ore.json new file mode 100644 index 0000000000..71f9d924b9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/paltaeria_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/paltaeria_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/panda.json b/src/main/resources/assets/spectrum/models/block/panda.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/panda.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/parrot_blue.json b/src/main/resources/assets/spectrum/models/block/parrot_blue.json deleted file mode 100644 index 9d9b2aa950..0000000000 --- a/src/main/resources/assets/spectrum/models/block/parrot_blue.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/parrot_cyan.json b/src/main/resources/assets/spectrum/models/block/parrot_cyan.json deleted file mode 100644 index 7e886485f3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/parrot_cyan.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/cyan_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/parrot_gray.json b/src/main/resources/assets/spectrum/models/block/parrot_gray.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/parrot_gray.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/parrot_green.json b/src/main/resources/assets/spectrum/models/block/parrot_green.json deleted file mode 100644 index 20452ed7b5..0000000000 --- a/src/main/resources/assets/spectrum/models/block/parrot_green.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/green_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/parrot_red.json b/src/main/resources/assets/spectrum/models/block/parrot_red.json deleted file mode 100644 index 96a7a38a8b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/parrot_red.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/red_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pedestal_basic_amethyst.json b/src/main/resources/assets/spectrum/models/block/pedestal_basic_amethyst.json index f1c0683de9..1513293863 100644 --- a/src/main/resources/assets/spectrum/models/block/pedestal_basic_amethyst.json +++ b/src/main/resources/assets/spectrum/models/block/pedestal_basic_amethyst.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_pedestal", + "parent": "spectrum:templates/pedestal", "textures": { "pedestal": "spectrum:block/pedestal_amethyst", "particle": "spectrum:block/pedestal_amethyst_breaking" diff --git a/src/main/resources/assets/spectrum/models/block/pedestal_basic_citrine.json b/src/main/resources/assets/spectrum/models/block/pedestal_basic_citrine.json index fbbff5c0d9..ce1757328b 100644 --- a/src/main/resources/assets/spectrum/models/block/pedestal_basic_citrine.json +++ b/src/main/resources/assets/spectrum/models/block/pedestal_basic_citrine.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_pedestal", + "parent": "spectrum:templates/pedestal", "textures": { "pedestal": "spectrum:block/pedestal_citrine", "particle": "spectrum:block/pedestal_citrine_breaking" diff --git a/src/main/resources/assets/spectrum/models/block/pedestal_basic_topaz.json b/src/main/resources/assets/spectrum/models/block/pedestal_basic_topaz.json index 229916e2cb..a644250b5f 100644 --- a/src/main/resources/assets/spectrum/models/block/pedestal_basic_topaz.json +++ b/src/main/resources/assets/spectrum/models/block/pedestal_basic_topaz.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_pedestal", + "parent": "spectrum:templates/pedestal", "textures": { "pedestal": "spectrum:block/pedestal_topaz", "particle": "spectrum:block/pedestal_topaz_breaking" diff --git a/src/main/resources/assets/spectrum/models/block/pedestal_cmy.json b/src/main/resources/assets/spectrum/models/block/pedestal_cmy.json index 46bd4a3993..285cc36196 100644 --- a/src/main/resources/assets/spectrum/models/block/pedestal_cmy.json +++ b/src/main/resources/assets/spectrum/models/block/pedestal_cmy.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_pedestal", + "parent": "spectrum:templates/pedestal", "textures": { "pedestal": "spectrum:block/pedestal_cmy", "particle": "spectrum:block/pedestal_cmy_breaking" diff --git a/src/main/resources/assets/spectrum/models/block/pedestal_moonstone.json b/src/main/resources/assets/spectrum/models/block/pedestal_moonstone.json index 0b3ee3b91e..f39adabc41 100644 --- a/src/main/resources/assets/spectrum/models/block/pedestal_moonstone.json +++ b/src/main/resources/assets/spectrum/models/block/pedestal_moonstone.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_pedestal", + "parent": "spectrum:templates/pedestal", "textures": { "pedestal": "spectrum:block/pedestal_moonstone", "particle": "spectrum:block/pedestal_moonstone_breaking" diff --git a/src/main/resources/assets/spectrum/models/block/pedestal_onyx.json b/src/main/resources/assets/spectrum/models/block/pedestal_onyx.json index 0eb448a9e0..613a8f7f0c 100644 --- a/src/main/resources/assets/spectrum/models/block/pedestal_onyx.json +++ b/src/main/resources/assets/spectrum/models/block/pedestal_onyx.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_pedestal", + "parent": "spectrum:templates/pedestal", "textures": { "pedestal": "spectrum:block/pedestal_onyx", "particle": "spectrum:block/pedestal_onyx_breaking" diff --git a/src/main/resources/assets/spectrum/models/block/phantom.json b/src/main/resources/assets/spectrum/models/block/phantom.json deleted file mode 100644 index 30b58c5a57..0000000000 --- a/src/main/resources/assets/spectrum/models/block/phantom.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/black_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pig.json b/src/main/resources/assets/spectrum/models/block/pig.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/pig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/piglin.json b/src/main/resources/assets/spectrum/models/block/piglin.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/piglin.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_button.json b/src/main/resources/assets/spectrum/models/block/pink_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_button.json rename to src/main/resources/assets/spectrum/models/block/pink_button.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/pink_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/pink_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/pink_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/pink_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/pink_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/pink_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/pink_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/pink_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/pink_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/pink_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/pink_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/pink_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/pink_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/pink_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/pink_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/pink_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_slab.json b/src/main/resources/assets/spectrum/models/block/pink_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/pink_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/pink_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/pink_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/pink_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/pink_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/pink_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/pink_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/pink_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/pink_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pink_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/pink_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/polar_bear.json b/src/main/resources/assets/spectrum/models/block/polar_bear.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/polar_bear.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_basalt_button.json b/src/main/resources/assets/spectrum/models/block/polished_basalt_button.json new file mode 100644 index 0000000000..4b0635ea81 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_basalt_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/polished_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_basalt_button_inventory.json b/src/main/resources/assets/spectrum/models/block/polished_basalt_button_inventory.json new file mode 100644 index 0000000000..41a36e60af --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_basalt_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/polished_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_basalt_button_pressed.json b/src/main/resources/assets/spectrum/models/block/polished_basalt_button_pressed.json new file mode 100644 index 0000000000..d18da9894d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_basalt_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/polished_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_basalt_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/polished_basalt_pressure_plate.json new file mode 100644 index 0000000000..f2157f8ceb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_basalt_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/polished_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_basalt_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/polished_basalt_pressure_plate_down.json new file mode 100644 index 0000000000..85bfa26f18 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_basalt_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/polished_basalt" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag.json new file mode 100644 index 0000000000..c257dad2da --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_button.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_button.json new file mode 100644 index 0000000000..fdf49ab493 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_button_inventory.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_button_inventory.json new file mode 100644 index 0000000000..743a8423e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_button_pressed.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_button_pressed.json new file mode 100644 index 0000000000..0b2dc6859d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_pillar.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_pillar.json new file mode 100644 index 0000000000..083f753401 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/chiseled_polished_blackslag", + "side": "spectrum:block/polished_blackslag_pillar" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_pressure_plate.json new file mode 100644 index 0000000000..d79bde5bdd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_pressure_plate_down.json new file mode 100644 index 0000000000..5e7b5d2955 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_slab.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_slab.json new file mode 100644 index 0000000000..13a79453ab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/polished_blackslag", + "top": "spectrum:block/polished_blackslag", + "side": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_slab_top.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_slab_top.json new file mode 100644 index 0000000000..d4634f1251 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/polished_blackslag", + "top": "spectrum:block/polished_blackslag", + "side": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs.json new file mode 100644 index 0000000000..0f686006ea --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/polished_blackslag", + "top": "spectrum:block/polished_blackslag", + "side": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs_inner.json new file mode 100644 index 0000000000..7f631bc5c0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/polished_blackslag", + "top": "spectrum:block/polished_blackslag", + "side": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs_outer.json new file mode 100644 index 0000000000..1005821374 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/polished_blackslag", + "top": "spectrum:block/polished_blackslag", + "side": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_inventory.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_inventory.json new file mode 100644 index 0000000000..bd4a498974 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_post.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_post.json new file mode 100644 index 0000000000..d21471ea8f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_side.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_side.json new file mode 100644 index 0000000000..924e55b40a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_side_tall.json b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_side_tall.json new file mode 100644 index 0000000000..bdf3edd504 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_blackslag_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "spectrum:block/polished_blackslag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_calcite_button.json b/src/main/resources/assets/spectrum/models/block/polished_calcite_button.json new file mode 100644 index 0000000000..599339f1b1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_calcite_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/polished_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_calcite_button_inventory.json b/src/main/resources/assets/spectrum/models/block/polished_calcite_button_inventory.json new file mode 100644 index 0000000000..aae74ab5a2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_calcite_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/polished_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_calcite_button_pressed.json b/src/main/resources/assets/spectrum/models/block/polished_calcite_button_pressed.json new file mode 100644 index 0000000000..4114b94828 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_calcite_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/polished_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_calcite_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/polished_calcite_pressure_plate.json new file mode 100644 index 0000000000..9f3313df09 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_calcite_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/polished_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_calcite_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/polished_calcite_pressure_plate_down.json new file mode 100644 index 0000000000..6707fe4254 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_calcite_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/polished_calcite" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_shale_clay.json b/src/main/resources/assets/spectrum/models/block/polished_shale_clay.json new file mode 100644 index 0000000000..a124a07aba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_shale_clay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_slab.json new file mode 100644 index 0000000000..8557a1a25d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/polished_shale_clay", + "top": "spectrum:block/polished_shale_clay", + "side": "spectrum:block/polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_shale_clay_slab_top.json b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_slab_top.json new file mode 100644 index 0000000000..075e4b13f6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/polished_shale_clay", + "top": "spectrum:block/polished_shale_clay", + "side": "spectrum:block/polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs.json new file mode 100644 index 0000000000..17b8311702 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/polished_shale_clay", + "top": "spectrum:block/polished_shale_clay", + "side": "spectrum:block/polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs_inner.json new file mode 100644 index 0000000000..969022c77a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/polished_shale_clay", + "top": "spectrum:block/polished_shale_clay", + "side": "spectrum:block/polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs_outer.json new file mode 100644 index 0000000000..1d2460be89 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/polished_shale_clay_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/polished_shale_clay", + "top": "spectrum:block/polished_shale_clay", + "side": "spectrum:block/polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_black_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_black_sapling.json new file mode 100644 index 0000000000..e02ec8a782 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_black_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/black_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_blood_orchid.json b/src/main/resources/assets/spectrum/models/block/potted_blood_orchid.json new file mode 100644 index 0000000000..50cdd7a401 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_blood_orchid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/blood_orchid5" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_blue_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_blue_sapling.json new file mode 100644 index 0000000000..6f092e2331 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_blue_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/blue_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_brown_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_brown_sapling.json new file mode 100644 index 0000000000..4c6691341c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_brown_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/brown_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_cyan_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_cyan_sapling.json new file mode 100644 index 0000000000..3bf306cc18 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_cyan_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/cyan_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_gray_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_gray_sapling.json new file mode 100644 index 0000000000..44ec23d863 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_gray_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/gray_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_green_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_green_sapling.json new file mode 100644 index 0000000000..2577260264 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_green_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/green_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_light_blue_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_light_blue_sapling.json new file mode 100644 index 0000000000..574f5321de --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_light_blue_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/light_blue_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_light_gray_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_light_gray_sapling.json new file mode 100644 index 0000000000..935d800b45 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_light_gray_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/light_gray_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_lime_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_lime_sapling.json new file mode 100644 index 0000000000..3358f844ff --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_lime_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/lime_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_magenta_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_magenta_sapling.json new file mode 100644 index 0000000000..26b417230a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_magenta_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/magenta_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_orange_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_orange_sapling.json new file mode 100644 index 0000000000..cb468d21b9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_orange_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/orange_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_pink_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_pink_sapling.json new file mode 100644 index 0000000000..e57971f381 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_pink_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/purple_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_purple_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_purple_sapling.json new file mode 100644 index 0000000000..e57971f381 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_purple_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/purple_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_red_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_red_sapling.json new file mode 100644 index 0000000000..04a110fc78 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_red_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/red_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_white_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_white_sapling.json new file mode 100644 index 0000000000..53f08c1bce --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_white_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/white_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/potted_yellow_sapling.json b/src/main/resources/assets/spectrum/models/block/potted_yellow_sapling.json new file mode 100644 index 0000000000..165b32de6a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/potted_yellow_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/flower_pot_cross", + "textures": { + "plant": "spectrum:block/yellow_sapling" + } + } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_blue.json b/src/main/resources/assets/spectrum/models/block/present_blue.json index 757c8fcfe2..06ecd23b33 100644 --- a/src/main/resources/assets/spectrum/models/block/present_blue.json +++ b/src/main/resources/assets/spectrum/models/block/present_blue.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [0, 6, 3, 8.5], "texture": "#0"}, - "east": {"uv": [0, 6, 3, 8.5], "texture": "#0"}, - "south": {"uv": [0, 6, 3, 8.5], "texture": "#0"}, - "west": {"uv": [0, 6, 3, 8.5], "texture": "#0"}, - "up": {"uv": [3, 6, 6, 9], "texture": "#0"}, - "down": {"uv": [3, 6, 6, 9], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 6, + 3, + 8.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 6, + 3, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 6, + 3, + 8.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 6, + 3, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 6, + 6, + 9 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 6, + 6, + 9 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_cake.json b/src/main/resources/assets/spectrum/models/block/present_cake.json index 3d5cc837fb..6cf9d11d7f 100644 --- a/src/main/resources/assets/spectrum/models/block/present_cake.json +++ b/src/main/resources/assets/spectrum/models/block/present_cake.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [6, 0, 9, 2.5], "texture": "#0"}, - "east": {"uv": [6, 0, 9, 2.5], "texture": "#0"}, - "south": {"uv": [6, 0, 9, 2.5], "texture": "#0"}, - "west": {"uv": [6, 0, 9, 2.5], "texture": "#0"}, - "up": {"uv": [9, 0, 12, 3], "texture": "#0"}, - "down": {"uv": [9, 0, 12, 3], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 6, + 0, + 9, + 2.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 6, + 0, + 9, + 2.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 6, + 0, + 9, + 2.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 6, + 0, + 9, + 2.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9, + 0, + 12, + 3 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9, + 0, + 12, + 3 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_cyan.json b/src/main/resources/assets/spectrum/models/block/present_cyan.json index 6b0ed0819a..60390a355b 100644 --- a/src/main/resources/assets/spectrum/models/block/present_cyan.json +++ b/src/main/resources/assets/spectrum/models/block/present_cyan.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [0, 3, 3, 5.5], "texture": "#0"}, - "east": {"uv": [0, 3, 3, 5.5], "texture": "#0"}, - "south": {"uv": [0, 3, 3, 5.5], "texture": "#0"}, - "west": {"uv": [0, 3, 3, 5.5], "texture": "#0"}, - "up": {"uv": [3, 3, 6, 6], "texture": "#0"}, - "down": {"uv": [3, 3, 6, 6], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 3, + 3, + 5.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 3, + 3, + 5.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 3, + 3, + 5.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 3, + 3, + 5.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 3, + 6, + 6 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 3, + 6, + 6 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_green.json b/src/main/resources/assets/spectrum/models/block/present_green.json index 369bcfbe6a..e1f69ff638 100644 --- a/src/main/resources/assets/spectrum/models/block/present_green.json +++ b/src/main/resources/assets/spectrum/models/block/present_green.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [0, 9, 3, 11.5], "texture": "#0"}, - "east": {"uv": [0, 9, 3, 11.5], "texture": "#0"}, - "south": {"uv": [0, 9, 3, 11.5], "texture": "#0"}, - "west": {"uv": [0, 9, 3, 11.5], "texture": "#0"}, - "up": {"uv": [3, 9, 6, 12], "texture": "#0"}, - "down": {"uv": [3, 9, 6, 12], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 9, + 3, + 11.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 9, + 3, + 11.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 9, + 3, + 11.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 9, + 3, + 11.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 9, + 6, + 12 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 9, + 6, + 12 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_pride.json b/src/main/resources/assets/spectrum/models/block/present_pride.json index b190f7c35c..49c73f70a0 100644 --- a/src/main/resources/assets/spectrum/models/block/present_pride.json +++ b/src/main/resources/assets/spectrum/models/block/present_pride.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [6, 12, 9, 14.5], "texture": "#0"}, - "east": {"uv": [6, 12, 9, 14.5], "texture": "#0"}, - "south": {"uv": [6, 12, 9, 14.5], "texture": "#0"}, - "west": {"uv": [6, 12, 9, 14.5], "texture": "#0"}, - "up": {"uv": [9, 12, 12, 15], "texture": "#0"}, - "down": {"uv": [9, 12, 12, 15], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 6, + 12, + 9, + 14.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 6, + 12, + 9, + 14.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 6, + 12, + 9, + 14.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 6, + 12, + 9, + 14.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9, + 12, + 12, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9, + 12, + 12, + 15 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_purple.json b/src/main/resources/assets/spectrum/models/block/present_purple.json index df1b7f6fae..5d89ff6edb 100644 --- a/src/main/resources/assets/spectrum/models/block/present_purple.json +++ b/src/main/resources/assets/spectrum/models/block/present_purple.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [0, 12, 3, 14.5], "texture": "#0"}, - "east": {"uv": [0, 12, 3, 14.5], "texture": "#0"}, - "south": {"uv": [0, 12, 3, 14.5], "texture": "#0"}, - "west": {"uv": [0, 12, 3, 14.5], "texture": "#0"}, - "up": {"uv": [3, 12, 6, 15], "texture": "#0"}, - "down": {"uv": [3, 12, 6, 15], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 12, + 3, + 14.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 12, + 3, + 14.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 12, + 3, + 14.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 12, + 3, + 14.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 12, + 6, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 12, + 6, + 15 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_red.json b/src/main/resources/assets/spectrum/models/block/present_red.json index 89a6e03ee5..6ad28e0d39 100644 --- a/src/main/resources/assets/spectrum/models/block/present_red.json +++ b/src/main/resources/assets/spectrum/models/block/present_red.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [0, 0, 3, 2.5], "texture": "#0"}, - "east": {"uv": [0, 0, 3, 2.5], "texture": "#0"}, - "south": {"uv": [0, 0, 3, 2.5], "texture": "#0"}, - "west": {"uv": [0, 0, 3, 2.5], "texture": "#0"}, - "up": {"uv": [3, 0, 6, 3], "texture": "#0"}, - "down": {"uv": [3, 0, 6, 3], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 2.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 2.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 2.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 2.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 3, + 0, + 6, + 3 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 3, + 0, + 6, + 3 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_starry.json b/src/main/resources/assets/spectrum/models/block/present_starry.json index ac6500dc6a..f5ef245fb5 100644 --- a/src/main/resources/assets/spectrum/models/block/present_starry.json +++ b/src/main/resources/assets/spectrum/models/block/present_starry.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [6, 6, 9, 8.5], "texture": "#0"}, - "east": {"uv": [6, 6, 9, 8.5], "texture": "#0"}, - "south": {"uv": [6, 6, 9, 8.5], "texture": "#0"}, - "west": {"uv": [6, 6, 9, 8.5], "texture": "#0"}, - "up": {"uv": [9, 6, 12, 9], "texture": "#0"}, - "down": {"uv": [9, 6, 12, 9], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 6, + 6, + 9, + 8.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 6, + 6, + 9, + 8.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 6, + 6, + 9, + 8.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 6, + 6, + 9, + 8.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9, + 6, + 12, + 9 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9, + 6, + 12, + 9 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_striped.json b/src/main/resources/assets/spectrum/models/block/present_striped.json index e7edc79970..3afcafb26d 100644 --- a/src/main/resources/assets/spectrum/models/block/present_striped.json +++ b/src/main/resources/assets/spectrum/models/block/present_striped.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [6, 3, 9, 5.5], "texture": "#0"}, - "east": {"uv": [6, 3, 9, 5.5], "texture": "#0"}, - "south": {"uv": [6, 3, 9, 5.5], "texture": "#0"}, - "west": {"uv": [6, 3, 9, 5.5], "texture": "#0"}, - "up": {"uv": [9, 3, 12, 6], "texture": "#0"}, - "down": {"uv": [9, 3, 12, 6], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 6, + 3, + 9, + 5.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 6, + 3, + 9, + 5.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 6, + 3, + 9, + 5.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 6, + 3, + 9, + 5.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9, + 3, + 12, + 6 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9, + 3, + 12, + 6 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/present_winter.json b/src/main/resources/assets/spectrum/models/block/present_winter.json index 953e4c3ef3..68e86fde8f 100644 --- a/src/main/resources/assets/spectrum/models/block/present_winter.json +++ b/src/main/resources/assets/spectrum/models/block/present_winter.json @@ -1,189 +1,902 @@ { - "credit": "Made with Blockbench", - "texture_size": [64, 64], - "textures": { - "0": "spectrum:block/present_cake", - "1": "spectrum:block/present_cake_bow", - "particle": "spectrum:block/present_cake" - }, - "elements": [ - { - "name": "present", - "from": [2, 0, 2], - "to": [14, 10, 14], - "faces": { - "north": {"uv": [6, 9, 9, 11.5], "texture": "#0"}, - "east": {"uv": [6, 9, 9, 11.5], "texture": "#0"}, - "south": {"uv": [6, 9, 9, 11.5], "texture": "#0"}, - "west": {"uv": [6, 9, 9, 11.5], "texture": "#0"}, - "up": {"uv": [9, 9, 12, 12], "texture": "#0"}, - "down": {"uv": [9, 9, 12, 12], "texture": "#0"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 1], - "to": [11, 10, 9], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [7, 10, 5], - "to": [15, 10, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [5, 10, 7], - "to": [11, 10, 15], - "rotation": {"angle": -22.5, "axis": "x", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "upper bow", - "from": [1, 10, 5], - "to": [9, 10, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "east": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "south": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "west": {"uv": [5, 8, 11, 16], "texture": "#1"}, - "up": {"uv": [5, 8, 11, 16], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 16, 11, 8], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.6, 1.5], - "to": [11, 10.6, 7.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [8.5, 10.4, 5], - "to": [14.5, 10.4, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 90, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 270, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [5, 10.3, 8.5], - "to": [11, 10.3, 14.5], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 180, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 180, "texture": "#1"} - } - }, - { - "name": "lower bow", - "from": [1.5, 10.5, 5], - "to": [7.5, 10.5, 11], - "rotation": {"angle": -45, "axis": "y", "origin": [8, 16, 8]}, - "faces": { - "north": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "east": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "south": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "west": {"uv": [5, 2, 11, 8], "texture": "#1"}, - "up": {"uv": [5, 2, 11, 8], "rotation": 270, "texture": "#1"}, - "down": {"uv": [5, 8, 11, 2], "rotation": 90, "texture": "#1"} - } - }, - { - "name": "core", - "from": [7, 10, 7], - "to": [9, 11, 9], - "faces": { - "north": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "east": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "west": {"uv": [0, 2, 2, 3], "texture": "#1"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#1"}, - "down": {"uv": [0, 0, 2, 2], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - 0, - { - "name": "bow", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3, 4, 5, 6, 7, 8, 9] - } - ] + "credit": "Made with Blockbench", + "texture_size": [ + 64, + 64 + ], + "textures": { + "0": "spectrum:block/present_cake", + "1": "spectrum:block/present_cake_bow", + "particle": "spectrum:block/present_cake" + }, + "elements": [ + { + "name": "present", + "from": [ + 2, + 0, + 2 + ], + "to": [ + 14, + 10, + 14 + ], + "faces": { + "north": { + "uv": [ + 6, + 9, + 9, + 11.5 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 6, + 9, + 9, + 11.5 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 6, + 9, + 9, + 11.5 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 6, + 9, + 9, + 11.5 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 9, + 9, + 12, + 12 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 9, + 9, + 12, + 12 + ], + "texture": "#0" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 1 + ], + "to": [ + 11, + 10, + 9 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 7, + 10, + 5 + ], + "to": [ + 15, + 10, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 5, + 10, + 7 + ], + "to": [ + 11, + 10, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "x", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "upper bow", + "from": [ + 1, + 10, + 5 + ], + "to": [ + 9, + 10, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 8, + 11, + 16 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 16, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.6, + 1.5 + ], + "to": [ + 11, + 10.6, + 7.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 8.5, + 10.4, + 5 + ], + "to": [ + 14.5, + 10.4, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 90, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 270, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 5, + 10.3, + 8.5 + ], + "to": [ + 11, + 10.3, + 14.5 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 180, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 180, + "texture": "#1" + } + } + }, + { + "name": "lower bow", + "from": [ + 1.5, + 10.5, + 5 + ], + "to": [ + 7.5, + 10.5, + 11 + ], + "rotation": { + "angle": -45, + "axis": "y", + "origin": [ + 8, + 16, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 2, + 11, + 8 + ], + "rotation": 270, + "texture": "#1" + }, + "down": { + "uv": [ + 5, + 8, + 11, + 2 + ], + "rotation": 90, + "texture": "#1" + } + } + }, + { + "name": "core", + "from": [ + 7, + 10, + 7 + ], + "to": [ + 9, + 11, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 2, + 2, + 3 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + 75, + 45, + 0 + ], + "translation": [ + 0, + 2.5, + 0 + ], + "scale": [ + 0.375, + 0.375, + 0.375 + ] + }, + "firstperson_righthand": { + "rotation": [ + 0, + 45, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 0, + 225, + 0 + ], + "scale": [ + 0.4, + 0.4, + 0.4 + ] + }, + "ground": { + "translation": [ + 0, + 3, + 0 + ], + "scale": [ + 0.25, + 0.25, + 0.25 + ] + }, + "gui": { + "rotation": [ + 30, + 225, + 0 + ], + "scale": [ + 0.625, + 0.625, + 0.625 + ] + }, + "fixed": { + "scale": [ + 0.5, + 0.5, + 0.5 + ] + } + }, + "groups": [ + 0, + { + "name": "bow", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/preservation_roundel.json b/src/main/resources/assets/spectrum/models/block/preservation_roundel.json index c309f1d7bb..9e25adbd08 100644 --- a/src/main/resources/assets/spectrum/models/block/preservation_roundel.json +++ b/src/main/resources/assets/spectrum/models/block/preservation_roundel.json @@ -1,9 +1,9 @@ { - "parent": "spectrum:block/template_roundel", - "textures": { - "base": "spectrum:block/preservation_stone_12", - "side": "spectrum:block/polished_calcite_pillar_side", - "top": "spectrum:block/polished_calcite_pillar_top", - "particle": "spectrum:block/preservation_stone" - } + "parent": "spectrum:templates/roundel", + "textures": { + "base": "spectrum:block/preservation_stone_12", + "side": "spectrum:block/polished_calcite_pillar_side", + "top": "spectrum:block/polished_calcite_pillar_top", + "particle": "spectrum:block/preservation_stone" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_floor0.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_floor0.json new file mode 100644 index 0000000000..3e0a630a20 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_floor0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_floor", + "textures": { + "fire": "spectrum:block/primordial_fire_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_floor1.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_floor1.json new file mode 100644 index 0000000000..2c91293a19 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_floor1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_floor", + "textures": { + "fire": "spectrum:block/primordial_fire_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_side0.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_side0.json new file mode 100644 index 0000000000..bb485ee907 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_side0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side", + "textures": { + "fire": "spectrum:block/primordial_fire_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_side1.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_side1.json new file mode 100644 index 0000000000..959d2ef020 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_side1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side", + "textures": { + "fire": "spectrum:block/primordial_fire_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_side_alt0.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_side_alt0.json new file mode 100644 index 0000000000..067efa7a20 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_side_alt0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side_alt", + "textures": { + "fire": "spectrum:block/primordial_fire_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_side_alt1.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_side_alt1.json new file mode 100644 index 0000000000..0de0afc93b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_side_alt1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_side_alt", + "textures": { + "fire": "spectrum:block/primordial_fire_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_up0.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_up0.json new file mode 100644 index 0000000000..7a550c50f7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_up0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up", + "textures": { + "fire": "spectrum:block/primordial_fire_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_up1.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_up1.json new file mode 100644 index 0000000000..066cdf24cd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_up1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up", + "textures": { + "fire": "spectrum:block/primordial_fire_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_up_alt0.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_up_alt0.json new file mode 100644 index 0000000000..1920079cba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_up_alt0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up_alt", + "textures": { + "fire": "spectrum:block/primordial_fire_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/primordial_fire_up_alt1.json b/src/main/resources/assets/spectrum/models/block/primordial_fire_up_alt1.json new file mode 100644 index 0000000000..04da9b7f81 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/primordial_fire_up_alt1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fire_up_alt", + "textures": { + "fire": "spectrum:block/primordial_fire_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pufferfish.json b/src/main/resources/assets/spectrum/models/block/pufferfish.json deleted file mode 100644 index 5e59e31dd3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/pufferfish.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/yellow_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_certus_quartz_block.json b/src/main/resources/assets/spectrum/models/block/pure_certus_quartz_block.json index 0ebbe428cc..5b30c955f2 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_certus_quartz_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_certus_quartz_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_certus_quartz_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_coal_block.json b/src/main/resources/assets/spectrum/models/block/pure_coal_block.json index e248584a46..a5b4965323 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_coal_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_coal_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_coal_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_copper_block.json b/src/main/resources/assets/spectrum/models/block/pure_copper_block.json index 08e5944cb4..ed8e16ec9e 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_copper_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_copper_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_copper_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_diamond_block.json b/src/main/resources/assets/spectrum/models/block/pure_diamond_block.json index a37a7143b4..3789edbe83 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_diamond_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_diamond_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_diamond_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_emerald_block.json b/src/main/resources/assets/spectrum/models/block/pure_emerald_block.json index a6441575ad..3d371d6508 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_emerald_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_emerald_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_emerald_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_fluix_block.json b/src/main/resources/assets/spectrum/models/block/pure_fluix_block.json index ab52a0ed83..7a9e18868f 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_fluix_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_fluix_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_fluix_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_globette_block.json b/src/main/resources/assets/spectrum/models/block/pure_globette_block.json index ad1fd6113c..d258e4502d 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_globette_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_globette_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_globette_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_globette_end_block.json b/src/main/resources/assets/spectrum/models/block/pure_globette_end_block.json index c0e144c269..52ed6756ee 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_globette_end_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_globette_end_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_globette_end_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_globette_nether_block.json b/src/main/resources/assets/spectrum/models/block/pure_globette_nether_block.json index 51a427f0de..05a889528e 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_globette_nether_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_globette_nether_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_globette_nether_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_glowstone_block.json b/src/main/resources/assets/spectrum/models/block/pure_glowstone_block.json index 4d0dcaee12..0f74cfcf62 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_glowstone_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_glowstone_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_glowstone_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_gold_block.json b/src/main/resources/assets/spectrum/models/block/pure_gold_block.json index 9d95b80861..046dab15c8 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_gold_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_gold_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_gold_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_iron_block.json b/src/main/resources/assets/spectrum/models/block/pure_iron_block.json index 760b450517..1738d1db8b 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_iron_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_iron_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_iron_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_lapis_block.json b/src/main/resources/assets/spectrum/models/block/pure_lapis_block.json index 9010caf4d8..49c8707ddf 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_lapis_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_lapis_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_lapis_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_netherite_block.json b/src/main/resources/assets/spectrum/models/block/pure_netherite_block.json index 02342205be..a9e2e2763d 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_netherite_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_netherite_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_netherite_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_prismarine_block.json b/src/main/resources/assets/spectrum/models/block/pure_prismarine_block.json index 2041cb8cd4..7a8afd8a31 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_prismarine_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_prismarine_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_prismarine_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_quartz_block.json b/src/main/resources/assets/spectrum/models/block/pure_quartz_block.json index 06974d2e4b..536a0aa84b 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_quartz_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_quartz_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_quartz_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pure_redstone_block.json b/src/main/resources/assets/spectrum/models/block/pure_redstone_block.json index 2b7d816ce8..474315bb50 100644 --- a/src/main/resources/assets/spectrum/models/block/pure_redstone_block.json +++ b/src/main/resources/assets/spectrum/models/block/pure_redstone_block.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:block/cube_all", - "textures": { + "parent": "minecraft:block/cube_all", + "textures": { "all": "spectrum:block/pure_redstone_block" - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_button.json b/src/main/resources/assets/spectrum/models/block/purple_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_button.json rename to src/main/resources/assets/spectrum/models/block/purple_button.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/purple_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/purple_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/purple_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/purple_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/purple_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/purple_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/purple_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/purple_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/purple_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/purple_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/purple_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/purple_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/purple_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/purple_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/purple_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/purple_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_slab.json b/src/main/resources/assets/spectrum/models/block/purple_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/purple_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/purple_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/purple_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/purple_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/purple_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/purple_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/purple_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/purple_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/purple_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/purple_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/purple_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/rabbit.json b/src/main/resources/assets/spectrum/models/block/rabbit.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/rabbit.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/radiating_ender.json b/src/main/resources/assets/spectrum/models/block/radiating_ender.json new file mode 100644 index 0000000000..29c69f82e6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/radiating_ender.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/radiating_ender" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/ravager.json b/src/main/resources/assets/spectrum/models/block/ravager.json deleted file mode 100644 index fd28aed4ac..0000000000 --- a/src/main/resources/assets/spectrum/models/block/ravager.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_button.json b/src/main/resources/assets/spectrum/models/block/red_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_button.json rename to src/main/resources/assets/spectrum/models/block/red_button.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/red_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/red_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/red_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/red_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/red_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/red_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/red_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/red_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/red_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/red_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/red_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/red_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/red_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/red_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/red_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/red_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/red_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/red_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/red_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/red_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/red_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/red_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_slab.json b/src/main/resources/assets/spectrum/models/block/red_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/red_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/red_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/red_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/red_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/red_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/red_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/red_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/red_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/red_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/red_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/red_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver.json b/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver.json index 6a30a7aeed..bba802ed62 100644 --- a/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver.json +++ b/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver.json @@ -1,104 +1,469 @@ { - "credit": "Made with Blockbench", - "ambientocclusion": false, - "textures": { - "4": "block/redstone_torch", - "5": "spectrum:block/onyx_block", - "slab": "block/smooth_stone", - "particle": "spectrum:block/redstone_wireless_receiver", - "top": "spectrum:block/redstone_wireless_receiver" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "north"}, - "east": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "east"}, - "south": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "south"}, - "west": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#top"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#slab", "cullface": "down"} - } - }, - { - "from": [7, 3, 6], - "to": [9, 9, 10], - "faces": { - "east": {"uv": [6, 5, 10, 11], "texture": "#4"}, - "west": {"uv": [6, 5, 10, 11], "texture": "#4"} - } - }, - { - "from": [6, 3, 7], - "to": [10, 9, 9], - "faces": { - "north": {"uv": [6, 5, 10, 11], "texture": "#4"}, - "south": {"uv": [6, 5, 10, 11], "texture": "#4"} - } - }, - { - "from": [7, 8, 7], - "to": [9, 8, 9], - "faces": { - "north": {"uv": [0, 0, 0, 0], "texture": "#4"}, - "east": {"uv": [0, 0, 0, 0], "texture": "#4"}, - "south": {"uv": [0, 0, 0, 0], "texture": "#4"}, - "west": {"uv": [0, 0, 0, 0], "texture": "#4"}, - "up": {"uv": [7, 6, 9, 8], "texture": "#4"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#4"} - } - }, - { - "from": [4, 2, 5], - "to": [4, 7, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [4, 4.5, 8]}, - "faces": { - "north": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "east": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "south": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "west": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "up": {"uv": [0, 0, 0, 6], "texture": "#5"}, - "down": {"uv": [0, 0, 0, 6], "texture": "#5"} - } - }, - { - "from": [12, 2, 5], - "to": [12, 7, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [12, 4.5, 8]}, - "faces": { - "north": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "east": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "south": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "west": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "up": {"uv": [0, 0, 0, 6], "texture": "#5"}, - "down": {"uv": [0, 0, 0, 6], "texture": "#5"} - } - }, - { - "from": [5, 2, 12], - "to": [11, 7, 12], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 4.5, 12]}, - "faces": { - "north": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "east": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "south": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "west": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "up": {"uv": [0, 0, 6, 0], "texture": "#5"}, - "down": {"uv": [0, 0, 6, 0], "texture": "#5"} - } - } - ], - "groups": [ - 0, - { - "name": "torch", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3] - }, - 4, - 5, - 6 - ] + "credit": "Made with Blockbench", + "ambientocclusion": false, + "textures": { + "4": "block/redstone_torch", + "5": "spectrum:block/onyx_block", + "slab": "block/smooth_stone", + "particle": "spectrum:block/redstone_wireless_receiver", + "top": "spectrum:block/redstone_wireless_receiver" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "east" + }, + "south": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#top" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#slab", + "cullface": "down" + } + } + }, + { + "from": [ + 7, + 3, + 6 + ], + "to": [ + 9, + 9, + 10 + ], + "faces": { + "east": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#4" + }, + "west": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#4" + } + } + }, + { + "from": [ + 6, + 3, + 7 + ], + "to": [ + 10, + 9, + 9 + ], + "faces": { + "north": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#4" + }, + "south": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#4" + } + } + }, + { + "from": [ + 7, + 8, + 7 + ], + "to": [ + 9, + 8, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#4" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#4" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#4" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#4" + }, + "up": { + "uv": [ + 7, + 6, + 9, + 8 + ], + "texture": "#4" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#4" + } + } + }, + { + "from": [ + 4, + 2, + 5 + ], + "to": [ + 4, + 7, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 4, + 4.5, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + } + } + }, + { + "from": [ + 12, + 2, + 5 + ], + "to": [ + 12, + 7, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 12, + 4.5, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + } + } + }, + { + "from": [ + 5, + 2, + 12 + ], + "to": [ + 11, + 7, + 12 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 4.5, + 12 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 6, + 0 + ], + "texture": "#5" + }, + "down": { + "uv": [ + 0, + 0, + 6, + 0 + ], + "texture": "#5" + } + } + } + ], + "groups": [ + 0, + { + "name": "torch", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3 + ] + }, + 4, + 5, + 6 + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver_off.json b/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver_off.json index 76a31ffad3..90a49ce446 100644 --- a/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver_off.json +++ b/src/main/resources/assets/spectrum/models/block/redstone_wireless_receiver_off.json @@ -1,104 +1,469 @@ { - "credit": "Made with Blockbench", - "ambientocclusion": false, - "textures": { - "5": "spectrum:block/onyx_block", - "slab": "block/smooth_stone", - "particle": "spectrum:block/redstone_wireless_receiver", - "top": "spectrum:block/redstone_wireless_receiver", - "lit": "block/redstone_torch_off" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "north"}, - "east": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "east"}, - "south": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "south"}, - "west": {"uv": [0, 14, 16, 16], "texture": "#slab", "cullface": "west"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#top"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#slab", "cullface": "down"} - } - }, - { - "from": [7, 3, 6], - "to": [9, 9, 10], - "faces": { - "east": {"uv": [6, 5, 10, 11], "texture": "#lit"}, - "west": {"uv": [6, 5, 10, 11], "texture": "#lit"} - } - }, - { - "from": [6, 3, 7], - "to": [10, 9, 9], - "faces": { - "north": {"uv": [6, 5, 10, 11], "texture": "#lit"}, - "south": {"uv": [6, 5, 10, 11], "texture": "#lit"} - } - }, - { - "from": [7, 8, 7], - "to": [9, 8, 9], - "faces": { - "north": {"uv": [0, 0, 0, 0], "texture": "#lit"}, - "east": {"uv": [0, 0, 0, 0], "texture": "#lit"}, - "south": {"uv": [0, 0, 0, 0], "texture": "#lit"}, - "west": {"uv": [0, 0, 0, 0], "texture": "#lit"}, - "up": {"uv": [7, 6, 9, 8], "texture": "#lit"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#lit"} - } - }, - { - "from": [4, 2, 5], - "to": [4, 7, 11], - "rotation": {"angle": 22.5, "axis": "z", "origin": [4, 4.5, 8]}, - "faces": { - "north": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "east": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "south": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "west": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "up": {"uv": [0, 0, 0, 6], "texture": "#5"}, - "down": {"uv": [0, 0, 0, 6], "texture": "#5"} - } - }, - { - "from": [12, 2, 5], - "to": [12, 7, 11], - "rotation": {"angle": -22.5, "axis": "z", "origin": [12, 4.5, 8]}, - "faces": { - "north": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "east": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "south": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "west": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "up": {"uv": [0, 0, 0, 6], "texture": "#5"}, - "down": {"uv": [0, 0, 0, 6], "texture": "#5"} - } - }, - { - "from": [5, 2, 12], - "to": [11, 7, 12], - "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 4.5, 12]}, - "faces": { - "north": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "east": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "south": {"uv": [0, 0, 6, 5], "texture": "#5"}, - "west": {"uv": [0, 0, 0, 5], "texture": "#5"}, - "up": {"uv": [0, 0, 6, 0], "texture": "#5"}, - "down": {"uv": [0, 0, 6, 0], "texture": "#5"} - } - } - ], - "groups": [ - 0, - { - "name": "torch", - "origin": [0, 0, 0], - "color": 0, - "children": [1, 2, 3] - }, - 4, - 5, - 6 - ] + "credit": "Made with Blockbench", + "ambientocclusion": false, + "textures": { + "5": "spectrum:block/onyx_block", + "slab": "block/smooth_stone", + "particle": "spectrum:block/redstone_wireless_receiver", + "top": "spectrum:block/redstone_wireless_receiver", + "lit": "block/redstone_torch_off" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 2, + 16 + ], + "faces": { + "north": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "north" + }, + "east": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "east" + }, + "south": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "south" + }, + "west": { + "uv": [ + 0, + 14, + 16, + 16 + ], + "texture": "#slab", + "cullface": "west" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#top" + }, + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#slab", + "cullface": "down" + } + } + }, + { + "from": [ + 7, + 3, + 6 + ], + "to": [ + 9, + 9, + 10 + ], + "faces": { + "east": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#lit" + }, + "west": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#lit" + } + } + }, + { + "from": [ + 6, + 3, + 7 + ], + "to": [ + 10, + 9, + 9 + ], + "faces": { + "north": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#lit" + }, + "south": { + "uv": [ + 6, + 5, + 10, + 11 + ], + "texture": "#lit" + } + } + }, + { + "from": [ + 7, + 8, + 7 + ], + "to": [ + 9, + 8, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#lit" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#lit" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#lit" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#lit" + }, + "up": { + "uv": [ + 7, + 6, + 9, + 8 + ], + "texture": "#lit" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#lit" + } + } + }, + { + "from": [ + 4, + 2, + 5 + ], + "to": [ + 4, + 7, + 11 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 4, + 4.5, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + } + } + }, + { + "from": [ + 12, + 2, + 5 + ], + "to": [ + 12, + 7, + 11 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 12, + 4.5, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 6 + ], + "texture": "#5" + } + } + }, + { + "from": [ + 5, + 2, + 12 + ], + "to": [ + 11, + 7, + 12 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 4.5, + 12 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 5 + ], + "texture": "#5" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 5 + ], + "texture": "#5" + }, + "up": { + "uv": [ + 0, + 0, + 6, + 0 + ], + "texture": "#5" + }, + "down": { + "uv": [ + 0, + 0, + 6, + 0 + ], + "texture": "#5" + } + } + } + ], + "groups": [ + 0, + { + "name": "torch", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 1, + 2, + 3 + ] + }, + 4, + 5, + 6 + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/rock_candy_stick.json b/src/main/resources/assets/spectrum/models/block/rock_candy_stick.json index 7f0fd54db5..24f69027e0 100644 --- a/src/main/resources/assets/spectrum/models/block/rock_candy_stick.json +++ b/src/main/resources/assets/spectrum/models/block/rock_candy_stick.json @@ -1,22 +1,78 @@ { - "credit": "Made with Blockbench", - "textures": { - "particle": "spectrum:block/amethyst_glass" - }, - "elements": [ - { - "name": "stick", - "from": [8, 3, 8], - "to": [9, 16, 9], - "color": 2, - "faces": { - "north": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "east": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "south": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "west": {"uv": [0, 0, 1, 13], "texture": "#missing"}, - "up": {"uv": [0, 0, 1, 1], "texture": "#missing"}, - "down": {"uv": [0, 0, 1, 1], "texture": "#missing"} - } - } - ] + "credit": "Made with Blockbench", + "textures": { + "particle": "spectrum:block/amethyst_glass" + }, + "elements": [ + { + "name": "stick", + "from": [ + 8, + 3, + 8 + ], + "to": [ + 9, + 16, + 9 + ], + "color": 2, + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 13 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#missing" + } + } + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/rotten_ground.json b/src/main/resources/assets/spectrum/models/block/rotten_ground.json new file mode 100644 index 0000000000..460f762c78 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/rotten_ground.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/rotten_ground" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/salmon.json b/src/main/resources/assets/spectrum/models/block/salmon.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/salmon.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_grass.json b/src/main/resources/assets/spectrum/models/block/sawblade_grass.json new file mode 100644 index 0000000000..58cf0d2e20 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_grass.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "particle": "spectrum:block/blackslag_top", + "side": "spectrum:block/sawblade_grass", + "top": "spectrum:block/sawblade_grass_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_grass_snow.json b/src/main/resources/assets/spectrum/models/block/sawblade_grass_snow.json new file mode 100644 index 0000000000..9d9971aeaa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_grass_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "particle": "spectrum:block/blackslag_top", + "side": "spectrum:block/sawblade_grass_snow", + "top": "spectrum:block/sawblade_grass_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage0_lower.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage0_lower.json new file mode 100644 index 0000000000..803ce3f56b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage0_lower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage0_lower" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage1_lower.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage1_lower.json new file mode 100644 index 0000000000..465af99997 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage1_lower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage1_lower" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage2_lower.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage2_lower.json new file mode 100644 index 0000000000..06e740b73b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage2_lower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage2_lower" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage2_upper.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage2_upper.json new file mode 100644 index 0000000000..d164cc028c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage2_upper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage2_upper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage3_lower.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage3_lower.json new file mode 100644 index 0000000000..8b5fdca18b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage3_lower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage3_lower" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage3_upper.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage3_upper.json new file mode 100644 index 0000000000..94fca4765d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage3_upper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage3_upper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage4_lower.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage4_lower.json new file mode 100644 index 0000000000..67d10e3731 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage4_lower.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage4_lower" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage4_upper.json b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage4_upper.json new file mode 100644 index 0000000000..2fb9621d82 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/sawblade_holly_bush_stage4_upper.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/sawblade_holly_bush_stage4_upper" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/scarlet_fragment_block.json b/src/main/resources/assets/spectrum/models/block/scarlet_fragment_block.json deleted file mode 100644 index 1dd45fa3f4..0000000000 --- a/src/main/resources/assets/spectrum/models/block/scarlet_fragment_block.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "particle": "spectrum:block/scarlet_fragment_block_side", - "north": "spectrum:block/scarlet_fragment_block_side", - "east": "spectrum:block/scarlet_fragment_block_side", - "south": "spectrum:block/scarlet_fragment_block_side", - "west": "spectrum:block/scarlet_fragment_block_side", - "up": "spectrum:block/scarlet_fragment_block_vertical", - "down": "spectrum:block/scarlet_fragment_block_vertical" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/scarlet_ore.json b/src/main/resources/assets/spectrum/models/block/scarlet_ore.json deleted file mode 100644 index 222d4629ef..0000000000 --- a/src/main/resources/assets/spectrum/models/block/scarlet_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/scarlet_ore" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/pusher_node.json b/src/main/resources/assets/spectrum/models/block/sender_node.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/pusher_node.json rename to src/main/resources/assets/spectrum/models/block/sender_node.json diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay.json b/src/main/resources/assets/spectrum/models/block/shale_clay.json new file mode 100644 index 0000000000..f5cc61da6d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/shale_clay_top", + "side": "spectrum:block/shale_clay_side" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_slab.json new file mode 100644 index 0000000000..e3a218bac0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/shale_clay_bricks", + "top": "spectrum:block/shale_clay_bricks", + "side": "spectrum:block/shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_brick_slab_top.json b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_slab_top.json new file mode 100644 index 0000000000..7f0b4ffc8b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/shale_clay_bricks", + "top": "spectrum:block/shale_clay_bricks", + "side": "spectrum:block/shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs.json new file mode 100644 index 0000000000..93b3370887 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/shale_clay_bricks", + "top": "spectrum:block/shale_clay_bricks", + "side": "spectrum:block/shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs_inner.json new file mode 100644 index 0000000000..e099cc49c1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/shale_clay_bricks", + "top": "spectrum:block/shale_clay_bricks", + "side": "spectrum:block/shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs_outer.json new file mode 100644 index 0000000000..224ede6260 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/shale_clay_bricks", + "top": "spectrum:block/shale_clay_bricks", + "side": "spectrum:block/shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_bricks.json b/src/main/resources/assets/spectrum/models/block/shale_clay_bricks.json new file mode 100644 index 0000000000..f8633234e3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_slab.json new file mode 100644 index 0000000000..7667703e2d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/shale_clay_tiles", + "top": "spectrum:block/shale_clay_tiles", + "side": "spectrum:block/shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_tile_slab_top.json b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_slab_top.json new file mode 100644 index 0000000000..35b24edf56 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/shale_clay_tiles", + "top": "spectrum:block/shale_clay_tiles", + "side": "spectrum:block/shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs.json new file mode 100644 index 0000000000..c9ee0f674e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/shale_clay_tiles", + "top": "spectrum:block/shale_clay_tiles", + "side": "spectrum:block/shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs_inner.json new file mode 100644 index 0000000000..b7a9c39af7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/shale_clay_tiles", + "top": "spectrum:block/shale_clay_tiles", + "side": "spectrum:block/shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs_outer.json new file mode 100644 index 0000000000..69063b1c71 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/shale_clay_tiles", + "top": "spectrum:block/shale_clay_tiles", + "side": "spectrum:block/shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shale_clay_tiles.json b/src/main/resources/assets/spectrum/models/block/shale_clay_tiles.json new file mode 100644 index 0000000000..9ce163bc31 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shale_clay_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_black.json b/src/main/resources/assets/spectrum/models/block/sheep_black.json deleted file mode 100644 index 30b58c5a57..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_black.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/black_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_blue.json b/src/main/resources/assets/spectrum/models/block/sheep_blue.json deleted file mode 100644 index 9d9b2aa950..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_blue.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_brown.json b/src/main/resources/assets/spectrum/models/block/sheep_brown.json deleted file mode 100644 index cb24b5564c..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_brown.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/brown_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_cyan.json b/src/main/resources/assets/spectrum/models/block/sheep_cyan.json deleted file mode 100644 index 7e886485f3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_cyan.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/cyan_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_gray.json b/src/main/resources/assets/spectrum/models/block/sheep_gray.json deleted file mode 100644 index fd28aed4ac..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_gray.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_green.json b/src/main/resources/assets/spectrum/models/block/sheep_green.json deleted file mode 100644 index 20452ed7b5..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_green.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/green_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_light_blue.json b/src/main/resources/assets/spectrum/models/block/sheep_light_blue.json deleted file mode 100644 index a4c8299f9d..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_light_blue.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_light_gray.json b/src/main/resources/assets/spectrum/models/block/sheep_light_gray.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_light_gray.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_lime.json b/src/main/resources/assets/spectrum/models/block/sheep_lime.json deleted file mode 100644 index c3f0c1e20b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_lime.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/lime_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_magenta.json b/src/main/resources/assets/spectrum/models/block/sheep_magenta.json deleted file mode 100644 index 97f9b44712..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_magenta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/magenta_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_orange.json b/src/main/resources/assets/spectrum/models/block/sheep_orange.json deleted file mode 100644 index b2bd200f22..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_orange.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/orange_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_pink.json b/src/main/resources/assets/spectrum/models/block/sheep_pink.json deleted file mode 100644 index 60e76ca905..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_pink.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/pink_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_purple.json b/src/main/resources/assets/spectrum/models/block/sheep_purple.json deleted file mode 100644 index 50572a864f..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_purple.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/purple_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_red.json b/src/main/resources/assets/spectrum/models/block/sheep_red.json deleted file mode 100644 index 96a7a38a8b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_red.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/red_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_white.json b/src/main/resources/assets/spectrum/models/block/sheep_white.json deleted file mode 100644 index 60e76ca905..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_white.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/pink_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sheep_yellow.json b/src/main/resources/assets/spectrum/models/block/sheep_yellow.json deleted file mode 100644 index 5e59e31dd3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sheep_yellow.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/yellow_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shimmel.json b/src/main/resources/assets/spectrum/models/block/shimmel.json new file mode 100644 index 0000000000..928fb65bc3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shimmel.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "particle": "spectrum:block/blackslag_top", + "side": "spectrum:block/shimmel_side", + "top": "spectrum:block/shimmel_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shimmel_snow.json b/src/main/resources/assets/spectrum/models/block/shimmel_snow.json new file mode 100644 index 0000000000..b1343659ff --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shimmel_snow.json @@ -0,0 +1,9 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/blackslag_top", + "particle": "spectrum:block/blackslag_top", + "side": "spectrum:block/shimmel_snow", + "top": "spectrum:block/shimmel_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shimmerstone_block.json b/src/main/resources/assets/spectrum/models/block/shimmerstone_block.json new file mode 100644 index 0000000000..e1d301c2a6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shimmerstone_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/shimmerstone_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shimmerstone_ore.json b/src/main/resources/assets/spectrum/models/block/shimmerstone_ore.json new file mode 100644 index 0000000000..374cde7bba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/shimmerstone_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/shimmerstone_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shooting_star_colorful.json b/src/main/resources/assets/spectrum/models/block/shooting_star_colorful.json index 1e1c8957c3..2a203bffcd 100644 --- a/src/main/resources/assets/spectrum/models/block/shooting_star_colorful.json +++ b/src/main/resources/assets/spectrum/models/block/shooting_star_colorful.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_shooting_star", + "parent": "spectrum:templates/shooting_star", "textures": { "side": "spectrum:block/shooting_star_colorful_side", "core": "spectrum:block/shooting_star_colorful" diff --git a/src/main/resources/assets/spectrum/models/block/shooting_star_fiery.json b/src/main/resources/assets/spectrum/models/block/shooting_star_fiery.json index fc9f56a37a..884011833e 100644 --- a/src/main/resources/assets/spectrum/models/block/shooting_star_fiery.json +++ b/src/main/resources/assets/spectrum/models/block/shooting_star_fiery.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_shooting_star", + "parent": "spectrum:templates/shooting_star", "textures": { "side": "spectrum:block/shooting_star_fiery_side", "core": "spectrum:block/shooting_star_fiery" diff --git a/src/main/resources/assets/spectrum/models/block/shooting_star_gemstone.json b/src/main/resources/assets/spectrum/models/block/shooting_star_gemstone.json index ef9ebb3272..2f199c89ab 100644 --- a/src/main/resources/assets/spectrum/models/block/shooting_star_gemstone.json +++ b/src/main/resources/assets/spectrum/models/block/shooting_star_gemstone.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_shooting_star", + "parent": "spectrum:templates/shooting_star", "textures": { "side": "spectrum:block/shooting_star_gemstone_side", "core": "spectrum:block/shooting_star_gemstone" diff --git a/src/main/resources/assets/spectrum/models/block/shooting_star_glistering.json b/src/main/resources/assets/spectrum/models/block/shooting_star_glistering.json index 5a6cde10d4..aff46a79b1 100644 --- a/src/main/resources/assets/spectrum/models/block/shooting_star_glistering.json +++ b/src/main/resources/assets/spectrum/models/block/shooting_star_glistering.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_shooting_star", + "parent": "spectrum:templates/shooting_star", "textures": { "side": "spectrum:block/shooting_star_glistering", "core": "spectrum:block/shooting_star_glistering" diff --git a/src/main/resources/assets/spectrum/models/block/shooting_star_pristine.json b/src/main/resources/assets/spectrum/models/block/shooting_star_pristine.json index ec427fc64e..2d38a09848 100644 --- a/src/main/resources/assets/spectrum/models/block/shooting_star_pristine.json +++ b/src/main/resources/assets/spectrum/models/block/shooting_star_pristine.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_shooting_star", + "parent": "spectrum:templates/shooting_star", "textures": { "side": "spectrum:block/shooting_star_pristine_side", "core": "spectrum:block/shooting_star_pristine" diff --git a/src/main/resources/assets/spectrum/models/block/shulker_black.json b/src/main/resources/assets/spectrum/models/block/shulker_black.json deleted file mode 100644 index 30b58c5a57..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_black.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/black_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_blue.json b/src/main/resources/assets/spectrum/models/block/shulker_blue.json deleted file mode 100644 index 9d9b2aa950..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_blue.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_brown.json b/src/main/resources/assets/spectrum/models/block/shulker_brown.json deleted file mode 100644 index cb24b5564c..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_brown.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/brown_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_cyan.json b/src/main/resources/assets/spectrum/models/block/shulker_cyan.json deleted file mode 100644 index 7e886485f3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_cyan.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/cyan_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_gray.json b/src/main/resources/assets/spectrum/models/block/shulker_gray.json deleted file mode 100644 index fd28aed4ac..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_gray.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_green.json b/src/main/resources/assets/spectrum/models/block/shulker_green.json deleted file mode 100644 index 20452ed7b5..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_green.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/green_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_light_blue.json b/src/main/resources/assets/spectrum/models/block/shulker_light_blue.json deleted file mode 100644 index a4c8299f9d..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_light_blue.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_light_gray.json b/src/main/resources/assets/spectrum/models/block/shulker_light_gray.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_light_gray.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_lime.json b/src/main/resources/assets/spectrum/models/block/shulker_lime.json deleted file mode 100644 index c3f0c1e20b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_lime.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/lime_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_magenta.json b/src/main/resources/assets/spectrum/models/block/shulker_magenta.json deleted file mode 100644 index 97f9b44712..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_magenta.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/magenta_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_orange.json b/src/main/resources/assets/spectrum/models/block/shulker_orange.json deleted file mode 100644 index b2bd200f22..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_orange.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/orange_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_pink.json b/src/main/resources/assets/spectrum/models/block/shulker_pink.json deleted file mode 100644 index 60e76ca905..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_pink.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/pink_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_purple.json b/src/main/resources/assets/spectrum/models/block/shulker_purple.json deleted file mode 100644 index 50572a864f..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_purple.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/purple_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_red.json b/src/main/resources/assets/spectrum/models/block/shulker_red.json deleted file mode 100644 index 96a7a38a8b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_red.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/red_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_white.json b/src/main/resources/assets/spectrum/models/block/shulker_white.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_white.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/shulker_yellow.json b/src/main/resources/assets/spectrum/models/block/shulker_yellow.json deleted file mode 100644 index 5e59e31dd3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/shulker_yellow.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/yellow_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/silverfish.json b/src/main/resources/assets/spectrum/models/block/silverfish.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/silverfish.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxcap_cap.json b/src/main/resources/assets/spectrum/models/block/slate_noxcap_cap.json new file mode 100644 index 0000000000..c7ca358646 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxcap_cap.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/slate_noxcap_cap_top", + "side": "spectrum:block/slate_noxcap_cap" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxcap_gills.json b/src/main/resources/assets/spectrum/models/block/slate_noxcap_gills.json new file mode 100644 index 0000000000..65eec3f7e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxcap_gills.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/slate_noxcap_gills_top", + "side": "spectrum:block/slate_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/slate_noxcap_stem.json new file mode 100644 index 0000000000..79eb37e660 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/slate_noxcap_stem_top", + "side": "spectrum:block/slate_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxshroom.json b/src/main/resources/assets/spectrum/models/block/slate_noxshroom.json new file mode 100644 index 0000000000..f9e20af552 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/slate_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_amphora.json new file mode 100644 index 0000000000..70245d01dd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_amphora.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/slate_noxwood_amphora_bottom", + "side": "spectrum:block/slate_noxwood_amphora", + "top": "spectrum:block/slate_noxwood_amphora_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_amphora_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_amphora_open.json new file mode 100644 index 0000000000..58915fd551 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_amphora_open.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/cube_bottom_top", + "textures": { + "bottom": "spectrum:block/slate_noxwood_amphora_bottom", + "side": "spectrum:block/slate_noxwood_amphora", + "top": "spectrum:block/slate_noxwood_amphora_top_open" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_beam.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_beam.json new file mode 100644 index 0000000000..580d45a932 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_beam.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/slate_noxwood_beam_top", + "side": "spectrum:block/slate_noxwood_beam" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_button.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_button.json new file mode 100644 index 0000000000..242023dbaa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_button.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_button_inventory.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_button_inventory.json new file mode 100644 index 0000000000..106f77118c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_button_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_inventory", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_button_pressed.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_button_pressed.json new file mode 100644 index 0000000000..59dcc83673 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_button_pressed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/button_pressed", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_left.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_left.json new file mode 100644 index 0000000000..0f5e15d538 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_left_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_left_open.json new file mode 100644 index 0000000000..b309321af4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_left_open", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_right.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_right.json new file mode 100644 index 0000000000..177a7ca808 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_right_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_right_open.json new file mode 100644 index 0000000000..5fc2cdf7cb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_bottom_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_bottom_right_open", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_left.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_left.json new file mode 100644 index 0000000000..36293412a0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_left.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_left_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_left_open.json new file mode 100644 index 0000000000..0606df36ee --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_left_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_left_open", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_right.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_right.json new file mode 100644 index 0000000000..8bf893bf70 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_right.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_right_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_right_open.json new file mode 100644 index 0000000000..2020bf5310 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_door_top_right_open.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/door_top_right_open", + "textures": { + "bottom": "spectrum:block/slate_noxwood_door_bottom", + "top": "spectrum:block/slate_noxwood_door_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate.json new file mode 100644 index 0000000000..8cf9b171ae --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_open.json new file mode 100644 index 0000000000..22e1f24657 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_open", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_wall.json new file mode 100644 index 0000000000..a616524d0d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_wall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_wall_open.json new file mode 100644 index 0000000000..3e121d05aa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_gate_wall_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_fence_gate_wall_open", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_inventory.json new file mode 100644 index 0000000000..a35e264bed --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_inventory", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_post.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_post.json new file mode 100644 index 0000000000..1ec3e4308d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_post", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_side.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_side.json new file mode 100644 index 0000000000..e6299f58bf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_fence_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/fence_side", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp.json new file mode 100644 index 0000000000..27427bbc8b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_alt.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_alt.json new file mode 100644 index 0000000000..9cc84621b3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_alt", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_diagonal.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_diagonal.json new file mode 100644 index 0000000000..914d83c249 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_diagonal_alt.json new file mode 100644 index 0000000000..a33e654f02 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_diagonal_alt", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging.json new file mode 100644 index 0000000000..37f6a68630 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_alt.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_alt.json new file mode 100644 index 0000000000..87f570bf70 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_alt", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_diagonal.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_diagonal.json new file mode 100644 index 0000000000..d2134067d6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_diagonal.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_diagonal_alt.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_diagonal_alt.json new file mode 100644 index 0000000000..1a02ae7874 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lamp_hanging_diagonal_alt.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/noxwood_lamp_hanging_diagonal_alt", + "textures": { + "all": "spectrum:block/slate_noxwood_lamp" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lantern_off.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lantern_off.json new file mode 100644 index 0000000000..733a310f41 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lantern_off.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/slate_noxwood_lantern_off" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_lantern_on.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lantern_on.json new file mode 100644 index 0000000000..46a0ce43a3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_lantern_on.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/slate_noxwood_lantern_on" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_light.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_light.json new file mode 100644 index 0000000000..81fdfeb09f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/multilayer_light", + "textures": { + "top": "spectrum:block/slate_noxwood_light_top", + "side": "spectrum:block/slate_noxwood_light", + "inside": "spectrum:block/slate_noxcap_gills" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_planks.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_planks.json new file mode 100644 index 0000000000..28dd817adb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_pressure_plate.json new file mode 100644 index 0000000000..6c8c3c62ba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_pressure_plate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_up", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_pressure_plate_down.json new file mode 100644 index 0000000000..e4554f14de --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_pressure_plate_down.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/pressure_plate_down", + "textures": { + "texture": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_slab.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_slab.json new file mode 100644 index 0000000000..ea422c9eb8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/slate_noxwood_planks", + "top": "spectrum:block/slate_noxwood_planks", + "side": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_slab_top.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_slab_top.json new file mode 100644 index 0000000000..4f496b83cb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/slate_noxwood_planks", + "top": "spectrum:block/slate_noxwood_planks", + "side": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs.json new file mode 100644 index 0000000000..78d4c7caee --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/slate_noxwood_planks", + "top": "spectrum:block/slate_noxwood_planks", + "side": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs_inner.json new file mode 100644 index 0000000000..461e3a5391 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/slate_noxwood_planks", + "top": "spectrum:block/slate_noxwood_planks", + "side": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs_outer.json new file mode 100644 index 0000000000..6978eab3aa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/slate_noxwood_planks", + "top": "spectrum:block/slate_noxwood_planks", + "side": "spectrum:block/slate_noxwood_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_bottom.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_bottom.json new file mode 100644 index 0000000000..184b3f779a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_bottom", + "textures": { + "texture": "spectrum:block/slate_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_open.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_open.json new file mode 100644 index 0000000000..c9f866ef3b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_open.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_open", + "textures": { + "texture": "spectrum:block/slate_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_top.json b/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_top.json new file mode 100644 index 0000000000..a411f99923 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slate_noxwood_trapdoor_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_orientable_trapdoor_top", + "textures": { + "texture": "spectrum:block/slate_noxwood_trapdoor" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slime.json b/src/main/resources/assets/spectrum/models/block/slime.json deleted file mode 100644 index c3f0c1e20b..0000000000 --- a/src/main/resources/assets/spectrum/models/block/slime.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/lime_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/slush.json b/src/main/resources/assets/spectrum/models/block/slush.json new file mode 100644 index 0000000000..372fe8e4a5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/slush.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/slush" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/small_black_dragonjag.json b/src/main/resources/assets/spectrum/models/block/small_black_dragonjag.json new file mode 100644 index 0000000000..d580a9dd24 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/small_black_dragonjag.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/small_black_dragonjag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/small_green_dragonjag.json b/src/main/resources/assets/spectrum/models/block/small_green_dragonjag.json new file mode 100644 index 0000000000..d6e77ac8b8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/small_green_dragonjag.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/small_green_dragonjag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/small_pink_dragonjag.json b/src/main/resources/assets/spectrum/models/block/small_pink_dragonjag.json new file mode 100644 index 0000000000..3b18fd4ed3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/small_pink_dragonjag.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/small_pink_dragonjag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/small_purple_dragonjag.json b/src/main/resources/assets/spectrum/models/block/small_purple_dragonjag.json new file mode 100644 index 0000000000..bf06874a6e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/small_purple_dragonjag.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/small_purple_dragonjag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/small_red_dragonjag.json b/src/main/resources/assets/spectrum/models/block/small_red_dragonjag.json new file mode 100644 index 0000000000..404a0f8c53 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/small_red_dragonjag.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/small_red_dragonjag" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/snapping_ivy.json b/src/main/resources/assets/spectrum/models/block/snapping_ivy.json new file mode 100644 index 0000000000..00caf7ae9c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/snapping_ivy.json @@ -0,0 +1,317 @@ +{ + "credit": "Made with Blockbench", + "elements": [ + { + "from": [ + 1, + 0, + 1 + ], + "to": [ + 8, + 0, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "texture": "#missing" + } + } + }, + { + "from": [ + 8, + 0, + 1 + ], + "to": [ + 15, + 0, + 15 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "texture": "#missing" + } + } + }, + { + "from": [ + 15, + 0, + 1 + ], + "to": [ + 15, + 3, + 15 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "texture": "#missing" + } + } + }, + { + "from": [ + 1, + 0, + 1 + ], + "to": [ + 1, + 3, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "texture": "#missing" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/snapping_ivy_snapped.json b/src/main/resources/assets/spectrum/models/block/snapping_ivy_snapped.json new file mode 100644 index 0000000000..d6b76c4c99 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/snapping_ivy_snapped.json @@ -0,0 +1,341 @@ +{ + "credit": "Made with Blockbench", + "elements": [ + { + "from": [ + 8, + 0, + 1 + ], + "to": [ + 8, + 7, + 15 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "rotation": 270, + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "rotation": 90, + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "rotation": 90, + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "rotation": 90, + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "rotation": 90, + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "rotation": 90, + "texture": "#missing" + } + } + }, + { + "from": [ + 8, + 0, + 1 + ], + "to": [ + 8, + 7, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "rotation": 90, + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "rotation": 270, + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 7, + 0 + ], + "rotation": 270, + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 7, + 14 + ], + "rotation": 270, + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "rotation": 270, + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 14, + 0 + ], + "rotation": 270, + "texture": "#missing" + } + } + }, + { + "from": [ + 5, + 7, + 1 + ], + "to": [ + 8, + 7, + 15 + ], + "rotation": { + "angle": -22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "rotation": 90, + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "rotation": 270, + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "rotation": 270, + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "rotation": 270, + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "rotation": 270, + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "rotation": 270, + "texture": "#missing" + } + } + }, + { + "from": [ + 8, + 7, + 1 + ], + "to": [ + 11, + 7, + 15 + ], + "rotation": { + "angle": 22.5, + "axis": "z", + "origin": [ + 8, + 0, + 8 + ] + }, + "color": 0, + "faces": { + "north": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "rotation": 270, + "texture": "#missing" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "rotation": 90, + "texture": "#missing" + }, + "south": { + "uv": [ + 0, + 0, + 0, + 3 + ], + "rotation": 90, + "texture": "#missing" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 14 + ], + "rotation": 90, + "texture": "#missing" + }, + "up": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "rotation": 90, + "texture": "#missing" + }, + "down": { + "uv": [ + 0, + 0, + 14, + 3 + ], + "rotation": 90, + "texture": "#missing" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/snow_golem.json b/src/main/resources/assets/spectrum/models/block/snow_golem.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/snow_golem.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sparklestone_block.json b/src/main/resources/assets/spectrum/models/block/sparklestone_block.json deleted file mode 100644 index 238def1b0a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sparklestone_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/sparklestone_block" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sparklestone_ore.json b/src/main/resources/assets/spectrum/models/block/sparklestone_ore.json deleted file mode 100644 index 6aa7329c1e..0000000000 --- a/src/main/resources/assets/spectrum/models/block/sparklestone_ore.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "spectrum:block/sparklestone_ore" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/spider.json b/src/main/resources/assets/spectrum/models/block/spider.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/spider.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/squid.json b/src/main/resources/assets/spectrum/models/block/squid.json deleted file mode 100644 index 9d9b2aa950..0000000000 --- a/src/main/resources/assets/spectrum/models/block/squid.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/blue_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stone_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/block/stone_shimmerstone_light.json new file mode 100644 index 0000000000..31b0bff12d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stone_shimmerstone_light.json @@ -0,0 +1,8 @@ +{ + "parent": "spectrum:templates/shimmerstone_light", + "textures": { + "outer": "minecraft:block/smooth_stone", + "inner": "spectrum:block/shimmerstone_light", + "particle": "minecraft:block/smooth_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stone_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/stone_sparklestone_light.json deleted file mode 100644 index a9ae06a5a4..0000000000 --- a/src/main/resources/assets/spectrum/models/block/stone_sparklestone_light.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "spectrum:block/template_sparklestone_light", - "textures": { - "outer": "minecraft:block/smooth_stone", - "inner": "spectrum:block/sparklestone_light", - "particle": "minecraft:block/smooth_stone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stratine_fragment_block.json b/src/main/resources/assets/spectrum/models/block/stratine_fragment_block.json new file mode 100644 index 0000000000..a7ad9f589f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stratine_fragment_block.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "particle": "spectrum:block/stratine_fragment_block_side", + "north": "spectrum:block/stratine_fragment_block_side", + "east": "spectrum:block/stratine_fragment_block_side", + "south": "spectrum:block/stratine_fragment_block_side", + "west": "spectrum:block/stratine_fragment_block_side", + "up": "spectrum:block/stratine_fragment_block_vertical", + "down": "spectrum:block/stratine_fragment_block_vertical" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stratine_ore.json b/src/main/resources/assets/spectrum/models/block/stratine_ore.json new file mode 100644 index 0000000000..645e1a9904 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stratine_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/stratine_ore" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stray.json b/src/main/resources/assets/spectrum/models/block/stray.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/stray.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/strider.json b/src/main/resources/assets/spectrum/models/block/strider.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/strider.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stripped_chestnut_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/stripped_chestnut_noxcap_stem.json new file mode 100644 index 0000000000..c0ac450cba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stripped_chestnut_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/stripped_chestnut_noxcap_stem_top", + "side": "spectrum:block/stripped_chestnut_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stripped_ebony_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/stripped_ebony_noxcap_stem.json new file mode 100644 index 0000000000..260895124f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stripped_ebony_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/stripped_ebony_noxcap_stem_top", + "side": "spectrum:block/stripped_ebony_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stripped_ivory_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/stripped_ivory_noxcap_stem.json new file mode 100644 index 0000000000..a3f6bade25 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stripped_ivory_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/stripped_ivory_noxcap_stem_top", + "side": "spectrum:block/stripped_ivory_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stripped_slate_noxcap_stem.json b/src/main/resources/assets/spectrum/models/block/stripped_slate_noxcap_stem.json new file mode 100644 index 0000000000..9b1e96cf48 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stripped_slate_noxcap_stem.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "spectrum:block/stripped_slate_noxcap_stem_top", + "side": "spectrum:block/stripped_slate_noxcap_stem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stuck_lightning_stone.json b/src/main/resources/assets/spectrum/models/block/stuck_lightning_stone.json deleted file mode 100644 index 298c9022e3..0000000000 --- a/src/main/resources/assets/spectrum/models/block/stuck_lightning_stone.json +++ /dev/null @@ -1,359 +0,0 @@ -{ - "credit": "Made with Blockbench", - "textures": { - "0": "spectrum:item/lightning_stone", - "1": "minecraft:block/dirt", - "particle": "minecraft:block/dirt" - }, - "elements": [ - { - "from": [ - 5, - -2, - 7 - ], - "to": [ - 11, - 5, - 7 - ], - "rotation": { - "angle": 22.5, - "axis": "x", - "origin": [ - 8, - 0.5, - 8 - ] - }, - "faces": { - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#0" - }, - "east": { - "uv": [ - 0, - 0, - 0, - 7 - ], - "texture": "#0" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#0" - }, - "west": { - "uv": [ - 0, - 0, - 0, - 7 - ], - "texture": "#0" - }, - "up": { - "uv": [ - 0, - 0, - 6, - 0 - ], - "texture": "#0" - }, - "down": { - "uv": [ - 0, - 0, - 6, - 0 - ], - "texture": "#0" - } - } - }, - { - "from": [ - 5, - 0, - 4 - ], - "to": [ - 9, - 1, - 7 - ], - "faces": { - "north": { - "uv": [ - 6, - 12, - 10, - 13 - ], - "texture": "#1" - }, - "east": { - "uv": [ - 10, - 8, - 13, - 9 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 0, - 4, - 1 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 5, - 8, - 8, - 9 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 3, - 6, - 7, - 9 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 7, - 10, - 11, - 13 - ], - "texture": "#1" - } - } - }, - { - "from": [ - 6, - 0, - 7 - ], - "to": [ - 11, - 1, - 10 - ], - "faces": { - "north": { - "uv": [ - 6, - 8, - 11, - 9 - ], - "texture": "#1" - }, - "east": { - "uv": [ - 1, - 9, - 4, - 10 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 8, - 8, - 13, - 9 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 3, - 3, - 4 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 9, - 9, - 14, - 12 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 0, - 10, - 5, - 13 - ], - "texture": "#1" - } - } - }, - { - "from": [ - 4, - 0, - 7 - ], - "to": [ - 6, - 1, - 9 - ], - "faces": { - "north": { - "uv": [ - 7, - 10, - 9, - 11 - ], - "texture": "#1" - }, - "east": { - "uv": [ - 0, - 0, - 2, - 1 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 8, - 4, - 10, - 5 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 8, - 9, - 10, - 10 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 0, - 0, - 2, - 2 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 12, - 2, - 14, - 4 - ], - "texture": "#1" - } - } - }, - { - "from": [ - 9, - 0, - 6 - ], - "to": [ - 10, - 1, - 7 - ], - "faces": { - "north": { - "uv": [ - 12, - 7, - 13, - 8 - ], - "texture": "#1" - }, - "east": { - "uv": [ - 7, - 6, - 8, - 7 - ], - "texture": "#1" - }, - "south": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "#1" - }, - "west": { - "uv": [ - 0, - 0, - 1, - 1 - ], - "texture": "#1" - }, - "up": { - "uv": [ - 5, - 3, - 6, - 4 - ], - "texture": "#1" - }, - "down": { - "uv": [ - 2, - 9, - 3, - 10 - ], - "texture": "#1" - } - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/stuck_storm_stone.json b/src/main/resources/assets/spectrum/models/block/stuck_storm_stone.json new file mode 100644 index 0000000000..fd8215f7a1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/stuck_storm_stone.json @@ -0,0 +1,359 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "spectrum:item/storm_stone", + "1": "minecraft:block/dirt", + "particle": "minecraft:block/dirt" + }, + "elements": [ + { + "from": [ + 5, + -2, + 7 + ], + "to": [ + 11, + 5, + 7 + ], + "rotation": { + "angle": 22.5, + "axis": "x", + "origin": [ + 8, + 0.5, + 8 + ] + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "east": { + "uv": [ + 0, + 0, + 0, + 7 + ], + "texture": "#0" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#0" + }, + "west": { + "uv": [ + 0, + 0, + 0, + 7 + ], + "texture": "#0" + }, + "up": { + "uv": [ + 0, + 0, + 6, + 0 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 0, + 0, + 6, + 0 + ], + "texture": "#0" + } + } + }, + { + "from": [ + 5, + 0, + 4 + ], + "to": [ + 9, + 1, + 7 + ], + "faces": { + "north": { + "uv": [ + 6, + 12, + 10, + 13 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 10, + 8, + 13, + 9 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 1 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 5, + 8, + 8, + 9 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 6, + 7, + 9 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 7, + 10, + 11, + 13 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 6, + 0, + 7 + ], + "to": [ + 11, + 1, + 10 + ], + "faces": { + "north": { + "uv": [ + 6, + 8, + 11, + 9 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 1, + 9, + 4, + 10 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 8, + 8, + 13, + 9 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 3, + 3, + 4 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 9, + 9, + 14, + 12 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 0, + 10, + 5, + 13 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 4, + 0, + 7 + ], + "to": [ + 6, + 1, + 9 + ], + "faces": { + "north": { + "uv": [ + 7, + 10, + 9, + 11 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 1 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 8, + 4, + 10, + 5 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 8, + 9, + 10, + 10 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 12, + 2, + 14, + 4 + ], + "texture": "#1" + } + } + }, + { + "from": [ + 9, + 0, + 6 + ], + "to": [ + 10, + 1, + 7 + ], + "faces": { + "north": { + "uv": [ + 12, + 7, + 13, + 8 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 7, + 6, + 8, + 7 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 0, + 0, + 1, + 1 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 5, + 3, + 6, + 4 + ], + "texture": "#1" + }, + "down": { + "uv": [ + 2, + 9, + 3, + 10 + ], + "texture": "#1" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sugar_stick0.json b/src/main/resources/assets/spectrum/models/block/sugar_stick0.json index f0c6d0d1af..5b3cc753c4 100644 --- a/src/main/resources/assets/spectrum/models/block/sugar_stick0.json +++ b/src/main/resources/assets/spectrum/models/block/sugar_stick0.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick0", - "textures": { - "0": "spectrum:block/sugar_stick", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/sugar_stick" - } + "parent": "spectrum:templates/sugar_stick0", + "textures": { + "0": "spectrum:block/sugar_stick", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/sugar_stick" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sugar_stick1.json b/src/main/resources/assets/spectrum/models/block/sugar_stick1.json index ce33d112af..63bdca1e1a 100644 --- a/src/main/resources/assets/spectrum/models/block/sugar_stick1.json +++ b/src/main/resources/assets/spectrum/models/block/sugar_stick1.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick1", - "textures": { - "0": "spectrum:block/sugar_stick", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/sugar_stick" - } + "parent": "spectrum:templates/sugar_stick1", + "textures": { + "0": "spectrum:block/sugar_stick", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/sugar_stick" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/sugar_stick2.json b/src/main/resources/assets/spectrum/models/block/sugar_stick2.json index 22d5283add..db949f389a 100644 --- a/src/main/resources/assets/spectrum/models/block/sugar_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/sugar_stick2.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick2", - "textures": { - "0": "spectrum:block/sugar_stick", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/sugar_stick" - } + "parent": "spectrum:templates/sugar_stick2", + "textures": { + "0": "spectrum:block/sugar_stick", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/sugar_stick" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_bottom.json b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_bottom.json new file mode 100644 index 0000000000..75d5a9da66 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_black_dragonjag_bottom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_bottom_dead.json b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_bottom_dead.json new file mode 100644 index 0000000000..226fc0fb11 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_bottom_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_black_dragonjag_bottom_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_top.json b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_top.json new file mode 100644 index 0000000000..6de3bc2897 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_black_dragonjag_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_top_dead.json b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_top_dead.json new file mode 100644 index 0000000000..67a8fa9921 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_black_dragonjag_top_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_black_dragonjag_top_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_bottom.json b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_bottom.json new file mode 100644 index 0000000000..659cc22e12 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_green_dragonjag_bottom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_bottom_dead.json b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_bottom_dead.json new file mode 100644 index 0000000000..edbfe43328 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_bottom_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_green_dragonjag_bottom_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_top.json b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_top.json new file mode 100644 index 0000000000..315ba6ede0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_green_dragonjag_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_top_dead.json b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_top_dead.json new file mode 100644 index 0000000000..b9e12460ec --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_green_dragonjag_top_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_green_dragonjag_top_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_bottom.json b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_bottom.json new file mode 100644 index 0000000000..4b54118905 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_pink_dragonjag_bottom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_bottom_dead.json b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_bottom_dead.json new file mode 100644 index 0000000000..85d7a320f9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_bottom_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_pink_dragonjag_bottom_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_top.json b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_top.json new file mode 100644 index 0000000000..125fc44e71 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_pink_dragonjag_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_top_dead.json b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_top_dead.json new file mode 100644 index 0000000000..01c184a3c9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_pink_dragonjag_top_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_pink_dragonjag_top_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_bottom.json b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_bottom.json new file mode 100644 index 0000000000..aced0b44f8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_purple_dragonjag_bottom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_bottom_dead.json b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_bottom_dead.json new file mode 100644 index 0000000000..16213b4809 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_bottom_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_purple_dragonjag_bottom_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_top.json b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_top.json new file mode 100644 index 0000000000..b4acb9ec08 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_purple_dragonjag_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_top_dead.json b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_top_dead.json new file mode 100644 index 0000000000..17e92e99eb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_purple_dragonjag_top_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_purple_dragonjag_top_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_bottom.json b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_bottom.json new file mode 100644 index 0000000000..710d8848f8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_bottom.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_red_dragonjag_bottom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_bottom_dead.json b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_bottom_dead.json new file mode 100644 index 0000000000..3446fce4bf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_bottom_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:templates/double_cross", + "textures": { + "cross": "spectrum:block/tall_red_dragonjag_bottom_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_top.json b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_top.json new file mode 100644 index 0000000000..4a3917210c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_top.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_red_dragonjag_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_top_dead.json b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_top_dead.json new file mode 100644 index 0000000000..527364492e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/tall_red_dragonjag_top_dead.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "spectrum:block/tall_red_dragonjag_top_dead" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/template_sparklestone_light.json b/src/main/resources/assets/spectrum/models/block/template_sparklestone_light.json deleted file mode 100644 index 77c8ab0889..0000000000 --- a/src/main/resources/assets/spectrum/models/block/template_sparklestone_light.json +++ /dev/null @@ -1,265 +0,0 @@ -{ - "parent": "minecraft:block/block", - "credit": "Made with Blockbench", - "textures": { - "outer": "minecraft:block/smooth_stone", - "inner": "spectrum:block/sparklestone_light", - "particle": "minecraft:block/smooth_stone" - }, - "elements": [ - { - "name": "west", - "from": [ - 5, - 0, - 4 - ], - "to": [ - 11, - 1, - 12 - ], - "faces": { - "north": { - "uv": [ - 5, - 6, - 11, - 7 - ], - "texture": "#outer" - }, - "east": { - "uv": [ - 6, - 7, - 14, - 8 - ], - "texture": "#outer" - }, - "south": { - "uv": [ - 5, - 4, - 11, - 5 - ], - "texture": "#outer" - }, - "west": { - "uv": [ - 4, - 8, - 12, - 9 - ], - "texture": "#outer" - }, - "up": { - "uv": [ - 5, - 4, - 11, - 12 - ], - "texture": "#outer" - }, - "down": { - "uv": [ - 4, - 3, - 10, - 11 - ], - "texture": "#outer" - } - } - }, - { - "name": "sparklestone", - "from": [ - 6, - 1, - 5 - ], - "to": [ - 10, - 2, - 11 - ], - "faces": { - "north": { - "uv": [ - 2, - 14, - 6, - 15 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 1, - 1, - 7, - 2 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 10, - 2, - 14, - 3 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 9, - 13, - 15, - 14 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 11, - 9, - 15, - 15 - ], - "texture": "#inner" - }, - "down": { - "uv": [ - 13, - 1, - 15, - 5 - ], - "texture": "#inner" - } - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [ - -17, - 0, - 0 - ], - "translation": [ - 0, - 5, - -1.25 - ], - "scale": [ - 0.7, - 0.7, - 0.7 - ] - }, - "thirdperson_lefthand": { - "rotation": [ - -17, - 0, - 0 - ], - "translation": [ - 0, - 5, - -1.25 - ], - "scale": [ - 0.7, - 0.7, - 0.7 - ] - }, - "firstperson_righthand": { - "rotation": [ - 33, - 0, - 0 - ], - "translation": [ - 5, - 2.5, - -0.5 - ], - "scale": [ - 0.7, - 0.7, - 0.7 - ] - }, - "firstperson_lefthand": { - "rotation": [ - 33, - 0, - 0 - ], - "translation": [ - 5, - 5, - 0.7 - ], - "scale": [ - 0.7, - 0.7, - 0.7 - ] - }, - "ground": { - "translation": [ - 0, - 4, - 0 - ], - "scale": [ - 0.5, - 0.5, - 0.5 - ] - }, - "gui": { - "rotation": [ - 120, - 0, - -30 - ], - "translation": [ - 4.5, - -4.5, - 0 - ], - "scale": [ - 1.25, - 1.25, - 1.25 - ] - }, - "fixed": { - "rotation": [ - -90, - 0, - 0 - ], - "translation": [ - 0, - 0, - -12 - ], - "scale": [ - 1.5, - 1.5, - 1.5 - ] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/terror_bedrock.json b/src/main/resources/assets/spectrum/models/block/terror_bedrock.json deleted file mode 100644 index a0e60b16bc..0000000000 --- a/src/main/resources/assets/spectrum/models/block/terror_bedrock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "spectrum:block/terror_bedrock" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/terror_default.json b/src/main/resources/assets/spectrum/models/block/terror_default.json deleted file mode 100644 index e6d9808add..0000000000 --- a/src/main/resources/assets/spectrum/models/block/terror_default.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/cube_all", - "textures": { - "all": "spectrum:block/terror_default" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_basalt_lamp.json b/src/main/resources/assets/spectrum/models/block/topaz_basalt_lamp.json index 3b38dc4e67..9567e10067 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_basalt_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_basalt_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/topaz_basalt_lamp", - "vertical": "spectrum:block/polished_basalt", - "side_outer": "spectrum:block/topaz_basalt_lamp", - "inner": "spectrum:block/topaz_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_basalt", + "side": "spectrum:block/topaz_basalt_lamp", + "inside": "spectrum:block/topaz_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_calcite_lamp.json b/src/main/resources/assets/spectrum/models/block/topaz_calcite_lamp.json index 9653afceb7..0496a7ca50 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_calcite_lamp.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_calcite_lamp.json @@ -1,118 +1,8 @@ { - "parent": "block/block", + "parent": "spectrum:templates/multilayer_light", "textures": { - "particle": "spectrum:block/topaz_calcite_lamp", - "vertical": "spectrum:block/polished_calcite", - "side_outer": "spectrum:block/topaz_calcite_lamp", - "inner": "spectrum:block/topaz_block" - }, - "elements": [ - { - "from": [ - 0, - 0, - 0 - ], - "to": [ - 16, - 16, - 16 - ], - "faces": { - "down": { - "texture": "#vertical", - "cullface": "down" - }, - "up": { - "texture": "#vertical", - "cullface": "up" - }, - "north": { - "texture": "#side_outer", - "cullface": "north" - }, - "south": { - "texture": "#side_outer", - "cullface": "south" - }, - "west": { - "texture": "#side_outer", - "cullface": "west" - }, - "east": { - "texture": "#side_outer", - "cullface": "east" - } - } - }, - { - "from": [ - 1, - 1, - 1 - ], - "to": [ - 15, - 15, - 15 - ], - "faces": { - "down": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "up": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "north": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "south": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "west": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - }, - "east": { - "uv": [ - 0, - 0, - 16, - 16 - ], - "texture": "#inner" - } - } - } - ] -} - + "top": "spectrum:block/polished_calcite", + "side": "spectrum:block/topaz_calcite_lamp", + "inside": "spectrum:block/topaz_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_chime.json b/src/main/resources/assets/spectrum/models/block/topaz_chime.json index 9759579aa1..89ec355f05 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_chime.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_chime.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_chime", + "parent": "spectrum:templates/chime", "textures": { "gemstone": "spectrum:block/topaz_glass" } diff --git a/src/main/resources/assets/spectrum/models/block/topaz_decostone_bottom.json b/src/main/resources/assets/spectrum/models/block/topaz_decostone_bottom.json index 233b59363c..4b1af8c38a 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_decostone_bottom.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_decostone_bottom.json @@ -1,142 +1,667 @@ { - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "0": "spectrum:block/polished_basalt", - "1": "spectrum:block/polished_calcite", - "2": "spectrum:block/topaz_decostone", - "3": "spectrum:block/polished_basalt_pillar_side", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [3, 3, 3], - "to": [9, 12, 10], - "faces": { - "north": {"uv": [0, 0, 6, 9], "texture": "#2"}, - "east": {"uv": [0, 0, 7, 9], "texture": "#2"}, - "south": {"uv": [0, 0, 6, 9], "texture": "#2"}, - "west": {"uv": [0, 0, 7, 9], "texture": "#2"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [2, 5, 5], - "to": [3, 10, 8], - "faces": { - "north": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 1, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 1, 3], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [5, 3, 5], - "to": [13, 16, 11], - "faces": { - "north": {"uv": [0, 0, 8, 13], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 15], "texture": "#2"}, - "south": {"uv": [0, 0, 8, 15], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 15], "texture": "#2"} - } - }, - { - "from": [6, 15, 10], - "to": [9, 16, 13], - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [4, 14, 4], - "to": [7, 16, 7], - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [9, 5, 3], - "to": [12, 10, 5], - "faces": { - "north": {"uv": [0, 0, 3, 5], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 5], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 5], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 5], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 2], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "from": [4, 3, 6], - "to": [11, 7, 13], - "faces": { - "north": {"uv": [0, 0, 7, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 7, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 7, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 7, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 7, 7], "texture": "#2"} - } - }, - { - "from": [10, 10, 6], - "to": [14, 14, 13], - "faces": { - "north": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 7, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 4, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 7, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 4, 7], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - }, - { - "name": "upper", - "from": [2, 2, 2], - "to": [14, 3, 14], - "faces": { - "north": {"uv": [3, 15, 15, 16], "texture": "#1"}, - "east": {"uv": [0, 15, 12, 16], "texture": "#1"}, - "south": {"uv": [4, 15, 16, 16], "texture": "#1"}, - "west": {"uv": [1, 15, 13, 16], "texture": "#1"}, - "up": {"uv": [3, 3, 15, 15], "texture": "#1"} - } - }, - { - "name": "lower", - "from": [1, 0, 1], - "to": [15, 2, 15], - "faces": { - "north": {"uv": [0, 2, 14, 4], "rotation": 180, "texture": "#3"}, - "east": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "south": {"uv": [1, 15, 15, 16], "texture": "#3"}, - "west": {"uv": [2, 15, 16, 16], "texture": "#3"}, - "up": {"uv": [1, 1, 15, 15], "texture": "#0"}, - "down": {"uv": [1, 1, 15, 15], "texture": "#0"} - } - } - ], - "groups": [ - { - "name": "crystal", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2, 3, 4, 5, 6, 7] - }, - { - "name": "base", - "origin": [0, 0, 0], - "color": 0, - "children": [8, 9] - } - ] + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "spectrum:block/polished_basalt", + "1": "spectrum:block/polished_calcite", + "2": "spectrum:block/topaz_decostone", + "3": "spectrum:block/polished_basalt_pillar_side", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 3, + 3, + 3 + ], + "to": [ + 9, + 12, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 6, + 9 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 7, + 9 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 6, + 9 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 7, + 9 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 2, + 5, + 5 + ], + "to": [ + 3, + 10, + 8 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 1, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 1, + 3 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 3, + 5 + ], + "to": [ + 13, + 16, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 8, + 13 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 15 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 8, + 15 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 15 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 15, + 10 + ], + "to": [ + 9, + 16, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 14, + 4 + ], + "to": [ + 7, + 16, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 9, + 5, + 3 + ], + "to": [ + 12, + 10, + 5 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 5 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 5 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 5 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 2 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 3, + 6 + ], + "to": [ + 11, + 7, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 7, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 7, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 7, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 7, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 7, + 7 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 10, + 10, + 6 + ], + "to": [ + 14, + 14, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 7, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 4, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 7, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 4, + 7 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + }, + { + "name": "upper", + "from": [ + 2, + 2, + 2 + ], + "to": [ + 14, + 3, + 14 + ], + "faces": { + "north": { + "uv": [ + 3, + 15, + 15, + 16 + ], + "texture": "#1" + }, + "east": { + "uv": [ + 0, + 15, + 12, + 16 + ], + "texture": "#1" + }, + "south": { + "uv": [ + 4, + 15, + 16, + 16 + ], + "texture": "#1" + }, + "west": { + "uv": [ + 1, + 15, + 13, + 16 + ], + "texture": "#1" + }, + "up": { + "uv": [ + 3, + 3, + 15, + 15 + ], + "texture": "#1" + } + } + }, + { + "name": "lower", + "from": [ + 1, + 0, + 1 + ], + "to": [ + 15, + 2, + 15 + ], + "faces": { + "north": { + "uv": [ + 0, + 2, + 14, + 4 + ], + "rotation": 180, + "texture": "#3" + }, + "east": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "south": { + "uv": [ + 1, + 15, + 15, + 16 + ], + "texture": "#3" + }, + "west": { + "uv": [ + 2, + 15, + 16, + 16 + ], + "texture": "#3" + }, + "up": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + }, + "down": { + "uv": [ + 1, + 1, + 15, + 15 + ], + "texture": "#0" + } + } + } + ], + "groups": [ + { + "name": "crystal", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "name": "base", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 8, + 9 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_decostone_top.json b/src/main/resources/assets/spectrum/models/block/topaz_decostone_top.json index 942cbe0f01..a7ec45ce2f 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_decostone_top.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_decostone_top.json @@ -1,85 +1,392 @@ { - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "2": "spectrum:block/topaz_decostone", - "particle": "spectrum:block/polished_basalt" - }, - "elements": [ - { - "from": [5, 0, 5], - "to": [13, 2, 11], - "faces": { - "north": {"uv": [0, 0, 8, 2], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 15], "texture": "#2"}, - "south": {"uv": [0, 0, 8, 15], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 15], "texture": "#2"}, - "up": {"uv": [0, 0, 8, 6], "texture": "#2"} - } - }, - { - "from": [5, 2, 6], - "to": [10, 11, 10], - "faces": { - "north": {"uv": [0, 0, 5, 9], "texture": "#2"}, - "east": {"uv": [0, 0, 4, 9], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 9], "texture": "#2"}, - "west": {"uv": [0, 0, 4, 9], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 4], "texture": "#2"} - } - }, - { - "from": [7, 11, 7], - "to": [9, 15, 9], - "faces": { - "north": {"uv": [0, 0, 2, 4], "texture": "#2"}, - "east": {"uv": [0, 0, 2, 4], "texture": "#2"}, - "south": {"uv": [0, 0, 2, 4], "texture": "#2"}, - "west": {"uv": [0, 0, 2, 4], "texture": "#2"}, - "up": {"uv": [0, 0, 2, 2], "texture": "#2"} - } - }, - { - "from": [6, 0, 10], - "to": [9, 7, 13], - "faces": { - "north": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 7], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#2"} - } - }, - { - "from": [4, 0, 4], - "to": [7, 6, 7], - "faces": { - "north": {"uv": [0, 0, 3, 6], "texture": "#2"}, - "east": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "west": {"uv": [0, 0, 3, 8], "texture": "#2"}, - "up": {"uv": [0, 0, 3, 3], "texture": "#2"} - } - }, - { - "from": [7, 0, 3], - "to": [12, 8, 9], - "faces": { - "north": {"uv": [0, 0, 5, 8], "texture": "#2"}, - "east": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "south": {"uv": [0, 0, 5, 8], "texture": "#2"}, - "west": {"uv": [0, 0, 6, 8], "texture": "#2"}, - "up": {"uv": [0, 0, 5, 6], "texture": "#2"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#2"} - } - } - ], - "groups": [ - { - "name": "crystal", - "origin": [0, 0, 0], - "color": 0, - "children": [0, 1, 2, 3, 4, 5] - } - ] + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "2": "spectrum:block/topaz_decostone", + "particle": "spectrum:block/polished_basalt" + }, + "elements": [ + { + "from": [ + 5, + 0, + 5 + ], + "to": [ + 13, + 2, + 11 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 8, + 2 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 15 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 8, + 15 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 15 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 8, + 6 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 5, + 2, + 6 + ], + "to": [ + 10, + 11, + 10 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 9 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 4, + 9 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 9 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 4, + 9 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 4 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 11, + 7 + ], + "to": [ + 9, + 15, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 2, + 4 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 2, + 4 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 2, + 4 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 2, + 4 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 2, + 2 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 6, + 0, + 10 + ], + "to": [ + 9, + 7, + 13 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 7 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 4, + 0, + 4 + ], + "to": [ + 7, + 6, + 7 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 3, + 6 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 3, + 8 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 3, + 3 + ], + "texture": "#2" + } + } + }, + { + "from": [ + 7, + 0, + 3 + ], + "to": [ + 12, + 8, + 9 + ], + "faces": { + "north": { + "uv": [ + 0, + 0, + 5, + 8 + ], + "texture": "#2" + }, + "east": { + "uv": [ + 0, + 0, + 6, + 8 + ], + "texture": "#2" + }, + "south": { + "uv": [ + 0, + 0, + 5, + 8 + ], + "texture": "#2" + }, + "west": { + "uv": [ + 0, + 0, + 6, + 8 + ], + "texture": "#2" + }, + "up": { + "uv": [ + 0, + 0, + 5, + 6 + ], + "texture": "#2" + }, + "down": { + "uv": [ + 0, + 0, + 0, + 0 + ], + "texture": "#2" + } + } + } + ], + "groups": [ + { + "name": "crystal", + "origin": [ + 0, + 0, + 0 + ], + "color": 0, + "children": [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick0.json b/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick0.json index c19f75bba5..c5a15e4c28 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick0.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick0.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick0", - "textures": { - "0": "spectrum:block/topaz_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/topaz_glass" - } + "parent": "spectrum:templates/sugar_stick0", + "textures": { + "0": "spectrum:block/topaz_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/topaz_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick1.json b/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick1.json index 6b227f087c..07cd8a89cd 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick1.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick1.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick1", - "textures": { - "0": "spectrum:block/topaz_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/topaz_glass" - } + "parent": "spectrum:templates/sugar_stick1", + "textures": { + "0": "spectrum:block/topaz_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/topaz_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick2.json b/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick2.json index af687032eb..1cc00fe365 100644 --- a/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick2.json +++ b/src/main/resources/assets/spectrum/models/block/topaz_sugar_stick2.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:block/template_sugar_stick2", - "textures": { - "0": "spectrum:block/topaz_glass", - "1": "minecraft:block/oak_planks", - "particle": "spectrum:block/topaz_glass" - } + "parent": "spectrum:templates/sugar_stick2", + "textures": { + "0": "spectrum:block/topaz_glass", + "1": "minecraft:block/oak_planks", + "particle": "spectrum:block/topaz_glass" + } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/trader_llama.json b/src/main/resources/assets/spectrum/models/block/trader_llama.json deleted file mode 100644 index 91e7d52693..0000000000 --- a/src/main/resources/assets/spectrum/models/block/trader_llama.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/white_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/turtle.json b/src/main/resources/assets/spectrum/models/block/turtle.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/turtle.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/upgrade_speed.json b/src/main/resources/assets/spectrum/models/block/upgrade_speed.json index 32daaa513f..9e67d8da39 100644 --- a/src/main/resources/assets/spectrum/models/block/upgrade_speed.json +++ b/src/main/resources/assets/spectrum/models/block/upgrade_speed.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:block/template_upgrade", + "parent": "spectrum:templates/upgrade", "textures": { "inner": "spectrum:block/upgrade_speed_inner", "outer": "spectrum:block/upgrade_speed_outer", diff --git a/src/main/resources/assets/spectrum/models/block/vex.json b/src/main/resources/assets/spectrum/models/block/vex.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/vex.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/villager.json b/src/main/resources/assets/spectrum/models/block/villager.json deleted file mode 100644 index cb24b5564c..0000000000 --- a/src/main/resources/assets/spectrum/models/block/villager.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/brown_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/vindicator.json b/src/main/resources/assets/spectrum/models/block/vindicator.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/vindicator.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/wand_light.json b/src/main/resources/assets/spectrum/models/block/wand_light.json index 7796487388..c525c107f6 100644 --- a/src/main/resources/assets/spectrum/models/block/wand_light.json +++ b/src/main/resources/assets/spectrum/models/block/wand_light.json @@ -1,5 +1,5 @@ { "textures": { - "particle": "spectrum:block/sparklestone_light" + "particle": "spectrum:block/shimmerstone_light" } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/wandering_trader.json b/src/main/resources/assets/spectrum/models/block/wandering_trader.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/wandering_trader.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay.json b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay.json new file mode 100644 index 0000000000..ce4d3a67c4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/weathered_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_slab.json new file mode 100644 index 0000000000..556827cee4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/weathered_polished_shale_clay", + "top": "spectrum:block/weathered_polished_shale_clay", + "side": "spectrum:block/weathered_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_slab_top.json b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_slab_top.json new file mode 100644 index 0000000000..6a3c1f2749 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/weathered_polished_shale_clay", + "top": "spectrum:block/weathered_polished_shale_clay", + "side": "spectrum:block/weathered_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..82bbe3837a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/weathered_polished_shale_clay", + "top": "spectrum:block/weathered_polished_shale_clay", + "side": "spectrum:block/weathered_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs_inner.json new file mode 100644 index 0000000000..a78eebe43b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/weathered_polished_shale_clay", + "top": "spectrum:block/weathered_polished_shale_clay", + "side": "spectrum:block/weathered_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs_outer.json new file mode 100644 index 0000000000..cdac1614b2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_polished_shale_clay_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/weathered_polished_shale_clay", + "top": "spectrum:block/weathered_polished_shale_clay", + "side": "spectrum:block/weathered_polished_shale_clay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_slab.json new file mode 100644 index 0000000000..ac59f396a4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_bricks", + "top": "spectrum:block/weathered_shale_clay_bricks", + "side": "spectrum:block/weathered_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_slab_top.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_slab_top.json new file mode 100644 index 0000000000..affe6e7762 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_bricks", + "top": "spectrum:block/weathered_shale_clay_bricks", + "side": "spectrum:block/weathered_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..e6890c5917 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_bricks", + "top": "spectrum:block/weathered_shale_clay_bricks", + "side": "spectrum:block/weathered_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs_inner.json new file mode 100644 index 0000000000..16d4377add --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_bricks", + "top": "spectrum:block/weathered_shale_clay_bricks", + "side": "spectrum:block/weathered_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs_outer.json new file mode 100644 index 0000000000..d633acd5c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_bricks", + "top": "spectrum:block/weathered_shale_clay_bricks", + "side": "spectrum:block/weathered_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_bricks.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_bricks.json new file mode 100644 index 0000000000..13a8c9ea2b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/weathered_shale_clay_bricks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_slab.json new file mode 100644 index 0000000000..b1c72ffe25 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_tiles", + "top": "spectrum:block/weathered_shale_clay_tiles", + "side": "spectrum:block/weathered_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_slab_top.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_slab_top.json new file mode 100644 index 0000000000..c3e1a630ea --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_tiles", + "top": "spectrum:block/weathered_shale_clay_tiles", + "side": "spectrum:block/weathered_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..03b9bfdfb5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_tiles", + "top": "spectrum:block/weathered_shale_clay_tiles", + "side": "spectrum:block/weathered_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs_inner.json new file mode 100644 index 0000000000..ce8dde5015 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_tiles", + "top": "spectrum:block/weathered_shale_clay_tiles", + "side": "spectrum:block/weathered_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs_outer.json new file mode 100644 index 0000000000..4c4f98a427 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tile_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "spectrum:block/weathered_shale_clay_tiles", + "top": "spectrum:block/weathered_shale_clay_tiles", + "side": "spectrum:block/weathered_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tiles.json b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tiles.json new file mode 100644 index 0000000000..8fd230af2e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/block/weathered_shale_clay_tiles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "spectrum:block/weathered_shale_clay_tiles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_button.json b/src/main/resources/assets/spectrum/models/block/white_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_button.json rename to src/main/resources/assets/spectrum/models/block/white_button.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/white_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/white_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/white_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/white_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/white_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/white_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/white_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/white_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/white_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/white_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/white_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/white_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/white_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/white_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/white_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/white_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/white_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/white_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/white_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/white_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/white_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/white_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_slab.json b/src/main/resources/assets/spectrum/models/block/white_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/white_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/white_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/white_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/white_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/white_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/white_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/white_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/white_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/white_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/white_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/white_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/witch.json b/src/main/resources/assets/spectrum/models/block/witch.json deleted file mode 100644 index 30b58c5a57..0000000000 --- a/src/main/resources/assets/spectrum/models/block/witch.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/black_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/wither.json b/src/main/resources/assets/spectrum/models/block/wither.json deleted file mode 100644 index 30b58c5a57..0000000000 --- a/src/main/resources/assets/spectrum/models/block/wither.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/black_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/wolf.json b/src/main/resources/assets/spectrum/models/block/wolf.json deleted file mode 100644 index 861a4e761a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/wolf.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/light_gray_wool" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_button.json b/src/main/resources/assets/spectrum/models/block/yellow_button.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_button.json rename to src/main/resources/assets/spectrum/models/block/yellow_button.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_button_inventory.json b/src/main/resources/assets/spectrum/models/block/yellow_button_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_button_inventory.json rename to src/main/resources/assets/spectrum/models/block/yellow_button_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_button_pressed.json b/src/main/resources/assets/spectrum/models/block/yellow_button_pressed.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_button_pressed.json rename to src/main/resources/assets/spectrum/models/block/yellow_button_pressed.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_gate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_gate.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate_open.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_gate_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate_open.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_gate_open.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate_wall.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_gate_wall.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate_wall.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_gate_wall.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate_wall_open.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_gate_wall_open.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_gate_wall_open.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_gate_wall_open.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_inventory.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_inventory.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_inventory.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_inventory.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_post.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_post.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_post.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_post.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_fence_side.json b/src/main/resources/assets/spectrum/models/block/yellow_fence_side.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_fence_side.json rename to src/main/resources/assets/spectrum/models/block/yellow_fence_side.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/block/yellow_pressure_plate.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_pressure_plate.json rename to src/main/resources/assets/spectrum/models/block/yellow_pressure_plate.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_pressure_plate_down.json b/src/main/resources/assets/spectrum/models/block/yellow_pressure_plate_down.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_pressure_plate_down.json rename to src/main/resources/assets/spectrum/models/block/yellow_pressure_plate_down.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_slab.json b/src/main/resources/assets/spectrum/models/block/yellow_slab.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_slab.json rename to src/main/resources/assets/spectrum/models/block/yellow_slab.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_slab_top.json b/src/main/resources/assets/spectrum/models/block/yellow_slab_top.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_slab_top.json rename to src/main/resources/assets/spectrum/models/block/yellow_slab_top.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_stairs.json b/src/main/resources/assets/spectrum/models/block/yellow_stairs.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_stairs.json rename to src/main/resources/assets/spectrum/models/block/yellow_stairs.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_stairs_inner.json b/src/main/resources/assets/spectrum/models/block/yellow_stairs_inner.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_stairs_inner.json rename to src/main/resources/assets/spectrum/models/block/yellow_stairs_inner.json diff --git a/src/main/resources/assets/spectrum/models/block/yellow_plank_stairs_outer.json b/src/main/resources/assets/spectrum/models/block/yellow_stairs_outer.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/yellow_plank_stairs_outer.json rename to src/main/resources/assets/spectrum/models/block/yellow_stairs_outer.json diff --git a/src/main/resources/assets/spectrum/models/block/zoglin.json b/src/main/resources/assets/spectrum/models/block/zoglin.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/zoglin.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/zombie_villager.json b/src/main/resources/assets/spectrum/models/block/zombie_villager.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/zombie_villager.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/zombified_piglin.json b/src/main/resources/assets/spectrum/models/block/zombified_piglin.json deleted file mode 100644 index 99a7d7095a..0000000000 --- a/src/main/resources/assets/spectrum/models/block/zombified_piglin.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "minecraft:block/soul_sand" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/allay_head.json b/src/main/resources/assets/spectrum/models/item/allay_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/allay_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/aloe.json b/src/main/resources/assets/spectrum/models/item/aloe.json new file mode 100644 index 0000000000..6920ca2b43 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/aloe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:block/aloe4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/aloe_leaf.json b/src/main/resources/assets/spectrum/models/item/aloe_leaf.json new file mode 100644 index 0000000000..36fc955fe0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/aloe_leaf.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/aloe_leaf" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/amethyst_glass_arrow.json b/src/main/resources/assets/spectrum/models/item/amethyst_glass_arrow.json new file mode 100644 index 0000000000..3e4c537d76 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/amethyst_glass_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/amethyst_glass_arrow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/amethyst_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/amethyst_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/amethyst_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/amethyst_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/ancient_chiseled_polished_blackslag.json b/src/main/resources/assets/spectrum/models/item/ancient_chiseled_polished_blackslag.json new file mode 100644 index 0000000000..6dbf6d1d9b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ancient_chiseled_polished_blackslag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ancient_chiseled_polished_blackslag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/andesite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/andesite_shimmerstone_light.json new file mode 100644 index 0000000000..38efd7d124 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/andesite_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/andesite_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/andesite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/andesite_sparklestone_light.json deleted file mode 100644 index a8e47bcab7..0000000000 --- a/src/main/resources/assets/spectrum/models/item/andesite_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/andesite_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/azurite_chiseled_basalt.json b/src/main/resources/assets/spectrum/models/item/azurite_chiseled_basalt.json new file mode 100644 index 0000000000..9c7bde5e29 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/azurite_chiseled_basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/azurite_chiseled_basalt" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/azurite_chiseled_calcite.json b/src/main/resources/assets/spectrum/models/item/azurite_chiseled_calcite.json new file mode 100644 index 0000000000..7baf431c52 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/azurite_chiseled_calcite.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/azurite_chiseled_calcite" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bag_of_holding.json b/src/main/resources/assets/spectrum/models/item/bag_of_holding.json new file mode 100644 index 0000000000..0f41d40bc0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bag_of_holding.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/bag_of_holding" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/basalt_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/basalt_shimmerstone_light.json new file mode 100644 index 0000000000..a36fc431b1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/basalt_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/basalt_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/basalt_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/basalt_sparklestone_light.json deleted file mode 100644 index 577879ae30..0000000000 --- a/src/main/resources/assets/spectrum/models/item/basalt_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/basalt_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/basalt_tile_slab.json b/src/main/resources/assets/spectrum/models/item/basalt_tile_slab.json new file mode 100644 index 0000000000..ddbdfe355a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/basalt_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/basalt_tile_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/basalt_tile_stairs.json b/src/main/resources/assets/spectrum/models/item/basalt_tile_stairs.json new file mode 100644 index 0000000000..f3c3e9ed1e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/basalt_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/basalt_tile_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/basalt_tile_wall.json b/src/main/resources/assets/spectrum/models/item/basalt_tile_wall.json new file mode 100644 index 0000000000..8ce27816cc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/basalt_tile_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/basalt_tile_wall_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/basalt_tiles.json b/src/main/resources/assets/spectrum/models/item/basalt_tiles.json new file mode 100644 index 0000000000..db2618d2d8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/basalt_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/basalt_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_button.json b/src/main/resources/assets/spectrum/models/item/black_button.json new file mode 100644 index 0000000000..0ea92e7bfc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_fence.json b/src/main/resources/assets/spectrum/models/item/black_fence.json new file mode 100644 index 0000000000..f12dce5c64 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_fence_gate.json b/src/main/resources/assets/spectrum/models/item/black_fence_gate.json new file mode 100644 index 0000000000..c73225c6d6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_hole_chest.json b/src/main/resources/assets/spectrum/models/item/black_hole_chest.json new file mode 100644 index 0000000000..02b5a7ee18 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_hole_chest.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_hole_chest" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_plank_button.json b/src/main/resources/assets/spectrum/models/item/black_plank_button.json deleted file mode 100644 index e5411fb07a..0000000000 --- a/src/main/resources/assets/spectrum/models/item/black_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/black_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_plank_fence.json b/src/main/resources/assets/spectrum/models/item/black_plank_fence.json deleted file mode 100644 index b8f836a9ab..0000000000 --- a/src/main/resources/assets/spectrum/models/item/black_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/black_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/black_plank_fence_gate.json deleted file mode 100644 index 922356fd32..0000000000 --- a/src/main/resources/assets/spectrum/models/item/black_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/black_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/black_plank_pressure_plate.json deleted file mode 100644 index 4998bbef42..0000000000 --- a/src/main/resources/assets/spectrum/models/item/black_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/black_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_plank_slab.json b/src/main/resources/assets/spectrum/models/item/black_plank_slab.json deleted file mode 100644 index 9d7fc078c0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/black_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/black_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/black_plank_stairs.json deleted file mode 100644 index 344f611983..0000000000 --- a/src/main/resources/assets/spectrum/models/item/black_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/black_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/black_pressure_plate.json new file mode 100644 index 0000000000..e7a05cd6cf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_slab.json b/src/main/resources/assets/spectrum/models/item/black_slab.json new file mode 100644 index 0000000000..8e41d6c0a1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_sludge.json b/src/main/resources/assets/spectrum/models/item/black_sludge.json new file mode 100644 index 0000000000..842e2dc20c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_sludge.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_sludge" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/black_stairs.json b/src/main/resources/assets/spectrum/models/item/black_stairs.json new file mode 100644 index 0000000000..3b63728eba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/black_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/black_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_amethyst_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_amethyst_ore.json new file mode 100644 index 0000000000..c43483127b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_amethyst_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_amethyst_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_azurite_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_azurite_ore.json new file mode 100644 index 0000000000..2f0d8c6657 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_azurite_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_azurite_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_brick_slab.json b/src/main/resources/assets/spectrum/models/item/blackslag_brick_slab.json new file mode 100644 index 0000000000..aba2cbe522 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_brick_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_brick_stairs.json b/src/main/resources/assets/spectrum/models/item/blackslag_brick_stairs.json new file mode 100644 index 0000000000..6e6b2096cf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_brick_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_brick_wall.json b/src/main/resources/assets/spectrum/models/item/blackslag_brick_wall.json new file mode 100644 index 0000000000..ba682285a3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_brick_wall_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_bricks.json b/src/main/resources/assets/spectrum/models/item/blackslag_bricks.json new file mode 100644 index 0000000000..03d83c39d2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_citrine_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_citrine_ore.json new file mode 100644 index 0000000000..25e922011b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_citrine_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_citrine_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_copper_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_copper_ore.json new file mode 100644 index 0000000000..2588e1e8c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_copper_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_copper_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_moonstone_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_moonstone_ore.json new file mode 100644 index 0000000000..48a59e40d2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_moonstone_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_moonstone_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_onyx_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_onyx_ore.json new file mode 100644 index 0000000000..82f8e7add3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_onyx_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_onyx_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/blackslag_shimmerstone_light.json new file mode 100644 index 0000000000..41c97f2b41 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_shimmerstone_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_shimmerstone_ore.json new file mode 100644 index 0000000000..b0aafe6401 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_shimmerstone_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_shimmerstone_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_sparklestone_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_sparklestone_ore.json deleted file mode 100644 index ae5e40ba04..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blackslag_sparklestone_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blackslag_sparklestone_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_tile_slab.json b/src/main/resources/assets/spectrum/models/item/blackslag_tile_slab.json new file mode 100644 index 0000000000..a51fc93220 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_tile_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_tile_stairs.json b/src/main/resources/assets/spectrum/models/item/blackslag_tile_stairs.json new file mode 100644 index 0000000000..0cd495b68d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_tile_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_tile_wall.json b/src/main/resources/assets/spectrum/models/item/blackslag_tile_wall.json new file mode 100644 index 0000000000..9b46a8f9c1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_tile_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_tile_wall_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_tiles.json b/src/main/resources/assets/spectrum/models/item/blackslag_tiles.json new file mode 100644 index 0000000000..851a7c78f7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blackslag_topaz_ore.json b/src/main/resources/assets/spectrum/models/item/blackslag_topaz_ore.json new file mode 100644 index 0000000000..9287d41d84 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blackslag_topaz_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag_topaz_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_button.json b/src/main/resources/assets/spectrum/models/item/blue_button.json new file mode 100644 index 0000000000..428e84e6c4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blue_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blue_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_fence.json b/src/main/resources/assets/spectrum/models/item/blue_fence.json new file mode 100644 index 0000000000..5f8f0e6ee4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blue_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blue_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_fence_gate.json b/src/main/resources/assets/spectrum/models/item/blue_fence_gate.json new file mode 100644 index 0000000000..d8f008658f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blue_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blue_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_plank_button.json b/src/main/resources/assets/spectrum/models/item/blue_plank_button.json deleted file mode 100644 index 06267eaf13..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blue_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blue_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_plank_fence.json b/src/main/resources/assets/spectrum/models/item/blue_plank_fence.json deleted file mode 100644 index ab6b12c697..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blue_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blue_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/blue_plank_fence_gate.json deleted file mode 100644 index f310835813..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blue_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blue_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/blue_plank_pressure_plate.json deleted file mode 100644 index a3b1c82f38..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blue_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blue_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_plank_slab.json b/src/main/resources/assets/spectrum/models/item/blue_plank_slab.json deleted file mode 100644 index ca5c89f7f4..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blue_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blue_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/blue_plank_stairs.json deleted file mode 100644 index fc0c3ba128..0000000000 --- a/src/main/resources/assets/spectrum/models/item/blue_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/blue_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/blue_pressure_plate.json new file mode 100644 index 0000000000..a378955001 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blue_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blue_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_slab.json b/src/main/resources/assets/spectrum/models/item/blue_slab.json new file mode 100644 index 0000000000..8cc7624191 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blue_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blue_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/blue_stairs.json b/src/main/resources/assets/spectrum/models/item/blue_stairs.json new file mode 100644 index 0000000000..950ec5be8b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/blue_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blue_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bottle_of_forfeiture.json b/src/main/resources/assets/spectrum/models/item/bottle_of_forfeiture.json new file mode 100644 index 0000000000..f9d58a7eac --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bottle_of_forfeiture.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/bottle_of_forfeiture" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bottle_of_terror.json b/src/main/resources/assets/spectrum/models/item/bottle_of_terror.json deleted file mode 100644 index a99e15d490..0000000000 --- a/src/main/resources/assets/spectrum/models/item/bottle_of_terror.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/bottle_of_terror" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bottomless_bundle.json b/src/main/resources/assets/spectrum/models/item/bottomless_bundle.json new file mode 100644 index 0000000000..9297a2714c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bottomless_bundle.json @@ -0,0 +1,29 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/bottomless_bundle_empty" + }, + "overrides": [ + { + "predicate": { + "locked": 0, + "filled": 1 + }, + "model": "spectrum:item/bottomless_bundle_filled" + }, + { + "predicate": { + "locked": 1, + "filled": 0 + }, + "model": "spectrum:item/bottomless_bundle_empty_locked" + }, + { + "predicate": { + "filled": 1, + "locked": 1 + }, + "model": "spectrum:item/bottomless_bundle_filled_locked" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bottomless_bundle_empty_locked.json b/src/main/resources/assets/spectrum/models/item/bottomless_bundle_empty_locked.json new file mode 100644 index 0000000000..acf2c20802 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bottomless_bundle_empty_locked.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/bottomless_bundle_empty_locked" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bottomless_bundle_filled.json b/src/main/resources/assets/spectrum/models/item/bottomless_bundle_filled.json new file mode 100644 index 0000000000..3f2fd09602 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bottomless_bundle_filled.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/bottomless_bundle_filled" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bottomless_bundle_filled_locked.json b/src/main/resources/assets/spectrum/models/item/bottomless_bundle_filled_locked.json new file mode 100644 index 0000000000..879d445468 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bottomless_bundle_filled_locked.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/bottomless_bundle_filled_locked" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/bristle_sprouts.json b/src/main/resources/assets/spectrum/models/item/bristle_sprouts.json new file mode 100644 index 0000000000..2b555a0cc1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/bristle_sprouts.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/bristle_sprouts" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_button.json b/src/main/resources/assets/spectrum/models/item/brown_button.json new file mode 100644 index 0000000000..3cfef48c44 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/brown_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/brown_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_fence.json b/src/main/resources/assets/spectrum/models/item/brown_fence.json new file mode 100644 index 0000000000..0065a7b005 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/brown_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/brown_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_fence_gate.json b/src/main/resources/assets/spectrum/models/item/brown_fence_gate.json new file mode 100644 index 0000000000..04d558fcfc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/brown_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/brown_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_plank_button.json b/src/main/resources/assets/spectrum/models/item/brown_plank_button.json deleted file mode 100644 index ba7027f557..0000000000 --- a/src/main/resources/assets/spectrum/models/item/brown_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/brown_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_plank_fence.json b/src/main/resources/assets/spectrum/models/item/brown_plank_fence.json deleted file mode 100644 index cfea15c43a..0000000000 --- a/src/main/resources/assets/spectrum/models/item/brown_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/brown_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/brown_plank_fence_gate.json deleted file mode 100644 index 44735ca4c6..0000000000 --- a/src/main/resources/assets/spectrum/models/item/brown_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/brown_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/brown_plank_pressure_plate.json deleted file mode 100644 index d0c9f20488..0000000000 --- a/src/main/resources/assets/spectrum/models/item/brown_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/brown_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_plank_slab.json b/src/main/resources/assets/spectrum/models/item/brown_plank_slab.json deleted file mode 100644 index 73892fd41c..0000000000 --- a/src/main/resources/assets/spectrum/models/item/brown_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/brown_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/brown_plank_stairs.json deleted file mode 100644 index 3ba583f9ed..0000000000 --- a/src/main/resources/assets/spectrum/models/item/brown_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/brown_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/brown_pressure_plate.json new file mode 100644 index 0000000000..fa68afdb99 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/brown_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/brown_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_slab.json b/src/main/resources/assets/spectrum/models/item/brown_slab.json new file mode 100644 index 0000000000..ecbefeba5c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/brown_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/brown_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/brown_stairs.json b/src/main/resources/assets/spectrum/models/item/brown_stairs.json new file mode 100644 index 0000000000..36890e06df --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/brown_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/brown_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/calcite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/calcite_shimmerstone_light.json new file mode 100644 index 0000000000..2816e85381 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/calcite_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/calcite_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/calcite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/calcite_sparklestone_light.json deleted file mode 100644 index 150bb793bb..0000000000 --- a/src/main/resources/assets/spectrum/models/item/calcite_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/calcite_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/calcite_tile_slab.json b/src/main/resources/assets/spectrum/models/item/calcite_tile_slab.json new file mode 100644 index 0000000000..60a9f3813b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/calcite_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/calcite_tile_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/calcite_tile_stairs.json b/src/main/resources/assets/spectrum/models/item/calcite_tile_stairs.json new file mode 100644 index 0000000000..c2d3c6fa6c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/calcite_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/calcite_tile_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/calcite_tile_wall.json b/src/main/resources/assets/spectrum/models/item/calcite_tile_wall.json new file mode 100644 index 0000000000..18b139d87a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/calcite_tile_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/calcite_tile_wall_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/calcite_tiles.json b/src/main/resources/assets/spectrum/models/item/calcite_tiles.json new file mode 100644 index 0000000000..0dd33fc6f4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/calcite_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/calcite_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_cap.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_cap.json new file mode 100644 index 0000000000..96291d4ba4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_cap.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxcap_cap" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_gills.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_gills.json new file mode 100644 index 0000000000..3a83acea4a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_gills.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxcap_gills" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_stem.json new file mode 100644 index 0000000000..c56152e63f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxshroom.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxshroom.json new file mode 100644 index 0000000000..c21a6b9941 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:block/chestnut_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_amphora.json new file mode 100644 index 0000000000..a80ddfbe33 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_amphora.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_amphora" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_beam.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_beam.json new file mode 100644 index 0000000000..a0c5888dab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_beam.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_beam" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_button.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_button.json new file mode 100644 index 0000000000..cbc2ef6506 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_door.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_door.json new file mode 100644 index 0000000000..0f76ddc1fc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/chestnut_noxwood_door" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_fence.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_fence.json new file mode 100644 index 0000000000..1e0762b2d3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_fence_gate.json new file mode 100644 index 0000000000..0d01c39205 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_lamp.json new file mode 100644 index 0000000000..57880cad36 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/chestnut_noxwood_lamp_item" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_lantern.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_lantern.json new file mode 100644 index 0000000000..0c2ec31057 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_lantern_off" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_light.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_light.json new file mode 100644 index 0000000000..3da7369798 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_planks.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_planks.json new file mode 100644 index 0000000000..4184db3e65 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_planks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_pressure_plate.json new file mode 100644 index 0000000000..d7c36aa86a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_slab.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_slab.json new file mode 100644 index 0000000000..d598770b28 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_stairs.json new file mode 100644 index 0000000000..abbff91007 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_trapdoor.json new file mode 100644 index 0000000000..20276cd5a5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chestnut_noxwood_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chestnut_noxwood_trapdoor_bottom" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chiseled_polished_blackslag.json b/src/main/resources/assets/spectrum/models/item/chiseled_polished_blackslag.json new file mode 100644 index 0000000000..b662cb7fba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/chiseled_polished_blackslag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/chiseled_polished_blackslag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/chrysocolla.json b/src/main/resources/assets/spectrum/models/item/chrysocolla.json index f27ec2de42..77ed622c16 100644 --- a/src/main/resources/assets/spectrum/models/item/chrysocolla.json +++ b/src/main/resources/assets/spectrum/models/item/chrysocolla.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "spectrum:item/chrysocolla" + "layer0": "spectrum:item/pure_alcohol" } } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/circlet_of_arrogance.json b/src/main/resources/assets/spectrum/models/item/circlet_of_arrogance.json new file mode 100644 index 0000000000..93100e9c02 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/circlet_of_arrogance.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/circlet_of_arrogance" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/citrine_glass_arrow.json b/src/main/resources/assets/spectrum/models/item/citrine_glass_arrow.json new file mode 100644 index 0000000000..4769043242 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/citrine_glass_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/citrine_glass_arrow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/citrine_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/citrine_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/citrine_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/citrine_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/cobbled_blackslag.json b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag.json new file mode 100644 index 0000000000..99c5bd6fba --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cobbled_blackslag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_slab.json b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_slab.json new file mode 100644 index 0000000000..62187742aa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cobbled_blackslag_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_stairs.json b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_stairs.json new file mode 100644 index 0000000000..50d1d45181 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cobbled_blackslag_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_wall.json b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_wall.json new file mode 100644 index 0000000000..3b8f336111 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cobbled_blackslag_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cobbled_blackslag_wall_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/constructors_staff.json b/src/main/resources/assets/spectrum/models/item/constructors_staff.json new file mode 100644 index 0000000000..c906602f1c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/constructors_staff.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/constructors_staff" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cracked_basalt_bricks.json b/src/main/resources/assets/spectrum/models/item/cracked_basalt_bricks.json new file mode 100644 index 0000000000..41bcd5b924 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cracked_basalt_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cracked_basalt_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cracked_basalt_tiles.json b/src/main/resources/assets/spectrum/models/item/cracked_basalt_tiles.json new file mode 100644 index 0000000000..1bb8a4d101 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cracked_basalt_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cracked_basalt_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cracked_blackslag_bricks.json b/src/main/resources/assets/spectrum/models/item/cracked_blackslag_bricks.json new file mode 100644 index 0000000000..696acfdc77 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cracked_blackslag_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cracked_blackslag_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cracked_blackslag_tiles.json b/src/main/resources/assets/spectrum/models/item/cracked_blackslag_tiles.json new file mode 100644 index 0000000000..c7a8495cdc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cracked_blackslag_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cracked_blackslag_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cracked_calcite_bricks.json b/src/main/resources/assets/spectrum/models/item/cracked_calcite_bricks.json new file mode 100644 index 0000000000..172bf32397 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cracked_calcite_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cracked_calcite_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cracked_calcite_tiles.json b/src/main/resources/assets/spectrum/models/item/cracked_calcite_tiles.json new file mode 100644 index 0000000000..ca63f0d2e0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cracked_calcite_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cracked_calcite_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/crossbow_oversized.json b/src/main/resources/assets/spectrum/models/item/crossbow_oversized.json new file mode 100644 index 0000000000..1973b7b697 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/crossbow_oversized.json @@ -0,0 +1,25 @@ +{ + "parent": "item/generated", + "display": { + "thirdperson_righthand": { + "rotation": [ -90, 0, -60 ], + "translation": [ 2, 0.1, -9 ], + "scale": [ 1.75, 1.75, 1.75 ] + }, + "thirdperson_lefthand": { + "rotation": [ -90, 0, 30 ], + "translation": [ 2, 0.1, -9 ], + "scale": [ 1.75, 1.75, 1.75 ] + }, + "firstperson_righthand": { + "rotation": [ -90, 0, -55 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 1.0, 1.0, 1.0 ] + }, + "firstperson_lefthand": { + "rotation": [ -90, 0, 35 ], + "translation": [ 1.13, 3.2, 1.13], + "scale": [ 1.0, 1.0, 1.0 ] + } + } +} diff --git a/src/main/resources/assets/spectrum/models/item/cyan_button.json b/src/main/resources/assets/spectrum/models/item/cyan_button.json new file mode 100644 index 0000000000..a5ba45b143 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cyan_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cyan_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_fence.json b/src/main/resources/assets/spectrum/models/item/cyan_fence.json new file mode 100644 index 0000000000..1cc0a1e228 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cyan_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cyan_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_fence_gate.json b/src/main/resources/assets/spectrum/models/item/cyan_fence_gate.json new file mode 100644 index 0000000000..e78b4a51e8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cyan_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cyan_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_plank_button.json b/src/main/resources/assets/spectrum/models/item/cyan_plank_button.json deleted file mode 100644 index f189c40557..0000000000 --- a/src/main/resources/assets/spectrum/models/item/cyan_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/cyan_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_plank_fence.json b/src/main/resources/assets/spectrum/models/item/cyan_plank_fence.json deleted file mode 100644 index 7507357bb1..0000000000 --- a/src/main/resources/assets/spectrum/models/item/cyan_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/cyan_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/cyan_plank_fence_gate.json deleted file mode 100644 index 998300e0f0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/cyan_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/cyan_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/cyan_plank_pressure_plate.json deleted file mode 100644 index 3f2c0637a0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/cyan_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/cyan_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_plank_slab.json b/src/main/resources/assets/spectrum/models/item/cyan_plank_slab.json deleted file mode 100644 index a276f6da85..0000000000 --- a/src/main/resources/assets/spectrum/models/item/cyan_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/cyan_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/cyan_plank_stairs.json deleted file mode 100644 index 00956f170d..0000000000 --- a/src/main/resources/assets/spectrum/models/item/cyan_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/cyan_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/cyan_pressure_plate.json new file mode 100644 index 0000000000..6c80256b9d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cyan_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cyan_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_slab.json b/src/main/resources/assets/spectrum/models/item/cyan_slab.json new file mode 100644 index 0000000000..5f004c1408 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cyan_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cyan_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/cyan_stairs.json b/src/main/resources/assets/spectrum/models/item/cyan_stairs.json new file mode 100644 index 0000000000..63249ec9e0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/cyan_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/cyan_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/deepslate_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/deepslate_shimmerstone_light.json new file mode 100644 index 0000000000..40163491d7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/deepslate_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/deepslate_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/deepslate_shimmerstone_ore.json b/src/main/resources/assets/spectrum/models/item/deepslate_shimmerstone_ore.json new file mode 100644 index 0000000000..d1893a8436 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/deepslate_shimmerstone_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/deepslate_shimmerstone_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/deepslate_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/deepslate_sparklestone_light.json deleted file mode 100644 index 5f65d94556..0000000000 --- a/src/main/resources/assets/spectrum/models/item/deepslate_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/deepslate_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/deepslate_sparklestone_ore.json b/src/main/resources/assets/spectrum/models/item/deepslate_sparklestone_ore.json deleted file mode 100644 index efa30d6bac..0000000000 --- a/src/main/resources/assets/spectrum/models/item/deepslate_sparklestone_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/deepslate_sparklestone_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/diorite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/diorite_shimmerstone_light.json new file mode 100644 index 0000000000..20cc6c827a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/diorite_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/diorite_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/diorite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/diorite_sparklestone_light.json deleted file mode 100644 index 8adbaf5b69..0000000000 --- a/src/main/resources/assets/spectrum/models/item/diorite_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/diorite_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dirty_polished_shale_clay.json b/src/main/resources/assets/spectrum/models/item/dirty_polished_shale_clay.json new file mode 100644 index 0000000000..baaa3e8a9c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dirty_polished_shale_clay.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/dirty_polished_shale_clay" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/doombloom.json b/src/main/resources/assets/spectrum/models/item/doombloom.json new file mode 100644 index 0000000000..cd34904e96 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/doombloom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:block/doombloom4" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/doombloom_seed.json b/src/main/resources/assets/spectrum/models/item/doombloom_seed.json new file mode 100644 index 0000000000..186605b726 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/doombloom_seed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/doombloom_seed" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/downstone.json b/src/main/resources/assets/spectrum/models/item/downstone.json new file mode 100644 index 0000000000..3f9107e79b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/downstone.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/downstone" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dragonbone.json b/src/main/resources/assets/spectrum/models/item/dragonbone.json new file mode 100644 index 0000000000..8738818b98 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dragonbone.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/dragonbone" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dragonbone_broth.json b/src/main/resources/assets/spectrum/models/item/dragonbone_broth.json new file mode 100644 index 0000000000..1240b3872a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dragonbone_broth.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/dragonbone_broth" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dragonbone_needle.json b/src/main/resources/assets/spectrum/models/item/dragonbone_needle.json new file mode 100644 index 0000000000..60cc9b4e53 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dragonbone_needle.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/dragonbone_needle" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dragonbone_shard.json b/src/main/resources/assets/spectrum/models/item/dragonbone_shard.json new file mode 100644 index 0000000000..4061cfc0fa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dragonbone_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/dragonbone_shard" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dragonrot_bucket.json b/src/main/resources/assets/spectrum/models/item/dragonrot_bucket.json new file mode 100644 index 0000000000..d688376223 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dragonrot_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/dragonrot_bucket" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dreamflayer.json b/src/main/resources/assets/spectrum/models/item/dreamflayer.json index f52cc994d3..c9cee2e02e 100644 --- a/src/main/resources/assets/spectrum/models/item/dreamflayer.json +++ b/src/main/resources/assets/spectrum/models/item/dreamflayer.json @@ -6,31 +6,24 @@ "overrides": [ { "predicate": { - "activated": 0, - "in_inventory": 0 + "in_world": 0.0, + "activated": 1.0 }, - "model": "spectrum:item/dreamflayer_held" - }, - { - "predicate": { - "in_inventory": 0, - "activated": 1 - }, - "model": "spectrum:item/dreamflayer_activated_held" + "model": "spectrum:item/dreamflayer_activated" }, { "predicate": { - "in_inventory": 1, - "activated": 0 + "in_world": 1.0, + "activated": 0.0 }, - "model": "spectrum:item/dreamflayer" + "model": "spectrum:item/dreamflayer_oversized" }, { "predicate": { - "activated": 1, - "in_inventory": 1 + "activated": 1.0, + "in_world": 1.0 }, - "model": "spectrum:item/dreamflayer_activated" + "model": "spectrum:item/dreamflayer_activated_oversized" } ] } \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dreamflayer_activated_held.json b/src/main/resources/assets/spectrum/models/item/dreamflayer_activated_held.json deleted file mode 100644 index ec9fa9c528..0000000000 --- a/src/main/resources/assets/spectrum/models/item/dreamflayer_activated_held.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "spectrum:item/handheld_oversized", - "textures": { - "layer0": "spectrum:item/dreamflayer_activated_held" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dreamflayer_activated_oversized.json b/src/main/resources/assets/spectrum/models/item/dreamflayer_activated_oversized.json new file mode 100644 index 0000000000..ebab59a8f1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dreamflayer_activated_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/dreamflayer_activated_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dreamflayer_held.json b/src/main/resources/assets/spectrum/models/item/dreamflayer_held.json deleted file mode 100644 index 0290541c9b..0000000000 --- a/src/main/resources/assets/spectrum/models/item/dreamflayer_held.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "spectrum:item/handheld_oversized", - "textures": { - "layer0": "spectrum:item/dreamflayer_held" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/dreamflayer_oversized.json b/src/main/resources/assets/spectrum/models/item/dreamflayer_oversized.json new file mode 100644 index 0000000000..740dd3c248 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/dreamflayer_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/dreamflayer_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxcap_cap.json b/src/main/resources/assets/spectrum/models/item/ebony_noxcap_cap.json new file mode 100644 index 0000000000..bbd4d1e8af --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxcap_cap.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxcap_cap" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxcap_gills.json b/src/main/resources/assets/spectrum/models/item/ebony_noxcap_gills.json new file mode 100644 index 0000000000..f2141029f7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxcap_gills.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxcap_gills" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/ebony_noxcap_stem.json new file mode 100644 index 0000000000..d299a962c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxshroom.json b/src/main/resources/assets/spectrum/models/item/ebony_noxshroom.json new file mode 100644 index 0000000000..9eedc65e0a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:block/ebony_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_amphora.json new file mode 100644 index 0000000000..4db9e7390d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_amphora.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_amphora" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_beam.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_beam.json new file mode 100644 index 0000000000..7e8c42b5e9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_beam.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_beam" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_button.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_button.json new file mode 100644 index 0000000000..9565624448 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_door.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_door.json new file mode 100644 index 0000000000..e7b5f0b60f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/ebony_noxwood_door" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_fence.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_fence.json new file mode 100644 index 0000000000..90bb65debd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_fence_gate.json new file mode 100644 index 0000000000..0c2c1da48f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_lamp.json new file mode 100644 index 0000000000..2e65e9065f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/ebony_noxwood_lamp_item" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_lantern.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_lantern.json new file mode 100644 index 0000000000..2aa35b29b2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_lantern_off" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_light.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_light.json new file mode 100644 index 0000000000..1bc7cff5e0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_planks.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_planks.json new file mode 100644 index 0000000000..50df2f9510 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_planks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_pressure_plate.json new file mode 100644 index 0000000000..2050a2408d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_slab.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_slab.json new file mode 100644 index 0000000000..ec0de0c811 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_stairs.json new file mode 100644 index 0000000000..b69b2950c4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ebony_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_trapdoor.json new file mode 100644 index 0000000000..ac068d5b59 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ebony_noxwood_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ebony_noxwood_trapdoor_bottom" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/emergency_boots.json b/src/main/resources/assets/spectrum/models/item/emergency_boots.json deleted file mode 100644 index e80e7571aa..0000000000 --- a/src/main/resources/assets/spectrum/models/item/emergency_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/emergency_boots" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/emergency_chestplate.json b/src/main/resources/assets/spectrum/models/item/emergency_chestplate.json deleted file mode 100644 index 90c9c0daf8..0000000000 --- a/src/main/resources/assets/spectrum/models/item/emergency_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/emergency_chestplate" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/emergency_helmet.json b/src/main/resources/assets/spectrum/models/item/emergency_helmet.json deleted file mode 100644 index 507de70d6f..0000000000 --- a/src/main/resources/assets/spectrum/models/item/emergency_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/emergency_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/emergency_leggings.json b/src/main/resources/assets/spectrum/models/item/emergency_leggings.json deleted file mode 100644 index 0aed8a6305..0000000000 --- a/src/main/resources/assets/spectrum/models/item/emergency_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/emergency_leggings" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/end_portal_cracker.json b/src/main/resources/assets/spectrum/models/item/end_portal_cracker.json deleted file mode 100644 index cddf515a71..0000000000 --- a/src/main/resources/assets/spectrum/models/item/end_portal_cracker.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/end_portal_cracker" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/end_portal_frame_cracker.json b/src/main/resources/assets/spectrum/models/item/end_portal_frame_cracker.json deleted file mode 100644 index 7aa39ed130..0000000000 --- a/src/main/resources/assets/spectrum/models/item/end_portal_frame_cracker.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/end_portal_frame_cracker" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ender_bag.json b/src/main/resources/assets/spectrum/models/item/ender_bag.json deleted file mode 100644 index 1e5a856c70..0000000000 --- a/src/main/resources/assets/spectrum/models/item/ender_bag.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/ender_bag" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ender_treasure.json b/src/main/resources/assets/spectrum/models/item/ender_treasure.json deleted file mode 100644 index 5ab1e43363..0000000000 --- a/src/main/resources/assets/spectrum/models/item/ender_treasure.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/ender_treasure" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exchange_staff.json b/src/main/resources/assets/spectrum/models/item/exchange_staff.json deleted file mode 100644 index 112c2b9be2..0000000000 --- a/src/main/resources/assets/spectrum/models/item/exchange_staff.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/exchange_staff" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exchanging_staff.json b/src/main/resources/assets/spectrum/models/item/exchanging_staff.json new file mode 100644 index 0000000000..75baf2513f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exchanging_staff.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/exchanging_staff" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay.json b/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay.json new file mode 100644 index 0000000000..7d972c7881 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_polished_shale_clay" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay_slab.json new file mode 100644 index 0000000000..6aebf40427 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_polished_shale_clay_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..60c67820f8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_polished_shale_clay_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_polished_shale_clay_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_brick_slab.json new file mode 100644 index 0000000000..723ed3470b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_shale_clay_brick_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..5ed8121feb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_shale_clay_brick_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_bricks.json b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_bricks.json new file mode 100644 index 0000000000..f22ee9532d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_shale_clay_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tile_slab.json new file mode 100644 index 0000000000..212e4ba540 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_shale_clay_tile_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..fbca35dbf0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_shale_clay_tile_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tiles.json b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tiles.json new file mode 100644 index 0000000000..f08429d54f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/exposed_shale_clay_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/exposed_shale_clay_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/fanciful_bismuth_ring.json b/src/main/resources/assets/spectrum/models/item/fanciful_bismuth_ring.json new file mode 100644 index 0000000000..1bee24ab53 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/fanciful_bismuth_ring.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/fanciful_bismuth_ring" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ferocious_chestplate.json b/src/main/resources/assets/spectrum/models/item/ferocious_chestplate.json new file mode 100644 index 0000000000..e3102c0ae8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ferocious_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/ferocious_chestplate" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident.json b/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident.json new file mode 100644 index 0000000000..59f2664b7d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident.json @@ -0,0 +1,22 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/ferocious_glass_crest_bident" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0, + "throwing": 0.0 + }, + "model": "spectrum:item/ferocious_glass_crest_bident_oversized" + }, + { + "predicate": { + "in_world": 1.0, + "throwing": 1 + }, + "model": "spectrum:item/ferocious_glass_crest_bident_oversized_throwing" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident_oversized.json b/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident_oversized.json new file mode 100644 index 0000000000..36d34f15e2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/ferocious_glass_crest_bident_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident_oversized_throwing.json b/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident_oversized_throwing.json new file mode 100644 index 0000000000..d9a869c78f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ferocious_glass_crest_bident_oversized_throwing.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized_throwing", + "textures": { + "layer0": "spectrum:item/ferocious_glass_crest_bident_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/fetchling_helmet.json b/src/main/resources/assets/spectrum/models/item/fetchling_helmet.json new file mode 100644 index 0000000000..6473592520 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/fetchling_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/fetchling_helmet" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/fortune_pickaxe.json b/src/main/resources/assets/spectrum/models/item/fortune_pickaxe.json deleted file mode 100644 index 25d7ee2317..0000000000 --- a/src/main/resources/assets/spectrum/models/item/fortune_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/fortune_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident.json b/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident.json new file mode 100644 index 0000000000..b69e2887ec --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident.json @@ -0,0 +1,21 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/fractal_glass_crest_bident" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/fractal_glass_crest_bident_oversized" + }, + { + "predicate": { + "in_world": 1.0, + "throwing": 1 + }, + "model": "spectrum:item/fractal_glass_crest_bident_oversized_throwing" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident_oversized.json b/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident_oversized.json new file mode 100644 index 0000000000..6ef4f6cfc2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/fractal_glass_crest_bident_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident_oversized_throwing.json b/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident_oversized_throwing.json new file mode 100644 index 0000000000..8b6b458e5b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/fractal_glass_crest_bident_oversized_throwing.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized_throwing", + "textures": { + "layer0": "spectrum:item/fractal_glass_crest_bident_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/frigid_stardust.json b/src/main/resources/assets/spectrum/models/item/frigid_stardust.json new file mode 100644 index 0000000000..734d8290d0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/frigid_stardust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/frigid_stardust" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/frog_cold_head.json b/src/main/resources/assets/spectrum/models/item/frog_cold_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/frog_cold_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/frog_temperate_head.json b/src/main/resources/assets/spectrum/models/item/frog_temperate_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/frog_temperate_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/frog_warm_head.json b/src/main/resources/assets/spectrum/models/item/frog_warm_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/frog_warm_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gather_node.json b/src/main/resources/assets/spectrum/models/item/gather_node.json new file mode 100644 index 0000000000..dd5fa42bec --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gather_node.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gather_node" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow.json new file mode 100644 index 0000000000..f1a5aa0ed7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow.json @@ -0,0 +1,186 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_standby" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/glass_crest_crossbow_standby_oversized" + }, + + { + "predicate": { + "pulling": 1 + }, + "model": "spectrum:item/glass_crest_crossbow_pulling_0" + }, + { + "predicate": { + "in_world": 1.0, + "pulling": 1 + }, + "model": "spectrum:item/glass_crest_crossbow_pulling_0_oversized" + }, + + { + "predicate": { + "pulling": 1, + "pull": 0.58 + }, + "model": "spectrum:item/glass_crest_crossbow_pulling_1" + }, + { + "predicate": { + "in_world": 1.0, + "pulling": 1, + "pull": 0.58 + }, + "model": "spectrum:item/glass_crest_crossbow_pulling_1_oversized" + }, + + { + "predicate": { + "pulling": 1, + "pull": 1.0 + }, + "model": "spectrum:item/glass_crest_crossbow_pulling_2" + }, + { + "predicate": { + "in_world": 1.0, + "pulling": 1, + "pull": 1.0 + }, + "model": "spectrum:item/glass_crest_crossbow_pulling_2_oversized" + }, + + { + "predicate": { + "charged": 1 + }, + "model": "spectrum:item/glass_crest_crossbow_arrow" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1 + }, + "model": "spectrum:item/glass_crest_crossbow_arrow_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.1 + }, + "model": "spectrum:item/glass_crest_crossbow_firework" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.1 + }, + "model": "spectrum:item/glass_crest_crossbow_firework_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.2 + }, + "model": "spectrum:item/glass_crest_crossbow_glass" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.2 + }, + "model": "spectrum:item/glass_crest_crossbow_glass_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.3 + }, + "model": "spectrum:item/glass_crest_crossbow_topaz" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.3 + }, + "model": "spectrum:item/glass_crest_crossbow_topaz_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.4 + }, + "model": "spectrum:item/glass_crest_crossbow_amethyst" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.4 + }, + "model": "spectrum:item/glass_crest_crossbow_amethyst_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.5 + }, + "model": "spectrum:item/glass_crest_crossbow_citrine" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.5 + }, + "model": "spectrum:item/glass_crest_crossbow_citrine_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.6 + }, + "model": "spectrum:item/glass_crest_crossbow_onyx" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.6 + }, + "model": "spectrum:item/glass_crest_crossbow_onyx_oversized" + }, + + { + "predicate": { + "charged": 1, + "projectile": 0.7 + }, + "model": "spectrum:item/glass_crest_crossbow_moonstone" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.7 + }, + "model": "spectrum:item/glass_crest_crossbow_moonstone_oversized" + } + ] +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_amethyst.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_amethyst.json new file mode 100644 index 0000000000..49047dbd07 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_amethyst.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_amethyst" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_amethyst_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_amethyst_oversized.json new file mode 100644 index 0000000000..296be7ed05 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_amethyst_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_amethyst_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_arrow.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_arrow.json new file mode 100644 index 0000000000..d8e145e46e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_arrow" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_arrow_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_arrow_oversized.json new file mode 100644 index 0000000000..9a8902ebda --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_arrow_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_arrow_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_citrine.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_citrine.json new file mode 100644 index 0000000000..a9dcd73f39 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_citrine.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_citrine" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_citrine_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_citrine_oversized.json new file mode 100644 index 0000000000..06c47df9ff --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_citrine_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_citrine_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_firework.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_firework.json new file mode 100644 index 0000000000..114343215b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_firework.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_firework" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_firework_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_firework_oversized.json new file mode 100644 index 0000000000..8f2daecde8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_firework_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_firework_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_glass.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_glass.json new file mode 100644 index 0000000000..2da5d856e6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_glass" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_glass_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_glass_oversized.json new file mode 100644 index 0000000000..aa3e716de2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_glass_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_glass_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_moonstone.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_moonstone.json new file mode 100644 index 0000000000..a778d992c9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_moonstone.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_moonstone" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_moonstone_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_moonstone_oversized.json new file mode 100644 index 0000000000..900fdfc006 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_moonstone_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_moonstone_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_onyx.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_onyx.json new file mode 100644 index 0000000000..d0e2b379ad --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_onyx.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_onyx" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_onyx_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_onyx_oversized.json new file mode 100644 index 0000000000..e859205b31 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_onyx_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_onyx_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_0.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_0.json new file mode 100644 index 0000000000..3db2d3911f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_0.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_pulling_0" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_0_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_0_oversized.json new file mode 100644 index 0000000000..30838bda05 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_0_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_pulling_0_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_1.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_1.json new file mode 100644 index 0000000000..7e6522f4c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_1.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_pulling_1" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_1_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_1_oversized.json new file mode 100644 index 0000000000..c58609297c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_1_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_pulling_1_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_2.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_2.json new file mode 100644 index 0000000000..b29e6c8fc0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_2.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_pulling_2" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_2_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_2_oversized.json new file mode 100644 index 0000000000..95789313b4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_pulling_2_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_pulling_2_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_standby_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_standby_oversized.json new file mode 100644 index 0000000000..3f451e8da2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_standby_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_standby_oversized" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_topaz.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_topaz.json new file mode 100644 index 0000000000..eaf119b6b1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_topaz.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_topaz" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_topaz_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_topaz_oversized.json new file mode 100644 index 0000000000..95636356ca --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_crossbow_topaz_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_crossbow_topaz_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_ultra_greatsword.json b/src/main/resources/assets/spectrum/models/item/glass_crest_ultra_greatsword.json new file mode 100644 index 0000000000..4577ff94c5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_ultra_greatsword.json @@ -0,0 +1,14 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_ultra_greatsword" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/glass_crest_ultra_greatsword_oversized" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_ultra_greatsword_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_ultra_greatsword_oversized.json new file mode 100644 index 0000000000..f19beca108 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_ultra_greatsword_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_ultra_greatsword_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_workstaff.json b/src/main/resources/assets/spectrum/models/item/glass_crest_workstaff.json new file mode 100644 index 0000000000..494e951e82 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_workstaff.json @@ -0,0 +1,14 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_workstaff" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/glass_crest_workstaff_oversized" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glass_crest_workstaff_oversized.json b/src/main/resources/assets/spectrum/models/item/glass_crest_workstaff_oversized.json new file mode 100644 index 0000000000..33a129bd54 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glass_crest_workstaff_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/glass_crest_workstaff_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glow_phantom_frame.json b/src/main/resources/assets/spectrum/models/item/glow_phantom_frame.json new file mode 100644 index 0000000000..0e10c6efd4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glow_phantom_frame.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/glow_phantom_frame" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glow_vision_goggles.json b/src/main/resources/assets/spectrum/models/item/glow_vision_goggles.json new file mode 100644 index 0000000000..acd2b719cf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/glow_vision_goggles.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/glow_vision_goggles" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glow_vision_helmet.json b/src/main/resources/assets/spectrum/models/item/glow_vision_helmet.json deleted file mode 100644 index ea15c4313b..0000000000 --- a/src/main/resources/assets/spectrum/models/item/glow_vision_helmet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/glow_vision_helmet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/glowing_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/glowing_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/glowing_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/glowing_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/granite_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/granite_shimmerstone_light.json new file mode 100644 index 0000000000..248c682c09 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/granite_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/granite_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/granite_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/granite_sparklestone_light.json deleted file mode 100644 index 017df3a47a..0000000000 --- a/src/main/resources/assets/spectrum/models/item/granite_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/granite_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_button.json b/src/main/resources/assets/spectrum/models/item/gray_button.json new file mode 100644 index 0000000000..724559c262 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gray_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gray_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_fence.json b/src/main/resources/assets/spectrum/models/item/gray_fence.json new file mode 100644 index 0000000000..4ba9e83ecc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gray_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gray_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_fence_gate.json b/src/main/resources/assets/spectrum/models/item/gray_fence_gate.json new file mode 100644 index 0000000000..c1c1327f6f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gray_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gray_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_plank_button.json b/src/main/resources/assets/spectrum/models/item/gray_plank_button.json deleted file mode 100644 index 326fd5ba1c..0000000000 --- a/src/main/resources/assets/spectrum/models/item/gray_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/gray_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_plank_fence.json b/src/main/resources/assets/spectrum/models/item/gray_plank_fence.json deleted file mode 100644 index 048d568b8a..0000000000 --- a/src/main/resources/assets/spectrum/models/item/gray_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/gray_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/gray_plank_fence_gate.json deleted file mode 100644 index ac18638277..0000000000 --- a/src/main/resources/assets/spectrum/models/item/gray_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/gray_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/gray_plank_pressure_plate.json deleted file mode 100644 index 16bcc739a2..0000000000 --- a/src/main/resources/assets/spectrum/models/item/gray_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/gray_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_plank_slab.json b/src/main/resources/assets/spectrum/models/item/gray_plank_slab.json deleted file mode 100644 index 64ea9d154e..0000000000 --- a/src/main/resources/assets/spectrum/models/item/gray_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/gray_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/gray_plank_stairs.json deleted file mode 100644 index a93e819961..0000000000 --- a/src/main/resources/assets/spectrum/models/item/gray_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/gray_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/gray_pressure_plate.json new file mode 100644 index 0000000000..95a5b21fdd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gray_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gray_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_slab.json b/src/main/resources/assets/spectrum/models/item/gray_slab.json new file mode 100644 index 0000000000..673e96b093 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gray_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gray_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/gray_stairs.json b/src/main/resources/assets/spectrum/models/item/gray_stairs.json new file mode 100644 index 0000000000..41cc908073 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/gray_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/gray_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_button.json b/src/main/resources/assets/spectrum/models/item/green_button.json new file mode 100644 index 0000000000..10c28f0d58 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/green_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/green_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_fence.json b/src/main/resources/assets/spectrum/models/item/green_fence.json new file mode 100644 index 0000000000..29d5a61b61 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/green_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/green_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_fence_gate.json b/src/main/resources/assets/spectrum/models/item/green_fence_gate.json new file mode 100644 index 0000000000..8c588cf481 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/green_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/green_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_plank_button.json b/src/main/resources/assets/spectrum/models/item/green_plank_button.json deleted file mode 100644 index 8273d37b9d..0000000000 --- a/src/main/resources/assets/spectrum/models/item/green_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/green_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_plank_fence.json b/src/main/resources/assets/spectrum/models/item/green_plank_fence.json deleted file mode 100644 index d7317686e8..0000000000 --- a/src/main/resources/assets/spectrum/models/item/green_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/green_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/green_plank_fence_gate.json deleted file mode 100644 index 2a47907741..0000000000 --- a/src/main/resources/assets/spectrum/models/item/green_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/green_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/green_plank_pressure_plate.json deleted file mode 100644 index 9ce74b2cc1..0000000000 --- a/src/main/resources/assets/spectrum/models/item/green_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/green_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_plank_slab.json b/src/main/resources/assets/spectrum/models/item/green_plank_slab.json deleted file mode 100644 index d262169f83..0000000000 --- a/src/main/resources/assets/spectrum/models/item/green_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/green_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/green_plank_stairs.json deleted file mode 100644 index 282f20d325..0000000000 --- a/src/main/resources/assets/spectrum/models/item/green_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/green_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/green_pressure_plate.json new file mode 100644 index 0000000000..e04e5b6ba0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/green_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/green_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_slab.json b/src/main/resources/assets/spectrum/models/item/green_slab.json new file mode 100644 index 0000000000..bc7572a0c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/green_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/green_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/green_stairs.json b/src/main/resources/assets/spectrum/models/item/green_stairs.json new file mode 100644 index 0000000000..3ab274d009 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/green_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/green_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/guidebook.json b/src/main/resources/assets/spectrum/models/item/guidebook.json new file mode 100644 index 0000000000..31648e02b6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/guidebook.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/guidebook" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/handheld_oversized.json b/src/main/resources/assets/spectrum/models/item/handheld_oversized.json index e754cbd982..2b9bfb8b7a 100644 --- a/src/main/resources/assets/spectrum/models/item/handheld_oversized.json +++ b/src/main/resources/assets/spectrum/models/item/handheld_oversized.json @@ -3,23 +3,23 @@ "display": { "thirdperson_righthand": { "rotation": [ 0, -90, 55 ], - "translation": [ 0, 8.0, 0.5 ], - "scale": [ 1.45, 1.45, 1.45 ] + "translation": [ 0, 11.0, 0.5 ], + "scale": [ 1.75, 1.75, 1.75 ] }, "thirdperson_lefthand": { "rotation": [ 0, 90, -55 ], - "translation": [ 0, 8.0, 0.5 ], - "scale": [ 1.45, 1.45, 1.45 ] + "translation": [ 0, 11.0, 0.5 ], + "scale": [ 1.75, 1.75, 1.75 ] }, "firstperson_righthand": { "rotation": [ 0, -90, 25 ], - "translation": [ 1.13, 5.0, 1.13 ], - "scale": [ 1.0, 1.0, 1.0 ] + "translation": [ 1.2, 6.0, 1.2 ], + "scale": [ 1.25, 1.25, 1.25 ] }, "firstperson_lefthand": { "rotation": [ 0, 90, -25 ], - "translation": [ 1.13, 5.0, 1.13 ], - "scale": [ 1.0, 1.0, 1.0 ] + "translation": [ 1.2, 6.0, 1.2 ], + "scale": [ 1.25, 1.25, 1.25 ] } } } diff --git a/src/main/resources/assets/spectrum/models/item/handheld_oversized_throwing.json b/src/main/resources/assets/spectrum/models/item/handheld_oversized_throwing.json new file mode 100644 index 0000000000..c09dda49c4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/handheld_oversized_throwing.json @@ -0,0 +1,25 @@ +{ + "parent": "minecraft:item/handheld", + "display": { + "thirdperson_righthand": { + "rotation": [ 180, -90, 55 ], + "translation": [ 0, -6.0, 2.5 ], + "scale": [ 1.75, 1.75, 1.75 ] + }, + "thirdperson_lefthand": { + "rotation": [ 180, 90, -55 ], + "translation": [ 0, -6.0, 2.5 ], + "scale": [ 1.75, 1.75, 1.75 ] + }, + "firstperson_righthand": { + "rotation": [ 0, -90, 45 ], + "translation": [ 1.2, -0.0, 1.2 ], + "scale": [ 1.25, 1.25, 1.25 ] + }, + "firstperson_lefthand": { + "rotation": [ 0, 90, -45 ], + "translation": [ 1.2, -0.0, 1.2 ], + "scale": [ 1.25, 1.25, 1.25 ] + } + } +} diff --git a/src/main/resources/assets/spectrum/models/item/hummingstone.json b/src/main/resources/assets/spectrum/models/item/hummingstone.json new file mode 100644 index 0000000000..c4ba5a8850 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/hummingstone.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/hummingstone" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/hummingstone_glass.json b/src/main/resources/assets/spectrum/models/item/hummingstone_glass.json new file mode 100644 index 0000000000..d51fc47af2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/hummingstone_glass.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/hummingstone_glass" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/infested_blackslag.json b/src/main/resources/assets/spectrum/models/item/infested_blackslag.json new file mode 100644 index 0000000000..469fc57c73 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/infested_blackslag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/blackslag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/interaction_node.json b/src/main/resources/assets/spectrum/models/item/interaction_node.json deleted file mode 100644 index 68fbf35a52..0000000000 --- a/src/main/resources/assets/spectrum/models/item/interaction_node.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/interaction_node" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/invisible_glow_item_frame.json b/src/main/resources/assets/spectrum/models/item/invisible_glow_item_frame.json deleted file mode 100644 index dcfa91461d..0000000000 --- a/src/main/resources/assets/spectrum/models/item/invisible_glow_item_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/invisible_glow_item_frame" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/invisible_item_frame.json b/src/main/resources/assets/spectrum/models/item/invisible_item_frame.json deleted file mode 100644 index 23b89cebbf..0000000000 --- a/src/main/resources/assets/spectrum/models/item/invisible_item_frame.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/invisible_item_frame" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxcap_cap.json b/src/main/resources/assets/spectrum/models/item/ivory_noxcap_cap.json new file mode 100644 index 0000000000..850b019358 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxcap_cap.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxcap_cap" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxcap_gills.json b/src/main/resources/assets/spectrum/models/item/ivory_noxcap_gills.json new file mode 100644 index 0000000000..90f2b011e2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxcap_gills.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxcap_gills" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/ivory_noxcap_stem.json new file mode 100644 index 0000000000..9602e74c1d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxshroom.json b/src/main/resources/assets/spectrum/models/item/ivory_noxshroom.json new file mode 100644 index 0000000000..a7c00985fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:block/ivory_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_amphora.json new file mode 100644 index 0000000000..f8e2daefae --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_amphora.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_amphora" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_beam.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_beam.json new file mode 100644 index 0000000000..0d44b506fa --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_beam.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_beam" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_button.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_button.json new file mode 100644 index 0000000000..395defcc65 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_door.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_door.json new file mode 100644 index 0000000000..40893e1329 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/ivory_noxwood_door" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_fence.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_fence.json new file mode 100644 index 0000000000..f12f4de4e2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_fence_gate.json new file mode 100644 index 0000000000..67ab64b5ee --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_lamp.json new file mode 100644 index 0000000000..79f765e98f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/ivory_noxwood_lamp_item" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_lantern.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_lantern.json new file mode 100644 index 0000000000..234eb06693 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_lantern_off" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_light.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_light.json new file mode 100644 index 0000000000..6d012bca20 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_planks.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_planks.json new file mode 100644 index 0000000000..0ebdf75753 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_planks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_pressure_plate.json new file mode 100644 index 0000000000..cccae398f4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_slab.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_slab.json new file mode 100644 index 0000000000..7d43bbafdf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_stairs.json new file mode 100644 index 0000000000..66cca0b40d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ivory_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_trapdoor.json new file mode 100644 index 0000000000..9d1f6e1ff7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ivory_noxwood_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/ivory_noxwood_trapdoor_bottom" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_button.json b/src/main/resources/assets/spectrum/models/item/light_blue_button.json new file mode 100644 index 0000000000..7ce680a8cb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_blue_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_blue_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_fence.json b/src/main/resources/assets/spectrum/models/item/light_blue_fence.json new file mode 100644 index 0000000000..fb617be04f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_blue_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_blue_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_fence_gate.json b/src/main/resources/assets/spectrum/models/item/light_blue_fence_gate.json new file mode 100644 index 0000000000..e09283c734 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_blue_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_blue_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_plank_button.json b/src/main/resources/assets/spectrum/models/item/light_blue_plank_button.json deleted file mode 100644 index cd2e800fac..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_blue_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_blue_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_plank_fence.json b/src/main/resources/assets/spectrum/models/item/light_blue_plank_fence.json deleted file mode 100644 index e7709dd13c..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_blue_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_blue_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/light_blue_plank_fence_gate.json deleted file mode 100644 index 9111f4c318..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_blue_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_blue_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/light_blue_plank_pressure_plate.json deleted file mode 100644 index fdfe7030e1..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_blue_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_blue_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_plank_slab.json b/src/main/resources/assets/spectrum/models/item/light_blue_plank_slab.json deleted file mode 100644 index 6d95a5a83c..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_blue_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_blue_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/light_blue_plank_stairs.json deleted file mode 100644 index ddb3106ebf..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_blue_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_blue_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/light_blue_pressure_plate.json new file mode 100644 index 0000000000..b33f6ac5a0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_blue_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_blue_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_slab.json b/src/main/resources/assets/spectrum/models/item/light_blue_slab.json new file mode 100644 index 0000000000..bb348df422 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_blue_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_blue_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_blue_stairs.json b/src/main/resources/assets/spectrum/models/item/light_blue_stairs.json new file mode 100644 index 0000000000..8bcb6a0e1f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_blue_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_blue_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_button.json b/src/main/resources/assets/spectrum/models/item/light_gray_button.json new file mode 100644 index 0000000000..518528d901 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_gray_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_gray_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_fence.json b/src/main/resources/assets/spectrum/models/item/light_gray_fence.json new file mode 100644 index 0000000000..d220f4143b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_gray_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_gray_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_fence_gate.json b/src/main/resources/assets/spectrum/models/item/light_gray_fence_gate.json new file mode 100644 index 0000000000..473ad9ea61 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_gray_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_gray_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_plank_button.json b/src/main/resources/assets/spectrum/models/item/light_gray_plank_button.json deleted file mode 100644 index 4337f505b0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_gray_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_gray_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_plank_fence.json b/src/main/resources/assets/spectrum/models/item/light_gray_plank_fence.json deleted file mode 100644 index 52d7b691f9..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_gray_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_gray_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/light_gray_plank_fence_gate.json deleted file mode 100644 index d6afae3050..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_gray_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_gray_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/light_gray_plank_pressure_plate.json deleted file mode 100644 index 2522a28e74..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_gray_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_gray_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_plank_slab.json b/src/main/resources/assets/spectrum/models/item/light_gray_plank_slab.json deleted file mode 100644 index 0d46a89e4e..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_gray_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_gray_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/light_gray_plank_stairs.json deleted file mode 100644 index 6eb2746901..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_gray_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/light_gray_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/light_gray_pressure_plate.json new file mode 100644 index 0000000000..53f07fccde --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_gray_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_gray_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_slab.json b/src/main/resources/assets/spectrum/models/item/light_gray_slab.json new file mode 100644 index 0000000000..8f3c4721ec --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_gray_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_gray_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_gray_stairs.json b/src/main/resources/assets/spectrum/models/item/light_gray_stairs.json new file mode 100644 index 0000000000..af1a661225 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/light_gray_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/light_gray_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_staff.json b/src/main/resources/assets/spectrum/models/item/light_staff.json deleted file mode 100644 index 6fe4866fe0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_staff.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/light_staff" - }, - "overrides": [ - { - "predicate": { - "in_use": 1 - }, - "model": "spectrum:item/light_staff_use" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/light_staff_use.json b/src/main/resources/assets/spectrum/models/item/light_staff_use.json deleted file mode 100644 index bb405c6d70..0000000000 --- a/src/main/resources/assets/spectrum/models/item/light_staff_use.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/light_staff" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lightning_stone.json b/src/main/resources/assets/spectrum/models/item/lightning_stone.json deleted file mode 100644 index cf9ca76a60..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lightning_stone.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/lightning_stone" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_button.json b/src/main/resources/assets/spectrum/models/item/lime_button.json new file mode 100644 index 0000000000..d14d1de164 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lime_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/lime_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_fence.json b/src/main/resources/assets/spectrum/models/item/lime_fence.json new file mode 100644 index 0000000000..453de82784 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lime_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/lime_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_fence_gate.json b/src/main/resources/assets/spectrum/models/item/lime_fence_gate.json new file mode 100644 index 0000000000..58dfa29863 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lime_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/lime_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_plank_button.json b/src/main/resources/assets/spectrum/models/item/lime_plank_button.json deleted file mode 100644 index 1120ba5353..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lime_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/lime_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_plank_fence.json b/src/main/resources/assets/spectrum/models/item/lime_plank_fence.json deleted file mode 100644 index b0bee81cec..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lime_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/lime_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/lime_plank_fence_gate.json deleted file mode 100644 index e55d6c03eb..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lime_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/lime_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/lime_plank_pressure_plate.json deleted file mode 100644 index 2241ba1965..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lime_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/lime_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_plank_slab.json b/src/main/resources/assets/spectrum/models/item/lime_plank_slab.json deleted file mode 100644 index c963233967..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lime_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/lime_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/lime_plank_stairs.json deleted file mode 100644 index cb20042bb9..0000000000 --- a/src/main/resources/assets/spectrum/models/item/lime_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/lime_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/lime_pressure_plate.json new file mode 100644 index 0000000000..b194f5afb3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lime_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/lime_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_slab.json b/src/main/resources/assets/spectrum/models/item/lime_slab.json new file mode 100644 index 0000000000..4abdbe99f7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lime_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/lime_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lime_stairs.json b/src/main/resources/assets/spectrum/models/item/lime_stairs.json new file mode 100644 index 0000000000..0555052123 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lime_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/lime_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/looting_falchion.json b/src/main/resources/assets/spectrum/models/item/looting_falchion.json deleted file mode 100644 index f0cf12bfcd..0000000000 --- a/src/main/resources/assets/spectrum/models/item/looting_falchion.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/looting_falchion" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/lucky_pickaxe.json b/src/main/resources/assets/spectrum/models/item/lucky_pickaxe.json new file mode 100644 index 0000000000..43378c31ab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/lucky_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/lucky_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_button.json b/src/main/resources/assets/spectrum/models/item/magenta_button.json new file mode 100644 index 0000000000..2167d5f828 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/magenta_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/magenta_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_fence.json b/src/main/resources/assets/spectrum/models/item/magenta_fence.json new file mode 100644 index 0000000000..f8e4fecfb8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/magenta_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/magenta_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_fence_gate.json b/src/main/resources/assets/spectrum/models/item/magenta_fence_gate.json new file mode 100644 index 0000000000..8c942e9ed1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/magenta_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/magenta_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_plank_button.json b/src/main/resources/assets/spectrum/models/item/magenta_plank_button.json deleted file mode 100644 index ede0768465..0000000000 --- a/src/main/resources/assets/spectrum/models/item/magenta_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/magenta_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_plank_fence.json b/src/main/resources/assets/spectrum/models/item/magenta_plank_fence.json deleted file mode 100644 index bee4eff7b8..0000000000 --- a/src/main/resources/assets/spectrum/models/item/magenta_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/magenta_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/magenta_plank_fence_gate.json deleted file mode 100644 index e211d921a0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/magenta_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/magenta_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/magenta_plank_pressure_plate.json deleted file mode 100644 index 32ae769ec8..0000000000 --- a/src/main/resources/assets/spectrum/models/item/magenta_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/magenta_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_plank_slab.json b/src/main/resources/assets/spectrum/models/item/magenta_plank_slab.json deleted file mode 100644 index f5004910d5..0000000000 --- a/src/main/resources/assets/spectrum/models/item/magenta_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/magenta_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/magenta_plank_stairs.json deleted file mode 100644 index 6f912bca73..0000000000 --- a/src/main/resources/assets/spectrum/models/item/magenta_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/magenta_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/magenta_pressure_plate.json new file mode 100644 index 0000000000..fd2c72cfdb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/magenta_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/magenta_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_slab.json b/src/main/resources/assets/spectrum/models/item/magenta_slab.json new file mode 100644 index 0000000000..cbd006a602 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/magenta_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/magenta_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/magenta_stairs.json b/src/main/resources/assets/spectrum/models/item/magenta_stairs.json new file mode 100644 index 0000000000..d50728f5e6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/magenta_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/magenta_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_bident.json b/src/main/resources/assets/spectrum/models/item/malachite_bident.json new file mode 100644 index 0000000000..ab4b266e42 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_bident.json @@ -0,0 +1,22 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/malachite_bident" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0, + "throwing": 0.0 + }, + "model": "spectrum:item/malachite_bident_oversized" + }, + { + "predicate": { + "in_world": 1.0, + "throwing": 1.0 + }, + "model": "spectrum:item/malachite_bident_oversized_throwing" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_bident_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_bident_oversized.json new file mode 100644 index 0000000000..52b73a8710 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_bident_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/malachite_bident_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_bident_oversized_throwing.json b/src/main/resources/assets/spectrum/models/item/malachite_bident_oversized_throwing.json new file mode 100644 index 0000000000..f74d29a3ab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_bident_oversized_throwing.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized_throwing", + "textures": { + "layer0": "spectrum:item/malachite_bident_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_chiseled_basalt.json b/src/main/resources/assets/spectrum/models/item/malachite_chiseled_basalt.json new file mode 100644 index 0000000000..20f13e5310 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_chiseled_basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/malachite_chiseled_basalt" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_chiseled_calcite.json b/src/main/resources/assets/spectrum/models/item/malachite_chiseled_calcite.json new file mode 100644 index 0000000000..681b061a8e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_chiseled_calcite.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/malachite_chiseled_calcite" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow.json new file mode 100644 index 0000000000..edd2eeafdc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow.json @@ -0,0 +1,175 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_standby" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/malachite_crossbow_standby_oversized" + }, + { + "predicate": { + "pulling": 1 + }, + "model": "spectrum:item/malachite_crossbow_pulling_0" + }, + { + "predicate": { + "in_world": 1.0, + "pulling": 1 + }, + "model": "spectrum:item/malachite_crossbow_pulling_0_oversized" + }, + { + "predicate": { + "pulling": 1, + "pull": 0.58 + }, + "model": "spectrum:item/malachite_crossbow_pulling_1" + }, + { + "predicate": { + "in_world": 1.0, + "pulling": 1, + "pull": 0.58 + }, + "model": "spectrum:item/malachite_crossbow_pulling_1_oversized" + }, + { + "predicate": { + "pulling": 1, + "pull": 1.0 + }, + "model": "spectrum:item/malachite_crossbow_pulling_2" + }, + { + "predicate": { + "in_world": 1.0, + "pulling": 1, + "pull": 1.0 + }, + "model": "spectrum:item/malachite_crossbow_pulling_2_oversized" + }, + { + "predicate": { + "charged": 1 + }, + "model": "spectrum:item/malachite_crossbow_arrow" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1 + }, + "model": "spectrum:item/malachite_crossbow_arrow_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.1 + }, + "model": "spectrum:item/malachite_crossbow_firework" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.1 + }, + "model": "spectrum:item/malachite_crossbow_firework_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.2 + }, + "model": "spectrum:item/malachite_crossbow_glass" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.2 + }, + "model": "spectrum:item/malachite_crossbow_glass_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.3 + }, + "model": "spectrum:item/malachite_crossbow_topaz" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.3 + }, + "model": "spectrum:item/malachite_crossbow_topaz_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.4 + }, + "model": "spectrum:item/malachite_crossbow_amethyst" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.4 + }, + "model": "spectrum:item/malachite_crossbow_amethyst_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.5 + }, + "model": "spectrum:item/malachite_crossbow_citrine" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.5 + }, + "model": "spectrum:item/malachite_crossbow_citrine_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.6 + }, + "model": "spectrum:item/malachite_crossbow_onyx" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.6 + }, + "model": "spectrum:item/malachite_crossbow_onyx_oversized" + }, + { + "predicate": { + "charged": 1, + "projectile": 0.7 + }, + "model": "spectrum:item/malachite_crossbow_moonstone" + }, + { + "predicate": { + "in_world": 1.0, + "charged": 1, + "projectile": 0.7 + }, + "model": "spectrum:item/malachite_crossbow_moonstone_oversized" + } + ] +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_amethyst.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_amethyst.json new file mode 100644 index 0000000000..92e30f5430 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_amethyst.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_amethyst" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_amethyst_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_amethyst_oversized.json new file mode 100644 index 0000000000..9aeea3c293 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_amethyst_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_amethyst_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_arrow.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_arrow.json new file mode 100644 index 0000000000..526f8a22b8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_arrow" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_arrow_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_arrow_oversized.json new file mode 100644 index 0000000000..95036dba26 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_arrow_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_arrow_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_citrine.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_citrine.json new file mode 100644 index 0000000000..9d7f5187df --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_citrine.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_citrine" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_citrine_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_citrine_oversized.json new file mode 100644 index 0000000000..71ff4c4b29 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_citrine_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_citrine_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_firework.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_firework.json new file mode 100644 index 0000000000..bdbd1e09ed --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_firework.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_firework" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_firework_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_firework_oversized.json new file mode 100644 index 0000000000..714607307f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_firework_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_firework_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_glass.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_glass.json new file mode 100644 index 0000000000..af5eb31f59 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_glass.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_glass" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_glass_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_glass_oversized.json new file mode 100644 index 0000000000..29584f16a0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_glass_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_glass_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_moonstone.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_moonstone.json new file mode 100644 index 0000000000..0a8c5d9dd0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_moonstone.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_moonstone" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_moonstone_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_moonstone_oversized.json new file mode 100644 index 0000000000..f6652fab76 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_moonstone_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_moonstone_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_onyx.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_onyx.json new file mode 100644 index 0000000000..9d3102f339 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_onyx.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_onyx" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_onyx_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_onyx_oversized.json new file mode 100644 index 0000000000..b7b77a4c4e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_onyx_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_onyx_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_0.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_0.json new file mode 100644 index 0000000000..6c7af273e1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_0.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_pulling_0" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_0_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_0_oversized.json new file mode 100644 index 0000000000..c73704f8ec --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_0_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_pulling_0_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_1.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_1.json new file mode 100644 index 0000000000..529b516d50 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_1.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_pulling_1" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_1_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_1_oversized.json new file mode 100644 index 0000000000..703c5498a3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_1_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_pulling_1_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_2.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_2.json new file mode 100644 index 0000000000..6a76c8c503 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_2.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_pulling_2" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_2_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_2_oversized.json new file mode 100644 index 0000000000..d4c36ec644 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_pulling_2_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_pulling_2_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_standby_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_standby_oversized.json new file mode 100644 index 0000000000..f621a5aef6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_standby_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_standby_oversized" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_topaz.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_topaz.json new file mode 100644 index 0000000000..a6fe8bf15d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_topaz.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_topaz" + } +} diff --git a/src/main/resources/assets/spectrum/models/item/malachite_crossbow_topaz_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_topaz_oversized.json new file mode 100644 index 0000000000..9063a77703 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_crossbow_topaz_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/crossbow_oversized", + "textures": { + "layer0": "spectrum:item/malachite_crossbow_topaz_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_glass_arrow.json b/src/main/resources/assets/spectrum/models/item/malachite_glass_arrow.json new file mode 100644 index 0000000000..260e6a3bf8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_glass_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/malachite_glass_arrow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_ultra_greatsword.json b/src/main/resources/assets/spectrum/models/item/malachite_ultra_greatsword.json new file mode 100644 index 0000000000..762aff7f99 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_ultra_greatsword.json @@ -0,0 +1,14 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/malachite_ultra_greatsword" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/malachite_ultra_greatsword_oversized" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_ultra_greatsword_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_ultra_greatsword_oversized.json new file mode 100644 index 0000000000..152626c648 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_ultra_greatsword_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/malachite_ultra_greatsword_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_workstaff.json b/src/main/resources/assets/spectrum/models/item/malachite_workstaff.json new file mode 100644 index 0000000000..00cf3fba87 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_workstaff.json @@ -0,0 +1,14 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/malachite_workstaff" + }, + "overrides": [ + { + "predicate": { + "in_world": 1.0 + }, + "model": "spectrum:item/malachite_workstaff_oversized" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/malachite_workstaff_oversized.json b/src/main/resources/assets/spectrum/models/item/malachite_workstaff_oversized.json new file mode 100644 index 0000000000..d4ba48aa11 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/malachite_workstaff_oversized.json @@ -0,0 +1,6 @@ +{ + "parent": "spectrum:item/handheld_oversized", + "textures": { + "layer0": "spectrum:item/malachite_workstaff_oversized" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/manual.json b/src/main/resources/assets/spectrum/models/item/manual.json deleted file mode 100644 index 242ce27a2d..0000000000 --- a/src/main/resources/assets/spectrum/models/item/manual.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/manual" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/moonshine.json b/src/main/resources/assets/spectrum/models/item/moonshine.json deleted file mode 100644 index 3941939535..0000000000 --- a/src/main/resources/assets/spectrum/models/item/moonshine.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/moonshine" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/moonstone_core.json b/src/main/resources/assets/spectrum/models/item/moonstone_core.json new file mode 100644 index 0000000000..f23289daa4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/moonstone_core.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/moonstone_core" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/moonstone_glass_arrow.json b/src/main/resources/assets/spectrum/models/item/moonstone_glass_arrow.json new file mode 100644 index 0000000000..a8e4493ebb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/moonstone_glass_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/moonstone_glass_arrow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/moonstone_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/moonstone_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/moonstone_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/moonstone_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/myceylon.json b/src/main/resources/assets/spectrum/models/item/myceylon.json new file mode 100644 index 0000000000..ec69d3474b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/myceylon.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/myceylon" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/myceylon_apple_pie.json b/src/main/resources/assets/spectrum/models/item/myceylon_apple_pie.json new file mode 100644 index 0000000000..4573173c99 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/myceylon_apple_pie.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/myceylon_apple_pie" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/myceylon_cookie.json b/src/main/resources/assets/spectrum/models/item/myceylon_cookie.json new file mode 100644 index 0000000000..60b4b340ee --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/myceylon_cookie.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/myceylon_cookie" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/myceylon_pumpkin_pie.json b/src/main/resources/assets/spectrum/models/item/myceylon_pumpkin_pie.json new file mode 100644 index 0000000000..a0bacc0982 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/myceylon_pumpkin_pie.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/myceylon_pumpkin_pie" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/nightfalls_blade.json b/src/main/resources/assets/spectrum/models/item/nightfalls_blade.json new file mode 100644 index 0000000000..0137bfa7b8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/nightfalls_blade.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/nightfalls_blade", + "layer1": "spectrum:item/nightfalls_blade_overlay" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/oblivion_pickaxe.json b/src/main/resources/assets/spectrum/models/item/oblivion_pickaxe.json new file mode 100644 index 0000000000..c9cc097e46 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/oblivion_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/oblivion_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/onyx_glass_arrow.json b/src/main/resources/assets/spectrum/models/item/onyx_glass_arrow.json new file mode 100644 index 0000000000..37f30b9be3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/onyx_glass_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/onyx_glass_arrow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/onyx_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/onyx_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/onyx_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/onyx_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/orange_button.json b/src/main/resources/assets/spectrum/models/item/orange_button.json new file mode 100644 index 0000000000..a9e1d6174b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/orange_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/orange_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_fence.json b/src/main/resources/assets/spectrum/models/item/orange_fence.json new file mode 100644 index 0000000000..3030315cca --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/orange_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/orange_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_fence_gate.json b/src/main/resources/assets/spectrum/models/item/orange_fence_gate.json new file mode 100644 index 0000000000..97f5f8911d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/orange_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/orange_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_plank_button.json b/src/main/resources/assets/spectrum/models/item/orange_plank_button.json deleted file mode 100644 index 89f7f8b3e2..0000000000 --- a/src/main/resources/assets/spectrum/models/item/orange_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/orange_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_plank_fence.json b/src/main/resources/assets/spectrum/models/item/orange_plank_fence.json deleted file mode 100644 index 4eec409e96..0000000000 --- a/src/main/resources/assets/spectrum/models/item/orange_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/orange_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/orange_plank_fence_gate.json deleted file mode 100644 index be7d3e2020..0000000000 --- a/src/main/resources/assets/spectrum/models/item/orange_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/orange_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/orange_plank_pressure_plate.json deleted file mode 100644 index 69cb48d188..0000000000 --- a/src/main/resources/assets/spectrum/models/item/orange_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/orange_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_plank_slab.json b/src/main/resources/assets/spectrum/models/item/orange_plank_slab.json deleted file mode 100644 index 97335700e5..0000000000 --- a/src/main/resources/assets/spectrum/models/item/orange_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/orange_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/orange_plank_stairs.json deleted file mode 100644 index a38e3c004b..0000000000 --- a/src/main/resources/assets/spectrum/models/item/orange_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/orange_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/orange_pressure_plate.json new file mode 100644 index 0000000000..d4eae74b27 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/orange_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/orange_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_slab.json b/src/main/resources/assets/spectrum/models/item/orange_slab.json new file mode 100644 index 0000000000..26b19c232e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/orange_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/orange_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/orange_stairs.json b/src/main/resources/assets/spectrum/models/item/orange_stairs.json new file mode 100644 index 0000000000..0462316df1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/orange_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/orange_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/oread_boots.json b/src/main/resources/assets/spectrum/models/item/oread_boots.json new file mode 100644 index 0000000000..7180bb4332 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/oread_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/oread_boots" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/overgrown_blackslag.json b/src/main/resources/assets/spectrum/models/item/overgrown_blackslag.json new file mode 100644 index 0000000000..c03bb1840d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/overgrown_blackslag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/overgrown_blackslag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paletur_fragment_block.json b/src/main/resources/assets/spectrum/models/item/paletur_fragment_block.json deleted file mode 100644 index 1b66af06fd..0000000000 --- a/src/main/resources/assets/spectrum/models/item/paletur_fragment_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/paletur_fragment_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paletur_fragments.json b/src/main/resources/assets/spectrum/models/item/paletur_fragments.json deleted file mode 100644 index 412213bbde..0000000000 --- a/src/main/resources/assets/spectrum/models/item/paletur_fragments.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/paletur_fragments" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paletur_gem.json b/src/main/resources/assets/spectrum/models/item/paletur_gem.json deleted file mode 100644 index 5b58387422..0000000000 --- a/src/main/resources/assets/spectrum/models/item/paletur_gem.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/paletur_gem" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paletur_ore.json b/src/main/resources/assets/spectrum/models/item/paletur_ore.json deleted file mode 100644 index 1e6abd4387..0000000000 --- a/src/main/resources/assets/spectrum/models/item/paletur_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/paletur_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paltaeria_fragment_block.json b/src/main/resources/assets/spectrum/models/item/paltaeria_fragment_block.json new file mode 100644 index 0000000000..f29966a7b4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/paltaeria_fragment_block.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/paltaeria_fragment_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paltaeria_fragments.json b/src/main/resources/assets/spectrum/models/item/paltaeria_fragments.json new file mode 100644 index 0000000000..f3e27a2f54 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/paltaeria_fragments.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/paltaeria_fragments" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paltaeria_gem.json b/src/main/resources/assets/spectrum/models/item/paltaeria_gem.json new file mode 100644 index 0000000000..a6ffc738fc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/paltaeria_gem.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/paltaeria_gem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/paltaeria_ore.json b/src/main/resources/assets/spectrum/models/item/paltaeria_ore.json new file mode 100644 index 0000000000..5325e1e7d9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/paltaeria_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/paltaeria_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/perturbed_eye.json b/src/main/resources/assets/spectrum/models/item/perturbed_eye.json new file mode 100644 index 0000000000..8583a9f487 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/perturbed_eye.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/perturbed_eye" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/phantom_frame.json b/src/main/resources/assets/spectrum/models/item/phantom_frame.json new file mode 100644 index 0000000000..7d3f27e362 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/phantom_frame.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/phantom_frame" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_button.json b/src/main/resources/assets/spectrum/models/item/pink_button.json new file mode 100644 index 0000000000..697b802a54 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/pink_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/pink_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_fence.json b/src/main/resources/assets/spectrum/models/item/pink_fence.json new file mode 100644 index 0000000000..8616fd3a64 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/pink_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/pink_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_fence_gate.json b/src/main/resources/assets/spectrum/models/item/pink_fence_gate.json new file mode 100644 index 0000000000..9a0c8f23ef --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/pink_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/pink_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_plank_button.json b/src/main/resources/assets/spectrum/models/item/pink_plank_button.json deleted file mode 100644 index 5c5b9b193e..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pink_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pink_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_plank_fence.json b/src/main/resources/assets/spectrum/models/item/pink_plank_fence.json deleted file mode 100644 index 0adaa6e926..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pink_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pink_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/pink_plank_fence_gate.json deleted file mode 100644 index dc2e6ad291..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pink_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pink_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/pink_plank_pressure_plate.json deleted file mode 100644 index aa1c496e76..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pink_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pink_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_plank_slab.json b/src/main/resources/assets/spectrum/models/item/pink_plank_slab.json deleted file mode 100644 index 4c43ed7195..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pink_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pink_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/pink_plank_stairs.json deleted file mode 100644 index 952887aeeb..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pink_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pink_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/pink_pressure_plate.json new file mode 100644 index 0000000000..b2d7e68157 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/pink_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/pink_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_slab.json b/src/main/resources/assets/spectrum/models/item/pink_slab.json new file mode 100644 index 0000000000..815adfd17d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/pink_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/pink_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pink_stairs.json b/src/main/resources/assets/spectrum/models/item/pink_stairs.json new file mode 100644 index 0000000000..81e61fe4e4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/pink_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/pink_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/placement_staff.json b/src/main/resources/assets/spectrum/models/item/placement_staff.json deleted file mode 100644 index 708e4502d7..0000000000 --- a/src/main/resources/assets/spectrum/models/item/placement_staff.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/placement_staff" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_basalt_button.json b/src/main/resources/assets/spectrum/models/item/polished_basalt_button.json new file mode 100644 index 0000000000..b56e67be34 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_basalt_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_basalt_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_basalt_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/polished_basalt_pressure_plate.json new file mode 100644 index 0000000000..1960315a33 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_basalt_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_basalt_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag.json new file mode 100644 index 0000000000..541764b056 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag_button.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag_button.json new file mode 100644 index 0000000000..6429368cab --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag_pillar.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag_pillar.json new file mode 100644 index 0000000000..706d725ab0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag_pillar" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag_pressure_plate.json new file mode 100644 index 0000000000..6be50b1f66 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag_slab.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag_slab.json new file mode 100644 index 0000000000..7b490cfed7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag_stairs.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag_stairs.json new file mode 100644 index 0000000000..c108b46391 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_blackslag_wall.json b/src/main/resources/assets/spectrum/models/item/polished_blackslag_wall.json new file mode 100644 index 0000000000..164f22d145 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_blackslag_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_blackslag_wall_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_calcite_button.json b/src/main/resources/assets/spectrum/models/item/polished_calcite_button.json new file mode 100644 index 0000000000..34e44cbfde --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_calcite_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_calcite_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_calcite_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/polished_calcite_pressure_plate.json new file mode 100644 index 0000000000..e82db18ec4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_calcite_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_calcite_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_shale_clay.json b/src/main/resources/assets/spectrum/models/item/polished_shale_clay.json new file mode 100644 index 0000000000..199c83dc57 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_shale_clay.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_shale_clay" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/item/polished_shale_clay_brick_slab.json new file mode 100644 index 0000000000..a5559216b7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_shale_clay_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_brick_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/models/item/polished_shale_clay_slab.json new file mode 100644 index 0000000000..ea9ee54739 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_shale_clay_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_shale_clay_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/models/item/polished_shale_clay_stairs.json new file mode 100644 index 0000000000..0cb12ebb62 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/polished_shale_clay_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/polished_shale_clay_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/prickly_bayleaf.json b/src/main/resources/assets/spectrum/models/item/prickly_bayleaf.json new file mode 100644 index 0000000000..06f930612d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/prickly_bayleaf.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/prickly_bayleaf" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/puller_node.json b/src/main/resources/assets/spectrum/models/item/puller_node.json deleted file mode 100644 index c5084714fe..0000000000 --- a/src/main/resources/assets/spectrum/models/item/puller_node.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/puller_node" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_button.json b/src/main/resources/assets/spectrum/models/item/purple_button.json new file mode 100644 index 0000000000..a88895d203 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/purple_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/purple_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_fence.json b/src/main/resources/assets/spectrum/models/item/purple_fence.json new file mode 100644 index 0000000000..ca28487508 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/purple_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/purple_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_fence_gate.json b/src/main/resources/assets/spectrum/models/item/purple_fence_gate.json new file mode 100644 index 0000000000..bc324b6b17 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/purple_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/purple_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_plank_button.json b/src/main/resources/assets/spectrum/models/item/purple_plank_button.json deleted file mode 100644 index 2fc4145b49..0000000000 --- a/src/main/resources/assets/spectrum/models/item/purple_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/purple_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_plank_fence.json b/src/main/resources/assets/spectrum/models/item/purple_plank_fence.json deleted file mode 100644 index c778fd3d61..0000000000 --- a/src/main/resources/assets/spectrum/models/item/purple_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/purple_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/purple_plank_fence_gate.json deleted file mode 100644 index 053ebfbce5..0000000000 --- a/src/main/resources/assets/spectrum/models/item/purple_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/purple_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/purple_plank_pressure_plate.json deleted file mode 100644 index 5511008fea..0000000000 --- a/src/main/resources/assets/spectrum/models/item/purple_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/purple_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_plank_slab.json b/src/main/resources/assets/spectrum/models/item/purple_plank_slab.json deleted file mode 100644 index ece2d0ead7..0000000000 --- a/src/main/resources/assets/spectrum/models/item/purple_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/purple_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/purple_plank_stairs.json deleted file mode 100644 index aa21aa9f61..0000000000 --- a/src/main/resources/assets/spectrum/models/item/purple_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/purple_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/purple_pressure_plate.json new file mode 100644 index 0000000000..e8214b2397 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/purple_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/purple_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_slab.json b/src/main/resources/assets/spectrum/models/item/purple_slab.json new file mode 100644 index 0000000000..e8ca520e89 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/purple_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/purple_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/purple_stairs.json b/src/main/resources/assets/spectrum/models/item/purple_stairs.json new file mode 100644 index 0000000000..fe4deb8982 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/purple_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/purple_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/pusher_node.json b/src/main/resources/assets/spectrum/models/item/pusher_node.json deleted file mode 100644 index 574f277ffe..0000000000 --- a/src/main/resources/assets/spectrum/models/item/pusher_node.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/pusher_node" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/radiance_staff.json b/src/main/resources/assets/spectrum/models/item/radiance_staff.json new file mode 100644 index 0000000000..ae6c2bd360 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/radiance_staff.json @@ -0,0 +1,14 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/radiance_staff" + }, + "overrides": [ + { + "predicate": { + "in_use": 1 + }, + "model": "spectrum:item/radiance_staff_use" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/radiance_staff_use.json b/src/main/resources/assets/spectrum/models/item/radiance_staff_use.json new file mode 100644 index 0000000000..dbe40bac21 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/radiance_staff_use.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/radiance_staff" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/radiating_ender.json b/src/main/resources/assets/spectrum/models/item/radiating_ender.json new file mode 100644 index 0000000000..9ef29ecfa0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/radiating_ender.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/radiating_ender" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/razor_falchion.json b/src/main/resources/assets/spectrum/models/item/razor_falchion.json new file mode 100644 index 0000000000..f40de0a87b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/razor_falchion.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/razor_falchion" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_button.json b/src/main/resources/assets/spectrum/models/item/red_button.json new file mode 100644 index 0000000000..ed1efa3593 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/red_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/red_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_fence.json b/src/main/resources/assets/spectrum/models/item/red_fence.json new file mode 100644 index 0000000000..5577eecdb8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/red_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/red_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_fence_gate.json b/src/main/resources/assets/spectrum/models/item/red_fence_gate.json new file mode 100644 index 0000000000..d04e2c3133 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/red_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/red_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_plank_button.json b/src/main/resources/assets/spectrum/models/item/red_plank_button.json deleted file mode 100644 index 4f933cc343..0000000000 --- a/src/main/resources/assets/spectrum/models/item/red_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/red_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_plank_fence.json b/src/main/resources/assets/spectrum/models/item/red_plank_fence.json deleted file mode 100644 index 15c24ca7d2..0000000000 --- a/src/main/resources/assets/spectrum/models/item/red_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/red_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/red_plank_fence_gate.json deleted file mode 100644 index aa5b989adc..0000000000 --- a/src/main/resources/assets/spectrum/models/item/red_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/red_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/red_plank_pressure_plate.json deleted file mode 100644 index 347dd0fab9..0000000000 --- a/src/main/resources/assets/spectrum/models/item/red_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/red_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_plank_slab.json b/src/main/resources/assets/spectrum/models/item/red_plank_slab.json deleted file mode 100644 index f9a5bac5c5..0000000000 --- a/src/main/resources/assets/spectrum/models/item/red_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/red_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/red_plank_stairs.json deleted file mode 100644 index 140edf6d52..0000000000 --- a/src/main/resources/assets/spectrum/models/item/red_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/red_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/red_pressure_plate.json new file mode 100644 index 0000000000..e438f65acc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/red_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/red_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_slab.json b/src/main/resources/assets/spectrum/models/item/red_slab.json new file mode 100644 index 0000000000..6f2c878e51 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/red_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/red_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/red_stairs.json b/src/main/resources/assets/spectrum/models/item/red_stairs.json new file mode 100644 index 0000000000..557a8935d6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/red_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/red_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/resonance_shard.json b/src/main/resources/assets/spectrum/models/item/resonance_shard.json new file mode 100644 index 0000000000..4ed35a81e5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/resonance_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/resonance_shard" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/ring_of_pursuit.json b/src/main/resources/assets/spectrum/models/item/ring_of_pursuit.json new file mode 100644 index 0000000000..cf213546c8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/ring_of_pursuit.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/ring_of_pursuit" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/rotten_ground.json b/src/main/resources/assets/spectrum/models/item/rotten_ground.json new file mode 100644 index 0000000000..c246b0f5c1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/rotten_ground.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/rotten_ground" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sawblade_grass.json b/src/main/resources/assets/spectrum/models/item/sawblade_grass.json new file mode 100644 index 0000000000..c3f2f35566 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/sawblade_grass.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/sawblade_grass" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sawblade_holly_berry.json b/src/main/resources/assets/spectrum/models/item/sawblade_holly_berry.json new file mode 100644 index 0000000000..7d28f66fe9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/sawblade_holly_berry.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/sawblade_holly_berry" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/scarlet_fragment_block.json b/src/main/resources/assets/spectrum/models/item/scarlet_fragment_block.json deleted file mode 100644 index ddfc775437..0000000000 --- a/src/main/resources/assets/spectrum/models/item/scarlet_fragment_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/scarlet_fragment_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/scarlet_fragments.json b/src/main/resources/assets/spectrum/models/item/scarlet_fragments.json deleted file mode 100644 index d2f85a3c44..0000000000 --- a/src/main/resources/assets/spectrum/models/item/scarlet_fragments.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/scarlet_fragments" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/scarlet_gem.json b/src/main/resources/assets/spectrum/models/item/scarlet_gem.json deleted file mode 100644 index 6c3cd0ee55..0000000000 --- a/src/main/resources/assets/spectrum/models/item/scarlet_gem.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/scarlet_gem" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/scarlet_ore.json b/src/main/resources/assets/spectrum/models/item/scarlet_ore.json deleted file mode 100644 index 46f5b9fb36..0000000000 --- a/src/main/resources/assets/spectrum/models/item/scarlet_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/scarlet_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sender_node.json b/src/main/resources/assets/spectrum/models/item/sender_node.json new file mode 100644 index 0000000000..d23220f75f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/sender_node.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/sender_node" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay.json b/src/main/resources/assets/spectrum/models/item/shale_clay.json new file mode 100644 index 0000000000..b62ca53251 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/item/shale_clay_brick_slab.json new file mode 100644 index 0000000000..a5559216b7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_brick_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/models/item/shale_clay_brick_stairs.json new file mode 100644 index 0000000000..b8e9a3af09 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_brick_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay_bricks.json b/src/main/resources/assets/spectrum/models/item/shale_clay_bricks.json new file mode 100644 index 0000000000..1906dc045c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/models/item/shale_clay_tile_slab.json new file mode 100644 index 0000000000..02e4b9835d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_tile_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/models/item/shale_clay_tile_stairs.json new file mode 100644 index 0000000000..da6dc32aa4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_tile_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shale_clay_tiles.json b/src/main/resources/assets/spectrum/models/item/shale_clay_tiles.json new file mode 100644 index 0000000000..fb9e9a7e2f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shale_clay_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shale_clay_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shimmel.json b/src/main/resources/assets/spectrum/models/item/shimmel.json new file mode 100644 index 0000000000..5214c9af36 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shimmel.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shimmel" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shimmerstone_block.json b/src/main/resources/assets/spectrum/models/item/shimmerstone_block.json new file mode 100644 index 0000000000..fd1a3f63c5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shimmerstone_block.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shimmerstone_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shimmerstone_gem.json b/src/main/resources/assets/spectrum/models/item/shimmerstone_gem.json new file mode 100644 index 0000000000..f2f28e032c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shimmerstone_gem.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/shimmerstone_gem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shimmerstone_ore.json b/src/main/resources/assets/spectrum/models/item/shimmerstone_ore.json new file mode 100644 index 0000000000..9eed586387 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shimmerstone_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/shimmerstone_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shooting_star.json b/src/main/resources/assets/spectrum/models/item/shooting_star.json deleted file mode 100644 index a7c0f9603e..0000000000 --- a/src/main/resources/assets/spectrum/models/item/shooting_star.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/shooting_star" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/shulker_head.json b/src/main/resources/assets/spectrum/models/item/shulker_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/shulker_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/silker_pickaxe.json b/src/main/resources/assets/spectrum/models/item/silker_pickaxe.json deleted file mode 100644 index cbd4c73824..0000000000 --- a/src/main/resources/assets/spectrum/models/item/silker_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/silker_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxcap_cap.json b/src/main/resources/assets/spectrum/models/item/slate_noxcap_cap.json new file mode 100644 index 0000000000..eaa115a8cf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxcap_cap.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxcap_cap" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxcap_gills.json b/src/main/resources/assets/spectrum/models/item/slate_noxcap_gills.json new file mode 100644 index 0000000000..0fa04299cc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxcap_gills.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxcap_gills" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/slate_noxcap_stem.json new file mode 100644 index 0000000000..47f3ca6b8a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxshroom.json b/src/main/resources/assets/spectrum/models/item/slate_noxshroom.json new file mode 100644 index 0000000000..f94fdfae40 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxshroom.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:block/slate_noxshroom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_amphora.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_amphora.json new file mode 100644 index 0000000000..4063a2b855 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_amphora.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_amphora" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_beam.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_beam.json new file mode 100644 index 0000000000..a4cb7ea7c7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_beam.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_beam" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_button.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_button.json new file mode 100644 index 0000000000..1564a32e15 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_door.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_door.json new file mode 100644 index 0000000000..99b7d12e36 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_door.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/slate_noxwood_door" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_fence.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_fence.json new file mode 100644 index 0000000000..f81fedc385 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_fence_gate.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_fence_gate.json new file mode 100644 index 0000000000..faf4c3f7dc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_lamp.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_lamp.json new file mode 100644 index 0000000000..3b859ab0a5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/slate_noxwood_lamp_item" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_lantern.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_lantern.json new file mode 100644 index 0000000000..d6a9bb125a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_lantern.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_lantern_off" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_light.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_light.json new file mode 100644 index 0000000000..3b1a778ec5 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_planks.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_planks.json new file mode 100644 index 0000000000..76b3bc7748 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_planks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_pressure_plate.json new file mode 100644 index 0000000000..bab39c7ad0 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_slab.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_slab.json new file mode 100644 index 0000000000..ef91cf6a41 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_stairs.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_stairs.json new file mode 100644 index 0000000000..0792e58bbf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slate_noxwood_trapdoor.json b/src/main/resources/assets/spectrum/models/item/slate_noxwood_trapdoor.json new file mode 100644 index 0000000000..57dff71f3e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slate_noxwood_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slate_noxwood_trapdoor_bottom" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/slush.json b/src/main/resources/assets/spectrum/models/item/slush.json new file mode 100644 index 0000000000..b1bbc7fd67 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/slush.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/slush" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/small_black_dragonjag.json b/src/main/resources/assets/spectrum/models/item/small_black_dragonjag.json new file mode 100644 index 0000000000..1a9fa63e51 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/small_black_dragonjag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/small_black_dragonjag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/small_green_dragonjag.json b/src/main/resources/assets/spectrum/models/item/small_green_dragonjag.json new file mode 100644 index 0000000000..5481cbfce4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/small_green_dragonjag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/small_green_dragonjag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/small_pink_dragonjag.json b/src/main/resources/assets/spectrum/models/item/small_pink_dragonjag.json new file mode 100644 index 0000000000..7016bb3960 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/small_pink_dragonjag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/small_pink_dragonjag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/small_purple_dragonjag.json b/src/main/resources/assets/spectrum/models/item/small_purple_dragonjag.json new file mode 100644 index 0000000000..8ede5318bd --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/small_purple_dragonjag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/small_purple_dragonjag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/small_red_dragonjag.json b/src/main/resources/assets/spectrum/models/item/small_red_dragonjag.json new file mode 100644 index 0000000000..a050ed9bc4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/small_red_dragonjag.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/small_red_dragonjag" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/snapping_ivy.json b/src/main/resources/assets/spectrum/models/item/snapping_ivy.json new file mode 100644 index 0000000000..0e7953d580 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/snapping_ivy.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/snapping_ivy" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sparklestone_block.json b/src/main/resources/assets/spectrum/models/item/sparklestone_block.json deleted file mode 100644 index 4638de10fb..0000000000 --- a/src/main/resources/assets/spectrum/models/item/sparklestone_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/sparklestone_block" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sparklestone_gem.json b/src/main/resources/assets/spectrum/models/item/sparklestone_gem.json deleted file mode 100644 index 4d92e991aa..0000000000 --- a/src/main/resources/assets/spectrum/models/item/sparklestone_gem.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/sparklestone_gem" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sparklestone_ore.json b/src/main/resources/assets/spectrum/models/item/sparklestone_ore.json deleted file mode 100644 index a1ec62c1b3..0000000000 --- a/src/main/resources/assets/spectrum/models/item/sparklestone_ore.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/sparklestone_ore" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/spiked_potatoes.json b/src/main/resources/assets/spectrum/models/item/spiked_potatoes.json new file mode 100644 index 0000000000..1c36a6c7e2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/spiked_potatoes.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/spiked_potatoes" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/star_fragment.json b/src/main/resources/assets/spectrum/models/item/star_fragment.json new file mode 100644 index 0000000000..ef2e7b97ed --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/star_fragment.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/star_fragment" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stone_shimmerstone_light.json b/src/main/resources/assets/spectrum/models/item/stone_shimmerstone_light.json new file mode 100644 index 0000000000..fa82d5bf5b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stone_shimmerstone_light.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stone_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stone_sparklestone_light.json b/src/main/resources/assets/spectrum/models/item/stone_sparklestone_light.json deleted file mode 100644 index 7aade97280..0000000000 --- a/src/main/resources/assets/spectrum/models/item/stone_sparklestone_light.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/stone_sparklestone_light" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/storm_stone.json b/src/main/resources/assets/spectrum/models/item/storm_stone.json new file mode 100644 index 0000000000..45dde86ce2 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/storm_stone.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/storm_stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stratine_fragment_block.json b/src/main/resources/assets/spectrum/models/item/stratine_fragment_block.json new file mode 100644 index 0000000000..6df39977e6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stratine_fragment_block.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stratine_fragment_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stratine_fragments.json b/src/main/resources/assets/spectrum/models/item/stratine_fragments.json new file mode 100644 index 0000000000..dac77efd1f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stratine_fragments.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/stratine_fragments" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stratine_gem.json b/src/main/resources/assets/spectrum/models/item/stratine_gem.json new file mode 100644 index 0000000000..9155cd6b17 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stratine_gem.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/stratine_gem" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stratine_ore.json b/src/main/resources/assets/spectrum/models/item/stratine_ore.json new file mode 100644 index 0000000000..1cd54821d4 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stratine_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stratine_ore" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stripped_chestnut_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/stripped_chestnut_noxcap_stem.json new file mode 100644 index 0000000000..cca877b94a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stripped_chestnut_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stripped_chestnut_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stripped_ebony_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/stripped_ebony_noxcap_stem.json new file mode 100644 index 0000000000..b7461b1e30 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stripped_ebony_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stripped_ebony_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stripped_ivory_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/stripped_ivory_noxcap_stem.json new file mode 100644 index 0000000000..8faa07eb49 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stripped_ivory_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stripped_ivory_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/stripped_slate_noxcap_stem.json b/src/main/resources/assets/spectrum/models/item/stripped_slate_noxcap_stem.json new file mode 100644 index 0000000000..343f320dbc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/stripped_slate_noxcap_stem.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/stripped_slate_noxcap_stem" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sucking_chest.json b/src/main/resources/assets/spectrum/models/item/sucking_chest.json deleted file mode 100644 index ae2dfba798..0000000000 --- a/src/main/resources/assets/spectrum/models/item/sucking_chest.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/sucking_chest" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/sylph_leggings.json b/src/main/resources/assets/spectrum/models/item/sylph_leggings.json new file mode 100644 index 0000000000..67584529ff --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/sylph_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/sylph_leggings" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/tadpole_head.json b/src/main/resources/assets/spectrum/models/item/tadpole_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/tadpole_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/tender_pickaxe.json b/src/main/resources/assets/spectrum/models/item/tender_pickaxe.json new file mode 100644 index 0000000000..19fa7a00c1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/tender_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "spectrum:item/tender_pickaxe" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/tidal_circlet.json b/src/main/resources/assets/spectrum/models/item/tidal_circlet.json deleted file mode 100644 index e4534285f2..0000000000 --- a/src/main/resources/assets/spectrum/models/item/tidal_circlet.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/tidal_circlet" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/tinted_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/tinted_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/tinted_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/tinted_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/topaz_glass_arrow.json b/src/main/resources/assets/spectrum/models/item/topaz_glass_arrow.json new file mode 100644 index 0000000000..5f3e5ad211 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/topaz_glass_arrow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/topaz_glass_arrow" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/topaz_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/topaz_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/topaz_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/topaz_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/triple_meat_pot_stew.json b/src/main/resources/assets/spectrum/models/item/triple_meat_pot_stew.json new file mode 100644 index 0000000000..d786ad2093 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/triple_meat_pot_stew.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/triple_meat_pot_stew" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/vanilla_player_only_glass.json b/src/main/resources/assets/spectrum/models/item/vanilla_semi_permeable_glass.json similarity index 100% rename from src/main/resources/assets/spectrum/models/item/vanilla_player_only_glass.json rename to src/main/resources/assets/spectrum/models/item/vanilla_semi_permeable_glass.json diff --git a/src/main/resources/assets/spectrum/models/item/void_bundle.json b/src/main/resources/assets/spectrum/models/item/void_bundle.json deleted file mode 100644 index 5f4730a90a..0000000000 --- a/src/main/resources/assets/spectrum/models/item/void_bundle.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/void_bundle_empty" - }, - "overrides": [ - { - "predicate": { - "locked": 0, - "filled": 1 - }, - "model": "spectrum:item/void_bundle_filled" - }, - { - "predicate": { - "locked": 1, - "filled": 0 - }, - "model": "spectrum:item/void_bundle_empty_locked" - }, - { - "predicate": { - "filled": 1, - "locked": 1 - }, - "model": "spectrum:item/void_bundle_filled_locked" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/void_bundle_empty_locked.json b/src/main/resources/assets/spectrum/models/item/void_bundle_empty_locked.json deleted file mode 100644 index 9d62043bbb..0000000000 --- a/src/main/resources/assets/spectrum/models/item/void_bundle_empty_locked.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/void_bundle_empty_locked" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/void_bundle_filled.json b/src/main/resources/assets/spectrum/models/item/void_bundle_filled.json deleted file mode 100644 index a6a99ebd8f..0000000000 --- a/src/main/resources/assets/spectrum/models/item/void_bundle_filled.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/void_bundle_filled" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/void_bundle_filled_locked.json b/src/main/resources/assets/spectrum/models/item/void_bundle_filled_locked.json deleted file mode 100644 index 4b54018eda..0000000000 --- a/src/main/resources/assets/spectrum/models/item/void_bundle_filled_locked.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/void_bundle_filled_locked" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/voiding_pickaxe.json b/src/main/resources/assets/spectrum/models/item/voiding_pickaxe.json deleted file mode 100644 index 5892d357d0..0000000000 --- a/src/main/resources/assets/spectrum/models/item/voiding_pickaxe.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/handheld", - "textures": { - "layer0": "spectrum:item/voiding_pickaxe" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/warden_head.json b/src/main/resources/assets/spectrum/models/item/warden_head.json new file mode 100644 index 0000000000..364b6e65fb --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/warden_head.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/template_skull" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay.json b/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay.json new file mode 100644 index 0000000000..974bd80c05 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_polished_shale_clay" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay_slab.json b/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay_slab.json new file mode 100644 index 0000000000..2b2646450e --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_polished_shale_clay_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay_stairs.json b/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..ed779a0a04 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_polished_shale_clay_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_polished_shale_clay_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_brick_slab.json b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_brick_slab.json new file mode 100644 index 0000000000..e65d1e157c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_shale_clay_brick_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_brick_stairs.json b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..27f8e63b9b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_shale_clay_brick_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_bricks.json b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_bricks.json new file mode 100644 index 0000000000..ea8fa56c8a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_shale_clay_bricks" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tile_slab.json b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tile_slab.json new file mode 100644 index 0000000000..30f9c38877 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tile_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_shale_clay_tile_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tile_stairs.json b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..dbc5c4f18f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tile_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_shale_clay_tile_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tiles.json b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tiles.json new file mode 100644 index 0000000000..3b3d105e8c --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weathered_shale_clay_tiles.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/weathered_shale_clay_tiles" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/weeping_circlet.json b/src/main/resources/assets/spectrum/models/item/weeping_circlet.json new file mode 100644 index 0000000000..50de03daaf --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/weeping_circlet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "spectrum:item/weeping_circlet" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_button.json b/src/main/resources/assets/spectrum/models/item/white_button.json new file mode 100644 index 0000000000..1dc516c47d --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/white_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/white_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_crystal_grace.json b/src/main/resources/assets/spectrum/models/item/white_crystal_grace.json deleted file mode 100644 index 009efd34a2..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_crystal_grace.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "spectrum:item/white_crystal_grace" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_fence.json b/src/main/resources/assets/spectrum/models/item/white_fence.json new file mode 100644 index 0000000000..0e9c42da00 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/white_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/white_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_fence_gate.json b/src/main/resources/assets/spectrum/models/item/white_fence_gate.json new file mode 100644 index 0000000000..deca5c1fcc --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/white_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/white_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_plank_button.json b/src/main/resources/assets/spectrum/models/item/white_plank_button.json deleted file mode 100644 index cdd2391eb9..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/white_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_plank_fence.json b/src/main/resources/assets/spectrum/models/item/white_plank_fence.json deleted file mode 100644 index 80af062f5c..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/white_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/white_plank_fence_gate.json deleted file mode 100644 index 1f3c21a939..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/white_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/white_plank_pressure_plate.json deleted file mode 100644 index 24fad0fe26..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/white_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_plank_slab.json b/src/main/resources/assets/spectrum/models/item/white_plank_slab.json deleted file mode 100644 index 82dbc942bb..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/white_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/white_plank_stairs.json deleted file mode 100644 index c1c810a8b1..0000000000 --- a/src/main/resources/assets/spectrum/models/item/white_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/white_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/white_pressure_plate.json new file mode 100644 index 0000000000..7f58b8aaed --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/white_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/white_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_slab.json b/src/main/resources/assets/spectrum/models/item/white_slab.json new file mode 100644 index 0000000000..776aae157a --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/white_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/white_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/white_stairs.json b/src/main/resources/assets/spectrum/models/item/white_stairs.json new file mode 100644 index 0000000000..bfaf025021 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/white_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/white_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_button.json b/src/main/resources/assets/spectrum/models/item/yellow_button.json new file mode 100644 index 0000000000..ceb9704506 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/yellow_button.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/yellow_button_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_fence.json b/src/main/resources/assets/spectrum/models/item/yellow_fence.json new file mode 100644 index 0000000000..d756259071 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/yellow_fence.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/yellow_fence_inventory" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_fence_gate.json b/src/main/resources/assets/spectrum/models/item/yellow_fence_gate.json new file mode 100644 index 0000000000..c5a70abd0f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/yellow_fence_gate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/yellow_fence_gate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_plank_button.json b/src/main/resources/assets/spectrum/models/item/yellow_plank_button.json deleted file mode 100644 index 7be7203003..0000000000 --- a/src/main/resources/assets/spectrum/models/item/yellow_plank_button.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/yellow_plank_button_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_plank_fence.json b/src/main/resources/assets/spectrum/models/item/yellow_plank_fence.json deleted file mode 100644 index 0d8f45d85b..0000000000 --- a/src/main/resources/assets/spectrum/models/item/yellow_plank_fence.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/yellow_plank_fence_inventory" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_plank_fence_gate.json b/src/main/resources/assets/spectrum/models/item/yellow_plank_fence_gate.json deleted file mode 100644 index f610101f31..0000000000 --- a/src/main/resources/assets/spectrum/models/item/yellow_plank_fence_gate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/yellow_plank_fence_gate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_plank_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/yellow_plank_pressure_plate.json deleted file mode 100644 index 41718f8e69..0000000000 --- a/src/main/resources/assets/spectrum/models/item/yellow_plank_pressure_plate.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/yellow_plank_pressure_plate" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_plank_slab.json b/src/main/resources/assets/spectrum/models/item/yellow_plank_slab.json deleted file mode 100644 index d4ad9efc60..0000000000 --- a/src/main/resources/assets/spectrum/models/item/yellow_plank_slab.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/yellow_plank_slab" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_plank_stairs.json b/src/main/resources/assets/spectrum/models/item/yellow_plank_stairs.json deleted file mode 100644 index 24dff6c0b9..0000000000 --- a/src/main/resources/assets/spectrum/models/item/yellow_plank_stairs.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "spectrum:block/yellow_plank_stairs" -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_pressure_plate.json b/src/main/resources/assets/spectrum/models/item/yellow_pressure_plate.json new file mode 100644 index 0000000000..ae036d16b8 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/yellow_pressure_plate.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/yellow_pressure_plate" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_slab.json b/src/main/resources/assets/spectrum/models/item/yellow_slab.json new file mode 100644 index 0000000000..3a79c69269 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/yellow_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/yellow_slab" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/item/yellow_stairs.json b/src/main/resources/assets/spectrum/models/item/yellow_stairs.json new file mode 100644 index 0000000000..bda7131fb7 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/item/yellow_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "spectrum:block/yellow_stairs" +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/template_chime.json b/src/main/resources/assets/spectrum/models/templates/chime.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_chime.json rename to src/main/resources/assets/spectrum/models/templates/chime.json diff --git a/src/main/resources/assets/spectrum/models/templates/double_cross.json b/src/main/resources/assets/spectrum/models/templates/double_cross.json new file mode 100644 index 0000000000..e4a3b6e6e6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/double_cross.json @@ -0,0 +1,180 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#cross" + }, + "elements": [ + { + "from": [ + 0.8, + 0, + 8 + ], + "to": [ + 15.2, + 16, + 8 + ], + "shade": false, + "rotation": { + "angle": 45, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ], + "rescale": true + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } + } + }, + { + "from": [ + 8, + 0, + 0.8 + ], + "to": [ + 8, + 16, + 15.2 + ], + "shade": false, + "rotation": { + "angle": 45, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ], + "rescale": true + }, + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } + } + }, + { + "from": [ + 0.8, + 0, + 8 + ], + "to": [ + 15.2, + 16, + 8 + ], + "shade": false, + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ], + "rescale": true + }, + "faces": { + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } + } + }, + { + "from": [ + 8, + 0, + 0.8 + ], + "to": [ + 8, + 16, + 15.2 + ], + "shade": false, + "rotation": { + "angle": 0, + "axis": "y", + "origin": [ + 8, + 8, + 8 + ], + "rescale": true + }, + "faces": { + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#cross" + } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/template_fusion_shrine.json b/src/main/resources/assets/spectrum/models/templates/fusion_shrine.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_fusion_shrine.json rename to src/main/resources/assets/spectrum/models/templates/fusion_shrine.json diff --git a/src/main/resources/assets/spectrum/models/block/template_item_bowl.json b/src/main/resources/assets/spectrum/models/templates/item_bowl.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_item_bowl.json rename to src/main/resources/assets/spectrum/models/templates/item_bowl.json diff --git a/src/main/resources/assets/spectrum/models/templates/multilayer_light.json b/src/main/resources/assets/spectrum/models/templates/multilayer_light.json new file mode 100644 index 0000000000..a803393fe9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/multilayer_light.json @@ -0,0 +1,118 @@ +{ + "parent": "block/block", + "textures": { + "particle": "#top", + "vertical": "#top", + "side_outer": "#side", + "inner": "#inside" + }, + "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "texture": "#vertical", + "cullface": "down" + }, + "up": { + "texture": "#vertical", + "cullface": "up" + }, + "north": { + "texture": "#side_outer", + "cullface": "north" + }, + "south": { + "texture": "#side_outer", + "cullface": "south" + }, + "west": { + "texture": "#side_outer", + "cullface": "west" + }, + "east": { + "texture": "#side_outer", + "cullface": "east" + } + } + }, + { + "from": [ + 1, + 1, + 1 + ], + "to": [ + 15, + 15, + 15 + ], + "faces": { + "down": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#inner" + }, + "up": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#inner" + }, + "north": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#inner" + }, + "south": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#inner" + }, + "west": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#inner" + }, + "east": { + "uv": [ + 0, + 0, + 16, + 16 + ], + "texture": "#inner" + } + } + } + ] +} + diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp.json new file mode 100644 index 0000000000..74fbce2501 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp.json @@ -0,0 +1,59 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 2, 4], + "to": [12, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "name": "feet", + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "east": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "south": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "west": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "up": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + }, + { + "name": "feet inner", + "from": [12, 2, 12], + "to": [4, 0, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "up": {"uv": [2, 15, 3, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_alt.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_alt.json new file mode 100644 index 0000000000..af61c376db --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_alt.json @@ -0,0 +1,87 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 2, 4], + "to": [12, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "name": "neck", + "from": [5, 13, 5], + "to": [11, 14, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "east": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "south": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "west": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "up": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "down": {"uv": [1, 2, 7, 3], "texture": "#0"} + } + }, + { + "name": "hat", + "from": [4, 14, 4], + "to": [12, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 0, 16, 8], "texture": "#0"} + } + }, + { + "name": "feet", + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "east": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "south": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "west": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "up": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + }, + { + "name": "feet inner", + "from": [12, 2, 12], + "to": [4, 0, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "up": {"uv": [2, 15, 3, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_diagonal.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_diagonal.json new file mode 100644 index 0000000000..ded5813a0b --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_diagonal.json @@ -0,0 +1,59 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 2, 4], + "to": [12, 13, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "name": "feet", + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "east": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "south": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "west": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "up": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + }, + { + "name": "feet inner", + "from": [12, 2, 12], + "to": [4, 0, 4], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "up": {"uv": [2, 15, 3, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_diagonal_alt.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_diagonal_alt.json new file mode 100644 index 0000000000..c08a8103a9 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_diagonal_alt.json @@ -0,0 +1,87 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 2, 4], + "to": [12, 13, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 14], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "name": "neck", + "from": [5, 13, 5], + "to": [11, 14, 11], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "east": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "south": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "west": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "up": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "down": {"uv": [1, 2, 7, 3], "texture": "#0"} + } + }, + { + "name": "hat", + "from": [4, 14, 4], + "to": [12, 16, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 0, 16, 8], "texture": "#0"} + } + }, + { + "name": "feet", + "from": [4, 0, 4], + "to": [12, 2, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "east": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "south": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "west": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "up": {"uv": [0, 14, 8, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + }, + { + "name": "feet inner", + "from": [12, 2, 12], + "to": [4, 0, 4], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "east": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "south": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "west": {"uv": [0, 16, 8, 14], "texture": "#0"}, + "up": {"uv": [2, 15, 3, 16], "texture": "#0"}, + "down": {"uv": [2, 15, 3, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging.json new file mode 100644 index 0000000000..c0189fbda3 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging.json @@ -0,0 +1,59 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 4, 4], + "to": [12, 13, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "name": "neck", + "from": [5, 13, 5], + "to": [11, 14, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "east": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "south": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "west": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "up": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "down": {"uv": [1, 2, 7, 3], "texture": "#0"} + } + }, + { + "name": "hat", + "from": [4, 14, 4], + "to": [12, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_alt.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_alt.json new file mode 100644 index 0000000000..66e8a57bb6 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_alt.json @@ -0,0 +1,31 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 7, 4], + "to": [12, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_diagonal.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_diagonal.json new file mode 100644 index 0000000000..efded30cc1 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_diagonal.json @@ -0,0 +1,59 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 4, 4], + "to": [12, 13, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + }, + { + "name": "neck", + "from": [5, 13, 5], + "to": [11, 14, 11], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "east": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "south": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "west": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "up": {"uv": [1, 2, 7, 3], "texture": "#0"}, + "down": {"uv": [1, 2, 7, 3], "texture": "#0"} + } + }, + { + "name": "hat", + "from": [4, 14, 4], + "to": [12, 16, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 8, 2], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_diagonal_alt.json b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_diagonal_alt.json new file mode 100644 index 0000000000..5828c0d10f --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/noxwood_lamp_hanging_diagonal_alt.json @@ -0,0 +1,31 @@ +{ + "credit": "Made by Azazelthedemonlord ~ https://azazelthedemonlord.newgrounds.com/ ~ ♡", + "textures": { + "0": "#all", + "particle": "#all" + }, + "elements": [ + { + "name": "body", + "from": [4, 7, 4], + "to": [12, 16, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 4.25, 8]}, + "faces": { + "north": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "east": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "south": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "west": {"uv": [0, 3, 8, 13], "texture": "#0"}, + "up": {"uv": [8, 0, 16, 8], "texture": "#0"}, + "down": {"uv": [8, 8, 16, 16], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "main", + "origin": [0, 0, 0], + "color": 0, + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/template_pedestal.json b/src/main/resources/assets/spectrum/models/templates/pedestal.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_pedestal.json rename to src/main/resources/assets/spectrum/models/templates/pedestal.json diff --git a/src/main/resources/assets/spectrum/models/block/template_roundel.json b/src/main/resources/assets/spectrum/models/templates/roundel.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_roundel.json rename to src/main/resources/assets/spectrum/models/templates/roundel.json diff --git a/src/main/resources/assets/spectrum/models/templates/shimmerstone_light.json b/src/main/resources/assets/spectrum/models/templates/shimmerstone_light.json new file mode 100644 index 0000000000..4d75bb5131 --- /dev/null +++ b/src/main/resources/assets/spectrum/models/templates/shimmerstone_light.json @@ -0,0 +1,265 @@ +{ + "parent": "minecraft:block/block", + "credit": "Made with Blockbench", + "textures": { + "outer": "minecraft:block/smooth_stone", + "inner": "spectrum:block/shimmerstone_light", + "particle": "minecraft:block/smooth_stone" + }, + "elements": [ + { + "name": "west", + "from": [ + 5, + 0, + 4 + ], + "to": [ + 11, + 1, + 12 + ], + "faces": { + "north": { + "uv": [ + 5, + 6, + 11, + 7 + ], + "texture": "#outer" + }, + "east": { + "uv": [ + 6, + 7, + 14, + 8 + ], + "texture": "#outer" + }, + "south": { + "uv": [ + 5, + 4, + 11, + 5 + ], + "texture": "#outer" + }, + "west": { + "uv": [ + 4, + 8, + 12, + 9 + ], + "texture": "#outer" + }, + "up": { + "uv": [ + 5, + 4, + 11, + 12 + ], + "texture": "#outer" + }, + "down": { + "uv": [ + 4, + 3, + 10, + 11 + ], + "texture": "#outer" + } + } + }, + { + "name": "shimmerstone", + "from": [ + 6, + 1, + 5 + ], + "to": [ + 10, + 2, + 11 + ], + "faces": { + "north": { + "uv": [ + 2, + 14, + 6, + 15 + ], + "texture": "#inner" + }, + "east": { + "uv": [ + 1, + 1, + 7, + 2 + ], + "texture": "#inner" + }, + "south": { + "uv": [ + 10, + 2, + 14, + 3 + ], + "texture": "#inner" + }, + "west": { + "uv": [ + 9, + 13, + 15, + 14 + ], + "texture": "#inner" + }, + "up": { + "uv": [ + 11, + 9, + 15, + 15 + ], + "texture": "#inner" + }, + "down": { + "uv": [ + 13, + 1, + 15, + 5 + ], + "texture": "#inner" + } + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [ + -17, + 0, + 0 + ], + "translation": [ + 0, + 5, + -1.25 + ], + "scale": [ + 0.7, + 0.7, + 0.7 + ] + }, + "thirdperson_lefthand": { + "rotation": [ + -17, + 0, + 0 + ], + "translation": [ + 0, + 5, + -1.25 + ], + "scale": [ + 0.7, + 0.7, + 0.7 + ] + }, + "firstperson_righthand": { + "rotation": [ + 33, + 0, + 0 + ], + "translation": [ + 5, + 2.5, + -0.5 + ], + "scale": [ + 0.7, + 0.7, + 0.7 + ] + }, + "firstperson_lefthand": { + "rotation": [ + 33, + 0, + 0 + ], + "translation": [ + 5, + 5, + 0.7 + ], + "scale": [ + 0.7, + 0.7, + 0.7 + ] + }, + "ground": { + "translation": [ + 0, + 4, + 0 + ], + "scale": [ + 0.5, + 0.5, + 0.5 + ] + }, + "gui": { + "rotation": [ + 120, + 0, + -30 + ], + "translation": [ + 4.5, + -4.5, + 0 + ], + "scale": [ + 1.25, + 1.25, + 1.25 + ] + }, + "fixed": { + "rotation": [ + -90, + 0, + 0 + ], + "translation": [ + 0, + 0, + -12 + ], + "scale": [ + 1.5, + 1.5, + 1.5 + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/models/block/template_shooting_star.json b/src/main/resources/assets/spectrum/models/templates/shooting_star.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_shooting_star.json rename to src/main/resources/assets/spectrum/models/templates/shooting_star.json diff --git a/src/main/resources/assets/spectrum/models/block/template_sugar_stick0.json b/src/main/resources/assets/spectrum/models/templates/sugar_stick0.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_sugar_stick0.json rename to src/main/resources/assets/spectrum/models/templates/sugar_stick0.json diff --git a/src/main/resources/assets/spectrum/models/block/template_sugar_stick1.json b/src/main/resources/assets/spectrum/models/templates/sugar_stick1.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_sugar_stick1.json rename to src/main/resources/assets/spectrum/models/templates/sugar_stick1.json diff --git a/src/main/resources/assets/spectrum/models/block/template_sugar_stick2.json b/src/main/resources/assets/spectrum/models/templates/sugar_stick2.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_sugar_stick2.json rename to src/main/resources/assets/spectrum/models/templates/sugar_stick2.json diff --git a/src/main/resources/assets/spectrum/models/block/template_upgrade.json b/src/main/resources/assets/spectrum/models/templates/upgrade.json similarity index 100% rename from src/main/resources/assets/spectrum/models/block/template_upgrade.json rename to src/main/resources/assets/spectrum/models/templates/upgrade.json diff --git a/src/main/resources/assets/spectrum/particles/dragonrot.json b/src/main/resources/assets/spectrum/particles/dragonrot.json new file mode 100644 index 0000000000..5302aa2c52 --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/dragonrot.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "spectrum:dragonrot" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/dragonrot_fishing.json b/src/main/resources/assets/spectrum/particles/dragonrot_fishing.json new file mode 100644 index 0000000000..c703fe39bd --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/dragonrot_fishing.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "spectrum:dragonrot_splash_0", + "spectrum:dragonrot_splash_1", + "spectrum:dragonrot_splash_2", + "spectrum:dragonrot_splash_3" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/dragonrot_splash.json b/src/main/resources/assets/spectrum/particles/dragonrot_splash.json new file mode 100644 index 0000000000..c703fe39bd --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/dragonrot_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "spectrum:dragonrot_splash_0", + "spectrum:dragonrot_splash_1", + "spectrum:dragonrot_splash_2", + "spectrum:dragonrot_splash_3" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/dripping_dragonrot.json b/src/main/resources/assets/spectrum/particles/dripping_dragonrot.json new file mode 100644 index 0000000000..987e9f30aa --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/dripping_dragonrot.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_hang" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/falling_dragonrot.json b/src/main/resources/assets/spectrum/particles/falling_dragonrot.json new file mode 100644 index 0000000000..520ad48bf0 --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/falling_dragonrot.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_fall" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/landing_dragonrot.json b/src/main/resources/assets/spectrum/particles/landing_dragonrot.json new file mode 100644 index 0000000000..89230de9ae --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/landing_dragonrot.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "minecraft:drip_land" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/moonstone_strike.json b/src/main/resources/assets/spectrum/particles/moonstone_strike.json new file mode 100644 index 0000000000..64dd429bb1 --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/moonstone_strike.json @@ -0,0 +1,3 @@ +{ + "textures": [] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/pastel_transmission.json b/src/main/resources/assets/spectrum/particles/pastel_transmission.json new file mode 100644 index 0000000000..093a4a05d8 --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/pastel_transmission.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "spectrum:sphere" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle.json b/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle.json new file mode 100644 index 0000000000..478687630f --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle.json @@ -0,0 +1,7 @@ +{ + "textures": [ + "spectrum:shimmerstone_sparkle", + "spectrum:shimmerstone_sparkle_small", + "spectrum:shimmerstone_sparkle_tiny" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle_small.json b/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle_small.json new file mode 100644 index 0000000000..f070599689 --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle_small.json @@ -0,0 +1,6 @@ +{ + "textures": [ + "spectrum:shimmerstone_sparkle_small", + "spectrum:shimmerstone_sparkle_tiny" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle_tiny.json b/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle_tiny.json new file mode 100644 index 0000000000..49d4ea625e --- /dev/null +++ b/src/main/resources/assets/spectrum/particles/shimmerstone_sparkle_tiny.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "spectrum:shimmerstone_sparkle_tiny" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/sparklestone_sparkle.json b/src/main/resources/assets/spectrum/particles/sparklestone_sparkle.json deleted file mode 100644 index 21eb8a3a59..0000000000 --- a/src/main/resources/assets/spectrum/particles/sparklestone_sparkle.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "textures": [ - "spectrum:sparklestone_sparkle", - "spectrum:sparklestone_sparkle_small", - "spectrum:sparklestone_sparkle_tiny" - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/sparklestone_sparkle_small.json b/src/main/resources/assets/spectrum/particles/sparklestone_sparkle_small.json deleted file mode 100644 index b188f15a1c..0000000000 --- a/src/main/resources/assets/spectrum/particles/sparklestone_sparkle_small.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "textures": [ - "spectrum:sparklestone_sparkle_small", - "spectrum:sparklestone_sparkle_tiny" - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/particles/sparklestone_sparkle_tiny.json b/src/main/resources/assets/spectrum/particles/sparklestone_sparkle_tiny.json deleted file mode 100644 index 018d8f64dc..0000000000 --- a/src/main/resources/assets/spectrum/particles/sparklestone_sparkle_tiny.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": [ - "spectrum:sparklestone_sparkle_tiny" - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/spectrum/sounds.json b/src/main/resources/assets/spectrum/sounds.json index 5ac1ddfaf8..fc89fb197e 100644 --- a/src/main/resources/assets/spectrum/sounds.json +++ b/src/main/resources/assets/spectrum/sounds.json @@ -36,6 +36,27 @@ "spectrum:paintbrush_paint10" ] }, + "ground_slam": { + "subtitle": "spectrum.subtitles.ground_slam", + "sounds": [ + "spectrum:ground_slam1", + "spectrum:ground_slam2", + "spectrum:ground_slam3", + "spectrum:ground_slam4" + ] + }, + "squeaker": { + "subtitle": "spectrum.subtitles.squeaker", + "sounds": [ + "spectrum:squeaker" + ] + }, + "ground_slam_charge": { + "subtitle": "spectrum.subtitles.ground_slam_charge", + "sounds": [ + "spectrum:ground_slam_charge" + ] + }, "ink_projectile_hit": { "subtitle": "spectrum.subtitles.ink_projectile_hit", "sounds": [ @@ -57,6 +78,12 @@ "spectrum:enchanter_working" ] }, + "deeper_down_portal_open": { + "subtitle": "spectrum.subtitles.deeper_down_portal_open", + "sounds": [ + "spectrum:deeper_down_portal_open" + ] + }, "enchanter_ding": { "sounds": [ "spectrum:enchanter_ding" @@ -131,6 +158,12 @@ "spectrum:air_launch_belt_charging" ] }, + "overcharging": { + "subtitle": "spectrum.subtitles.overcharging", + "sounds": [ + "spectrum:overcharging" + ] + }, "radiance_pin_trigger": { "subtitle": "spectrum.subtitles.radiance_pin_trigger", "sounds": [ @@ -150,34 +183,34 @@ "spectrum:cracker8" ] }, - "light_staff_charging": { - "subtitle": "spectrum.subtitles.light_staff_charging", + "radiance_staff_charging": { + "subtitle": "spectrum.subtitles.radiance_staff_charging", "sounds": [ - "spectrum:light_staff_charging" + "spectrum:radiance_staff_charging" ] }, - "light_staff_place": { - "subtitle": "spectrum.subtitles.light_staff_place", + "radiance_staff_place": { + "subtitle": "spectrum.subtitles.radiance_staff_place", "sounds": [ - "spectrum:light_staff_place" + "spectrum:radiance_staff_place" ] }, - "light_staff_break": { - "subtitle": "spectrum.subtitles.light_staff_break", + "radiance_staff_break": { + "subtitle": "spectrum.subtitles.radiance_staff_break", "sounds": [ - "spectrum:light_staff_break" + "spectrum:radiance_staff_break" ] }, - "sucking_chest_open": { - "subtitle": "spectrum.subtitles.block.sucking_chest.open", + "black_hole_chest_open": { + "subtitle": "spectrum.subtitles.block.black_hole_chest.open", "sounds": [ - "spectrum:block.sucking_chest.open" + "spectrum:block.black_hole_chest.open" ] }, - "sucking_chest_close": { - "subtitle": "spectrum.subtitles.block.sucking_chest.close", + "black_hole_chest_close": { + "subtitle": "spectrum.subtitles.block.black_hole_chest.close", "sounds": [ - "spectrum:block.sucking_chest.close" + "spectrum:block.black_hole_chest.close" ] }, "fading_placed": { @@ -198,25 +231,25 @@ "spectrum:block.ruin.place" ] }, - "spectrum.music.spectrum_theme": { + "music.spectrum_theme": { "subtitle": "spectrum.subtitles.spectrum_theme_plays", "sounds": [ "spectrum:spectrum_theme" ] }, - "spectrum.music.boss_theme": { + "music.boss_theme": { "subtitle": "spectrum.subtitles.boss_theme_plays", "sounds": [ "spectrum:radiarc_irrelevance_fading" ] }, - "spectrum.music.deeper_down_theme": { + "music.deeper_down_theme": { "subtitle": "spectrum.subtitles.deeper_down_theme_plays", "sounds": [ "spectrum:sunsette_darker_than_hell" ] }, - "spectrum.music.divinity": { + "music.divinity": { "sounds": [ "spectrum:proper_motions_everreflective" ] @@ -279,7 +312,13 @@ "spectrum:midnight_solution_ambient" ] }, - "dimension_sounds": { + "dragonrot_ambient": { + "subtitle": "spectrum.subtitles.block.dragonrot.ambient", + "sounds": [ + "spectrum:dragonrot_ambient" + ] + }, + "ambient.dimension_sounds": { "subtitle": "spectrum.subtitles.dimension.ambient", "sounds": [ "spectrum:dimension_ambient1", @@ -315,10 +354,10 @@ "spectrum:fusion_shrine_crafting_aborted" ] }, - "exchange_staff_select": { - "subtitle": "spectrum.subtitles.exchange_staff.select", + "exchanging_staff_select": { + "subtitle": "spectrum.subtitles.exchanging_staff.select", "sounds": [ - "spectrum:exchange_staff_select" + "spectrum:exchanging_staff_select" ] }, "pedestal_crafting_finished_generic": { diff --git a/src/main/resources/assets/spectrum/sounds/block.sucking_chest.close.ogg b/src/main/resources/assets/spectrum/sounds/block.black_hole_chest.close.ogg similarity index 100% rename from src/main/resources/assets/spectrum/sounds/block.sucking_chest.close.ogg rename to src/main/resources/assets/spectrum/sounds/block.black_hole_chest.close.ogg diff --git a/src/main/resources/assets/spectrum/sounds/block.sucking_chest.open.ogg b/src/main/resources/assets/spectrum/sounds/block.black_hole_chest.open.ogg similarity index 100% rename from src/main/resources/assets/spectrum/sounds/block.sucking_chest.open.ogg rename to src/main/resources/assets/spectrum/sounds/block.black_hole_chest.open.ogg diff --git a/src/main/resources/assets/spectrum/sounds/deeper_down_portal_open.ogg b/src/main/resources/assets/spectrum/sounds/deeper_down_portal_open.ogg new file mode 100644 index 0000000000..8f3759336e Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/deeper_down_portal_open.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/exchange_staff_select.ogg b/src/main/resources/assets/spectrum/sounds/exchanging_staff_select.ogg similarity index 100% rename from src/main/resources/assets/spectrum/sounds/exchange_staff_select.ogg rename to src/main/resources/assets/spectrum/sounds/exchanging_staff_select.ogg diff --git a/src/main/resources/assets/spectrum/sounds/ground_slam1.ogg b/src/main/resources/assets/spectrum/sounds/ground_slam1.ogg new file mode 100644 index 0000000000..112faba4fb Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/ground_slam1.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/ground_slam2.ogg b/src/main/resources/assets/spectrum/sounds/ground_slam2.ogg new file mode 100644 index 0000000000..0222acb369 Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/ground_slam2.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/ground_slam3.ogg b/src/main/resources/assets/spectrum/sounds/ground_slam3.ogg new file mode 100644 index 0000000000..90e3ea6adc Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/ground_slam3.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/ground_slam4.ogg b/src/main/resources/assets/spectrum/sounds/ground_slam4.ogg new file mode 100644 index 0000000000..22c0888ce1 Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/ground_slam4.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/ground_slam_charge.ogg b/src/main/resources/assets/spectrum/sounds/ground_slam_charge.ogg new file mode 100644 index 0000000000..504ea37193 Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/ground_slam_charge.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/overcharging.ogg b/src/main/resources/assets/spectrum/sounds/overcharging.ogg new file mode 100644 index 0000000000..5355c5862a Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/overcharging.ogg differ diff --git a/src/main/resources/assets/spectrum/sounds/light_staff_break.ogg b/src/main/resources/assets/spectrum/sounds/radiance_staff_break.ogg similarity index 100% rename from src/main/resources/assets/spectrum/sounds/light_staff_break.ogg rename to src/main/resources/assets/spectrum/sounds/radiance_staff_break.ogg diff --git a/src/main/resources/assets/spectrum/sounds/light_staff_charging.ogg b/src/main/resources/assets/spectrum/sounds/radiance_staff_charging.ogg similarity index 100% rename from src/main/resources/assets/spectrum/sounds/light_staff_charging.ogg rename to src/main/resources/assets/spectrum/sounds/radiance_staff_charging.ogg diff --git a/src/main/resources/assets/spectrum/sounds/light_staff_place.ogg b/src/main/resources/assets/spectrum/sounds/radiance_staff_place.ogg similarity index 100% rename from src/main/resources/assets/spectrum/sounds/light_staff_place.ogg rename to src/main/resources/assets/spectrum/sounds/radiance_staff_place.ogg diff --git a/src/main/resources/assets/spectrum/sounds/squeaker.ogg b/src/main/resources/assets/spectrum/sounds/squeaker.ogg new file mode 100644 index 0000000000..04006ad4dd Binary files /dev/null and b/src/main/resources/assets/spectrum/sounds/squeaker.ogg differ diff --git a/src/main/resources/assets/spectrum/textures/block/ancient_polished_chiseled_polished_blackslag.png b/src/main/resources/assets/spectrum/textures/block/ancient_polished_chiseled_polished_blackslag.png new file mode 100644 index 0000000000..05ab00bf9d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ancient_polished_chiseled_polished_blackslag.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ender_bag.png b/src/main/resources/assets/spectrum/textures/block/bag_of_holding.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/ender_bag.png rename to src/main/resources/assets/spectrum/textures/block/bag_of_holding.png diff --git a/src/main/resources/assets/spectrum/textures/block/basalt_bricks.png b/src/main/resources/assets/spectrum/textures/block/basalt_bricks.png index 75320b7a7c..58c29f8592 100755 Binary files a/src/main/resources/assets/spectrum/textures/block/basalt_bricks.png and b/src/main/resources/assets/spectrum/textures/block/basalt_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/basalt_tiles.png b/src/main/resources/assets/spectrum/textures/block/basalt_tiles.png new file mode 100755 index 0000000000..6b67b50990 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/basalt_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/black_sludge.png b/src/main/resources/assets/spectrum/textures/block/black_sludge.png new file mode 100644 index 0000000000..e9e34619f4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/black_sludge.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_bricks.png b/src/main/resources/assets/spectrum/textures/block/blackslag_bricks.png new file mode 100755 index 0000000000..9e2ad63228 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore.png index bfb8750356..84ded47d5c 100644 Binary files a/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore.png and b/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore_top.png new file mode 100644 index 0000000000..3b15dffa0f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_coal_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_copper_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_copper_ore.png new file mode 100644 index 0000000000..daf6bed844 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_copper_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_copper_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_copper_ore_top.png new file mode 100644 index 0000000000..306856b184 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_copper_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore.png index ae56f43fcc..521a3e3c42 100644 Binary files a/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore.png and b/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore_top.png new file mode 100644 index 0000000000..3e655f5edd Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_diamond_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore.png index 74a0e35245..a46b5a04a4 100644 Binary files a/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore.png and b/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore_top.png new file mode 100644 index 0000000000..4206b4fc59 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_emerald_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore.png index 8a4ef2e56b..c20cdc8ea0 100644 Binary files a/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore.png and b/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore_top.png new file mode 100644 index 0000000000..3a13c8a8d4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_gold_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore.png index 43431e8d72..647141a15f 100644 Binary files a/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore.png and b/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore_top.png new file mode 100644 index 0000000000..e8c2106fab Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_iron_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore.png index 00d33aebd0..0afeb26ec4 100644 Binary files a/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore.png and b/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore_top.png new file mode 100644 index 0000000000..a13fef60ff Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_lapis_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_redstone_ore_top.png b/src/main/resources/assets/spectrum/textures/block/blackslag_redstone_ore_top.png new file mode 100644 index 0000000000..bb39d0088d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_redstone_ore_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_sparklestone_ore.png b/src/main/resources/assets/spectrum/textures/block/blackslag_shimmerstone_ore.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/blackslag_sparklestone_ore.png rename to src/main/resources/assets/spectrum/textures/block/blackslag_shimmerstone_ore.png diff --git a/src/main/resources/assets/spectrum/textures/block/blackslag_tiles.png b/src/main/resources/assets/spectrum/textures/block/blackslag_tiles.png new file mode 100755 index 0000000000..85efe2ef08 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/blackslag_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/calcite_bricks.png b/src/main/resources/assets/spectrum/textures/block/calcite_bricks.png index b62cffbec6..a2f6008484 100755 Binary files a/src/main/resources/assets/spectrum/textures/block/calcite_bricks.png and b/src/main/resources/assets/spectrum/textures/block/calcite_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/calcite_tiles.png b/src/main/resources/assets/spectrum/textures/block/calcite_tiles.png new file mode 100755 index 0000000000..5306b49729 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/calcite_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_cap.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_cap.png new file mode 100755 index 0000000000..064201be2b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_cap.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_cap_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_cap_top.png new file mode 100755 index 0000000000..427ec3bff8 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_cap_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_gills.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_gills.png new file mode 100755 index 0000000000..1c368056ad Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_gills.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_gills_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_gills_top.png new file mode 100755 index 0000000000..19c7f4faa2 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_gills_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_stem.png new file mode 100755 index 0000000000..a239329a4c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_stem_top.png new file mode 100755 index 0000000000..ed334a3d13 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxshroom.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxshroom.png new file mode 100644 index 0000000000..5b7b482176 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxshroom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora.png new file mode 100755 index 0000000000..f5bfd9e149 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora_top.png new file mode 100644 index 0000000000..0c91ee8a0a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora_top_open.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora_top_open.png new file mode 100755 index 0000000000..81b14c715f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_amphora_top_open.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_beam.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_beam.png new file mode 100755 index 0000000000..2d128b2656 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_beam.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_beam_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_beam_top.png new file mode 100755 index 0000000000..31535dd51e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_beam_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_door_bottom.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_door_bottom.png new file mode 100755 index 0000000000..d6d096bcfd Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_door_bottom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_door_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_door_top.png new file mode 100755 index 0000000000..d1c891ac98 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_door_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lamp.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lamp.png new file mode 100755 index 0000000000..be08c8d67a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lamp.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lantern_off.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lantern_off.png new file mode 100755 index 0000000000..91c7d34a83 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lantern_off.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lantern_on.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lantern_on.png new file mode 100755 index 0000000000..77575a0105 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_lantern_on.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_light.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_light.png new file mode 100755 index 0000000000..ed11ccdc12 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_light.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_light_top.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_light_top.png new file mode 100755 index 0000000000..26e0c683fd Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_light_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_planks.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_planks.png new file mode 100644 index 0000000000..7bdc834cae Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_planks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_trapdoor.png b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_trapdoor.png new file mode 100755 index 0000000000..c6c907769a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chestnut_noxwood_trapdoor.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/chiseled_polished_blackslag.png b/src/main/resources/assets/spectrum/textures/block/chiseled_polished_blackslag.png new file mode 100644 index 0000000000..6429365640 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/chiseled_polished_blackslag.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cobbled_blackslag.png b/src/main/resources/assets/spectrum/textures/block/cobbled_blackslag.png new file mode 100755 index 0000000000..433b3d57b1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cobbled_blackslag.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cracked_basalt_bricks.png b/src/main/resources/assets/spectrum/textures/block/cracked_basalt_bricks.png new file mode 100755 index 0000000000..bd2f3c1544 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cracked_basalt_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cracked_basalt_tiles.png b/src/main/resources/assets/spectrum/textures/block/cracked_basalt_tiles.png new file mode 100755 index 0000000000..932238ac1b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cracked_basalt_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cracked_blackslag_bricks.png b/src/main/resources/assets/spectrum/textures/block/cracked_blackslag_bricks.png new file mode 100755 index 0000000000..d6dd5c0acf Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cracked_blackslag_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cracked_blackslag_tiles.png b/src/main/resources/assets/spectrum/textures/block/cracked_blackslag_tiles.png new file mode 100755 index 0000000000..edf36c195a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cracked_blackslag_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cracked_calcite_bricks.png b/src/main/resources/assets/spectrum/textures/block/cracked_calcite_bricks.png new file mode 100755 index 0000000000..95500cca4a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cracked_calcite_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/cracked_calcite_tiles.png b/src/main/resources/assets/spectrum/textures/block/cracked_calcite_tiles.png new file mode 100755 index 0000000000..f07377fd22 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/cracked_calcite_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/deeper_down_portal.png b/src/main/resources/assets/spectrum/textures/block/deeper_down_portal.png new file mode 100644 index 0000000000..ec9cf45858 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/deeper_down_portal.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/deepslate_sparklestone_ore.png b/src/main/resources/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/deepslate_sparklestone_ore.png rename to src/main/resources/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png diff --git a/src/main/resources/assets/spectrum/textures/block/deepslate_sparklestone_ore.png.mcmeta b/src/main/resources/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/deepslate_sparklestone_ore.png.mcmeta rename to src/main/resources/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/block/downstone.png b/src/main/resources/assets/spectrum/textures/block/downstone.png new file mode 100755 index 0000000000..b2008bc713 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/downstone.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/dragonbone_side.png b/src/main/resources/assets/spectrum/textures/block/dragonbone_side.png new file mode 100755 index 0000000000..3b4c1a6b84 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/dragonbone_side.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/dragonbone_top.png b/src/main/resources/assets/spectrum/textures/block/dragonbone_top.png new file mode 100755 index 0000000000..1d13d933b9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/dragonbone_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/dragonrot_still.png b/src/main/resources/assets/spectrum/textures/block/dragonrot_still.png new file mode 100644 index 0000000000..e8398808ae Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/dragonrot_still.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_cap.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_cap.png new file mode 100755 index 0000000000..c9bc5aea8a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_cap.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_cap_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_cap_top.png new file mode 100755 index 0000000000..a52e91a834 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_cap_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_gills.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_gills.png new file mode 100755 index 0000000000..784bc37791 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_gills.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_gills_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_gills_top.png new file mode 100755 index 0000000000..147fd483f6 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_gills_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_stem.png new file mode 100755 index 0000000000..3995022f5e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_stem_top.png new file mode 100755 index 0000000000..888cfbef5c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxshroom.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxshroom.png new file mode 100644 index 0000000000..a561771e10 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxshroom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora.png new file mode 100755 index 0000000000..b824b554d4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora_top.png new file mode 100644 index 0000000000..9a2550a479 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora_top_open.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora_top_open.png new file mode 100755 index 0000000000..679b48896c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_amphora_top_open.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_beam.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_beam.png new file mode 100755 index 0000000000..d69b00f129 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_beam.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_beam_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_beam_top.png new file mode 100755 index 0000000000..f17e0ce757 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_beam_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_door_bottom.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_door_bottom.png new file mode 100755 index 0000000000..1127581462 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_door_bottom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_door_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_door_top.png new file mode 100755 index 0000000000..1e659d7c17 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_door_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lamp.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lamp.png new file mode 100755 index 0000000000..eac8af857f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lamp.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lantern_off.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lantern_off.png new file mode 100755 index 0000000000..96eb5452ea Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lantern_off.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lantern_on.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lantern_on.png new file mode 100755 index 0000000000..ea26f6f61d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_lantern_on.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_light.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_light.png new file mode 100755 index 0000000000..22cb829f8d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_light.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_light_top.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_light_top.png new file mode 100755 index 0000000000..19362d7d90 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_light_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_planks.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_planks.png new file mode 100644 index 0000000000..8400e8d487 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_planks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_trapdoor.png b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_trapdoor.png new file mode 100755 index 0000000000..13f36724cc Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ebony_noxwood_trapdoor.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/exposed_polished_shale_clay.png b/src/main/resources/assets/spectrum/textures/block/exposed_polished_shale_clay.png new file mode 100644 index 0000000000..560509d18d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/exposed_polished_shale_clay.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/exposed_shale_clay_bricks.png b/src/main/resources/assets/spectrum/textures/block/exposed_shale_clay_bricks.png new file mode 100644 index 0000000000..99c65c7cbd Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/exposed_shale_clay_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/exposed_shale_clay_tiles.png b/src/main/resources/assets/spectrum/textures/block/exposed_shale_clay_tiles.png new file mode 100644 index 0000000000..26916f5f2b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/exposed_shale_clay_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/terror_bedrock.png b/src/main/resources/assets/spectrum/textures/block/forfeiture_bedrock.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/terror_bedrock.png rename to src/main/resources/assets/spectrum/textures/block/forfeiture_bedrock.png diff --git a/src/main/resources/assets/spectrum/textures/block/terror_default.png b/src/main/resources/assets/spectrum/textures/block/forfeiture_default.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/terror_default.png rename to src/main/resources/assets/spectrum/textures/block/forfeiture_default.png diff --git a/src/main/resources/assets/spectrum/textures/block/hummingstone.png b/src/main/resources/assets/spectrum/textures/block/hummingstone.png new file mode 100644 index 0000000000..ad4f313813 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/hummingstone.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/hummingstone_glass.png b/src/main/resources/assets/spectrum/textures/block/hummingstone_glass.png new file mode 100644 index 0000000000..3a3efdf6fc Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/hummingstone_glass.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/hummingstone_humming.png b/src/main/resources/assets/spectrum/textures/block/hummingstone_humming.png new file mode 100644 index 0000000000..37a510e83a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/hummingstone_humming.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/img.png b/src/main/resources/assets/spectrum/textures/block/img.png new file mode 100644 index 0000000000..c1327e297d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/img.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/img_1.png b/src/main/resources/assets/spectrum/textures/block/img_1.png new file mode 100644 index 0000000000..c1327e297d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/img_1.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_cap.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_cap.png new file mode 100755 index 0000000000..168c4679b6 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_cap.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_cap_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_cap_top.png new file mode 100755 index 0000000000..712d8c47ee Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_cap_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_gills.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_gills.png new file mode 100755 index 0000000000..ff26fbc801 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_gills.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_gills_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_gills_top.png new file mode 100755 index 0000000000..d6c7a799b0 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_gills_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_stem.png new file mode 100755 index 0000000000..77614154cf Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_stem_top.png new file mode 100755 index 0000000000..6a38bba79d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxshroom.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxshroom.png new file mode 100644 index 0000000000..df6ae03c39 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxshroom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora.png new file mode 100755 index 0000000000..38900a2026 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora_top.png new file mode 100644 index 0000000000..0c5725e095 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora_top_open.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora_top_open.png new file mode 100755 index 0000000000..b130d03aa6 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_amphora_top_open.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_beam.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_beam.png new file mode 100755 index 0000000000..861064c90e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_beam.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_beam_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_beam_top.png new file mode 100755 index 0000000000..821b1b82ef Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_beam_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_door_bottom.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_door_bottom.png new file mode 100755 index 0000000000..a262a2538c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_door_bottom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_door_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_door_top.png new file mode 100755 index 0000000000..34a2404979 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_door_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lamp.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lamp.png new file mode 100755 index 0000000000..f2837e7ca1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lamp.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lantern_off.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lantern_off.png new file mode 100755 index 0000000000..20f0b12c65 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lantern_off.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lantern_on.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lantern_on.png new file mode 100755 index 0000000000..774d47ff59 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_lantern_on.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_light.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_light.png new file mode 100755 index 0000000000..370c5996b2 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_light.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_light_top.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_light_top.png new file mode 100755 index 0000000000..f2aef87e01 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_light_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_planks.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_planks.png new file mode 100644 index 0000000000..d21a40ce5d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_planks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_trapdoor.png b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_trapdoor.png new file mode 100755 index 0000000000..8b475af26d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/ivory_noxwood_trapdoor.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/large_netherite_bud.png b/src/main/resources/assets/spectrum/textures/block/large_netherite_bud.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/large_netherite_bud.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/netherite_cluster.png b/src/main/resources/assets/spectrum/textures/block/netherite_cluster.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/netherite_cluster.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/paletur_fragment_block_side.png b/src/main/resources/assets/spectrum/textures/block/paltaeria_fragment_block_side.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/paletur_fragment_block_side.png rename to src/main/resources/assets/spectrum/textures/block/paltaeria_fragment_block_side.png diff --git a/src/main/resources/assets/spectrum/textures/block/paletur_fragment_block_vertical.png b/src/main/resources/assets/spectrum/textures/block/paltaeria_fragment_block_vertical.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/paletur_fragment_block_vertical.png rename to src/main/resources/assets/spectrum/textures/block/paltaeria_fragment_block_vertical.png diff --git a/src/main/resources/assets/spectrum/textures/block/paletur_ore.png b/src/main/resources/assets/spectrum/textures/block/paltaeria_ore.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/paletur_ore.png rename to src/main/resources/assets/spectrum/textures/block/paltaeria_ore.png diff --git a/src/main/resources/assets/spectrum/textures/block/polished_blackslag.png b/src/main/resources/assets/spectrum/textures/block/polished_blackslag.png new file mode 100755 index 0000000000..3dd769c0ba Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/polished_blackslag.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/polished_blackslag_pillar.png b/src/main/resources/assets/spectrum/textures/block/polished_blackslag_pillar.png new file mode 100644 index 0000000000..ea517587b1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/polished_blackslag_pillar.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/polished_shale_clay.png b/src/main/resources/assets/spectrum/textures/block/polished_shale_clay.png new file mode 100644 index 0000000000..84da5ddb8c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/polished_shale_clay.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_certus_diamond_block.png b/src/main/resources/assets/spectrum/textures/block/pure_certus_diamond_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_certus_diamond_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_certus_lapis_block.png b/src/main/resources/assets/spectrum/textures/block/pure_certus_lapis_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_certus_lapis_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_certus_redstone_block.png b/src/main/resources/assets/spectrum/textures/block/pure_certus_redstone_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_certus_redstone_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_coal_block.png b/src/main/resources/assets/spectrum/textures/block/pure_coal_block.png new file mode 100644 index 0000000000..2fbf37cbc5 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_coal_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_diamond_block.png b/src/main/resources/assets/spectrum/textures/block/pure_diamond_block.png new file mode 100644 index 0000000000..ff0201d15d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_diamond_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_emerald_block.png b/src/main/resources/assets/spectrum/textures/block/pure_emerald_block.png new file mode 100644 index 0000000000..f610ec4041 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_emerald_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_emerald_bud.png b/src/main/resources/assets/spectrum/textures/block/pure_emerald_bud.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_emerald_bud.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_glowstone_block.png b/src/main/resources/assets/spectrum/textures/block/pure_glowstone_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_glowstone_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_lapis_block.png b/src/main/resources/assets/spectrum/textures/block/pure_lapis_block.png new file mode 100644 index 0000000000..1fa51a93b9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_lapis_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_netherite_block.png b/src/main/resources/assets/spectrum/textures/block/pure_netherite_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_netherite_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_prismarine_block.png b/src/main/resources/assets/spectrum/textures/block/pure_prismarine_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_prismarine_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_quartz_block.png b/src/main/resources/assets/spectrum/textures/block/pure_quartz_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_quartz_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/pure_redstone_block.png b/src/main/resources/assets/spectrum/textures/block/pure_redstone_block.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/pure_redstone_block.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/ender_treasure.png b/src/main/resources/assets/spectrum/textures/block/radiating_ender.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/ender_treasure.png rename to src/main/resources/assets/spectrum/textures/block/radiating_ender.png diff --git a/src/main/resources/assets/spectrum/textures/block/rotten_ground.png b/src/main/resources/assets/spectrum/textures/block/rotten_ground.png new file mode 100644 index 0000000000..3fdf1ba837 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/rotten_ground.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/sawblade_grass.png b/src/main/resources/assets/spectrum/textures/block/sawblade_grass.png new file mode 100644 index 0000000000..ae80e54906 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/sawblade_grass.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/sawblade_grass_snow.png b/src/main/resources/assets/spectrum/textures/block/sawblade_grass_snow.png new file mode 100644 index 0000000000..ae80e54906 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/sawblade_grass_snow.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/sawblade_grass_top.png b/src/main/resources/assets/spectrum/textures/block/sawblade_grass_top.png new file mode 100644 index 0000000000..d65702ea6d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/sawblade_grass_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/shale_clay_bricks.png b/src/main/resources/assets/spectrum/textures/block/shale_clay_bricks.png new file mode 100755 index 0000000000..28bf9bd2d4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/shale_clay_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/shale_clay_side.png b/src/main/resources/assets/spectrum/textures/block/shale_clay_side.png new file mode 100755 index 0000000000..b6376bf15b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/shale_clay_side.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/shale_clay_tiles.png b/src/main/resources/assets/spectrum/textures/block/shale_clay_tiles.png new file mode 100755 index 0000000000..aac7b03813 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/shale_clay_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/shale_clay_top.png b/src/main/resources/assets/spectrum/textures/block/shale_clay_top.png new file mode 100755 index 0000000000..f0d1155032 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/shale_clay_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/sparklestone_block.png b/src/main/resources/assets/spectrum/textures/block/shimmerstone_block.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/sparklestone_block.png rename to src/main/resources/assets/spectrum/textures/block/shimmerstone_block.png diff --git a/src/main/resources/assets/spectrum/textures/block/sparklestone_light.png b/src/main/resources/assets/spectrum/textures/block/shimmerstone_light.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/sparklestone_light.png rename to src/main/resources/assets/spectrum/textures/block/shimmerstone_light.png diff --git a/src/main/resources/assets/spectrum/textures/block/sparklestone_light.png.mcmeta b/src/main/resources/assets/spectrum/textures/block/shimmerstone_light.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/sparklestone_light.png.mcmeta rename to src/main/resources/assets/spectrum/textures/block/shimmerstone_light.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/block/sparklestone_ore.png b/src/main/resources/assets/spectrum/textures/block/shimmerstone_ore.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/sparklestone_ore.png rename to src/main/resources/assets/spectrum/textures/block/shimmerstone_ore.png diff --git a/src/main/resources/assets/spectrum/textures/block/sparklestone_ore.png.mcmeta b/src/main/resources/assets/spectrum/textures/block/shimmerstone_ore.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/sparklestone_ore.png.mcmeta rename to src/main/resources/assets/spectrum/textures/block/shimmerstone_ore.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap.png new file mode 100755 index 0000000000..87f6d42846 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap_side.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap_side.png new file mode 100755 index 0000000000..5302537d7d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap_side.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap_top.png new file mode 100755 index 0000000000..492818f533 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_cap_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_gills.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_gills.png new file mode 100755 index 0000000000..bd194cd4f1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_gills.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_gills_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_gills_top.png new file mode 100755 index 0000000000..0c8c586950 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_gills_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_stem.png new file mode 100755 index 0000000000..6766af559a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_stem_top.png new file mode 100755 index 0000000000..28d0806e7f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxshroom.png b/src/main/resources/assets/spectrum/textures/block/slate_noxshroom.png new file mode 100644 index 0000000000..8aa7c31e36 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxshroom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora.png new file mode 100755 index 0000000000..4161b94c2f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_bottom.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_bottom.png new file mode 100755 index 0000000000..c72e2abc4a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_bottom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_top.png new file mode 100644 index 0000000000..e4004c6b26 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_top_open.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_top_open.png new file mode 100755 index 0000000000..8739a68b76 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_amphora_top_open.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_beam.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_beam.png new file mode 100755 index 0000000000..8643182f61 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_beam.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_beam_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_beam_top.png new file mode 100755 index 0000000000..b1c146d88c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_beam_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door.png new file mode 100755 index 0000000000..f8941eee21 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door_bottom.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door_bottom.png new file mode 100755 index 0000000000..d503fe7ca1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door_bottom.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door_top.png new file mode 100755 index 0000000000..c834e162e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_door_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lamp.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lamp.png new file mode 100755 index 0000000000..e5d91cd1ef Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lamp.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lantern_off.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lantern_off.png new file mode 100755 index 0000000000..fea2d1a6eb Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lantern_off.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lantern_on.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lantern_on.png new file mode 100755 index 0000000000..16d34a1413 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_lantern_on.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_light.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_light.png new file mode 100755 index 0000000000..0894e979b7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_light.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_light_top.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_light_top.png new file mode 100755 index 0000000000..c72e2abc4a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_light_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_planks.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_planks.png new file mode 100644 index 0000000000..7641b17fd0 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_planks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slate_noxwood_trapdoor.png b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_trapdoor.png new file mode 100755 index 0000000000..e6ef394d5b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slate_noxwood_trapdoor.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/slush.png b/src/main/resources/assets/spectrum/textures/block/slush.png new file mode 100755 index 0000000000..4ce1816742 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/slush.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/small_netherite_bud.png b/src/main/resources/assets/spectrum/textures/block/small_netherite_bud.png new file mode 100644 index 0000000000..384d316ab7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/small_netherite_bud.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/scarlet_fragment_block_side.png b/src/main/resources/assets/spectrum/textures/block/stratine_fragment_block_side.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/scarlet_fragment_block_side.png rename to src/main/resources/assets/spectrum/textures/block/stratine_fragment_block_side.png diff --git a/src/main/resources/assets/spectrum/textures/block/scarlet_fragment_block_vertical.png b/src/main/resources/assets/spectrum/textures/block/stratine_fragment_block_vertical.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/scarlet_fragment_block_vertical.png rename to src/main/resources/assets/spectrum/textures/block/stratine_fragment_block_vertical.png diff --git a/src/main/resources/assets/spectrum/textures/block/scarlet_ore.png b/src/main/resources/assets/spectrum/textures/block/stratine_ore.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/block/scarlet_ore.png rename to src/main/resources/assets/spectrum/textures/block/stratine_ore.png diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_chestnut_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/stripped_chestnut_noxcap_stem.png new file mode 100755 index 0000000000..24e17428ab Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_chestnut_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_chestnut_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/stripped_chestnut_noxcap_stem_top.png new file mode 100755 index 0000000000..52939241a5 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_chestnut_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_ebony_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/stripped_ebony_noxcap_stem.png new file mode 100755 index 0000000000..94de5f618b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_ebony_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_ebony_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/stripped_ebony_noxcap_stem_top.png new file mode 100755 index 0000000000..454b500286 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_ebony_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_ivory_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/stripped_ivory_noxcap_stem.png new file mode 100755 index 0000000000..5addd4d9d1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_ivory_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_ivory_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/stripped_ivory_noxcap_stem_top.png new file mode 100755 index 0000000000..719926eebc Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_ivory_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_slate_noxcap_stem.png b/src/main/resources/assets/spectrum/textures/block/stripped_slate_noxcap_stem.png new file mode 100644 index 0000000000..64baa452ee Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_slate_noxcap_stem.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/stripped_slate_noxcap_stem_top.png b/src/main/resources/assets/spectrum/textures/block/stripped_slate_noxcap_stem_top.png new file mode 100644 index 0000000000..9b56f33b38 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/stripped_slate_noxcap_stem_top.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/weathered_polished_shale_clay.png b/src/main/resources/assets/spectrum/textures/block/weathered_polished_shale_clay.png new file mode 100644 index 0000000000..f073604ffc Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/weathered_polished_shale_clay.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/weathered_shale_clay_bricks.png b/src/main/resources/assets/spectrum/textures/block/weathered_shale_clay_bricks.png new file mode 100644 index 0000000000..3292cc63b3 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/weathered_shale_clay_bricks.png differ diff --git a/src/main/resources/assets/spectrum/textures/block/weathered_shale_clay_tiles.png b/src/main/resources/assets/spectrum/textures/block/weathered_shale_clay_tiles.png new file mode 100644 index 0000000000..da8a67f021 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/block/weathered_shale_clay_tiles.png differ diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/amethyst_cluster.png b/src/main/resources/assets/spectrum/textures/entity/banner/amethyst_cluster.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/amethyst_cluster.png rename to src/main/resources/assets/spectrum/textures/entity/banner/amethyst_cluster.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/amethyst_shard.png b/src/main/resources/assets/spectrum/textures/entity/banner/amethyst_shard.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/amethyst_shard.png rename to src/main/resources/assets/spectrum/textures/entity/banner/amethyst_shard.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/bedrock_dust.png b/src/main/resources/assets/spectrum/textures/entity/banner/bedrock_dust.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/bedrock_dust.png rename to src/main/resources/assets/spectrum/textures/entity/banner/bedrock_dust.png diff --git a/src/main/resources/assets/spectrum/textures/entity/banner/crafting_tablet.png b/src/main/resources/assets/spectrum/textures/entity/banner/crafting_tablet.png new file mode 100644 index 0000000000..85fcd58d86 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/banner/crafting_tablet.png differ diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/four_leaf_clover.png b/src/main/resources/assets/spectrum/textures/entity/banner/four_leaf_clover.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/four_leaf_clover.png rename to src/main/resources/assets/spectrum/textures/entity/banner/four_leaf_clover.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/manual.png b/src/main/resources/assets/spectrum/textures/entity/banner/guidebook.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/manual.png rename to src/main/resources/assets/spectrum/textures/entity/banner/guidebook.png diff --git a/src/main/resources/assets/spectrum/textures/entity/banner/ink_flask.png b/src/main/resources/assets/spectrum/textures/entity/banner/ink_flask.png new file mode 100644 index 0000000000..dc74b1bfc2 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/banner/ink_flask.png differ diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/jade_vine.png b/src/main/resources/assets/spectrum/textures/entity/banner/jade_vine.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/jade_vine.png rename to src/main/resources/assets/spectrum/textures/entity/banner/jade_vine.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/knowledge_gem.png b/src/main/resources/assets/spectrum/textures/entity/banner/knowledge_gem.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/knowledge_gem.png rename to src/main/resources/assets/spectrum/textures/entity/banner/knowledge_gem.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/logo.png b/src/main/resources/assets/spectrum/textures/entity/banner/logo.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/logo.png rename to src/main/resources/assets/spectrum/textures/entity/banner/logo.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/multitool.png b/src/main/resources/assets/spectrum/textures/entity/banner/multitool.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/multitool.png rename to src/main/resources/assets/spectrum/textures/entity/banner/multitool.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/neolith.png b/src/main/resources/assets/spectrum/textures/entity/banner/neolith.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/neolith.png rename to src/main/resources/assets/spectrum/textures/entity/banner/neolith.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/palette.png b/src/main/resources/assets/spectrum/textures/entity/banner/palette.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/palette.png rename to src/main/resources/assets/spectrum/textures/entity/banner/palette.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/pigment.png b/src/main/resources/assets/spectrum/textures/entity/banner/pigment.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/pigment.png rename to src/main/resources/assets/spectrum/textures/entity/banner/pigment.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/raw_azurite.png b/src/main/resources/assets/spectrum/textures/entity/banner/raw_azurite.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/raw_azurite.png rename to src/main/resources/assets/spectrum/textures/entity/banner/raw_azurite.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/shimmer.png b/src/main/resources/assets/spectrum/textures/entity/banner/shimmer.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/shimmer.png rename to src/main/resources/assets/spectrum/textures/entity/banner/shimmer.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/shimmerstone.png b/src/main/resources/assets/spectrum/textures/entity/banner/shimmerstone.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/shimmerstone.png rename to src/main/resources/assets/spectrum/textures/entity/banner/shimmerstone.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/banner/vegetal.png b/src/main/resources/assets/spectrum/textures/entity/banner/vegetal.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/banner/vegetal.png rename to src/main/resources/assets/spectrum/textures/entity/banner/vegetal.png diff --git a/src/main/resources/assets/spectrum/textures/entity/compacting_chest.png b/src/main/resources/assets/spectrum/textures/entity/compacting_chest.png index cc4ef4f468..a680715ff8 100644 Binary files a/src/main/resources/assets/spectrum/textures/entity/compacting_chest.png and b/src/main/resources/assets/spectrum/textures/entity/compacting_chest.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/allay.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/allay.png new file mode 100644 index 0000000000..d340c47119 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/mob_head/allay.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_cold.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_cold.png new file mode 100644 index 0000000000..39336f0b9e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_cold.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_temperate.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_temperate.png new file mode 100644 index 0000000000..2abea59c77 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_temperate.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_warm.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_warm.png new file mode 100644 index 0000000000..038cbc17b4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/mob_head/frog_warm.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker.png new file mode 100644 index 0000000000..0ce6b413e4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker_purple.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker_purple.png index 0ce6b413e4..3dd5b22479 100644 Binary files a/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker_purple.png and b/src/main/resources/assets/spectrum/textures/entity/mob_head/shulker_purple.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/mob_head/tadpole.png b/src/main/resources/assets/spectrum/textures/entity/mob_head/tadpole.png new file mode 100644 index 0000000000..fbb30d35a3 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/mob_head/tadpole.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/pastel_line.png b/src/main/resources/assets/spectrum/textures/entity/pastel_line.png new file mode 100644 index 0000000000..253c13848c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/pastel_line.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/pedestal_upgrade_speed.png b/src/main/resources/assets/spectrum/textures/entity/pedestal_upgrade_speed.png index 25be2a0e81..4bacf6803f 100644 Binary files a/src/main/resources/assets/spectrum/textures/entity/pedestal_upgrade_speed.png and b/src/main/resources/assets/spectrum/textures/entity/pedestal_upgrade_speed.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/private_chest.png b/src/main/resources/assets/spectrum/textures/entity/private_chest.png index 9d0b42ba11..a40d0ae5e7 100644 Binary files a/src/main/resources/assets/spectrum/textures/entity/private_chest.png and b/src/main/resources/assets/spectrum/textures/entity/private_chest.png differ diff --git a/src/main/resources/assets/spectrum/textures/entity/restocking_chest.png b/src/main/resources/assets/spectrum/textures/entity/restocking_chest.png index 393aed6fae..e1e8b1c1db 100644 Binary files a/src/main/resources/assets/spectrum/textures/entity/restocking_chest.png and b/src/main/resources/assets/spectrum/textures/entity/restocking_chest.png differ diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/amethyst_cluster.png b/src/main/resources/assets/spectrum/textures/entity/shield/amethyst_cluster.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/amethyst_cluster.png rename to src/main/resources/assets/spectrum/textures/entity/shield/amethyst_cluster.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/amethyst_shard.png b/src/main/resources/assets/spectrum/textures/entity/shield/amethyst_shard.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/amethyst_shard.png rename to src/main/resources/assets/spectrum/textures/entity/shield/amethyst_shard.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/bedrock_dust.png b/src/main/resources/assets/spectrum/textures/entity/shield/bedrock_dust.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/bedrock_dust.png rename to src/main/resources/assets/spectrum/textures/entity/shield/bedrock_dust.png diff --git a/src/main/resources/assets/spectrum/textures/entity/shield/crafting_tablet.png b/src/main/resources/assets/spectrum/textures/entity/shield/crafting_tablet.png new file mode 100644 index 0000000000..c4bab81c0d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/shield/crafting_tablet.png differ diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/four_leaf_clover.png b/src/main/resources/assets/spectrum/textures/entity/shield/four_leaf_clover.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/four_leaf_clover.png rename to src/main/resources/assets/spectrum/textures/entity/shield/four_leaf_clover.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/manual.png b/src/main/resources/assets/spectrum/textures/entity/shield/guidebook.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/manual.png rename to src/main/resources/assets/spectrum/textures/entity/shield/guidebook.png diff --git a/src/main/resources/assets/spectrum/textures/entity/shield/ink_flask.png b/src/main/resources/assets/spectrum/textures/entity/shield/ink_flask.png new file mode 100644 index 0000000000..1321af6645 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/entity/shield/ink_flask.png differ diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/jade_vine.png b/src/main/resources/assets/spectrum/textures/entity/shield/jade_vine.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/jade_vine.png rename to src/main/resources/assets/spectrum/textures/entity/shield/jade_vine.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/knowledge_gem.png b/src/main/resources/assets/spectrum/textures/entity/shield/knowledge_gem.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/knowledge_gem.png rename to src/main/resources/assets/spectrum/textures/entity/shield/knowledge_gem.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/logo.png b/src/main/resources/assets/spectrum/textures/entity/shield/logo.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/logo.png rename to src/main/resources/assets/spectrum/textures/entity/shield/logo.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/multitool.png b/src/main/resources/assets/spectrum/textures/entity/shield/multitool.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/multitool.png rename to src/main/resources/assets/spectrum/textures/entity/shield/multitool.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/neolith.png b/src/main/resources/assets/spectrum/textures/entity/shield/neolith.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/neolith.png rename to src/main/resources/assets/spectrum/textures/entity/shield/neolith.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/palette.png b/src/main/resources/assets/spectrum/textures/entity/shield/palette.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/palette.png rename to src/main/resources/assets/spectrum/textures/entity/shield/palette.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/pigment.png b/src/main/resources/assets/spectrum/textures/entity/shield/pigment.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/pigment.png rename to src/main/resources/assets/spectrum/textures/entity/shield/pigment.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/raw_azurite.png b/src/main/resources/assets/spectrum/textures/entity/shield/raw_azurite.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/raw_azurite.png rename to src/main/resources/assets/spectrum/textures/entity/shield/raw_azurite.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/shimmer.png b/src/main/resources/assets/spectrum/textures/entity/shield/shimmer.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/shimmer.png rename to src/main/resources/assets/spectrum/textures/entity/shield/shimmer.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/shimmerstone.png b/src/main/resources/assets/spectrum/textures/entity/shield/shimmerstone.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/shimmerstone.png rename to src/main/resources/assets/spectrum/textures/entity/shield/shimmerstone.png diff --git a/src/main/resources/assets/spectrum/textures/pattern/shield/vegetal.png b/src/main/resources/assets/spectrum/textures/entity/shield/vegetal.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/pattern/shield/vegetal.png rename to src/main/resources/assets/spectrum/textures/entity/shield/vegetal.png diff --git a/src/main/resources/assets/spectrum/textures/entity/treasure_chest.png b/src/main/resources/assets/spectrum/textures/entity/treasure_chest.png index 8ce4034b90..099ce69a35 100644 Binary files a/src/main/resources/assets/spectrum/textures/entity/treasure_chest.png and b/src/main/resources/assets/spectrum/textures/entity/treasure_chest.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/container/filter.png b/src/main/resources/assets/spectrum/textures/gui/container/filter.png new file mode 100644 index 0000000000..4b72bcf8b5 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/gui/container/filter.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/ancient_ruins.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/ancient_ruins.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/ancient_ruins.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/ancient_ruins.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/anvil_crushing.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/anvil_crushing.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/anvil_crushing.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/anvil_crushing.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/banners.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/banners.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/banners.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/banners.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/bottomless_bundle_automation.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/bottomless_bundle_automation.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/bottomless_bundle_automation.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/bottomless_bundle_automation.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/color_mixing.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/color_mixing.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/color_mixing.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/color_mixing.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/color_mixing_puzzle_structure.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/color_mixing_puzzle_structure.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/color_mixing_puzzle_structure.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/color_mixing_puzzle_structure.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/colored_trees.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/colored_trees.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/colored_trees.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/colored_trees.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/creating_enchanted_books.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/creating_enchanted_books.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/creating_enchanted_books.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/creating_enchanted_books.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/enchanting_items.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/enchanting_items.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/enchanting_items.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/enchanting_items.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/end_portal.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/end_portal.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/end_portal.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/end_portal.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/geode.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/geode.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/geode.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/geode.png diff --git a/src/main/resources/assets/spectrum/textures/gui/guidebook/ink_transfer.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/ink_transfer.png new file mode 100644 index 0000000000..209f1333df Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/gui/guidebook/ink_transfer.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/guidebook/moon_phases.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/moon_phases.png new file mode 100644 index 0000000000..0c97872945 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/gui/guidebook/moon_phases.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/guidebook/pastel_travel.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/pastel_travel.png new file mode 100644 index 0000000000..6ea9f52baa Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/gui/guidebook/pastel_travel.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/quitoxic_reed.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/quitoxic_reed.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/quitoxic_reed.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/quitoxic_reed.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/rock_candy_growing.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/rock_candy_growing.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/rock_candy_growing.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/rock_candy_growing.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/spectrum.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/spectrum.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/spectrum_complex_customisation.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum_complex_customisation.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/spectrum_complex_customisation.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum_complex_customisation.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/spectrum_focus_customisation.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum_focus_customisation.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/spectrum_focus_customisation.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum_focus_customisation.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/spectrum_hall_customisation.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum_hall_customisation.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/spectrum_hall_customisation.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/spectrum_hall_customisation.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/stargazing.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/stargazing.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/stargazing.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/stargazing.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/upgrading_enchanted_books.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/upgrading_enchanted_books.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/upgrading_enchanted_books.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/upgrading_enchanted_books.png diff --git a/src/main/resources/assets/spectrum/textures/gui/manual/wireless_redstone_puzzle_structure.png b/src/main/resources/assets/spectrum/textures/gui/guidebook/wireless_redstone_puzzle_structure.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/gui/manual/wireless_redstone_puzzle_structure.png rename to src/main/resources/assets/spectrum/textures/gui/guidebook/wireless_redstone_puzzle_structure.png diff --git a/src/main/resources/assets/spectrum/textures/gui/paintbrush.png b/src/main/resources/assets/spectrum/textures/gui/paintbrush.png index df9da42b1c..c11ac5c6d3 100644 Binary files a/src/main/resources/assets/spectrum/textures/gui/paintbrush.png and b/src/main/resources/assets/spectrum/textures/gui/paintbrush.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/patchouli/crystallarieum.png b/src/main/resources/assets/spectrum/textures/gui/patchouli/crystallarieum.png index 4a28398326..c6d776889a 100644 Binary files a/src/main/resources/assets/spectrum/textures/gui/patchouli/crystallarieum.png and b/src/main/resources/assets/spectrum/textures/gui/patchouli/crystallarieum.png differ diff --git a/src/main/resources/assets/spectrum/textures/gui/patchouli/dragonrot.png b/src/main/resources/assets/spectrum/textures/gui/patchouli/dragonrot.png new file mode 100644 index 0000000000..497afcf0cb Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/gui/patchouli/dragonrot.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/amethyst_glass_arrow.png b/src/main/resources/assets/spectrum/textures/item/amethyst_glass_arrow.png new file mode 100644 index 0000000000..b7f09ca5a8 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/amethyst_glass_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/ender_bag.png b/src/main/resources/assets/spectrum/textures/item/bag_of_holding.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/ender_bag.png rename to src/main/resources/assets/spectrum/textures/item/bag_of_holding.png diff --git a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_arrow.png b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_arrow.png index 3cf938e314..6142684410 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_arrow.png and b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_firework.png b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_firework.png index 65e5ae5fb4..e00cac9ecf 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_firework.png and b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_firework.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png index d86b3bf4bb..966de7ad18 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png and b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png index d2b17d797a..d5e2d0496d 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png and b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png index c6ab0ccda5..2fc991f7e0 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png and b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_standby.png b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_standby.png index f283f21432..b6ac26fbcd 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_standby.png and b/src/main/resources/assets/spectrum/textures/item/bedrock_crossbow_standby.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/bottle_of_terror.png b/src/main/resources/assets/spectrum/textures/item/bottle_of_forfeiture.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/bottle_of_terror.png rename to src/main/resources/assets/spectrum/textures/item/bottle_of_forfeiture.png diff --git a/src/main/resources/assets/spectrum/textures/item/void_bundle_empty.png b/src/main/resources/assets/spectrum/textures/item/bottomless_bundle_empty.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/void_bundle_empty.png rename to src/main/resources/assets/spectrum/textures/item/bottomless_bundle_empty.png diff --git a/src/main/resources/assets/spectrum/textures/item/void_bundle_empty_locked.png b/src/main/resources/assets/spectrum/textures/item/bottomless_bundle_empty_locked.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/void_bundle_empty_locked.png rename to src/main/resources/assets/spectrum/textures/item/bottomless_bundle_empty_locked.png diff --git a/src/main/resources/assets/spectrum/textures/item/void_bundle_filled.png b/src/main/resources/assets/spectrum/textures/item/bottomless_bundle_filled.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/void_bundle_filled.png rename to src/main/resources/assets/spectrum/textures/item/bottomless_bundle_filled.png diff --git a/src/main/resources/assets/spectrum/textures/item/void_bundle_filled_locked.png b/src/main/resources/assets/spectrum/textures/item/bottomless_bundle_filled_locked.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/void_bundle_filled_locked.png rename to src/main/resources/assets/spectrum/textures/item/bottomless_bundle_filled_locked.png diff --git a/src/main/resources/assets/spectrum/textures/item/chestnut_noxwood_door.png b/src/main/resources/assets/spectrum/textures/item/chestnut_noxwood_door.png new file mode 100755 index 0000000000..dcb1208c69 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/chestnut_noxwood_door.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/chestnut_noxwood_lamp_item.png b/src/main/resources/assets/spectrum/textures/item/chestnut_noxwood_lamp_item.png new file mode 100755 index 0000000000..de772b8b79 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/chestnut_noxwood_lamp_item.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/citrine_glass_arrow.png b/src/main/resources/assets/spectrum/textures/item/citrine_glass_arrow.png new file mode 100644 index 0000000000..6c432c09ab Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/citrine_glass_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/placement_staff.png b/src/main/resources/assets/spectrum/textures/item/constructors_staff.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/placement_staff.png rename to src/main/resources/assets/spectrum/textures/item/constructors_staff.png diff --git a/src/main/resources/assets/spectrum/textures/item/dragonbone_needle.png b/src/main/resources/assets/spectrum/textures/item/dragonbone_needle.png new file mode 100755 index 0000000000..afc4cb3daf Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/dragonbone_needle.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/dragonbone_shard.png b/src/main/resources/assets/spectrum/textures/item/dragonbone_shard.png new file mode 100755 index 0000000000..c51d51d6e0 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/dragonbone_shard.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/dreamflayer.png b/src/main/resources/assets/spectrum/textures/item/dreamflayer.png index e38ce4fe39..1254faf043 100755 Binary files a/src/main/resources/assets/spectrum/textures/item/dreamflayer.png and b/src/main/resources/assets/spectrum/textures/item/dreamflayer.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated.png b/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated.png old mode 100644 new mode 100755 index bfc8732869..8b4bfd644b Binary files a/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated.png and b/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated_held.png b/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated_held.png deleted file mode 100644 index 3e82ba39fc..0000000000 Binary files a/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated_held.png and /dev/null differ diff --git a/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated_oversized.png b/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated_oversized.png new file mode 100644 index 0000000000..2a93b7d8cb Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/dreamflayer_activated_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/dreamflayer_held.png b/src/main/resources/assets/spectrum/textures/item/dreamflayer_held.png deleted file mode 100755 index ef82926880..0000000000 Binary files a/src/main/resources/assets/spectrum/textures/item/dreamflayer_held.png and /dev/null differ diff --git a/src/main/resources/assets/spectrum/textures/item/dreamflayer_oversized.png b/src/main/resources/assets/spectrum/textures/item/dreamflayer_oversized.png new file mode 100644 index 0000000000..7911c91e99 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/dreamflayer_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/ebony_noxwood_door.png b/src/main/resources/assets/spectrum/textures/item/ebony_noxwood_door.png new file mode 100755 index 0000000000..48baf75bab Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/ebony_noxwood_door.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/ebony_noxwood_lamp_item.png b/src/main/resources/assets/spectrum/textures/item/ebony_noxwood_lamp_item.png new file mode 100755 index 0000000000..da8e5b375d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/ebony_noxwood_lamp_item.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/exchange_staff.png b/src/main/resources/assets/spectrum/textures/item/exchanging_staff.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/exchange_staff.png rename to src/main/resources/assets/spectrum/textures/item/exchanging_staff.png diff --git a/src/main/resources/assets/spectrum/textures/item/emergency_chestplate.png b/src/main/resources/assets/spectrum/textures/item/ferocious_chestplate.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/emergency_chestplate.png rename to src/main/resources/assets/spectrum/textures/item/ferocious_chestplate.png diff --git a/src/main/resources/assets/spectrum/textures/item/ferocious_glass_crest_bident.png b/src/main/resources/assets/spectrum/textures/item/ferocious_glass_crest_bident.png new file mode 100644 index 0000000000..03689c4b92 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/ferocious_glass_crest_bident.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/ferocious_glass_crest_bident_oversized.png b/src/main/resources/assets/spectrum/textures/item/ferocious_glass_crest_bident_oversized.png new file mode 100644 index 0000000000..d4c6d38921 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/ferocious_glass_crest_bident_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/emergency_helmet.png b/src/main/resources/assets/spectrum/textures/item/fetchling_helmet.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/emergency_helmet.png rename to src/main/resources/assets/spectrum/textures/item/fetchling_helmet.png diff --git a/src/main/resources/assets/spectrum/textures/item/fractal_glass_crest_bident.png b/src/main/resources/assets/spectrum/textures/item/fractal_glass_crest_bident.png new file mode 100644 index 0000000000..fd4380124e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/fractal_glass_crest_bident.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/fractal_glass_crest_bident_oversized.png b/src/main/resources/assets/spectrum/textures/item/fractal_glass_crest_bident_oversized.png new file mode 100644 index 0000000000..274b4dfc5a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/fractal_glass_crest_bident_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/frigid_stardust.png b/src/main/resources/assets/spectrum/textures/item/frigid_stardust.png new file mode 100755 index 0000000000..8fce162d05 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/frigid_stardust.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/lightning_stone.png.mcmeta b/src/main/resources/assets/spectrum/textures/item/frigid_stardust.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/lightning_stone.png.mcmeta rename to src/main/resources/assets/spectrum/textures/item/frigid_stardust.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_amethyst.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_amethyst.png new file mode 100644 index 0000000000..fb49f337e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_amethyst.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_amethyst_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_amethyst_oversized.png new file mode 100644 index 0000000000..88f967b127 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_amethyst_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_arrow.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_arrow.png new file mode 100644 index 0000000000..d32d3abc52 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_arrow_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_arrow_oversized.png new file mode 100644 index 0000000000..759984f94f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_arrow_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_citrine.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_citrine.png new file mode 100644 index 0000000000..fce15c0851 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_citrine.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_citrine_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_citrine_oversized.png new file mode 100644 index 0000000000..83f6b57003 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_citrine_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_firework.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_firework.png new file mode 100644 index 0000000000..c8d88206b3 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_firework.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_firework_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_firework_oversized.png new file mode 100644 index 0000000000..512367c4b3 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_firework_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_glass.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_glass.png new file mode 100644 index 0000000000..45686ab6ba Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_glass.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_glass_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_glass_oversized.png new file mode 100644 index 0000000000..44af75df9c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_glass_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_moonstone.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_moonstone.png new file mode 100644 index 0000000000..013e0e91c3 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_moonstone.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_moonstone_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_moonstone_oversized.png new file mode 100644 index 0000000000..1ca3d6cee7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_moonstone_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_onyx.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_onyx.png new file mode 100644 index 0000000000..b433c6e210 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_onyx.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_onyx_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_onyx_oversized.png new file mode 100644 index 0000000000..caa36d6dac Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_onyx_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_0_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_0_oversized.png new file mode 100644 index 0000000000..119544689e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_0_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_1_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_1_oversized.png new file mode 100644 index 0000000000..f7b8b4ec1b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_1_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_2.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_2.png new file mode 100644 index 0000000000..588f78338b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_2.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_2_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_2_oversized.png new file mode 100644 index 0000000000..22a307ec5c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_pulling_2_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_standby.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_standby.png new file mode 100644 index 0000000000..28f7631dd4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_standby.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_standby_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_standby_oversized.png new file mode 100644 index 0000000000..24ed6e0fe1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_standby_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_topaz.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_topaz.png new file mode 100644 index 0000000000..83283426b8 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_topaz.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_topaz_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_topaz_oversized.png new file mode 100644 index 0000000000..ff2ae9dc03 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_crossbow_topaz_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_ultra_greatsword.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_ultra_greatsword.png new file mode 100644 index 0000000000..f58f8cf36f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_ultra_greatsword.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_ultra_greatsword_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_ultra_greatsword_oversized.png new file mode 100644 index 0000000000..54614cd736 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_ultra_greatsword_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_workstaff.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_workstaff.png new file mode 100644 index 0000000000..f5a98b13cd Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_workstaff.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/glass_crest_workstaff_oversized.png b/src/main/resources/assets/spectrum/textures/item/glass_crest_workstaff_oversized.png new file mode 100644 index 0000000000..a82d0c93db Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/glass_crest_workstaff_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/invisible_glow_item_frame.png b/src/main/resources/assets/spectrum/textures/item/glow_phantom_frame.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/invisible_glow_item_frame.png rename to src/main/resources/assets/spectrum/textures/item/glow_phantom_frame.png diff --git a/src/main/resources/assets/spectrum/textures/item/glow_vision_helmet.png b/src/main/resources/assets/spectrum/textures/item/glow_vision_goggles.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/glow_vision_helmet.png rename to src/main/resources/assets/spectrum/textures/item/glow_vision_goggles.png diff --git a/src/main/resources/assets/spectrum/textures/item/manual.png b/src/main/resources/assets/spectrum/textures/item/guidebook.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/manual.png rename to src/main/resources/assets/spectrum/textures/item/guidebook.png diff --git a/src/main/resources/assets/spectrum/textures/item/ivory_noxwood_door.png b/src/main/resources/assets/spectrum/textures/item/ivory_noxwood_door.png new file mode 100755 index 0000000000..a088e2e622 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/ivory_noxwood_door.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/ivory_noxwood_lamp_item.png b/src/main/resources/assets/spectrum/textures/item/ivory_noxwood_lamp_item.png new file mode 100755 index 0000000000..71c1240142 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/ivory_noxwood_lamp_item.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/fortune_pickaxe.png b/src/main/resources/assets/spectrum/textures/item/lucky_pickaxe.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/fortune_pickaxe.png rename to src/main/resources/assets/spectrum/textures/item/lucky_pickaxe.png diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_bident.png b/src/main/resources/assets/spectrum/textures/item/malachite_bident.png new file mode 100644 index 0000000000..628c85a918 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_bident.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_bident_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_bident_oversized.png new file mode 100644 index 0000000000..0da859fe1f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_bident_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_bident_projectile_main.png b/src/main/resources/assets/spectrum/textures/item/malachite_bident_projectile_main.png new file mode 100644 index 0000000000..49f7a66a6f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_bident_projectile_main.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_bident_projectile_split.png b/src/main/resources/assets/spectrum/textures/item/malachite_bident_projectile_split.png new file mode 100644 index 0000000000..99e410ee7a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_bident_projectile_split.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_amethyst.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_amethyst.png new file mode 100644 index 0000000000..d7219b5aaf Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_amethyst.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_amethyst_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_amethyst_oversized.png new file mode 100644 index 0000000000..596b0c1801 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_amethyst_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_arrow.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_arrow.png new file mode 100644 index 0000000000..1f6db6455d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_arrow_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_arrow_oversized.png new file mode 100644 index 0000000000..842ec4fdd5 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_arrow_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_citrine.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_citrine.png new file mode 100644 index 0000000000..996387ce52 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_citrine.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_citrine_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_citrine_oversized.png new file mode 100644 index 0000000000..20b77ab50c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_citrine_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_firework.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_firework.png new file mode 100644 index 0000000000..1ec3586a5d Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_firework.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_firework_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_firework_oversized.png new file mode 100644 index 0000000000..bfe1e75b0e Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_firework_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_glass.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_glass.png new file mode 100644 index 0000000000..938178ef85 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_glass.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_glass_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_glass_oversized.png new file mode 100644 index 0000000000..7999918e0a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_glass_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_moonstone.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_moonstone.png new file mode 100644 index 0000000000..65c7af2ceb Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_moonstone.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_moonstone_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_moonstone_oversized.png new file mode 100644 index 0000000000..a0a82d1341 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_moonstone_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_onyx.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_onyx.png new file mode 100644 index 0000000000..17f252ac1c Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_onyx.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_onyx_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_onyx_oversized.png new file mode 100644 index 0000000000..080b640adb Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_onyx_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_0_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_0_oversized.png new file mode 100644 index 0000000000..dfacbccc32 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_0_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_1_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_1_oversized.png new file mode 100644 index 0000000000..9ebd084d2f Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_1_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_2.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_2.png new file mode 100644 index 0000000000..e1119389c6 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_2.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_2_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_2_oversized.png new file mode 100644 index 0000000000..505bb9f0e4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_pulling_2_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_standby.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_standby.png new file mode 100644 index 0000000000..28f7631dd4 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_standby.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_standby_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_standby_oversized.png new file mode 100644 index 0000000000..c82c78e6d7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_standby_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_topaz.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_topaz.png new file mode 100644 index 0000000000..7d3f03deb1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_topaz.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_topaz_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_topaz_oversized.png new file mode 100644 index 0000000000..841afc74aa Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_crossbow_topaz_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_glass_arrow.png b/src/main/resources/assets/spectrum/textures/item/malachite_glass_arrow.png new file mode 100644 index 0000000000..d7a8c8e1ae Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_glass_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_ultra_greatsword.png b/src/main/resources/assets/spectrum/textures/item/malachite_ultra_greatsword.png new file mode 100644 index 0000000000..2c65c344d8 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_ultra_greatsword.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_ultra_greatsword_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_ultra_greatsword_oversized.png new file mode 100644 index 0000000000..8d1e831911 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_ultra_greatsword_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_workstaff.png b/src/main/resources/assets/spectrum/textures/item/malachite_workstaff.png new file mode 100644 index 0000000000..6153bb8ad1 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_workstaff.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/malachite_workstaff_oversized.png b/src/main/resources/assets/spectrum/textures/item/malachite_workstaff_oversized.png new file mode 100644 index 0000000000..9cc5622cc7 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/malachite_workstaff_oversized.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/midnight_solution_bucket.png b/src/main/resources/assets/spectrum/textures/item/midnight_solution_bucket.png index 864c747280..3c98dea96b 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/midnight_solution_bucket.png and b/src/main/resources/assets/spectrum/textures/item/midnight_solution_bucket.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/moonstone_glass_arrow.png b/src/main/resources/assets/spectrum/textures/item/moonstone_glass_arrow.png new file mode 100644 index 0000000000..f41f49a6dc Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/moonstone_glass_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/mysterious_locket.png b/src/main/resources/assets/spectrum/textures/item/mysterious_locket.png new file mode 100755 index 0000000000..69c8b77bce Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/mysterious_locket.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/voiding_pickaxe.png b/src/main/resources/assets/spectrum/textures/item/oblivion_pickaxe.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/voiding_pickaxe.png rename to src/main/resources/assets/spectrum/textures/item/oblivion_pickaxe.png diff --git a/src/main/resources/assets/spectrum/textures/item/onyx_glass_arrow.png b/src/main/resources/assets/spectrum/textures/item/onyx_glass_arrow.png new file mode 100644 index 0000000000..45db02d409 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/onyx_glass_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/emergency_boots.png b/src/main/resources/assets/spectrum/textures/item/oread_boots.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/emergency_boots.png rename to src/main/resources/assets/spectrum/textures/item/oread_boots.png diff --git a/src/main/resources/assets/spectrum/textures/item/paletur_fragments.png b/src/main/resources/assets/spectrum/textures/item/paltaeria_fragments.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/paletur_fragments.png rename to src/main/resources/assets/spectrum/textures/item/paltaeria_fragments.png diff --git a/src/main/resources/assets/spectrum/textures/item/paletur_gem.png b/src/main/resources/assets/spectrum/textures/item/paltaeria_gem.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/paletur_gem.png rename to src/main/resources/assets/spectrum/textures/item/paltaeria_gem.png diff --git a/src/main/resources/assets/spectrum/textures/item/end_portal_cracker.png b/src/main/resources/assets/spectrum/textures/item/perturbed_eye.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/end_portal_cracker.png rename to src/main/resources/assets/spectrum/textures/item/perturbed_eye.png diff --git a/src/main/resources/assets/spectrum/textures/item/end_portal_cracker.png.mcmeta b/src/main/resources/assets/spectrum/textures/item/perturbed_eye.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/end_portal_cracker.png.mcmeta rename to src/main/resources/assets/spectrum/textures/item/perturbed_eye.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/item/invisible_item_frame.png b/src/main/resources/assets/spectrum/textures/item/phantom_frame.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/invisible_item_frame.png rename to src/main/resources/assets/spectrum/textures/item/phantom_frame.png diff --git a/src/main/resources/assets/spectrum/textures/item/pure_coal.png b/src/main/resources/assets/spectrum/textures/item/pure_coal.png index 807e4b45d0..e15686d500 100644 Binary files a/src/main/resources/assets/spectrum/textures/item/pure_coal.png and b/src/main/resources/assets/spectrum/textures/item/pure_coal.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/pure_netherite.png b/src/main/resources/assets/spectrum/textures/item/pure_netherite.png new file mode 100644 index 0000000000..807e4b45d0 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/pure_netherite.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/light_staff.png b/src/main/resources/assets/spectrum/textures/item/radiance_staff.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/light_staff.png rename to src/main/resources/assets/spectrum/textures/item/radiance_staff.png diff --git a/src/main/resources/assets/spectrum/textures/item/light_staff_use.png b/src/main/resources/assets/spectrum/textures/item/radiance_staff_use.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/light_staff_use.png rename to src/main/resources/assets/spectrum/textures/item/radiance_staff_use.png diff --git a/src/main/resources/assets/spectrum/textures/item/light_staff_use.png.mcmeta b/src/main/resources/assets/spectrum/textures/item/radiance_staff_use.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/light_staff_use.png.mcmeta rename to src/main/resources/assets/spectrum/textures/item/radiance_staff_use.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/item/looting_falchion.png b/src/main/resources/assets/spectrum/textures/item/razor_falchion.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/looting_falchion.png rename to src/main/resources/assets/spectrum/textures/item/razor_falchion.png diff --git a/src/main/resources/assets/spectrum/textures/item/sparklestone_gem.png b/src/main/resources/assets/spectrum/textures/item/shimmerstone_gem.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/sparklestone_gem.png rename to src/main/resources/assets/spectrum/textures/item/shimmerstone_gem.png diff --git a/src/main/resources/assets/spectrum/textures/item/sparklestone_gem.png.mcmeta b/src/main/resources/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/sparklestone_gem.png.mcmeta rename to src/main/resources/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/item/slate_noxwood_door.png b/src/main/resources/assets/spectrum/textures/item/slate_noxwood_door.png new file mode 100755 index 0000000000..ce72591cfe Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/slate_noxwood_door.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/slate_noxwood_lamp_item.png b/src/main/resources/assets/spectrum/textures/item/slate_noxwood_lamp_item.png new file mode 100755 index 0000000000..de8c1bc668 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/slate_noxwood_lamp_item.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/shooting_star.png b/src/main/resources/assets/spectrum/textures/item/star_fragment.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/shooting_star.png rename to src/main/resources/assets/spectrum/textures/item/star_fragment.png diff --git a/src/main/resources/assets/spectrum/textures/item/lightning_stone.png b/src/main/resources/assets/spectrum/textures/item/storm_stone.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/lightning_stone.png rename to src/main/resources/assets/spectrum/textures/item/storm_stone.png diff --git a/src/main/resources/assets/spectrum/textures/item/storm_stone.png.mcmeta b/src/main/resources/assets/spectrum/textures/item/storm_stone.png.mcmeta new file mode 100644 index 0000000000..3d932eea72 --- /dev/null +++ b/src/main/resources/assets/spectrum/textures/item/storm_stone.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 2 + } +} diff --git a/src/main/resources/assets/spectrum/textures/item/scarlet_fragments.png b/src/main/resources/assets/spectrum/textures/item/stratine_fragments.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/scarlet_fragments.png rename to src/main/resources/assets/spectrum/textures/item/stratine_fragments.png diff --git a/src/main/resources/assets/spectrum/textures/item/scarlet_gem.png b/src/main/resources/assets/spectrum/textures/item/stratine_gem.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/scarlet_gem.png rename to src/main/resources/assets/spectrum/textures/item/stratine_gem.png diff --git a/src/main/resources/assets/spectrum/textures/item/emergency_leggings.png b/src/main/resources/assets/spectrum/textures/item/sylph_leggings.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/emergency_leggings.png rename to src/main/resources/assets/spectrum/textures/item/sylph_leggings.png diff --git a/src/main/resources/assets/spectrum/textures/item/silker_pickaxe.png b/src/main/resources/assets/spectrum/textures/item/tender_pickaxe.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/silker_pickaxe.png rename to src/main/resources/assets/spectrum/textures/item/tender_pickaxe.png diff --git a/src/main/resources/assets/spectrum/textures/item/topaz_glass_arrow.png b/src/main/resources/assets/spectrum/textures/item/topaz_glass_arrow.png new file mode 100644 index 0000000000..49ab861b1b Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/item/topaz_glass_arrow.png differ diff --git a/src/main/resources/assets/spectrum/textures/item/tidal_circlet.png b/src/main/resources/assets/spectrum/textures/item/weeping_circlet.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/tidal_circlet.png rename to src/main/resources/assets/spectrum/textures/item/weeping_circlet.png diff --git a/src/main/resources/assets/spectrum/textures/misc/midnight_solution_overlay.png b/src/main/resources/assets/spectrum/textures/misc/midnight_solution_overlay.png index 722a6011a6..d5e1ee4bf8 100644 Binary files a/src/main/resources/assets/spectrum/textures/misc/midnight_solution_overlay.png and b/src/main/resources/assets/spectrum/textures/misc/midnight_solution_overlay.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/ascension.png b/src/main/resources/assets/spectrum/textures/mob_effect/ascension.png new file mode 100644 index 0000000000..e90351580a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/ascension.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/density.png b/src/main/resources/assets/spectrum/textures/mob_effect/density.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/density.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/divinity.png b/src/main/resources/assets/spectrum/textures/mob_effect/divinity.png new file mode 100644 index 0000000000..e90351580a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/divinity.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/frenzy.png b/src/main/resources/assets/spectrum/textures/mob_effect/frenzy.png new file mode 100755 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/frenzy.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/lightweight.png b/src/main/resources/assets/spectrum/textures/mob_effect/lightweight.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/lightweight.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/magic_annulation.png b/src/main/resources/assets/spectrum/textures/mob_effect/magic_annulation.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/magic_annulation.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/millenia_disease.png b/src/main/resources/assets/spectrum/textures/mob_effect/millenia_disease.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/millenia_disease.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/projectile_rebound.png b/src/main/resources/assets/spectrum/textures/mob_effect/projectile_rebound.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/projectile_rebound.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/scarred.png b/src/main/resources/assets/spectrum/textures/mob_effect/scarred.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/scarred.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/stiffness.png b/src/main/resources/assets/spectrum/textures/mob_effect/stiffness.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/stiffness.png differ diff --git a/src/main/resources/assets/spectrum/textures/mob_effect/vulnerability.png b/src/main/resources/assets/spectrum/textures/mob_effect/vulnerability.png new file mode 100644 index 0000000000..db0ab7d2e9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/mob_effect/vulnerability.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/dragonrot.png b/src/main/resources/assets/spectrum/textures/particle/dragonrot.png new file mode 100644 index 0000000000..4f6a4146f9 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/particle/dragonrot.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_0.png b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_0.png new file mode 100644 index 0000000000..8a28a57750 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_0.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_1.png b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_1.png new file mode 100644 index 0000000000..7af0a0857a Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_1.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_2.png b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_2.png new file mode 100644 index 0000000000..875b2fb9c6 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_2.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_3.png b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_3.png new file mode 100644 index 0000000000..601aab2731 Binary files /dev/null and b/src/main/resources/assets/spectrum/textures/particle/dragonrot_splash_3.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_0.png b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_0.png index b4427cc5b2..8a9605f5fc 100644 Binary files a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_0.png and b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_0.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_1.png b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_1.png index 199a8bc18e..443ce9845c 100644 Binary files a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_1.png and b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_1.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_2.png b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_2.png index 04d566024b..ec5f3c8ca4 100644 Binary files a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_2.png and b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_2.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_3.png b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_3.png index 0cfa033232..9d3b53e912 100644 Binary files a/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_3.png and b/src/main/resources/assets/spectrum/textures/particle/midnight_solution_splash_3.png differ diff --git a/src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle.png b/src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle.png rename to src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle.png diff --git a/src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle.png.mcmeta b/src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle.png.mcmeta rename to src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_small.png b/src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_small.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_small.png rename to src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_small.png diff --git a/src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_small.png.mcmeta b/src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_small.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_small.png.mcmeta rename to src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_small.png.mcmeta diff --git a/src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_tiny.png b/src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_tiny.png similarity index 100% rename from src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_tiny.png rename to src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_tiny.png diff --git a/src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_tiny.png.mcmeta b/src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_tiny.png.mcmeta similarity index 100% rename from src/main/resources/assets/spectrum/textures/particle/sparklestone_sparkle_tiny.png.mcmeta rename to src/main/resources/assets/spectrum/textures/particle/shimmerstone_sparkle_tiny.png.mcmeta diff --git a/src/main/resources/config/shimmer.json b/src/main/resources/config/shimmer.json deleted file mode 100644 index 1cd6fb32de..0000000000 --- a/src/main/resources/config/shimmer.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "BloomBlock": [ - { - "fluid": "minecraft:lava" - }, - { - "block": "minecraft:glowstone" - }, - { - "block": "minecraft:redstone_wire" - }, - { - "block": "minecraft:redstone_lamp", - "state": { - "lit": true - } - }, - { - "block": "spectrum:orange_lamp", - "state": { - "lit": true - } - }, - { - "block": "spectrum:orange_glowblock" - }, - { - "block": "spectrum:andesite_sparklestone_light" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/blocks/chests.json b/src/main/resources/data/c/tags/blocks/chests.json index 73d96c1d83..0408824acd 100644 --- a/src/main/resources/data/c/tags/blocks/chests.json +++ b/src/main/resources/data/c/tags/blocks/chests.json @@ -4,6 +4,6 @@ "spectrum:private_chest", "spectrum:compacting_chest", "spectrum:restocking_chest", - "spectrum:sucking_chest" + "spectrum:black_hole_chest" ] } \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/axes.json b/src/main/resources/data/c/tags/items/axes.json index d503dd7908..ba7ff751cd 100644 --- a/src/main/resources/data/c/tags/items/axes.json +++ b/src/main/resources/data/c/tags/items/axes.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "#spectrum:workstaffs", "spectrum:bedrock_axe", "spectrum:multitool" ] diff --git a/src/main/resources/data/c/tags/items/hoes.json b/src/main/resources/data/c/tags/items/hoes.json index e23f7a4c62..9879ceb9b7 100644 --- a/src/main/resources/data/c/tags/items/hoes.json +++ b/src/main/resources/data/c/tags/items/hoes.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "#spectrum:workstaffs", "spectrum:bedrock_hoe", "spectrum:multitool" ] diff --git a/src/main/resources/data/c/tags/items/milk.json b/src/main/resources/data/c/tags/items/milk.json index a4e9d6f8fd..07cdf6cf66 100644 --- a/src/main/resources/data/c/tags/items/milk.json +++ b/src/main/resources/data/c/tags/items/milk.json @@ -3,6 +3,5 @@ "values": [ "#c:milks", "minecraft:milk_bucket" - ] } \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/pickaxes.json b/src/main/resources/data/c/tags/items/pickaxes.json index 3636d7d9c8..d1c6a23f38 100644 --- a/src/main/resources/data/c/tags/items/pickaxes.json +++ b/src/main/resources/data/c/tags/items/pickaxes.json @@ -1,10 +1,11 @@ { "replace": false, "values": [ + "#spectrum:workstaffs", "spectrum:bedrock_pickaxe", - "spectrum:silker_pickaxe", - "spectrum:fortune_pickaxe", - "spectrum:voiding_pickaxe", + "spectrum:tender_pickaxe", + "spectrum:lucky_pickaxe", + "spectrum:oblivion_pickaxe", "spectrum:resonant_pickaxe", "spectrum:multitool" ] diff --git a/src/main/resources/data/c/tags/items/shovels.json b/src/main/resources/data/c/tags/items/shovels.json index 8aaa9cec3d..b2e693d07e 100644 --- a/src/main/resources/data/c/tags/items/shovels.json +++ b/src/main/resources/data/c/tags/items/shovels.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "#spectrum:workstaffs", "spectrum:bedrock_shovel", "spectrum:multitool" ] diff --git a/src/main/resources/data/c/tags/items/skulls.json b/src/main/resources/data/c/tags/items/skulls.json new file mode 100644 index 0000000000..a401033b39 --- /dev/null +++ b/src/main/resources/data/c/tags/items/skulls.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#spectrum:mob_heads" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/c/tags/items/swords.json b/src/main/resources/data/c/tags/items/swords.json index 947b0c1b62..590ca998b6 100644 --- a/src/main/resources/data/c/tags/items/swords.json +++ b/src/main/resources/data/c/tags/items/swords.json @@ -1,7 +1,8 @@ { "replace": false, "values": [ + "#spectrum:greatswords", "spectrum:bedrock_sword", - "spectrum:looting_falchion" + "spectrum:razor_falchion" ] } \ No newline at end of file diff --git a/src/main/resources/data/enchantment/blacklisted_crystalline_flower_enchantments.json b/src/main/resources/data/enchantment/blacklisted_crystalline_flower_enchantments.json deleted file mode 100644 index 7402736135..0000000000 --- a/src/main/resources/data/enchantment/blacklisted_crystalline_flower_enchantments.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "replace": false, - "values": [ - "#spectrum:enchantments" - ] -} diff --git a/src/main/resources/data/minecraft/tags/blocks/deepslate_ore_replaceables.json b/src/main/resources/data/minecraft/tags/blocks/base_stone_overworld.json similarity index 100% rename from src/main/resources/data/minecraft/tags/blocks/deepslate_ore_replaceables.json rename to src/main/resources/data/minecraft/tags/blocks/base_stone_overworld.json diff --git a/src/main/resources/data/minecraft/tags/blocks/beacon_base_blocks.json b/src/main/resources/data/minecraft/tags/blocks/beacon_base_blocks.json index 8fc7538683..e483921077 100644 --- a/src/main/resources/data/minecraft/tags/blocks/beacon_base_blocks.json +++ b/src/main/resources/data/minecraft/tags/blocks/beacon_base_blocks.json @@ -1,7 +1,9 @@ { "replace": false, "values": [ - "spectrum:sparklestone_block", + "#spectrum:pure_resource_blocks", + + "spectrum:shimmerstone_block", "spectrum:bismuth_block", "spectrum:malachite_block", "spectrum:azurite_block" diff --git a/src/main/resources/data/minecraft/tags/blocks/copper_ores.json b/src/main/resources/data/minecraft/tags/blocks/copper_ores.json new file mode 100644 index 0000000000..3b0e5bba5d --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/copper_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_copper_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/crops.json b/src/main/resources/data/minecraft/tags/blocks/crops.json new file mode 100644 index 0000000000..0560a0a3ff --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/crops.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:amaranth" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json b/src/main/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json index a47bbe5dae..d0e256c3bf 100644 --- a/src/main/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json +++ b/src/main/resources/data/minecraft/tags/blocks/crystal_sound_blocks.json @@ -1,14 +1,9 @@ { "replace": false, "values": [ - "spectrum:citrine_block", - "spectrum:budding_citrine", - "spectrum:topaz_block", - "spectrum:budding_topaz", - "spectrum:onyx_block", - "spectrum:budding_onyx", - "spectrum:moonstone_block", - "spectrum:budding_moonstone", + "#spectrum:gemstone_blocks", + "#spectrum:budding_blocks", + "spectrum:ethereal_platform" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/dirt.json b/src/main/resources/data/minecraft/tags/blocks/dirt.json new file mode 100644 index 0000000000..84abf6034f --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/dirt.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "spectrum:overgrown_blackslag", + "spectrum:sawblade_grass", + "spectrum:rotten_ground" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/enderman_holdable.json b/src/main/resources/data/minecraft/tags/blocks/enderman_holdable.json index ade5725862..11f6e14bb5 100644 --- a/src/main/resources/data/minecraft/tags/blocks/enderman_holdable.json +++ b/src/main/resources/data/minecraft/tags/blocks/enderman_holdable.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "spectrum:ender_treasure" + "spectrum:radiating_ender" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/fall_damage_resetting.json b/src/main/resources/data/minecraft/tags/blocks/fall_damage_resetting.json new file mode 100644 index 0000000000..f26c91d336 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/fall_damage_resetting.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:cat_mob_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/fence_gates.json b/src/main/resources/data/minecraft/tags/blocks/fence_gates.json index 0b03fe58aa..c2263866df 100644 --- a/src/main/resources/data/minecraft/tags/blocks/fence_gates.json +++ b/src/main/resources/data/minecraft/tags/blocks/fence_gates.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_fence_gates" + "#spectrum:colored_fence_gates", + "#spectrum:noxwood_fence_gates" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/fire.json b/src/main/resources/data/minecraft/tags/blocks/fire.json new file mode 100644 index 0000000000..7f13181242 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/fire.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:primordial_fire" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/flower_pots.json b/src/main/resources/data/minecraft/tags/blocks/flower_pots.json index 6657b6e6c0..aa89f69a90 100644 --- a/src/main/resources/data/minecraft/tags/blocks/flower_pots.json +++ b/src/main/resources/data/minecraft/tags/blocks/flower_pots.json @@ -1,6 +1,23 @@ { "replace": false, "values": [ - "spectrum:potted_amaranth_bushel" + "spectrum:potted_amaranth_bushel", + "spectrum:potted_blood_orchid", + "spectrum:potted_white_sapling", + "spectrum:potted_orange_sapling", + "spectrum:potted_magenta_sapling", + "spectrum:potted_light_blue_sapling", + "spectrum:potted_yellow_sapling", + "spectrum:potted_lime_sapling", + "spectrum:potted_pink_sapling", + "spectrum:potted_gray_sapling", + "spectrum:potted_light_gray_sapling", + "spectrum:potted_cyan_sapling", + "spectrum:potted_purple_sapling", + "spectrum:potted_blue_sapling", + "spectrum:potted_brown_sapling", + "spectrum:potted_green_sapling", + "spectrum:potted_red_sapling", + "spectrum:potted_black_sapling" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/impermeable.json b/src/main/resources/data/minecraft/tags/blocks/impermeable.json index b4ea40115f..b14d8a5667 100644 --- a/src/main/resources/data/minecraft/tags/blocks/impermeable.json +++ b/src/main/resources/data/minecraft/tags/blocks/impermeable.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "#spectrum:hummingstones", "spectrum:ender_glass", "spectrum:topaz_glass", "spectrum:amethyst_glass", @@ -8,13 +9,17 @@ "spectrum:onyx_glass", "spectrum:moonstone_glass", "spectrum:glowing_glass", - "spectrum:vanilla_player_only_glass", - "spectrum:tinted_player_only_glass", - "spectrum:glowing_player_only_glass", - "spectrum:topaz_player_only_glass", - "spectrum:amethyst_player_only_glass", - "spectrum:citrine_player_only_glass", - "spectrum:onyx_player_only_glass", - "spectrum:moonstone_player_only_glass" + "spectrum:vanilla_semi_permeable_glass", + "spectrum:tinted_semi_permeable_glass", + "spectrum:glowing_semi_permeable_glass", + "spectrum:topaz_semi_permeable_glass", + "spectrum:amethyst_semi_permeable_glass", + "spectrum:citrine_semi_permeable_glass", + "spectrum:onyx_semi_permeable_glass", + "spectrum:moonstone_semi_permeable_glass", + + "spectrum:preservation_glass", + "spectrum:tinted_preservation_glass", + "spectrum:invisible_wall" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json b/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json index fcc3e8d892..1f90276730 100644 --- a/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json +++ b/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ - "#spectrum:colored_logs" + "#spectrum:colored_logs", + "#spectrum:noxcap_stems", + "spectrum:spirit_sallow_log" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json index 099b199325..05d7f5b73a 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -4,7 +4,8 @@ "#spectrum:spirit_sallow_wood", "#spectrum:colored_spore_blossoms", "#spectrum:detectors", - "#spectrum:sugar_sticks", + "#spectrum:noxwood", + "spectrum:fading", "spectrum:private_chest", "spectrum:glistering_melon", diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json index 3d4ae77470..c2702a757a 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/hoe.json @@ -4,6 +4,7 @@ "#spectrum:jade_vine", "#spectrum:colored_leaves", "#spectrum:spirit_sallow_vines", + "#spectrum:dragonjags", "spectrum:fading", "spectrum:lava_sponge", "spectrum:wet_lava_sponge", diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 9d9020c758..5a055cb617 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -4,7 +4,7 @@ "#spectrum:ores", "#spectrum:gemstone_storage_blocks", "#spectrum:upgrades", - "#spectrum:sparklestone_lights", + "#spectrum:shimmerstone_lights", "#spectrum:colored_blocks", "#spectrum:colored_lamps", "#spectrum:decostones", @@ -21,59 +21,53 @@ "#spectrum:player_only_glass", "#spectrum:gemstone_glass", "#spectrum:pure_resource_blocks", - + "#spectrum:sugar_sticks", + "#spectrum:blackslags", + "#spectrum:calcites", + "#spectrum:basalts", + "#spectrum:decay", "#spectrum:citrine_buds", + "#spectrum:shale_clays", + "spectrum:citrine_block", "spectrum:budding_citrine", - "#spectrum:topaz_buds", "spectrum:topaz_block", "spectrum:budding_topaz", - "#spectrum:onyx_buds", "spectrum:onyx_block", "spectrum:budding_onyx", - + "#spectrum:hummingstones", "#spectrum:moonstone_buds", "spectrum:moonstone_block", "spectrum:budding_moonstone", - - "spectrum:smooth_basalt_slab", - "spectrum:smooth_basalt_stairs", - "spectrum:calcite_slab", - "spectrum:calcite_stairs", - "spectrum:polished_basalt", - "spectrum:polished_basalt_pillar", - "spectrum:polished_basalt_crest", - "spectrum:chiseled_polished_basalt", - "spectrum:notched_polished_basalt", - "spectrum:polished_basalt_slab", - "spectrum:polished_basalt_stairs", - "spectrum:basalt_bricks", - "spectrum:basalt_brick_slab", - "spectrum:basalt_brick_stairs", - "spectrum:polished_calcite", - "spectrum:polished_calcite_pillar", - "spectrum:polished_calcite_crest", - "spectrum:chiseled_polished_calcite", - "spectrum:notched_polished_calcite", - "spectrum:polished_calcite_slab", - "spectrum:polished_calcite_stairs", - "spectrum:calcite_bricks", - "spectrum:calcite_brick_slab", - "spectrum:calcite_brick_stairs", - - "spectrum:amethyst_chiseled_basalt", - "spectrum:topaz_chiseled_basalt", - "spectrum:citrine_chiseled_basalt", - "spectrum:onyx_chiseled_basalt", - "spectrum:moonstone_chiseled_basalt", - "spectrum:amethyst_chiseled_calcite", - "spectrum:topaz_chiseled_calcite", - "spectrum:citrine_chiseled_calcite", - "spectrum:onyx_chiseled_calcite", - "spectrum:moonstone_chiseled_calcite", - + "spectrum:cinderhearth", + "spectrum:crystallarieum", + "spectrum:color_picker", + "spectrum:inkwell", + "spectrum:ink_duct", + "spectrum:crystal_apothecary", + "spectrum:potion_workshop", + "spectrum:spirit_instiller", + "spectrum:memory", + "spectrum:ender_glass", + "spectrum:redstone_sand", + "spectrum:ominous_sapling", + "spectrum:frostbite_crystal", + "spectrum:blazing_crystal", + "spectrum:particle_spawner", + "spectrum:compacting_chest", + "spectrum:private_chest", + "spectrum:restocking_chest", + "spectrum:ender_dropper", + "spectrum:ender_hopper", + "spectrum:radiating_ender", + "spectrum:shimmerstone_block", + "spectrum:azurite_block", + "spectrum:stratine_fragment_block", + "spectrum:paltaeria_fragment_block", + "spectrum:hover_block", + "spectrum:glowing_glass", "spectrum:item_roundel", "spectrum:present", "spectrum:blackslag", @@ -83,9 +77,6 @@ "spectrum:inkwell", "spectrum:ink_duct", "spectrum:crystal_apothecary", - "spectrum:failing", - "spectrum:ruin", - "spectrum:terror", "spectrum:potion_workshop", "spectrum:spirit_instiller", "spectrum:memory", @@ -100,11 +91,10 @@ "spectrum:restocking_chest", "spectrum:ender_dropper", "spectrum:ender_hopper", - "spectrum:ender_treasure", - "spectrum:sparklestone_block", + "spectrum:shimmerstone_block", "spectrum:azurite_block", - "spectrum:scarlet_fragment_block", - "spectrum:paletur_fragment_block", + "spectrum:stratine_fragment_block", + "spectrum:paltaeria_fragment_block", "spectrum:hover_block", "spectrum:glowing_glass", "spectrum:bismuth_block", @@ -116,10 +106,10 @@ "spectrum:redstone_calculator", "spectrum:redstone_wireless", "spectrum:block_placer", - "spectrum:sucking_chest", + "spectrum:black_hole_chest", "spectrum:ethereal_platform", "spectrum:universe_spyhole", "spectrum:decay_away", - "spectrum:stuck_lightning_stone" + "spectrum:stuck_storm_stone" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json b/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json index 6de79ca911..5f21e57f0d 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/shovel.json @@ -2,6 +2,6 @@ "replace": false, "values": [ "spectrum:sacred_soil", - "spectrum:black_materia" + "#spectrum:deep_soils" ] } diff --git a/src/main/resources/data/minecraft/tags/blocks/moss_replaceable.json b/src/main/resources/data/minecraft/tags/blocks/moss_replaceable.json new file mode 100644 index 0000000000..578b95ed7a --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/moss_replaceable.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "spectrum:shimmel", + "spectrum:blackslag", + "spectrum:rotten_ground" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mushroom_grow_block.json b/src/main/resources/data/minecraft/tags/blocks/mushroom_grow_block.json new file mode 100644 index 0000000000..04ab4596d5 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mushroom_grow_block.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:shimmel" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json index 35e07e7358..bb682e7f4e 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json @@ -1,8 +1,8 @@ { "replace": false, "values": [ - "spectrum:scarlet_ore", - "spectrum:paletur_ore", + "spectrum:stratine_ore", + "spectrum:paltaeria_ore", "#spectrum:azurite_ores" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json index 14eddd9c84..21b8c1aeaa 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "#spectrum:sparklestone_ores" + "#spectrum:shimmerstone_ores" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/nylium.json b/src/main/resources/data/minecraft/tags/blocks/nylium.json new file mode 100644 index 0000000000..04ab4596d5 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/nylium.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:shimmel" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/planks.json b/src/main/resources/data/minecraft/tags/blocks/planks.json index 1ae9a0cd18..d04a8ed6ad 100644 --- a/src/main/resources/data/minecraft/tags/blocks/planks.json +++ b/src/main/resources/data/minecraft/tags/blocks/planks.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_planks" + "#spectrum:colored_planks", + "#spectrum:noxwood_planks" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/strider_warm_blocks.json b/src/main/resources/data/minecraft/tags/blocks/strider_warm_blocks.json new file mode 100644 index 0000000000..7d7ccbc87b --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/strider_warm_blocks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blazing_crystal" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/unstable_bottom_center.json b/src/main/resources/data/minecraft/tags/blocks/unstable_bottom_center.json index 6de1008192..c2263866df 100644 --- a/src/main/resources/data/minecraft/tags/blocks/unstable_bottom_center.json +++ b/src/main/resources/data/minecraft/tags/blocks/unstable_bottom_center.json @@ -1,21 +1,7 @@ { "replace": false, "values": [ - "spectrum:black_plank_fence_gate", - "spectrum:blue_plank_fence_gate", - "spectrum:brown_plank_fence_gate", - "spectrum:cyan_plank_fence_gate", - "spectrum:gray_plank_fence_gate", - "spectrum:green_plank_fence_gate", - "spectrum:light_blue_plank_fence_gate", - "spectrum:light_gray_plank_fence_gate", - "spectrum:lime_plank_fence_gate", - "spectrum:magenta_plank_fence_gate", - "spectrum:orange_plank_fence_gate", - "spectrum:pink_plank_fence_gate", - "spectrum:purple_plank_fence_gate", - "spectrum:red_plank_fence_gate", - "spectrum:white_plank_fence_gate", - "spectrum:yellow_plank_fence_gate" + "#spectrum:colored_fence_gates", + "#spectrum:noxwood_fence_gates" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_buttons.json b/src/main/resources/data/minecraft/tags/blocks/wooden_buttons.json index a277f02bdc..5b1ae06474 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wooden_buttons.json +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_buttons.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_buttons" + "#spectrum:colored_buttons", + "#spectrum:noxwood_buttons" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json b/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json new file mode 100644 index 0000000000..a754ec3c7d --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#spectrum:noxwood_doors" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_fences.json b/src/main/resources/data/minecraft/tags/blocks/wooden_fences.json index 8635053501..efcba0fc84 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wooden_fences.json +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_fences.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_fences" + "#spectrum:colored_fences", + "#spectrum:noxwood_fences" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json b/src/main/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json index 85f0b0012c..b46c394da9 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_pressure_plates.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_pressure_plates" + "#spectrum:colored_pressure_plates", + "#spectrum:noxwood_pressure_plates" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_slabs.json b/src/main/resources/data/minecraft/tags/blocks/wooden_slabs.json index e2bbf12498..dd1114e25c 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wooden_slabs.json +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_slabs.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_slabs" + "#spectrum:colored_slabs", + "#spectrum:noxwood_slabs" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_stairs.json b/src/main/resources/data/minecraft/tags/blocks/wooden_stairs.json index 83d98e54ee..71bc527c1c 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wooden_stairs.json +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_stairs.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_stairs" + "#spectrum:colored_stairs", + "#spectrum:noxwood_stairs" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_trapdoors.json b/src/main/resources/data/minecraft/tags/blocks/wooden_trapdoors.json new file mode 100644 index 0000000000..6316adc178 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_trapdoors.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#spectrum:noxwood_trapdoors" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/arrows.json b/src/main/resources/data/minecraft/tags/items/arrows.json new file mode 100644 index 0000000000..396aea4811 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/arrows.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#spectrum:glass_arrows" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/beacon_payment_items.json b/src/main/resources/data/minecraft/tags/items/beacon_payment_items.json index af5b03a6f0..bda8502642 100644 --- a/src/main/resources/data/minecraft/tags/items/beacon_payment_items.json +++ b/src/main/resources/data/minecraft/tags/items/beacon_payment_items.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ + "#spectrum:pure_resources", + "minecraft:amethyst_shard", "spectrum:topaz_shard", "spectrum:citrine_shard", diff --git a/src/main/resources/data/minecraft/tags/items/cluster_max_harvestables.json b/src/main/resources/data/minecraft/tags/items/cluster_max_harvestables.json index 8bab721604..8232136bf7 100644 --- a/src/main/resources/data/minecraft/tags/items/cluster_max_harvestables.json +++ b/src/main/resources/data/minecraft/tags/items/cluster_max_harvestables.json @@ -1,11 +1,12 @@ { "replace": false, "values": [ + "#spectrum:workstaffs", "spectrum:multitool", - "spectrum:silker_pickaxe", - "spectrum:fortune_pickaxe", + "spectrum:tender_pickaxe", + "spectrum:lucky_pickaxe", "spectrum:resonant_pickaxe", - "spectrum:voiding_pickaxe", + "spectrum:oblivion_pickaxe", "spectrum:bedrock_pickaxe" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/coal_ores.json b/src/main/resources/data/minecraft/tags/items/coal_ores.json new file mode 100644 index 0000000000..e47f1a55c5 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/coal_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_coal_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/copper_ores.json b/src/main/resources/data/minecraft/tags/items/copper_ores.json new file mode 100644 index 0000000000..3b0e5bba5d --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/copper_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_copper_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/diamond_ores.json b/src/main/resources/data/minecraft/tags/items/diamond_ores.json new file mode 100644 index 0000000000..dea8a7a1db --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/diamond_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_diamond_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/emerald_ores.json b/src/main/resources/data/minecraft/tags/items/emerald_ores.json new file mode 100644 index 0000000000..9486c00c77 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/emerald_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_emerald_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/fences.json b/src/main/resources/data/minecraft/tags/items/fences.json new file mode 100644 index 0000000000..efcba0fc84 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/fences.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#spectrum:colored_fences", + "#spectrum:noxwood_fences" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/freeze_immune_wearables.json b/src/main/resources/data/minecraft/tags/items/freeze_immune_wearables.json index 677626bc6b..5ccac1dfb6 100644 --- a/src/main/resources/data/minecraft/tags/items/freeze_immune_wearables.json +++ b/src/main/resources/data/minecraft/tags/items/freeze_immune_wearables.json @@ -1,14 +1,6 @@ { "replace": false, "values": [ - "spectrum:bedrock_helmet", - "spectrum:bedrock_chestplate", - "spectrum:bedrock_leggings", - "spectrum:bedrock_boots", - "spectrum:emergency_helmet", - "spectrum:emergency_chestplate", - "spectrum:emergency_leggings", - "spectrum:emergency_boots", - "spectrum:glow_vision_helmet" + "#spectrum:bedrock_armor" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/gold_ores.json b/src/main/resources/data/minecraft/tags/items/gold_ores.json new file mode 100644 index 0000000000..accae068eb --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/gold_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_gold_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/iron_ores.json b/src/main/resources/data/minecraft/tags/items/iron_ores.json new file mode 100644 index 0000000000..cbe2ea3013 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/iron_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_iron_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/lapis_ores.json b/src/main/resources/data/minecraft/tags/items/lapis_ores.json new file mode 100644 index 0000000000..cbe2ea3013 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/lapis_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_iron_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/logs_that_burn.json b/src/main/resources/data/minecraft/tags/items/logs_that_burn.json index fcc3e8d892..c640ae3358 100644 --- a/src/main/resources/data/minecraft/tags/items/logs_that_burn.json +++ b/src/main/resources/data/minecraft/tags/items/logs_that_burn.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_logs" + "#spectrum:colored_logs", + "#spectrum:noxcap_stems" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/planks.json b/src/main/resources/data/minecraft/tags/items/planks.json index 1ae9a0cd18..d04a8ed6ad 100644 --- a/src/main/resources/data/minecraft/tags/items/planks.json +++ b/src/main/resources/data/minecraft/tags/items/planks.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "#spectrum:colored_planks" + "#spectrum:colored_planks", + "#spectrum:noxwood_planks" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/pressure_plate.json b/src/main/resources/data/minecraft/tags/items/pressure_plate.json index 1b3537062b..fd7d9a7067 100644 --- a/src/main/resources/data/minecraft/tags/items/pressure_plate.json +++ b/src/main/resources/data/minecraft/tags/items/pressure_plate.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_pressure_plate", - "spectrum:blue_plank_pressure_plate", - "spectrum:brown_plank_pressure_plate", - "spectrum:cyan_plank_pressure_plate", - "spectrum:gray_plank_pressure_plate", - "spectrum:green_plank_pressure_plate", - "spectrum:light_blue_plank_pressure_plate", - "spectrum:light_gray_plank_pressure_plate", - "spectrum:lime_plank_pressure_plate", - "spectrum:magenta_plank_pressure_plate", - "spectrum:orange_plank_pressure_plate", - "spectrum:pink_plank_pressure_plate", - "spectrum:purple_plank_pressure_plate", - "spectrum:red_plank_pressure_plate", - "spectrum:white_plank_pressure_plate", - "spectrum:yellow_plank_pressure_plate" + "spectrum:black_pressure_plate", + "spectrum:blue_pressure_plate", + "spectrum:brown_pressure_plate", + "spectrum:cyan_pressure_plate", + "spectrum:gray_pressure_plate", + "spectrum:green_pressure_plate", + "spectrum:light_blue_pressure_plate", + "spectrum:light_gray_pressure_plate", + "spectrum:lime_pressure_plate", + "spectrum:magenta_pressure_plate", + "spectrum:orange_pressure_plate", + "spectrum:pink_pressure_plate", + "spectrum:purple_pressure_plate", + "spectrum:red_pressure_plate", + "spectrum:white_pressure_plate", + "spectrum:yellow_pressure_plate" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/redstone_ores.json b/src/main/resources/data/minecraft/tags/items/redstone_ores.json new file mode 100644 index 0000000000..1e659c6e9e --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/redstone_ores.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag_redstone_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/slabs.json b/src/main/resources/data/minecraft/tags/items/slabs.json index 5c1139f96d..c29f024825 100644 --- a/src/main/resources/data/minecraft/tags/items/slabs.json +++ b/src/main/resources/data/minecraft/tags/items/slabs.json @@ -1,12 +1,14 @@ { "replace": false, "values": [ + "#spectrum:colored_slabs", + "#spectrum:noxwood_slabs", + "spectrum:smooth_basalt_slab", "spectrum:polished_basalt_slab", "spectrum:basalt_brick_slab", "spectrum:calcite_slab", "spectrum:polished_calcite_slab", - "spectrum:calcite_brick_slab", - "#spectrum:colored_slabs" + "spectrum:calcite_brick_slab" ] } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/items/small_flowers.json b/src/main/resources/data/minecraft/tags/items/small_flowers.json index c5df141ed3..59a703f1ef 100644 --- a/src/main/resources/data/minecraft/tags/items/small_flowers.json +++ b/src/main/resources/data/minecraft/tags/items/small_flowers.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ - "spectrum:resonant_lily" + "spectrum:resonant_lily", + "spectrum:amaranth_bushel", + "spectrum:blood_orchid" ] } \ No newline at end of file diff --git a/src/main/resources/data/modern_industrialization/tags/items/replicator_blacklist.json b/src/main/resources/data/modern_industrialization/tags/items/replicator_blacklist.json index 74bf65730c..fda0f68a24 100644 --- a/src/main/resources/data/modern_industrialization/tags/items/replicator_blacklist.json +++ b/src/main/resources/data/modern_industrialization/tags/items/replicator_blacklist.json @@ -4,32 +4,16 @@ "#spectrum:bedrock_equipment", "#spectrum:bedrock_armor", "#spectrum:gemstone_armor", - "#spectrum:mob_heads", - "spectrum:void_bundle", + "spectrum:bottomless_bundle", "spectrum:memory", "spectrum:cracked_end_portal_frame", - "#spectrum:pedestals", "spectrum:knowledge_gem", - "spectrum:celestial_pocketwatch", - "spectrum:moonstone_shard", - "spectrum:moonstone_powder", - "spectrum:onyx_shard", - "spectrum:onyx_powder", "spectrum:spectral_shard", - "spectrum:hibernating_jade_vine_seeds", - "spectrum:germinated_jade_vine_seeds", - "spectrum:jade_vine_petals", - "spectrum:moonstruck_nectar", - "spectrum:vegetal", - "spectrum:neolith", - "spectrum:bedrock_dust", - "spectrum:midnight_aberration", - "spectrum:midnight_chip", "spectrum:multitool", - "spectrum:silker_pickaxe", - "spectrum:fortune_pickaxe", - "spectrum:looting_falchion", - "spectrum:voiding_pickaxe", + "spectrum:tender_pickaxe", + "spectrum:lucky_pickaxe", + "spectrum:razor_falchion", + "spectrum:oblivion_pickaxe", "spectrum:resonant_pickaxe", "spectrum:ender_splice", "#spectrum:trinkets" diff --git a/src/main/resources/data/origins/tags/blocks/natural_stone.json b/src/main/resources/data/origins/tags/blocks/natural_stone.json new file mode 100644 index 0000000000..5ce4a13049 --- /dev/null +++ b/src/main/resources/data/origins/tags/blocks/natural_stone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:blackslag" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/origins/tags/blocks/unphasable.json b/src/main/resources/data/origins/tags/blocks/unphasable.json new file mode 100644 index 0000000000..846eba9bb5 --- /dev/null +++ b/src/main/resources/data/origins/tags/blocks/unphasable.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#spectrum:structure_blocks" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/origins/tags/items/ignore_diet.json b/src/main/resources/data/origins/tags/items/ignore_diet.json new file mode 100644 index 0000000000..50d9254404 --- /dev/null +++ b/src/main/resources/data/origins/tags/items/ignore_diet.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "#spectrum:alcohols", + "spectrum:bloodboil_syrup", + "spectrum:moonstruck_nectar", + "spectrum:incandescent_amalgam" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/origins/tags/items/meat.json b/src/main/resources/data/origins/tags/items/meat.json new file mode 100644 index 0000000000..6d3d9da341 --- /dev/null +++ b/src/main/resources/data/origins/tags/items/meat.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "spectrum:triple_meat_pot_pie" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/origins/tags/items/ranged_weapons.json b/src/main/resources/data/origins/tags/items/ranged_weapons.json new file mode 100644 index 0000000000..bcc4d492ac --- /dev/null +++ b/src/main/resources/data/origins/tags/items/ranged_weapons.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "spectrum:bedrock_bow", + "spectrum:bedrock_crossbow", + "spectrum:malachite_crossbow", + "spectrum:glass_crest_crossbow" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/break_gemstone_ore.json b/src/main/resources/data/spectrum/advancements/break_gemstone_ore.json new file mode 100644 index 0000000000..b94dc0660c --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/break_gemstone_ore.json @@ -0,0 +1,56 @@ +{ + "parent": "spectrum:spectrum", + "display": { + "icon": { + "item": "spectrum:amethyst_ore" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.break_gemstone_ore.title" + }, + "description": { + "translate": "advancements.spectrum.break_gemstone_ore.description" + } + }, + "criteria": { + "broken_gemstone_ore": { + "trigger": "spectrum:block_broken", + "conditions": { + "broken_block": { + "blocks": [ + "spectrum:topaz_ore", + "spectrum:amethyst_ore", + "spectrum:citrine_ore", + "spectrum:onyx_ore", + "spectrum:moonstone_ore", + "spectrum:deepslate_topaz_ore", + "spectrum:deepslate_amethyst_ore", + "spectrum:deepslate_citrine_ore", + "spectrum:deepslate_onyx_ore", + "spectrum:deepslate_moonstone_ore" + ] + }, + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type_specific": { + "type": "player", + "advancements": { + "spectrum:spectrum": true + } + } + } + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:spectrum" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/catch_shooting_star.json b/src/main/resources/data/spectrum/advancements/catch_shooting_star.json index 1b472d0772..8448a5ff06 100644 --- a/src/main/resources/data/spectrum/advancements/catch_shooting_star.json +++ b/src/main/resources/data/spectrum/advancements/catch_shooting_star.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:collect_shooting_star", + "parent": "spectrum:collect_star_fragment", "display": { "icon": { "item": "spectrum:shooting_star_glistering" @@ -19,7 +19,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_shooting_star" } + "conditions": { "advancement_identifier": "spectrum:collect_star_fragment" } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/collect_all_shooting_star_variants.json b/src/main/resources/data/spectrum/advancements/collect_all_shooting_star_variants.json index ff352cca30..063574e468 100644 --- a/src/main/resources/data/spectrum/advancements/collect_all_shooting_star_variants.json +++ b/src/main/resources/data/spectrum/advancements/collect_all_shooting_star_variants.json @@ -11,7 +11,7 @@ "translate": "advancements.spectrum.collect_all_shooting_star_variants.description" } }, - "parent": "spectrum:collect_shooting_star", + "parent": "spectrum:collect_star_fragment", "criteria": { "has_glistering_shooting_star": { "trigger":"minecraft:inventory_changed", @@ -35,7 +35,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_shooting_star" } + "conditions": { "advancement_identifier": "spectrum:collect_star_fragment" } } }, "requirements": [ diff --git a/src/main/resources/data/spectrum/advancements/collect_mysterious_locket.json b/src/main/resources/data/spectrum/advancements/collect_mysterious_locket.json index 01cfa65e04..bb51df2233 100644 --- a/src/main/resources/data/spectrum/advancements/collect_mysterious_locket.json +++ b/src/main/resources/data/spectrum/advancements/collect_mysterious_locket.json @@ -4,7 +4,7 @@ "icon": { "item": "spectrum:mysterious_locket" }, - "secret": true, + "hidden": true, "title": { "translate": "advancements.spectrum.collect_mysterious_locket.title" }, diff --git a/src/main/resources/data/spectrum/advancements/collect_shimmerstone.json b/src/main/resources/data/spectrum/advancements/collect_shimmerstone.json new file mode 100644 index 0000000000..76bfdd002a --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/collect_shimmerstone.json @@ -0,0 +1,40 @@ +{ + "parent": "spectrum:craft_using_pedestal", + "display": { + "icon": { + "item": "spectrum:shimmerstone_gem" + }, + "title": { + "translate": "advancements.spectrum.collect_shimmerstone.title" + }, + "description": { + "translate": "advancements.spectrum.collect_shimmerstone.description" + } + }, + "criteria": { + "has_shimmerstone_gem": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:shimmerstone_gem" ]}] } + }, + "has_shimmerstone_ore": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:shimmerstone_ore" ]}] } + }, + "has_deepslate_shimmerstone_ore": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:deepslate_shimmerstone_ore" ]}] } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:craft_using_pedestal" } + } + }, + "requirements": [ + [ + "has_shimmerstone_gem", + "has_shimmerstone_ore", + "has_deepslate_shimmerstone_ore" + ], + [ "gotten_previous" ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/collect_shooting_star.json b/src/main/resources/data/spectrum/advancements/collect_shooting_star.json deleted file mode 100644 index bbf29e5589..0000000000 --- a/src/main/resources/data/spectrum/advancements/collect_shooting_star.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "parent": "spectrum:collect_all_basic_pigments", - "display": { - "icon": { - "item": "spectrum:shooting_star" - }, - "title": { - "translate": "advancements.spectrum.collect_shooting_star.title" - }, - "description": { - "translate": "advancements.spectrum.collect_shooting_star.description" - } - }, - "criteria": { - "has_shooting_star": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:shooting_star" ]}] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_all_basic_pigments" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/collect_sparklestone.json b/src/main/resources/data/spectrum/advancements/collect_sparklestone.json deleted file mode 100644 index 9ed80cbfad..0000000000 --- a/src/main/resources/data/spectrum/advancements/collect_sparklestone.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "parent": "spectrum:craft_using_pedestal", - "display": { - "icon": { - "item": "spectrum:sparklestone_gem" - }, - "title": { - "translate": "advancements.spectrum.collect_sparklestone.title" - }, - "description": { - "translate": "advancements.spectrum.collect_sparklestone.description" - } - }, - "criteria": { - "has_sparklestone_gem": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:sparklestone_gem" ]}] } - }, - "has_sparklestone_ore": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:sparklestone_ore" ]}] } - }, - "has_deepslate_sparklestone_ore": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:deepslate_sparklestone_ore" ]}] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:craft_using_pedestal" } - } - }, - "requirements": [ - [ - "has_sparklestone_gem", - "has_sparklestone_ore", - "has_deepslate_sparklestone_ore" - ], - [ "gotten_previous" ] - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/collect_star_fragment.json b/src/main/resources/data/spectrum/advancements/collect_star_fragment.json new file mode 100644 index 0000000000..464676745e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/collect_star_fragment.json @@ -0,0 +1,24 @@ +{ + "parent": "spectrum:collect_all_basic_pigments", + "display": { + "icon": { + "item": "spectrum:star_fragment" + }, + "title": { + "translate": "advancements.spectrum.collect_star_fragment.title" + }, + "description": { + "translate": "advancements.spectrum.collect_star_fragment.description" + } + }, + "criteria": { + "has_star_fragment": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:star_fragment" ]}] } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:collect_all_basic_pigments" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/craft_bottle_of_fading.json b/src/main/resources/data/spectrum/advancements/craft_bottle_of_fading.json index d63107d5f2..025fddd913 100644 --- a/src/main/resources/data/spectrum/advancements/craft_bottle_of_fading.json +++ b/src/main/resources/data/spectrum/advancements/craft_bottle_of_fading.json @@ -10,7 +10,7 @@ "translate": "advancements.spectrum.craft_bottle_of_fading.description" } }, - "parent": "spectrum:collect_sparklestone", + "parent": "spectrum:collect_shimmerstone", "criteria": { "craft": { "trigger":"spectrum:crafted_with_pedestal", @@ -18,7 +18,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/dark_light_staff.json b/src/main/resources/data/spectrum/advancements/dark_light_staff.json deleted file mode 100644 index 42ba9c59c5..0000000000 --- a/src/main/resources/data/spectrum/advancements/dark_light_staff.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "display": { - "icon": { - "item": "spectrum:light_staff" - }, - "title": { - "translate": "advancements.spectrum.dark_light_staff.title" - }, - "description": { - "translate": "advancements.spectrum.dark_light_staff.description" - } - }, - "parent": "spectrum:build_basic_pedestal_structure", - "criteria": { - "toggled_light": { - "trigger": "minecraft:item_used_on_block", - "conditions": { - "item": { - "items": [ "spectrum:light_staff" ] - }, - "block": { - "blocks": [ "spectrum:wand_light" ], - "state": { - "LEVEL_15": 15 - } - } - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:build_basic_pedestal_structure" } - } - } -} diff --git a/src/main/resources/data/spectrum/advancements/dark_radiance_staff.json b/src/main/resources/data/spectrum/advancements/dark_radiance_staff.json new file mode 100644 index 0000000000..f59b58d3e4 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/dark_radiance_staff.json @@ -0,0 +1,34 @@ +{ + "display": { + "icon": { + "item": "spectrum:radiance_staff" + }, + "title": { + "translate": "advancements.spectrum.dark_radiance_staff.title" + }, + "description": { + "translate": "advancements.spectrum.dark_radiance_staff.description" + } + }, + "parent": "spectrum:build_basic_pedestal_structure", + "criteria": { + "toggled_light": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "item": { + "items": [ "spectrum:radiance_staff" ] + }, + "block": { + "blocks": [ "spectrum:wand_light" ], + "state": { + "LEVEL_15": 15 + } + } + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:build_basic_pedestal_structure" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/eat_each_pastry.json b/src/main/resources/data/spectrum/advancements/eat_each_pastry.json index 8f4cf5a05c..53f85a7c8c 100644 --- a/src/main/resources/data/spectrum/advancements/eat_each_pastry.json +++ b/src/main/resources/data/spectrum/advancements/eat_each_pastry.json @@ -60,6 +60,10 @@ "trigger": "minecraft:consume_item", "conditions": { "item": { "items": [ "spectrum:lucky_roll" ] } } }, + "scone": { + "trigger": "minecraft:consume_item", + "conditions": { "item": { "items": [ "spectrum:scone" ] } } + }, "star_candy": { "trigger": "minecraft:consume_item", "conditions": { "item": { "items": [ "spectrum:star_candy" ] } } diff --git a/src/main/resources/data/spectrum/advancements/enter_ender_glass.json b/src/main/resources/data/spectrum/advancements/enter_ender_glass.json index 6208750f59..5eaf80804d 100644 --- a/src/main/resources/data/spectrum/advancements/enter_ender_glass.json +++ b/src/main/resources/data/spectrum/advancements/enter_ender_glass.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:get_ender_treasure", + "parent": "spectrum:get_radiating_ender", "display": { "icon": { "item": "spectrum:ender_glass" @@ -12,7 +12,7 @@ } }, "criteria": { - "enter_liquid_crystal": { + "enter_ender_glass": { "trigger": "minecraft:enter_block", "conditions": { "block": "spectrum:ender_glass" @@ -20,7 +20,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/fill_bottomless_bundle.json b/src/main/resources/data/spectrum/advancements/fill_bottomless_bundle.json new file mode 100644 index 0000000000..8ffe82dbe1 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/fill_bottomless_bundle.json @@ -0,0 +1,42 @@ +{ + "parent": "spectrum:collect_quitoxic_reeds", + "display": { + "icon": { + "item": "spectrum:bottomless_bundle" + }, + "title": { + "translate": "advancements.spectrum.fill_bottomless_bundle.title" + }, + "description": { + "translate": "advancements.spectrum.fill_bottomless_bundle.description" + } + }, + "criteria": { + "fill": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:bottomless_bundle" + ], + "nbt": "{StoredStack:{Count:20000}}" + } + ], + "slots": { + "occupied": { + "min": 0, + "max": 50 + } + } + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:collect_quitoxic_reeds" } + } + }, + "rewards": { + "experience": 500 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/fill_bottomless_bundle_for_real_this_time.json b/src/main/resources/data/spectrum/advancements/fill_bottomless_bundle_for_real_this_time.json new file mode 100644 index 0000000000..a3d2be5819 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/fill_bottomless_bundle_for_real_this_time.json @@ -0,0 +1,44 @@ +{ + "parent": "spectrum:fill_bottomless_bundle", + "display": { + "icon": { + "item": "spectrum:bottomless_bundle" + }, + "frame": "challenge", + "hidden": true, + "title": { + "translate": "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.title" + }, + "description": { + "translate": "advancements.spectrum.fill_bottomless_bundle_for_real_this_time.description" + } + }, + "criteria": { + "fill": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:bottomless_bundle" + ], + "nbt": "{StoredStack:{Count:2000000000}}" + } + ], + "slots": { + "occupied": { + "min": 0, + "max": 50 + } + } + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:fill_bottomless_bundle" } + } + }, + "rewards": { + "experience": 500 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/fill_void_bundle.json b/src/main/resources/data/spectrum/advancements/fill_void_bundle.json deleted file mode 100644 index 7cf816dfe8..0000000000 --- a/src/main/resources/data/spectrum/advancements/fill_void_bundle.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "parent": "spectrum:collect_quitoxic_reeds", - "display": { - "icon": { - "item": "spectrum:void_bundle" - }, - "title": { - "translate": "advancements.spectrum.fill_void_bundle.title" - }, - "description": { - "translate": "advancements.spectrum.fill_void_bundle.description" - } - }, - "criteria": { - "fill": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "spectrum:void_bundle" - ], - "nbt": "{StoredStack:{Count:20000}}" - } - ], - "slots": { - "occupied": { - "min": 0, - "max": 50 - } - } - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_quitoxic_reeds" } - } - }, - "rewards": { - "experience": 500 - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/fill_void_bundle_for_real_this_time.json b/src/main/resources/data/spectrum/advancements/fill_void_bundle_for_real_this_time.json deleted file mode 100644 index 441c35dbf2..0000000000 --- a/src/main/resources/data/spectrum/advancements/fill_void_bundle_for_real_this_time.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "parent": "spectrum:fill_void_bundle", - "display": { - "icon": { - "item": "spectrum:void_bundle" - }, - "frame": "challenge", - "hidden": true, - "title": { - "translate": "advancements.spectrum.fill_void_bundle_for_real_this_time.title" - }, - "description": { - "translate": "advancements.spectrum.fill_void_bundle_for_real_this_time.description" - } - }, - "criteria": { - "fill": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "spectrum:void_bundle" - ], - "nbt": "{StoredStack:{Count:2000000000}}" - } - ], - "slots": { - "occupied": { - "min": 0, - "max": 50 - } - } - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:fill_void_bundle" } - } - }, - "rewards": { - "experience": 500 - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/find_ancient_ruins.json b/src/main/resources/data/spectrum/advancements/find_ancient_ruins.json index d7532836f9..d46991dfa9 100644 --- a/src/main/resources/data/spectrum/advancements/find_ancient_ruins.json +++ b/src/main/resources/data/spectrum/advancements/find_ancient_ruins.json @@ -16,9 +16,17 @@ "in_ancient_ruins": { "trigger": "minecraft:location", "conditions": { - "location": { - "feature": "spectrum:ancient_ruins" - } + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "structure": "spectrum:ancient_ruins" + } + } + } + ] } } } diff --git a/src/main/resources/data/spectrum/advancements/generate_ancient_ruins_loot.json b/src/main/resources/data/spectrum/advancements/generate_ancient_ruins_loot.json index 9cfd510e78..0abca712c0 100644 --- a/src/main/resources/data/spectrum/advancements/generate_ancient_ruins_loot.json +++ b/src/main/resources/data/spectrum/advancements/generate_ancient_ruins_loot.json @@ -22,7 +22,7 @@ "entity": "this", "predicate": { "location": { - "feature": "spectrum:ancient_ruins" + "structure": "spectrum:ancient_ruins" } } } @@ -66,21 +66,19 @@ }, "gotten_previous": { "trigger": "revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:find_ancient_ruins" } + "conditions": { + "advancement_identifier": "spectrum:find_ancient_ruins" + } } }, "requirements": [ - [ - "opened_ancient_ruins_main_treasure_chest", - "gotten_previous" - ], - [ - "opened_color_combinations_cmy_treasure_chest", - "gotten_previous" - ], - [ - "opened_wireless_redstone_main_treasure_chest", - "gotten_previous" + [ + "opened_ancient_ruins_main_treasure_chest", + "opened_wireless_redstone_main_treasure_chest", + "opened_color_combinations_cmy_treasure_chest" + ], + [ + "gotten_previous" + ] ] -] } diff --git a/src/main/resources/data/spectrum/advancements/get_ender_treasure.json b/src/main/resources/data/spectrum/advancements/get_ender_treasure.json deleted file mode 100644 index 8a5fff4578..0000000000 --- a/src/main/resources/data/spectrum/advancements/get_ender_treasure.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "display": { - "icon": { - "item": "spectrum:ender_treasure" - }, - "title": { - "translate": "advancements.spectrum.get_ender_treasure.title" - }, - "description": { - "translate": "advancements.spectrum.get_ender_treasure.description" - }, - "hidden": true - }, - "parent": "spectrum:spectrum", - "criteria": { - "gotten_ender_treasure": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "spectrum:ender_treasure" - ] - } - ] - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:spectrum" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/get_hit_while_wearing_full_suit_of_gemstone_armor.json b/src/main/resources/data/spectrum/advancements/get_hit_while_wearing_full_suit_of_gemstone_armor.json index 2bfd6a644e..0586463c9c 100644 --- a/src/main/resources/data/spectrum/advancements/get_hit_while_wearing_full_suit_of_gemstone_armor.json +++ b/src/main/resources/data/spectrum/advancements/get_hit_while_wearing_full_suit_of_gemstone_armor.json @@ -1,7 +1,7 @@ { "display": { "icon": { - "item": "spectrum:emergency_chestplate" + "item": "spectrum:ferocious_chestplate" }, "title": { "translate": "advancements.spectrum.get_hit_while_wearing_full_suit_of_gemstone_armor.title" @@ -19,22 +19,22 @@ "equipment": { "head": { "items": [ - "spectrum:emergency_helmet" + "spectrum:fetchling_helmet" ] }, "chest": { "items": [ - "spectrum:emergency_chestplate" + "spectrum:ferocious_chestplate" ] }, "legs": { "items": [ - "spectrum:emergency_leggings" + "spectrum:sylph_leggings" ] }, "feet": { "items": [ - "spectrum:emergency_boots" + "spectrum:oread_boots" ] } } diff --git a/src/main/resources/data/spectrum/advancements/get_radiating_ender.json b/src/main/resources/data/spectrum/advancements/get_radiating_ender.json new file mode 100644 index 0000000000..0221fcc1e0 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/get_radiating_ender.json @@ -0,0 +1,33 @@ +{ + "display": { + "icon": { + "item": "spectrum:radiating_ender" + }, + "title": { + "translate": "advancements.spectrum.get_radiating_ender.title" + }, + "description": { + "translate": "advancements.spectrum.get_radiating_ender.description" + }, + "hidden": true + }, + "parent": "spectrum:spectrum", + "criteria": { + "gotten_radiating_ender": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:radiating_ender" + ] + } + ] + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:spectrum" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/gift_or_open_present.json b/src/main/resources/data/spectrum/advancements/gift_or_open_present.json index ba0d3ba71b..d695cfbf94 100644 --- a/src/main/resources/data/spectrum/advancements/gift_or_open_present.json +++ b/src/main/resources/data/spectrum/advancements/gift_or_open_present.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:collect_sparklestone", + "parent": "spectrum:collect_shimmerstone", "display": { "icon": { "item": "spectrum:present" @@ -17,7 +17,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_aloe.json b/src/main/resources/data/spectrum/advancements/hidden/collect_aloe.json new file mode 100644 index 0000000000..17a8e4f3b6 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_aloe.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "has_aloe": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:aloe_leaf" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_bismuth.json b/src/main/resources/data/spectrum/advancements/hidden/collect_bismuth.json index fa555e30ab..09e9cf138b 100644 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_bismuth.json +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_bismuth.json @@ -1,12 +1,26 @@ { "criteria": { - "collected_hover_block": { + "collected_bismuth": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:small_bismuth_bud" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:bismuth_flake", + "spectrum:bismuth_crystal", + "spectrum:small_bismuth_bud", + "spectrum:large_bismuth_bud", + "spectrum:bismuth_cluster" + ] + } + ] + } }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/spectrum_lategame" } + "built_complex_pedestal_structure": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_blackslag.json b/src/main/resources/data/spectrum/advancements/hidden/collect_blackslag.json new file mode 100644 index 0000000000..dea251cda5 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_blackslag.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_blackslag": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:blackslag" + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_gemstone_dust/collect_moonstone_powder.json b/src/main/resources/data/spectrum/advancements/hidden/collect_gemstone_dust/collect_moonstone_powder.json index bc9d063ad0..d2e5d0fb6f 100644 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_gemstone_dust/collect_moonstone_powder.json +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_gemstone_dust/collect_moonstone_powder.json @@ -2,7 +2,9 @@ "criteria": { "collected_moonstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } }, "has_onyx_shard": { "trigger": "minecraft:inventory_changed", diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_hummingstone.json b/src/main/resources/data/spectrum/advancements/hidden/collect_hummingstone.json new file mode 100644 index 0000000000..401998842a --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_hummingstone.json @@ -0,0 +1,23 @@ +{ + "criteria": { + "has_hummingstone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:hummingstone", + "spectrum:hummingstone_glass" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_paletur_gem.json b/src/main/resources/data/spectrum/advancements/hidden/collect_paletur_gem.json deleted file mode 100644 index 49f116a638..0000000000 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_paletur_gem.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_paletur": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } - }, - "has_paletur_gem": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": ["spectrum:paletur_gem" ] }] } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_paltaeria_gem.json b/src/main/resources/data/spectrum/advancements/hidden/collect_paltaeria_gem.json new file mode 100644 index 0000000000..80e6c79cd1 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_paltaeria_gem.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "collected_paltaeria": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } + }, + "has_paltaeria_gem": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": ["spectrum:paltaeria_gem" ] }] } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_gray_pigment.json b/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_gray_pigment.json index 82c9cef0b4..5c8c370b54 100644 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_gray_pigment.json +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_gray_pigment.json @@ -2,7 +2,9 @@ "criteria": { "collected_moonstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } }, "has_pigment": { "trigger": "minecraft:inventory_changed", diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_light_gray_pigment.json b/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_light_gray_pigment.json index 737e55e719..3c8e0c1076 100644 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_light_gray_pigment.json +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_light_gray_pigment.json @@ -2,7 +2,9 @@ "criteria": { "collected_moonstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } }, "has_pigment": { "trigger": "minecraft:inventory_changed", diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_white_pigment.json b/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_white_pigment.json index 1c8c635652..7b025358fc 100644 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_white_pigment.json +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_pigment/collect_white_pigment.json @@ -2,7 +2,9 @@ "criteria": { "collected_moonstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } }, "has_pigment": { "trigger": "minecraft:inventory_changed", diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_scarlet_gem.json b/src/main/resources/data/spectrum/advancements/hidden/collect_scarlet_gem.json deleted file mode 100644 index 2bcabbb12b..0000000000 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_scarlet_gem.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_scarlet": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } - }, - "has_scarlet_gem": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": ["spectrum:scarlet_gem" ] }] } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_stardust.json b/src/main/resources/data/spectrum/advancements/hidden/collect_stardust.json index 584dc0a7b0..18293fb013 100644 --- a/src/main/resources/data/spectrum/advancements/hidden/collect_stardust.json +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_stardust.json @@ -1,6 +1,6 @@ { "criteria": { - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:milestones/unlock_shooting_stars" } }, diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_stratine_gem.json b/src/main/resources/data/spectrum/advancements/hidden/collect_stratine_gem.json new file mode 100644 index 0000000000..0f7f582a88 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_stratine_gem.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "collected_stratine": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } + }, + "has_stratine_gem": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": ["spectrum:stratine_gem" ] }] } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_vanilla/collect_echo_shard.json b/src/main/resources/data/spectrum/advancements/hidden/collect_vanilla/collect_echo_shard.json new file mode 100644 index 0000000000..1494b27182 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_vanilla/collect_echo_shard.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "has_echo_shard": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:echo_shard" + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/collect_vanilla/collect_nether_star.json b/src/main/resources/data/spectrum/advancements/hidden/collect_vanilla/collect_nether_star.json new file mode 100644 index 0000000000..34e4b61498 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/collect_vanilla/collect_nether_star.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "has_nether_star": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:nether_star" + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/hidden/interact_with_doombloom.json b/src/main/resources/data/spectrum/advancements/hidden/interact_with_doombloom.json new file mode 100644 index 0000000000..6b0acf5b61 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/interact_with_doombloom.json @@ -0,0 +1,44 @@ +{ + "criteria": { + "interacted_with_doombloom": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "location": { + "block": { + "blocks": [ + "spectrum:doombloom" + ] + } + } + } + }, + "has_doombloom": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:doombloom", + "spectrum:doombloom_seed" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + }, + "requirements": [ + [ + "interacted_with_doombloom", + "has_doombloom" + ], + [ + "gotten_previous" + ] + ] +} diff --git a/src/main/resources/data/spectrum/advancements/hidden/interact_with_downstone.json b/src/main/resources/data/spectrum/advancements/hidden/interact_with_downstone.json new file mode 100644 index 0000000000..b407eb3942 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/interact_with_downstone.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "interacted_with_downstone": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "location": { + "block": { + "blocks": [ + "spectrum:downstone" + ] + } + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/hidden/killed_by_monstrosity.json b/src/main/resources/data/spectrum/advancements/hidden/killed_by_monstrosity.json new file mode 100644 index 0000000000..7224d11b8b --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/hidden/killed_by_monstrosity.json @@ -0,0 +1,25 @@ +{ + "criteria": { + "killed_by_monstrosity": { + "trigger": "minecraft:entity_killed_player", + "conditions": { + "player": [], + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "killer", + "predicate": { + "type": "spectrum:monstrosity" + } + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure.json b/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure.json index 68f22b3f99..956384527e 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure.json +++ b/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:lategame/collect_moonstone_chiseled_block", + "parent": "spectrum:lategame/craft_moonstone_pedestal", "display": { "icon": { "item": "spectrum:chiseled_polished_basalt" @@ -19,7 +19,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_moonstone_chiseled_block" } + "conditions": { + "advancement_identifier": "spectrum:lategame/craft_moonstone_pedestal" + } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure_without_moonstone.json b/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure_without_moonstone.json new file mode 100644 index 0000000000..49d38f8706 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/build_complex_pedestal_structure_without_moonstone.json @@ -0,0 +1,32 @@ +{ + "parent": "spectrum:lategame/craft_moonstone_pedestal", + "display": { + "icon": { + "item": "spectrum:moonstone_chiseled_calcite" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.build_complex_pedestal_structure_without_moonstone.title" + }, + "description": { + "translate": "advancements.spectrum.build_complex_pedestal_structure_without_moonstone.description" + } + }, + "criteria": { + "built_structure": { + "trigger": "spectrum:completed_multiblock", + "conditions": { + "multiblock_identifier": "spectrum:pedestal_complex_structure_without_moonstone_check" + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/craft_moonstone_pedestal" + } + } + }, + "rewards": { + "experience": 500 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/carry_too_many_low_gravity_blocks.json b/src/main/resources/data/spectrum/advancements/lategame/carry_too_many_low_gravity_blocks.json index 77d81255f7..02d8913957 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/carry_too_many_low_gravity_blocks.json +++ b/src/main/resources/data/spectrum/advancements/lategame/carry_too_many_low_gravity_blocks.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:lategame/collect_paletur", + "parent": "spectrum:lategame/collect_paltaeria", "display": { "icon": { - "item": "spectrum:paletur_fragment_block" + "item": "spectrum:paltaeria_fragment_block" }, "frame": "challenge", "title": { @@ -18,7 +18,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_bismuth.json b/src/main/resources/data/spectrum/advancements/lategame/collect_bismuth.json similarity index 78% rename from src/main/resources/data/spectrum/advancements/midgame/collect_bismuth.json rename to src/main/resources/data/spectrum/advancements/lategame/collect_bismuth.json index 9bc30bebdc..8242321a21 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_bismuth.json +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_bismuth.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/enter_dimension", + "parent": "spectrum:lategame/spectrum_lategame", "display": { "icon": { "item": "spectrum:small_bismuth_bud" @@ -19,7 +19,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/enter_dimension" } + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_bismuth_crystal.json b/src/main/resources/data/spectrum/advancements/lategame/collect_bismuth_crystal.json similarity index 78% rename from src/main/resources/data/spectrum/advancements/midgame/collect_bismuth_crystal.json rename to src/main/resources/data/spectrum/advancements/lategame/collect_bismuth_crystal.json index 864e4935af..87ad0cbc7e 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_bismuth_crystal.json +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_bismuth_crystal.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_bismuth", + "parent": "spectrum:lategame/collect_bismuth", "display": { "icon": { "item": "spectrum:bismuth_crystal" @@ -18,7 +18,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_bismuth" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_dragonbone.json b/src/main/resources/data/spectrum/advancements/lategame/collect_dragonbone.json new file mode 100644 index 0000000000..5dae39a1da --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_dragonbone.json @@ -0,0 +1,37 @@ +{ + "parent": "spectrum:lategame/spectrum_lategame", + "display": { + "icon": { + "item": "spectrum:dragonbone_needle" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.collect_dragonbone.title" + }, + "description": { + "translate": "advancements.spectrum.collect_dragonbone.description" + } + }, + "criteria": { + "has_dragonbone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:dragonbone", + "spectrum:dragonbone_shard", + "spectrum:dragonbone_needle" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_hover_block.json b/src/main/resources/data/spectrum/advancements/lategame/collect_hover_block.json index 7a225d5117..691b24031a 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/collect_hover_block.json +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_hover_block.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:lategame/collect_paletur", + "parent": "spectrum:lategame/collect_paltaeria", "display": { "icon": { - "item": "spectrum:paletur_fragment_block" + "item": "spectrum:hover_block" }, "title": { "translate": "advancements.spectrum.collect_hover_block.title" @@ -18,7 +18,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_malachite.json b/src/main/resources/data/spectrum/advancements/lategame/collect_malachite.json index 7388fcc734..3a610df779 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/collect_malachite.json +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_malachite.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:lategame/spectrum_lategame", + "parent": "spectrum:lategame/build_complex_pedestal_structure", "display": { "icon": { "item": "spectrum:deepslate_malachite_ore" @@ -19,7 +19,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/spectrum_lategame" } + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_chiseled_block.json b/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_chiseled_block.json deleted file mode 100644 index 8df44c5851..0000000000 --- a/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_chiseled_block.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "parent": "spectrum:lategame/spectrum_lategame", - "display": { - "icon": { - "item": "spectrum:moonstone_chiseled_calcite" - }, - "title": { - "translate": "advancements.spectrum.collect_moonstone_chiseled_block.title" - }, - "description": { - "translate": "advancements.spectrum.collect_moonstone_chiseled_block.description" - } - }, - "criteria": { - "has_moonstone_chiseled_base_block": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "tag": "spectrum:moonstone_chiseled_base_blocks" }] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/spectrum_lategame" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_core.json b/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_core.json new file mode 100644 index 0000000000..12c8fd596b --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_core.json @@ -0,0 +1,35 @@ +{ + "parent": "spectrum:lategame/spectrum_lategame", + "display": { + "icon": { + "item": "spectrum:moonstone_core" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.collect_moonstone_core.title" + }, + "description": { + "translate": "advancements.spectrum.collect_moonstone_core.description" + } + }, + "criteria": { + "has_moonstone_core": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:moonstone_core" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_moonstone_shard.json b/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_shard.json similarity index 80% rename from src/main/resources/data/spectrum/advancements/midgame/collect_moonstone_shard.json rename to src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_shard.json index e2b7463f8a..c1d82e0aa3 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_moonstone_shard.json +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_moonstone_shard.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/enter_dimension", + "parent": "spectrum:lategame/spectrum_lategame", "display": { "icon": { "item": "spectrum:moonstone_shard" @@ -19,7 +19,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/enter_dimension" } + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_myceylon.json b/src/main/resources/data/spectrum/advancements/lategame/collect_myceylon.json new file mode 100644 index 0000000000..57f4d2b44c --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_myceylon.json @@ -0,0 +1,36 @@ +{ + "parent": "spectrum:lategame/spectrum_lategame", + "display": { + "icon": { + "item": "spectrum:myceylon" + }, + "title": { + "translate": "advancements.spectrum.collect_myceylon.title" + }, + "description": { + "translate": "advancements.spectrum.collect_myceylon.description" + } + }, + "criteria": { + "has_myceylon": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "conditions": { + "items": [ + { + "items": [ + "spectrum:myceylon" + ] + } + ] + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_noxwood.json b/src/main/resources/data/spectrum/advancements/lategame/collect_noxwood.json new file mode 100644 index 0000000000..ab8006c92e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_noxwood.json @@ -0,0 +1,27 @@ +{ + "parent": "spectrum:lategame/spectrum_lategame", + "display": { + "icon": { + "item": "spectrum:slate_noxcap_stem" + }, + "title": { + "translate": "advancements.spectrum.collect_noxwood.title" + }, + "description": { + "translate": "advancements.spectrum.collect_noxwood.description" + }, + "hidden": true + }, + "criteria": { + "has_noxwood": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "tag": "spectrum:noxwood" }] } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_paletur.json b/src/main/resources/data/spectrum/advancements/lategame/collect_paletur.json deleted file mode 100644 index 5d21ef9c2c..0000000000 --- a/src/main/resources/data/spectrum/advancements/lategame/collect_paletur.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "parent": "spectrum:lategame/build_complex_pedestal_structure", - "display": { - "icon": { - "item": "spectrum:paletur_fragments" - }, - "title": { - "translate": "advancements.spectrum.collect_paletur.title" - }, - "description": { - "translate": "advancements.spectrum.collect_paletur.description" - }, - "hidden": true - }, - "criteria": { - "has_ore": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:paletur_ore" ]}] } - }, - "has_fragments": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:paletur_fragments" ]}] } - }, - "has_gem": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:paletur_gem" ]}] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } - } - }, - "requirements": [ - [ - "has_ore", - "has_fragments", - "has_gem" - ], - [ "gotten_previous" ] - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_paltaeria.json b/src/main/resources/data/spectrum/advancements/lategame/collect_paltaeria.json new file mode 100644 index 0000000000..a7889bef04 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_paltaeria.json @@ -0,0 +1,35 @@ +{ + "parent": "spectrum:lategame/build_complex_pedestal_structure", + "display": { + "icon": { + "item": "spectrum:paltaeria_fragments" + }, + "title": { + "translate": "advancements.spectrum.collect_paltaeria.title" + }, + "description": { + "translate": "advancements.spectrum.collect_paltaeria.description" + }, + "hidden": true + }, + "criteria": { + "has_paltaeria": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:paltaeria_ore", + "spectrum:paltaeria_gem", + "spectrum:paltaeria_fragments" + ] + } + ] + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_prickly_bayleaf.json b/src/main/resources/data/spectrum/advancements/lategame/collect_prickly_bayleaf.json new file mode 100644 index 0000000000..e2e9fbfe03 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_prickly_bayleaf.json @@ -0,0 +1,34 @@ +{ + "parent": "spectrum:lategame/spectrum_lategame", + "display": { + "icon": { + "item": "spectrum:prickly_bayleaf" + }, + "title": { + "translate": "advancements.spectrum.collect_prickly_bayleaf.title" + }, + "description": { + "translate": "advancements.spectrum.collect_prickly_bayleaf.description" + } + }, + "criteria": { + "has_prickly_bayleaf": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:prickly_bayleaf" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/collect_pure_resource.json b/src/main/resources/data/spectrum/advancements/lategame/collect_pure_resource.json index 7927c5a554..4e15acfa4e 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/collect_pure_resource.json +++ b/src/main/resources/data/spectrum/advancements/lategame/collect_pure_resource.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:lategame/spectrum_lategame", + "parent": "spectrum:lategame/collect_bismuth_crystal", "display": { "icon": { "item": "spectrum:pure_iron" @@ -18,7 +18,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/spectrum_lategame" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/craft_moonstone_pedestal.json b/src/main/resources/data/spectrum/advancements/lategame/craft_moonstone_pedestal.json similarity index 79% rename from src/main/resources/data/spectrum/advancements/midgame/craft_moonstone_pedestal.json rename to src/main/resources/data/spectrum/advancements/lategame/craft_moonstone_pedestal.json index 3d413d7f28..ed05714e3f 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/craft_moonstone_pedestal.json +++ b/src/main/resources/data/spectrum/advancements/lategame/craft_moonstone_pedestal.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_moonstone_shard", + "parent": "spectrum:lategame/collect_moonstone_shard", "display": { "icon": { "item": "spectrum:pedestal_moonstone" @@ -20,7 +20,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/craft_resonant_pickaxe.json b/src/main/resources/data/spectrum/advancements/lategame/craft_resonant_pickaxe.json index e85fa2adb7..1099938dc6 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/craft_resonant_pickaxe.json +++ b/src/main/resources/data/spectrum/advancements/lategame/craft_resonant_pickaxe.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:lategame/collect_paletur", + "parent": "spectrum:lategame/collect_paltaeria", "display": { "icon": { "item": "spectrum:resonant_pickaxe", @@ -19,7 +19,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } diff --git a/src/main/resources/data/spectrum/advancements/lategame/create_glass_crest_tool.json b/src/main/resources/data/spectrum/advancements/lategame/create_glass_crest_tool.json new file mode 100644 index 0000000000..986805c0b6 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/create_glass_crest_tool.json @@ -0,0 +1,42 @@ +{ + "display": { + "icon": { + "item": "spectrum:glass_crest_workstaff", + "nbt": "{Enchantments: [{id: \"minecraft:silk_touch\", lvl: 1s}]}" + }, + "title": { + "translate": "advancements.spectrum.create_glass_crest_tool.title" + }, + "description": { + "translate": "advancements.spectrum.create_glass_crest_tool.description" + } + }, + "parent": "spectrum:lategame/grow_malachite_in_crystallarieum", + "criteria": { + "created_spectral_shard": { + "trigger": "spectrum:crafted_with_fusion_shrine", + "conditions": { + "items": [ + { + "items": [ + "spectrum:glass_crest_workstaff", + "spectrum:glass_crest_ultra_greatsword", + "spectrum:ferocious_glass_crest_bident", + "spectrum:fractal_glass_crest_bident", + "spectrum:glass_crest_crossbow" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/grow_malachite_in_crystallarieum" + } + } + }, + "rewards": { + "experience": 250 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/create_resonance_enchanted_book.json b/src/main/resources/data/spectrum/advancements/lategame/create_resonance_enchanted_book.json index 01e2aa0fe4..c8a230eba5 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/create_resonance_enchanted_book.json +++ b/src/main/resources/data/spectrum/advancements/lategame/create_resonance_enchanted_book.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:lategame/create_spectral_shard", + "parent": "spectrum:lategame/craft_resonant_pickaxe", "display": { "icon": { "item": "minecraft:enchanted_book" @@ -29,7 +29,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/create_spectral_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/craft_resonant_pickaxe" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/create_spectral_shard.json b/src/main/resources/data/spectrum/advancements/lategame/create_spectral_shard.json index c4f3493235..785211b41a 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/create_spectral_shard.json +++ b/src/main/resources/data/spectrum/advancements/lategame/create_spectral_shard.json @@ -11,15 +11,25 @@ "translate": "advancements.spectrum.create_spectral_shard.description" } }, - "parent": "spectrum:lategame/build_complex_pedestal_structure", + "parent": "spectrum:lategame/grow_ominous_sapling", "criteria": { "created_spectral_shard": { - "trigger":"spectrum:crafted_with_fusion_shrine", - "conditions": { "items": [{ "items": [ "spectrum:spectral_shard" ]}] } + "trigger": "spectrum:crafted_with_fusion_shrine", + "conditions": { + "items": [ + { + "items": [ + "spectrum:spectral_shard" + ] + } + ] + } }, "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/grow_ominous_sapling" + } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/lategame/enchant_exchange_staff.json b/src/main/resources/data/spectrum/advancements/lategame/enchant_exchange_staff.json deleted file mode 100644 index 2e4e8e89fd..0000000000 --- a/src/main/resources/data/spectrum/advancements/lategame/enchant_exchange_staff.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "parent": "spectrum:lategame/collect_paletur", - "display": { - "icon": { - "item": "spectrum:exchange_staff" - }, - "title": { - "translate": "advancements.spectrum.enchant_exchange_staff.title" - }, - "description": { - "translate": "advancements.spectrum.enchant_exchange_staff.description" - } - }, - "criteria": { - "requirement": { - "trigger": "minecraft:enchanted_item", - "conditions": { - "item": { - "items": [ - "spectrum:exchange_staff" - ] - } - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/enchant_exchanging_staff.json b/src/main/resources/data/spectrum/advancements/lategame/enchant_exchanging_staff.json new file mode 100644 index 0000000000..8cd8dd3dca --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/enchant_exchanging_staff.json @@ -0,0 +1,31 @@ +{ + "parent": "spectrum:lategame/collect_paltaeria", + "display": { + "icon": { + "item": "spectrum:exchanging_staff", + "nbt": "{Enchantments: [{id: \"minecraft:silk_touch\", lvl: 1s}]}" + }, + "title": { + "translate": "advancements.spectrum.enchant_exchanging_staff.title" + }, + "description": { + "translate": "advancements.spectrum.enchant_exchanging_staff.description" + } + }, + "criteria": { + "requirement": { + "trigger": "minecraft:enchanted_item", + "conditions": { + "item": { + "items": [ + "spectrum:exchanging_staff" + ] + } + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/equip_neat_ring.json b/src/main/resources/data/spectrum/advancements/lategame/equip_neat_ring.json similarity index 76% rename from src/main/resources/data/spectrum/advancements/midgame/equip_neat_ring.json rename to src/main/resources/data/spectrum/advancements/lategame/equip_neat_ring.json index d83cc4bfaf..f507e59538 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/equip_neat_ring.json +++ b/src/main/resources/data/spectrum/advancements/lategame/equip_neat_ring.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_moonstone_shard", + "parent": "spectrum:lategame/build_complex_pedestal_structure", "display": { "icon": { "item": "spectrum:neat_ring" @@ -25,7 +25,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/finish_progression_without_tips.json b/src/main/resources/data/spectrum/advancements/lategame/finish_progression_without_tips.json deleted file mode 100644 index 593be62724..0000000000 --- a/src/main/resources/data/spectrum/advancements/lategame/finish_progression_without_tips.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "display": { - "icon": { - "item": "spectrum:spectral_shard" - }, - "hidden": true, - "frame": "challenge", - "title": { - "translate": "advancements.spectrum.finish_progression_without_tips.title" - }, - "description": { - "translate": "advancements.spectrum.finish_progression_without_tips.description" - } - }, - "parent": "spectrum:lategame/finish_progression", - "criteria": { - "completed_spectrum_without_tips": { - "trigger": "revelationary:advancement_gotten", - "conditions": { - "advancement_identifier": "spectrum:lategame/finish_progression", - "player": [{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "player": { - "advancements": { - "spectrum:hidden/used_tip": false - } - } - } - }] - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/finish_progression" } - } - }, - "rewards": { - "loot": [ - "spectrum:advancement_reward/adv_finished_progression_without_tips" - ] - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/grow_bismuth_in_crystallarieum.json b/src/main/resources/data/spectrum/advancements/lategame/grow_bismuth_in_crystallarieum.json new file mode 100644 index 0000000000..dc1f3e107a --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/grow_bismuth_in_crystallarieum.json @@ -0,0 +1,30 @@ +{ + "parent": "spectrum:lategame/collect_bismuth_crystal", + "display": { + "icon": { + "item": "spectrum:crystallarieum" + }, + "title": { + "translate": "advancements.spectrum.grow_bismuth_in_crystallarieum.title" + }, + "description": { + "translate": "advancements.spectrum.grow_bismuth_in_crystallarieum.description" + } + }, + "criteria": { + "fully_grow_bismuth": { + "trigger":"spectrum:crystallarieum_growing", + "conditions": { + "block": { + "block": "spectrum:bismuth_cluster" + } + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/hurt_by_monstrosity.json b/src/main/resources/data/spectrum/advancements/lategame/hurt_by_monstrosity.json new file mode 100644 index 0000000000..57e205cb33 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/hurt_by_monstrosity.json @@ -0,0 +1,31 @@ +{ + "parent": "spectrum:midgame/enter_dimension", + "display": { + "icon": { + "item": "spectrum:bedrock_dust" + }, + "title": { + "translate": "advancements.spectrum.hurt_by_monstrosity.title" + }, + "description": { + "translate": "advancements.spectrum.hurt_by_monstrosity.description" + } + }, + "criteria": { + "hurt_by_monstrosity": { + "trigger": "minecraft:entity_hurt_player", + "conditions": { + "player": [], + "damage": { + "source_entity": { + "type": "spectrum:monstrosity" + } + } + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/enter_dimension" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/lategame/interact_with_dragonrot.json b/src/main/resources/data/spectrum/advancements/lategame/interact_with_dragonrot.json new file mode 100644 index 0000000000..cfbf3c265a --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/interact_with_dragonrot.json @@ -0,0 +1,49 @@ +{ + "parent": "spectrum:lategame/spectrum_lategame", + "display": { + "icon": { + "item": "spectrum:dragonrot_bucket" + }, + "title": { + "translate": "advancements.spectrum.interact_with_dragonrot.title" + }, + "description": { + "translate": "advancements.spectrum.interact_with_dragonrot.description" + } + }, + "criteria": { + "enter_dragonrot": { + "trigger": "minecraft:enter_block", + "conditions": { + "block": "spectrum:dragonrot" + } + }, + "get_dragonrot_bucket": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:dragonrot_bucket" + ] + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + }, + "requirements": [ + [ + "enter_dragonrot", + "get_dragonrot_bucket" + ], + [ + "gotten_previous" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/killed_monstrosity.json b/src/main/resources/data/spectrum/advancements/lategame/killed_monstrosity.json new file mode 100644 index 0000000000..70c4356e95 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/killed_monstrosity.json @@ -0,0 +1,37 @@ +{ + "parent": "spectrum:midgame/hurt_by_monstrosity", + "display": { + "icon": { + "item": "spectrum:bedrock_dust" + }, + "title": { + "translate": "advancements.spectrum.killed_monstrosity.title" + }, + "description": { + "translate": "advancements.spectrum.killed_monstrosity.description" + } + }, + "criteria": { + "killed_monstrosity": { + "trigger": "minecraft:player_killed_entity", + "conditions": { + "entity": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "type": "spectrum:monstrosity", + "location": { + "dimension": "spectrum:deeper_down_dimension" + } + } + } + ] + } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/enter_dimension" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/lategame/put_too_many_low_gravity_blocks_into_animal.json b/src/main/resources/data/spectrum/advancements/lategame/put_too_many_low_gravity_blocks_into_animal.json index 667ad3bb5a..e7296aad90 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/put_too_many_low_gravity_blocks_into_animal.json +++ b/src/main/resources/data/spectrum/advancements/lategame/put_too_many_low_gravity_blocks_into_animal.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:lategame/collect_paletur", + "parent": "spectrum:lategame/collect_paltaeria", "display": { "icon": { - "item": "spectrum:paletur_gem" + "item": "spectrum:paltaeria_gem" }, "frame": "challenge", "title": { @@ -19,7 +19,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/shoot_fully_overcharged_crossbow.json b/src/main/resources/data/spectrum/advancements/lategame/shoot_fully_overcharged_crossbow.json new file mode 100644 index 0000000000..a6445e373c --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/shoot_fully_overcharged_crossbow.json @@ -0,0 +1,30 @@ +{ + "parent": "spectrum:lategame/create_glass_crest_tool", + "display": { + "icon": { + "item": "spectrum:glass_crest_crossbow" + }, + "hidden": true, + "frame": "challenge", + "title": { + "translate": "advancements.spectrum.shoot_fully_overcharged_crossbow.title" + }, + "description": { + "translate": "advancements.spectrum.shoot_fully_overcharged_crossbow.description" + } + }, + "criteria": { + "shot_fully_overcharged_crossbow": { + "trigger": "minecraft:impossible" + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/create_glass_crest_tool" + } + } + }, + "rewards": { + "experience": 500 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/spectrum_lategame.json b/src/main/resources/data/spectrum/advancements/lategame/spectrum_lategame.json index 5002080367..e80fe27133 100644 --- a/src/main/resources/data/spectrum/advancements/lategame/spectrum_lategame.json +++ b/src/main/resources/data/spectrum/advancements/lategame/spectrum_lategame.json @@ -14,7 +14,9 @@ "criteria": { "finished_midgame": { "trigger": "revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/craft_moonstone_pedestal" } + "conditions": { + "advancement_identifier": "spectrum:midgame/enter_dimension" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/strike_up_hummingstone_hymn.json b/src/main/resources/data/spectrum/advancements/lategame/strike_up_hummingstone_hymn.json new file mode 100644 index 0000000000..b3efc376f2 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/strike_up_hummingstone_hymn.json @@ -0,0 +1,26 @@ +{ + "display": { + "icon": { + "item": "spectrum:hummingstone" + }, + "title": { + "translate": "advancements.spectrum.strike_up_hummingstone_hymn.title" + }, + "description": { + "translate": "advancements.spectrum.strike_up_hummingstone_hymn.description" + } + }, + "parent": "spectrum:lategame/spectrum_lategame", + "criteria": { + "struck_up_hummingstone_hymn": { + "trigger": "spectrum:hummingstone_hymn", + "conditions": {} + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/trigger_unenchanted_workstaff.json b/src/main/resources/data/spectrum/advancements/lategame/trigger_unenchanted_workstaff.json new file mode 100644 index 0000000000..b0f63b628f --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/trigger_unenchanted_workstaff.json @@ -0,0 +1,26 @@ +{ + "display": { + "icon": { + "item": "spectrum:malachite_workstaff" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.trigger_unenchanted_workstaff.title" + }, + "description": { + "translate": "advancements.spectrum.trigger_unenchanted_workstaff.description" + } + }, + "parent": "spectrum:lategame/grow_malachite_in_crystallarieum", + "criteria": { + "code_triggered": { + "trigger": "minecraft:impossible" + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/grow_malachite_in_crystallarieum" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/use_end_portal_cracker.json b/src/main/resources/data/spectrum/advancements/lategame/use_end_portal_cracker.json deleted file mode 100644 index 717e5afd57..0000000000 --- a/src/main/resources/data/spectrum/advancements/lategame/use_end_portal_cracker.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "display": { - "icon": { - "item": "spectrum:end_portal_cracker" - }, - "title": { - "translate": "advancements.spectrum.use_end_portal_cracker.title" - }, - "description": { - "translate": "advancements.spectrum.use_end_portal_cracker.description" - } - }, - "parent": "spectrum:lategame/build_complex_pedestal_structure", - "criteria": { - "used": { - "trigger": "minecraft:item_used_on_block", - "conditions": { - "item": { - "items": ["spectrum:end_portal_cracker"] - } - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/lategame/use_perturbed_eye.json b/src/main/resources/data/spectrum/advancements/lategame/use_perturbed_eye.json new file mode 100644 index 0000000000..edcb56f965 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/use_perturbed_eye.json @@ -0,0 +1,40 @@ +{ + "display": { + "icon": { + "item": "spectrum:perturbed_eye" + }, + "title": { + "translate": "advancements.spectrum.use_perturbed_eye.title" + }, + "description": { + "translate": "advancements.spectrum.use_perturbed_eye.description" + } + }, + "parent": "spectrum:lategame/collect_paltaeria", + "criteria": { + "used": { + "trigger": "minecraft:item_used_on_block", + "conditions": { + "item": { + "items": [ + "spectrum:perturbed_eye" + ] + }, + "location": { + "block": { + "blocks": [ + "minecraft:end_portal_frame", + "spectrum:cracked_end_portal_frame" + ] + } + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_paltaeria" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/lategame/visit_all_deeper_down_biomes.json b/src/main/resources/data/spectrum/advancements/lategame/visit_all_deeper_down_biomes.json new file mode 100644 index 0000000000..8f7b862ca1 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/lategame/visit_all_deeper_down_biomes.json @@ -0,0 +1,138 @@ +{ + "display": { + "icon": { + "item": "spectrum:polished_blackslag" + }, + "frame": "challenge", + "title": { + "translate": "advancements.spectrum.visit_all_deeper_down_biomes.title" + }, + "description": { + "translate": "advancements.spectrum.visit_all_deeper_down_biomes.description" + } + }, + "parent": "spectrum:lategame/spectrum_lategame", + "criteria": { + "crystal_garden": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:crystal_garden" + } + } + } + ] + } + }, + "deep_barrens": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:deep_barrens" + } + } + } + ] + } + }, + "deep_dripstone_caves": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:deep_dripstone_caves" + } + } + } + ] + } + }, + "dragonrot_swamp": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:dragonrot_swamp" + } + } + } + ] + } + }, + "forlorm_caves": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:forlorm_caves" + } + } + } + ] + } + }, + "mushroom_forest": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:mushroom_forest" + } + } + } + ] + } + }, + "razor_edge": { + "trigger": "minecraft:location", + "conditions": { + "player": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "biome": "spectrum:razor_edge" + } + } + } + ] + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/spectrum_lategame" + } + } + }, + "rewards": { + "experience": 500 + } +} diff --git a/src/main/resources/data/spectrum/advancements/midgame/brew_potion_in_potion_workshop.json b/src/main/resources/data/spectrum/advancements/midgame/brew_potion_in_potion_workshop.json index 182aa4609b..a1aa79da0a 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/brew_potion_in_potion_workshop.json +++ b/src/main/resources/data/spectrum/advancements/midgame/brew_potion_in_potion_workshop.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_scarlet", + "parent": "spectrum:midgame/collect_stratine", "display": { "icon": { "item": "spectrum:potion_workshop" @@ -26,7 +26,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure.json b/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure.json index 84de7e5866..ddd0880a3e 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure.json +++ b/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_scarlet", + "parent": "spectrum:midgame/collect_stratine", "display": { "icon": { "item": "spectrum:cinderhearth" @@ -18,7 +18,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure_without_lava.json b/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure_without_lava.json index 5149929eab..d6b5384bdc 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure_without_lava.json +++ b/src/main/resources/data/spectrum/advancements/midgame/build_cinderhearth_structure_without_lava.json @@ -19,7 +19,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/midgame/build_spirit_instiller_structure.json b/src/main/resources/data/spectrum/advancements/midgame/build_spirit_instiller_structure.json index 5557ea7c43..43d2336d6a 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/build_spirit_instiller_structure.json +++ b/src/main/resources/data/spectrum/advancements/midgame/build_spirit_instiller_structure.json @@ -1,13 +1,13 @@ { - "parent": "spectrum:midgame/collect_midnight_chip", + "parent": "spectrum:midgame/collect_azurite", "display": { "icon": { "item": "spectrum:spirit_instiller" }, "title": { "translate": "advancements.spectrum.build_spirit_instiller_structure.title" - }, - "description": { + }, + "description": { "translate": "advancements.spectrum.build_spirit_instiller_structure.description" } }, @@ -18,7 +18,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_midnight_chip" } + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_azurite" + } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/midgame/carry_too_many_heavy_gravity_blocks.json b/src/main/resources/data/spectrum/advancements/midgame/carry_too_many_heavy_gravity_blocks.json index 8eaa2a9300..7461c2cc41 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/carry_too_many_heavy_gravity_blocks.json +++ b/src/main/resources/data/spectrum/advancements/midgame/carry_too_many_heavy_gravity_blocks.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:midgame/collect_scarlet", + "parent": "spectrum:midgame/collect_stratine", "display": { "icon": { - "item": "spectrum:scarlet_fragment_block" + "item": "spectrum:stratine_fragment_block" }, "frame": "challenge", "title": { @@ -19,7 +19,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } }, "rewards": { diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_all_mob_heads.json b/src/main/resources/data/spectrum/advancements/midgame/collect_all_mob_heads.json index 704dfedbdc..420dafe69e 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_all_mob_heads.json +++ b/src/main/resources/data/spectrum/advancements/midgame/collect_all_mob_heads.json @@ -289,23 +289,75 @@ }, "has_sheep_red_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:sheep_red_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:sheep_red_head" + ] + } + ] + } }, "has_sheep_white_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:sheep_white_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:sheep_white_head" + ] + } + ] + } }, "has_sheep_yellow_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:sheep_yellow_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:sheep_yellow_head" + ] + } + ] + } + }, + "has_shulker_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:shulker_head" + ] + } + ] + } }, "has_shulker_black_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:shulker_black_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:shulker_black_head" + ] + } + ] + } }, "has_shulker_blue_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:shulker_blue_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:shulker_blue_head" + ] + } + ] + } }, "has_shulker_brown_head": { "trigger": "minecraft:inventory_changed", @@ -429,133 +481,120 @@ }, "has_zoglin_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:zoglin_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:zoglin_head" + ] + } + ] + } }, "has_zombie_villager_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:zombie_villager_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:zombie_villager_head" + ] + } + ] + } }, "has_zombified_piglin_head": { "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:zombified_piglin_head" ]}] } + "conditions": { + "items": [ + { + "items": [ + "spectrum:zombified_piglin_head" + ] + } + ] + } + }, + "has_tadpole_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:tadpole_head" + ] + } + ] + } + }, + "has_allay_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:allay_head" + ] + } + ] + } + }, + "has_warden_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:warden_head" + ] + } + ] + } + }, + "has_frog_temperate_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:frog_temperate_head" + ] + } + ] + } + }, + "has_frog_warm_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:frog_warm_head" + ] + } + ] + } + }, + "has_frog_cold_head": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:frog_cold_head" + ] + } + ] + } }, "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_ender_dragon_head_using_treasure_hunter" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_ender_dragon_head_using_treasure_hunter" + } } }, - "requirements": [ - ["has_skeleton_skull"], - ["has_wither_skeleton_skull"], - ["has_zombie_head"], - ["has_creeper_head"], - ["has_dragon_head"], - - ["has_axolotl_blue_head"], - ["has_axolotl_brown_head"], - ["has_axolotl_cyan_head"], - ["has_axolotl_gold_head"], - ["has_axolotl_leucistic_head"], - ["has_bat_head"], - ["has_bee_head"], - ["has_blaze_head"], - ["has_cat_head"], - ["has_cave_spider_head"], - ["has_chicken_head"], - ["has_clownfish_head"], - ["has_cow_head"], - ["has_donkey_head"], - ["has_drowned_head"], - ["has_elder_guardian_head"], - ["has_enderman_head"], - ["has_endermite_head"], - ["has_evoker_head"], - ["has_fox_head"], - ["has_fox_arctic_head"], - ["has_ghast_head"], - ["has_glow_squid_head"], - ["has_goat_head"], - ["has_guardian_head"], - ["has_hoglin_head"], - ["has_horse_head"], - ["has_husk_head"], - ["has_illusioner_head"], - ["has_iron_golem_head"], - ["has_llama_head"], - ["has_magma_cube_head"], - ["has_mooshroom_brown_head"], - ["has_mooshroom_red_head"], - ["has_mule_head"], - ["has_ocelot_head"], - ["has_panda_head"], - ["has_parrot_blue_head"], - ["has_parrot_cyan_head"], - ["has_parrot_gray_head"], - ["has_parrot_green_head"], - ["has_parrot_red_head"], - ["has_phantom_head"], - ["has_pig_head"], - ["has_piglin_head"], - ["has_polar_bear_head"], - ["has_pufferfish_head"], - ["has_rabbit_head"], - ["has_ravager_head"], - ["has_salmon_head"], - ["has_sheep_black_head"], - ["has_sheep_blue_head"], - ["has_sheep_brown_head"], - ["has_sheep_cyan_head"], - ["has_sheep_gray_head"], - ["has_sheep_green_head"], - ["has_sheep_light_blue_head"], - ["has_sheep_light_gray_head"], - ["has_sheep_lime_head"], - ["has_sheep_magenta_head"], - ["has_sheep_orange_head"], - ["has_sheep_pink_head"], - ["has_sheep_purple_head"], - ["has_sheep_red_head"], - ["has_sheep_white_head"], - ["has_sheep_yellow_head"], - ["has_shulker_black_head"], - ["has_shulker_blue_head"], - ["has_shulker_brown_head"], - ["has_shulker_cyan_head"], - ["has_shulker_gray_head"], - ["has_shulker_green_head"], - ["has_shulker_light_blue_head"], - ["has_shulker_light_gray_head"], - ["has_shulker_lime_head"], - ["has_shulker_magenta_head"], - ["has_shulker_orange_head"], - ["has_shulker_pink_head"], - ["has_shulker_purple_head"], - ["has_shulker_red_head"], - ["has_shulker_white_head"], - ["has_shulker_yellow_head"], - ["has_silverfish_head"], - ["has_slime_head"], - ["has_snow_golem_head"], - ["has_spider_head"], - ["has_squid_head"], - ["has_stray_head"], - ["has_strider_head"], - ["has_trader_llama_head"], - ["has_turtle_head"], - ["has_vex_head"], - ["has_villager_head"], - ["has_vindicator_head"], - ["has_wandering_trader_head"], - ["has_witch_head"], - ["has_wither_head"], - ["has_wolf_head"], - ["has_zoglin_head"], - ["has_zombie_villager_head"], - ["has_zombified_piglin_head"], - - ["gotten_previous"] - ], "rewards": { - "experience": 1000 + "experience": 2500 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_gemstone_shard_using_crystal_apothecary.json b/src/main/resources/data/spectrum/advancements/midgame/collect_gemstone_shard_using_crystal_apothecary.json index c584a47e37..4160bdc226 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_gemstone_shard_using_crystal_apothecary.json +++ b/src/main/resources/data/spectrum/advancements/midgame/collect_gemstone_shard_using_crystal_apothecary.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_lightning_stone", + "parent": "spectrum:midgame/collect_storm_stone", "display": { "icon": { "item": "spectrum:crystal_apothecary" @@ -22,7 +22,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_lightning_stone.json b/src/main/resources/data/spectrum/advancements/midgame/collect_lightning_stone.json deleted file mode 100644 index fdbadb1589..0000000000 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_lightning_stone.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "parent": "spectrum:midgame/collect_neolith", - "display": { - "icon": { - "item": "spectrum:lightning_stone" - }, - "hidden": true, - "title": { - "translate": "advancements.spectrum.collect_lightning_stone.title" - }, - "description": { - "translate": "advancements.spectrum.collect_lightning_stone.description" - } - }, - "criteria": { - "has_lightning_stone": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:lightning_stone" ]}] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_neolith" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_scarlet.json b/src/main/resources/data/spectrum/advancements/midgame/collect_scarlet.json deleted file mode 100644 index 3c01388332..0000000000 --- a/src/main/resources/data/spectrum/advancements/midgame/collect_scarlet.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "parent": "spectrum:midgame/build_advanced_pedestal_structure", - "display": { - "icon": { - "item": "spectrum:scarlet_fragments" - }, - "title": { - "translate": "advancements.spectrum.collect_scarlet.title" - }, - "description": { - "translate": "advancements.spectrum.collect_scarlet.description" - } - }, - "criteria": { - "has_ore": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:scarlet_ore" ]}] } - }, - "has_fragments": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:scarlet_fragments" ]}] } - }, - "has_gem": { - "trigger": "minecraft:inventory_changed", - "conditions": { "items": [{ "items": [ "spectrum:scarlet_gem" ]}] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } - } - }, - "requirements": [ - [ - "has_ore", - "has_fragments", - "has_gem" - ], - [ "gotten_previous" ] - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_storm_stone.json b/src/main/resources/data/spectrum/advancements/midgame/collect_storm_stone.json new file mode 100644 index 0000000000..a35be92465 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/collect_storm_stone.json @@ -0,0 +1,25 @@ +{ + "parent": "spectrum:midgame/collect_neolith", + "display": { + "icon": { + "item": "spectrum:storm_stone" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.collect_storm_stone.title" + }, + "description": { + "translate": "advancements.spectrum.collect_storm_stone.description" + } + }, + "criteria": { + "has_storm_stone": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:storm_stone" ]}] } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/collect_neolith" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_stratine.json b/src/main/resources/data/spectrum/advancements/midgame/collect_stratine.json new file mode 100644 index 0000000000..b6020495bb --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/collect_stratine.json @@ -0,0 +1,40 @@ +{ + "parent": "spectrum:midgame/build_advanced_pedestal_structure", + "display": { + "icon": { + "item": "spectrum:stratine_fragments" + }, + "title": { + "translate": "advancements.spectrum.collect_stratine.title" + }, + "description": { + "translate": "advancements.spectrum.collect_stratine.description" + } + }, + "criteria": { + "has_ore": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:stratine_ore" ]}] } + }, + "has_fragments": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:stratine_fragments" ]}] } + }, + "has_gem": { + "trigger": "minecraft:inventory_changed", + "conditions": { "items": [{ "items": [ "spectrum:stratine_gem" ]}] } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } + } + }, + "requirements": [ + [ + "has_ore", + "has_fragments", + "has_gem" + ], + [ "gotten_previous" ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/collect_warden_head_using_treasure_hunter.json b/src/main/resources/data/spectrum/advancements/midgame/collect_warden_head_using_treasure_hunter.json new file mode 100644 index 0000000000..e6e9632f8c --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/collect_warden_head_using_treasure_hunter.json @@ -0,0 +1,32 @@ +{ + "parent": "spectrum:midgame/collect_mob_head_using_treasure_hunter", + "display": { + "icon": { + "item": "spectrum:warden_head" + }, + "title": { + "translate": "advancements.spectrum.collect_warden_head_using_treasure_hunter.title" + }, + "description": { + "translate": "advancements.spectrum.collect_warden_head_using_treasure_hunter.description" + } + }, + "criteria": { + "dropped_warden_head": { + "trigger": "spectrum:treasure_hunter_drop", + "conditions": { + "dropped_item": { + "items": [ + "spectrum:warden_head" + ] + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_mob_head_using_treasure_hunter" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/craft_and_get_25_xp.json b/src/main/resources/data/spectrum/advancements/midgame/craft_and_get_25_xp.json index c7a9ad3062..1044698963 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/craft_and_get_25_xp.json +++ b/src/main/resources/data/spectrum/advancements/midgame/craft_and_get_25_xp.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_lightning_stone", + "parent": "spectrum:midgame/collect_storm_stone", "display": { "icon": { "item": "spectrum:upgrade_experience" @@ -22,7 +22,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/craft_bottle_of_failing.json b/src/main/resources/data/spectrum/advancements/midgame/craft_bottle_of_failing.json index ccf11ea091..47e5fae8c1 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/craft_bottle_of_failing.json +++ b/src/main/resources/data/spectrum/advancements/midgame/craft_bottle_of_failing.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_scarlet", + "parent": "spectrum:midgame/collect_stratine", "display": { "icon": { "item": "spectrum:bottle_of_failing" @@ -18,7 +18,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/craft_pigment_palette.json b/src/main/resources/data/spectrum/advancements/midgame/craft_pigment_palette.json index 89cac19bba..92659a72e0 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/craft_pigment_palette.json +++ b/src/main/resources/data/spectrum/advancements/midgame/craft_pigment_palette.json @@ -6,20 +6,30 @@ }, "hidden": true, "title": { - "translate": "advancements.spectrum.craft_pigment_palette.title" + "translate": "advancements.spectrum.equip_pigment_palette.title" }, "description": { - "translate": "advancements.spectrum.craft_pigment_palette.description" + "translate": "advancements.spectrum.equip_pigment_palette.description" } }, "criteria": { - "crafted_pigment_palette": { - "trigger": "spectrum:crafted_with_pedestal", - "conditions": { "items": [{ "items": [ "spectrum:pigment_palette" ]}] } + "equipped_pigment_palette": { + "trigger": "spectrum:trinket_change", + "conditions": { + "items": [ + { + "items": [ + "spectrum:pigment_palette" + ] + } + ] + } }, "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/create_refined_azurite" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/create_refined_azurite" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/craft_player_only_glass.json b/src/main/resources/data/spectrum/advancements/midgame/craft_player_only_glass.json deleted file mode 100644 index e15410d456..0000000000 --- a/src/main/resources/data/spectrum/advancements/midgame/craft_player_only_glass.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "parent": "spectrum:midgame/build_advanced_pedestal_structure", - "display": { - "icon": { - "item": "spectrum:topaz_player_only_glass" - }, - "title": { - "translate": "advancements.spectrum.get_player_only_glass.title" - }, - "description": { - "translate": "advancements.spectrum.get_player_only_glass.description" - } - }, - "criteria": { - "craft": { - "trigger":"spectrum:crafted_with_pedestal", - "conditions": { "items": [{ "tag": "spectrum:player_only_glass" }] } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/craft_semi_permeable_glass.json b/src/main/resources/data/spectrum/advancements/midgame/craft_semi_permeable_glass.json new file mode 100644 index 0000000000..b2b8f8dce7 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/craft_semi_permeable_glass.json @@ -0,0 +1,24 @@ +{ + "parent": "spectrum:midgame/build_advanced_pedestal_structure", + "display": { + "icon": { + "item": "spectrum:topaz_semi_permeable_glass" + }, + "title": { + "translate": "advancements.spectrum.get_semi_permeable_glass.title" + }, + "description": { + "translate": "advancements.spectrum.get_semi_permeable_glass.description" + } + }, + "criteria": { + "craft": { + "trigger":"spectrum:crafted_with_pedestal", + "conditions": { "items": [{ "tag": "spectrum:player_only_glass" }] } + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/create_big_pastel_network.json b/src/main/resources/data/spectrum/advancements/midgame/create_big_pastel_network.json new file mode 100644 index 0000000000..69300da670 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/create_big_pastel_network.json @@ -0,0 +1,31 @@ +{ + "display": { + "icon": { + "item": "spectrum:sender_node" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.create_big_pastel_network.title" + }, + "description": { + "translate": "advancements.spectrum.create_big_pastel_network.description" + } + }, + "parent": "spectrum:midgame/create_pastel_network", + "criteria": { + "created_16_node_pastel_network": { + "trigger": "spectrum:pastel_network_creation", + "conditions": { + "total_nodes": { + "min": 32 + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/create_pastel_network" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/midgame/create_pastel_network.json b/src/main/resources/data/spectrum/advancements/midgame/create_pastel_network.json new file mode 100644 index 0000000000..41e2ae4e94 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/create_pastel_network.json @@ -0,0 +1,30 @@ +{ + "display": { + "icon": { + "item": "spectrum:connection_node" + }, + "title": { + "translate": "advancements.spectrum.create_pastel_network.title" + }, + "description": { + "translate": "advancements.spectrum.create_pastel_network.description" + } + }, + "parent": "spectrum:midgame/collect_azurite", + "criteria": { + "created_2_node_pastel_network": { + "trigger": "spectrum:pastel_network_creation", + "conditions": { + "total_nodes": { + "min": 2 + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_azurite" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/midgame/create_pastel_network_using_every_node_type.json b/src/main/resources/data/spectrum/advancements/midgame/create_pastel_network_using_every_node_type.json new file mode 100644 index 0000000000..aedd973af0 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/create_pastel_network_using_every_node_type.json @@ -0,0 +1,43 @@ +{ + "display": { + "icon": { + "item": "spectrum:gather_node" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.create_pastel_network_using_every_node_type.title" + }, + "description": { + "translate": "advancements.spectrum.create_pastel_network_using_every_node_type.description" + } + }, + "parent": "spectrum:midgame/create_pastel_network", + "criteria": { + "created_pastel_network_using_every_node_type": { + "trigger": "spectrum:pastel_network_creation", + "conditions": { + "connection_nodes": { + "min": 1 + }, + "provider_nodes": { + "min": 1 + }, + "storage_nodes": { + "min": 1 + }, + "sender_nodes": { + "min": 1 + }, + "gather_nodes": { + "min": 1 + } + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/create_pastel_network" + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/midgame/doubled_output_in_cinderhearth.json b/src/main/resources/data/spectrum/advancements/midgame/doubled_output_in_cinderhearth.json deleted file mode 100644 index d86b2e1aa1..0000000000 --- a/src/main/resources/data/spectrum/advancements/midgame/doubled_output_in_cinderhearth.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "parent": "spectrum:midgame/build_cinderhearth_structure", - "display": { - "icon": { - "item": "minecraft:diamond" - }, - "hidden": true, - "title": { - "translate": "advancements.spectrum.doubled_output_in_cinderhearth.title" - }, - "description": { - "translate": "advancements.spectrum.doubled_output_in_cinderhearth.description" - } - }, - "criteria": { - "smelted_in_cinderhearth": { - "trigger": "spectrum:cinderhearth_smelting", - "conditions": { - "yield_multiplier": { - "min": 2.0 - } - } - }, - "gotten_previous": { - "trigger": "revelationary:advancement_gotten", - "conditions": { - "advancement_identifier": "spectrum:midgame/build_cinderhearth_structure" - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/enter_dimension.json b/src/main/resources/data/spectrum/advancements/midgame/enter_dimension.json index 6fd6d5644f..3feae0c377 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/enter_dimension.json +++ b/src/main/resources/data/spectrum/advancements/midgame/enter_dimension.json @@ -1,8 +1,8 @@ { - "parent": "spectrum:midgame/break_decayed_bedrock", + "parent": "spectrum:midgame/open_deeper_down_portal", "display": { "icon": { - "item": "minecraft:bedrock" + "item": "spectrum:black_glowblock" }, "title": { "translate": "advancements.spectrum.enter_dimension.title" @@ -20,7 +20,9 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/break_decayed_bedrock" } + "conditions": { + "advancement_identifier": "spectrum:midgame/open_deeper_down_portal" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/grow_bismuth_in_crystallarieum.json b/src/main/resources/data/spectrum/advancements/midgame/grow_bismuth_in_crystallarieum.json deleted file mode 100644 index 9d941a821a..0000000000 --- a/src/main/resources/data/spectrum/advancements/midgame/grow_bismuth_in_crystallarieum.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "parent": "spectrum:midgame/collect_bismuth_crystal", - "display": { - "icon": { - "item": "spectrum:crystallarieum" - }, - "title": { - "translate": "advancements.spectrum.grow_bismuth_in_crystallarieum.title" - }, - "description": { - "translate": "advancements.spectrum.grow_bismuth_in_crystallarieum.description" - } - }, - "criteria": { - "fully_grow_bismuth": { - "trigger":"spectrum:crystallarieum_growing", - "conditions": { - "block": { - "block": "spectrum:bismuth_cluster" - } - } - }, - "gotten_previous": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_bismuth_crystal" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/have_half_a_heart_with_divinity.json b/src/main/resources/data/spectrum/advancements/midgame/have_half_a_heart_with_divinity.json index 4effb044d9..f3f1b934de 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/have_half_a_heart_with_divinity.json +++ b/src/main/resources/data/spectrum/advancements/midgame/have_half_a_heart_with_divinity.json @@ -2,7 +2,7 @@ "parent": "spectrum:midgame/apply_divinity", "display": { "icon": { - "item": "spectrum:freigeist" + "item": "spectrum:divination_heart" }, "frame": "challenge", "title": { @@ -12,13 +12,18 @@ "translate": "advancements.spectrum.have_half_a_heart_with_divinity.description" } }, + "rewards": { + "loot": [ + "spectrum:advancement_reward/adv_have_half_a_heart_with_divinity" + ] + }, "criteria": { "have_half_a_heart_with_divinity_active": { "trigger": "spectrum:divinity_tick", "conditions": { "health": { "min": 0.01, - "max": 0.9 + "max": 0.99 } } }, @@ -28,10 +33,5 @@ "advancement_identifier": "spectrum:midgame/apply_divinity" } } - }, - "rewards": { - "loot": [ - "spectrum:advancement_reward/adv_have_half_a_heart_with_divinity" - ] } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/high_jump_with_take_off_belt.json b/src/main/resources/data/spectrum/advancements/midgame/high_jump_with_take_off_belt.json index b00ad10536..196e255806 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/high_jump_with_take_off_belt.json +++ b/src/main/resources/data/spectrum/advancements/midgame/high_jump_with_take_off_belt.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_lightning_stone", + "parent": "spectrum:midgame/collect_storm_stone", "display": { "icon": { "item": "spectrum:take_off_belt" @@ -23,7 +23,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/kill_entity_with_jeopardant_and_half_a_heart.json b/src/main/resources/data/spectrum/advancements/midgame/kill_entity_with_jeopardant_and_half_a_heart.json index 081cf94942..1616c78f36 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/kill_entity_with_jeopardant_and_half_a_heart.json +++ b/src/main/resources/data/spectrum/advancements/midgame/kill_entity_with_jeopardant_and_half_a_heart.json @@ -1,5 +1,5 @@ { - "parent": "spectrum:midgame/collect_scarlet", + "parent": "spectrum:midgame/collect_stratine", "display": { "icon": { "item": "spectrum:jeopardant" @@ -22,7 +22,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } } } diff --git a/src/main/resources/data/spectrum/advancements/midgame/open_deeper_down_portal.json b/src/main/resources/data/spectrum/advancements/midgame/open_deeper_down_portal.json new file mode 100644 index 0000000000..20dbad240d --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/open_deeper_down_portal.json @@ -0,0 +1,23 @@ +{ + "parent": "spectrum:midgame/break_decayed_bedrock", + "display": { + "icon": { + "item": "spectrum:bedrock_storage_block" + }, + "title": { + "translate": "advancements.spectrum.open_deeper_down_portal.title" + }, + "description": { + "translate": "advancements.spectrum.open_deeper_down_portal.description" + } + }, + "criteria": { + "opened_deeper_down_portal": { + "trigger": "minecraft:impossible" + }, + "gotten_previous": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/break_decayed_bedrock" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/place_color_picker.json b/src/main/resources/data/spectrum/advancements/midgame/place_color_picker.json index 8692faeea8..e17e5e8b36 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/place_color_picker.json +++ b/src/main/resources/data/spectrum/advancements/midgame/place_color_picker.json @@ -12,7 +12,7 @@ } }, "criteria": { - "used_pedestal": { + "placed_color_picker": { "trigger": "minecraft:placed_block", "conditions": { "item": { diff --git a/src/main/resources/data/spectrum/advancements/midgame/smelt_in_cinderhearth_with_yield_upgrades.json b/src/main/resources/data/spectrum/advancements/midgame/smelt_in_cinderhearth_with_yield_upgrades.json new file mode 100644 index 0000000000..9428abfbde --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/midgame/smelt_in_cinderhearth_with_yield_upgrades.json @@ -0,0 +1,31 @@ +{ + "parent": "spectrum:midgame/build_cinderhearth_structure", + "display": { + "icon": { + "item": "minecraft:diamond" + }, + "hidden": true, + "title": { + "translate": "advancements.spectrum.smelt_in_cinderhearth_with_yield_upgrades.title" + }, + "description": { + "translate": "advancements.spectrum.smelt_in_cinderhearth_with_yield_upgrades.description" + } + }, + "criteria": { + "smelted_in_cinderhearth_with_yield_upgrades": { + "trigger": "spectrum:cinderhearth_smelting", + "conditions": { + "yield_multiplier": { + "min": 1 + } + } + }, + "gotten_previous": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/build_cinderhearth_structure" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/midgame/take_off_belt_overcharged.json b/src/main/resources/data/spectrum/advancements/midgame/take_off_belt_overcharged.json index 90ad49744f..b6246d34e4 100644 --- a/src/main/resources/data/spectrum/advancements/midgame/take_off_belt_overcharged.json +++ b/src/main/resources/data/spectrum/advancements/midgame/take_off_belt_overcharged.json @@ -24,7 +24,7 @@ }, "gotten_previous": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_ender_treasure.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_ender_treasure.json deleted file mode 100644 index 1dc6fcb962..0000000000 --- a/src/main/resources/data/spectrum/advancements/milestones/reveal_ender_treasure.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "criteria": { - "collected_ender_treasure": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "spectrum:ender_treasure" - ] - } - ] - } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_paletur.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_paletur.json deleted file mode 100644 index 02362d040e..0000000000 --- a/src/main/resources/data/spectrum/advancements/milestones/reveal_paletur.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "criteria": { - "entered_dimension": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_paltaeria.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_paltaeria.json new file mode 100644 index 0000000000..646df2fe74 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/milestones/reveal_paltaeria.json @@ -0,0 +1,8 @@ +{ + "criteria": { + "built_complex_pedestal_structure": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_radiating_ender.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_radiating_ender.json new file mode 100644 index 0000000000..4522167dd7 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/milestones/reveal_radiating_ender.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_radiating_ender": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "spectrum:radiating_ender" + ] + } + ] + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_sparklestone.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_shimmerstone.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/milestones/reveal_sparklestone.json rename to src/main/resources/data/spectrum/advancements/milestones/reveal_shimmerstone.json diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_lightning_stones.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_storm_stones.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/milestones/reveal_lightning_stones.json rename to src/main/resources/data/spectrum/advancements/milestones/reveal_storm_stones.json diff --git a/src/main/resources/data/spectrum/advancements/milestones/reveal_scarlet.json b/src/main/resources/data/spectrum/advancements/milestones/reveal_stratine.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/milestones/reveal_scarlet.json rename to src/main/resources/data/spectrum/advancements/milestones/reveal_stratine.json diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_any_colored_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_any_colored_lamp.json index 00211defd7..73e3a38b88 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_any_colored_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_any_colored_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_black_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_black_lamp.json index acafee2f8a..efd98f012e 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_black_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_black_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_blue_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_blue_lamp.json index 13e208bfed..0a2a23d910 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_blue_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_blue_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_brown_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_brown_lamp.json index 56e271c7d5..bd10e95fe1 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_brown_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_brown_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_cyan_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_cyan_lamp.json index d6d8fbca12..58b80922fb 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_cyan_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_cyan_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_gray_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_gray_lamp.json index c4ebf6af62..8bc5789118 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_gray_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_gray_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_green_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_green_lamp.json index 26d04e8e66..004dfdb033 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_green_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_green_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_blue_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_blue_lamp.json index 80da063b98..0cc641619e 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_blue_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_blue_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_gray_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_gray_lamp.json index 461ed74d04..08d8faeb1c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_gray_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_light_gray_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_lime_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_lime_lamp.json index af017b4dc8..e55722f6d2 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_lime_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_lime_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_magenta_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_magenta_lamp.json index 4fe5e83468..d60bf1d252 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_magenta_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_magenta_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_orange_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_orange_lamp.json index 38d06c4efe..62ce1b4b0e 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_orange_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_orange_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_pink_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_pink_lamp.json index d98a029d73..59a5292c5f 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_pink_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_pink_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_purple_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_purple_lamp.json index 9ed9e07542..45ca79de4c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_purple_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_purple_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_red_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_red_lamp.json index ac6e78fa43..da4aaa99a3 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_red_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_red_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_white_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_white_lamp.json index d09834ee7f..1175228a3e 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_white_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_white_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_yellow_lamp.json b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_yellow_lamp.json index f1bbe3e7c2..25552667bd 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_yellow_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_lamps/unlock_yellow_lamp.json @@ -1,8 +1,8 @@ { "criteria": { - "has_sparklestone_gem": { + "has_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "has_citrine_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_gray_sapling.json b/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_gray_sapling.json index ff8bf983b8..c536b3bf6b 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_gray_sapling.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_gray_sapling.json @@ -10,7 +10,9 @@ }, "collected_moonstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_light_gray_sapling.json b/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_light_gray_sapling.json index ff8bf983b8..c536b3bf6b 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_light_gray_sapling.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_light_gray_sapling.json @@ -10,7 +10,9 @@ }, "collected_moonstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_white_sapling.json b/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_white_sapling.json index 7593cbcf85..76c998568b 100644 --- a/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_white_sapling.json +++ b/src/main/resources/data/spectrum/advancements/progression/colored_saplings/unlock_white_sapling.json @@ -6,7 +6,9 @@ }, "collected_moonstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/decostones/unlock_moonstone_decostone.json b/src/main/resources/data/spectrum/advancements/progression/decostones/unlock_moonstone_decostone.json index c5898161b6..6fcd151726 100644 --- a/src/main/resources/data/spectrum/advancements/progression/decostones/unlock_moonstone_decostone.json +++ b/src/main/resources/data/spectrum/advancements/progression/decostones/unlock_moonstone_decostone.json @@ -6,7 +6,9 @@ }, "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/detectors/unlock_entity_detector.json b/src/main/resources/data/spectrum/advancements/progression/detectors/unlock_entity_detector.json index 93f34fb441..2f556e4220 100644 --- a/src/main/resources/data/spectrum/advancements/progression/detectors/unlock_entity_detector.json +++ b/src/main/resources/data/spectrum/advancements/progression/detectors/unlock_entity_detector.json @@ -1,8 +1,10 @@ { "criteria": { - "crafted_using_pedestal": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } + "built_complex_pedestal_structure": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } }, "has_quartz": { "trigger":"revelationary:advancement_gotten", @@ -10,7 +12,9 @@ }, "collected_corresponding_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/autosmelt.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/autosmelt.json index 930313a55b..ef70f901fd 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/autosmelt.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/autosmelt.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_enchanting_structure" } }, - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_scarlet_gem" } + "conditions": { "advancement_identifier": "spectrum:hidden/collect_stratine_gem" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/disarming.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/disarming.json index 583cfc17b7..ffd97e4b8f 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/disarming.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/disarming.json @@ -4,13 +4,13 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_enchanting_structure" } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } }, - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/indestructible.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/indestructible.json index b9c8ee3210..29b0bf118c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/indestructible.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/indestructible.json @@ -10,7 +10,9 @@ }, "collected_moonstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/pest_control.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/pest_control.json index 1da73d6d69..b749bbf025 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/pest_control.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/pest_control.json @@ -8,9 +8,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_light_gray_pigment" } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/resonance.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/resonance.json index 70adc578c9..9e207d3288 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/resonance.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/resonance.json @@ -1,16 +1,28 @@ { "criteria": { + "built_complex_pedestal_structure": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } + }, "built_enchanting_structure": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/build_enchanting_structure" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/build_enchanting_structure" + } }, "broken_budding_block_with_resonance_tool": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/break_budding_block_with_resonance_tool" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/break_budding_block_with_resonance_tool" + } }, - "collected_mermaids_gem": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_mermaids_gem" } + "created_hummingstone_hymn": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/create_hummingstone_hymn" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/treasure_hunter.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/treasure_hunter.json index cf49f0d5d8..638c3f28b2 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/treasure_hunter.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/treasure_hunter.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_enchanting_structure" } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_damage.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_damage.json index cf49f0d5d8..638c3f28b2 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_damage.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_damage.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_enchanting_structure" } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_projectile_infinity.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_projectile_infinity.json index 4dfff85dba..3529e2b876 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_projectile_infinity.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_projectile_infinity.json @@ -8,9 +8,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/collect_neolith" } }, - "collected_ender_treasure": { + "collected_radiating_ender": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_treasure.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_treasure.json index bb5dd89d7c..e64265d2f5 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_treasure.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_treasure.json @@ -8,9 +8,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_light_gray_pigment" } }, - "collected_paletur": { + "collected_paltaeria": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_trident_channeling.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_trident_channeling.json index e404d1dafb..7d7d525135 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_trident_channeling.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_trident_channeling.json @@ -12,9 +12,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:collect_mermaids_gem" } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_unbreaking.json b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_unbreaking.json index bd6a8ae15f..1d4123277b 100644 --- a/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_unbreaking.json +++ b/src/main/resources/data/spectrum/advancements/progression/enchantments/vanilla_unbreaking.json @@ -7,10 +7,6 @@ "collected_bedrock_dust": { "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/break_decayed_bedrock" } - }, - "collected_netherite": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_vanilla/collect_netherite_scrap" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_amethyst_chime.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_amethyst_chime.json index 7be4845fbc..bd49a4df35 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_amethyst_chime.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_amethyst_chime.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_any_chime.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_any_chime.json index 251f988979..4c851adb6c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_any_chime.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_any_chime.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_any_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_citrine_chime.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_citrine_chime.json index f0b06b6202..24d3436794 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_citrine_chime.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_citrine_chime.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_moonstone_chime.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_moonstone_chime.json index fa6a439617..c2fa5fec9a 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_moonstone_chime.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_moonstone_chime.json @@ -4,13 +4,15 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_onyx_chime.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_onyx_chime.json index 7179c0501d..c0914fd4a9 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_onyx_chime.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_onyx_chime.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_topaz_chime.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_topaz_chime.json index 087c9bd271..2733ca7441 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_topaz_chime.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_chimes/unlock_topaz_chime.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_amethyst_lamps.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_amethyst_lamps.json index cdc9135c68..71fa9ce2b3 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_amethyst_lamps.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_amethyst_lamps.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_amethyst_shard" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_any_gemstone_lamp.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_any_gemstone_lamp.json index 87f8449c39..327002fe40 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_any_gemstone_lamp.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_any_gemstone_lamp.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:spectrum" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_citrine_lamps.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_citrine_lamps.json index 2b6fa0a7a6..a515554ac5 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_citrine_lamps.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_citrine_lamps.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_citrine_shard" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_moonstone_lamps.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_moonstone_lamps.json index d2b7bf3bff..dea2f9a4eb 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_moonstone_lamps.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_moonstone_lamps.json @@ -2,11 +2,13 @@ "criteria": { "collected_gemstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_onyx_lamps.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_onyx_lamps.json index acc9f7d850..636a0004d0 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_onyx_lamps.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_onyx_lamps.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:create_onyx_shard" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_topaz_lamps.json b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_topaz_lamps.json index ffd1d3a50b..6264da6085 100644 --- a/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_topaz_lamps.json +++ b/src/main/resources/data/spectrum/advancements/progression/gemstone_lamps/unlock_topaz_lamps.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_topaz_shard" } }, - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_ferocious_glass_crest_bident.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_ferocious_glass_crest_bident.json new file mode 100644 index 0000000000..a8495935a2 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_ferocious_glass_crest_bident.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "unlocked_malachite_tools": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/malachite/unlock_glass_crest_tools" + } + }, + "collected_mermaids_gems": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:collect_mermaids_gem" + } + }, + "collected_bismuth_crystal": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_fractal_glass_crest_bident.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_fractal_glass_crest_bident.json new file mode 100644 index 0000000000..b0ce24fd97 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_fractal_glass_crest_bident.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "unlocked_malachite_tools": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/malachite/unlock_glass_crest_tools" + } + }, + "collected_echo_shard": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_vanilla/collect_echo_shard" + } + }, + "collected_bismuth_crystal": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_crossbow.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_crossbow.json new file mode 100644 index 0000000000..89251eb519 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_crossbow.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "unlocked_malachite_tools": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/malachite/unlock_glass_crest_tools" + } + }, + "broken_budding_block_with_resonance_tool": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/break_budding_block_with_resonance_tool" + } + }, + "collected_bismuth_crystal": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_tools.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_tools.json new file mode 100644 index 0000000000..e4ff259a5e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_tools.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "unlocked_malachite_tools": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/malachite/unlock_malachite_tools" + } + }, + "collected_moonstone_core": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_core" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_ultra_greatsword.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_ultra_greatsword.json new file mode 100644 index 0000000000..cfd87f3c1e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_ultra_greatsword.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "unlocked_malachite_tools": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/malachite/unlock_glass_crest_tools" + } + }, + "collected_nether_star": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_vanilla/collect_nether_star" + } + }, + "collected_bismuth_crystal": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_workstaff.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_workstaff.json new file mode 100644 index 0000000000..c39ab2f1a3 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_glass_crest_workstaff.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "unlocked_malachite_tools": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/malachite/unlock_glass_crest_tools" + } + }, + "broken_budding_block_with_resonance_tool": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/break_budding_block_with_resonance_tool" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_malachite_tools.json b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_malachite_tools.json new file mode 100644 index 0000000000..c42c99065e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/malachite/unlock_malachite_tools.json @@ -0,0 +1,10 @@ +{ + "criteria": { + "collected_malachite": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_malachite" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/pastel_network/unlock_basic_nodes.json b/src/main/resources/data/spectrum/advancements/progression/pastel_network/unlock_basic_nodes.json deleted file mode 100644 index 2cdcb26cd8..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/pastel_network/unlock_basic_nodes.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "criteria": { - "collected_azurite": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:__midgame/collect_azurite" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/pastel_network/unlock_interaction_node.json b/src/main/resources/data/spectrum/advancements/progression/pastel_network/unlock_interaction_node.json deleted file mode 100644 index 90ace90b42..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/pastel_network/unlock_interaction_node.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_azurite": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:__midgame/collect_azurite" } - }, - "collected_moonstone": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:__midgame/collect_moonstone_shard" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/potions/unlock_darkness_potion.json b/src/main/resources/data/spectrum/advancements/progression/potions/unlock_darkness_potion.json new file mode 100644 index 0000000000..da58c93b87 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/potions/unlock_darkness_potion.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "crafted_potion_in_potion_brewery": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/brew_potion_in_potion_workshop" + } + }, + "collected_echo_shard": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_vanilla/collect_echo_shard" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/potions/unlock_levitation_potion.json b/src/main/resources/data/spectrum/advancements/progression/potions/unlock_levitation_potion.json index b356a0935b..c226a5878c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/potions/unlock_levitation_potion.json +++ b/src/main/resources/data/spectrum/advancements/progression/potions/unlock_levitation_potion.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/brew_potion_in_potion_workshop" } }, - "collected_paletur": { + "collected_paltaeria": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/potions/unlock_resistance_potion.json b/src/main/resources/data/spectrum/advancements/progression/potions/unlock_resistance_potion.json index 5c8a6b896d..d58fbae479 100644 --- a/src/main/resources/data/spectrum/advancements/progression/potions/unlock_resistance_potion.json +++ b/src/main/resources/data/spectrum/advancements/progression/potions/unlock_resistance_potion.json @@ -6,7 +6,9 @@ }, "collected_moonstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_any_preenchanted_tool.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_any_preenchanted_tool.json index a316392759..36c239df70 100644 --- a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_any_preenchanted_tool.json +++ b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_any_preenchanted_tool.json @@ -1,23 +1,23 @@ { "criteria": { - "unlocked_fortune_pickaxe": { + "unlocked_lucky_pickaxe": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:progression/tools/unlock_fortune_pickaxe" } + "conditions": { "advancement_identifier": "spectrum:progression/tools/unlock_lucky_pickaxe" } }, - "unlocked_looting_falchion": { + "unlocked_razor_falchion": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:progression/tools/unlock_looting_falchion" } + "conditions": { "advancement_identifier": "spectrum:progression/tools/unlock_razor_falchion" } }, - "unlocked_silker_pickaxe": { + "unlocked_tender_pickaxe": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:progression/tools/unlock_silker_pickaxe" } + "conditions": { "advancement_identifier": "spectrum:progression/tools/unlock_tender_pickaxe" } } }, "requirements": [ [ - "unlocked_fortune_pickaxe", - "unlocked_looting_falchion", - "unlocked_silker_pickaxe" + "unlocked_lucky_pickaxe", + "unlocked_razor_falchion", + "unlocked_tender_pickaxe" ] ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_fortune_pickaxe.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_fortune_pickaxe.json deleted file mode 100644 index f332c3adec..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_fortune_pickaxe.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "criteria": { - "crafted_using_pedestal": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:craft_using_pedestal" } - }, - "collected_gemstone_shard": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_citrine_shard" } - }, - "collected_sparklestone_gem": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_lucky_pickaxe.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_lucky_pickaxe.json new file mode 100644 index 0000000000..b36b12639a --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_lucky_pickaxe.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "crafted_using_pedestal": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:craft_using_pedestal" } + }, + "collected_gemstone_shard": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_citrine_shard" } + }, + "collected_shimmerstone_gem": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_voiding_pickaxe.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_oblivion_pickaxe.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/progression/tools/unlock_voiding_pickaxe.json rename to src/main/resources/data/spectrum/advancements/progression/tools/unlock_oblivion_pickaxe.json diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_looting_falchion.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_razor_falchion.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/progression/tools/unlock_looting_falchion.json rename to src/main/resources/data/spectrum/advancements/progression/tools/unlock_razor_falchion.json diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_resonant_pickaxe.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_resonant_pickaxe.json index 6fbc0154fc..12f2541915 100644 --- a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_resonant_pickaxe.json +++ b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_resonant_pickaxe.json @@ -4,9 +4,11 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } }, - "collected_paletur": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "collected_paltaeria_gem": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_paltaeria_gem" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/tools/unlock_silker_pickaxe.json b/src/main/resources/data/spectrum/advancements/progression/tools/unlock_tender_pickaxe.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/progression/tools/unlock_silker_pickaxe.json rename to src/main/resources/data/spectrum/advancements/progression/tools/unlock_tender_pickaxe.json diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_any_base_trinket.json b/src/main/resources/data/spectrum/advancements/progression/unlock_any_base_trinket.json index 96627e02f4..31be6169db 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_any_base_trinket.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_any_base_trinket.json @@ -15,6 +15,10 @@ "unlocked_fanciful_pendant": { "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:progression/unlock_fanciful_pendant" } + }, + "unlocked_fanciful_bismuth_ring": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:progression/unlock_fanciful_bismuth_ring" } } }, "requirements": [ @@ -22,7 +26,8 @@ "unlocked_fanciful_stone_ring", "unlocked_fanciful_circlet", "unlocked_fanciful_belt", - "unlocked_fanciful_pendant" + "unlocked_fanciful_pendant", + "unlocked_fanciful_bismuth_ring" ] ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ashen_circlet.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ashen_circlet.json index c6f4970bdb..d3235ff4d9 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_ashen_circlet.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_ashen_circlet.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_scarlet_gem": { + "collected_stratine_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_scarlet_gem" } + "conditions": { "advancement_identifier": "spectrum:hidden/collect_stratine_gem" } }, "collected_neolith": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_bag_of_holding.json b/src/main/resources/data/spectrum/advancements/progression/unlock_bag_of_holding.json new file mode 100644 index 0000000000..37c862f57b --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_bag_of_holding.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "crafted_using_pedestal": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:craft_using_pedestal" } + }, + "collected_ender_eye": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:hidden/collect_vanilla/collect_ender_eye" } + }, + "gotten_radiating_ender": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_black_hole_chest.json b/src/main/resources/data/spectrum/advancements/progression/unlock_black_hole_chest.json new file mode 100644 index 0000000000..4455e6c7dc --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_black_hole_chest.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_stratine_gem": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_stratine_gem" + } + }, + "reached_midgame": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_blackslag_shimmerstone_light.json b/src/main/resources/data/spectrum/advancements/progression/unlock_blackslag_shimmerstone_light.json new file mode 100644 index 0000000000..9d7caaf6ac --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_blackslag_shimmerstone_light.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "unlocked_shimmerstone_lights": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_shimmerstone_lights" + } + }, + "collected_blackslag": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_blackslag" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_fading.json b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_fading.json index be069b31a9..ce3f521f21 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_fading.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_fading.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_sparklestone_gem": { + "collected_shimmerstone_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_failing.json b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_failing.json index 0203f7645e..f23dfd3ac4 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_failing.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_failing.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } }, - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } }, "collected_quitoxic_reeds": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_forfeiture.json b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_forfeiture.json new file mode 100644 index 0000000000..f5d04303c4 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_forfeiture.json @@ -0,0 +1,10 @@ +{ + "criteria": { + "todo": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:__lategame/spectrum_lategame" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_terror.json b/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_terror.json deleted file mode 100644 index 790125f255..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_bottle_of_terror.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "criteria": { - "finished_progression_without_tips": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/finish_progression_without_tips" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_void_bundle.json b/src/main/resources/data/spectrum/advancements/progression/unlock_bottomless_bundle.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/progression/unlock_void_bundle.json rename to src/main/resources/data/spectrum/advancements/progression/unlock_bottomless_bundle.json diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_celestial_pocketwatch.json b/src/main/resources/data/spectrum/advancements/progression/unlock_celestial_pocketwatch.json index f064d4a516..64ccb2b975 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_celestial_pocketwatch.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_celestial_pocketwatch.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_paletur_gem": { + "collected_paltaeria_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_paletur_gem" } + "conditions": { "advancement_identifier": "spectrum:hidden/collect_paltaeria_gem" } } } } diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_cinderhearth.json b/src/main/resources/data/spectrum/advancements/progression/unlock_cinderhearth.json index 3418911163..f42a0000e0 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_cinderhearth.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_cinderhearth.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/fill_ink_container" } }, - "collected_scarlet_gem": { + "collected_stratine_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_scarlet_gem" } + "conditions": { "advancement_identifier": "spectrum:hidden/collect_stratine_gem" } } } } diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_circlet_of_arrogance.json b/src/main/resources/data/spectrum/advancements/progression/unlock_circlet_of_arrogance.json new file mode 100644 index 0000000000..00a7a65d53 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_circlet_of_arrogance.json @@ -0,0 +1,28 @@ +{ + "criteria": { + "collected_blood_orchid_petal": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_blood_orchid_petal" + } + }, + "had_half_a_heart_with_divinity": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/have_half_a_heart_with_divinity" + } + }, + "collected_moonstone_shard": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } + }, + "grew_malachite_in_crystallarieum": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/grow_malachite_in_crystallarieum" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_constructors_staff.json b/src/main/resources/data/spectrum/advancements/progression/unlock_constructors_staff.json new file mode 100644 index 0000000000..96d0c0de38 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_constructors_staff.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "collected_stratine": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } + }, + "collected_orange_pigment": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_orange_pigment" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_crystal_apothecary.json b/src/main/resources/data/spectrum/advancements/progression/unlock_crystal_apothecary.json index 74c0bbf18b..88d0d083bc 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_crystal_apothecary.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_crystal_apothecary.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_crystallarieum.json b/src/main/resources/data/spectrum/advancements/progression/unlock_crystallarieum.json index 549ce50a2b..9d33e34dc7 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_crystallarieum.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_crystallarieum.json @@ -2,11 +2,13 @@ "criteria": { "collected_bismuth_crystal": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_bismuth_crystal" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } }, - "collected_paletur": { + "collected_paltaeria": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_dragonbone_broth.json b/src/main/resources/data/spectrum/advancements/progression/unlock_dragonbone_broth.json new file mode 100644 index 0000000000..883f0ada41 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_dragonbone_broth.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_prickly_bayleaf": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_prickly_bayleaf" + } + }, + "collected_dragonbone": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_titration_barrel" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_dreamflayer.json b/src/main/resources/data/spectrum/advancements/progression/unlock_dreamflayer.json index b0a00c7d1b..7bb118f48b 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_dreamflayer.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_dreamflayer.json @@ -2,7 +2,9 @@ "criteria": { "collected_bismuth_crystal": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_bismuth_crystal" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth_crystal" + } }, "harvested_moonstruck_nectar": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_enchanter.json b/src/main/resources/data/spectrum/advancements/progression/unlock_enchanter.json index f1733d3d72..10ddb58d06 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_enchanter.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_enchanter.json @@ -8,9 +8,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/enter_liquid_crystal" } }, - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_end_portal_cracker.json b/src/main/resources/data/spectrum/advancements/progression/unlock_end_portal_cracker.json deleted file mode 100644 index be35fb1b37..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_end_portal_cracker.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "criteria": { - "found_end_city": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "minecraft:end/find_end_city" } - }, - "collected_shooting_star": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_shooting_star" } - }, - "built_complex_pedestal_structure": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" } - }, - "collected_quitoxic_reeds": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_quitoxic_reeds" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_bag.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_bag.json deleted file mode 100644 index e93f43061f..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_bag.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "criteria": { - "crafted_using_pedestal": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:craft_using_pedestal" } - }, - "collected_ender_eye": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_vanilla/collect_ender_eye" } - }, - "gotten_ender_treasure": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_blocks.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_blocks.json index 1121129a99..c8547a2f45 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_blocks.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_blocks.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:build_basic_pedestal_structure" } }, - "gotten_ender_treasure": { + "gotten_radiating_ender": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_glass.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_glass.json index 075a1e0cae..78cdbfbcc4 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_glass.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_glass.json @@ -1,8 +1,8 @@ { "criteria": { - "gotten_ender_treasure": { + "gotten_radiating_ender": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } }, "amethyst_shard": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_splice.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_splice.json index 1a8d7933f7..bd5fa00d02 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_ender_splice.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_ender_splice.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_ender_treasure": { + "collected_radiating_ender": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } }, "collected_neolith": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ethereal_platform.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ethereal_platform.json index 85d2c0ccb0..9c861cac9c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_ethereal_platform.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_ethereal_platform.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_sparklestone": { + "collected_shimmerstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_stardust": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_exchange_staff.json b/src/main/resources/data/spectrum/advancements/progression/unlock_exchange_staff.json deleted file mode 100644 index 28e7087158..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_exchange_staff.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "criteria": { - "collected_lightning_stone": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } - }, - "collected_light_gray_pigment": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_light_gray_pigment" } - }, - "collected_moonstone_shard": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } - } - } -} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_exchanging_staff.json b/src/main/resources/data/spectrum/advancements/progression/unlock_exchanging_staff.json new file mode 100644 index 0000000000..8e69a473bf --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_exchanging_staff.json @@ -0,0 +1,18 @@ +{ + "criteria": { + "collected_storm_stone": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } + }, + "collected_light_gray_pigment": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_light_gray_pigment" } + }, + "collected_moonstone_shard": { + "trigger":"revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_bismuth_ring.json b/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_bismuth_ring.json new file mode 100644 index 0000000000..ae8c407ac3 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_bismuth_ring.json @@ -0,0 +1,18 @@ +{ + "criteria": { + "unlocked_ring_of_pursuit": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:progression/unlock_ring_of_pursuit" } + }, + "unlocked_neat_ring": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:progression/unlock_neat_ring" } + } + }, + "requirements": [ + [ + "unlocked_ring_of_pursuit", + "unlocked_neat_ring" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_circlet.json b/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_circlet.json index 4ece104802..b2d5c734c6 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_circlet.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_fanciful_circlet.json @@ -4,25 +4,38 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:progression/unlock_ashen_circlet" } }, - "unlocked_tidal_circlet": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:progression/unlock_tidal_circlet" } + "unlocked_weeping_circlet": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_weeping_circlet" + } }, "unlocked_puff_circlet": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:progression/unlock_puff_circlet" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_puff_circlet" + } }, "unlocked_whispy_circlet": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:progression/unlock_whispy_circlet" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_whispy_circlet" + } + }, + "unlocked_circlet_of_arrogance": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_circlet_of_arrogance" + } } }, "requirements": [ [ "unlocked_ashen_circlet", - "unlocked_tidal_circlet", + "unlocked_weeping_circlet", "unlocked_puff_circlet", - "unlocked_whispy_circlet" + "unlocked_whispy_circlet", + "unlocked_circlet_of_arrogance" ] ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_gilded_book.json b/src/main/resources/data/spectrum/advancements/progression/unlock_gilded_book.json index 43dcf678d7..69e487f5bb 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_gilded_book.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_gilded_book.json @@ -13,7 +13,7 @@ "entity": "this", "predicate": { "location": { - "feature": "spectrum:ancient_ruins" + "structure": "spectrum:ancient_ruins" } } } diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_gleaming_pin.json b/src/main/resources/data/spectrum/advancements/progression/unlock_gleaming_pin.json index 3a23f51829..9defb53043 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_gleaming_pin.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_gleaming_pin.json @@ -6,7 +6,7 @@ }, "collected_star_fragment": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_shooting_star" } + "conditions": { "advancement_identifier": "spectrum:collect_star_fragment" } }, "collected_stardust": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_glow_vision_helmet.json b/src/main/resources/data/spectrum/advancements/progression/unlock_glow_vision_goggles.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/progression/unlock_glow_vision_helmet.json rename to src/main/resources/data/spectrum/advancements/progression/unlock_glow_vision_goggles.json diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_greater_potion_pendant.json b/src/main/resources/data/spectrum/advancements/progression/unlock_greater_potion_pendant.json index 5a080ad550..7a71e3cdbe 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_greater_potion_pendant.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_greater_potion_pendant.json @@ -1,12 +1,28 @@ { "criteria": { - "brewed_potion_in_potion_workshop": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/brew_potion_in_potion_workshop" } + "brewed_powerful_potion_in_potion_workshop": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/brew_powerful_potion_in_potion_workshop" + } }, - "collected_paletur_gem": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_paletur_gem" } + "collected_paltaeria_gem": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_paltaeria_gem" + } + }, + "collected_moonstone": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } + }, + "collected_white_pigment": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_pigment/collect_white_pigment" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_item_roundel.json b/src/main/resources/data/spectrum/advancements/progression/unlock_item_roundel.json index d2cf7d282d..034275d294 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_item_roundel.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_item_roundel.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_sparklestone": { + "collected_shimmerstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "entered_color_mixing_puzzle_structure": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_jeopardant.json b/src/main/resources/data/spectrum/advancements/progression/unlock_jeopardant.json index 660f2af20c..3718881544 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_jeopardant.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_jeopardant.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_scarlet_gem": { + "collected_stratine_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_scarlet_gem" } + "conditions": { "advancement_identifier": "spectrum:hidden/collect_stratine_gem" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_lesser_potion_pendant.json b/src/main/resources/data/spectrum/advancements/progression/unlock_lesser_potion_pendant.json index b9073d0c63..1dc1d80355 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_lesser_potion_pendant.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_lesser_potion_pendant.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/brew_powerful_potion_in_potion_workshop" } }, - "collected_scarlet_gem": { + "collected_stratine_gem": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_scarlet_gem" } + "conditions": { "advancement_identifier": "spectrum:hidden/collect_stratine_gem" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_light_staff.json b/src/main/resources/data/spectrum/advancements/progression/unlock_light_staff.json deleted file mode 100644 index 85d1183816..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_light_staff.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_sparklestone": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } - }, - "collected_blue_pigment": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_blue_pigment" } - } - } -} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_moonshine.json b/src/main/resources/data/spectrum/advancements/progression/unlock_moonshine.json index 82d7577ddb..ac2dfddd1f 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_moonshine.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_moonshine.json @@ -12,9 +12,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:hidden/collect_stardust" } }, - "collected_aerialite": { + "collected_paltaeria": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:lategame/collect_paletur" } + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_moonstone_player_only_glass.json b/src/main/resources/data/spectrum/advancements/progression/unlock_moonstone_player_only_glass.json deleted file mode 100644 index c36ccdd535..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_moonstone_player_only_glass.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "built_advanced_pedestal_structure": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } - }, - "collected_moonstone": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_moonstone_semi_permeable_glass.json b/src/main/resources/data/spectrum/advancements/progression/unlock_moonstone_semi_permeable_glass.json new file mode 100644 index 0000000000..096845b04d --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_moonstone_semi_permeable_glass.json @@ -0,0 +1,14 @@ +{ + "criteria": { + "built_advanced_pedestal_structure": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } + }, + "collected_moonstone": { + "trigger":"revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_myceylon_liquor.json b/src/main/resources/data/spectrum/advancements/progression/unlock_myceylon_liquor.json new file mode 100644 index 0000000000..ffad7cba5d --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_myceylon_liquor.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "unlocked_titration_barrel": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_titration_barrel" + } + }, + "collected_myceylon": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_myceylon" + } + }, + "confirmed_drinking_age": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:milestones/confirmed_drinking_age" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_myceylon_pastries.json b/src/main/resources/data/spectrum/advancements/progression/unlock_myceylon_pastries.json new file mode 100644 index 0000000000..60af725f87 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_myceylon_pastries.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_myceylon": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_myceylon" + } + }, + "collected_amaranth": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:collect_amaranth" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_neat_ring.json b/src/main/resources/data/spectrum/advancements/progression/unlock_neat_ring.json index b6720c08c8..d98f7c224b 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_neat_ring.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_neat_ring.json @@ -1,12 +1,20 @@ { "criteria": { - "unlocked_complex_crafting": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "built_complex_pedestal_structure": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } }, "collected_resonant_lily": { "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:midgame/collect_resonant_lily" } + }, + "collected_bismuth": { + "trigger":"revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_nightfalls_blade.json b/src/main/resources/data/spectrum/advancements/progression/unlock_nightfalls_blade.json new file mode 100644 index 0000000000..627582a7e4 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_nightfalls_blade.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_midnight_aberration": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/create_refined_azurite" } + }, + "created_midnight_aberration": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/create_midnight_aberration" } + }, + "collected_quitoxic_reeds": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:collect_quitoxic_reeds" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_particle_spawner.json b/src/main/resources/data/spectrum/advancements/progression/unlock_particle_spawner.json index 23683a98aa..fd33a2e30c 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_particle_spawner.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_particle_spawner.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:collect_pigment" } }, - "collected_shooting_star": { + "collected_star_fragment": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_shooting_star" } + "conditions": { "advancement_identifier": "spectrum:collect_star_fragment" } }, "collected_all_basic_pigments": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_pastel_network.json b/src/main/resources/data/spectrum/advancements/progression/unlock_pastel_network.json new file mode 100644 index 0000000000..29f9112dd5 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_pastel_network.json @@ -0,0 +1,10 @@ +{ + "criteria": { + "collected_azurite": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_azurite" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_perturbed_eye.json b/src/main/resources/data/spectrum/advancements/progression/unlock_perturbed_eye.json new file mode 100644 index 0000000000..324942af2e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_perturbed_eye.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_paltaeria": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_paltaeria" + } + }, + "collected_radiating_ender": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:get_radiating_ender" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_placement_staff.json b/src/main/resources/data/spectrum/advancements/progression/unlock_placement_staff.json deleted file mode 100644 index eebc11bb16..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_placement_staff.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_scarlet": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } - }, - "collected_orange_pigment": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_orange_pigment" } - } - } -} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_potion_workshop.json b/src/main/resources/data/spectrum/advancements/progression/unlock_potion_workshop.json index 55a11b2444..02aa31ce5f 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_potion_workshop.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_potion_workshop.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:collect_mermaids_gem" } }, - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } }, "collected_quitoxic_reeds": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_present.json b/src/main/resources/data/spectrum/advancements/progression/unlock_present.json index e7f9fbb92b..b898ca90a6 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_present.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_present.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_sparklestone": { + "collected_shimmerstone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } }, "collected_topaz": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_puff_circlet.json b/src/main/resources/data/spectrum/advancements/progression/unlock_puff_circlet.json index a45dfb98ba..2c3486dd69 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_puff_circlet.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_puff_circlet.json @@ -1,12 +1,22 @@ { "criteria": { - "collected_paletur_gem": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_paletur_gem" } + "collected_paltaeria_gem": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_paltaeria_gem" + } + }, + "collected_white_pigment": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_pigment/collect_white_pigment" + } }, "created_refined_azurite": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/create_refined_azurite" } + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/create_refined_azurite" + } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_pin.json b/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_pin.json index be6783a7e1..32a66beb63 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_pin.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_pin.json @@ -6,7 +6,7 @@ }, "collected_star_fragment": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_shooting_star" } + "conditions": { "advancement_identifier": "spectrum:collect_star_fragment" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_staff.json b/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_staff.json new file mode 100644 index 0000000000..5c83b35f30 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_radiance_staff.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "collected_shimmerstone": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } + }, + "collected_blue_pigment": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:hidden/collect_pigment/collect_blue_pigment" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_resonant_pickaxe.json b/src/main/resources/data/spectrum/advancements/progression/unlock_resonant_pickaxe.json new file mode 100644 index 0000000000..37d5f3ada4 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_resonant_pickaxe.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "built_complex_pedestal_structure": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } + }, + "created_hummingstone_hymn": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/create_hummingstone_hymn" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_restocking_chest.json b/src/main/resources/data/spectrum/advancements/progression/unlock_restocking_chest.json index 37a647a361..eac97b8088 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_restocking_chest.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_restocking_chest.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_scarlet": { + "collected_stratine": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_scarlet" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_stratine" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_ring_of_pursuit.json b/src/main/resources/data/spectrum/advancements/progression/unlock_ring_of_pursuit.json new file mode 100644 index 0000000000..d817c1c472 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_ring_of_pursuit.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "built_complex_pedestal_structure": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/build_complex_pedestal_structure" + } + }, + "collected_magenta_pigment": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:hidden/collect_pigment/collect_magenta_pigment" + } + }, + "collected_bismuth": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_bismuth" + } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_shimmerstone_lights.json b/src/main/resources/data/spectrum/advancements/progression/unlock_shimmerstone_lights.json new file mode 100644 index 0000000000..dd73f3b968 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_shimmerstone_lights.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "collected_shimmerstone": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:collect_shimmerstone" } + }, + "collected_citrine_shard": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_citrine_shard" } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_sparklestone_lights.json b/src/main/resources/data/spectrum/advancements/progression/unlock_sparklestone_lights.json deleted file mode 100644 index 060cd111b5..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_sparklestone_lights.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_sparklestone": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_sparklestone" } - }, - "collected_citrine_shard": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_shards/collect_citrine_shard" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_spiked_mullet_wine.json b/src/main/resources/data/spectrum/advancements/progression/unlock_spiked_mullet_wine.json new file mode 100644 index 0000000000..8dbca021ea --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_spiked_mullet_wine.json @@ -0,0 +1,28 @@ +{ + "criteria": { + "unlocked_titration_barrel": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_titration_barrel" + } + }, + "collected_myceylon": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_myceylon" + } + }, + "collected_prickly_bayleaf": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_prickly_bayleaf" + } + }, + "confirmed_drinking_age": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:milestones/confirmed_drinking_age" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_spirit_instiller.json b/src/main/resources/data/spectrum/advancements/progression/unlock_spirit_instiller.json index 5e19d50acb..3356b90129 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_spirit_instiller.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_spirit_instiller.json @@ -1,8 +1,10 @@ { "criteria": { - "created_refined_azurite": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/create_refined_azurite" } + "collected_azurite": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:midgame/collect_azurite" + } }, "collected_midnight_chip": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_star_candy.json b/src/main/resources/data/spectrum/advancements/progression/unlock_star_candy.json index ddcb4a2858..b7c85001e3 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_star_candy.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_star_candy.json @@ -1,8 +1,8 @@ { "criteria": { - "has_amaranth_grains": { + "has_amaranth_bushel": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:collect_amaranth" } + "conditions": { "advancement_identifier": "spectrum:collect_amaranth_bushel" } }, "has_stardust": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_sucking_chest.json b/src/main/resources/data/spectrum/advancements/progression/unlock_sucking_chest.json deleted file mode 100644 index 6e158a382f..0000000000 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_sucking_chest.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "criteria": { - "collected_scarlet_gem": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:hidden/collect_scarlet_gem" } - }, - "reached_midgame": { - "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } - } - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_take_off_belt.json b/src/main/resources/data/spectrum/advancements/progression/unlock_take_off_belt.json index b901f6cdba..a3718c4217 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_take_off_belt.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_take_off_belt.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } }, "collected_rabbits_foot": { "trigger": "minecraft:inventory_changed", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_triple_meat_pot_stew.json b/src/main/resources/data/spectrum/advancements/progression/unlock_triple_meat_pot_stew.json new file mode 100644 index 0000000000..5e4318700e --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_triple_meat_pot_stew.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "collected_prickly_bayleaf": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_prickly_bayleaf" + } + }, + "unlocked_titration_barrel": { + "trigger": "revelationary:advancement_gotten", + "conditions": { + "advancement_identifier": "spectrum:progression/unlock_titration_barrel" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_universe_spyhole.json b/src/main/resources/data/spectrum/advancements/progression/unlock_universe_spyhole.json index 2750a406a9..ec06c3ed1a 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_universe_spyhole.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_universe_spyhole.json @@ -1,8 +1,8 @@ { "criteria": { - "gotten_ender_treasure": { + "gotten_radiating_ender": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:get_ender_treasure" } + "conditions": { "advancement_identifier": "spectrum:get_radiating_ender" } }, "collected_midnight_chip": { "trigger":"revelationary:advancement_gotten", diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_efficiency.json b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_efficiency.json new file mode 100644 index 0000000000..206e5cbeea --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_efficiency.json @@ -0,0 +1,8 @@ +{ + "criteria": { + "created_refined_azurite": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/create_refined_azurite" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience.json b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience.json index c9d822865f..2500d72193 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience.json @@ -1,8 +1,8 @@ { "criteria": { - "collected_lightning_stone": { + "collected_storm_stone": { "trigger": "revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience2.json b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience2.json index 08622892a8..b3ab691dbe 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience2.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_experience2.json @@ -10,7 +10,9 @@ }, "collected_moonstone_shard": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_moonstone_shard" } + "conditions": { + "advancement_identifier": "spectrum:lategame/collect_moonstone_shard" + } } } } diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed.json b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed.json new file mode 100644 index 0000000000..dd597a5f60 --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed.json @@ -0,0 +1,8 @@ +{ + "criteria": { + "built_advanced_pedestal_structure": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:midgame/build_advanced_pedestal_structure" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed2.json b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed2.json index d3d358c4e8..aa8b1aee87 100644 --- a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed2.json +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_speed2.json @@ -4,9 +4,9 @@ "trigger": "spectrum:crafted_with_pedestal", "conditions": { "items": [{ "items": [ "spectrum:upgrade_speed" ]}] } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_yield.json b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_yield.json new file mode 100644 index 0000000000..89ee8dd11f --- /dev/null +++ b/src/main/resources/data/spectrum/advancements/progression/unlock_upgrade_yield.json @@ -0,0 +1,8 @@ +{ + "criteria": { + "collected_paltaeria": { + "trigger":"revelationary:advancement_gotten", + "conditions": { "advancement_identifier": "spectrum:lategame/collect_paltaeria" } + } + } +} diff --git a/src/main/resources/data/spectrum/advancements/progression/unlock_tidal_circlet.json b/src/main/resources/data/spectrum/advancements/progression/unlock_weeping_circlet.json similarity index 100% rename from src/main/resources/data/spectrum/advancements/progression/unlock_tidal_circlet.json rename to src/main/resources/data/spectrum/advancements/progression/unlock_weeping_circlet.json diff --git a/src/main/resources/data/spectrum/advancements/progression/weather/weather_thunder.json b/src/main/resources/data/spectrum/advancements/progression/weather/weather_thunder.json index 2d0b34f671..edfcfe9550 100644 --- a/src/main/resources/data/spectrum/advancements/progression/weather/weather_thunder.json +++ b/src/main/resources/data/spectrum/advancements/progression/weather/weather_thunder.json @@ -4,9 +4,9 @@ "trigger":"revelationary:advancement_gotten", "conditions": { "advancement_identifier": "spectrum:build_fusion_shrine" } }, - "collected_lightning_stone": { + "collected_storm_stone": { "trigger":"revelationary:advancement_gotten", - "conditions": { "advancement_identifier": "spectrum:midgame/collect_lightning_stone" } + "conditions": { "advancement_identifier": "spectrum:midgame/collect_storm_stone" } } } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/advancements/use_oblivion_pickaxe_with_efficiency.json b/src/main/resources/data/spectrum/advancements/use_oblivion_pickaxe_with_efficiency.json index 657cce09ca..8d0a45d5df 100644 --- a/src/main/resources/data/spectrum/advancements/use_oblivion_pickaxe_with_efficiency.json +++ b/src/main/resources/data/spectrum/advancements/use_oblivion_pickaxe_with_efficiency.json @@ -2,7 +2,7 @@ "parent": "spectrum:collect_quitoxic_reeds", "display": { "icon": { - "item": "spectrum:voiding_pickaxe", + "item": "spectrum:oblivion_pickaxe", "nbt": "{Enchantments: [{id: \"minecraft:efficiency\", lvl: 1s}]}" }, "title": { @@ -13,12 +13,18 @@ } }, "criteria": { - "requirement": { + "used_oblivion_pickaxe_with_efficiency": { "trigger": "minecraft:item_durability_changed", "conditions": { "item": { - "items": [ "spectrum:voiding_pickaxe" ], - "enchantments": [ { "enchantment": "minecraft:efficiency" } ] + "items": [ + "spectrum:oblivion_pickaxe" + ], + "enchantments": [ + { + "enchantment": "minecraft:efficiency" + } + ] } } }, diff --git a/src/main/resources/data/spectrum/dimension/deeper_down_dimension.json b/src/main/resources/data/spectrum/dimension/deeper_down_dimension.json index 2be9e3d3d0..ea844b9f27 100644 --- a/src/main/resources/data/spectrum/dimension/deeper_down_dimension.json +++ b/src/main/resources/data/spectrum/dimension/deeper_down_dimension.json @@ -1,25 +1,222 @@ { "type": "spectrum:deeper_down_type", "generator": { + "type": "minecraft:noise", + "settings": "spectrum:deeper_down_noise", "biome_source": { + "type": "minecraft:multi_noise", "biomes": [ { + "biome": "spectrum:deep_barrens", + "parameters": { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + -2, + -1 + ], + "offset": 0 + } + }, + { + "biome": "spectrum:deep_dripstone_caves", + "parameters": { + "temperature": [ + -1, + 0 + ], + "humidity": [ + 0, + 1 + ], + "continentalness": [ + 0.6, + 1 + ], + "erosion": [ + 0, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + -1.0, + -0.25 + ], + "offset": 0 + } + }, + { + "biome": "spectrum:dragonrot_swamp", + "parameters": { + "temperature": [ + 0, + 1 + ], + "humidity": [ + 0.5, + 1 + ], + "continentalness": [ + 0.5, + 1 + ], + "erosion": [ + -0.25, + 1 + ], + "weirdness": [ + 0, + 1 + ], + "depth": [ + 0.5, + 1.1 + ], + "offset": 0 + } + }, + { + "biome": "spectrum:forlorm_caves", "parameters": { - "erosion": 0.0, - "depth": 0.0, - "weirdness": 0.0, - "offset": 0.0, - "temperature": 0.0, - "humidity": 0.0, - "continentalness": 0.0 - }, - "biome": "spectrum:deeper_down_biome" + "temperature": [ + -0.6, + 0.8 + ], + "humidity": [ + -0.5, + 0.6 + ], + "continentalness": [ + -0.75, + 0 + ], + "erosion": [ + 0, + 1 + ], + "weirdness": [ + 0.5, + 1 + ], + "depth": [ + 0.5, + 1.1 + ], + "offset": 0 + } + }, + { + "biome": "spectrum:crystal_garden", + "parameters": { + "temperature": [ + -1, + 0 + ], + "humidity": [ + -1, + 0 + ], + "continentalness": [ + 0, + 1 + ], + "erosion": [ + -1, + 0 + ], + "weirdness": [ + -1, + -0.5 + ], + "depth": [ + 0.5, + 1.1 + ], + "offset": 0 + } + }, + { + "biome": "spectrum:razor_edge", + "parameters": { + "temperature": [ + -1, + 0 + ], + "humidity": [ + -1, + 0.2 + ], + "continentalness": [ + 0, + 1 + ], + "erosion": [ + 0, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + 0.5, + 1.1 + ], + "offset": 0 + } + }, + { + "biome": "spectrum:mushroom_forest", + "parameters": { + "temperature": [ + -0.5, + 0.5 + ], + "humidity": [ + 0, + 0.75 + ], + "continentalness": [ + -0.5, + 0.5 + ], + "erosion": [ + 0, + 1 + ], + "weirdness": [ + -1, + 0 + ], + "depth": [ + 0.5, + 1.1 + ], + "offset": 0 + } } - ], - "type": "minecraft:multi_noise" - }, - "seed": 0, - "settings": "spectrum:deeper_down_noise", - "type": "minecraft:noise" + ] + } } -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/dimension_type/deeper_down_type.json b/src/main/resources/data/spectrum/dimension_type/deeper_down_type.json index e4d59c216b..73d50a1395 100644 --- a/src/main/resources/data/spectrum/dimension_type/deeper_down_type.json +++ b/src/main/resources/data/spectrum/dimension_type/deeper_down_type.json @@ -2,7 +2,7 @@ "logical_height": 384, "infiniburn": "#minecraft:infiniburn_overworld", "effects": "spectrum:deeper_down", - "ambient_light": -0.1334, + "ambient_light": 0.0, "respawn_anchor_works": false, "has_raids": false, "min_y": -448, @@ -13,5 +13,7 @@ "bed_works": false, "has_skylight": false, "has_ceiling": true, - "ultrawarm": false + "ultrawarm": false, + "monster_spawn_block_light_limit": 0, + "monster_spawn_light_level": 0 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/entity_fishing/dragonrot.json b/src/main/resources/data/spectrum/entity_fishing/dragonrot.json new file mode 100644 index 0000000000..ddc53ff806 --- /dev/null +++ b/src/main/resources/data/spectrum/entity_fishing/dragonrot.json @@ -0,0 +1,24 @@ +{ + "fluid": { + "tag": "minecraft:water" + }, + "chance": 0.05, + "entities": [ + { + "id": "minecraft:cod", + "weight": 10 + }, + { + "id": "minecraft:salmon", + "weight": 10 + }, + { + "id": "minecraft:pufferfish", + "weight": 5 + }, + { + "id": "minecraft:squid", + "weight": 2 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_finished_progression_without_tips.json b/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_finished_progression_without_tips.json deleted file mode 100644 index 53e2d09f17..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_finished_progression_without_tips.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "advancement_reward", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:spectral_shard" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_halve_half_a_heart_with_divinity.json b/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_have_half_a_heart_with_divinity.json similarity index 100% rename from src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_halve_half_a_heart_with_divinity.json rename to src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_have_half_a_heart_with_divinity.json diff --git a/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_spectrum.json b/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_spectrum.json index e8f26fd664..0a3849d38d 100644 --- a/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_spectrum.json +++ b/src/main/resources/data/spectrum/loot_tables/advancement_reward/adv_spectrum.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:manual" + "name": "spectrum:guidebook" } ] } diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/allay_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/allay_head.json new file mode 100644 index 0000000000..9be222e978 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/allay_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:allay_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/aloe.json b/src/main/resources/data/spectrum/loot_tables/blocks/aloe.json new file mode 100644 index 0000000000..2eae401541 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/aloe.json @@ -0,0 +1,66 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:aloe_leaf" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": 4, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:aloe", + "properties": { + "age": "4" + } + } + ] + }, + { + "function": "minecraft:set_count", + "count": 3, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:aloe", + "properties": { + "age": "3" + } + } + ] + }, + { + "function": "minecraft:set_count", + "count": 2, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:aloe", + "properties": { + "age": "2" + } + } + ] + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/amethyst_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/amethyst_player_only_glass.json deleted file mode 100644 index b8feba8263..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/amethyst_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:amethyst_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/amethyst_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/amethyst_semi_permeable_glass.json new file mode 100644 index 0000000000..69fbb7bb63 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/amethyst_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:amethyst_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/andesite_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/andesite_shimmerstone_light.json new file mode 100644 index 0000000000..c6fda2ebc4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/andesite_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:andesite_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/andesite_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/andesite_sparklestone_light.json deleted file mode 100644 index 318bfc9cfe..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/andesite_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:andesite_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/azurite_chiseled_basalt.json b/src/main/resources/data/spectrum/loot_tables/blocks/azurite_chiseled_basalt.json new file mode 100644 index 0000000000..bbc6eda63d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/azurite_chiseled_basalt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:azurite_chiseled_basalt" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/azurite_chiseled_calcite.json b/src/main/resources/data/spectrum/loot_tables/blocks/azurite_chiseled_calcite.json new file mode 100644 index 0000000000..8aea70923f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/azurite_chiseled_calcite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:azurite_chiseled_calcite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_shimmerstone_light.json new file mode 100644 index 0000000000..a849b5997b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:basalt_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_sparklestone_light.json deleted file mode 100644 index 0232de1c8e..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:basalt_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_slab.json new file mode 100644 index 0000000000..3a37c21df0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:basalt_tile_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:basalt_tile_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_stairs.json new file mode 100644 index 0000000000..f4ec4a0fc9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:basalt_tile_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_wall.json b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_wall.json new file mode 100644 index 0000000000..49d2cba2fc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tile_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:basalt_tile_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tiles.json new file mode 100644 index 0000000000..d45f5ac50b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/basalt_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:basalt_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_button.json new file mode 100644 index 0000000000..9b241f364c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_fence.json new file mode 100644 index 0000000000..fd5a52cc78 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_fence_gate.json new file mode 100644 index 0000000000..047f6df480 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_hole_chest.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_hole_chest.json new file mode 100644 index 0000000000..bef87124fd --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_hole_chest.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_hole_chest" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_leaves.json index 0fad6572f0..af669f29e8 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:black_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_button.json deleted file mode 100644 index d0f98a2bcb..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:black_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_fence.json deleted file mode 100644 index 92d4e0a65d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:black_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_fence_gate.json deleted file mode 100644 index e43086abcc..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:black_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_pressure_plate.json deleted file mode 100644 index dffe4caf49..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:black_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_slab.json deleted file mode 100644 index caa90aaa3b..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:black_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_stairs.json deleted file mode 100644 index 0ead8c4a48..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/black_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:black_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_pressure_plate.json new file mode 100644 index 0000000000..2687d98cfb --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_slab.json new file mode 100644 index 0000000000..d4d5b8c197 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:black_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:black_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/black_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/black_stairs.json new file mode 100644 index 0000000000..01ea71f569 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/black_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag.json index 60b74e075f..e14e70b3c0 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag.json @@ -2,19 +2,43 @@ "type": "minecraft:block", "pools": [ { - "rolls": 1.0, "bonus_rolls": 0.0, "entries": [ { - "type": "minecraft:item", - "name": "spectrum:blackslag" + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "spectrum:blackslag" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "name": "spectrum:cobbled_blackslag" + } + ] } ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] + "rolls": 1 } ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_amethyst_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_amethyst_ore.json new file mode 100644 index 0000000000..0260b2528e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_amethyst_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_amethyst_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:amethyst_shard", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_azurite_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_azurite_ore.json new file mode 100644 index 0000000000..eaf70c159a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_azurite_ore.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_azurite_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:raw_azurite", + "functions": [ + { + "function": "minecraft:explosion_decay" + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "parameters": { + "extra": 0, + "probability": 0.2 + } + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "spectrum:resonance", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 1.0 + } + } + ] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_slab.json new file mode 100644 index 0000000000..370b136d9f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:blackslag_brick_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:blackslag_brick_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_stairs.json new file mode 100644 index 0000000000..fb8d4f7bc7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_wall.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_wall.json new file mode 100644 index 0000000000..406c7b20a0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_brick_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_bricks.json new file mode 100644 index 0000000000..411b81ac11 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_citrine_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_citrine_ore.json new file mode 100644 index 0000000000..57b04927cc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_citrine_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_citrine_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:citrine_shard", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_copper_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_copper_ore.json new file mode 100644 index 0000000000..1679312cc4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_copper_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "spectrum:blackslag_copper_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 5.0, + "min": 2.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:raw_copper" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_moonstone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_moonstone_ore.json new file mode 100644 index 0000000000..c62712fa1f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_moonstone_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_moonstone_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:moonstone_shard", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_onyx_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_onyx_ore.json new file mode 100644 index 0000000000..b5a5da6af9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_onyx_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_onyx_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:onyx_shard", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_shimmerstone_light.json new file mode 100644 index 0000000000..6b937bed2a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_shimmerstone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_shimmerstone_ore.json new file mode 100644 index 0000000000..d3bbee8a74 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_shimmerstone_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "spectrum:blackslag_shimmerstone_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:shimmerstone_gem" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_sparklestone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_sparklestone_ore.json deleted file mode 100644 index c7155f22f3..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_sparklestone_ore.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ], - "name": "spectrum:blackslag_sparklestone_ore" - }, - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 3.0 - }, - "add": false - }, - { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "spectrum:sparklestone_gem" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_slab.json new file mode 100644 index 0000000000..6380ce3541 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:blackslag_tile_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:blackslag_tile_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_stairs.json new file mode 100644 index 0000000000..01ec0fd068 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_tile_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_wall.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_wall.json new file mode 100644 index 0000000000..db31227170 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tile_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_tile_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tiles.json new file mode 100644 index 0000000000..f4fe945a59 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_topaz_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_topaz_ore.json new file mode 100644 index 0000000000..f0d4f00c1a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blackslag_topaz_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag_topaz_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:topaz_shard", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2.0, + "max": 4.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_button.json new file mode 100644 index 0000000000..866fcbb6cd --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blue_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_fence.json new file mode 100644 index 0000000000..40040b59fa --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blue_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_fence_gate.json new file mode 100644 index 0000000000..53347b19fe --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blue_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_leaves.json index b3e8fcb9d9..d63e9e6f81 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:blue_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_button.json deleted file mode 100644 index bad9f7518c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:blue_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_fence.json deleted file mode 100644 index a629e6622b..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:blue_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_fence_gate.json deleted file mode 100644 index 4e6ac3242e..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:blue_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_pressure_plate.json deleted file mode 100644 index d67aa84158..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:blue_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_slab.json deleted file mode 100644 index f8a2e3feb7..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:blue_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_stairs.json deleted file mode 100644 index 77cec67d6a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/blue_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:blue_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_pressure_plate.json new file mode 100644 index 0000000000..252a368921 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blue_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_slab.json new file mode 100644 index 0000000000..66313f1f53 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:blue_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:blue_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/blue_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/blue_stairs.json new file mode 100644 index 0000000000..51644dbeb8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/blue_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blue_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/bristle_sprouts.json b/src/main/resources/data/spectrum/loot_tables/blocks/bristle_sprouts.json new file mode 100644 index 0000000000..88766e80b2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/bristle_sprouts.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:bristle_sprouts", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "tag": "c:shears" + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_button.json new file mode 100644 index 0000000000..fe03725127 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:brown_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_fence.json new file mode 100644 index 0000000000..073d6eadc8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:brown_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_fence_gate.json new file mode 100644 index 0000000000..f9227915c5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:brown_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_leaves.json index 8a7b3d5269..c502c2244a 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:brown_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_button.json deleted file mode 100644 index e690408ebe..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:brown_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_fence.json deleted file mode 100644 index a205f15364..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:brown_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_fence_gate.json deleted file mode 100644 index 1ef19c1b1d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:brown_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_pressure_plate.json deleted file mode 100644 index 23f578eac9..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:brown_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_slab.json deleted file mode 100644 index 9b5598785c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:brown_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_stairs.json deleted file mode 100644 index a3816b8de6..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/brown_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:brown_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_pressure_plate.json new file mode 100644 index 0000000000..820f1c4d57 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:brown_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_slab.json new file mode 100644 index 0000000000..84c41ca2b8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:brown_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:brown_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/brown_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/brown_stairs.json new file mode 100644 index 0000000000..96b123409d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/brown_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:brown_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_shimmerstone_light.json new file mode 100644 index 0000000000..33427c3b7a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:calcite_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_sparklestone_light.json deleted file mode 100644 index 8596d77def..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:calcite_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_slab.json new file mode 100644 index 0000000000..f989619022 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:calcite_tile_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:calcite_tile_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_stairs.json new file mode 100644 index 0000000000..2051d826e6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:calcite_tile_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_wall.json b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_wall.json new file mode 100644 index 0000000000..6ed8716ad9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tile_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:calcite_tile_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tiles.json new file mode 100644 index 0000000000..0059ae17fe --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/calcite_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:calcite_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_cap.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_cap.json new file mode 100644 index 0000000000..86bb65c3ea --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_cap.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxcap_cap" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_gills.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_gills.json new file mode 100644 index 0000000000..5c03b2bdcb --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_gills.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxcap_gills" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_stem.json new file mode 100644 index 0000000000..7f1a5dba4b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxshroom.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxshroom.json new file mode 100644 index 0000000000..9a77e611a6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxshroom.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:chestnut_noxshroom" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_amphora.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_amphora.json new file mode 100644 index 0000000000..d16e0f8aa6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_amphora.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_amphora" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_beam.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_beam.json new file mode 100644 index 0000000000..96afcb7ed8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_beam.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_beam" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_button.json new file mode 100644 index 0000000000..00c3c18a2f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_button" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_door.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_door.json new file mode 100644 index 0000000000..fc3085b638 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_door.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "spectrum:chestnut_noxwood_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "spectrum:chestnut_noxwood_door" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_fence.json new file mode 100644 index 0000000000..933b148d42 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_fence" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_fence_gate.json new file mode 100644 index 0000000000..b33d3bdf1c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_fence_gate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_lamp.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_lamp.json new file mode 100644 index 0000000000..df43ad8e0a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_lamp.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_lamp" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_lantern.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_lantern.json new file mode 100644 index 0000000000..be1c7f890c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_lantern" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_light.json new file mode 100644 index 0000000000..3ff22eb64d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_light.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_light" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_planks.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_planks.json new file mode 100644 index 0000000000..f0d56710cd --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_planks" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_pressure_plate.json new file mode 100644 index 0000000000..3686ae4dfd --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_pressure_plate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_slab.json new file mode 100644 index 0000000000..b6fa771efa --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:chestnut_noxwood_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:chestnut_noxwood_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_stairs.json new file mode 100644 index 0000000000..bf0b81344c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_stairs" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_trapdoor.json b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_trapdoor.json new file mode 100644 index 0000000000..41ab7c37e1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chestnut_noxwood_trapdoor.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:chestnut_noxwood_trapdoor" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/chiseled_polished_blackslag.json b/src/main/resources/data/spectrum/loot_tables/blocks/chiseled_polished_blackslag.json new file mode 100644 index 0000000000..3761ecaf49 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/chiseled_polished_blackslag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:chiseled_polished_blackslag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/citrine_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/citrine_player_only_glass.json deleted file mode 100644 index 97dc838d80..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/citrine_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:citrine_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/citrine_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/citrine_semi_permeable_glass.json new file mode 100644 index 0000000000..1354118973 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/citrine_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:citrine_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag.json b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag.json new file mode 100644 index 0000000000..600140fa8f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cobbled_blackslag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_slab.json new file mode 100644 index 0000000000..b66cf20b65 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:cobbled_blackslag_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:cobbled_blackslag_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_stairs.json new file mode 100644 index 0000000000..be51d51f1c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cobbled_blackslag_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_wall.json b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_wall.json new file mode 100644 index 0000000000..787ba01c32 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cobbled_blackslag_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cobbled_blackslag_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cracked_basalt_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_basalt_bricks.json new file mode 100644 index 0000000000..a9eae9d090 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_basalt_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cracked_basalt_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cracked_basalt_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_basalt_tiles.json new file mode 100644 index 0000000000..d133c481e9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_basalt_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cracked_basalt_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cracked_blackslag_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_blackslag_bricks.json new file mode 100644 index 0000000000..b7763b4627 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_blackslag_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cracked_blackslag_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cracked_blackslag_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_blackslag_tiles.json new file mode 100644 index 0000000000..2468ffed60 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_blackslag_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cracked_blackslag_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cracked_calcite_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_calcite_bricks.json new file mode 100644 index 0000000000..ff49b984a4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_calcite_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cracked_calcite_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cracked_calcite_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_calcite_tiles.json new file mode 100644 index 0000000000..45e7a6d714 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cracked_calcite_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cracked_calcite_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_button.json new file mode 100644 index 0000000000..ee3af141cf --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cyan_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_fence.json new file mode 100644 index 0000000000..4cfaeadeda --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cyan_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_fence_gate.json new file mode 100644 index 0000000000..d0a152501f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cyan_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_leaves.json index eead7751a3..619a85bf07 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:cyan_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_button.json deleted file mode 100644 index 5422c53977..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:cyan_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_fence.json deleted file mode 100644 index 298d71740c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:cyan_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_fence_gate.json deleted file mode 100644 index b1dbd97be5..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:cyan_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_pressure_plate.json deleted file mode 100644 index d3a996ec38..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:cyan_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_slab.json deleted file mode 100644 index 4b187a327d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:cyan_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_stairs.json deleted file mode 100644 index f9b7edfb79..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:cyan_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_pressure_plate.json new file mode 100644 index 0000000000..eb82f107b2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cyan_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_slab.json new file mode 100644 index 0000000000..c7d13fe40a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:cyan_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:cyan_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/cyan_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_stairs.json new file mode 100644 index 0000000000..6441e63a69 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/cyan_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cyan_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_shimmerstone_light.json new file mode 100644 index 0000000000..9cc208c922 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:deepslate_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_shimmerstone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_shimmerstone_ore.json new file mode 100644 index 0000000000..44f847528c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_shimmerstone_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "spectrum:deepslate_shimmerstone_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:shimmerstone_gem" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_sparklestone_light.json deleted file mode 100644 index adf9e0f18a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:deepslate_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_sparklestone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_sparklestone_ore.json deleted file mode 100644 index 6b86402b42..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/deepslate_sparklestone_ore.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ], - "name": "spectrum:deepslate_sparklestone_ore" - }, - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 3.0 - }, - "add": false - }, - { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "spectrum:sparklestone_gem" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/diorite_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/diorite_shimmerstone_light.json new file mode 100644 index 0000000000..81b0ef4a72 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/diorite_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:diorite_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/diorite_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/diorite_sparklestone_light.json deleted file mode 100644 index 1341285e07..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/diorite_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:diorite_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/doombloom.json b/src/main/resources/data/spectrum/loot_tables/blocks/doombloom.json new file mode 100644 index 0000000000..6cee368688 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/doombloom.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:doombloom", + "conditions": [ + { + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears", + "spectrum:bedrock_shears" + ] + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_cap.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_cap.json new file mode 100644 index 0000000000..344772368b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_cap.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxcap_cap" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_gills.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_gills.json new file mode 100644 index 0000000000..c33341ca90 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_gills.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxcap_gills" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_stem.json new file mode 100644 index 0000000000..62288b8af5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxshroom.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxshroom.json new file mode 100644 index 0000000000..f1e881aca8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxshroom.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:ebony_noxshroom" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_amphora.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_amphora.json new file mode 100644 index 0000000000..9fbe0bb0eb --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_amphora.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_amphora" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_beam.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_beam.json new file mode 100644 index 0000000000..9d58470eab --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_beam.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_beam" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_button.json new file mode 100644 index 0000000000..a2e9cad45f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_button" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_door.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_door.json new file mode 100644 index 0000000000..4054552b07 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_door.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "spectrum:ebony_noxwood_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "spectrum:ebony_noxwood_door" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_fence.json new file mode 100644 index 0000000000..57bb816c17 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_fence" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_fence_gate.json new file mode 100644 index 0000000000..a75b540076 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_fence_gate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_lamp.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_lamp.json new file mode 100644 index 0000000000..0e8e5475df --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_lamp.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_lamp" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_lantern.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_lantern.json new file mode 100644 index 0000000000..8cd81f7bca --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_lantern" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_light.json new file mode 100644 index 0000000000..1f04ceb96d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_light.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_light" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_planks.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_planks.json new file mode 100644 index 0000000000..a244ff8b26 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_planks" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_pressure_plate.json new file mode 100644 index 0000000000..6800f32560 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_pressure_plate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_slab.json new file mode 100644 index 0000000000..184c3d6c0e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:ebony_noxwood_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:ebony_noxwood_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_stairs.json new file mode 100644 index 0000000000..dfc3b468fc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_stairs" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_trapdoor.json b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_trapdoor.json new file mode 100644 index 0000000000..e2896b9418 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ebony_noxwood_trapdoor.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ebony_noxwood_trapdoor" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ender_treasure.json b/src/main/resources/data/spectrum/loot_tables/blocks/ender_treasure.json deleted file mode 100644 index dc4502d93e..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/ender_treasure.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:ender_treasure" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay.json new file mode 100644 index 0000000000..bef3913b84 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:exposed_polished_shale_clay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay_slab.json new file mode 100644 index 0000000000..d2a5336981 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:exposed_polished_shale_clay_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:exposed_polished_shale_clay_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..7863552001 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_polished_shale_clay_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:exposed_polished_shale_clay_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_brick_slab.json new file mode 100644 index 0000000000..1ca6d0ceaf --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_brick_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:exposed_shale_clay_brick_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:exposed_shale_clay_brick_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..1d834571d5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:exposed_shale_clay_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_bricks.json new file mode 100644 index 0000000000..29d26974e9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:exposed_shale_clay_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tile_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tile_slab.json new file mode 100644 index 0000000000..beaba97ddf --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tile_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:exposed_shale_clay_tile_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:exposed_shale_clay_tile_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..cb286c1e86 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:exposed_shale_clay_tile_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tiles.json new file mode 100644 index 0000000000..3f6e9995c8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/exposed_shale_clay_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:exposed_shale_clay_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/forfeiture.json b/src/main/resources/data/spectrum/loot_tables/blocks/forfeiture.json new file mode 100644 index 0000000000..a8def17ca5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/forfeiture.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:bedrock_dust" + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:forfeiture", + "properties": { + "decay_state": "bedrock" + } + } + ] + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 2.0 + }, + "add": false + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/frog_cold_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/frog_cold_head.json new file mode 100644 index 0000000000..0387a66a01 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/frog_cold_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:frog_cold_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/frog_temperate_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/frog_temperate_head.json new file mode 100644 index 0000000000..e5e33b9f59 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/frog_temperate_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:frog_temperate_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/frog_warm_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/frog_warm_head.json new file mode 100644 index 0000000000..2ad01245f6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/frog_warm_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:frog_warm_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gather_node.json b/src/main/resources/data/spectrum/loot_tables/blocks/gather_node.json new file mode 100644 index 0000000000..0c2acf36c9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gather_node.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gather_node" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/glowing_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/glowing_player_only_glass.json deleted file mode 100644 index 91856565a0..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/glowing_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:glowing_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/glowing_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/glowing_semi_permeable_glass.json new file mode 100644 index 0000000000..b27d7f3bb0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/glowing_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:glowing_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/granite_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/granite_shimmerstone_light.json new file mode 100644 index 0000000000..417f8b1a07 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/granite_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:granite_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/granite_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/granite_sparklestone_light.json deleted file mode 100644 index 6031914bb6..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/granite_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:granite_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_button.json new file mode 100644 index 0000000000..ed9633f63b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gray_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_fence.json new file mode 100644 index 0000000000..ebed5f5eaa --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gray_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_fence_gate.json new file mode 100644 index 0000000000..6128aea817 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gray_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_leaves.json index e15a28c04b..aed7838a50 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:gray_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_button.json deleted file mode 100644 index 15d3782dc1..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:gray_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_fence.json deleted file mode 100644 index 775bc343f5..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:gray_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_fence_gate.json deleted file mode 100644 index 5a649a3aa7..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:gray_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_pressure_plate.json deleted file mode 100644 index 1bbdff9995..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:gray_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_slab.json deleted file mode 100644 index ef685e4975..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:gray_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_stairs.json deleted file mode 100644 index 4d6ab58731..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/gray_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:gray_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_pressure_plate.json new file mode 100644 index 0000000000..c095687356 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gray_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_slab.json new file mode 100644 index 0000000000..ce1b62f866 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:gray_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:gray_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/gray_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/gray_stairs.json new file mode 100644 index 0000000000..2c21ef9ee0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/gray_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gray_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_button.json new file mode 100644 index 0000000000..575a3a12af --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:green_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_fence.json new file mode 100644 index 0000000000..c187e490e5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:green_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_fence_gate.json new file mode 100644 index 0000000000..9099756d2e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:green_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_leaves.json index 3315b90421..ac68707335 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:green_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_button.json deleted file mode 100644 index 42de5a6c20..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:green_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_fence.json deleted file mode 100644 index dd3b2ce0a1..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:green_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_fence_gate.json deleted file mode 100644 index d45ce76e25..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:green_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_pressure_plate.json deleted file mode 100644 index 854299ba58..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:green_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_slab.json deleted file mode 100644 index d4d435e226..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:green_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_stairs.json deleted file mode 100644 index fa69da97db..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/green_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:green_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_pressure_plate.json new file mode 100644 index 0000000000..62a378d39a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:green_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_slab.json new file mode 100644 index 0000000000..90e282d9c0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:green_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:green_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/green_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/green_stairs.json new file mode 100644 index 0000000000..22f2ce6ad9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/green_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:green_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/hummingstone.json b/src/main/resources/data/spectrum/loot_tables/blocks/hummingstone.json new file mode 100644 index 0000000000..80a0d13ed4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/hummingstone.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:hummingstone" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "spectrum:resonance", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/hummingstone_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/hummingstone_glass.json new file mode 100644 index 0000000000..3b325571a7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/hummingstone_glass.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:hummingstone_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "spectrum:resonance", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/infested_blackslag.json b/src/main/resources/data/spectrum/loot_tables/blocks/infested_blackslag.json new file mode 100644 index 0000000000..3e97fb17bb --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/infested_blackslag.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blackslag" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/interaction_node.json b/src/main/resources/data/spectrum/loot_tables/blocks/interaction_node.json deleted file mode 100644 index 7387ea475f..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/interaction_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:interaction_node" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_cap.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_cap.json new file mode 100644 index 0000000000..3010d227f2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_cap.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxcap_cap" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_gills.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_gills.json new file mode 100644 index 0000000000..7dc2f5d21d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_gills.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxcap_gills" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_stem.json new file mode 100644 index 0000000000..f72ba5bd43 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxshroom.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxshroom.json new file mode 100644 index 0000000000..fc4bb36ce7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxshroom.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:ivory_noxshroom" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_amphora.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_amphora.json new file mode 100644 index 0000000000..ffef094873 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_amphora.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_amphora" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_beam.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_beam.json new file mode 100644 index 0000000000..4273806892 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_beam.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_beam" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_button.json new file mode 100644 index 0000000000..b4109fb0ec --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_button" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_door.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_door.json new file mode 100644 index 0000000000..7b1297190e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_door.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "spectrum:ivory_noxwood_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "spectrum:ivory_noxwood_door" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_fence.json new file mode 100644 index 0000000000..283d91d6d7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_fence" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_fence_gate.json new file mode 100644 index 0000000000..ea44e1ab6b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_fence_gate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_lamp.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_lamp.json new file mode 100644 index 0000000000..d17a78e288 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_lamp.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_lamp" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_lantern.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_lantern.json new file mode 100644 index 0000000000..98cab8133e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_lantern" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_light.json new file mode 100644 index 0000000000..8ab1e36cd4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_light.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_light" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_planks.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_planks.json new file mode 100644 index 0000000000..97865f2c17 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_planks" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_pressure_plate.json new file mode 100644 index 0000000000..dc3f811562 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_pressure_plate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_slab.json new file mode 100644 index 0000000000..aee5197cae --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:ivory_noxwood_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:ivory_noxwood_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_stairs.json new file mode 100644 index 0000000000..b94cbd973d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_stairs" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_trapdoor.json b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_trapdoor.json new file mode 100644 index 0000000000..bcc7b46942 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/ivory_noxwood_trapdoor.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:ivory_noxwood_trapdoor" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/jade_vines.json b/src/main/resources/data/spectrum/loot_tables/blocks/jade_vines.json index c1c79a5bce..53aa32222e 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/jade_vines.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/jade_vines.json @@ -7,24 +7,22 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:germinated_jade_vine_seeds", - "conditions": [ - { - "condition": "minecraft:inverted", - "term": { - "condition": "minecraft:block_state_property", - "block": "spectrum:jade_vines", - "properties": { - "age": "0" - } - } - } - ] + "name": "spectrum:germinated_jade_vine_seeds" } ], "conditions": [ { "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:block_state_property", + "block": "spectrum:jade_vines", + "properties": { + "age": "0" + } + } } ] }, @@ -43,21 +41,19 @@ "max": 3 } } - ], - "conditions": [ - { - "condition": "minecraft:block_state_property", - "block": "spectrum:jade_vines", - "properties": { - "age": "0" - } - } ] } ], "conditions": [ { "condition": "minecraft:survives_explosion" + }, + { + "condition": "minecraft:block_state_property", + "block": "spectrum:jade_vines", + "properties": { + "age": "0" + } } ] }, @@ -78,26 +74,18 @@ }, { "function": "minecraft:explosion_decay" - }, - { - "function": "minecraft:apply_bonus", - "enchantment": "spectrum:resonance", - "formula": "minecraft:uniform_bonus_count", - "parameters": { - "bonusMultiplier": 2 - } - } - ], - "conditions": [ - { - "condition": "minecraft:block_state_property", - "block": "spectrum:jade_vines", - "properties": { - "age": "0" - } } ] } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:jade_vines", + "properties": { + "age": "0" + } + } ] } ] diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_certus_quartz_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_certus_quartz_bud.json new file mode 100644 index 0000000000..43acae9067 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_certus_quartz_bud.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "ae2:certus_quartz_crystal", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_coal_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_coal_bud.json new file mode 100644 index 0000000000..7e7ebdf396 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_coal_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coal", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_copper_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_copper_bud.json new file mode 100644 index 0000000000..bf314f9877 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_copper_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_copper", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_diamond_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_diamond_bud.json new file mode 100644 index 0000000000..34272dbf72 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_diamond_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_emerald_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_emerald_bud.json new file mode 100644 index 0000000000..b27695b02c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_emerald_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_fluix_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_fluix_bud.json new file mode 100644 index 0000000000..19eac00720 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_fluix_bud.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "ae2:fluix_crystal", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_bud.json new file mode 100644 index 0000000000..fe4be403f2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_bud.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "gobber2:gobber2_globette", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "gobber2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_end_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_end_bud.json new file mode 100644 index 0000000000..576fde7cc4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_end_bud.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "gobber2:gobber2_globette_end", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "gobber2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_nether_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_nether_bud.json new file mode 100644 index 0000000000..8802dbab16 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_globette_nether_bud.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "gobber2:gobber2_globette_nether", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "gobber2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_glowstone_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_glowstone_bud.json new file mode 100644 index 0000000000..d916be05fc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_glowstone_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:glowstone", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_gold_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_gold_bud.json new file mode 100644 index 0000000000..611454c462 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_gold_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_gold", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_iron_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_iron_bud.json new file mode 100644 index 0000000000..de9e704828 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_iron_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_iron", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_lapis_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_lapis_bud.json new file mode 100644 index 0000000000..9cd29464a0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_lapis_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_netherite_scrap_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_netherite_scrap_bud.json new file mode 100644 index 0000000000..46af94afd9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_netherite_scrap_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherite_scrap", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_prismarine_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_prismarine_bud.json new file mode 100644 index 0000000000..bdd88b9006 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_prismarine_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_crystals", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_quartz_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_quartz_bud.json new file mode 100644 index 0000000000..23a0b475e1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_quartz_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/large_redstone_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/large_redstone_bud.json new file mode 100644 index 0000000000..f1214900aa --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/large_redstone_bud.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 1, + "max": 3 + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_button.json new file mode 100644 index 0000000000..3628bc3889 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_blue_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_fence.json new file mode 100644 index 0000000000..f593ce9444 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_blue_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_fence_gate.json new file mode 100644 index 0000000000..e3f83b282b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_blue_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_leaves.json index 2075e9c77d..6292326b3d 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:light_blue_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_button.json deleted file mode 100644 index 44c463b165..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_blue_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_fence.json deleted file mode 100644 index 79d9ff074a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_blue_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_fence_gate.json deleted file mode 100644 index b58330344d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_blue_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_pressure_plate.json deleted file mode 100644 index 8b09fdde03..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_blue_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_slab.json deleted file mode 100644 index 9f6ab9a7ed..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_blue_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_stairs.json deleted file mode 100644 index b573520210..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_blue_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_pressure_plate.json new file mode 100644 index 0000000000..76b2307471 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_blue_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_slab.json new file mode 100644 index 0000000000..782000c120 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:light_blue_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:light_blue_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_stairs.json new file mode 100644 index 0000000000..e96017b035 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_blue_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_blue_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_button.json new file mode 100644 index 0000000000..83e55681d0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_gray_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_fence.json new file mode 100644 index 0000000000..2196ecdda1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_gray_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_fence_gate.json new file mode 100644 index 0000000000..d57223ca55 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_gray_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_leaves.json index 3d904d2683..fae364d4ae 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:light_gray_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_button.json deleted file mode 100644 index afb3951c4d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_gray_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_fence.json deleted file mode 100644 index ff78e92cc5..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_gray_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_fence_gate.json deleted file mode 100644 index 5116f30320..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_gray_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_pressure_plate.json deleted file mode 100644 index e2cc6018d1..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_gray_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_slab.json deleted file mode 100644 index 3a028caf6a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_gray_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_stairs.json deleted file mode 100644 index 0be16f7b47..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:light_gray_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_pressure_plate.json new file mode 100644 index 0000000000..ec03150ae6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_gray_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_slab.json new file mode 100644 index 0000000000..43269cb5ff --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:light_gray_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:light_gray_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_stairs.json new file mode 100644 index 0000000000..f5f9f3b2f8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/light_gray_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_gray_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_button.json new file mode 100644 index 0000000000..fa18598044 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:lime_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_fence.json new file mode 100644 index 0000000000..edc79e0883 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:lime_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_fence_gate.json new file mode 100644 index 0000000000..91e5acac9c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:lime_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_leaves.json index 94a0b4352b..903b5313ab 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:lime_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_button.json deleted file mode 100644 index 9e2e016f77..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lime_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_fence.json deleted file mode 100644 index 42aab789c5..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lime_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_fence_gate.json deleted file mode 100644 index 143de22a86..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lime_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_pressure_plate.json deleted file mode 100644 index 8b243ee920..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lime_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_slab.json deleted file mode 100644 index 1f070a3812..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lime_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_stairs.json deleted file mode 100644 index 1d20cc57fd..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/lime_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lime_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_pressure_plate.json new file mode 100644 index 0000000000..ea68a4425d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:lime_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_slab.json new file mode 100644 index 0000000000..57457dd6a5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:lime_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:lime_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/lime_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/lime_stairs.json new file mode 100644 index 0000000000..30af77881e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/lime_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:lime_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_button.json new file mode 100644 index 0000000000..c0e6f445b7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:magenta_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_fence.json new file mode 100644 index 0000000000..59ea9cf8d1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:magenta_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_fence_gate.json new file mode 100644 index 0000000000..bcd5f418af --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:magenta_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_leaves.json index 4833fe1167..f1f1ded9af 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:magenta_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_button.json deleted file mode 100644 index 956190d8a1..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:magenta_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_fence.json deleted file mode 100644 index 7a7e9c11e0..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:magenta_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_fence_gate.json deleted file mode 100644 index 1b304fc210..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:magenta_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_pressure_plate.json deleted file mode 100644 index a0b0d9a345..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:magenta_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_slab.json deleted file mode 100644 index 221c65417f..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:magenta_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_stairs.json deleted file mode 100644 index cdb39f80d4..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:magenta_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_pressure_plate.json new file mode 100644 index 0000000000..9fd7ec306b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:magenta_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_slab.json new file mode 100644 index 0000000000..31f76bf452 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:magenta_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:magenta_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/magenta_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_stairs.json new file mode 100644 index 0000000000..78fdd3f056 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/magenta_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:magenta_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/malachite_chiseled_basalt.json b/src/main/resources/data/spectrum/loot_tables/blocks/malachite_chiseled_basalt.json new file mode 100644 index 0000000000..a0d8eb4835 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/malachite_chiseled_basalt.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:malachite_chiseled_basalt" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/malachite_chiseled_calcite.json b/src/main/resources/data/spectrum/loot_tables/blocks/malachite_chiseled_calcite.json new file mode 100644 index 0000000000..2ba1843bce --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/malachite_chiseled_calcite.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:malachite_chiseled_calcite" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/moonstone_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/moonstone_player_only_glass.json deleted file mode 100644 index 92451a632d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/moonstone_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:moonstone_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/moonstone_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/moonstone_semi_permeable_glass.json new file mode 100644 index 0000000000..b90bf85aa8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/moonstone_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:moonstone_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/onyx_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/onyx_player_only_glass.json deleted file mode 100644 index 5275724735..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/onyx_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:onyx_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/onyx_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/onyx_semi_permeable_glass.json new file mode 100644 index 0000000000..14db0abdab --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/onyx_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:onyx_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_button.json new file mode 100644 index 0000000000..48d2833dca --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:orange_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_fence.json new file mode 100644 index 0000000000..aea558231b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:orange_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_fence_gate.json new file mode 100644 index 0000000000..24c0802dc2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:orange_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_leaves.json index 2e8b9b0f4e..ad965d3eba 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:orange_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_button.json deleted file mode 100644 index b5c7ea22a3..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:orange_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_fence.json deleted file mode 100644 index 2ff7777c5c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:orange_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_fence_gate.json deleted file mode 100644 index 1e5b8534a9..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:orange_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_pressure_plate.json deleted file mode 100644 index c64fdb2393..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:orange_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_slab.json deleted file mode 100644 index 6f3267ad1e..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:orange_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_stairs.json deleted file mode 100644 index 8c97072caf..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/orange_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:orange_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_pressure_plate.json new file mode 100644 index 0000000000..b01bfdc066 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:orange_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_slab.json new file mode 100644 index 0000000000..f3381ee611 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:orange_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:orange_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/orange_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/orange_stairs.json new file mode 100644 index 0000000000..042a724ec7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/orange_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:orange_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/paletur_fragment_block.json b/src/main/resources/data/spectrum/loot_tables/blocks/paletur_fragment_block.json deleted file mode 100644 index 231bf43522..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/paletur_fragment_block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:paletur_fragment_block" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/paletur_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/paletur_ore.json deleted file mode 100644 index 6719c3d976..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/paletur_ore.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "name": "spectrum:paletur_ore", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - }, - { - "type": "minecraft:item", - "name": "spectrum:paletur_gem", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "spectrum:resonance", - "levels": { - "min": 1 - } - } - ] - } - } - ] - }, - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "name": "spectrum:paletur_gem", - "conditions": [ - { - "condition": "minecraft:random_chance", - "chance": 0.04 - } - ] - }, - { - "type": "minecraft:item", - "name": "spectrum:paletur_fragments", - "functions": [ - { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops" - }, - { - "function": "minecraft:explosion_decay" - } - ] - } - ] - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/paltaeria_fragment_block.json b/src/main/resources/data/spectrum/loot_tables/blocks/paltaeria_fragment_block.json new file mode 100644 index 0000000000..84383f5305 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/paltaeria_fragment_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:paltaeria_fragment_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/paltaeria_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/paltaeria_ore.json new file mode 100644 index 0000000000..ab5e834937 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/paltaeria_ore.json @@ -0,0 +1,82 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:paltaeria_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:paltaeria_gem", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "spectrum:resonance", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:paltaeria_gem", + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.04 + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:paltaeria_fragments", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_button.json new file mode 100644 index 0000000000..64fa3adfb6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:pink_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_fence.json new file mode 100644 index 0000000000..2ca6c6ca27 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:pink_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_fence_gate.json new file mode 100644 index 0000000000..31399ef245 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:pink_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_leaves.json index ff04461360..f3b63dc490 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:pink_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_button.json deleted file mode 100644 index 8c62a16ea7..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pink_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_fence.json deleted file mode 100644 index aa4dec4586..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pink_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_fence_gate.json deleted file mode 100644 index 336f76ac8d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pink_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_pressure_plate.json deleted file mode 100644 index 0149ead1cc..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pink_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_slab.json deleted file mode 100644 index 6d9dec8c06..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pink_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_stairs.json deleted file mode 100644 index 299d35ed4a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pink_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pink_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_pressure_plate.json new file mode 100644 index 0000000000..8dd049ad12 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:pink_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_slab.json new file mode 100644 index 0000000000..ec84177857 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:pink_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:pink_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pink_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/pink_stairs.json new file mode 100644 index 0000000000..31dc9ea02e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/pink_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:pink_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_basalt_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_basalt_button.json new file mode 100644 index 0000000000..930851f29a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_basalt_button.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_basalt_button" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_basalt_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_basalt_pressure_plate.json new file mode 100644 index 0000000000..b64eaada9c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_basalt_pressure_plate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_basalt_pressure_plate" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag.json new file mode 100644 index 0000000000..8bedc0865b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_blackslag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_button.json new file mode 100644 index 0000000000..1560e7b218 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_button.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_blackslag_button" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_pressure_plate.json new file mode 100644 index 0000000000..82a8c0571a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_pressure_plate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_blackslag_pressure_plate" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_slab.json new file mode 100644 index 0000000000..1123fca195 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:polished_blackslag_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:polished_blackslag_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_stairs.json new file mode 100644 index 0000000000..f6ac804b3b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_blackslag_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_wall.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_wall.json new file mode 100644 index 0000000000..9eb4132069 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_blackslag_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_blackslag_wall" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_calcite_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_calcite_button.json new file mode 100644 index 0000000000..23a9702f06 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_calcite_button.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_calcite_button" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_calcite_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_calcite_pressure_plate.json new file mode 100644 index 0000000000..63a7a9e417 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_calcite_pressure_plate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_calcite_pressure_plate" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay.json new file mode 100644 index 0000000000..5d9dc1421e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_shale_clay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_brick_slab.json new file mode 100644 index 0000000000..38ef1bc002 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_brick_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:shale_clay_brick_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:shale_clay_brick_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_slab.json new file mode 100644 index 0000000000..1e28d8cef1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:polished_shale_clay_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:polished_shale_clay_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_stairs.json new file mode 100644 index 0000000000..9424e6c916 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/polished_shale_clay_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:polished_shale_clay_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_black_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_black_sapling.json new file mode 100644 index 0000000000..a039315f13 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_black_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:black_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_blood_orchid.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_blood_orchid.json new file mode 100644 index 0000000000..1b71863cd0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_blood_orchid.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blood_orchid" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_blue_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_blue_sapling.json new file mode 100644 index 0000000000..3c296b642b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_blue_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:blue_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_brown_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_brown_sapling.json new file mode 100644 index 0000000000..c037987bc2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_brown_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:brown_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_cyan_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_cyan_sapling.json new file mode 100644 index 0000000000..00441d08c4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_cyan_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:cyan_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_gray_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_gray_sapling.json new file mode 100644 index 0000000000..08e7c7be9f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_gray_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:gray_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_green_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_green_sapling.json new file mode 100644 index 0000000000..cb1ab675a2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_green_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:green_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_light_blue_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_light_blue_sapling.json new file mode 100644 index 0000000000..61329be1bd --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_light_blue_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_blue_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_light_gray_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_light_gray_sapling.json new file mode 100644 index 0000000000..48649e2a32 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_light_gray_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:light_gray_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_lime_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_lime_sapling.json new file mode 100644 index 0000000000..7c39cfa9c0 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_lime_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:lime_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_magenta_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_magenta_sapling.json new file mode 100644 index 0000000000..4db34ebe6a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_magenta_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:magenta_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_orange_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_orange_sapling.json new file mode 100644 index 0000000000..e397ce136c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_orange_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:orange_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_pink_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_pink_sapling.json new file mode 100644 index 0000000000..28f1433da3 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_pink_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:pink_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_purple_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_purple_sapling.json new file mode 100644 index 0000000000..23c4715033 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_purple_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:purple_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_red_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_red_sapling.json new file mode 100644 index 0000000000..b621653842 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_red_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:red_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_white_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_white_sapling.json new file mode 100644 index 0000000000..31b206ebbe --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_white_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:white_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/potted_yellow_sapling.json b/src/main/resources/data/spectrum/loot_tables/blocks/potted_yellow_sapling.json new file mode 100644 index 0000000000..322c7179f6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/potted_yellow_sapling.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:flower_pot" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:yellow_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/puller_node.json b/src/main/resources/data/spectrum/loot_tables/blocks/puller_node.json deleted file mode 100644 index e93a703100..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/puller_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:puller_node" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_button.json new file mode 100644 index 0000000000..941f2e7cb8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:purple_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_fence.json new file mode 100644 index 0000000000..9ab021014d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:purple_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_fence_gate.json new file mode 100644 index 0000000000..1e479369c5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:purple_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_leaves.json index 3674c85d3d..1e23166ce9 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:purple_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_button.json deleted file mode 100644 index 64513db974..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:purple_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_fence.json deleted file mode 100644 index f8dcb45548..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:purple_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_fence_gate.json deleted file mode 100644 index e4e7497543..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:purple_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_pressure_plate.json deleted file mode 100644 index 7775490a2a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:purple_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_slab.json deleted file mode 100644 index 30631623e1..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:purple_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_stairs.json deleted file mode 100644 index cd5e673c4c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/purple_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:purple_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_pressure_plate.json new file mode 100644 index 0000000000..f9a0c3b6d7 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:purple_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_slab.json new file mode 100644 index 0000000000..7521ba578c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:purple_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:purple_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/purple_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/purple_stairs.json new file mode 100644 index 0000000000..ca3b6498d4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/purple_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:purple_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/pusher_node.json b/src/main/resources/data/spectrum/loot_tables/blocks/pusher_node.json deleted file mode 100644 index a5d9ce1dbb..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/pusher_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:pusher_node" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/radiating_ender.json b/src/main/resources/data/spectrum/loot_tables/blocks/radiating_ender.json new file mode 100644 index 0000000000..4988110353 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/radiating_ender.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:radiating_ender" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_button.json new file mode 100644 index 0000000000..36257db0a4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:red_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_fence.json new file mode 100644 index 0000000000..e37fd77b5d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:red_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_fence_gate.json new file mode 100644 index 0000000000..583ce372f8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:red_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_leaves.json index 928ef49a95..dcc324c2be 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:red_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_button.json deleted file mode 100644 index d5c8429ae9..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:red_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_fence.json deleted file mode 100644 index b6ad32716c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:red_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_fence_gate.json deleted file mode 100644 index 8bc99d4bf8..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:red_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_pressure_plate.json deleted file mode 100644 index 047aff0923..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:red_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_slab.json deleted file mode 100644 index d671492c4d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:red_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_stairs.json deleted file mode 100644 index 9c3be8d69a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/red_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:red_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_pressure_plate.json new file mode 100644 index 0000000000..018bfc9f02 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:red_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_slab.json new file mode 100644 index 0000000000..6037016f2a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:red_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:red_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/red_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/red_stairs.json new file mode 100644 index 0000000000..aa60af0ddc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/red_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:red_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/rotten_ground.json b/src/main/resources/data/spectrum/loot_tables/blocks/rotten_ground.json new file mode 100644 index 0000000000..c29a55e65a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/rotten_ground.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:rotten_ground" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/sawblade_grass.json b/src/main/resources/data/spectrum/loot_tables/blocks/sawblade_grass.json new file mode 100644 index 0000000000..71b1e90e43 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/sawblade_grass.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:sawblade_grass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/sawblade_holly.json b/src/main/resources/data/spectrum/loot_tables/blocks/sawblade_holly.json new file mode 100644 index 0000000000..26f70b7399 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/sawblade_holly.json @@ -0,0 +1,48 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:sawblade_holly_berry" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2, + "max": 3 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 1 + } + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:sawblade_holly_bush", + "properties": { + "age": "7" + } + } + ] + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/scarlet_fragment_block.json b/src/main/resources/data/spectrum/loot_tables/blocks/scarlet_fragment_block.json deleted file mode 100644 index d1f8dd28d2..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/scarlet_fragment_block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:scarlet_fragment_block" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/scarlet_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/scarlet_ore.json deleted file mode 100644 index ddb2e92b6f..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/scarlet_ore.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "name": "spectrum:scarlet_ore", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ] - }, - { - "type": "minecraft:item", - "name": "spectrum:scarlet_gem", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "spectrum:resonance", - "levels": { - "min": 1 - } - } - ] - } - } - ] - }, - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "name": "spectrum:scarlet_gem", - "conditions": [ - { - "condition": "minecraft:random_chance", - "chance": 0.04 - } - ] - }, - { - "type": "minecraft:item", - "name": "spectrum:scarlet_fragments", - "functions": [ - { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops" - }, - { - "function": "minecraft:explosion_decay" - } - ] - } - ] - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/sender_node.json b/src/main/resources/data/spectrum/loot_tables/blocks/sender_node.json new file mode 100644 index 0000000000..b2bd2c9bd6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/sender_node.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:sender_node" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_brick_stairs.json new file mode 100644 index 0000000000..099b916156 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shale_clay_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_bricks.json new file mode 100644 index 0000000000..a977777bd2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shale_clay_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tile_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tile_slab.json new file mode 100644 index 0000000000..3aa881f9e1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tile_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:shale_clay_tile_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:shale_clay_tile_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tile_stairs.json new file mode 100644 index 0000000000..f24a8a9fc4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shale_clay_tile_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tiles.json new file mode 100644 index 0000000000..5d39b8a0ed --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shale_clay_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shale_clay_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shimmel.json b/src/main/resources/data/spectrum/loot_tables/blocks/shimmel.json new file mode 100644 index 0000000000..fea17a10a3 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shimmel.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shimmel" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shimmerstone_block.json b/src/main/resources/data/spectrum/loot_tables/blocks/shimmerstone_block.json new file mode 100644 index 0000000000..9d339a7ea3 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shimmerstone_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shimmerstone_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shimmerstone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/shimmerstone_ore.json new file mode 100644 index 0000000000..0589379b33 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shimmerstone_ore.json @@ -0,0 +1,58 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "spectrum:shimmerstone_ore" + }, + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 1.0, + "max": 3.0 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:shimmerstone_gem" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/shulker_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/shulker_head.json new file mode 100644 index 0000000000..eac21a15e6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/shulker_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:shulker_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_cap.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_cap.json new file mode 100644 index 0000000000..523db51093 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_cap.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxcap_cap" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_gills.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_gills.json new file mode 100644 index 0000000000..32bbd5bd4a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_gills.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxcap_gills" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_stem.json new file mode 100644 index 0000000000..8d50ff7583 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxshroom.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxshroom.json new file mode 100644 index 0000000000..f80c2a9779 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxshroom.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:slate_noxshroom" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_amphora.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_amphora.json new file mode 100644 index 0000000000..91f5496db8 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_amphora.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_amphora" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_beam.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_beam.json new file mode 100644 index 0000000000..4cde0747d3 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_beam.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_beam" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_button.json new file mode 100644 index 0000000000..26f9bee77f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_button" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_door.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_door.json new file mode 100644 index 0000000000..705d6fcf21 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_door.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "spectrum:slate_noxwood_door", + "condition": "minecraft:block_state_property", + "properties": { + "half": "lower" + } + } + ], + "name": "spectrum:slate_noxwood_door" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_fence.json new file mode 100644 index 0000000000..e4b37edc2f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_fence" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_fence_gate.json new file mode 100644 index 0000000000..7a39eecc73 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_fence_gate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_lamp.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_lamp.json new file mode 100644 index 0000000000..ca3ad4ec72 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_lamp.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_lamp" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_lantern.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_lantern.json new file mode 100644 index 0000000000..c4f51a181f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_lantern.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_lantern" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_light.json new file mode 100644 index 0000000000..f09d7215fc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_light.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_light" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_planks.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_planks.json new file mode 100644 index 0000000000..f363232f92 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_planks.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_planks" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_pressure_plate.json new file mode 100644 index 0000000000..dcee280f7b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_pressure_plate" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_slab.json new file mode 100644 index 0000000000..6ba3c33633 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:slate_noxwood_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:slate_noxwood_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_stairs.json new file mode 100644 index 0000000000..cf0694b491 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_stairs" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_trapdoor.json b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_trapdoor.json new file mode 100644 index 0000000000..e27466370d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/slate_noxwood_trapdoor.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:slate_noxwood_trapdoor" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_black_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_black_dragonjag.json new file mode 100644 index 0000000000..9d152e19bc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_black_dragonjag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:small_black_dragonjag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_certus_quartz_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_certus_quartz_bud.json new file mode 100644 index 0000000000..83f6c01068 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_certus_quartz_bud.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "ae2:certus_quartz_crystal" + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_coal_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_coal_bud.json new file mode 100644 index 0000000000..96a2392b76 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_coal_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:coal" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_copper_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_copper_bud.json new file mode 100644 index 0000000000..0d1d50bba6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_copper_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_copper" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_diamond_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_diamond_bud.json new file mode 100644 index 0000000000..bb7cf2d722 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_diamond_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:diamond" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_emerald_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_emerald_bud.json new file mode 100644 index 0000000000..c024f31de5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_emerald_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:emerald" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_fluix_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_fluix_bud.json new file mode 100644 index 0000000000..935a2763ba --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_fluix_bud.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "ae2:fluix_crystal" + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_bud.json new file mode 100644 index 0000000000..e6df78d7f2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_bud.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "gobber2:gobber2_globette" + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "gobber2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_end_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_end_bud.json new file mode 100644 index 0000000000..2c07fd7561 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_end_bud.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "gobber2:gobber2_globette_end" + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "gobber2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_nether_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_nether_bud.json new file mode 100644 index 0000000000..896c70ef2e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_globette_nether_bud.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "gobber2:gobber2_globette_nether" + } + ] + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "gobber2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_glowstone_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_glowstone_bud.json new file mode 100644 index 0000000000..0e7b9fd36b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_glowstone_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:glowstone_dust" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_gold_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_gold_bud.json new file mode 100644 index 0000000000..620f74e46e --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_gold_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_gold" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_green_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_green_dragonjag.json new file mode 100644 index 0000000000..05662b44ad --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_green_dragonjag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:small_green_dragonjag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_iron_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_iron_bud.json new file mode 100644 index 0000000000..d5da26bcdf --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_iron_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:raw_iron" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_lapis_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_lapis_bud.json new file mode 100644 index 0000000000..97db24d73d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_lapis_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:lapis_lazuli" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_netherite_scrap_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_netherite_scrap_bud.json new file mode 100644 index 0000000000..72aec2f9ae --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_netherite_scrap_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:netherite_scrap" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_pink_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_pink_dragonjag.json new file mode 100644 index 0000000000..237c5e3131 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_pink_dragonjag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:small_pink_dragonjag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_prismarine_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_prismarine_bud.json new file mode 100644 index 0000000000..b792b06f28 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_prismarine_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:prismarine_crystals" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_purple_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_purple_dragonjag.json new file mode 100644 index 0000000000..3ff831be36 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_purple_dragonjag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:small_purple_dragonjag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_quartz_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_quartz_bud.json new file mode 100644 index 0000000000..7b2fa90a9a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_quartz_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:quartz" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_red_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_red_dragonjag.json new file mode 100644 index 0000000000..fbec06389a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_red_dragonjag.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:small_red_dragonjag" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/small_redstone_bud.json b/src/main/resources/data/spectrum/loot_tables/blocks/small_redstone_bud.json new file mode 100644 index 0000000000..7a1a9fbafc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/small_redstone_bud.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:redstone" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/snapping_ivy.json b/src/main/resources/data/spectrum/loot_tables/blocks/snapping_ivy.json new file mode 100644 index 0000000000..22941268e5 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/snapping_ivy.json @@ -0,0 +1,49 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:snapping_ivy", + "conditions": [ + { + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears", + "spectrum:bedrock_shears" + ] + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/sparklestone_block.json b/src/main/resources/data/spectrum/loot_tables/blocks/sparklestone_block.json deleted file mode 100644 index 5a6b349e73..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/sparklestone_block.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:sparklestone_block" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/sparklestone_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/sparklestone_ore.json deleted file mode 100644 index 75ae882f88..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/sparklestone_ore.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:item", - "conditions": [ - { - "condition": "minecraft:match_tool", - "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 - } - } - ] - } - } - ], - "name": "spectrum:sparklestone_ore" - }, - { - "type": "minecraft:item", - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 3.0 - }, - "add": false - }, - { - "function": "minecraft:apply_bonus", - "enchantment": "minecraft:fortune", - "formula": "minecraft:ore_drops" - }, - { - "function": "minecraft:explosion_decay" - } - ], - "name": "spectrum:sparklestone_gem" - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stone_shimmerstone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/stone_shimmerstone_light.json new file mode 100644 index 0000000000..5dbf87becc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stone_shimmerstone_light.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:stone_shimmerstone_light" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stone_sparklestone_light.json b/src/main/resources/data/spectrum/loot_tables/blocks/stone_sparklestone_light.json deleted file mode 100644 index 9d2f8a583f..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/stone_sparklestone_light.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:stone_sparklestone_light" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stratine_fragment_block.json b/src/main/resources/data/spectrum/loot_tables/blocks/stratine_fragment_block.json new file mode 100644 index 0000000000..124bb205ee --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stratine_fragment_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:stratine_fragment_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stratine_ore.json b/src/main/resources/data/spectrum/loot_tables/blocks/stratine_ore.json new file mode 100644 index 0000000000..2f35fabd09 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stratine_ore.json @@ -0,0 +1,82 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:stratine_ore", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:stratine_gem", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "spectrum:resonance", + "levels": { + "min": 1 + } + } + ] + } + } + ] + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:stratine_gem", + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.04 + } + ] + }, + { + "type": "minecraft:item", + "name": "spectrum:stratine_fragments", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops" + }, + { + "function": "minecraft:explosion_decay" + } + ] + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stripped_chestnut_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_chestnut_noxcap_stem.json new file mode 100644 index 0000000000..5218586f4a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_chestnut_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:stripped_chestnut_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stripped_ebony_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_ebony_noxcap_stem.json new file mode 100644 index 0000000000..715a8c14bc --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_ebony_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:stripped_ebony_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stripped_ivory_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_ivory_noxcap_stem.json new file mode 100644 index 0000000000..8c175adfc9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_ivory_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:stripped_ivory_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stripped_slate_noxcap_stem.json b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_slate_noxcap_stem.json new file mode 100644 index 0000000000..8c642d74f2 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stripped_slate_noxcap_stem.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [{ + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [{ + "type": "minecraft:item", + "name": "spectrum:stripped_slate_noxcap_stem" + }], + "conditions": [{ + "condition": "minecraft:survives_explosion" + }] + }] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stuck_lightning_stone.json b/src/main/resources/data/spectrum/loot_tables/blocks/stuck_lightning_stone.json deleted file mode 100644 index f4581825f9..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/stuck_lightning_stone.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:lightning_stone" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/stuck_storm_stone.json b/src/main/resources/data/spectrum/loot_tables/blocks/stuck_storm_stone.json new file mode 100644 index 0000000000..1ed5c1cfcb --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/stuck_storm_stone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:storm_stone" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/sucking_chest.json b/src/main/resources/data/spectrum/loot_tables/blocks/sucking_chest.json deleted file mode 100644 index 62aa650a65..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/sucking_chest.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:sucking_chest" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tadpole_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/tadpole_head.json new file mode 100644 index 0000000000..c2c3cb59ba --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tadpole_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:tadpole_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tall_black_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/tall_black_dragonjag.json new file mode 100644 index 0000000000..d151b2e902 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tall_black_dragonjag.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_black_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_black_dragonjag", + "properties": { + "half": "lower", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_black_dragonjag" + ], + "state": { + "half": "upper", + "dead": "false" + } + } + } + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_black_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_black_dragonjag", + "properties": { + "half": "upper", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_black_dragonjag" + ], + "state": { + "half": "lower", + "dead": "false" + } + } + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tall_green_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/tall_green_dragonjag.json new file mode 100644 index 0000000000..98148a6c25 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tall_green_dragonjag.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_green_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_green_dragonjag", + "properties": { + "half": "lower", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_green_dragonjag" + ], + "state": { + "half": "upper", + "dead": "false" + } + } + } + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_green_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_green_dragonjag", + "properties": { + "half": "upper", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_green_dragonjag" + ], + "state": { + "half": "lower", + "dead": "false" + } + } + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tall_pink_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/tall_pink_dragonjag.json new file mode 100644 index 0000000000..71a30c4e63 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tall_pink_dragonjag.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_pink_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_pink_dragonjag", + "properties": { + "half": "lower", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_pink_dragonjag" + ], + "state": { + "half": "upper", + "dead": "false" + } + } + } + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_pink_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_pink_dragonjag", + "properties": { + "half": "upper", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_pink_dragonjag" + ], + "state": { + "half": "lower", + "dead": "false" + } + } + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tall_purple_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/tall_purple_dragonjag.json new file mode 100644 index 0000000000..f70a7fd5f4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tall_purple_dragonjag.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_purple_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_purple_dragonjag", + "properties": { + "half": "lower", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_purple_dragonjag" + ], + "state": { + "half": "upper", + "dead": "false" + } + } + } + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_purple_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_purple_dragonjag", + "properties": { + "half": "upper", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_purple_dragonjag" + ], + "state": { + "half": "lower", + "dead": "false" + } + } + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tall_red_dragonjag.json b/src/main/resources/data/spectrum/loot_tables/blocks/tall_red_dragonjag.json new file mode 100644 index 0000000000..b5854af1aa --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tall_red_dragonjag.json @@ -0,0 +1,85 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_red_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_red_dragonjag", + "properties": { + "half": "lower", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": 1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_red_dragonjag" + ], + "state": { + "half": "upper", + "dead": "false" + } + } + } + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "spectrum:small_red_dragonjag" + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:tall_red_dragonjag", + "properties": { + "half": "upper", + "dead": "false" + } + }, + { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": [ + "spectrum:tall_red_dragonjag" + ], + "state": { + "half": "lower", + "dead": "false" + } + } + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/terror.json b/src/main/resources/data/spectrum/loot_tables/blocks/terror.json deleted file mode 100644 index 7c00ee8486..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/terror.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:bedrock_dust" - } - ], - "conditions": [ - { - "condition": "minecraft:block_state_property", - "block": "spectrum:terror", - "properties": { - "decay_state": "bedrock" - } - } - ] - } - ], - "functions": [ - { - "function": "minecraft:set_count", - "count": { - "type": "minecraft:uniform", - "min": 1.0, - "max": 2.0 - }, - "add": false - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tinted_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/tinted_player_only_glass.json deleted file mode 100644 index 9b86af4f23..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/tinted_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:tinted_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/tinted_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/tinted_semi_permeable_glass.json new file mode 100644 index 0000000000..189fd67709 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/tinted_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:tinted_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/topaz_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/topaz_player_only_glass.json deleted file mode 100644 index c00c00f871..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/topaz_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:topaz_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/topaz_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/topaz_semi_permeable_glass.json new file mode 100644 index 0000000000..e3295d5a42 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/topaz_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:topaz_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/vanilla_player_only_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/vanilla_player_only_glass.json deleted file mode 100644 index 541f253f85..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/vanilla_player_only_glass.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:vanilla_player_only_glass" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/vanilla_semi_permeable_glass.json b/src/main/resources/data/spectrum/loot_tables/blocks/vanilla_semi_permeable_glass.json new file mode 100644 index 0000000000..e92ec29419 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/vanilla_semi_permeable_glass.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:vanilla_semi_permeable_glass" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/warden_head.json b/src/main/resources/data/spectrum/loot_tables/blocks/warden_head.json new file mode 100644 index 0000000000..62780cce27 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/warden_head.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:warden_head" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay.json new file mode 100644 index 0000000000..3224dfa9fa --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:weathered_polished_shale_clay" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay_slab.json new file mode 100644 index 0000000000..ce09ff07b9 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:weathered_polished_shale_clay_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:weathered_polished_shale_clay_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..288ee7c02f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_polished_shale_clay_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:weathered_polished_shale_clay_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_brick_slab.json new file mode 100644 index 0000000000..4ca6fd0647 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_brick_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:weathered_shale_clay_brick_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:weathered_shale_clay_brick_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..ea5741d8ac --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:weathered_shale_clay_brick_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_bricks.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_bricks.json new file mode 100644 index 0000000000..2d13dc99e1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_bricks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:weathered_shale_clay_bricks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tile_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tile_slab.json new file mode 100644 index 0000000000..1ba6b01eb1 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tile_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:weathered_shale_clay_tile_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:weathered_shale_clay_tile_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..4d03063167 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:weathered_shale_clay_tile_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tiles.json b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tiles.json new file mode 100644 index 0000000000..597eb8f46b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/weathered_shale_clay_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:weathered_shale_clay_tiles" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_button.json new file mode 100644 index 0000000000..a6ab12ee09 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:white_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_fence.json new file mode 100644 index 0000000000..0a047935ae --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:white_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_fence_gate.json new file mode 100644 index 0000000000..0a032a6875 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:white_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_leaves.json index 0c2711c35a..1213d8f144 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:white_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_button.json deleted file mode 100644 index fef3e70012..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:white_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_fence.json deleted file mode 100644 index 0d4f0df82b..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:white_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_fence_gate.json deleted file mode 100644 index 84aac90842..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:white_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_pressure_plate.json deleted file mode 100644 index ec6530f666..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:white_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_slab.json deleted file mode 100644 index c62ac2e5f3..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:white_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_stairs.json deleted file mode 100644 index 2f4878f72a..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/white_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:white_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_pressure_plate.json new file mode 100644 index 0000000000..a2dcc7d12b --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:white_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_slab.json new file mode 100644 index 0000000000..16bd3dba5d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:white_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:white_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/white_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/white_stairs.json new file mode 100644 index 0000000000..de360cfdfb --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/white_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:white_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_button.json new file mode 100644 index 0000000000..f3e1c26373 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_button.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:yellow_button" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_fence.json new file mode 100644 index 0000000000..d65e5fb34f --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_fence.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:yellow_fence" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_fence_gate.json new file mode 100644 index 0000000000..c76ebf3f7a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_fence_gate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:yellow_fence_gate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_leaves.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_leaves.json index 0126937a82..d405171eee 100644 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_leaves.json +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_leaves.json @@ -45,25 +45,30 @@ "name": "spectrum:yellow_sapling", "conditions": [ { - "condition": "minecraft:survives_explosion" - }, - { - "condition": "minecraft:table_bonus", - "enchantment": "minecraft:fortune", - "chances": [ - 0.05, - 0.0625, - 0.083333336, - 0.1 + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune", + "chances": [ + 0.025, + 0.05, + 0.075, + 0.01 + ] + }, + { + "condition": "minecraft:table_bonus", + "enchantment": "spectrum:resonance", + "chances": [ + 0, + 0.15 + ] + } ] }, { - "condition": "minecraft:table_bonus", - "enchantment": "spectrum:resonance", - "chances": [ - 0, - 0.8 - ] + "condition": "minecraft:survives_explosion" } ] } @@ -129,4 +134,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_button.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_button.json deleted file mode 100644 index 597b21b99c..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_button.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:yellow_plank_button" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_fence.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_fence.json deleted file mode 100644 index 73d60615db..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_fence.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:yellow_plank_fence" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_fence_gate.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_fence_gate.json deleted file mode 100644 index 56a73f9bb9..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_fence_gate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:yellow_plank_fence_gate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_pressure_plate.json deleted file mode 100644 index 358b91b51d..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_pressure_plate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:yellow_plank_pressure_plate" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_slab.json deleted file mode 100644 index 68338e9be4..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_slab.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:yellow_plank_slab" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_stairs.json deleted file mode 100644 index 9285642173..0000000000 --- a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_plank_stairs.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "spectrum:yellow_plank_stairs" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_pressure_plate.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_pressure_plate.json new file mode 100644 index 0000000000..707a76986a --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:yellow_pressure_plate" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_slab.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_slab.json new file mode 100644 index 0000000000..155808f07c --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_slab.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:set_count", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "spectrum:yellow_slab", + "properties": { + "type": "double" + } + } + ], + "count": 2.0, + "add": false + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "spectrum:yellow_slab" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/blocks/yellow_stairs.json b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_stairs.json new file mode 100644 index 0000000000..572abca72d --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/blocks/yellow_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:yellow_stairs" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_powders.json b/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_powders.json new file mode 100644 index 0000000000..bd64f255a6 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_powders.json @@ -0,0 +1,87 @@ +{ + "type": "minecraft:chest", + "pools": [ + { + "rolls": { + "min": 3, + "max": 7 + }, + "bonus_rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:cobweb" + }, + { + "type": "minecraft:item", + "name": "minecraft:bone" + }, + { + "type": "minecraft:item", + "name": "minecraft:gold_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:amethyst_powder", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:citrine_powder", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:topaz_powder", + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "min": 3, + "max": 6 + } + } + ] + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_small.json b/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_small.json index 0fc5164dd5..14639ec921 100644 --- a/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_small.json +++ b/src/main/resources/data/spectrum/loot_tables/chests/ancient_ruins_small.json @@ -32,7 +32,7 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:sparklestone_gem" + "name": "spectrum:shimmerstone_gem" } ], "functions": [ diff --git a/src/main/resources/data/spectrum/loot_tables/chests/color_combinations_cmy.json b/src/main/resources/data/spectrum/loot_tables/chests/color_combinations_cmy.json index 9aa4678c95..d95849b0b6 100644 --- a/src/main/resources/data/spectrum/loot_tables/chests/color_combinations_cmy.json +++ b/src/main/resources/data/spectrum/loot_tables/chests/color_combinations_cmy.json @@ -37,7 +37,7 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:sparklestone_gem" + "name": "spectrum:shimmerstone_gem" } ], "functions": [ diff --git a/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/bedrock_tier_resources.json b/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/bedrock_tier_resources.json index 33ae02cf0f..c182bd8427 100644 --- a/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/bedrock_tier_resources.json +++ b/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/bedrock_tier_resources.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:sparklestone_gem", + "name": "spectrum:shimmerstone_gem", "functions": [ { "function": "minecraft:set_count", @@ -32,7 +32,7 @@ }, { "type": "minecraft:item", - "name": "spectrum:scarlet_fragments", + "name": "spectrum:stratine_fragments", "functions": [ { "function": "minecraft:set_count", @@ -45,7 +45,7 @@ }, { "type": "minecraft:item", - "name": "spectrum:scarlet_gem", + "name": "spectrum:stratine_gem", "functions": [ { "function": "minecraft:set_count", diff --git a/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/moonstone_tier_resources.json b/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/moonstone_tier_resources.json index 33ae02cf0f..c182bd8427 100644 --- a/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/moonstone_tier_resources.json +++ b/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/moonstone_tier_resources.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:sparklestone_gem", + "name": "spectrum:shimmerstone_gem", "functions": [ { "function": "minecraft:set_count", @@ -32,7 +32,7 @@ }, { "type": "minecraft:item", - "name": "spectrum:scarlet_fragments", + "name": "spectrum:stratine_fragments", "functions": [ { "function": "minecraft:set_count", @@ -45,7 +45,7 @@ }, { "type": "minecraft:item", - "name": "spectrum:scarlet_gem", + "name": "spectrum:stratine_gem", "functions": [ { "function": "minecraft:set_count", diff --git a/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/onyx_tier_resources.json b/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/onyx_tier_resources.json index 24fc159c06..3711500c17 100644 --- a/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/onyx_tier_resources.json +++ b/src/main/resources/data/spectrum/loot_tables/chests/sub_tables/onyx_tier_resources.json @@ -6,7 +6,7 @@ "entries": [ { "type": "minecraft:item", - "name": "spectrum:sparklestone_gem", + "name": "spectrum:shimmerstone_gem", "functions": [ { "function": "minecraft:set_count", diff --git a/src/main/resources/data/spectrum/loot_tables/entity/shooting_star/shooting_star_glistering.json b/src/main/resources/data/spectrum/loot_tables/entity/shooting_star/shooting_star_glistering.json index 4214b400ee..0a2ccb1465 100644 --- a/src/main/resources/data/spectrum/loot_tables/entity/shooting_star/shooting_star_glistering.json +++ b/src/main/resources/data/spectrum/loot_tables/entity/shooting_star/shooting_star_glistering.json @@ -38,7 +38,7 @@ }, { "type": "minecraft:item", - "name": "spectrum:sparklestone_gem", + "name": "spectrum:shimmerstone_gem", "functions": [ { "function": "minecraft:set_count", diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/deeper_down/treasure.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/deeper_down/treasure.json index 06b6339c9d..97c8499449 100644 --- a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/deeper_down/treasure.json +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/deeper_down/treasure.json @@ -12,10 +12,6 @@ "type": "minecraft:item", "name": "minecraft:nautilus_shell" }, - { - "type": "minecraft:item", - "name": "minecraft:slime_ball" - }, { "type": "minecraft:item", "name": "minecraft:book", diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/fish.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/fish.json new file mode 100644 index 0000000000..f032d193b4 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/fish.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "weight": 60, + "name": "minecraft:cod" + }, + { + "type": "minecraft:item", + "weight": 25, + "name": "minecraft:salmon" + }, + { + "type": "minecraft:item", + "weight": 13, + "name": "minecraft:pufferfish" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/fishing.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/fishing.json new file mode 100644 index 0000000000..3bf295bd66 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/fishing.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/dragonrot/junk", + "weight": 10, + "quality": -2 + }, + { + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/dragonrot/treasure", + "weight": 5, + "quality": 2, + "conditions": [ + { + "condition": "minecraft:entity_properties", + "predicate": { + "fishing_hook": { + "in_open_water": true + } + }, + "entity": "this" + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/dragonrot/fish", + "weight": 80, + "quality": -1 + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/junk.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/junk.json new file mode 100644 index 0000000000..4d99d0bca3 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/junk.json @@ -0,0 +1,73 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "weight": 10, + "name": "minecraft:leather" + }, + { + "type": "minecraft:item", + "weight": 10, + "name": "minecraft:bone" + }, + { + "type": "minecraft:item", + "weight": 5, + "name": "minecraft:string" + }, + { + "type": "minecraft:item", + "weight": 2, + "name": "minecraft:fishing_rod", + "functions": [ + { + "function": "minecraft:set_damage", + "damage": { + "type": "minecraft:uniform", + "min": 0, + "max": 0.9 + }, + "add": false + } + ] + }, + { + "type": "minecraft:item", + "weight": 10, + "name": "minecraft:bowl" + }, + { + "type": "minecraft:item", + "weight": 5, + "name": "minecraft:stick" + }, + { + "type": "minecraft:item", + "name": "minecraft:ink_sac", + "functions": [ + { + "function": "minecraft:set_count", + "count": 10, + "add": false + } + ] + }, + { + "type": "minecraft:item", + "weight": 10, + "name": "minecraft:tripwire_hook" + }, + { + "type": "minecraft:item", + "weight": 10, + "name": "minecraft:rotten_flesh" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/treasure.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/treasure.json new file mode 100644 index 0000000000..425ea98c86 --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/dragonrot/treasure.json @@ -0,0 +1,74 @@ +{ + "type": "minecraft:fishing", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:name_tag" + }, + { + "type": "minecraft:item", + "name": "minecraft:saddle" + }, + { + "type": "minecraft:item", + "name": "minecraft:bow", + "functions": [ + { + "function": "minecraft:set_damage", + "damage": { + "type": "minecraft:uniform", + "min": 0, + "max": 0.25 + }, + "add": false + }, + { + "function": "minecraft:enchant_with_levels", + "levels": 30, + "treasure": true + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:fishing_rod", + "functions": [ + { + "function": "minecraft:set_damage", + "damage": { + "type": "minecraft:uniform", + "min": 0, + "max": 0.25 + }, + "add": false + }, + { + "function": "minecraft:enchant_with_levels", + "levels": 30, + "treasure": true + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:book", + "functions": [ + { + "function": "minecraft:enchant_with_levels", + "levels": 30, + "treasure": true + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:nautilus_shell" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/lava/junk.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/lava/junk.json index d99ba20e44..8fb4f7ab7b 100644 --- a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/lava/junk.json +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/lava/junk.json @@ -18,6 +18,11 @@ "name": "minecraft:netherrack", "weight": 1 }, + { + "type": "item", + "name": "minecraft:nether_brick", + "weight": 1 + }, { "type": "minecraft:item", "weight": 1, diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/liquid_crystal/treasure.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/liquid_crystal/treasure.json index 84131fa893..4bbbddbddb 100644 --- a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/liquid_crystal/treasure.json +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/liquid_crystal/treasure.json @@ -95,7 +95,7 @@ "type_specific": { "type": "player", "advancements": { - "spectrum:midgame/collect_moonstone_shard": true + "spectrum:lategame/collect_moonstone_shard": true } } } diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/mud/treasure.json b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/mud/treasure.json index 66c48be5d9..97a4501bd9 100644 --- a/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/mud/treasure.json +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/fishing/mud/treasure.json @@ -14,7 +14,7 @@ }, { "type": "minecraft:item", - "name": "minecraft:slime_ball" + "name": "minecraft:clay_ball" }, { "type": "minecraft:item", diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/sawblade_holly_harvesting.json b/src/main/resources/data/spectrum/loot_tables/gameplay/sawblade_holly_harvesting.json new file mode 100644 index 0000000000..773b6c05fe --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/sawblade_holly_harvesting.json @@ -0,0 +1,34 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:sawblade_holly_berry" + } + ], + "functions": [ + { + "function": "minecraft:set_count", + "count": { + "type": "minecraft:uniform", + "min": 2, + "max": 3 + }, + "add": false + }, + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "parameters": { + "bonusMultiplier": 1 + } + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/sawblade_holly_shearing.json b/src/main/resources/data/spectrum/loot_tables/gameplay/sawblade_holly_shearing.json new file mode 100644 index 0000000000..f026d97aea --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/sawblade_holly_shearing.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:prickly_bayleaf" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/chestnut_noxcap_stripping.json b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/chestnut_noxcap_stripping.json new file mode 100644 index 0000000000..217331d7ba --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/chestnut_noxcap_stripping.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:myceylon" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/ebony_noxcap_stripping.json b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/ebony_noxcap_stripping.json new file mode 100644 index 0000000000..217331d7ba --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/ebony_noxcap_stripping.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:myceylon" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/ivory_noxcap_stripping.json b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/ivory_noxcap_stripping.json new file mode 100644 index 0000000000..217331d7ba --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/ivory_noxcap_stripping.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:myceylon" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/slate_noxcap_stripping.json b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/slate_noxcap_stripping.json new file mode 100644 index 0000000000..217331d7ba --- /dev/null +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/stripping/slate_noxcap_stripping.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "spectrum:myceylon" + } + ] + } + ] +} diff --git a/src/main/resources/data/spectrum/loot_tables/gameplay/universal_fishing.json b/src/main/resources/data/spectrum/loot_tables/gameplay/universal_fishing.json index baedde7d82..401df18ffe 100644 --- a/src/main/resources/data/spectrum/loot_tables/gameplay/universal_fishing.json +++ b/src/main/resources/data/spectrum/loot_tables/gameplay/universal_fishing.json @@ -6,37 +6,25 @@ "bonus_rolls": 0, "entries": [ { - "type": "minecraft:alternatives", - "children": [ - { - "type": "minecraft:loot_table", - "name": "spectrum:gameplay/fishing/deeper_down/fishing", - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "dimension": "spectrum:deeper_down_dimension" - } - } - ] - }, + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/lava/fishing", + "conditions": [ { - "type": "minecraft:loot_table", - "name": "spectrum:gameplay/fishing/end/fishing", - "conditions": [ - { - "condition": "minecraft:location_check", - "predicate": { - "dimension": "minecraft:the_end" + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "location": { + "fluid": { + "tag": "minecraft:lava" } } - ] - }, - { - "type": "minecraft:loot_table", - "name": "minecraft:gameplay/fishing" + } } - ], + ] + }, + { + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/mud/fishing", "conditions": [ { "condition": "minecraft:entity_properties", @@ -44,7 +32,7 @@ "predicate": { "location": { "fluid": { - "tag": "minecraft:water" + "tag": "spectrum:mud" } } } @@ -53,7 +41,7 @@ }, { "type": "minecraft:loot_table", - "name": "spectrum:gameplay/fishing/lava/fishing", + "name": "spectrum:gameplay/fishing/liquid_crystal/fishing", "conditions": [ { "condition": "minecraft:entity_properties", @@ -61,7 +49,7 @@ "predicate": { "location": { "fluid": { - "tag": "minecraft:lava" + "tag": "spectrum:liquid_crystal" } } } @@ -70,7 +58,7 @@ }, { "type": "minecraft:loot_table", - "name": "spectrum:gameplay/fishing/mud/fishing", + "name": "spectrum:gameplay/fishing/midnight_solution/fishing", "conditions": [ { "condition": "minecraft:entity_properties", @@ -78,7 +66,7 @@ "predicate": { "location": { "fluid": { - "tag": "spectrum:mud" + "tag": "spectrum:midnight_solution" } } } @@ -87,7 +75,7 @@ }, { "type": "minecraft:loot_table", - "name": "spectrum:gameplay/fishing/liquid_crystal/fishing", + "name": "spectrum:gameplay/fishing/dragonrot/fishing", "conditions": [ { "condition": "minecraft:entity_properties", @@ -95,7 +83,7 @@ "predicate": { "location": { "fluid": { - "tag": "spectrum:liquid_crystal" + "tag": "spectrum:dragonrot" } } } @@ -103,8 +91,37 @@ ] }, { - "type": "minecraft:loot_table", - "name": "spectrum:gameplay/fishing/midnight_solution/fishing", + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/deeper_down/fishing", + "conditions": [ + { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "spectrum:deeper_down_dimension" + } + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "spectrum:gameplay/fishing/end/fishing", + "conditions": [ + { + "condition": "minecraft:location_check", + "predicate": { + "dimension": "minecraft:the_end" + } + } + ] + }, + { + "type": "minecraft:loot_table", + "name": "minecraft:gameplay/fishing" + } + ], "conditions": [ { "condition": "minecraft:entity_properties", @@ -112,7 +129,7 @@ "predicate": { "location": { "fluid": { - "tag": "spectrum:midnight_solution" + "tag": "minecraft:water" } } } diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/book.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/book.json similarity index 82% rename from src/main/resources/data/spectrum/patchouli_books/manual/book.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/book.json index 9ab33df888..752ba8b054 100644 --- a/src/main/resources/data/spectrum/patchouli_books/manual/book.json +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/book.json @@ -1,11 +1,11 @@ { - "name": "item.spectrum.manual", - "landing_text": "item.spectrum.manual.landing_text", + "name": "item.spectrum.guidebook", + "landing_text": "item.spectrum.guidebook.landing_text", "version": "12", "book_texture": "patchouli:textures/gui/book_gray.png", - "model": "spectrum:manual", + "model": "spectrum:guidebook", "dont_generate_book": true, - "custom_book_item": "spectrum:manual", + "custom_book_item": "spectrum:guidebook", "filler_texture": "spectrum:textures/gui/patchouli/page_filler.png", "advancements_tab": "spectrum:spectrum", "macros": { diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/creating_life_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/creating_life_category.json new file mode 100644 index 0000000000..b8dcf48e20 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/creating_life_category.json @@ -0,0 +1,6 @@ +{ + "name": "Creating Life", + "description": "Living every biologists dream: Your journey of creating life.", + "icon": "spectrum:bottle_of_fading", + "sortnum": 8 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/decoration_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/decoration_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/decoration_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/decoration_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/dimension_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/dimension_category.json new file mode 100644 index 0000000000..b4a081d439 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/dimension_category.json @@ -0,0 +1,6 @@ +{ + "name": "Beneath the Bedrock", + "description": "Your personal Journey to the Center of the World.", + "icon": "minecraft:bedrock", + "sortnum": 11 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/enchanting_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/enchanting_category.json new file mode 100644 index 0000000000..5951ebd714 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/enchanting_category.json @@ -0,0 +1,6 @@ +{ + "name": "Enchanting", + "description": "Everything you need for improving your tools and weapons.", + "icon": "spectrum:enchanter", + "sortnum": 9 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/equipment_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/equipment_category.json new file mode 100644 index 0000000000..1e1be1a45b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/equipment_category.json @@ -0,0 +1,6 @@ +{ + "name": "Equipment", + "description": "Tools, Armor and Trinkets.$(br)Everything you can wield or equip to do fun stuff or increase your abilities.", + "icon": "spectrum:multitool", + "sortnum": 4 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/general_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/general_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/general_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/general_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/hints_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/hints_category.json new file mode 100644 index 0000000000..de027da284 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/hints_category.json @@ -0,0 +1,6 @@ +{ + "name": "Progression Hints", + "description": "If you are stuck and do not know how to progress further you may unlock some hints here.$(br2)Consider this section non-canon.$(br) ~DaFuqs", + "icon": "minecraft:writable_book", + "sortnum": 13 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magic_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magic_category.json new file mode 100644 index 0000000000..2dc216fa79 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magic_category.json @@ -0,0 +1,6 @@ +{ + "name": "Ink Magic", + "description": "The elemental spirits are calling out to you.", + "icon": "spectrum:pigment_palette", + "sortnum": 12 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magical_blocks_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magical_blocks_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magical_blocks_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magical_blocks_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magical_items_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magical_items_category.json new file mode 100644 index 0000000000..5d20d4e8e9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/magical_items_category.json @@ -0,0 +1,6 @@ +{ + "name": "Magical Items", + "description": "A number of fun devices you thought up to make your life easier.", + "icon": "spectrum:natures_staff", + "sortnum": 5 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/mod_integration_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/mod_integration_category.json new file mode 100644 index 0000000000..7b789522b5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/mod_integration_category.json @@ -0,0 +1,6 @@ +{ + "name": "Mod Integration", + "description": "All the additional functionality & recipes in combination with other mods. Knowledge transfer is a fine thing$(br)You will expand each mod's pages as you go.", + "icon": "minecraft:knowledge_book", + "sortnum": 14 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/pastel_network_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/pastel_network_category.json new file mode 100644 index 0000000000..36fc1f93af --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/pastel_network_category.json @@ -0,0 +1,6 @@ +{ + "name": "Pastel Network", + "description": "Wireless Item Transfer using Azurite!", + "icon": "spectrum:provider_node", + "sortnum": 10 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/redstone_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/redstone_category.json new file mode 100644 index 0000000000..c42fdfbc0b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/redstone_category.json @@ -0,0 +1,6 @@ +{ + "name": "Redstone Components", + "description": "As soon as you held the first gemstone in your hands, you noticed the shards reacting to even the smallest change in their environment.$(br)You can take advantage of these properties by using them in new constructions and connecting those to your primitive dust lines.", + "icon": "minecraft:redstone", + "sortnum": 7 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/resources_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/resources_category.json new file mode 100644 index 0000000000..2439ee2956 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/categories/resources_category.json @@ -0,0 +1,6 @@ +{ + "name": "Resources", + "description": "Scattered around the world are various plants and ores, just waiting to get discovered. If you notice them, that is.$(br)The more familiar you are with the magic that comes from the world, the more of them you are able to glimpse.", + "icon": "spectrum:shimmerstone_ore", + "sortnum": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/creating_life.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/creating_life.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/creating_life.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/creating_life.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/decay_away.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/decay_away.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/decay_away.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/decay_away.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/egg_laying_wooly_pig.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/egg_laying_wooly_pig.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/egg_laying_wooly_pig.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/egg_laying_wooly_pig.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/fading.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/fading.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/fading.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/fading.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/failing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/failing.json new file mode 100644 index 0000000000..2346c20926 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/failing.json @@ -0,0 +1,32 @@ +{ + "name": "Experiment #2: Failing", + "icon": "spectrum:bottle_of_failing", + "advancement": "spectrum:progression/unlock_bottle_of_failing", + "category": "spectrum:creating_life_category", + "turnin": "spectrum:midgame/collect_neolith", + "extra_recipe_mappings": { + "spectrum:bottle_of_failing": 0, + "spectrum:neolith": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottle_of_failing", + "text": "Ambition has taken hold of you, seriously. Your first step towards changing the world.$(br)Empowered by the potent energy of your Onyx and Stratine, this second organism you created is clearly... more active than your last creation.$(br2)$(bold)And DEFINITELY hungrier.$(br)WAY hungrier." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/bottle_of_failing", + "text": "Maybe one of the sturdiest materials you know can satisfy their hunger? What has to be done has to be done." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/collect_neolith", + "title": "Neolith", + "anchor": "neolith", + "item": "spectrum:neolith", + "text": "The Obsidian was literally pulverized. This is what you call power!$(br2)The result was this sturdy reagent.$(br)Very powerful.$(br)Yes." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/memories.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/memories.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/memories.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/memories.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/mob_heads.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/mob_heads.json new file mode 100644 index 0000000000..2e8f2af1b3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/mob_heads.json @@ -0,0 +1,123 @@ +{ + "name": "Mob Heads", + "advancement": "spectrum:progression/enchantments/treasure_hunter", + "icon": "minecraft:wither_skeleton_skull", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:axolotl_blue_head": 0, + "spectrum:axolotl_brown_head": 0, + "spectrum:axolotl_cyan_head": 0, + "spectrum:axolotl_gold_head": 0, + "spectrum:axolotl_leucistic_head": 0, + "spectrum:bat_head": 0, + "spectrum:bee_head": 0, + "spectrum:blaze_head": 0, + "spectrum:cat_head": 0, + "spectrum:cave_spider_head": 0, + "spectrum:chicken_head": 0, + "spectrum:clownfish_head": 0, + "spectrum:cow_head": 0, + "spectrum:donkey_head": 0, + "spectrum:drowned_head": 0, + "spectrum:elder_guardian_head": 0, + "spectrum:enderman_head": 0, + "spectrum:endermite_head": 0, + "spectrum:evoker_head": 0, + "spectrum:fox_head": 0, + "spectrum:fox_arctic_head": 0, + "spectrum:ghast_head": 0, + "spectrum:glow_squid_head": 0, + "spectrum:goat_head": 0, + "spectrum:guardian_head": 0, + "spectrum:hoglin_head": 0, + "spectrum:horse_head": 0, + "spectrum:husk_head": 0, + "spectrum:illusioner_head": 0, + "spectrum:iron_golem_head": 0, + "spectrum:llama_head": 0, + "spectrum:magma_cube_head": 0, + "spectrum:mooshroom_red_head": 0, + "spectrum:mooshroom_brown_head": 0, + "spectrum:mule_head": 0, + "spectrum:ocelot_head": 0, + "spectrum:panda_head": 0, + "spectrum:parrot_blue_head": 0, + "spectrum:parrot_cyan_head": 0, + "spectrum:parrot_gray_head": 0, + "spectrum:parrot_green_head": 0, + "spectrum:parrot_red_head": 0, + "spectrum:phantom_head": 0, + "spectrum:pig_head": 0, + "spectrum:piglin_head": 0, + "spectrum:polar_bear_head": 0, + "spectrum:pufferfish_head": 0, + "spectrum:rabbit_head": 0, + "spectrum:ravager_head": 0, + "spectrum:salmon_head": 0, + "spectrum:sheep_black_head": 0, + "spectrum:sheep_blue_head": 0, + "spectrum:sheep_brown_head": 0, + "spectrum:sheep_cyan_head": 0, + "spectrum:sheep_gray_head": 0, + "spectrum:sheep_green_head": 0, + "spectrum:sheep_light_blue_head": 0, + "spectrum:sheep_light_gray_head": 0, + "spectrum:sheep_lime_head": 0, + "spectrum:sheep_magenta_head": 0, + "spectrum:sheep_orange_head": 0, + "spectrum:sheep_pink_head": 0, + "spectrum:sheep_purple_head": 0, + "spectrum:sheep_red_head": 0, + "spectrum:sheep_white_head": 0, + "spectrum:sheep_yellow_head": 0, + "spectrum:shulker_black_head": 0, + "spectrum:shulker_blue_head": 0, + "spectrum:shulker_brown_head": 0, + "spectrum:shulker_cyan_head": 0, + "spectrum:shulker_gray_head": 0, + "spectrum:shulker_green_head": 0, + "spectrum:shulker_light_blue_head": 0, + "spectrum:shulker_light_gray_head": 0, + "spectrum:shulker_lime_head": 0, + "spectrum:shulker_magenta_head": 0, + "spectrum:shulker_orange_head": 0, + "spectrum:shulker_pink_head": 0, + "spectrum:shulker_purple_head": 0, + "spectrum:shulker_red_head": 0, + "spectrum:shulker_white_head": 0, + "spectrum:shulker_yellow_head": 0, + "spectrum:silverfish_head": 0, + "spectrum:slime_head": 0, + "spectrum:snow_golem_head": 0, + "spectrum:spider_head": 0, + "spectrum:squid_head": 0, + "spectrum:stray_head": 0, + "spectrum:strider_head": 0, + "spectrum:trader_llama_head": 0, + "spectrum:turtle_head": 0, + "spectrum:vex_head": 0, + "spectrum:villager_head": 0, + "spectrum:vindicator_head": 0, + "spectrum:wandering_trader_head": 0, + "spectrum:witch_head": 0, + "spectrum:wither_head": 0, + "spectrum:wolf_head": 0, + "spectrum:zoglin_head": 0, + "spectrum:zombie_villager_head": 0, + "spectrum:zombified_piglin_head": 0, + "spectrum:warden_head": 0, + "spectrum:allay_head": 0, + "spectrum:tadpole_head": 0, + "spectrum:frog_temperate_head": 0, + "spectrum:frog_warm_head": 0, + "spectrum:frog_cold_head": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Mob Heads", + "item": "spectrum:cow_head", + "text": "Using your new $(l:enchanting/treasure_hunter)Treasure Hunter$(/l) enchantment you are able to collect heads from all kinds of mobs.$(br)While they make for a nice display of your modest acquisitions they still inherit a small spark of that creatures existence." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/ruin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/ruin.json new file mode 100644 index 0000000000..1dd55410ee --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/ruin.json @@ -0,0 +1,52 @@ +{ + "name": "Experiment #3: Ruin", + "icon": "spectrum:bottle_of_ruin", + "advancement": "spectrum:progression/unlock_bottle_of_ruin", + "category": "spectrum:creating_life_category", + "turnin": "spectrum:midgame/break_decayed_bedrock", + "extra_recipe_mappings": { + "spectrum:bottle_of_ruin": 0, + "spectrum:bedrock_dust": 0, + "spectrum:bedrock_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottle_of_ruin", + "text": "This is it: the perfection of your recipe. A little failure definitely couldn't stop you.$(br)This may be the one thing aggressive enough to destroy even some materials previously deemed unbreakable.$(br)If you are not careful you may ruin the world.$(br)A necessary sacrifice, really." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/bottle_of_ruin", + "text": "You won't even make it subtle. This stuff is $(#ff0000)NASTY$() by design, you didn't call it that for the fun of it." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "Bedrock Dust", + "item": "spectrum:bedrock_dust", + "text": "Even Bedrock was not strong enough to withstand your newly created \"life\". It broke through the Bedrock like dandelions through concrete." + }, + { + "type": "patchouli:text", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "A Friendly Reminder", + "text": "Should you be reading your notes here while some of that stuff is still roaming around free, you should change that as soon as possible otherwise you MIGHT regret it.$(br2)Luckily you already invented a $(l:creating_life/decay_away)suitable counteragent$(/l)." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "Bedrock Blocks", + "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_storage_block", + "text": "The chunks of Bedrock are so sturdy, that a normal Crafting Table can't handle it. But your $(l:general/pedestal)Pigment Pedestal$(/l) handles it no problem." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "Converting back", + "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_storage_block_uncrafting", + "text": "These seem so sturdy, not even a Wither would be able to break them.$(br2)Of course you are also able to convert it back again." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/spawner_manipulation.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/spawner_manipulation.json new file mode 100644 index 0000000000..10fc4deae6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/spawner_manipulation.json @@ -0,0 +1,48 @@ +{ + "name": "Spawner Manipulation", + "advancement": "spectrum:milestones/unlock_spawner_manipulation", + "icon": "spectrum:spawner", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "minecraft:spawner": 0, + "spectrum:spawner": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Harvesting Spawners", + "item": "spectrum:resonant_pickaxe", + "text": "The $(l:enchanting/resonance)Resonance$(/l) enchantment enables you to get Spawners to drop, to be collected by you.$(br2)While you haven't yet figured out how to make these constructs yourself, you now feel more than capable of changing their properties in your favor, using the $(l:creating_life/spirit_instiller)Spirit Instiller$(/l)." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "Changing Creature", + "recipe": "spectrum:spirit_instiller/spawner/spawner_creature_change", + "text": "Using a similar technique to $(l:creating_life/memory)remembering Memories$(/l) you can change the Spawners creature association, making it spew out another type of creature alltogether." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "Spawn Delay", + "recipe": "spectrum:spirit_instiller/spawner/spawner_spawn_delay_change", + "text": "Lowers both min and max spawn delay." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "Spawn Count", + "recipe": "spectrum:spirit_instiller/spawner/spawner_spawn_count_change", + "text": "Increases the count of Creatures summoned with each cycle." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "Summoning Criteria", + "recipe": "spectrum:spirit_instiller/spawner/spawner_max_nearby_entities_change", + "text": "Increases the number of creatures allowed to be close to the spawner.$(br)$(italic)Spawners seem to naturally stop spawning creatures when there are a lot of them close-by already. Almost like they want to give you a chance. Pathetic, isn't it? As if you would need that." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "Activation Range", + "recipe": "spectrum:spirit_instiller/spawner/spawner_required_player_range_change", + "text": "Increases the range you can stand for the spawner to still spawn creatures." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/spirit_instiller.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/spirit_instiller.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/spirit_instiller.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/creating_life/spirit_instiller.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/banner_patterns.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/banner_patterns.json new file mode 100644 index 0000000000..dccb0d43f9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/banner_patterns.json @@ -0,0 +1,28 @@ +{ + "name": "Banner Patterns", + "icon": "spectrum:amethyst_shard_banner_pattern", + "advancement": "spectrum:spectrum", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:logo_banner_pattern": 0, + "spectrum:amethyst_shard_banner_pattern": 0, + "spectrum:amethyst_cluster_banner_pattern": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Banner Patterns", + "border": true, + "images": [ + "spectrum:textures/gui/guidebook/banners.png" + ], + "text": "Resources and tools you come across can be used directly in the Loom as patterns." + }, + { + "type": "patchouli:crafting", + "title": "Vanilla Patterns", + "recipe": "spectrum:crafting_table/banner_patterns/amethyst_cluster_banner_pattern", + "recipe2": "spectrum:crafting_table/banner_patterns/amethyst_shard_banner_pattern" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/block_variants.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/block_variants.json new file mode 100644 index 0000000000..387516c6b9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/block_variants.json @@ -0,0 +1,125 @@ +{ + "name": "Block Variants", + "advancement": "spectrum:spectrum", + "icon": "spectrum:chiseled_polished_basalt", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:polished_basalt": 0, + "spectrum:polished_calcite": 0, + "spectrum:polished_basalt_slab": 0, + "spectrum:polished_calcite_slab": 0, + "spectrum:polished_basalt_stairs": 0, + "spectrum:polished_calcite_stairs": 0, + "spectrum:polished_basalt_pillar": 0, + "spectrum:polished_calcite_pillar": 0, + "spectrum:polished_basalt_crest": 0, + "spectrum:polished_calcite_crest": 0, + "spectrum:chiseled_polished_basalt": 0, + "spectrum:chiseled_polished_calcite": 0, + "spectrum:notched_polished_basalt": 0, + "spectrum:notched_polished_calcite": 0, + "spectrum:polished_basalt_wall": 0, + "spectrum:polished_calcite_wall": 0, + "spectrum:basalt_bricks": 0, + "spectrum:calcite_bricks": 0, + "spectrum:basalt_brick_slab": 0, + "spectrum:calcite_brick_slab": 0, + "spectrum:basalt_brick_stairs": 0, + "spectrum:calcite_brick_stairs": 0, + "spectrum:basalt_brick_wall": 0, + "spectrum:calcite_brick_wall": 0, + "spectrum:smooth_basalt_slab": 0, + "spectrum:calcite_slab": 0, + "spectrum:smooth_basalt_stairs": 0, + "spectrum:calcite_stairs": 0, + "spectrum:smooth_basalt_wall": 0, + "spectrum:calcite_wall": 0, + "spectrum:polished_calcite_button": 0, + "spectrum:polished_basalt_button": 0, + "spectrum:polished_calcite_pressure_plate": 0, + "spectrum:polished_basalt_pressure_plate": 0, + "spectrum:basalt_tiles": 0, + "spectrum:calcite_tiles": 0, + "spectrum:calcite_tile_stairs": 0, + "spectrum:basalt_tile_stairs": 0, + "spectrum:calcite_tile_wall": 0, + "spectrum:basalt_tile_wall": 0, + "spectrum:calcite_tile_slab": 0, + "spectrum:basalt_tile_slab": 0, + "spectrum:cracked_calcite_bricks": 0, + "spectrum:cracked_basalt_bricks": 0, + "spectrum:cracked_calcite_tiles": 0, + "spectrum:cracked_basalt_tiles": 0 + }, + "pages": [ + { + "type": "patchouli:smelting", + "anchor": "polished_basalt", + "title": "Polished Basalt", + "recipe": "spectrum:smelting/smooth_basalt_to_polished_basalt", + "text": "Remember the blocks that shielded your precious gemstones from external influences? Applying heat emphasizes their dark and white textures even more.$(br)When smelted, the Basalt almost turns black.$(br)Maybe they also absorbed some of the magical properties of the geodes themselves?$(br)Who knows." + }, + { + "type": "patchouli:smelting", + "anchor": "polished_calcite", + "title": "Polished Calcite", + "recipe": "spectrum:smelting/calcite_to_polished_calcite", + "text": "The bright white of Calcite may be the brightest natural color you've stumbled across, looking very clean and radiating dignity. The white Calcite is a wonderful contrast to the dark hues of Basalt.$(br2)Both Polished Basalt and Calcite can be crafted into a wide array of decoration blocks." + }, + { + "type": "patchouli:crafting", + "title": "Slabs & Stairs", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_slab", + "recipe2": "spectrum:crafting_table/calcite/polished_calcite_stairs" + }, + { + "type": "patchouli:crafting", + "title": "Pillars & Crests", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_pillar", + "recipe2": "spectrum:crafting_table/calcite/polished_calcite_crest" + }, + { + "type": "patchouli:crafting", + "title": "Chiseled & Notched", + "recipe": "spectrum:crafting_table/basalt/chiseled_polished_basalt", + "recipe2": "spectrum:crafting_table/calcite/notched_polished_calcite" + }, + { + "type": "patchouli:crafting", + "title": "Brick & Tile Variants", + "recipe": "spectrum:crafting_table/basalt/basalt_brick_stairs", + "recipe2": "spectrum:crafting_table/calcite/calcite_tile_stairs" + }, + { + "type": "patchouli:crafting", + "title": "Walls", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_wall", + "recipe2": "spectrum:crafting_table/calcite/calcite_tile_wall" + }, + { + "type": "patchouli:crafting", + "title": "Buttons & Pressure Pl.", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_button", + "recipe2": "spectrum:crafting_table/calcite/polished_calcite_pressure_plate" + }, + { + "type": "spectrum:anvil_crushing", + "title": "Cracked Variants", + "recipe": "spectrum:anvil_crushing/spectrum_pulverising/cracked_calcite_bricks", + "text": "You can crack Bricks & Tiles." + }, + { + "type": "patchouli:crafting", + "title": "Raw Variants", + "recipe": "spectrum:crafting_table/basalt/basalt_stairs", + "recipe2": "spectrum:crafting_table/calcite/calcite_slab" + }, + { + "type": "patchouli:smelting", + "title": "Smelting them back", + "recipe": "spectrum:smelting/basalt_unsmelting/basalt_brick_stairs_to_polished_basalt", + "recipe2": "spectrum:smelting/calcite_unsmelting/chiseled_polished_calcite_to_polished_calcite", + "text": "By applying heat, all blocks can be converted back to their polished versions again." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/colored_lamps.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/colored_lamps.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/colored_lamps.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/colored_lamps.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/colored_spore_blossoms.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/colored_spore_blossoms.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/colored_spore_blossoms.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/colored_spore_blossoms.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/decostones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/decostones.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/decostones.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/decostones.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/ethereal_platform.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/ethereal_platform.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/ethereal_platform.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/ethereal_platform.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_chimes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_chimes.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_chimes.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_chimes.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_glass.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_glass.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_glass.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_lamps.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_lamps.json new file mode 100644 index 0000000000..e135ced8f4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_lamps.json @@ -0,0 +1,32 @@ +{ + "name": "Gemstone Lamps", + "icon": "spectrum:citrine_basalt_lamp", + "advancement": "spectrum:collect_shimmerstone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_basalt_lamp": 0, + "spectrum:amethyst_basalt_lamp": 0, + "spectrum:citrine_basalt_lamp": 0, + "spectrum:onyx_basalt_lamp": 0, + "spectrum:moonstone_basalt_lamp": 0, + "spectrum:topaz_calcite_lamp": 0, + "spectrum:amethyst_calcite_lamp": 0, + "spectrum:citrine_calcite_lamp": 0, + "spectrum:onyx_calcite_lamp": 0, + "spectrum:moonstone_calcite_lamp": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:citrine_basalt_lamp", + "title": "Gemstone Lamps", + "text": "$(italic)When you set foot in the first geode, you were met with pleasant cozy glow. With your knowledge and the help of Shimmerstone, it is easy to amplify this light to create fancy lamps.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/gem_lamps/citrine_basalt_lamp", + "text": "Gemstone Lamps come in all the colors of gemstones available to you. Both $(l:decoration/block_variants#polished_basalt)Chiseled Calcite$() and $(l:decoration/block_variants#polished_calcite)Chiseled Basalt$() can be used as a base." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_runes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_runes.json new file mode 100644 index 0000000000..7f06c770dd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_runes.json @@ -0,0 +1,36 @@ +{ + "name": "Gemstone Runes", + "advancement": "spectrum:create_onyx_shard", + "icon": "spectrum:citrine_chiseled_calcite", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_chiseled_basalt": 0, + "spectrum:amethyst_chiseled_basalt": 0, + "spectrum:citrine_chiseled_basalt": 0, + "spectrum:onyx_chiseled_basalt": 0, + "spectrum:moonstone_chiseled_basalt": 0, + "spectrum:topaz_chiseled_calcite": 0, + "spectrum:amethyst_chiseled_calcite": 0, + "spectrum:citrine_chiseled_calcite": 0, + "spectrum:onyx_chiseled_calcite": 0, + "spectrum:moonstone_chiseled_calcite": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Calcite and Basalt keep the energies of the gems in check as long as they completely enclose the geode, that much is certain. Sometimes, however, the energy accumulated over centuries is so strong that it tears a hole in the geode.$(br2)You recreated the whole thing in miniature. For sure your new construction holds a lot of magical energy.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/runes/topaz_chiseled_basalt_from_shards", + "text": "Come in all gemstone colors. The frame can be built out of $(l:decoration/block_variants#polished_basalt)Polished Basalt$() or $(l:decoration/block_variants#polished_calcite)Polished Calcite$()." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Alternative Recipe", + "recipe": "spectrum:pedestal/tier1/runes/amethyst_chiseled_basalt_from_cluster", + "text": "If you manage to get a hold of complete gemstone clusters the runes are much more efficient to create." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_storage_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_storage_blocks.json new file mode 100644 index 0000000000..b7c2755311 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/gemstone_storage_blocks.json @@ -0,0 +1,55 @@ +{ + "name": "Gemstone Blocks", + "advancement": "spectrum:spectrum", + "icon": "spectrum:citrine_storage_block", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_storage_block": 0, + "spectrum:amethyst_storage_block": 0, + "spectrum:citrine_storage_block": 0, + "spectrum:onyx_storage_block": 0, + "spectrum:moonstone_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Gemstone Blocks", + "text": "$(italic)The gems have an exceptionally beautiful appearance.$(br)The look of the raw gems, as you know them from the geodes, seems a little too natural for your edgier buildings. With enough resources, however, this should not be a problem.$(br2)And if you run out of gems at some point, the decoration can easily be broken up again.$()" + }, + { + "type": "patchouli:crafting", + "title": "Polished Topaz", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "recipe": "spectrum:crafting_table/storage_blocks/topaz_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/topaz_shards_from_topaz_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Polished Amethyst", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "recipe": "spectrum:crafting_table/storage_blocks/amethyst_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/amethyst_shards_from_amethyst_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Polished Citrine", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "recipe": "spectrum:crafting_table/storage_blocks/citrine_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/citrine_shards_from_citrine_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Polished Onyx", + "advancement": "spectrum:create_onyx_shard", + "recipe": "spectrum:crafting_table/storage_blocks/onyx_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/onyx_shards_from_onyx_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Polished Moonstone", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "recipe": "spectrum:crafting_table/storage_blocks/moonstone_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/moonstone_shards_from_moonstone_storage_block" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/glowblocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/glowblocks.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/glowblocks.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/glowblocks.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/item_bowl.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/item_bowl.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/item_bowl.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/item_bowl.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/item_roundel.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/item_roundel.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/item_roundel.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/item_roundel.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/jade_vine_petal_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/jade_vine_petal_blocks.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/jade_vine_petal_blocks.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/jade_vine_petal_blocks.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/particle_spawner.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/particle_spawner.json new file mode 100644 index 0000000000..9dab0119bf --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/particle_spawner.json @@ -0,0 +1,22 @@ +{ + "name": "Particle Spawner", + "advancement": "spectrum:progression/unlock_particle_spawner", + "icon": "spectrum:particle_spawner", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:particle_spawner": 0, + "spectrum:creative_particle_spawner": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)The Shooting Star you picked up left a fantastic shower of particles on their way to the ground. You created the Particle Spawner to replicate this spectacle - and lots of others - yourself.$()$(br2)A chimney? Rocket launching particles? Atmospheric particle rain for your Pedestal? The Particle Spawner got you covered." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/particle_spawner", + "text": "In the Particle Spawner's GUI you are able to configure the particles to your liking. Apply redstone to start the fantastic display." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/phantom_frame.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/phantom_frame.json new file mode 100644 index 0000000000..27ab289dfb --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/phantom_frame.json @@ -0,0 +1,29 @@ +{ + "name": "Phantom Frame", + "icon": "spectrum:phantom_frame", + "advancement": "spectrum:collect_shimmerstone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:phantom_frame": 0, + "spectrum:glow_phantom_frame": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Phantom Frames", + "text": "$(italic)You would like to display your most precious belongings. So far, you've always used item frames for that. But some of your exhibitions would look better if you didn't see the frame.$(br)Piece of cake, you just take advantage of the light manipulating properties of your gems." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Crafting", + "recipe": "spectrum:pedestal/tier1/phantom_frame", + "text": "The Phantom Frame becomes invisible as soon as you display an item in it." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Glow Phantom Frame", + "recipe": "spectrum:pedestal/tier1/glow_phantom_frame", + "text": "This one has another nice touch: the presented item in it shines in a bright light, making it look even more imposing." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/radiant_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/radiant_glass.json new file mode 100644 index 0000000000..15e1ca982e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/radiant_glass.json @@ -0,0 +1,23 @@ +{ + "name": "Radiant Glass", + "advancement": "spectrum:collect_shimmerstone", + "icon": "spectrum:glowing_glass", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:glowing_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:glowing_glass", + "title": "Radiant Glass", + "text": "$(italic)You need a way to efficiently light your shelter and other structures.$(br2)What could be better than using the luminous properties of Shimmerstone directly in your glass?$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/glowing_glass", + "text": "Radiant Glass is pretty much the opposite of Tinted Glass. The Shimmerstone used in its manufacture ensures that the glass glows from within." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/shimmerstone_lights.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/shimmerstone_lights.json new file mode 100644 index 0000000000..94e8a180ce --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/decoration/shimmerstone_lights.json @@ -0,0 +1,34 @@ +{ + "name": "Shimmerstone Lights", + "icon": "spectrum:basalt_shimmerstone_light", + "advancement": "spectrum:progression/unlock_shimmerstone_lights", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:andesite_shimmerstone_light": 0, + "spectrum:basalt_shimmerstone_light": 0, + "spectrum:calcite_shimmerstone_light": 0, + "spectrum:deepslate_shimmerstone_light": 0, + "spectrum:diorite_shimmerstone_light": 0, + "spectrum:granite_shimmerstone_light": 0, + "spectrum:stone_shimmerstone_light": 0, + "spectrum:blackslag_shimmerstone_light": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)The first nights in this new world you lit your improvised hut with torches.$(br)As atmospheric as that was, it was also one thing: primitive.$(br2)To turn away from your dark, torch-lit past, you designed lamps based on Shimmerstone.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/shimmerstone_lights/basalt_shimmerstone_light", + "text": "You can use Polished Basalt, Polished Calcite, Smooth Stone, Polished Deepslate, Polished Diorite, Polished Andesite or Polished Granite as a base." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_blackslag_shimmerstone_light", + "recipe": "spectrum:pedestal/tier1/shimmerstone_lights/blackslag_shimmerstone_light", + "text": "Blackslag can be used, too, resulting in a especially dark variant." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/aloe.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/aloe.json new file mode 100644 index 0000000000..ca2e1292cd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/aloe.json @@ -0,0 +1,21 @@ +{ + "name": "Aloe", + "advancement": "spectrum:hidden/collect_aloe", + "icon": "spectrum:aloe_leaf", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:aloe_leaf": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Aloe", + "text": "These drought-loving plants are able to grow almost everywhere. Only too much light and nutrients they can not handle, ironically." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:aloe_leaf", + "text": "You can break off individual leaves and replant them. Over time, they grow into a full-fledged new plant.$(br)The leaves retain a lot of moisture and are quite nutritious." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/blackslag_variants.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/blackslag_variants.json new file mode 100644 index 0000000000..679b7131ad --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/blackslag_variants.json @@ -0,0 +1,95 @@ +{ + "name": "Blackslag Variants", + "advancement": "spectrum:spectrum", + "icon": "spectrum:blackslag", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:blackslag": 0, + "spectrum:infested_blackslag": 0, + + "spectrum:cobbled_blackslag": 0, + "spectrum:cobbled_blackslag_stairs": 0, + "spectrum:cobbled_blackslag_slab": 0, + "spectrum:cobbled_blackslag_wall": 0, + + "spectrum:polished_blackslag": 0, + "spectrum:polished_blackslag_button": 0, + "spectrum:polished_blackslag_pressure_plate": 0, + "spectrum:polished_blackslag_stairs": 0, + "spectrum:polished_blackslag_slab": 0, + "spectrum:polished_blackslag_wall": 0, + + "spectrum:blackslag_tiles": 0, + "spectrum:blackslag_tile_stairs": 0, + "spectrum:blackslag_tile_slab": 0, + "spectrum:blackslag_tile_wall": 0, + + "spectrum:blackslag_bricks": 0, + "spectrum:blackslag_brick_stairs": 0, + "spectrum:blackslag_brick_slab": 0, + "spectrum:blackslag_brick_wall": 0, + + "spectrum:polished_blackslag_pillar": 0, + "spectrum:chiseled_polished_blackslag": 0, + "spectrum:ancient_chiseled_polished_blackslag": 0, + "spectrum:cracked_blackslag_bricks": 0, + "spectrum:cracked_blackslag_tiles": 0 + }, + "pages": [ + { + "type": "patchouli:smelting", + "title": "Blackslag Variants", + "recipe": "spectrum:smelting/cobbled_blackslag_to_blackslag", + "recipe2": "spectrum:smelting/blackslag_to_polished_blackslag", + "text": "You can also do all these recipes in the $(thing)Blast Furnace$()" + }, + { + "type": "patchouli:crafting", + "title": "Chiseled Blackslag", + "recipe": "spectrum:crafting_table/blackslag/chiseled_polished_blackslag", + "text": "Includes slab, stair & wall variants." + }, + { + "type": "patchouli:crafting", + "title": "Bricks & Tiles", + "recipe": "spectrum:crafting_table/blackslag/blackslag_bricks", + "recipe2": "spectrum:crafting_table/blackslag/blackslag_tiles" + }, + { + "type": "patchouli:crafting", + "title": "Slabs & Stairs", + "recipe": "spectrum:crafting_table/blackslag/polished_blackslag_slab", + "recipe2": "spectrum:crafting_table/blackslag/polished_blackslag_stairs" + }, + { + "type": "patchouli:crafting", + "title": "Walls", + "recipe": "spectrum:crafting_table/blackslag/polished_blackslag_wall", + "recipe2": "spectrum:crafting_table/blackslag/blackslag_tile_wall" + }, + { + "type": "patchouli:crafting", + "title": "Pillars", + "recipe": "spectrum:crafting_table/blackslag/polished_blackslag_pillar" + }, + { + "type": "patchouli:crafting", + "title": "Buttons & Pressure Pl.", + "recipe": "spectrum:crafting_table/blackslag/polished_blackslag_button", + "recipe2": "spectrum:crafting_table/blackslag/polished_blackslag_pressure_plate" + }, + { + "type": "spectrum:anvil_crushing", + "title": "Cracked Variants", + "recipe": "spectrum:anvil_crushing/spectrum_pulverising/cracked_blackslag_bricks", + "text": "You can crack Bricks & Tiles." + }, + { + "type": "patchouli:smelting", + "title": "Smelting them back", + "recipe": "spectrum:smelting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag", + "recipe2": "spectrum:smelting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag", + "text": "By applying heat, all blocks can be converted back to their polished versions again." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/crystal_garden.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/crystal_garden.json new file mode 100644 index 0000000000..62cb4db4e8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/crystal_garden.json @@ -0,0 +1,16 @@ +{ + "name": "Crystal Garden", + "advancement": "spectrum:hidden/visit_dd_biomes/crystal_garden", + "icon": "spectrum:liquid_crystal_bucket", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:overgrown_blackslag": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:overgrown_blackslag", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/deep_barrens.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/deep_barrens.json new file mode 100644 index 0000000000..c93fbd4e31 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/deep_barrens.json @@ -0,0 +1,13 @@ +{ + "name": "Deep Barrens", + "advancement": "spectrum:hidden/visit_dd_biomes/deep_barrens", + "icon": "spectrum:blackslag", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": {}, + "pages": [ + { + "type": "patchouli:text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/deep_dripstone_caves.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/deep_dripstone_caves.json new file mode 100644 index 0000000000..559cc6a94c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/deep_dripstone_caves.json @@ -0,0 +1,13 @@ +{ + "name": "Deep Dripstone Caves", + "advancement": "spectrum:hidden/visit_dd_biomes/deep_dripstone_caves", + "icon": "spectrum:dripstone", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": {}, + "pages": [ + { + "type": "patchouli:text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/doomblooom.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/doomblooom.json new file mode 100644 index 0000000000..6443a79178 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/doomblooom.json @@ -0,0 +1,26 @@ +{ + "name": "Doomblooms", + "advancement": "spectrum:hidden/interact_with_doombloom", + "icon": "spectrum:doombloom", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:doombloom": 0, + "spectrum:doombloom_seed": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "This plant has a rather... unusual way to dispense it's seed and scare away predators: It houses a capsule of explosive gas that pops, when disturbed. When not being cautious around this flower, be it touching it a bit too harshly, you risk converting your surroundings into a burning crater." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:doombloom_seed", + "text": "When fully grown, interacting with it yields gunpowder. Harvesting it without blowing it up requires a Silk Touch tool." + }, + { + "type": "patchouli:text", + "title": "Primordial Fire", + "text": "Much more aggressive than common $(thing)Fire$() started by $(thing)Flint & Steel$(), the $(thing)Primordial Fire$() started by exploding Doomblooms seems to burn with blazing heat." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/downstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/downstone.json new file mode 100644 index 0000000000..0bb2fe4ea5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/downstone.json @@ -0,0 +1,15 @@ +{ + "name": "Downstone", + "advancement": "spectrum:hidden/interact_with_downstone", + "icon": "spectrum:downstone", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:downstone": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonbone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonbone.json new file mode 100644 index 0000000000..2258f721a4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonbone.json @@ -0,0 +1,22 @@ +{ + "name": "Dragonrot", + "icon": "spectrum:dragonbone", + "advancement": "spectrum:lategame/interact_with_dragonrot", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:dragonbone": 0, + "spectrum:dragonbone_shard": 0, + "spectrum:dragonbone_needle": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:dragonbone_needle", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonrot.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonrot.json new file mode 100644 index 0000000000..82e68149ed --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonrot.json @@ -0,0 +1,21 @@ +{ + "name": "Dragonrot", + "icon": "spectrum:dragonrot_bucket", + "advancement": "spectrum:lategame/interact_with_dragonrot", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:dragonrot_bucket": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "It looks blazingly hot as if it were on fire, touching it burns like hell (you $(italic)had$() to test to satisfy your curiosity...) and yet it does not radiate any heat whatsoever.$(br)While $(l:magical_blocks/midnight_solution)Midnight Solution$() seems to be destructive on the grounds of change, Dragonrot just seems to be out for pure and utter destruction. Surely there is not much organic that can resist it's bloodlust." + }, + { + "type": "spectrum:dragonrot_converting", + "title": "Item Conversion", + "recipe": "spectrum:dragonrot_converting/blackslag_from_stone", + "text": "Throwing some items into the liquid seems to corrupt them up to a point they turn into something else entirely." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonrot_swamp.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonrot_swamp.json new file mode 100644 index 0000000000..5935d5e6e3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/dragonrot_swamp.json @@ -0,0 +1,20 @@ +{ + "name": "Dragonrot Swamp", + "advancement": "spectrum:hidden/visit_dd_biomes/dragonrot_swamp", + "icon": "spectrum:dragonrot_bucket", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:snapping_ivy": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:snapping_ivy", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/forlorm_caves.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/forlorm_caves.json new file mode 100644 index 0000000000..e86290b5a9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/forlorm_caves.json @@ -0,0 +1,16 @@ +{ + "name": "Forlorm Caves", + "advancement": "spectrum:hidden/visit_dd_biomes/forlorm_caves", + "icon": "spectrum:black_materia", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:black_sludge": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:black_sludge", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/getting_deeper_down.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/getting_deeper_down.json new file mode 100644 index 0000000000..d12a8a563f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/getting_deeper_down.json @@ -0,0 +1,21 @@ +{ + "name": "Getting Deeper Down", + "icon": "minecraft:bedrock", + "priority": true, + "sortnum": 0, + "advancement": "spectrum:midgame/open_deeper_down_portal", + "category": "spectrum:dimension_category", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "minecraft:bedrock", + "text": "A place which has not seen a single ray of sunlight for eons. A place where the sun never shines, shrouded in darkness.$(br2)What is waiting for you to discover down there?" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:midgame/enter_dimension", + "title": "Horrows Below?", + "text": "There is something lurking for you in the dark, you are sure. Or is it just your nerves?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/hummingstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/hummingstone.json new file mode 100644 index 0000000000..9c0f913cf6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/hummingstone.json @@ -0,0 +1,29 @@ +{ + "name": "Hummingstone", + "advancement": "spectrum:hidden/collect_hummingstone", + "icon": "spectrum:hummingstone", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:hummingstone": 0, + "spectrum:hummingstone_glass": 0, + "spectrum:resonance_shard": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:hummingstone_glass", + "text": "This very sturdy, very blast resistant glass is scattered all around $(l:dimension/crystal_garden)Crystal Gardens." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:hummingstone", + "text": "Between this glass you find these pretty stones that emit a pleasant hum when triggered. You fittingly called those $(italic)Hummingstones$()." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/create_hummingstone_hymn", + "item": "spectrum:resonance_shard", + "text": "It turned out that those pretty sounds Hummingstones make can build each other up until they shatter into a final anthem.$(br)The broken crystals here never seem to stop vibrating, as if they continue to have inherent energy." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/monstrosity.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/monstrosity.json new file mode 100644 index 0000000000..188ecb9fd1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/monstrosity.json @@ -0,0 +1,26 @@ +{ + "name": "The Monstrosity", + "icon": "minecraft:bedrock", + "sortnum": 1, + "advancement": "spectrum:lategame/hurt_by_monstrosity", + "category": "spectrum:dimension_category", + "pages": [ + { + "type": "patchouli:text", + "title": "The Monstrosity", + "text": "$(italic)Something is lurking down there. You knew it!$()$(br)A cruel monstrosity watching your every step. Just waiting for the right time to strike.$(br)Watch out not getting shredded into pieces and devoured. What a nice time to be alive." + }, + { + "type": "patchouli:text", + "advancement": "spectrum:hidden/killed_by_monstrosity", + "title": "Loss?", + "text": "This being is powerful. Very powerful. Whatever it may be, it's not a good idea to face this thing unprepared." + }, + { + "type": "patchouli:text", + "advancement": "spectrum:lategame/killed_monstrosity", + "title": "Victory?", + "text": "It's dead.$(br2)$(italic)You think$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/myceylon.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/myceylon.json new file mode 100644 index 0000000000..c0ec4f86ea --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/myceylon.json @@ -0,0 +1,39 @@ +{ + "name": "Myceylon", + "advancement": "spectrum:lategame/collect_myceylon", + "icon": "spectrum:myceylon", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:myceylon": 0, + "spectrum:myceylon_apple_pie": 0, + "spectrum:myceylon_pumpkin_pie": 0, + "spectrum:myceylon_cookie": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Myceylon", + "text": "Using an $(thing)Axe$() or $(l:equipment/multitool)Multitool$() you could strip small, but unexpectedly sturdy pieces of the noxshrooms. Those where both unexpectedly sturdy for a mushroom and... tasty." + }, + { + "type": "patchouli:text", + "text": "Myceylon adds great flavor to baked goods and $(l:magical_items/infused_beverage)drinks$().$(br2)$(italic)Why would you peel Mushrooms?$(br)So you can enjoy the peel later." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier2/food/myceylon_apple_pie", + "recipe2": "spectrum:pedestal/tier2/food/myceylon_pumpkin_pie", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier2/food/myceylon_pumpkin_pie", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier2/food/myceylon_cookie", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/noxshroom_forest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/noxshroom_forest.json new file mode 100644 index 0000000000..00af4bc575 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/noxshroom_forest.json @@ -0,0 +1,96 @@ +{ + "name": "Noxsroom Forest", + "advancement": "spectrum:hidden/visit_dd_biomes/noxshroom_forest", + "icon": "spectrum:ebony_noxcap_stem", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:slate_noxshroom": 0, + "spectrum:slate_noxcap_cap": 0, + "spectrum:slate_noxcap_stem": 0, + "spectrum:stripped_slate_noxcap_stem": 0, + "spectrum:slate_noxcap_gills": 0, + "spectrum:slate_noxwood_planks": 0, + "spectrum:slate_noxwood_stairs": 0, + "spectrum:slate_noxwood_slab": 0, + "spectrum:slate_noxwood_fence": 0, + "spectrum:slate_noxwood_fence_gate": 0, + "spectrum:slate_noxwood_door": 0, + "spectrum:slate_noxwood_trapdoor": 0, + "spectrum:slate_noxwood_pressure_plate": 0, + "spectrum:slate_noxwood_button": 0, + "spectrum:slate_noxwood_beam": 0, + "spectrum:slate_noxwood_amphora": 0, + "spectrum:slate_noxwood_lantern": 0, + "spectrum:slate_noxwood_light": 0, + "spectrum:slate_noxwood_lamp": 0, + "spectrum:ebony_noxshroom": 0, + "spectrum:ebony_noxcap_cap": 0, + "spectrum:ebony_noxcap_stem": 0, + "spectrum:stripped_ebony_noxcap_stem": 0, + "spectrum:ebony_noxcap_gills": 0, + "spectrum:ebony_noxwood_planks": 0, + "spectrum:ebony_noxwood_stairs": 0, + "spectrum:ebony_noxwood_slab": 0, + "spectrum:ebony_noxwood_fence": 0, + "spectrum:ebony_noxwood_fence_gate": 0, + "spectrum:ebony_noxwood_door": 0, + "spectrum:ebony_noxwood_trapdoor": 0, + "spectrum:ebony_noxwood_pressure_plate": 0, + "spectrum:ebony_noxwood_button": 0, + "spectrum:ebony_noxwood_beam": 0, + "spectrum:ebony_noxwood_amphora": 0, + "spectrum:ebony_noxwood_lantern": 0, + "spectrum:ebony_noxwood_light": 0, + "spectrum:ebony_noxwood_lamp": 0, + "spectrum:ivory_noxshroom": 0, + "spectrum:ivory_noxcap_cap": 0, + "spectrum:ivory_noxcap_stem": 0, + "spectrum:stripped_ivory_noxcap_stem": 0, + "spectrum:ivory_noxcap_gills": 0, + "spectrum:ivory_noxwood_planks": 0, + "spectrum:ivory_noxwood_stairs": 0, + "spectrum:ivory_noxwood_slab": 0, + "spectrum:ivory_noxwood_fence": 0, + "spectrum:ivory_noxwood_fence_gate": 0, + "spectrum:ivory_noxwood_door": 0, + "spectrum:ivory_noxwood_trapdoor": 0, + "spectrum:ivory_noxwood_pressure_plate": 0, + "spectrum:ivory_noxwood_button": 0, + "spectrum:ivory_noxwood_beam": 0, + "spectrum:ivory_noxwood_amphora": 0, + "spectrum:ivory_noxwood_lantern": 0, + "spectrum:ivory_noxwood_light": 0, + "spectrum:ivory_noxwood_lamp": 0, + "spectrum:chestnut_noxshroom": 0, + "spectrum:chestnut_noxcap_cap": 0, + "spectrum:chestnut_noxcap_stem": 0, + "spectrum:stripped_chestnut_noxcap_stem": 0, + "spectrum:chestnut_noxcap_gills": 0, + "spectrum:chestnut_noxwood_planks": 0, + "spectrum:chestnut_noxwood_stairs": 0, + "spectrum:chestnut_noxwood_slab": 0, + "spectrum:chestnut_noxwood_fence": 0, + "spectrum:chestnut_noxwood_fence_gate": 0, + "spectrum:chestnut_noxwood_door": 0, + "spectrum:chestnut_noxwood_trapdoor": 0, + "spectrum:chestnut_noxwood_pressure_plate": 0, + "spectrum:chestnut_noxwood_button": 0, + "spectrum:chestnut_noxwood_beam": 0, + "spectrum:chestnut_noxwood_amphora": 0, + "spectrum:chestnut_noxwood_lantern": 0, + "spectrum:chestnut_noxwood_light": 0, + "spectrum:chestnut_noxwood_lamp": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:shimmel", + "text": "" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:ebony_noxcap_stem", + "text": "A weird mixture between Trees and Mushrooms is towering over this biome." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/prickly_bayleaf.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/prickly_bayleaf.json new file mode 100644 index 0000000000..f0b3dda5c7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/prickly_bayleaf.json @@ -0,0 +1,40 @@ +{ + "name": "Sawblade Holly", + "advancement": "spectrum:lategame/collect_prickly_bayleaf", + "icon": "spectrum:prickly_bayleaf", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:prickly_bayleaf": 0, + "spectrum:sawblade_holly_berry": 0, + "spectrum:spiked_potatoes": 0, + "spectrum:triple_meat_pot_stew": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:sawblade_holly_berry", + "text": "" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:prickly_bayleaf", + "text": "Harvest by shearing a Sawblade Holly Bush. Can be used as a $(l:magical_blocks/potion_workshop_reagents#prickly_bayleaf)Potion Reagent$() and in cooking." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier2/food/spiked_potatoes", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier2/food/triple_meat_pot_stew", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:lategame/collect_dragonbone", + "recipe": "spectrum:pedestal/tier2/food/dragonbone_broth", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/razor_edge.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/razor_edge.json new file mode 100644 index 0000000000..f6a115da80 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/razor_edge.json @@ -0,0 +1,22 @@ +{ + "name": "Razor Edge", + "advancement": "spectrum:hidden/visit_dd_biomes/razor_edge", + "icon": "spectrum:shale_clay", + "category": "spectrum:dimension_category", + "extra_recipe_mappings": { + "spectrum:sawblade_grass": 0, + "spectrum:bristle_sprouts": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:sawblade_grass", + "text": "" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bristle_sprouts", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/shale-clay.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/shale-clay.json new file mode 100644 index 0000000000..00efc9c250 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/dimension/shale-clay.json @@ -0,0 +1,67 @@ +{ + "name": "Shale Clay", + "advancement": "spectrum:shale_clay", + "icon": "spectrum:shale_clay", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:shale_clay": 0, + "spectrum:polished_shale_clay": 0, + "spectrum:shale_clay_bricks": 0, + "spectrum:shale_clay_tiles": 0, + "spectrum:shale_clay_brick_slab": 0, + "spectrum:shale_clay_brick_stairs": 0, + "spectrum:polished_shale_clay_slab": 0, + "spectrum:polished_shale_clay_stairs": 0, + "spectrum:shale_clay_tile_slab": 0, + "spectrum:shale_clay_tile_stairs": 0, + "spectrum:exposed_polished_shale_clay": 0, + "spectrum:exposed_polished_shale_clay_slab": 0, + "spectrum:exposed_polished_shale_clay_stairs": 0, + "spectrum:exposed_shale_clay_brick_slab": 0, + "spectrum:exposed_shale_clay_brick_stairs": 0, + "spectrum:exposed_shale_clay_bricks": 0, + "spectrum:exposed_shale_clay_tile_slab": 0, + "spectrum:exposed_shale_clay_tile_stairs": 0, + "spectrum:exposed_shale_clay_tiles": 0, + "spectrum:weathered_polished_shale_clay": 0, + "spectrum:weathered_polished_shale_clay_slab": 0, + "spectrum:weathered_polished_shale_clay_stairs": 0, + "spectrum:weathered_shale_clay_brick_slab": 0, + "spectrum:weathered_shale_clay_brick_stairs": 0, + "spectrum:weathered_shale_clay_bricks": 0, + "spectrum:weathered_shale_clay_tile_slab": 0, + "spectrum:weathered_shale_clay_tile_stairs": 0, + "spectrum:weathered_shale_clay_tiles": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "" + }, + { + "type": "patchouli:smelting", + "recipe": "spectrum:smelting/shale_clay/polished_shale_clay", + "text": "Creating $(thing)Polished Shale-Clay$() brings out a nice, grayish color. Though it seems to weather over time, when exposed to the elements (direct sunlight, rain), returning it's natural brownish tint." + }, + { + "type": "patchouli:crafting", + "title": "Polished Shale-Clay", + "recipe": "spectrum:crafting_table/shale_clay/shale_clay_bricks", + "recipe2": "spectrum:crafting_table/shale_clay/shale_clay_tiles", + "text": "" + }, + { + "type": "patchouli:crafting", + "title": "Brick & Tile Variants", + "recipe": "spectrum:crafting_table/shale_clay/polished_shale_clay", + "recipe2": "spectrum:crafting_table/shale_clay/polished_shale_clay", + "text": "" + }, + { + "type": "patchouli:crafting", + "title": "Slabs & Stairs", + "recipe": "spectrum:crafting_table/shale_clay/exposed_shale_clay_brick_slab", + "recipe2": "spectrum:crafting_table/shale_clay/shale_clay_tile_stairs" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/big_catch.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/big_catch.json new file mode 100644 index 0000000000..d6ac08a3e3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/big_catch.json @@ -0,0 +1,31 @@ +{ + "name": "Big Catch", + "icon": "spectrum:lagoon_rod", + "advancement": "spectrum:progression/enchantments/big_catch", + "flag": "spectrum:enchantment_exists_spectrum_big_catch", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Your new magic fishing rods have the interesting property of attracting even living creatures. Why that wasn't a thing with your boring rods? I don't know.$(br)With this enchantment, you can further increase the chance of catching living creatures." + }, + { + "type": "patchouli:spotlight", + "title": "Characteristics", + "item": "spectrum:lagoon_rod{Enchantments: [{id: \"spectrum:big_catch\", lvl: 3s}]}", + "text": "Increases the chance to reel in living creatures when fishing.$(br2)Max Level: 3$(br)Applicable to Spectrum's Fishing Rods." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Enchanter Recipe", + "recipe": "spectrum:enchanter/spectrum_books/book_big_catch", + "text": "You can infuse a common Book with Big Catch by surrounding your Enchanter with Pigment and the other required materials." + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "Enchantment Upgrading", + "recipe": "spectrum:enchantment_upgrade/spectrum/big_catch_level_2", + "text": "Upgrading Big Catch from level 1 to level 2 is fairly cheap at first.$(br)This price will quickly increase to more and more Pigment and Experience for each additional level." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/clovers_favor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/clovers_favor.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/clovers_favor.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/clovers_favor.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/conflicting_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/conflicting_enchantments.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/conflicting_enchantments.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/conflicting_enchantments.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/creating_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/creating_enchanted_books.json new file mode 100644 index 0000000000..8a577534b8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/creating_enchanted_books.json @@ -0,0 +1,22 @@ +{ + "name": "Creating Books", + "icon": "minecraft:enchanted_book", + "priority": true, + "sortnum": 2, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Using $(l:general/pigment)Pigment$(/l), selected ingredients and some experience the $(l:enchanting/enchanter)Enchanter$(/l) enables you to add Enchantments to regular Books.$(br2)While this process consumes more experience than enchanting in a common Enchanting Table you have granular control about which Enchantment you want to create." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/creating_enchanted_books.png" + ], + "border": true, + "text": "$(italic)Maybe you could even make use of this process to enchant your magical tools." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/curse_of_the_void.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/curse_of_the_void.json new file mode 100644 index 0000000000..4cfce96ca9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/curse_of_the_void.json @@ -0,0 +1,26 @@ +{ + "name": "Curse of the Void", + "icon": "minecraft:wooden_pickaxe", + "advancement": "spectrum:progression/tools/unlock_oblivion_pickaxe", + "flag": "spectrum:enchantment_exists_spectrum_voiding", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Your tools with this enchantment seem to dissolve all things they mine into thin air. Broken down into the finest sand and blown away by the wind.$(br2)For this one time, however, when you want to knock half a city out of rough stone, it might even come in handy. Some things are probably curse and blessing at the same time." + }, + { + "type": "patchouli:spotlight", + "title": "Characteristics", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "text": "Destroys the drops of all broken blocks.$(br2)Max Level: 1$(br)Applicable to mining tools." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Enchanter Recipe", + "recipe": "spectrum:enchanter/spectrum_books/book_voiding", + "advancement": "spectrum:progression/enchantments/voiding", + "text": "You can infuse a common Book with Curse of the Void by surrounding your Enchanter with Pigment and the other required materials." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/disarming.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/disarming.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/disarming.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/disarming.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/enchanter.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/enchanter.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/enchanter.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/enchanter.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/enchanting_items.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/enchanting_items.json new file mode 100644 index 0000000000..948ff3891e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/enchanting_items.json @@ -0,0 +1,34 @@ +{ + "name": "Spectrum Enchanting", + "icon": "spectrum:enchanter", + "priority": true, + "sortnum": 1, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Spectrum Enchanting", + "text": "Using the Enchanter to enchant items is fairly easy:$(br)Place Enchanted Books, onto the $(l:decoration/item_bowl)Item Bowls$(/l) and the item you want to enchant on the Enchanter itself.$(br2)Unlike regular enchanting, this will not consume the books - but will require a far greater amount of experience instead." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/enchanting_items.png" + ], + "border": true, + "text": "Finally supply a steady stream of experience via $(l:magical_items/knowledge_gem)Knowledge Gem$(/l) and you are set." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:enchanted_book", + "title": "Copy Enchanted Books", + "text": "You can also use this mechanism to create new Enchanted Books. Just put the Enchanted Book(s) you want to copy in the $(l:decoration/item_bowl)Item Bowls$(/l) and a simple book onto the $(l:enchanting/enchanter)Enchanter$(/l).$(br2)Because of the mundane nature of the books this will require lots of experience, though." + }, + { + "type": "patchouli:text", + "title": "Required Experience", + "text": "You estimate a value $(bold)between 50 and 200 experience in most cases per enchantment$().$(br)The rarer an enchantment is, the higher its level, the better the target item is at absorbing enchantments, and a few other factors affect this result.$(br)Interferences further increase this cost, such as enchantments that are not suitable for your target." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/exuberance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/exuberance.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/exuberance.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/exuberance.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/first_strike.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/first_strike.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/first_strike.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/first_strike.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/foundry.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/foundry.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/foundry.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/foundry.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/gilded_book.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/gilded_book.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/gilded_book.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/gilded_book.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/improved_critical.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/improved_critical.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/improved_critical.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/improved_critical.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/indestructible.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/indestructible.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/indestructible.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/indestructible.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/inertia.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/inertia.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/inertia.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/inertia.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/inventory_insertion.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/inventory_insertion.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/inventory_insertion.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/inventory_insertion.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/overchanting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/overchanting.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/overchanting.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/overchanting.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/pest_control.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/pest_control.json new file mode 100644 index 0000000000..78cf62104a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/pest_control.json @@ -0,0 +1,25 @@ +{ + "name": "Pest Control", + "icon": "minecraft:iron_pickaxe", + "advancement": "spectrum:progression/enchantments/pest_control", + "flag": "spectrum:enchantment_exists_spectrum_pest_control", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "On your way to the end you found a huge underground structure that seemed like a fortress of a civilization that lived far before you.$(br2)Although they seemed to have technology that allowed them to open a portal to another world, they definitely should have done something about their vermin problem." + }, + { + "type": "patchouli:spotlight", + "title": "Characteristics", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:pest_control\", lvl: 1s}]}", + "text": "Gets rid of Silverfish when breaking Infested Blocks, dropping double XP.$(br2)Max Level: 1$(br)Applicable to mining tools.$(br)Mutually exclusive with Resonance." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Enchanter Recipe", + "recipe": "spectrum:enchanter/spectrum_books/book_pest_control", + "text": "You can infuse a common Book with Pest Control by surrounding your Enchanter with Pigment and the other required materials." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/resonance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/resonance.json new file mode 100644 index 0000000000..2f4c53ef15 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/resonance.json @@ -0,0 +1,62 @@ +{ + "name": "Resonance", + "icon": "spectrum:resonant_pickaxe", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "flag": "spectrum:enchantment_exists_spectrum_resonance", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "There have always been blocks that you were very interested in, but you could never carve them out of the ground carefully enough to retrieve them flawlessly. You noticed, however, that these blocks vibrate in a similar way to the gems you've been so concerned with lately.$(br)If you hit the right frequency, you finally can hold some of those blocks in your hands." + }, + { + "type": "patchouli:spotlight", + "title": "Characteristics", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", + "text": "Uses gentle vibrations to allow some blocks to drop themselves.$(br2)Max Level: 1$(br)Applicable to mining tools.$(br)Mutually exclusive with Foundry and Pest Control.$(br2)$(br2)" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Enchanter Recipe", + "advancement": "spectrum:progression/enchantments/resonance", + "recipe": "spectrum:enchanter/spectrum_books/book_resonance", + "text": "You can infuse a common Book with Resonance by surrounding your Enchanter with Pigment and the other required materials." + }, + { + "type": "patchouli:spotlight", + "title": "Gemstone Buds", + "item": "minecraft:medium_amethyst_bud", + "text": "The smaller gem buds are usually too fragile to be broken from their mother block.$(br2)However, if you hit the right frequency, the small bods will break from the stone almost by themselves, as if you used $(thing)Silk Touch$()." + }, + { + "type": "patchouli:spotlight", + "title": "Pure Resources", + "item": "spectrum:pure_iron", + "advancement": "spectrum:lategame/collect_pure_resource", + "text": "Breaking Ores with Resonance directly drops $(l:resources/pure_resources)Pure Resources$() instead of Raw Ores.$(br2)This would stack with Fortune... if you somehow could combine these 2 mutually exclusive Enchantments." + }, + { + "type": "patchouli:spotlight", + "title": "Colored Leaves", + "item": "spectrum:orange_leaves", + "text": "Colored Leaves get stimulated in a way to release a lot more saplings.$(br2)Applied to a hoe his will finally be your key to get $(l:general/colored_trees)Colored Saplings$() renewably." + }, + { + "type": "patchouli:spotlight", + "title": "Harvesting Spawners", + "item": "minecraft:spawner", + "text": "In the depths you have come across cages that seem to spit out an endless number of enemies. Which madman placed them there, what purpose they serve and whether it was really worth the effort is a mystery to you. However, you can definitely find some use for these. Whoever the maker was certainly won't miss you packing a few." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:reinforced_deepslate", + "text": "This immensely sturdy stone found in underground cities can be harvested." + }, + { + "type": "patchouli:spotlight", + "title": "Infested Blocks", + "item": "minecraft:infested_stone_bricks", + "text": "The gentle vibrations lull the silverfish hiding in the blocks.$(br2)You can pack up the blocks including the silverfish and take them with you, without them knowing what is happening to them.$(br)Sweet, sweet revenge?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/sniper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/sniper.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/sniper.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/sniper.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/steadfast.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/steadfast.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/steadfast.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/steadfast.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/tight_grip.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/tight_grip.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/tight_grip.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/tight_grip.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/treasure_hunter.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/treasure_hunter.json new file mode 100644 index 0000000000..45d40b779f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/treasure_hunter.json @@ -0,0 +1,36 @@ +{ + "name": "Treasure Hunter", + "icon": "minecraft:iron_axe", + "advancement": "spectrum:progression/enchantments/treasure_hunter", + "flag": "spectrum:enchantment_exists_spectrum_treasure_hunter", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)In a painting you have seen a fantastic creature that seems to be made of Soul Sand and Wither Skeleton Skulls. For hours you waited in a Nether Fortress, only to almost almost lose your head yourself while searching for a Wither Skeleton with a spine loose enough to drop its skull. Heads up, you never were the one to bury your head in the sand." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:cow_head", + "text": "$(italic)But then there were the Creepers! Once struck by lightning, they explode so hefty that their explosion blows the heads of his opponents right off their necks (worst case: yourself).$(br)As if struck by lightning you thought out this new enchantment using $(l:resources/storm_stones)Storm Stones$(/l).$(br)And so Treasure Hunter was born, allowing you to collect $(l:creating_life/mob_heads)Heads from all kinds of Mobs$(/l)" + }, + { + "type": "patchouli:spotlight", + "title": "Characteristics", + "item": "minecraft:iron_axe{Enchantments: [{id: \"spectrum:treasure_hunter\", lvl: 3s}]}", + "text": "Occasionally drops mob heads on kill.$(br2)Max Level: 3$(br)Applicable to axes and melee weapons.$(br)Mutually exclusive with Looting." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Enchanter Recipe", + "recipe": "spectrum:enchanter/spectrum_books/book_treasure_hunter", + "text": "You can infuse a common Book with Treasure Hunter by surrounding your Enchanter with Pigment and the other required materials." + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "Enchantment Upgrading", + "recipe": "spectrum:enchantment_upgrade/spectrum/treasure_hunter_level_2", + "text": "Upgrading Treasure Hunter from level 1 to level 2 is fairly cheap at first.$(br)This price will quickly increase to more and more Pigment and Experience for each additional level." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/upgrading_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/upgrading_enchanted_books.json new file mode 100644 index 0000000000..5c057ee342 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/upgrading_enchanted_books.json @@ -0,0 +1,22 @@ +{ + "name": "Upgrading Books", + "icon": "minecraft:enchanted_book", + "priority": true, + "sortnum": 3, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Enchantments and your Color Magic have a lot in common. That's why you weren't surprised when your first attempt to combine Enchanted Books with $(l:general/pigment)Pigment$(/l) was an instant success.$()$(br2)Placing an Enchanted Book onto the Enchanter, surrounding it with matching Pigment and supplying a steady stream of experience increases your books level." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/upgrading_enchanted_books.png" + ], + "border": true, + "text": "Just try not to interrupt said process, otherwise it will stop entirely." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/vanilla_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/vanilla_enchantments.json new file mode 100644 index 0000000000..9671e96029 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/enchanting/vanilla_enchantments.json @@ -0,0 +1,280 @@ +{ + "name": "Vanilla Enchantments", + "icon": "spectrum:multitool", + "priority": true, + "sortnum": 6, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "The Enchanter is also able to create most Enchantments you are already familiar with, using your mundane crafting table.$(br2)All Enchantments can be upgraded to higher levels, too - using the same Pigment you used for creating it." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Aqua Affinity", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_aqua_affinity", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Bane Of Arthropods", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_bane_of_arthropods", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Curse of Binding", + "advancement": "spectrum:progression/enchantments/vanilla_curses", + "recipe": "spectrum:enchanter/vanilla_books/book_binding_curse", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Blast Protection", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_blast_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Channeling", + "advancement": "spectrum:progression/enchantments/vanilla_trident_channeling", + "recipe": "spectrum:enchanter/vanilla_books/book_channeling", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Depth Strider", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_depth_strider", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Efficiency", + "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", + "recipe": "spectrum:enchanter/vanilla_books/book_efficiency", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Feather Falling", + "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", + "recipe": "spectrum:enchanter/vanilla_books/book_feather_falling", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Fire Aspect", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_fire_aspect", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Fire Protection", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_fire_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Flame", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_flame", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Fortune", + "advancement": "spectrum:progression/enchantments/vanilla_luck", + "recipe": "spectrum:enchanter/vanilla_books/book_fortune", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Frost Walker", + "advancement": "spectrum:progression/enchantments/vanilla_treasure", + "recipe": "spectrum:enchanter/vanilla_books/book_frost_walker", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Impaling", + "advancement": "spectrum:progression/enchantments/vanilla_trident", + "recipe": "spectrum:enchanter/vanilla_books/book_impaling", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Infinity", + "advancement": "spectrum:progression/enchantments/vanilla_projectile_infinity", + "recipe": "spectrum:enchanter/vanilla_books/book_infinity", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Knockback", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_knockback", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Looting", + "advancement": "spectrum:progression/enchantments/vanilla_luck", + "recipe": "spectrum:enchanter/vanilla_books/book_looting", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Loyalty", + "advancement": "spectrum:progression/enchantments/vanilla_trident", + "recipe": "spectrum:enchanter/vanilla_books/book_loyalty", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Luck Of The Sea", + "advancement": "spectrum:progression/enchantments/vanilla_water_luck", + "recipe": "spectrum:enchanter/vanilla_books/book_luck_of_the_sea", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Lure", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_lure", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Mending", + "advancement": "spectrum:progression/enchantments/vanilla_treasure", + "recipe": "spectrum:enchanter/vanilla_books/book_mending", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Multishot", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_multishot", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Piercing", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_piercing", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Power", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_power", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Projectile Protection", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_projectile_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Protection", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Punch", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_punch", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Quick Charge", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_quick_charge", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Respiration", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_respiration", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Riptide", + "advancement": "spectrum:progression/enchantments/vanilla_trident", + "recipe": "spectrum:enchanter/vanilla_books/book_riptide", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Sharpness", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_sharpness", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Silk Touch", + "advancement": "spectrum:progression/enchantments/vanilla_silk_touch", + "recipe": "spectrum:enchanter/vanilla_books/book_silk_touch", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Smite", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_smite", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Soul Speed", + "advancement": "spectrum:progression/enchantments/vanilla_treasure", + "recipe": "spectrum:enchanter/vanilla_books/book_soul_speed", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Sweeping", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_sweeping", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Thorns", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_thorns", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Unbreaking", + "advancement": "spectrum:progression/enchantments/vanilla_unbreaking", + "recipe": "spectrum:enchanter/vanilla_books/book_unbreaking", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Curse of Vanishing", + "advancement": "spectrum:progression/enchantments/vanilla_curses", + "recipe": "spectrum:enchanter/vanilla_books/book_vanishing_curse", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/ashen_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/ashen_circlet.json new file mode 100644 index 0000000000..141f41ab19 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/ashen_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "Ashen Circlet", + "advancement": "spectrum:progression/unlock_ashen_circlet", + "icon": "spectrum:ashen_circlet", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:ashen_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The Stratine Gem you set into this Circlet, itself a creation of the Nether, can absorb high temperatures on you with ease.$(br)It even protects you from the blazing heat of lava - if only for a short time, until it has had a chance to cool down again.$(br)Pair it with something that grants you Fire Resistance, you are able to swim in Lava almost as if it were Water." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/ashen_circlet", + "text": "$(li)Prevents damage from fire and hot floors.$(li)If cooled down, grants you a short protection from lava" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/azure_dike_equipment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/azure_dike_equipment.json new file mode 100644 index 0000000000..ed38140860 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/azure_dike_equipment.json @@ -0,0 +1,43 @@ +{ + "name": "Azure Dike Equipment", + "advancement": "spectrum:progression/unlock_any_azure_dike_equipment", + "icon": "spectrum:azure_dike_ring", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:azure_dike_ring": 0, + "spectrum:azure_dike_belt": 0, + "spectrum:shieldgrasp_amulet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The results of combining $(l:resources/azurite)Azurite$(/l) and the protective properties of $(l:general/pigment#blue)Blue Pigment$(/l) really sparked your interest. The material seemed to surround itself with a transparent aura, which took some effort to penetrate when you reached for the lump.$(br2)$(italic)This is going to be interesting..." + }, + { + "type": "patchouli:text", + "title": "Azure Dike", + "text": "A magical aura surrounding your body, shielding you from incoming damage.$(br)Slowly, but steadily recharges up to a specific amount.$(br2)Each piece of Azure Dike Equipment increases the maximum amount of protection." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Azure Dike Ring", + "advancement": "spectrum:progression/unlock_azure_dike_ring", + "recipe": "spectrum:fusion_shrine/trinkets/azure_dike_ring", + "text": "$(li)Grants you $(c_green)4$() points of $(c_blue)Azure Dike$().$(li)Slightly speeds up $(c_blue)Azure Dike$() charging." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Azure Dike Belt", + "advancement": "spectrum:progression/unlock_azure_dike_belt", + "recipe": "spectrum:fusion_shrine/trinkets/azure_dike_belt", + "text": "$(li)Grants you $(c_green)6$() points of $(c_blue)Azure Dike$().$(li)Decreases $(c_blue)Azure Dike$() recovery after a hit, making it recharge quicker." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Shieldgrasp Amulet", + "advancement": "spectrum:progression/unlock_shieldgrasp_amulet", + "recipe": "spectrum:fusion_shrine/trinkets/shieldgrasp_amulet", + "text": "Infuse it with $(l:magic/ink)Blue Ink$(/l) to increase the amount of $(c_blue)Azure Dike$() provided.$(br)While cheap at first, the required energy to press more power into this amulet increases exponentially." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/base_trinkets.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/base_trinkets.json new file mode 100644 index 0000000000..eb2052c302 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/base_trinkets.json @@ -0,0 +1,57 @@ +{ + "name": "Base Trinkets", + "advancement": "spectrum:progression/unlock_any_base_trinket", + "icon": "spectrum:fanciful_stone_ring", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:fanciful_stone_ring": 0, + "spectrum:fanciful_belt": 0, + "spectrum:fanciful_pendant": 0, + "spectrum:fanciful_circlet": 0, + "spectrum:fanciful_bismuth_ring": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "Fanciful Stone Ring", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_stone_ring", + "advancement": "spectrum:progression/unlock_fanciful_stone_ring", + "text": "These basic accessories are used as a base for more advanced Trinkets. All final Trinkets are created in the $(l:general/fusion_shrine)Fusion Shrine$()." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Fanciful Circlet", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_circlet", + "advancement": "spectrum:progression/unlock_fanciful_circlet", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Fanciful Belt", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_belt", + "advancement": "spectrum:progression/unlock_fanciful_belt", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Fanciful Pendant", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_pendant", + "advancement": "spectrum:progression/unlock_fanciful_pendant", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Fanciful Gloves", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_gloves", + "advancement": "spectrum:progression/unlock_fanciful_gloves", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Fanciful Bismuth Ring", + "recipe": "spectrum:pedestal/tier4/fanciful_bismuth_ring", + "advancement": "spectrum:progression/unlock_fanciful_bismuth_ring", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/bedrock_armor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/bedrock_armor.json new file mode 100644 index 0000000000..9d29088794 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/bedrock_armor.json @@ -0,0 +1,38 @@ +{ + "name": "Bedrock Armor", + "advancement": "spectrum:progression/unlock_bedrock_tools", + "icon": "spectrum:bedrock_chestplate", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:bedrock_helmet": 0, + "spectrum:bedrock_chestplate": 0, + "spectrum:bedrock_leggings": 0, + "spectrum:bedrock_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The strongest material you could make so far was Netherite. However, repairing Netherite armor had the disadvantage that it was more expensive than making the armor itself. In addition, the protection decreased with every scratch. All this is less problematic when the armor simply $(italic)cannot$() be damaged.$(br)$(italic)Never wilt, stone blossom." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_helmet", + "text": "The Bedrock Helmet comes with $(bold)Projectile Protection V$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_chestplate", + "text": "The Bedrock Chestplate comes with $(bold)Protection V$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_leggings", + "text": "The Bedrock Leggings come with $(bold)Blast Protection V$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_boots", + "text": "The Bedrock Boots come with $(bold)Fire Protection V$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/bedrock_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/bedrock_tools.json new file mode 100644 index 0000000000..67b909f4e9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/bedrock_tools.json @@ -0,0 +1,68 @@ +{ + "name": "Bedrock Tools", + "advancement": "spectrum:progression/unlock_bedrock_tools", + "icon": "spectrum:bedrock_pickaxe", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:bedrock_pickaxe": 0, + "spectrum:bedrock_axe": 0, + "spectrum:bedrock_shovel": 0, + "spectrum:bedrock_sword": 0, + "spectrum:bedrock_hoe": 0, + "spectrum:bedrock_bow": 0, + "spectrum:bedrock_crossbow": 0, + "spectrum:bedrock_shears": 0, + "spectrum:bedrock_fishing_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Whenever you enter a new world, you go about the mindless, days-long task of gathering villagers around you, turning them into zombies and healing them again, only for one of them to eventually hand you a book of Mending. All this, just so you don't have to fix your tools.$(br)That's both less exciting and species-appropriate. Now that you can process Bedrock, you have a much more convenient solution, anyways." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_pickaxe", + "text": "The Bedrock Pickaxe comes with $(bold)Silk Touch$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_axe", + "text": "The Bedrock Axe comes with $(bold)Efficiency VI$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_shovel", + "text": "The Bedrock Shovel comes with $(bold)Efficiency VI$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_sword", + "text": "The Bedrock Sword comes with $(bold)Sharpness VI$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_hoe", + "text": "The Bedrock Hoe comes with $(bold)Fortune IV$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_bow", + "text": "The Bedrock Bow comes with $(bold)Power VI$()." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bedrock_crossbow", + "text": "The Bedrock Crossbow comes with $(bold)Quick Charge IV$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_shears", + "text": "The Bedrock Shears come with $(bold)Silk Touch$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_fishing_rod", + "text": "The Bedrock Fishing Rod comes with $(bold)Luck of the Sea IV$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/circlet_of_arrogance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/circlet_of_arrogance.json new file mode 100644 index 0000000000..cba809453f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/circlet_of_arrogance.json @@ -0,0 +1,21 @@ +{ + "name": "Circlet of Arrogance", + "advancement": "spectrum:progression/unlock_circlet_of_arrogance", + "icon": "spectrum:circlet_of_arrogance", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:circlet_of_arrogance": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "That's it: Ascension, the ultimate buff, in wearable form.$(br)If not your mere existence would be in danger everytime you get hit too hard - a very expensive price to pay - you would not hesitate for a second equipping this circlet.$(br)Should you really...?$(br2)Of course." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/circlet_of_arrogance", + "text": "$(italic)Pride comes before a fall." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/constructors_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/constructors_staff.json new file mode 100644 index 0000000000..f25bedba0b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/constructors_staff.json @@ -0,0 +1,21 @@ +{ + "name": "Constructors' Staff", + "advancement": "spectrum:progression/unlock_constructors_staff", + "icon": "spectrum:constructors_staff", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:constructors_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You always spend a lot of time placing blocks. You could almost think that this is the main reason for your existence. Placing a lot of similar blocks is tedious.$(br2)Or more like: $(italic)Was$() tedious." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/constructors_staff", + "text": "Crouch-Click to get a selection of all available placement modi." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/dreamflayer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/dreamflayer.json new file mode 100644 index 0000000000..f15d50d798 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/dreamflayer.json @@ -0,0 +1,20 @@ +{ + "name": "Dreamflayer", + "advancement": "spectrum:progression/unlock_dreamflayer", + "icon": "spectrum:dreamflayer", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:dreamflayer": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "A truly exceptional weapon, it embodies the definition of \"offense is the best defense.\"$(br)The Dreamflayer is in its nature to balance power:$(br)The more armored your opponent is compared to you, the more damage you do." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/dreamflayer", + "text": "$(italic)If you ever needed a reason to go rampage lightly clad, here it is$()$(br2)$(k:sneak) + $(k:use) to empower it, making it consume $(c_red)Red Ink$() at an alarming rate, allowing it to slice even though the most sturdy of armors." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/exchanging_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/exchanging_staff.json new file mode 100644 index 0000000000..c65aef6142 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/exchanging_staff.json @@ -0,0 +1,42 @@ +{ + "name": "Exchanging Staff", + "advancement": "spectrum:progression/unlock_exchanging_staff", + "icon": "spectrum:exchanging_staff", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:exchanging_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "For all those who don't live in a simple cobblestone house, or don't have walls at all - of course you don't feel addressed - you have thought up the Exchanging Staff.$(br2)Mining has just gotten a whole bunch more fun." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/exchanging_staff", + "text": "Crouch-Click to get a selection of all available placement modi." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Enchanting - Fortune", + "item": "spectrum:exchanging_staff{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", + "text": "Enchanting an Exchanging Staff with Fortune by using the $(l:enchanting/enchanting_items)Enchanter$(/l) allows it to multiply Ore drops when exchanging similar to using a common Fortune tool." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Silk Touch", + "item": "spectrum:exchanging_staff{Enchantments: [{id: \"spectrum:silk_touch\", lvl: 1s}]}", + "text": "Enchanting an Exchanging Staff with Silk Touch by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will give it the power to exchange blocks exactly how they appear in the world, without breaking the more fragile blocks, like Glass or Ores." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/create_resonance_enchanted_book", + "title": "Resonance", + "item": "spectrum:exchanging_staff{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", + "text": "Enchanting an Exchanging Staff with Resonance by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will give it the power to harvest some special blocks as-is." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gemstone_armor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gemstone_armor.json new file mode 100644 index 0000000000..3dfed28bb1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gemstone_armor.json @@ -0,0 +1,52 @@ +{ + "name": "Gemstone Armor", + "advancement": "spectrum:progression/unlock_gemstone_armor_category", + "icon": "spectrum:ferocious_chestplate", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:fetchling_helmet": 0, + "spectrum:ferocious_chestplate": 0, + "spectrum:sylph_leggings": 0, + "spectrum:oread_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You had more than enough time to develop your own individual fighting style.$(br)To best support this style, you've designed a range of matching gear out of interesting materials.$(br2)Disadvantage: The shards used in the production are kind of brittle. Therefore, this equipment has a comparatively low durability." + }, + { + "type": "spectrum:checklist", + "checklist": { + "spectrum:hidden/collect_vanilla/collect_ender_eye": "Helmet: When nothingness meets hell", + "spectrum:hidden/collect_vanilla/collect_nautilus_shell": "Chestplate: The golden Ratio", + "spectrum:hidden/collect_vanilla/collect_phantom_membrane": "Leggings: The source of nightmares", + "spectrum:hidden/collect_vanilla/collect_ghast_tear": "Boots: Mourning of the Nether" + }, + "text": "They can be repaired in Anvils by using $(l:general/shards)Gemstone Shards$().$(br2)To take advantage of their unique abilities you will need some special materials:" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/fetchling_helmet", + "text": "Gives attackers Weakness and Slowness when they hit you, letting you slip through their claws like a shadow." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/ferocious_chestplate", + "text": "Grants Absorption and Resistance when you get hit, making you a massive wall for a short duration." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/sylph_leggings", + "text": "Gives you a short burst of Regeneration on hit, making you get right back up after each hit." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/oread_boots", + "text": "Gives a short burst of Speed and Invisibility when you get hit, giving you an opportunity to retreat. Perfect for ranged combat." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/glass_crest_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/glass_crest_tools.json new file mode 100644 index 0000000000..867dc1f8de --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/glass_crest_tools.json @@ -0,0 +1,52 @@ +{ + "name": "Glass Crest Tools", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_tools", + "icon": "spectrum:glass_crest_ultra_greatsword", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:glass_crest_workstaff": 0, + "spectrum:glass_crest_ultra_greatsword": 0, + "spectrum:glass_crest_crossbow": 0, + "spectrum:ferocious_glass_crest_bident": 0, + "spectrum:fractal_glass_crest_bident": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstone_core", + "text": "Socketing $(l:resources/moonstone_core)Moonstone Cores$(/l) into your $(l:equipment/malachite_tools)Malachite Tools$(/l) grants them powerful new abilities." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_workstaff", + "recipe": "spectrum:fusion_shrine/malachite/glass_crest_workstaff", + "text": "$(k:use) will shoot out $(c_white)White Ink$() which will break blocks on impact. You can also choose from $(l:enchanting/resonance)Resonance$(/l) when switching enchantments." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_ultra_greatsword", + "recipe": "spectrum:fusion_shrine/malachite/glass_crest_ultra_greatsword", + "text": "Deals a chunk of it's damage via $(thing)Magic$() - piercing armor. $(k:use) to charge a $(thing)ground slam$(), knocking back everything around you (improved by $(thing)Sweeping$())." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_crossbow", + "recipe": "spectrum:fusion_shrine/malachite/glass_crest_crossbow", + "text": "If an arrow is loaded, you can overcharge the shot by holding $(k:sneak) + $(k:use) to increase your shots accuracy, speed and damage even further." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Ferocious Bident", + "advancement": "spectrum:progression/malachite/unlock_ferocious_glass_crest_bident", + "recipe": "spectrum:fusion_shrine/malachite/ferocious_glass_crest_bident", + "text": "What's a bit of $(thing)Riptide$() when you can have your Water always with you?$(br)Allows flinging yourself in the air, damaging everything in your path. Even without rain and even in the driest of deserts - as long as you do not run out of ink." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fractal Bident", + "advancement": "spectrum:progression/malachite/unlock_fractal_glass_crest_bident", + "recipe": "spectrum:fusion_shrine/malachite/fractal_glass_crest_bident", + "text": "The $(thing)Echo Shards$() make this Bident throw an echo of itself when thrown that shatters upon impact - your original will never leave your hand." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gleaming_pin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gleaming_pin.json new file mode 100644 index 0000000000..af69be8fe6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gleaming_pin.json @@ -0,0 +1,28 @@ +{ + "name": "Gleaming Pin", + "advancement": "spectrum:progression/unlock_gleaming_pin", + "icon": "spectrum:gleaming_pin", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:gleaming_pin": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "During your explorations you were hit by arrows again and again, only to completely miss your enemy while looking around in panic - if it hasn't already disappeared behind the next corner already.$(br2)When you get hit, the Gleaming Pin emits a magic surge that passes through walls and attaches to nearby creatures so you can easily track them down." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/gleaming_pin", + "text": "$(br)$(italic)Can't run, can't hide" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/sniper", + "title": "Sniping", + "item": "spectrum:gleaming_pin{Enchantments: [{id: \"spectrum:sniping\", lvl: 2s}]}", + "text": "Enchanting the Gleaming Pin with Sniping allows the surge to pierce even more matter, further increasing its range." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gloves_of_dawns_grasp.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gloves_of_dawns_grasp.json new file mode 100644 index 0000000000..0931540eac --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/gloves_of_dawns_grasp.json @@ -0,0 +1,21 @@ +{ + "name": "Gloves of Dawn's Grasp", + "advancement": "spectrum:progression/unlock_gloves_of_dawns_grasp", + "icon": "spectrum:gloves_of_dawns_grasp", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:gloves_of_dawns_grasp": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "When you asked your neighbor what this \"gobber\" was that they were always talking about, the only answer you got was that this godlike material was out of reach for you little artist.$(br)Before they could explain to you that \"out of reach\" was not to be taken literally, you had already designed these gloves. Oops." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/gloves_of_dawns_grasp", + "text": "Oh, well, now that you've thought them up, you're gonna use them!$(br2)Infuse them with $(l:magic/ink)Light Blue Ink$(/l) to increase the additional reach provided." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/glow_vision_goggles.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/glow_vision_goggles.json new file mode 100644 index 0000000000..cc5a43f9d3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/glow_vision_goggles.json @@ -0,0 +1,22 @@ +{ + "name": "Glow Vision Goggles", + "advancement": "spectrum:progression/unlock_glow_vision_goggles", + "icon": "spectrum:glow_vision_goggles", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:glow_vision_goggles": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:glow_vision_goggles", + "text": "$(italic)What makes Glow Squids so special is them lighting your way in the darkness of the caves. As beautiful as they are, they seem to wash ashore far too often and meet their sad end there.$(br)You honor their clumsy glowing legacy by designing glasses that can continue guiding you in the darkness of the caves." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/glow_vision_goggles", + "text": "If you are in a dark area and have Glow Ink Sacs on you, the Glow Vision Goggles grant you the Night Vision effect." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/greater_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/greater_potion_pendant.json new file mode 100644 index 0000000000..08095ecaf4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/greater_potion_pendant.json @@ -0,0 +1,22 @@ +{ + "name": "Greater Potion Pendant", + "advancement": "spectrum:progression/unlock_greater_potion_pendant", + "secret": true, + "icon": "spectrum:greater_potion_pendant", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:greater_potion_pendant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Works very similar to its $(l:equipment/lesser_potion_pendant)little brother$(/l).$(br)In contrast this version has three chambers, each of which can be filled with a different potion. Since the individual chambers are smaller, it can only support Effects up to Level I." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/greater_potion_pendant", + "text": "Use the $(l:magical_blocks/potion_workshop)Potion Workshop$(/l) to fill it with potions.$(br)For each Potion your $(l:general/pigment_palette)Pigment Palette$(/l) will use up specific color energy. The higher the level, the higher the cost." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/heartsingers_reward.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/heartsingers_reward.json new file mode 100644 index 0000000000..11fdb4c5b1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/heartsingers_reward.json @@ -0,0 +1,21 @@ +{ + "name": "Heartsinger's Reward", + "advancement": "spectrum:progression/unlock_heartsingers_reward", + "icon": "spectrum:heartsingers_reward", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:heartsingers_reward": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "This dainty ring has it all: with the help of a little (or a lot!) of Pink Ink, it strengthens you from the inside out and grants you additional hearts." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/heartsingers_reward", + "text": "Infuse it with $(l:magic/ink)Pink Ink$(/l) to increase the amount of extra Hearts provided." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/jeopardant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/jeopardant.json new file mode 100644 index 0000000000..212b63ce40 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/jeopardant.json @@ -0,0 +1,21 @@ +{ + "name": "Jeopardant", + "advancement": "spectrum:progression/unlock_jeopardant", + "icon": "spectrum:jeopardant", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:jeopardant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Adrenaline does not have to be the only thing racing through your veins in state of emergency.$(br)With every heart lost, the $(l:resources/stratine)Stratine Gem$() in this ring shines brighter and brighter, pulsating in the same rhythm as your racing heart - granting you an exponential damage boost." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/jeopardant", + "text": "$(italic)Tell me what you think about your situation$(br)Complication, aggravation" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/lagoon_rod.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/lagoon_rod.json new file mode 100644 index 0000000000..252b638c16 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/lagoon_rod.json @@ -0,0 +1,21 @@ +{ + "name": "Lagoon Rod", + "advancement": "spectrum:progression/unlock_lagoon_rod", + "icon": "spectrum:lagoon_rod", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:lagoon_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "On quiet days on your patio, you could observe that the Mermaids Gems have a very special attraction to marine life. Add to that that they naturally float on water you used one as bobber.$(br2)And lo and behold, not only does it increase your success, but it also has quite a few other interesting side effects...." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/tools/lagoon_rod", + "text": "$(italic)You wonder what you can bring to the surface?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/lesser_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/lesser_potion_pendant.json new file mode 100644 index 0000000000..e139a2b94a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/lesser_potion_pendant.json @@ -0,0 +1,21 @@ +{ + "name": "Lesser Potion Pendant", + "advancement": "spectrum:progression/unlock_lesser_potion_pendant", + "icon": "spectrum:lesser_potion_pendant", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:lesser_potion_pendant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Potions are handy. However, carrying around half an inventory of them is more than unwieldy.$(br)The Potion Pendant has a small chamber, which can be filled with a Potion. As long as you wear it, you get the effect of that Potion.$(br)Since the Potions are not ingested the Effects only reach up to Level III." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/lesser_potion_pendant", + "text": "Use the $(l:magical_blocks/potion_workshop)Potion Workshop$(/l) to fill it with a Potion, exactly as if you were using a Bottle.$(br)To clear it's effect, put it in a crafting grid." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/malachite_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/malachite_tools.json new file mode 100644 index 0000000000..e4bea41c95 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/malachite_tools.json @@ -0,0 +1,74 @@ +{ + "name": "Malachite Tools", + "advancement": "spectrum:progression/malachite/unlock_malachite_tools", + "icon": "spectrum:malachite_ultra_greatsword", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:malachite_workstaff": 0, + "spectrum:malachite_ultra_greatsword": 0, + "spectrum:malachite_crossbow": 0, + "spectrum:malachite_bident": 0, + "spectrum:malachite_glass_arrow": 0, + "spectrum:topaz_glass_arrow": 0, + "spectrum:amethyst_glass_arrow": 0, + "spectrum:citrine_glass_arrow": 0, + "spectrum:onyx_glass_arrow": 0, + "spectrum:moonstone_glass_arrow": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(l:resources/malachite)Malachite$/l) as a material does seem perfectly suited for tools, best compared to $(thing)Diamond$(), but far easier combinable with other materials.$(br)These combinations are where the fun begins, allowing for some intricately unique tools." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_workstaff", + "text": "The perfect $(l:equipment/multitool)Multitool$():$(br)$(k:sneak) + $(k:use) allows you to switch between $(thing)Silk Touch$() and $(thing)Fortune$(), mine large tunnels at once and allows you to $(thing)strip$(), $(thing)till$() and $(thing)flatten$()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_ultra_greatsword", + "text": "It's sheer size allows you to hit foes at a larger distance.$(br)Would it not be for the $(resources/paltaeria)Paltaeria$()you worked in, you probably wouldn't even be able to lift it." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_bident", + "text": "This upgraded $(thing)Trident$() is a powerhouse, returning to you almost instantly." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_crossbow", + "text": "Shoots projectiles at a higher Speed and precision than a mundane $(thing)Crossbow$(). Not only able to shoot flint arrows or fireworks, but also $(thing)Glass Arrows$()." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/malachite_glass_arrow", + "text": "When shot, these special arrows transform into pure energy, dealing increased damage, allowing them to pierce translucent blocks and do not get slowed down by fluids." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/topaz_glass_arrow", + "text": "Pulls the target in your direction, so you are ready to deal a deadly melee hit." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/amethyst_glass_arrow", + "text": "Freezes the target, slowing them down. Also deals freezing damage over time." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/citrine_glass_arrow", + "text": "Hits your foe with enormous force, knocking them far away." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/onyx_glass_arrow", + "text": "Deals damage regardless of your targets invisibility frames and resets them. Deals additional damage to armor and shields." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/moonstone_glass_arrow", + "text": "Explodes as an orb of pure energy, dealing damage to everything close to the detonation." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/molten_rod.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/molten_rod.json new file mode 100644 index 0000000000..b97963a9dc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/molten_rod.json @@ -0,0 +1,21 @@ +{ + "name": "Molten Rod", + "advancement": "spectrum:progression/unlock_molten_rod", + "icon": "spectrum:molten_rod", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:molten_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Orange, which represents warmth, can be used to do the most interesting things. Like your invention here.$(br2)Unlike a normal fishing rod, this piece is much more sturdy and can fish where a common rod fails. I wonder what you can bring to the surface?" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/tools/molten_rod", + "text": "$(italic)Caution, hot!$()$(br)With this flaming fishing hook you can not only burn your fingers..." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/multitool.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/multitool.json new file mode 100644 index 0000000000..38412e9795 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/multitool.json @@ -0,0 +1,22 @@ +{ + "name": "Multitool", + "advancement": "spectrum:build_basic_pedestal_structure", + "icon": "spectrum:multitool", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:multitool": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:multitool", + "text": "Whenever you leave your home, you carry half a tool shed with you. Given the tons of stone you can carry around with you, that is no even worth mentioning, though. Nevertheless, a universal tool that combines the abilities of a pickaxe, axe, shovel and hoe would suit you.$()$(br)" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/multitool", + "text": "It's not as efficient in the individual tasks, but it is much better than having to change tools every three seconds." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/natures_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/natures_staff.json new file mode 100644 index 0000000000..3ed7055e4e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/natures_staff.json @@ -0,0 +1,28 @@ +{ + "name": "Nature's Staff", + "advancement": "spectrum:progression/unlock_natures_staff", + "icon": "spectrum:natures_staff", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:natures_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Using the magic elements of $(c_brown)Nature$() and $(c_lime)Fertility$(), you have come up with this stroke of genius.$(br)Bonemeal is a joke when compared to your new gadget." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/natures_staff", + "text": "$(italic)Point at something you want to see blossom" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Enchanting - Efficiency", + "item": "spectrum:natures_staff{Enchantments: [{id: \"minecraft:efficiency\", lvl: 5s}]}", + "text": "Enchanting the Nature's Staff with Efficiency by using the $(l:enchanting/enchanting_items)Enchanter$(/l) decreases the chance of $(l:creating_life/fading#vegetal)Vegetal$(/l) to get consumed for each level." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/neat_ring.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/neat_ring.json new file mode 100644 index 0000000000..7d344fd09b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/neat_ring.json @@ -0,0 +1,22 @@ +{ + "name": "Neat Ring", + "advancement": "spectrum:progression/unlock_neat_ring", + "icon": "spectrum:neat_ring", + "secret": true, + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:neat_ring": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)I just think it's neat." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/neat_ring", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/nightfalls_blade.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/nightfalls_blade.json new file mode 100644 index 0000000000..19e9f11e09 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/nightfalls_blade.json @@ -0,0 +1,20 @@ +{ + "name": "Nightfall's Blade", + "advancement": "spectrum:progression/unlock_nightfalls_blade", + "icon": "spectrum:nightfalls_blade", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:nightfalls_blade": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "This small blade is too fine to inflict permanent wounds, but has many sharp edges that drill themselves into the flesh of your opponent.$(br)Infused in the $(l:magical_blocks/potion_workshop)Potion Workshop$() however, all struck opponents are directly affected by the potion's effect, provided you have enough of the color of Ink on you, that corresponds to it." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/nightfalls_blade", + "text": "$(italic)Cruel, really, but effective." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/preenchanted_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/preenchanted_tools.json new file mode 100644 index 0000000000..02036a233e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/preenchanted_tools.json @@ -0,0 +1,58 @@ +{ + "name": "Preenchanted Tools", + "advancement": "spectrum:progression/tools/unlock_any_preenchanted_tool", + "icon": "spectrum:lucky_pickaxe", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:tender_pickaxe": 0, + "spectrum:lucky_pickaxe": 0, + "spectrum:razor_falchion": 0, + "spectrum:oblivion_pickaxe": 0, + "spectrum:resonant_pickaxe": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "That stupid obsidian desk is very stubborn when it comes to giving you the enchantments you seek.$(br)Besides, you'd either have to slaughter a whole herd of cows or rob the books of a dozen villages (no wonder the inhabitants there are so dumb and all too happy to be eaten by zombies)." + }, + { + "type": "patchouli:text", + "text": "The advantage of knowing exactly what you want gives you the ability to shape your tools so that they inherently possess those qualities. The magic of colors makes it possible.$(br)Unfortunately, these features make these tools very fragile for the most part." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_tender_pickaxe", + "recipe": "spectrum:pedestal/tier1/tools/tender_pickaxe", + "text": "The ends of this pickaxe are studded with Topaz to cut even the most delicate material from stone.$(br)The Tender Pickaxe comes pre-enchanted with $(c_cyan)$(bold)Silk Touch$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_lucky_pickaxe", + "recipe": "spectrum:pedestal/tier1/tools/lucky_pickaxe", + "text": "Infused with the power of $(c_yellow)energy$(), it allows you to carve out every last bit of ore from every vein. The Lucky Pickaxe comes pre-enchanted with $(c_yellow)$(bold)Fortune III$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_razor_falchion", + "recipe": "spectrum:pedestal/tier1/tools/razor_falchion", + "text": "The short, razor-sharp blade makes this item a deadly weapon - but at the cost of durability.$(br)The Razor Falchion comes pre-enchanted with $(c_magenta)$(bold)Looting III$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_oblivion_pickaxe", + "recipe": "spectrum:pedestal/tier2/oblivion_pickaxe", + "text": "As an outlier in the group, the Oblivion Pickaxe has a large amount of durability and mining speed. However, all mined blocks $(l:enchanting/curse_of_the_void)are destroyed$()." + }, + { + "type": "patchouli:text", + "title": "Resonant Pickaxe", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "text": "This bright blue pickaxe matches its own gentle inherent vibration to that of its surroundings. This allows you to keep blocks intact that would otherwise be irreparably destroyed by force.$(br)The Resonant Pickaxe comes pre-enchanted with $(l:enchanting/resonance)Resonance$(/l)." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier4/resonant_pickaxe", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/puff_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/puff_circlet.json new file mode 100644 index 0000000000..4465d8b0f0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/puff_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "Puff Circlet", + "advancement": "spectrum:progression/unlock_puff_circlet", + "icon": "spectrum:puff_circlet", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:puff_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "This glistening hoop creates a protective film of air around you.$(br)Grants you $(c_green)4$() points of $(c_blue)Azure Dike$(). $(br)Using those charges, it not only protects you from enemy projectiles, but can even cushion a deep fall.$(br)The Puff Circlet also prevents Farmland from being trampled." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/puff_circlet", + "text": "$(italic)Gone are the days when skeletons sniped you from behind in an unforeseen moment." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/radiance_pin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/radiance_pin.json new file mode 100644 index 0000000000..443819921b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/radiance_pin.json @@ -0,0 +1,21 @@ +{ + "name": "Radiance Pin", + "advancement": "spectrum:progression/unlock_radiance_pin", + "icon": "spectrum:radiance_pin", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:radiance_pin": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You didn't randomly choose the name of the Radiance Pin to resemble the $(l:equipment/radiance_staff)Radiance Staff$(/l).$(br)If you are in a dark area, the pin automatically creates an invisible light on you. Unlike the lights of the $(l:magical_items/radiance_staff)Radiance Staff$(/l), however, they slowly become fainter and fainter until they eventually dissipate completely." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/radiance_pin", + "text": "Fantastic to see the paths you've already taken in your cave explorations." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/radiance_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/radiance_staff.json new file mode 100644 index 0000000000..07c7c950aa --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/radiance_staff.json @@ -0,0 +1,21 @@ +{ + "name": "Radiance Staff", + "advancement": "spectrum:progression/unlock_radiance_staff", + "icon": "spectrum:radiance_staff", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:radiance_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Torches have one crucial weakness: you can only place them when you're already standing in the dark. In contrast the Radiance Staff can place lights far away and in the air, illuminating large caverns at a distance.$(br)As a final goodie, these lights are invisible, making them great for illuminating your structures atmospherically." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/radiance_staff", + "text": "Right click placed lights with the staff to adjust the emitted light level.$(br)They can even be summoned under water." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/ring_of_pursuit.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/ring_of_pursuit.json new file mode 100644 index 0000000000..3759f4ac82 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/ring_of_pursuit.json @@ -0,0 +1,21 @@ +{ + "name": "Ring of Pursuit", + "advancement": "spectrum:progression/unlock_ring_of_pursuit", + "icon": "spectrum:ring_of_pursuit", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:ring_of_pursuit": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Mining is your game. It's almost a miracle that you're only now coming around to the idea of upgrading not only your tools, but your proficiency in general. Just like you he grows with your capabilities." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/ring_of_pursuit", + "text": "Infuse it with $(l:magic/ink)Magenta Ink$(/l) to increase your Mining Speed." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/seven_league_boots.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/seven_league_boots.json new file mode 100644 index 0000000000..f7a5941a44 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/seven_league_boots.json @@ -0,0 +1,28 @@ +{ + "name": "Seven League Boots", + "advancement": "spectrum:progression/unlock_seven_league_boots", + "icon": "spectrum:seven_league_boots", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:seven_league_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Getting from A to B is tedious.$(br)Especially in the case of $(l:resources/geodes)Geodes$(/l), they are usually far away, so the journey there takes quite some time.$(br)With these magic boots you are much more mobile than before." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/seven_league_boots", + "text": "Increases both Movement Speed and Step Height." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "title": "Power", + "item": "spectrum:seven_league_boots{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "The Power enchantment increases the movement speed bonus further." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/take_off_belt.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/take_off_belt.json new file mode 100644 index 0000000000..85919e695b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/take_off_belt.json @@ -0,0 +1,35 @@ +{ + "name": "Take-Off Belt", + "advancement": "spectrum:progression/unlock_take_off_belt", + "icon": "spectrum:take_off_belt", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:take_off_belt": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Climbing mountains or misshapen caves is always very time-consuming. If you don't see an option to scramble up over misshapen ledges, you have no choice but to carve a path into the rock.$(br)Using your new Take-Off Belt you are able to put great vertical distances behind you, saving time and sparing your beautiful nature from destruction." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/take_off_belt", + "text": "Sneak to charge a high jump, getting more powerful the longer you charge$(br2)$(italic)Although the name implies, please don't take it off." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "title": "Power", + "item": "spectrum:take_off_belt{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "The Power enchantment increases the jump height even further." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", + "title": "Feather Falling", + "item": "spectrum:take_off_belt{Enchantments: [{id: \"minecraft:feather_falling\", lvl: 4s}]}", + "text": "Feather Falling will grant you a short slow fall effect, allowing you to better navigate to where you want to land. A high level of Feather Falling may be a very viable way to safely descend down those cliffs again, actually." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/totem_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/totem_pendant.json new file mode 100644 index 0000000000..7692dbcec7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/totem_pendant.json @@ -0,0 +1,21 @@ +{ + "name": "Totem Pendant", + "advancement": "spectrum:progression/unlock_totem_pendant", + "icon": "spectrum:totem_pendant", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:totem_pendant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Totems of Undying, while having a powerful effect, have the significant disadvantage that you always have to hold them in your hand.$(br)Using the protective powers of $(l:general/pigment#blue)Blue Pigment$(/l) as a focus you can keep its life-saving effect active, even when worn around the neck." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/totem_pendant", + "text": "One-time protection from death. After it is triggered, crumbles into dust." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/weeping_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/weeping_circlet.json new file mode 100644 index 0000000000..cd56bb11c4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/weeping_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "Weeping Circlet", + "advancement": "spectrum:progression/unlock_weeping_circlet", + "icon": "spectrum:weeping_circlet", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:weeping_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "These hostile underwater temples are a hell to maneuver. Luckily, in your search for treasure you stumbled upon a Heart of The Sea.$(br)This circlet allows you to live and mine under water as if it were the most natural thing ever. You swim and mine faster, require no air and are able to see better.$(br)It also heals your little close by Axolotl friends ♥" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/weeping_circlet", + "text": "$(italic)Have you ever wanted to live underwater? No?$(br)Whatever, now you can.$(br)Time to build an underwater base!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/whispy_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/whispy_circlet.json new file mode 100644 index 0000000000..fb776d33d2 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/equipment/whispy_circlet.json @@ -0,0 +1,18 @@ +{ + "name": "Whispy Circlet", + "icon": "spectrum:whispy_circlet", + "advancement": "spectrum:progression/unlock_whispy_circlet", + "category": "spectrum:equipment_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Not just the bags under your eyes that are evidence of your lack of sleep. There are those creatures that come haunt you straight out of your missed nightmares when you don't regularly lie down to sleep - almost like they feel cheated.$(br)This here is the manifestation of relaxation, no sleep necessary. After just a few minutes of wear, you feel physically and mentally refreshed. You also recover from negative effects more quickly." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/whispy_circlet", + "text": "$(italic)The pleasures of a good night's sleep" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/ancient_ruins.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/ancient_ruins.json new file mode 100644 index 0000000000..94e2ec43d4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/ancient_ruins.json @@ -0,0 +1,66 @@ +{ + "name": "Ancient Ruins", + "icon": "spectrum:preservation_controller", + "advancement": "spectrum:find_ancient_ruins", + "sortnum": 19, + "turnin": "spectrum:hidden/generate_every_ancient_ruins_loot", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:preservation_stone": 0, + "spectrum:preservation_controller": 0, + "spectrum:powder_chiseled_preservation_stone": 0, + "spectrum:dike_chiseled_preservation_stone": 0, + "spectrum:treasure_chest": 0, + "spectrum:preservation_glass": 0, + "spectrum:tinted_preservation_glass": 0, + "spectrum:dike_gate": 0, + "spectrum:dike_gate_fountain": 0, + "spectrum:courier_statue": 0, + "spectrum:preservation_bricks": 0, + "spectrum:shimmering_preservation_bricks": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Ancient Ruins", + "item": "spectrum:preservation_controller", + "text": "Deep underground you found this outlandish structure, which seems to be build from immensely sturdy stone. Whoever constructed them seemed to have knowledge way beyond your understanding.$(br)There has to be a way to get in there! If not now, then later... better keep the location in mind." + }, + { + "type": "patchouli:text", + "title": "A Challenge?", + "advancement": "spectrum:generate_ancient_ruins_loot", + "text": "Until now, you thought you were alone in your creative endeavour with the gems and pigments. From the looks of it, you were wrong. So very, very wrong.$(br)Whoever built these structures, they obviously followed the same path as you, but were miles ahead.$(br)Still, anyway. You accept the challenge, of course. You have one huge advantage:$(br2)$(italic)YOU are still alive." + }, + { + "type": "patchouli:image", + "title": "A protected Entrance", + "advancement": "spectrum:enter_ancient_ruins", + "images": [ + "spectrum:textures/gui/guidebook/ancient_ruins.png" + ], + "border": true, + "text": "A strong, magical forcefield. Wearing $(l:equipment/azure_dike_equipment)Azure Dike equipment$(/l) allowed you to enter." + }, + { + "type": "patchouli:image", + "title": "Color Combinations", + "advancement": "spectrum:enter_color_mixing_puzzle_structure", + "images": [ + "spectrum:textures/gui/guidebook/color_mixing_puzzle_structure.png" + ], + "border": true, + "text": "It was all so clear, in the end! You had it $(l:general/color_mixing)laid all out already$(/l)." + }, + { + "type": "patchouli:image", + "title": "Short Wired", + "advancement": "spectrum:enter_wireless_redstone_puzzle_structure", + "images": [ + "spectrum:textures/gui/guidebook/wireless_redstone_puzzle_structure.png" + ], + "border": true, + "text": "A really weird one. Having some colors at hand helped a lot." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/anvil_crushing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/anvil_crushing.json new file mode 100644 index 0000000000..01e7cbde3e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/anvil_crushing.json @@ -0,0 +1,23 @@ +{ + "name": "Item Crushing", + "icon": "minecraft:anvil", + "sortnum": 4, + "advancement": "spectrum:place_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:collect_gemstone_powder", + "pages": [ + { + "type": "patchouli:image", + "title": "Item Crushing", + "images": [ + "spectrum:textures/gui/guidebook/anvil_crushing.png" + ], + "border": true, + "text": "$(italic)\"To create something new$(br)you have to go the way of destruction\" - someone" + }, + { + "type": "patchouli:text", + "text": "Until now you primarily used your anvil to repair and upgrade your tools. Such a heavy object as an anvil can be of much more use, though! Why not use it to crush things into dust by sheer force? Like the skulls of your enemies... or items. Yeah, that's probably better.$(br2)You can use Item Crushing to crush $(l:general/shards)Gemstone Shards$() into $(l:general/gemstone_powder)powder$().$(br2)$(italic)Tip: The further the anvil falls, the better." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/color_mixing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/color_mixing.json new file mode 100644 index 0000000000..bf4e785627 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/color_mixing.json @@ -0,0 +1,35 @@ +{ + "name": "Color Mixing", + "icon": "minecraft:light_blue_dye", + "sortnum": 6, + "advancement": "spectrum:collect_vegetal", + "category": "spectrum:general_category", + "turnin": "spectrum:craft_colored_sapling", + "pages": [ + { + "type": "patchouli:image", + "title": "Color Mixing", + "images": [ + "spectrum:textures/gui/guidebook/color_mixing.png" + ], + "text": "By using the base colors $(c_cyan)Cyan$(), $(c_magenta)Magenta$() and $(c_yellow)Yellow$(), (almost) every color can be created." + }, + { + "type": "patchouli:text", + "text": "Your attempts trying to mix $(l:general/gemstone_powder)Gemstone Powder$(/l) directly were not very successful. But you have another idea now:$(br)The closeness of your gemstones to nature suggests that $(italic)nature$() must be both source and answer!$(br2)Quickly you scribble a few notes and $(l:general/colored_trees)out tumbles a recipe$(), which looks very promising." + }, + { + "type": "patchouli:text", + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "title": "Creating Brown Pigment", + "text": "You tried and tried. You could not figure out a way to create brown color by mixing your gemstone dust. The closest you came was merely a washed out orange - yuck.$(br)It can't be THAT hard. Like... $(c_brown)dirt is brown$() and it is the most common stuff around.$(br2)There has to be a way...$(br)and you are pretty sure $(c_black)Black$() is the answer." + }, + { + "type": "patchouli:link", + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "text": "$(br2)$(br2)$(br2)$(br)$(italic)Seriously, look it up! The way we perceive brown is fascinating!$()", + "url": "https://www.youtube.com/watch?v=wh4aWZRtTwU", + "link_text": "Brown is weird" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/colored_trees.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/colored_trees.json new file mode 100644 index 0000000000..dc16fd84ea --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/colored_trees.json @@ -0,0 +1,200 @@ +{ + "name": "Colored Trees", + "icon": "spectrum:red_sapling", + "sortnum": 7, + "advancement": "spectrum:collect_vegetal", + "turnin": "spectrum:collect_pigment", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:black_sapling": 0, + "spectrum:blue_sapling": 0, + "spectrum:brown_sapling": 0, + "spectrum:cyan_sapling": 0, + "spectrum:gray_sapling": 0, + "spectrum:green_sapling": 0, + "spectrum:light_blue_sapling": 0, + "spectrum:light_gray_sapling": 0, + "spectrum:lime_sapling": 0, + "spectrum:magenta_sapling": 0, + "spectrum:orange_sapling": 0, + "spectrum:pink_sapling": 0, + "spectrum:purple_sapling": 0, + "spectrum:red_sapling": 0, + "spectrum:white_sapling": 0, + "spectrum:yellow_sapling": 0, + "spectrum:black_log": 0, + "spectrum:blue_log": 0, + "spectrum:brown_log": 0, + "spectrum:cyan_log": 0, + "spectrum:gray_log": 0, + "spectrum:green_log": 0, + "spectrum:light_blue_log": 0, + "spectrum:light_gray_log": 0, + "spectrum:lime_log": 0, + "spectrum:magenta_log": 0, + "spectrum:orange_log": 0, + "spectrum:pink_log": 0, + "spectrum:purple_log": 0, + "spectrum:red_log": 0, + "spectrum:white_log": 0, + "spectrum:yellow_log": 0, + "spectrum:black_leaves": 0, + "spectrum:blue_leaves": 0, + "spectrum:brown_leaves": 0, + "spectrum:cyan_leaves": 0, + "spectrum:gray_leaves": 0, + "spectrum:green_leaves": 0, + "spectrum:light_blue_leaves": 0, + "spectrum:light_gray_leaves": 0, + "spectrum:lime_leaves": 0, + "spectrum:magenta_leaves": 0, + "spectrum:orange_leaves": 0, + "spectrum:pink_leaves": 0, + "spectrum:purple_leaves": 0, + "spectrum:red_leaves": 0, + "spectrum:white_leaves": 0, + "spectrum:yellow_leaves": 0, + "spectrum:black_planks": 0, + "spectrum:blue_planks": 0, + "spectrum:brown_planks": 0, + "spectrum:cyan_planks": 0, + "spectrum:gray_planks": 0, + "spectrum:green_planks": 0, + "spectrum:light_blue_planks": 0, + "spectrum:light_gray_planks": 0, + "spectrum:lime_planks": 0, + "spectrum:magenta_planks": 0, + "spectrum:orange_planks": 0, + "spectrum:pink_planks": 0, + "spectrum:purple_planks": 0, + "spectrum:red_planks": 0, + "spectrum:white_planks": 0, + "spectrum:yellow_planks": 0, + "spectrum:black_stairs": 0, + "spectrum:blue_stairs": 0, + "spectrum:brown_stairs": 0, + "spectrum:cyan_stairs": 0, + "spectrum:gray_stairs": 0, + "spectrum:green_stairs": 0, + "spectrum:light_blue_stairs": 0, + "spectrum:light_gray_stairs": 0, + "spectrum:lime_stairs": 0, + "spectrum:magenta_stairs": 0, + "spectrum:orange_stairs": 0, + "spectrum:pink_stairs": 0, + "spectrum:purple_stairs": 0, + "spectrum:red_stairs": 0, + "spectrum:white_stairs": 0, + "spectrum:yellow_stairs": 0, + "spectrum:black_pressure_plate": 0, + "spectrum:blue_pressure_plate": 0, + "spectrum:brown_pressure_plate": 0, + "spectrum:cyan_pressure_plate": 0, + "spectrum:gray_pressure_plate": 0, + "spectrum:green_pressure_plate": 0, + "spectrum:light_blue_pressure_plate": 0, + "spectrum:light_gray_pressure_plate": 0, + "spectrum:lime_pressure_plate": 0, + "spectrum:magenta_pressure_plate": 0, + "spectrum:orange_pressure_plate": 0, + "spectrum:pink_pressure_plate": 0, + "spectrum:purple_pressure_plate": 0, + "spectrum:red_pressure_plate": 0, + "spectrum:white_pressure_plate": 0, + "spectrum:yellow_pressure_plate": 0, + "spectrum:black_fence": 0, + "spectrum:blue_fence": 0, + "spectrum:brown_fence": 0, + "spectrum:cyan_fence": 0, + "spectrum:gray_fence": 0, + "spectrum:green_fence": 0, + "spectrum:light_blue_fence": 0, + "spectrum:light_gray_fence": 0, + "spectrum:lime_fence": 0, + "spectrum:magenta_fence": 0, + "spectrum:orange_fence": 0, + "spectrum:pink_fence": 0, + "spectrum:purple_fence": 0, + "spectrum:red_fence": 0, + "spectrum:white_fence": 0, + "spectrum:yellow_fence": 0, + "spectrum:black_fence_gate": 0, + "spectrum:blue_fence_gate": 0, + "spectrum:brown_fence_gate": 0, + "spectrum:cyan_fence_gate": 0, + "spectrum:gray_fence_gate": 0, + "spectrum:green_fence_gate": 0, + "spectrum:light_blue_fence_gate": 0, + "spectrum:light_gray_fence_gate": 0, + "spectrum:lime_fence_gate": 0, + "spectrum:magenta_fence_gate": 0, + "spectrum:orange_fence_gate": 0, + "spectrum:pink_fence_gate": 0, + "spectrum:purple_fence_gate": 0, + "spectrum:red_fence_gate": 0, + "spectrum:white_fence_gate": 0, + "spectrum:yellow_fence_gate": 0, + "spectrum:black_button": 0, + "spectrum:blue_button": 0, + "spectrum:brown_button": 0, + "spectrum:cyan_button": 0, + "spectrum:gray_button": 0, + "spectrum:green_button": 0, + "spectrum:light_blue_button": 0, + "spectrum:light_gray_button": 0, + "spectrum:lime_button": 0, + "spectrum:magenta_button": 0, + "spectrum:orange_button": 0, + "spectrum:pink_button": 0, + "spectrum:purple_button": 0, + "spectrum:red_button": 0, + "spectrum:white_button": 0, + "spectrum:yellow_button": 0, + "spectrum:black_slab": 0, + "spectrum:blue_slab": 0, + "spectrum:brown_slab": 0, + "spectrum:cyan_slab": 0, + "spectrum:gray_slab": 0, + "spectrum:green_slab": 0, + "spectrum:light_blue_slab": 0, + "spectrum:light_gray_slab": 0, + "spectrum:lime_slab": 0, + "spectrum:magenta_slab": 0, + "spectrum:orange_slab": 0, + "spectrum:pink_slab": 0, + "spectrum:purple_slab": 0, + "spectrum:red_slab": 0, + "spectrum:white_slab": 0, + "spectrum:yellow_slab": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Colored Trees", + "text": "You need something organic to mix your pigments. In your experiments, you could see that the roots of saplings absorb the color of the pigments with ease and develop accordingly. The energy of the gems pulses through the stem and their first few leaves already.$(br2)How will they look like when fully grown?" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Colored Saplings", + "recipe": "spectrum:pedestal/tier1/saplings/red_sapling", + "text": "Each Colored Sapling will need a different combination of $(l:general/gemstone_powder)Gemstone Powder$(), corresponding to the $(l:general/color_mixing)amount needed to mix its color$(/l)." + }, + { + "type": "patchouli:image", + "title": "Natural Generation", + "advancement": "spectrum:craft_colored_sapling", + "images": [ + "spectrum:textures/gui/guidebook/colored_trees.png" + ], + "text": "They existed around you all along! Who knows what else is out there?" + }, + { + "type": "patchouli:crafting", + "advancement": "spectrum:craft_colored_sapling", + "anchor": "colored_wood", + "title": "Colored Wood", + "recipe": "spectrum:crafting_table/colored_wood/light_blue_planks", + "text": "Like their non-colorful, non-magical counterparts, you can use the colored wood for Planks, Stairs, Slabs, Buttons, Pressure Plates, Fences and Fence Gates." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/create_budding_onyx.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/create_budding_onyx.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/create_budding_onyx.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/create_budding_onyx.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/fusion_shrine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/fusion_shrine.json new file mode 100644 index 0000000000..7500c1f51c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/fusion_shrine.json @@ -0,0 +1,61 @@ +{ + "name": "Fusion Shrine", + "icon": "spectrum:fusion_shrine_basalt", + "sortnum": 10, + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "turnin": "spectrum:build_fusion_shrine", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:fusion_shrine_basalt": 1, + "spectrum:fusion_shrine_calcite": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "For the process of creating $(l:general/onyx_shards)Black Shards$() you have developed a special construction.$(br2)You can either click or throw items and buckets onto it. You are even able to process entire stacks of fusion ingredients at once, making fusing much more efficient than with a single item per cycle." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/fusion_shrine_basalt", + "text": "Can be constructed out of Basalt or Calcite.$(br)Requires a focus structure and clear view of the sky." + }, + { + "type": "patchouli:multiblock", + "name": "Shrine Structure", + "multiblock_id": "spectrum:fusion_shrine_structure", + "enable_visualize": true, + "text": "As always you are able to switch Basalt with Calcite and choose the $(l:decoration/gemstone_storage_blocks)Gemstone Blocks$(/l) to your liking." + }, + { + "type": "patchouli:text", + "title": "Block Checklist", + "text": "$(li)1 Fusion Shrine$(li)4 Polished Gemstone Blocks$(li)4 Chiseled Polished Blocks$(li)8 Polished Pillars$(li)12 Polished Slabs$(li)77 Polished Blocks" + }, + { + "type": "patchouli:text", + "title": "Changing the Weather", + "text": "You have designed the structure for the Fusion Shrine to bundle the magical energies of $(c_cyan)Matter$(), $(c_magenta)Time$() and $(c_yellow)Energy$() and focus them on a single, central point, the Fusion Shrine itself.$(br2)These powerful bundled energies seem to even have enough power to change the weather." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Sunny Weather", + "recipe": "spectrum:fusion_shrine/weather/weather_clear", + "text": "$(italic)It's a brand new day$(br)And the sun is high$(br)All the birds are singing$(br)That you're gonna die" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Rainy Weather", + "advancement": "spectrum:collect_mermaids_gem", + "recipe": "spectrum:fusion_shrine/weather/weather_rain", + "text": "$(italic)Knock Knock$(br)Who's there?$(br)Accordion$(br)Accordion who?$(br)Accordion to the forecast, it's going to rain tonight." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Thunderstorms", + "advancement": "spectrum:midgame/collect_storm_stone", + "recipe": "spectrum:fusion_shrine/weather/weather_thunder", + "text": "$(italic)Why did the god of thunder drink water?$(br2)Because he was thorsty." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/gemstone_powder.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/gemstone_powder.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/gemstone_powder.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/gemstone_powder.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/intro.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/intro.json new file mode 100644 index 0000000000..2d04e1b183 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/intro.json @@ -0,0 +1,32 @@ +{ + "name": "Intro", + "icon": "spectrum:pedestal_basic_amethyst", + "category": "spectrum:general_category", + "sortnum": 0, + "pages": [ + { + "type": "patchouli:image", + "title": "Welcome to Spectrum!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum.png" + ], + "border": true, + "text": "Spectrum is a full-feature mod about magic and exploration." + }, + { + "type": "patchouli:text", + "text": "Spectrum is based on color mixing of the subtractive color system (CMYK). Subtractive color mixing may be familiar to you from painting with watercolors or printing.$(br2)Spectrums main colors are represented by gemstones, found in geodes scattered around the world, with the vanilla Amethyst representing the Magenta part of the spectrum." + }, + { + "type": "patchouli:text", + "title": "Progression System", + "text": "Spectrum comes with a complex progression system where you unlock new things as you progress.$(br)As you delve deeper, you will notice changes in the world. Differences, that only you can perceive.$(br2)Everything you learn will bring you closer to your final destination: Finding out what is waiting for you beneath the impenetrable bedrock floor." + }, + { + "type": "patchouli:link", + "text": "No idea on how to progress? Take a look at this book or your advancements. These give a lot of hints on what to do next. Press the bottom center arrow to get started!$(br2)Spectrum is still in development. If you find a bug or have a suggestion, visit Spectrum's Discord or report them on GitHub.$(br)Have fun! - DaFuqs", + "url": "https://discord.com/invite/EXU9XFXT8a", + "link_text": "Spectrum's Discord" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/midnight_aberration.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/midnight_aberration.json new file mode 100644 index 0000000000..b8ce784c5d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/midnight_aberration.json @@ -0,0 +1,35 @@ +{ + "name": "The Perfect Compound?", + "icon": "spectrum:midnight_aberration", + "sortnum": 13, + "advancement": "spectrum:midgame/collect_neolith", + "category": "spectrum:general_category", + "turnin": "spectrum:midgame/create_midnight_aberration", + "extra_recipe_mappings": { + "spectrum:midnight_aberration": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The latest findings from your last experiment make you strive for more and more. Squeeze every last ounce of energy out of your gemstones.$(br2)Neolith is the key! Yes, it must be! If you combine all the gems you have collected so far with it, something must be created that holds incredible power. Alone for you and ONLY for you, master of Pigment!" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/midnight_aberration", + "text": "Fusing those magical energies must result in an incredible source of power - with a display to match. Best to make sure your Shrine and everything around it is fortified.$(br)Requires daytime and a clear sky." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:midnight_aberration", + "advancement": "spectrum:midgame/create_midnight_aberration", + "title": "Midnight Aberration", + "text": "$(italic)This abomination of a Gemstone radiates an eerie aura.$()$(br2)It looks loosely connected at best. No wonder it falls apart in your hands in no time. Total failure." + }, + { + "type": "patchouli:text", + "advancement": "spectrum:midgame/create_midnight_aberration", + "text": "While the chaos that ensued $(italic)definitely$() was not the outcome you craved for, the result still does hold immense power.$(br)So much in fact, that if not used quick it crumbles into dust.$(br2)And then there is that aggressive blackish fluid that manifested in the process. Because of its color you named it $(l:magical_blocks/midnight_solution)Midnight Solution$(/l)." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/moonstone_shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/moonstone_shards.json new file mode 100644 index 0000000000..86b84fba4b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/moonstone_shards.json @@ -0,0 +1,20 @@ +{ + "name": "Moonstone Shards", + "icon": "spectrum:moonstone_shard", + "sortnum": 15, + "advancement": "spectrum:lategame/collect_moonstone_shard", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:moonstone_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You were quite simple-minded, weren't you? Thought you knew everything, but this everything was always merely half the truth.$(br)You know better now. This white, pure Gemstone you hold in your hand, shimmering in a soft, warm glow, is the monument to that." + }, + { + "type": "patchouli:text", + "text": "You have never been remotely omnipotent, never will be. Not with all the magic in the world. No one is. But with a little humility, care and support, you can at least get a little closer.$(br2)$(bold)$(c_white)Purity." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/mysterious_locket.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/mysterious_locket.json new file mode 100644 index 0000000000..8c6b873684 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/mysterious_locket.json @@ -0,0 +1,44 @@ +{ + "name": "A Mysterious Locket", + "icon": "spectrum:mysterious_locket", + "advancement": "spectrum:collect_mysterious_locket", + "category": "spectrum:general_category", + "secret": true, + "sortnum": 20, + "extra_recipe_mappings": { + "spectrum:mysterious_locket": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "A Mysterious Locket", + "item": "spectrum:mysterious_locket", + "text": "This small locket is tight shut. It features an odd crystal ornament which almost resembles a lock, softly glowing a pale white color, a shimmer reminiscent of the moon.$(br)Who knows who this once belonged to and why it was left behind." + }, + { + "type": "patchouli:text", + "text": "There seems to be something inside. It also has an engraving on it's back, but if it even resembles a language it's none you have ever seem.$(br2)$(bold)Want to know what's inside? Stay tuned for the next mod update soon (tm)" + }, + { + "type": "patchouli:text", + "title": "A Challenge?", + "advancement": "spectrum:lategame/learn_dreiton", + "text": "Now that you understand Dreiton tongue, it is easy for you to decipher the inscription on the back:$(br2)$(italic)Don't be silly Asteras - the moon can't glow, it can only reflect the sun's light." + }, + { + "type": "patchouli:image", + "title": "The Locket's Contents", + "advancement": "spectrum:open_mysterious_locket", + "images": [ + "spectrum:textures/gui/guidebook/locket.png" + ], + "border": true, + "text": "" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:open_mysterious_locket", + "text": "The locket also contained a small crystal, bearing a dimmer, yet much warmer glow than it's lock.$(br)While in the $(l:dimension/dimension)Deeper Down$(/l)it softly vibrates as you turn." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/onyx_shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/onyx_shards.json new file mode 100644 index 0000000000..1d236e73f5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/onyx_shards.json @@ -0,0 +1,35 @@ +{ + "name": "Creating Onyx Shards", + "icon": "spectrum:onyx_shard", + "sortnum": 11, + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "category": "spectrum:general_category", + "turnin": "spectrum:create_onyx_shard", + "extra_recipe_mappings": { + "spectrum:onyx_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "To create brown Pigment you needed a way to darken an orange tone.$(br)And then it occurred to you. It's so logical when you think about it! The three gems you found correspond to the three basic colors of color theory!$(br)By mixing all three colors you can create a shard that is so dark it almost looks unreal." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/onyx_shard", + "text": "The creation of this 'blackest of blacks' in the $(l:general/fusion_shrine)Fusion Shrine$() has to be performed in a way that absolutely no unregulated light can pollute the crystal. So midnight on a new moon it is. Best to bring a clock with you." + }, + { + "type": "patchouli:image", + "title": "Moon Phases", + "images": [ + "spectrum:textures/gui/guidebook/moon_phases.png" + ], + "text": "Depending on the positions of Sun and Moon, the Moon will reflect more or less light." + }, + { + "type": "patchouli:text", + "text": "This is called $(thing)Moon Phases$().$(br2)The point where the Moon almost reflects maximal light down to you, it's called $(thing)Full Moon$(), the opposite of a $(thing)New Moon$().$(br2)An entire lunar phase cycle from one new moon to the following new moon is also called a $(thing)lunation$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/paintbrush.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/paintbrush.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/paintbrush.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/paintbrush.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_cmy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_cmy.json new file mode 100644 index 0000000000..e676ca7ee1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_cmy.json @@ -0,0 +1,44 @@ +{ + "name": "Pedestal CMY Upgrade", + "icon": "spectrum:pedestal_all_basic", + "sortnum": 9, + "advancement": "spectrum:progression/unlock_cmy_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:build_basic_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_all_basic": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "CMY Variant", + "recipe": "spectrum:pedestal/tier1/pedestal_all_basic", + "text": "Upgrade your $(l:general/pedestal)Pigment Pedestal$() by using all the shards you collected on your journey." + }, + { + "type": "patchouli:text", + "title": "Pedestal Structure", + "text": "To make use of the $(l:general/pedestal)Pigment Pedestals$() advanced abilities you will need a structure to focus gemstone energy into it.$(br2)You call it the$(br)$(bold)Spectrum Focus$()." + }, + { + "type": "patchouli:multiblock", + "name": "Spectrum Focus", + "multiblock_id": "spectrum:pedestal_simple_structure_check", + "enable_visualize": true, + "text": "You can switch the basalt blocks with calcite and choose the gemstone blocks as you like it best." + }, + { + "type": "patchouli:text", + "title": "Block Checklist", + "text": "$(li)1 Pigment Pedestal$(li)4 Polished Gemstone Blocks$(li)4 Chiseled Polished Blocks$(li)4 Notched Polished Blocks$(li)8 Polished Pillars$(li)68 Polished Blocks" + }, + { + "type": "patchouli:image", + "title": "Individualize!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_focus_customisation.png" + ], + "text": "Mix up Basalt and Calcite up to create your personal variation!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_moonstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_moonstone.json new file mode 100644 index 0000000000..f9dda9e026 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_moonstone.json @@ -0,0 +1,36 @@ +{ + "name": "Moonstone Pedestal", + "icon": "spectrum:pedestal_moonstone", + "sortnum": 16, + "advancement": "spectrum:lategame/collect_moonstone_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:lategame/build_complex_pedestal_structure_without_moonstone", + "extra_recipe_mappings": { + "spectrum:pedestal_moonstone": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "Moonstone Variant", + "recipe": "spectrum:pedestal/tier3/pedestal_moonstone", + "text": "Upgrade your $(l:general/pedestal)Pigment Pedestal$() by using one of your gathered $(l:general/shards#moonstone)Moonstone Shards$()" + }, + { + "type": "patchouli:multiblock", + "name": "Spectrum Palace", + "multiblock_id": "spectrum:pedestal_complex_structure_without_moonstone_check", + "enable_visualize": true, + "text": "You can switch the basalt blocks with calcite and the amethyst blocks for any other gemstone block." + }, + { + "type": "patchouli:text", + "title": "Checklist (Complete)", + "text": "$(li)1 Pigment Pedestal$(li)4 Onyx Chiseled Blocks$(li)4 Notched Polished Blocks$(li)8 Gemstone Lamps$(li)4 Gemstone Chiseled Blocks$(li)12 Polished Gemstone Blocks$(li)16 CMYK Gemstone Chiseled Bl.$(li)36 Polished Pillars$(li)52 Polished Crests$(li)172 Polished Blocks" + }, + { + "type": "patchouli:text", + "title": "Checklist (Upgrade)", + "text": "$(li)4 Onyx Chiseled Blocks$(li)4 Polished Gemstone Blocks$(li)36 Polished Crests" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_moonstone_2.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_moonstone_2.json new file mode 100644 index 0000000000..8f510aec12 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_moonstone_2.json @@ -0,0 +1,40 @@ +{ + "name": "Moonstone Pedestal (2)", + "icon": "spectrum:pedestal_moonstone", + "sortnum": 17, + "advancement": "spectrum:lategame/build_complex_pedestal_structure_without_moonstone", + "category": "spectrum:general_category", + "turnin": "spectrum:lategame/build_complex_pedestal_structure", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstone_chiseled_basalt", + "text": "Your latest Pedestal structure feels... somewhat lacking. And now you have gotten a hold of $(l:general/moonstone_shards)Moonstone$(/l) you also know exactly what is missing: $(c_white)Moonstone$() exactly. The tricky part: Creating the required $(thing)Moonstone Chiseled Blocks$() would require you being able to use your $(thing)Moonstone Pedestal$() to it's full capability already.$(br)$(italic)Is there a way to kickstart you?" + }, + { + "type": "patchouli:multiblock", + "name": "Spectrum Palace", + "multiblock_id": "spectrum:pedestal_complex_structure_check", + "enable_visualize": true, + "text": "You can switch the basalt blocks with calcite and the amethyst blocks for any other gemstone block." + }, + { + "type": "patchouli:text", + "title": "Checklist (Complete)", + "text": "$(li)1 Pigment Pedestal$(li)4 Onyx Chiseled Blocks$(li)4 Notched Polished Blocks$(li)8 Gemstone Lamps$(li)4 Gemstone Chiseled Blocks$(li)12 Polished Gemstone Blocks$(li)16 CMY Gemstone Chiseled Bl.$(li)28 Moonstone Chiseled Bl.$(li)36 Polished Pillars$(li)52 Polished Crests$(li)144 Polished Blocks" + }, + { + "type": "patchouli:text", + "title": "Checklist (Upgrade)", + "text": "$(li)28 Moonstone Chiseled Bl." + }, + { + "type": "patchouli:image", + "title": "Individualize!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_complex_customisation.png" + ], + "text": "Mix them up to create your personal variation!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_onyx.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_onyx.json new file mode 100644 index 0000000000..68faa6ecbe --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pedestal_upgrade_onyx.json @@ -0,0 +1,44 @@ +{ + "name": "Pedestal Onyx Upgrade", + "icon": "spectrum:pedestal_onyx", + "sortnum": 12, + "advancement": "spectrum:create_onyx_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:midgame/build_advanced_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_onyx": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "Onyx Variant", + "recipe": "spectrum:pedestal/tier2/pedestal_onyx", + "text": "Upgrade your $(l:general/pedestal)Pigment Pedestal$() by using one of your $(l:general/shards#onyx)Onyx Shards$() to further increase its magical powers." + }, + { + "type": "patchouli:multiblock", + "name": "Spectrum Temple", + "multiblock_id": "spectrum:pedestal_advanced_structure_check", + "enable_visualize": true, + "text": "You can switch the basalt blocks with calcite and also the amethyst blocks for any other gemstone block." + }, + { + "type": "patchouli:text", + "title": "Checklist (Complete)", + "text": "$(li)1 Pigment Pedestal$(li)8 Polished Gemstone Blocks$(li)8 Gemstone Lamps$(li)4 Chiseled Polished Blocks$(li)16 Gemstone Chiseled Blocks$(li)16 Polished Crests$(li)4 Notched Polished Blocks$(li)36 Polished Pillars$(li)160 Polished Blocks" + }, + { + "type": "patchouli:text", + "title": "Checklist (Upgrade)", + "text": "$(li)4 Polished Gemstone Blocks$(li)8 Gemstone Lamps$(li)16 Gemstone Chiseled Blocks$(li)16 Polished Crests$(li)28 Polished Pillars$(li)92 Polished Blocks" + }, + { + "type": "patchouli:image", + "title": "Individualize!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_hall_customisation.png" + ], + "text": "Mix them up to create your personal variation!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pigment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pigment.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pigment.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/pigment.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/shards.json new file mode 100644 index 0000000000..f582f2f997 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/shards.json @@ -0,0 +1,69 @@ +{ + "name": "Gemstone Shards", + "icon": "minecraft:amethyst_shard", + "sortnum": 2, + "category": "spectrum:general_category", + "turnin": "spectrum:collect_all_basic_shards", + "extra_recipe_mappings": { + "spectrum:topaz_shard": 0, + "minecraft:amethyst_shard": 0, + "spectrum:citrine_shard": 0, + "spectrum:onyx_shard": 0, + "spectrum:moonstone_shard": 0, + "spectrum:spectral_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "To start delving into Spectrum you first have to find some gemstone shards.$(br2)Each kind of gemstone represents an elemental color and a different kind of natural force." + }, + { + "type": "patchouli:spotlight", + "anchor": "topaz", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "title": "Topaz Shards", + "item": "spectrum:topaz_shard", + "text": "Topaz Shards lie surprisingly heavy in your hand. Fragile at first glance, this gemstone quickly turned out to be one of the most robust materials, which you were ever getting a hold of - perhaps only surpassed by diamond. Topaz is found in geodes at the very top of steep hills and on the tops of sky-high mountains.$(br)The Topaz represents $(bold)$(c_cyan)MATTER.$()" + }, + { + "type": "patchouli:spotlight", + "anchor": "amethyst", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "title": "Amethyst Shards", + "item": "minecraft:amethyst_shard", + "text": "Magenta light refracts in this gemstone.$(br)Formed over eons in the geodes, this gemstone radiates awe. It is a symbol of permanence and found in the deepest layers of the world.$(br2)The Amethyst represents $(bold)$(c_purple)TIME$()." + }, + { + "type": "patchouli:spotlight", + "anchor": "citrine", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "title": "Citrine Shards", + "item": "spectrum:citrine_shard", + "text": "This yellow gemstone is found close to surface level where the suns light dissipates into warmth.$(br2)Its bright yellow luster radiates pure $(bold)$(c_yellow)ENERGY$() and makes it slightly warm to the touch at all times." + }, + { + "type": "patchouli:spotlight", + "anchor": "onyx", + "advancement": "spectrum:create_onyx_shard", + "title": "Onyx Shards", + "item": "spectrum:onyx_shard", + "text": "Onyx is almost pitch black. It almost seems as if it would even withdraw the light from its surroundings.$(br2)The Onyx, as a combination of energy, matter, and time, serves as a $(bold)$(c_black)reinforcing focus and catalyst$() for magical tools and devices." + }, + { + "type": "patchouli:spotlight", + "anchor": "moonstone", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "title": "Moonstone Shards", + "item": "spectrum:moonstone_shard", + "text": "It's bluish-white shimmer reminds you of the soothing light of the moon on a calm summer night. The tranquility it exudes leaves a calming, yet significant impression, like a sleeping cat - balm for the soul and yet a predator, always on guard.$(br2)The Moonstone embodies $(bold)$(c_white)pure magic$()." + }, + { + "type": "patchouli:spotlight", + "anchor": "spectral", + "advancement": "spectrum:lategame/create_spectral_shard", + "title": "Spectral Shards", + "item": "spectrum:spectral_shard", + "text": "Spectral Shards shine in all colors of the rainbow." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/spectral_shard.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/spectral_shard.json new file mode 100644 index 0000000000..4003557d56 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/general/spectral_shard.json @@ -0,0 +1,39 @@ +{ + "name": "Spectral Shard", + "advancement": "spectrum:progression/unlock_spectral_shard", + "sortnum": 18, + "secret": true, + "icon": "spectrum:spectral_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:lategame/create_spectral_shard", + "extra_recipe_mappings": { + "spectrum:spectral_shard": 0, + "spectrum:spectral_shard_block": 0, + "spectrum:spectral_shard_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Spectral Shard", + "text": "TODO" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/spectral_shard", + "text": "TODO" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:lategame/create_spectral_shard", + "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_block", + "text": "$(italic)Pretty!$()" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:lategame/create_spectral_shard", + "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_storage_block", + "text": "$(italic)And you thought a beacon out of Netherite Blocks was a excessive?$()" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/amethyst.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/amethyst.json new file mode 100644 index 0000000000..dac05e350b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/amethyst.json @@ -0,0 +1,17 @@ +{ + "name": "A Gemstone", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:spectrum", + "read_by_default": true, + "turnin": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "cost": "spectrum:citrine_shard#16", + "text": "There is a type of geode to be found deep underground." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/azurite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/azurite.json new file mode 100644 index 0000000000..e51d7cd6a9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/azurite.json @@ -0,0 +1,23 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_azurite", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_azurite", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:midgame/collect_azurite", + "cost": "spectrum:neolith#8", + "text": "There is a new Ore to be found in the Overworld in all biomes." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:neolith#24", + "text": "This rich blue ore generates very deep down under the surface and is fairly rare." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/citrine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/citrine.json new file mode 100644 index 0000000000..cf9faea056 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/citrine.json @@ -0,0 +1,17 @@ +{ + "name": "A Gemstone", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:spectrum", + "read_by_default": true, + "turnin": "spectrum:hidden/collect_shards/collect_citrine_shard", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "cost": "spectrum:topaz_shard#16", + "text": "There is a type of geode commonly found near surface level. You may find it exposed most often in lakes or ravines." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/clover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/clover.json new file mode 100644 index 0000000000..3f3f1ed3fc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/clover.json @@ -0,0 +1,23 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_enchanting_structure", + "read_by_default": true, + "turnin": "spectrum:collect_four_leaf_clover", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to look", + "completion_advancement": "spectrum:collect_four_leaf_clover", + "cost": "spectrum:vegetal#16", + "text": "Search for a Plains biome. Maybe you get lucky!" + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:vegetal#48", + "text": "There is Clover growing in Plains biomes. You can immediately notice a Four-Leaved Clover in its block form already. Break to harvest, Bonemeal/Nature's Staff to spread them." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/fading.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/fading.json new file mode 100644 index 0000000000..79592ca7ac --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/fading.json @@ -0,0 +1,23 @@ +{ + "name": "Experiment #1", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:craft_bottle_of_fading", + "read_by_default": true, + "turnin": "spectrum:collect_vegetal", + "pages": [ + { + "type": "spectrum:hint", + "title": "Small Clue", + "completion_advancement": "spectrum:collect_vegetal", + "cost": "spectrum:shimmerstone_gem#16", + "text": "Fading, as a small and weak organism, can only process organic blocks placed next to it, while also taking quite a while." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:shimmerstone_gem#48", + "text": "Place organic blocks, like Leaves, Pumpkins or Melons next to it and wait a while. After some time the block will get consumed and replaced with a different looking Variant. Break those converted blocks to get a new Resource." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/failing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/failing.json new file mode 100644 index 0000000000..93128f474b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/failing.json @@ -0,0 +1,23 @@ +{ + "name": "Experiment #2", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/craft_bottle_of_failing", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_neolith", + "pages": [ + { + "type": "spectrum:hint", + "title": "Small Clue", + "completion_advancement": "spectrum:midgame/collect_neolith", + "cost": "spectrum:stratine_fragments#8", + "text": "Just like Fading, they prefer a specific block placed next to them. This time a lot more strong, though. 'I hate mining this' strong, to be precise." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:stratine_fragments#24", + "text": "The preferred food is Obsidian. Watch out for their insatiable hunger, though. They will eat quite a lot, if given the chance..." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/malachite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/malachite.json new file mode 100644 index 0000000000..986a82b163 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/malachite.json @@ -0,0 +1,23 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_malachite", + "read_by_default": true, + "turnin": "spectrum:lategame/collect_malachite", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:lategame/collect_malachite", + "cost": "spectrum:bismuth_crystal#8", + "text": "There is a new ore found in the Deeper Down." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:bismuth_crystal#24", + "text": "It is bright green and generates in the deepest depths of the Deeper Down. It's not found exposed to air often, so you may be most successful via branch mining." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/mermaids_gems.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/mermaids_gems.json new file mode 100644 index 0000000000..8e269984ab --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/mermaids_gems.json @@ -0,0 +1,23 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "read_by_default": true, + "turnin": "spectrum:collect_mermaids_gem", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:collect_mermaids_gem", + "cost": "spectrum:onyx_shard#4", + "text": "Sometimes there are shiny gems found in oceans, floating on top of the water, getting rocked back and forth by the waves. If you spend some time near or in the ocean you may find one yourself!" + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:onyx_shard#12", + "text": "Source is a delicate flower, found at the bottom of the sea, growing in small groups. The plant emits a faint glow and if you wear an active Glow Squid helmet it sparkles, too. Wait next to it until it is fully grown and releases its precious treasure and collect it. Only after you collected that drop you can see the plant for what it is." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/midnight_chip.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/midnight_chip.json new file mode 100644 index 0000000000..b8ddc49923 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/midnight_chip.json @@ -0,0 +1,24 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/create_midnight_aberration", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_midnight_chip", + "pages": [ + { + "type": "spectrum:hint", + "title": "A small tip", + "completion_advancement": "spectrum:midgame/collect_midnight_chip", + "cost": "spectrum:neolith#8", + "text": "This liquid, which was created during the creation of the Midnight Aberration... it damages everything it touches." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "completion_advancement": "spectrum:midgame/collect_midnight_chip", + "cost": "spectrum:neolith#24", + "text": "Midnight Solution has various effects depending on what lands in it. Enchanted items lose their magical powers, some items change altogether and creatures killed by it drop a small mysterious fragment." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/paltaeria.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/paltaeria.json new file mode 100644 index 0000000000..c9835a84f8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/paltaeria.json @@ -0,0 +1,23 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_paltaeria", + "read_by_default": true, + "turnin": "spectrum:lategame/collect_paltaeria", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:lategame/collect_paltaeria", + "cost": "spectrum:moonstone_shard#8", + "text": "There is a new turquoise ore found in the End." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:moonstone_shard#32", + "text": "This ore, that you are now able to perceive is generating at both the central island and the outer regions of the End. Catch it, before it is too late!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/quitoxic_reeds.json new file mode 100644 index 0000000000..65b95216c7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/quitoxic_reeds.json @@ -0,0 +1,23 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_quitoxic_reeds", + "read_by_default": true, + "turnin": "spectrum:collect_quitoxic_reeds", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:collect_quitoxic_reeds", + "cost": "minecraft:clay_ball#16", + "text": "Time for an adventure trip on the surface. Visit a Swamp!" + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:clay_ball#48", + "text": "Strange looking plants have been seen in Swamps, growing on patches of Clay. They grow higher with more clay or mud blocks around, but consume that block in the process." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/resonating_ender.json new file mode 100644 index 0000000000..4549dc8383 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/resonating_ender.json @@ -0,0 +1,23 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "read_by_default": true, + "turnin": "spectrum:get_radiating_ender", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:get_radiating_ender", + "cost": "minecraft:ender_pearl#4", + "text": "Not every block that an Enderman carries seems to be what it looks like at first glance." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:ender_pearl#12", + "text": "Some Endermen appear in the Overworld carrying Blocks that could very well be small relics of the End itself. You can get a hold of one by killing an Endermen while it carries what looks like Cobblestone. Endermen holding these blocks can also be found in the End, albeit more rarely." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/ruin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/ruin.json new file mode 100644 index 0000000000..90b29cbf4d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/ruin.json @@ -0,0 +1,23 @@ +{ + "name": "Experiment #3", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/craft_bottle_of_ruin", + "read_by_default": true, + "turnin": "spectrum:midgame/break_decayed_bedrock", + "pages": [ + { + "type": "spectrum:hint", + "title": "Small Clue", + "completion_advancement": "spectrum:midgame/break_decayed_bedrock", + "cost": "spectrum:brown_pigment#8", + "text": "This absolutely aggressive variant called Ruin is able to consume the most resistant material there is. Even ones too resistant for you to ever break before." + }, + { + "type": "spectrum:hint", + "title": "A Warning", + "cost": "spectrum:brown_pigment#24", + "text": "What could be more resistant than the unbreakable Bedrock itself? Better have a backup plan up your sleeve if anything goes wrong." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/ruins.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/ruins.json new file mode 100644 index 0000000000..7642b5f880 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/ruins.json @@ -0,0 +1,41 @@ +{ + "name": "A Structure", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/get_azure_dike_charge", + "read_by_default": true, + "turnin": "spectrum:generate_ancient_ruins_loot", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:generate_ancient_ruins_loot", + "cost": "spectrum:refined_azurite#4", + "text": "There are 3 different kinds of impenetrable structures hidden deep underground in the Overworld in any biome. They seem to be built from an unbreakable stone." + }, + { + "type": "spectrum:hint", + "title": "Blue Hearts", + "advancement": "spectrum:find_ancient_ruins", + "completion_advancement": "spectrum:generate_ancient_ruins_loot", + "cost": "spectrum:refined_azurite#12", + "text": "The entrance seems to be blocked by a powerful forcefield. Whoever built those was kind enough to leave you clues, however! The hearts on the forcefield's sides seem to indicate you have to have Azure Dike active." + }, + { + "type": "spectrum:hint", + "title": "Colored Spore Blossoms", + "advancement": "spectrum:find_ancient_ruins", + "completion_advancement": "spectrum:enter_color_mixing_puzzle_structure", + "cost": "spectrum:refined_azurite#12", + "text": "The Colored Spore Blossoms at the ceiling and the engravings behind them on the walls seem to hint at the solution. A Powder engraving and a '? + ?'. You have to mix powders?" + }, + { + "type": "spectrum:hint", + "title": "Bedrock Seal", + "advancement": "spectrum:find_ancient_ruins", + "completion_advancement": "spectrum:enter_wireless_redstone_puzzle_structure", + "cost": "spectrum:refined_azurite#12", + "text": "Is there a way to crack open the Bedrock? After you get in, best to take a look at the corresponding pages in your book of everything you find there. Always good to have some dyes with you." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/shimmerstone.json new file mode 100644 index 0000000000..e43cc0a0e0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/shimmerstone.json @@ -0,0 +1,23 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_shimmerstone", + "read_by_default": true, + "turnin": "spectrum:collect_shimmerstone", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:collect_shimmerstone", + "cost": "minecraft:copper_ingot#8", + "text": "There is a new Ore to be found in the Overworld at and above surface level." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:copper_ingot#24", + "text": "It generates in all biomes in the center and upper layers of the Overworld in large veins. Most often you can find it exposed in mountains." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/stargazing.json new file mode 100644 index 0000000000..ba48a24bba --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/stargazing.json @@ -0,0 +1,23 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/unlock_shooting_stars", + "read_by_default": true, + "turnin": "spectrum:collect_star_fragment", + "pages": [ + { + "type": "spectrum:hint", + "title": "What to look for", + "completion_advancement": "spectrum:collect_star_fragment", + "cost": "spectrum:shimmerstone_gem#8", + "text": "Shooting Stars only show up at night. Having something ready to better see them in the darkness will surely help a lot. They show up with a noticeable particle trail." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:shimmerstone_gem#24", + "text": "Your best chances to see a Shooting Star are to search for it with Night Vision and a Spyglass equipped. If you see one crashing down on the earth try to trace its steps to find out where it landed. They shoot up particles like a beam." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/storm_stones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/storm_stones.json new file mode 100644 index 0000000000..a9a3be8812 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/storm_stones.json @@ -0,0 +1,23 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_storm_stones", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_storm_stone", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:midgame/collect_storm_stone", + "cost": "spectrum:neolith#8", + "text": "Thunderstorms are a powerful display of nature. There are tremendous energies playing." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:neolith#24", + "text": "Sometimes you are able to find weird shards at places where lightning struck. There even is a way to focus Lightning at a specific position, to make gathering them even more efficient." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/stratine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/stratine.json new file mode 100644 index 0000000000..98787493eb --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/stratine.json @@ -0,0 +1,23 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_stratine", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_stratine", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:midgame/collect_stratine", + "cost": "minecraft:quartz#16", + "text": "There is a new Ore found in the Nether." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:quartz#48", + "text": "It generates in the lower layers of the Nether in all biomes, below lava level." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/topaz.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/topaz.json new file mode 100644 index 0000000000..4d62d16381 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/hints/topaz.json @@ -0,0 +1,17 @@ +{ + "name": "A Gemstone", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:spectrum", + "read_by_default": true, + "turnin": "spectrum:hidden/collect_shards/collect_topaz_shard", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "cost": "minecraft:amethyst_shard#16", + "text": "This type of geode is found at great heights, typically on top of hills and sky-high mountains." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/artists_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/artists_palette.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/artists_palette.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/artists_palette.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/color_picker.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/color_picker.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/color_picker.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/color_picker.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/crystal_apothecary.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/crystal_apothecary.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/crystal_apothecary.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/crystal_apothecary.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink.json new file mode 100644 index 0000000000..41b82865ca --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink.json @@ -0,0 +1,30 @@ +{ + "name": "Ink", + "advancement": "spectrum:progression/unlock_ink_flask", + "icon": "spectrum:ink_flask", + "category": "spectrum:magic_category", + "priority": true, + "pages": [ + { + "type": "patchouli:text", + "text": "Now that you're familiar with Pigment, you see no reason to lug it around like you did in the Middle Ages. You have found a way to convert Pigment into a higher form of energy.$(br)You called it $(c_cyan)I$(c_magenta)n$(c_yellow)k$()." + }, + { + "type": "patchouli:text", + "title": "Producing & Storing", + "text": "Pigment can be converted to Ink using the $(l:magic/color_picker)Color Picker$(/l) and then extracted into containers, like $(l:magic/ink_flask)Ink Flasks$(/l).$(br2)Only drawback: deprived of it's physical form, there is no way to transform Ink back into Pigment." + }, + { + "type": "patchouli:image", + "title": "Transfer", + "images": [ + "spectrum:textures/gui/guidebook/ink_transfer.png" + ], + "text": "Ink behaves very much like a liquid. It flows from where it is abundant to where is little." + }, + { + "type": "patchouli:text", + "text": "$(br)When two objects that store ink are connected - such as a Color Picker and an Ink Flask - the Ink between the two containers slowly evens out.$(br)The greater the difference, the faster the Flask is getting filled." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink_assortment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink_assortment.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink_assortment.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink_assortment.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink_duct.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink_duct.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink_duct.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink_duct.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink_flask.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink_flask.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink_flask.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/ink_flask.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/inkwell.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/inkwell.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/inkwell.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/inkwell.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/pigment_palette.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/pigment_palette.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/pigment_palette.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/spirit_sallow.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/spirit_sallow.json new file mode 100644 index 0000000000..f3dd3b8c46 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magic/spirit_sallow.json @@ -0,0 +1,49 @@ +{ + "name": "Spirit Sallow", + "advancement": "spectrum:progression/unlock_ominous_sapling", + "secret": true, + "icon": "spectrum:ominous_sapling", + "category": "spectrum:magic_category", + "priority": true, + "extra_recipe_mappings": { + "spectrum:ominous_sapling": 0, + "spectrum:spirit_sallow_roots": 0, + "spectrum:spirit_sallow_log": 0, + "spectrum:spirit_sallow_leaves": 0, + "spectrum:spirit_sallow_heart": 0, + + "spectrum:vibrant_cyan_catkin": 0, + "spectrum:vibrant_magenta_catkin": 0, + "spectrum:vibrant_yellow_catkin": 0, + "spectrum:vibrant_black_catkin": 0, + "spectrum:vibrant_white_catkin": 0, + "spectrum:lucid_cyan_catkin": 0, + "spectrum:lucid_magenta_catkin": 0, + "spectrum:lucid_yellow_catkin": 0, + "spectrum:lucid_black_catkin": 0, + "spectrum:lucid_white_catkin": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:ominous_sapling", + "text": "TODO" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:lategame/grow_ominous_sapling", + "title": "Spirit Sallow", + "text": "TODO" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:vibrant_cyan_catkin", + "text": "TODO" + }, + { + "type": "patchouli:text", + "title": "Lucid Catkin", + "text": "TODO" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/bedrock_anvil.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/bedrock_anvil.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/bedrock_anvil.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/bedrock_anvil.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/black_hole_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/black_hole_chest.json new file mode 100644 index 0000000000..18715524ad --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/black_hole_chest.json @@ -0,0 +1,21 @@ +{ + "name": "Black Hole Chest", + "advancement": "spectrum:progression/unlock_black_hole_chest", + "icon": "spectrum:black_hole_chest", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:black_hole_chest": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)The problem with hoppers is that, on the one hand, they are not only slow, but also poorly suited for larger farms due to their non-existent range.$(br2)With a bit of application of blue pigment, all items in a large radius around the crate can easily be brought to safety." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/black_hole_chest", + "text": "Black Hole Chests have a radius of 12 blocks. You can disable them by placing a block on top. It offers filters to specify which items it should accept." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/cinderhearth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/cinderhearth.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/cinderhearth.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/cinderhearth.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/compacting_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/compacting_chest.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/compacting_chest.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/compacting_chest.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/crystallarieum.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/crystallarieum.json new file mode 100644 index 0000000000..eeb9dd66e2 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/crystallarieum.json @@ -0,0 +1,145 @@ +{ + "name": "Crystallarieum", + "icon": "spectrum:crystallarieum", + "advancement": "spectrum:progression/unlock_crystallarieum", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:crystallarieum": 0, + + "spectrum:small_coal_bud": 0, + "spectrum:large_coal_bud": 0, + "spectrum:coal_cluster": 0, + "spectrum:small_copper_bud": 0, + "spectrum:large_copper_bud": 0, + "spectrum:copper_cluster": 0, + "spectrum:small_diamond_bud": 0, + "spectrum:large_diamond_bud": 0, + "spectrum:diamond_cluster": 0, + "spectrum:small_emerald_bud": 0, + "spectrum:large_emerald_bud": 0, + "spectrum:emerald_cluster": 0, + "spectrum:small_glowstone_bud": 0, + "spectrum:large_glowstone_bud": 0, + "spectrum:glowstone_cluster": 0, + "spectrum:small_gold_bud": 0, + "spectrum:large_gold_bud": 0, + "spectrum:gold_cluster": 0, + "spectrum:small_iron_bud": 0, + "spectrum:large_iron_bud": 0, + "spectrum:iron_cluster": 0, + "spectrum:small_lapis_bud": 0, + "spectrum:large_lapis_bud": 0, + "spectrum:lapis_cluster": 0, + "spectrum:small_netherite_bud": 0, + "spectrum:large_netherite_bud": 0, + "spectrum:netherite_cluster": 0, + "spectrum:small_prismarine_bud": 0, + "spectrum:large_prismarine_bud": 0, + "spectrum:prismarine_cluster": 0, + "spectrum:small_quartz_bud": 0, + "spectrum:large_quartz_bud": 0, + "spectrum:quartz_cluster": 0, + "spectrum:small_redstone_bud": 0, + "spectrum:large_redstone_bud": 0, + "spectrum:redstone_cluster": 0, + "spectrum:small_certus_quartz_bud": 0, + "spectrum:large_certus_quartz_bud": 0, + "spectrum:certus_quartz_cluster": 0, + "spectrum:small_fluix_bud": 0, + "spectrum:large_fluix_bud": 0, + "spectrum:fluix_cluster": 0, + "spectrum:small_globette_bud": 0, + "spectrum:large_globette_bud": 0, + "spectrum:globette_cluster": 0, + "spectrum:small_globette_end_bud": 0, + "spectrum:large_globette_end_bud": 0, + "spectrum:globette_end_cluster": 0, + "spectrum:small_globette_nether_bud": 0, + "spectrum:large_globette_nether_bud": 0, + "spectrum:globette_nether_cluster": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "With Budding Blocks in mind you designed the Crystallarieum: an ink-powered apparatus, which could automatically grow resources from raw ore or crystals on it's top.$(br)While, even after all your efforts, you could not get it to grow actual $(l:general/shards)Gemstone Shards$(/l), you quickly recognised it's potential for growing all kinds of other resources." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/crystallarieum", + "text": "It can fit a stack of catalysts, which it uses to enhance the growth process. For a few rare materials that even may be required." + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Iron Growing", + "recipe": "spectrum:crystallarieum/vanilla/iron", + "text": "Metallic resources can be grown by throwing unrefined materials, like $(thing)Raw Iron$() on top of it. Result is a small iron bud that steadily grows until it reaches maturity and can safely be harvested." + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Diamond Growing", + "recipe": "spectrum:crystallarieum/vanilla/diamond", + "text": "Crystal-like blocks, like $(thing)Diamonds$() can be grown, too! Albeit most requiring more Ink than metal ones, their crystal nature allows you to grow them again and again - $(thing)Diamond Clusters$() yielding $(thing)Diamonds$()." + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Copper Growing", + "recipe": "spectrum:crystallarieum/vanilla/copper", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Gold Growing", + "recipe": "spectrum:crystallarieum/vanilla/gold", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Netherite Growing", + "recipe": "spectrum:crystallarieum/vanilla/netherite", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Coal Growing", + "recipe": "spectrum:crystallarieum/vanilla/coal", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Emerald Growing", + "recipe": "spectrum:crystallarieum/vanilla/emerald", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Glowstone Growing", + "recipe": "spectrum:crystallarieum/vanilla/glowstone", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Lapis Growing", + "recipe": "spectrum:crystallarieum/vanilla/lapis", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Prismarine Growing", + "recipe": "spectrum:crystallarieum/vanilla/prismarine_crystal", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Quartz Growing", + "recipe": "spectrum:crystallarieum/vanilla/quartz", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "Redstone Growing", + "recipe": "spectrum:crystallarieum/vanilla/redstone", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/ender_dropper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/ender_dropper.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/ender_dropper.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/ender_dropper.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/ender_hopper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/ender_hopper.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/ender_hopper.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/ender_hopper.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/fabrication_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/fabrication_chest.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/fabrication_chest.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/fabrication_chest.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/glistering_melons.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/glistering_melons.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/glistering_melons.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/glistering_melons.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/lava_sponge.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/lava_sponge.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/lava_sponge.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/lava_sponge.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/liquid_crystal.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/liquid_crystal.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/liquid_crystal.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/liquid_crystal.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/midnight_solution.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/midnight_solution.json new file mode 100644 index 0000000000..3f091ef609 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/midnight_solution.json @@ -0,0 +1,50 @@ +{ + "name": "Midnight Solution", + "icon": "spectrum:midnight_solution_bucket", + "advancement": "spectrum:midgame/create_midnight_aberration", + "category": "spectrum:magical_blocks_category", + "turnin": "spectrum:midgame/collect_midnight_chip", + "extra_recipe_mappings": { + "spectrum:midnight_solution_bucket": 0, + "spectrum:midnight_chip": 0, + "spectrum:black_materia": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You stumbled about this bizarre liquid as a direct result of $(l:general/midnight_aberration)your failed fusion experiment$(). Pity, really, but look what you have now.$(br)Creatures that touch it seem to get their life drained out of them. Interesting...$(br)Better not get caught in it yourself." + }, + { + "type": "patchouli:spotlight", + "title": "Midnight Chip", + "item": "spectrum:midnight_chip", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "Creatures that died in that feisty liquid drop a small splinter that almost resembles a $(l:general/midnight_aberration)Midnight Aberration$(/l), just way, way smaller. Sharp-Edged and vicious.$(br)Creatures unalived by this cruel process also seem to $(thing)drop items as if they were killed by a player$()." + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "Midnight Solution Bucket", + "recipe": "spectrum:potion_workshop_crafting/midnight_solution_bucket", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "Using the exact drop that you got by killing creatures with that fluid you can create even more of it. Quite morbid, if you think about it." + }, + { + "type": "patchouli:spotlight", + "title": "Black Materia", + "item": "spectrum:black_materia", + "advancement": "spectrum:hidden/break_black_materia", + "text": "A seemingly useless material that forms around pools of Midnight Solution." + }, + { + "type": "spectrum:midnight_solution_converting", + "title": "Item Conversion", + "recipe": "spectrum:midnight_solution_converting/blackstone", + "text": "Throwing some items into the liquid seems to corrupt them up to a point they turn into something else entirely." + }, + { + "type": "patchouli:text", + "title": "Disenchanting", + "text": "Even more, if you throw enchanted items into it, they will be stripped of their special abilities. All that's left is the ordinary item and a bunch of experience." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/mob_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/mob_blocks.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/mob_blocks.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/mob_blocks.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/mud.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/mud.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/mud.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/mud.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_brewing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_brewing.json new file mode 100644 index 0000000000..783ec8398f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_brewing.json @@ -0,0 +1,85 @@ +{ + "name": "Potion Works.: Brewing", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "minecraft:potion": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Brewing Potions", + "text": "Since the Potion Workshop is basically an upgraded Brewing Stand, you are able to create all the Potion variants that were available to you before, too.$(br)In addition, the possibility to use magic items as ingredients opens new doors for you.$(br2)Some of them are easier or harder to get enhanced effects from." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Vanilla Potion Variants", + "recipe": "spectrum:potion_workshop_brewing/fire_resistance", + "text": "The process of creating Potions with the same effects that you could use before use the same ingredients. Unlike using the Brewing Stand, you can use $(l:magical_blocks/potion_workshop_reagents)Reagents$(/l) to enhance their effects even further." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Absorption", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/absorption", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Glowing", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/glowing", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Haste", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/haste", + "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Mining Fatigue$() instead." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Saturation", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/saturation", + "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Hunger$() instead." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Levitation", + "advancement": "spectrum:progression/potions/unlock_levitation_potion", + "recipe": "spectrum:potion_workshop_brewing/levitation", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Luck", + "advancement": "spectrum:progression/potions/unlock_luck_potion", + "recipe": "spectrum:potion_workshop_brewing/luck", + "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Bad Luck$() instead." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Resistance", + "advancement": "spectrum:progression/potions/unlock_resistance_potion", + "recipe": "spectrum:potion_workshop_brewing/resistance", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Wither", + "advancement": "spectrum:progression/potions/unlock_wither_potion", + "recipe": "spectrum:potion_workshop_brewing/wither", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Darkness", + "advancement": "spectrum:progression/potions/unlock_darkness_potion", + "recipe": "spectrum:potion_workshop_brewing/darkness", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_crafting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_crafting.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_crafting.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_crafting.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_reagents.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_reagents.json new file mode 100644 index 0000000000..d4db72f32f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/potion_workshop_reagents.json @@ -0,0 +1,162 @@ +{ + "name": "Potion Works.: Reagents", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Using Reagents", + "text": "Using Mermaids Gems as a Base instead of Blaze Powder results in a much more reactive potion. Not only does this allow you to add your new range of additional magical ingredients to your Potions, but also use some of them as additional Reagent. Each of those Reagents modifies the resulting properties of your Potions. Each Reagent can only be used once per recipe." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:redstone", + "text": "Doubles Duration." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:glowstone_dust", + "text": "Flat increase in Potency." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:gunpowder", + "text": "Creates Splash Potions." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:dragon_breath", + "advancement": "spectrum:hidden/collect_vanilla/collect_dragon_breath", + "text": "Creates Lingering Potions - also requires Gunpowder as reagent$(br2)Allows you to create Tipped Arrows, if you supply Arrows instead of Bottles." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:topaz_powder", + "text": "Makes Effects not show any particles." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:amethyst_powder", + "text": "Adds a short flat bonus to the Potions Duration." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:citrine_powder", + "text": "Slight multiplicative Potency bonus." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:onyx_powder", + "text": "Adds a very weird taste and smell to the potion, making it unidentifiable.$(br)Also makes its color completely black." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstone_powder", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "text": "Changes all otherwise negative Effects to their positive ones." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:shimmerstone_gem", + "text": "Tiny multiplicative bonus to both Duration and Potency." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:quitoxic_powder", + "advancement": "spectrum:collect_quitoxic_reeds", + "text": "Greatly increases Potency of all negative Effects." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:stratine_fragments", + "advancement": "spectrum:midgame/collect_stratine", + "text": "Big flat bonus to Potency, at the cost of adding a random negative Effect." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:paltaeria_fragments", + "advancement": "spectrum:lategame/collect_paltaeria", + "text": "Adds a random positive Effect." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:stardust", + "advancement": "spectrum:hidden/collect_stardust", + "text": "$(italic)Absorbs the last drops of what remains of your previous brew.$()$(br2)Small chance to add the main Effect of the Potion that was brewed previously." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:star_fragment", + "advancement": "spectrum:collect_star_fragment", + "text": "$(italic)Similar to Stardust, but much more potent.$()$(br2)Guaranteed chance to add the main Effect of the Potion that was brewed previously, at slightly decreased Potency." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:storm_stone", + "advancement": "spectrum:midgame/collect_storm_stone", + "text": "Increases the Potions Potency at the beginning, but wearing off fast over time." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:raw_azurite", + "advancement": "spectrum:midgame/collect_azurite", + "text": "Negates the duration penalty for Lingering Potions as well as for Tipped Arrows." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:four_leaf_clover", + "advancement": "spectrum:collect_four_leaf_clover", + "text": "Provides a huge boost to a random stat." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:vegetal", + "advancement": "spectrum:collect_vegetal", + "text": "Doubles the potions Duration at the cost of Potency." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:neolith", + "advancement": "spectrum:midgame/collect_neolith", + "text": "Increases Yield, allowing you to brew an additional potion." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:midnight_chip", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "Increases Potency and adds 30 seconds to the Duration, but drastically lowers Yield." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstruck_nectar", + "advancement": "spectrum:midgame/harvest_moonstruck_nectar", + "text": "Makes the Potion much more smooth, resulting in it being way faster to drink. Might come in handy when every second is crucial." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bedrock_dust", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "text": "Doubles the Potions Potency, at the cost of Duration." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bismuth_crystal", + "advancement": "spectrum:lategame/collect_bismuth_crystal", + "text": "Flat Potency bonus for all positive Effects. Additionally colors the Potions in a random color." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:malachite_crystal", + "advancement": "spectrum:lategame/grow_malachite_in_crystallarieum", + "text": "x3 multiplicative Duration bonus, but makes the Potion much slower to drink." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:prickly_bayleaf", + "anchor": "prickly_bayleaf", + "advancement": "spectrum:lategame/collect_prickly_bayleaf", + "text": "Greatly reduces the potency of negative effects or removes them entirely." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/present.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/present.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/present.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/present.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/private_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/private_chest.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/private_chest.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/private_chest.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/semi_permeable_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/semi_permeable_glass.json new file mode 100644 index 0000000000..9dc564cbb0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/semi_permeable_glass.json @@ -0,0 +1,37 @@ +{ + "name": "Semi-permeable Glass", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "icon": "spectrum:amethyst_semi_permeable_glass", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:vanilla_semi_permeable_glass": 0, + "spectrum:tinted_semi_permeable_glass": 0, + "spectrum:glowing_semi_permeable_glass": 0, + "spectrum:topaz_semi_permeable_glass": 0, + "spectrum:amethyst_semi_permeable_glass": 0, + "spectrum:citrine_semi_permeable_glass": 0, + "spectrum:onyx_semi_permeable_glass": 0, + "spectrum:moonstone_semi_permeable_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Semi-permeable Glass", + "item": "spectrum:amethyst_semi_permeable_glass", + "text": "$(italic)For a long time now, those annoying monsters that always appear at night are no longer a threat to you and only serve as a resource supplier, if at all. But that doesn't stop them from pursuing you further.$(br)You spend more time keeping those pesky monsters out of your base than you care to admit.$()" + }, + { + "type": "patchouli:text", + "text": "$(italic)Then you remember the gemstone glass recipe you thought up earlier.$(br2)With a bit of magical energy, it should be no problem to make it not only transparent for you, but also passable (not for them!).$(br2)Bonus: If you make it look exactly like regular glass you might even be able to fool your competition.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/player_only_glass/amethyst_semi_permeable_glass" + }, + { + "type": "patchouli:text", + "text": "Semi-permeable Glass comes in all gemstone colors, common, tinted and glowing variants.$(br2)It looks exactly like its $(l:decoration/gemstone_glass)mundane counterpart$(), but has the special property that players can pass through it without problems, while all other creatures will bounce off it like a fly off a window." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/titration_barrel.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/titration_barrel.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/titration_barrel.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/titration_barrel.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/universe_spyhole.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/universe_spyhole.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/universe_spyhole.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/universe_spyhole.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/upgrades.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/upgrades.json new file mode 100644 index 0000000000..7d43e6cc64 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_blocks/upgrades.json @@ -0,0 +1,129 @@ +{ + "name": "Structure Upgrades", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "icon": "spectrum:upgrade_speed", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:upgrade_speed": 0, + "spectrum:upgrade_speed2": 0, + "spectrum:upgrade_speed3": 0, + "spectrum:upgrade_experience": 0, + "spectrum:upgrade_experience2": 0, + "spectrum:upgrade_efficiency": 0, + "spectrum:upgrade_efficiency2": 0, + "spectrum:upgrade_yield": 0, + "spectrum:upgrade_yield2": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Pigment Pedestal and Fusion Shrine have already proven their worth. But there is still plenty of room for improvement. That's why you created these upgrades. Each one improves the properties of your structures in a different way, depending on what's most important to you personally.$(br)Additional ones of the same type have a decreased effect." + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_speed", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/upgrade_speed", + "text": "The crafting time of the $(l:general/pedestal)Pigment Pedestal$(/l) increases a lot when using complex components. This will help you bring back the times to an acceptable level." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_speed2", + "title": "Tier 2", + "recipe": "spectrum:pedestal/tier3/upgrade_speed2", + "text": "The Pedestal Accelerator T2 improves all aspects of the previous variant. Making your crafting even more rapid." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_speed3", + "title": "Tier 3", + "recipe": "spectrum:pedestal/tier4/upgrade_speed3", + "text": "Tier 3 leaves nothing to be desired - at least in terms of crafting speed." + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_experience", + "title": "Knowledge Focus", + "recipe": "spectrum:pedestal/tier3/upgrade_experience", + "text": "For the most part the experience $(l:general/pedestal)Pigment Pedestal$(/l) crafting rewards is pretty much negligible. But using this Focus you could dramatically increase the amount gained." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_experience2", + "title": "Tier 2", + "recipe": "spectrum:pedestal/tier3/upgrade_experience2", + "text": "This improved Knowledge Focus increases the generated XP even more." + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_efficiency", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/upgrade_efficiency", + "text": "The $(l:general/pedestal)Pigment Pedestal$(/l) devours vast amounts of Gemstone Powder.$(br)Now you should be able to cushion the consumption of your structures a little." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_efficiency2", + "title": "Tier 2", + "recipe": "spectrum:pedestal/tier4/upgrade_efficiency2", + "text": "This 'upgrade of the upgrade' further reduces the consumption of input materials." + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_yield", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/upgrade_yield", + "text": "This is an interesting one. Although the chance is very small, you can increase the # of your crafting outputs.$(br)$(italic)More bang for your buck!" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_yield2", + "title": "Tier 2", + "recipe": "spectrum:pedestal/tier4/upgrade_yield2", + "text": "This upgraded version is much more potent, allowing you to get even more output for your crafting." + }, + + { + "type": "patchouli:multiblock", + "name": "Pedestal Placement", + "multiblock_id": "spectrum:pedestal_structure_with_upgrades", + "enable_visualize": false, + "text": "4 upgrade slots" + }, + { + "type": "patchouli:multiblock", + "name": "Fusion Shrine Placement", + "multiblock_id": "spectrum:fusion_shrine_structure_with_upgrades", + "enable_visualize": false, + "text": "4 upgrade slots" + }, + { + "type": "patchouli:multiblock", + "advancement": "spectrum:midgame/enter_liquid_crystal", + "name": "Enchanter Placement", + "multiblock_id": "spectrum:enchanter_structure_with_upgrades", + "enable_visualize": false, + "text": "4 upgrade slots" + }, + { + "type": "patchouli:multiblock", + "advancement": "spectrum:progression/unlock_cinderhearth", + "name": "Cinderhearth Placement", + "multiblock_id": "spectrum:cinderhearth_structure_with_upgrades", + "enable_visualize": false, + "text": "2 upgrade slots" + }, + { + "type": "patchouli:multiblock", + "advancement": "spectrum:progression/unlock_spirit_instiller", + "name": "Spirit Instiller Placement", + "multiblock_id": "spectrum:spirit_instiller_structure_with_upgrades", + "enable_visualize": false, + "text": "2 upgrade slots" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/bag_of_holding.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/bag_of_holding.json new file mode 100644 index 0000000000..81b62abd71 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/bag_of_holding.json @@ -0,0 +1,23 @@ +{ + "name": "Bag of Holding", + "advancement": "spectrum:progression/unlock_bag_of_holding", + "icon": "spectrum:bag_of_holding", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bag_of_holding": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Bag of Holding", + "item": "spectrum:bag_of_holding", + "text": "$(italic)Placing an Ender Chest, opening it, and mining it with an enchanted pickaxe is not what you think of as fun.$(br)That's why you invented this thing." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/bag_of_holding", + "text": "Just open it and the contents of your Ender Chest are right there." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/block_flooder.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/block_flooder.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/block_flooder.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/block_flooder.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/blood_orchid_products.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/blood_orchid_products.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/blood_orchid_products.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/blood_orchid_products.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/bottomless_bundle.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/bottomless_bundle.json new file mode 100644 index 0000000000..3647b1a18e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/bottomless_bundle.json @@ -0,0 +1,49 @@ +{ + "name": "Bottomless Bundle", + "advancement": "spectrum:progression/unlock_bottomless_bundle", + "icon": "spectrum:bottomless_bundle", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bottomless_bundle": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottomless_bundle", + "text": "$(italic)On your journeys through the underground you collect a whole lot of identical blocks, which you will never need again. But they are too good to throw away, you think.$(br2)Time to develop a storage solution that takes care of your little homemade problem.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/bottomless_bundle", + "text": "The Bottomless Bundle stores a virtually unlimited number of items, but of only one type.$(br)Right click it on stacks or empty slots in your inventory to fill/empty it" + }, + { + "type": "patchouli:image", + "title": "Automation", + "images": [ + "spectrum:textures/gui/guidebook/bottomless_bundle_automation.png" + ], + "text": "Crouching places it down, making it able to be automatically filled / emptied." + }, + { + "type": "patchouli:text", + "title": "", + "text": "$(br)A placed Bundle will always remember the last item you put into it.$(br)Even if it is emptied it will only accept new items that it was holding before, making it also usable as a filter.$(br2)$(italic)Note: If it was placed empty it will accept the first item pumped into it and get locked to that.$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Enchanting - Power", + "item": "spectrum:bottomless_bundle{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "Enchanting a Bottomless Bundle with Power by using the $(l:enchanting/enchanting_items)Enchanter$(/l) you can increase its capacity tenfold for each level of Power.$(br2)$(italic)Are you able to fill a Bottomless Bundle with Power V?" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Curse of the Void", + "item": "spectrum:bottomless_bundle{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "text": "Enchanting a Bottomless Bundle with Curse of the Void by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will result in voiding all items that would overfill the Bottomless Bundle.$(br2)$(italic)No more useless blocks cluttering your path when mining." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/celestial_pocketwatch.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/celestial_pocketwatch.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/celestial_pocketwatch.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/celestial_pocketwatch.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/crafting_tablet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/crafting_tablet.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/crafting_tablet.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/crafting_tablet.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/crescent_clock.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/crescent_clock.json new file mode 100644 index 0000000000..541af0a086 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/crescent_clock.json @@ -0,0 +1,21 @@ +{ + "name": "Crescent Clock", + "advancement": "spectrum:progression/unlock_crescent_clock", + "icon": "spectrum:crescent_clock", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:crescent_clock": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "There seems to be something magical about the flow of time.$(br)This clock, formed from witnesses of time, is to show you a way in this never-ending stream of beginning and passing - moon phases." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/crescent_clock", + "text": "$(italic)If we shadows have offended, Know but this and all is mended.$(br)That you have but slumbered here, While these visions did appear.$(br)And this weak and idle theme, No more yielding, but a dream." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/enchantment_canvas.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/enchantment_canvas.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/enchantment_canvas.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/enchantment_canvas.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ender_splice.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/ender_splice.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ender_splice.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/ender_splice.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/freigeist.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/freigeist.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/freigeist.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/freigeist.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/glistering_jelly_tea.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/glistering_jelly_tea.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/glistering_jelly_tea.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/glistering_jelly_tea.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/incandescent_amalgam.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/incandescent_amalgam.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/incandescent_amalgam.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/incandescent_amalgam.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/infused_beverages.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/infused_beverages.json new file mode 100644 index 0000000000..3652cb1516 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/infused_beverages.json @@ -0,0 +1,178 @@ +{ + "name": "Infused Beverages", + "icon": "spectrum:infused_beverage", + "advancement": "spectrum:progression/unlock_titration_barrel", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:infused_beverage": 0, + "spectrum:pure_alcohol": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "The Art of Brewing", + "text": "Fermentation is a very natural process - things take time and care. Since there never is a fully controlled environment there are a lot of variables:$(li)Time: It takes time for the barrel to influence the contents. The longer you give the process, the stronger the changes will be. Most beverages get more intense and even additional effects, when given more time than strictly required" + }, + { + "type": "patchouli:text", + "text": "$(li)Temperature: The hotter it is, the more of your precious content simply evaporates over time. This is called the Angel's Share$(li)Humidity: The more humid the air, the more water evaporates in comparison to alcohol, making the drink stronger$(li)Water Share: An increased rate of ingredients to water is a fine balance, but one to be played with. More thickness makes the drink ferment faster, albeit at the cost of shorter status effect durations" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Malt Beer", + "recipe": "spectrum:titration_barrel/infused_beverages/malt_beer", + "text": "Malt beer is both filling and tastes both sweet and savory. What a nice combination." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Myceylon Apple Juice", + "advancement": "spectrum:lategame/collect_myceylon", + "recipe": "spectrum:titration_barrel/infused_beverages/myceylon_apple_juice", + "text": "Sweet with a Cinnamon finish" + }, + { + "type": "spectrum:confirmation_button", + "title": "Safety Question", + "checked_advancement": "spectrum:milestones/confirmed_drinking_age", + "button_text": "I confirm", + "button_text_confirmed": "Confirmed ✔", + "confirmation": "confirm_drinking_age", + "text": "The $(thing)Titration Barrel$() is capable of brewing alcoholic drinks. If you are old enough to consume alcohol in your country, you can press the button below to unlock these recipes.$(br)If not don't worry - you won't miss anything important." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Beers", + "recipe": "spectrum:titration_barrel/infused_beverages/beer", + "recipe2": "spectrum:titration_barrel/infused_beverages/ale", + "text": "Additionally to Haste it can grant a bit of Saturation, depending on the time it fermented." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "", + "recipe": "spectrum:titration_barrel/infused_beverages/lager", + "recipe2": "spectrum:titration_barrel/infused_beverages/porter", + "text": "Just... don't brew them too long or they will shift and end up tasting awful." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_gin", + "title": "Gin", + "recipe": "spectrum:titration_barrel/infused_beverages/gin", + "text": "Made from $(l:resources/amaranth)Amaranth$(/l), grants $(thing)Luck$() and $(thing)Haste$()." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Rum", + "recipe": "spectrum:titration_barrel/infused_beverages/rum", + "text": "Strong to the taste, made even more intense via the influence of the colored wood, grants $(thing)Absorption$() and $(thing)Resistance$()." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Mead", + "recipe": "spectrum:titration_barrel/infused_beverages/mead", + "text": "The large amount of sugar in honey is perfect for fermentation. The result is a strong, although still sweet drink." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Apple Cider", + "recipe": "spectrum:titration_barrel/infused_beverages/apple_cider", + "text": "Fermented apples, usually sweet and sparkly, with a slight note of sour - if you do not forget to tap it soon enough." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Golden Ciders", + "recipe": "spectrum:titration_barrel/infused_beverages/golden_apple_cider", + "recipe2": "spectrum:titration_barrel/infused_beverages/enchanted_apple_cider", + "text": "Way more potent than their common counterpart. Won't go bad over time and taste glorious for sure." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Berry Cider", + "recipe": "spectrum:titration_barrel/infused_beverages/berry_cider", + "recipe2": "spectrum:titration_barrel/infused_beverages/glow_berry_cider", + "text": "A much more fruity cider than from apples. The glowy variant seems to ferment a bit quicker, but also... makes you glow. Hmm." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Berry Liquor", + "recipe": "spectrum:titration_barrel/infused_beverages/berry_liquor", + "recipe2": "spectrum:titration_barrel/infused_beverages/glow_berry_liquor", + "text": "Berries can also be used for liquor. Way more viscous, sweet and strong, but takes longer to ferment." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_mint_beverages", + "title": "Mint Drinks", + "recipe": "spectrum:titration_barrel/infused_beverages/mint_cream", + "recipe2": "spectrum:titration_barrel/infused_beverages/mint_schnapps", + "text": "$(italic)Liquid Luck" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Artemisa & Advocaat", + "recipe": "spectrum:titration_barrel/infused_beverages/artemisa", + "recipe2": "spectrum:titration_barrel/infused_beverages/advocaat", + "text": "" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Damassine & Hare Bane", + "recipe": "spectrum:titration_barrel/infused_beverages/damassine", + "recipe2": "spectrum:titration_barrel/infused_beverages/hare_bane_creme", + "text": "" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Vodka", + "recipe": "spectrum:titration_barrel/infused_beverages/vodka", + "recipe2": "spectrum:titration_barrel/infused_beverages/poisonous_vodka", + "text": "Gets only stronger with age. Just one question: How deadly do you want it?" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "Tequila", + "recipe": "spectrum:titration_barrel/infused_beverages/tequila", + "text": "Does only get stronger with age. Tastes like a bar fight." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Moonshine", + "recipe": "spectrum:titration_barrel/infused_beverages/moonshine", + "text": "Lies wonderfully light in the mouth. A gentle, sweetish burn, which lets you forget your worries for a bit. The things that worry you will forget you for a bit, too$().$(br2)$(italic)Tastes like walking on the moon." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_myceylon_liquor", + "title": "Myceylon Liquor", + "recipe": "spectrum:titration_barrel/infused_beverages/myceylon_liquor", + "text": "More spicy than it looks." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_spiked_mullet_wine", + "title": "Spiked Mullet Wine", + "recipe": "spectrum:titration_barrel/infused_beverages/spiked_mullet_wine", + "text": "An interesting combination of all things Deeper Down. Best drunk when still hot!" + }, + { + "type": "patchouli:spotlight", + "title": "Pure Alcohol", + "advancement": "spectrum:tap_pure_alcohol", + "anchor": "pure_alcohol", + "item": "spectrum:pure_alcohol", + "text": "Your memory isn't always up to snuff. Somehow you ended up with this bottle. Definitely got a little stronger than planned...$(br)More to disinfect than to drink." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/jade_wine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/jade_wine.json new file mode 100644 index 0000000000..26735c51f4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/jade_wine.json @@ -0,0 +1,37 @@ +{ + "name": "Jade Wine", + "advancement": "spectrum:progression/unlock_jade_wine", + "icon": "spectrum:jade_wine", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jade_wine": 0, + "spectrum:chrysocolla": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Since the Jade Vines are notorious for restorative properties, no wonder these translate perfectly when fermented.$(br)In contrast to the slight bitterness of the bulbs, adding a good share of petals brings out a more bloomy and slightly sour taste instead, complimented with earthy undertones - almost resembling wine, in trademark jade color. " + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Titration Recipe", + "recipe": "spectrum:titration_barrel/special/jade_wine", + "text": "1 Bulb and 3 Petals for the Bucket of Water feel like a good starting point.$(br)The longer the fermentation goes on, the stronger the taste gets. $(br2)$(italic)A bit of added sweetness would do it good, you are sure." + }, + { + "type": "patchouli:spotlight", + "title": "Sweetening", + "advancement": "spectrum:midgame/tap_sweetened_jade_wine", + "anchor": "sweetened_jade_wine", + "item": "spectrum:moonstruck_nectar", + "text": "Adding a drop of $(item)Moonstruck Nectar$() seems to make the Wine much more easy to drink. Both the fermentation process is increased and negative effects softened noticeably." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/tap_chrysocolla", + "anchor": "chrysocolla", + "item": "spectrum:chrysocolla", + "text": "Your newest result of fermenting Jade Wine was a $(italic)tad$() too long.$(br)Immensely bitter and slightly acidic taste.$(br)While it retains some of the properties of the Jade Wine it once resembled, seems more useful for medicine than for drinking.$(br)But, you know... is anyone stopping you?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/knowledge_gem.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/knowledge_gem.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/knowledge_gem.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/knowledge_gem.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lucky_roll.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/lucky_roll.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lucky_roll.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/lucky_roll.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/perturbed_eye.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/perturbed_eye.json new file mode 100644 index 0000000000..36cfabd009 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/perturbed_eye.json @@ -0,0 +1,58 @@ +{ + "name": "End Portal Relocation", + "advancement": "spectrum:progression/unlock_perturbed_eye", + "icon": "minecraft:end_portal_frame", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:perturbed_eye": 0, + "spectrum:cracked_end_portal_frame": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Every time you want to enter the realm of the Endermen you have to travel half a world. Whoever created the portals to the End... you're so much more powerful than they are now.$(br2)$(italic)Well, almost. Probably.$(br)You haven't yet figured out how to create such portals yourself, but packing them up and take them home? No problem." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/end_portal.png" + ], + "border": true, + "text": "The End Portal, like found in Strongholds." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/perturbed_eye", + "text": "Due to the extremely robust Portal Frames, those harbor quite the destructive potential. Best to keep a bit of distance after socketing." + }, + { + "type": "patchouli:multiblock", + "name": "Reconstructed Portal", + "multiblock": { + "pattern": [ + [ + " HHH ", + "VPPPV", + "VPPPV", + "VPPPV", + " HHH ", + " 0 " + ] + ], + "mapping": { + "H": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=false]", + "V": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=true]", + "P": "minecraft:end_portal" + }, + "offset": [ + 0, + 3, + 0 + ], + "symmetrical": false + }, + "text": "You just put the portal back together the way it was, add Ender Pearls, done!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/pigment_palette.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/pigment_palette.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/pigment_palette.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/reprise.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/reprise.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/reprise.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/reprise.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/restoration_tea.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/restoration_tea.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/restoration_tea.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/restoration_tea.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/rock_candy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/rock_candy.json new file mode 100644 index 0000000000..73f8be32f0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/rock_candy.json @@ -0,0 +1,48 @@ +{ + "name": "Rock Candy", + "advancement": "spectrum:progression/unlock_rock_candy", + "icon": "spectrum:rock_candy", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:sugar_stick": 0, + "spectrum:topaz_sugar_stick": 0, + "spectrum:amethyst_sugar_stick": 0, + "spectrum:citrine_sugar_stick": 0, + "spectrum:onyx_sugar_stick": 0, + "spectrum:moonstone_sugar_stick": 0, + + "spectrum:rock_candy": 0, + "spectrum:topaz_rock_candy": 0, + "spectrum:amethyst_rock_candy": 0, + "spectrum:citrine_rock_candy": 0, + "spectrum:onyx_rock_candy": 0, + "spectrum:moonstone_rock_candy": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "A stick with sugar on it.$(br2)...wait wait wait, there's more to it!$(br)If you place this stick so that its underside is immersed in $(l:magical_blocks/liquid_crystal)Liquid Crystal$(/l), you just have to slowly dissolve more sugar in the liquid until the stick turns into a sweet-crunchy candy stick." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/food/sugar_stick", + "text": "You might even be able to add more stuff than just plain Sugar when immersed? Liquid $(italic)Crystal$() and all that..." + }, + { + "type": "patchouli:image", + "title": "Growing Rock Candy", + "images": [ + "spectrum:textures/gui/guidebook/rock_candy_growing.png" + ], + "text": "$(thing)Silk Touch$() keeps their size for use as fancy lights, or just for storage." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:topaz_rock_candy", + "title": "Gemstone Rock Candy", + "advancement": "spectrum:midgame/collect_gemstone_rock_candy", + "text": "Dissolving $(l:general/gemstone_powder)Gemstone Powder$(/l) instead of Sugar in the liquid allowed the Rock Candy to take on the gemstone's typical color.$(br2)You always wanted to know what those taste like. Definitely seems like a healthier option than snorting them up your nose." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/star_candy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/star_candy.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/star_candy.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/star_candy.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/suspicious_brew.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/suspicious_brew.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/suspicious_brew.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/suspicious_brew.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/tarts.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/tarts.json new file mode 100644 index 0000000000..8645729af4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/tarts.json @@ -0,0 +1,52 @@ +{ + "name": "Tarts", + "icon": "spectrum:ashen_tart", + "advancement": "spectrum:progression/unlock_tarts", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jaramel_tart": 0, + "spectrum:salted_jaramel_tart": 0, + "spectrum:ashen_tart": 0, + "spectrum:weeping_tart": 0, + "spectrum:whispy_tart": 0, + "spectrum:puff_tart": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Even though you are not the most proficient chef, even this rudimentary one tastes great! $(br)You can garnish it with different toppings to grant you $(thing)defensive abilities$() for a short duration." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Jaramel Tart", + "recipe": "spectrum:pedestal/tier3/food/jaramel_tart", + "text": "The classic. The only thing that would make this one more delicious would be the tears of your enemies." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:craft_salted_jaramel_trifle_or_tart", + "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_tart", + "text": "$(italic)Extra Salty" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/ashen_tart", + "text": "Makes you able to see & swim in lava as were it water.$(br2)Does NOT, however, make you Fire immune." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/weeping_tart", + "text": "Makes you able to swim at light speed and greatly increases your underwater mining rate." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/whispy_tart", + "text": "Makes you feel well rested, like after a good nights sleep. Scares away creatures of nightmares." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/puff_tart", + "text": "Small chance for projectiles to simply deflect off of you." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/trifles.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/trifles.json new file mode 100644 index 0000000000..9b0f7ade69 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/magical_items/trifles.json @@ -0,0 +1,34 @@ +{ + "name": "Trifles", + "icon": "spectrum:jaramel_trifle", + "advancement": "spectrum:progression/unlock_trifles", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jaramel_trifle": 0, + "spectrum:salted_jaramel_trifle": 0, + "spectrum:monster_trifle": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Sweet delicacies, guaranteed to not only give you a sugar rush - depending on the toppings very intense, mostly $(thing)offensive$() ones.$(br)Made from $(l:resources/jade_vines#jaramel)Jaramel$(/l), $(thing)Gelatin$() & $(l:resources/amaranth)Amaranth$(/l). Even the rudimentary one tastes great!" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Jaramel Trifle", + "recipe": "spectrum:pedestal/tier3/food/jaramel_trifle", + "text": "The classic. The only thing that would make this one more delicious would be the tears of your enemies." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:craft_salted_jaramel_trifle_or_tart", + "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_trifle", + "text": "$(italic)Extra Salty" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/monster_trifle", + "text": "Gives out effects at random. Fancy a gamble?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/ae2.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/ae2.json new file mode 100644 index 0000000000..09a03eb8c3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/ae2.json @@ -0,0 +1,37 @@ +{ + "name": "Applied Energistics", + "icon": "ae2:controller", + "flag": "mod:ae2", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "'Any technology advanced enough is indistinguishable from magic', you once heard.$(br)You are still not entirely sure how this storage system stores so many blocks in so little room, but since you're regularly running around with hundreds of m² dirt, you never cared to question it." + }, + { + "type": "spectrum:anvil_crushing", + "title": "Anvil Crushing", + "recipe": "spectrum:mod_integration/ae2/anvil_crushing/certus_quartz_dust", + "text": "Lots of AE2's items can be crushed to dust using an anvil: $(thing)Certus Quartz(), $(thing)Fluix(), $(thing)Skystone() and $(thing)Ender Pearls()." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:midgame/collect_storm_stone", + "recipe": "spectrum:mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal", + "text": "In desperate need of $(thing)Charged Certus Quartz$()? $(l:resources/storm_stone)Storm Stones$() will charge them up in a heartbeat." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:midgame/collect_storm_stone", + "recipe": "spectrum:mod_integration/ae2/fusion_shrine/fluix_dust", + "text": "...and then create $(thing)Fluix$() from it, if you get impatient." + }, + { + "type": "spectrum:crystallarieum_growing", + "advancement": "spectrum:progression/unlock_crystallarieum", + "recipe": "spectrum:mod_integration/ae2/crystallarieum/certus_quartz_crystal", + "text": "Being crystalline structures, $(thing)Certus Quartz$() and $(thing)Fluix Crystals$() can be grown in the Crystallarieum." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/alloy_forgery.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/alloy_forgery.json new file mode 100644 index 0000000000..096a9306dd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/alloy_forgery.json @@ -0,0 +1,31 @@ +{ + "name": "Alloy Forgery", + "icon": "alloy_forgery:bricks_forge_controller", + "flag": "mod:alloy_forgery", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Some of Spectrum's ores can be used as fuel for the Alloy Forge, or have increased output when smelted in it. You will find these here, as soon as you discovered them.$(br2)Tell Noaaan I said hi!" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_lava_sponge", + "item": "spectrum:wet_lava_sponge", + "text": "A dripping $(item)Lava Sponge$() contains enough heat to fuel your $(thing)Alloy Forge$() for quite some time." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/collect_stratine", + "item": "spectrum:stratine_ore", + "text": "Using a high tier $(thing)Alloy Forge$() you can squeeze quite a bit more $(l:resources/stratine)Stratine$(/l) from the raw ore." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:paltaeria_ore", + "advancement": "spectrum:lategame/collect_paltaeria", + "text": "...same is true for $(l:resources/paltaeria)Paltaeria$(/l), of course." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/biomemakeover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/biomemakeover.json new file mode 100644 index 0000000000..6c1dc4c576 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/biomemakeover.json @@ -0,0 +1,27 @@ +{ + "name": "Biome Makeover", + "icon": "biomemakeover:antidote", + "flag": "mod:biomemakeover", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "You recently found new materials scattered across the landscape in new, beautiful terrain. You are sure you can make use of those in some way." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Antidote Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/biomemakeover/biomemakeover_antidote", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Nocturnal Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/biomemakeover/biomemakeover_nocturnal", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/botania.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/botania.json new file mode 100644 index 0000000000..38237d0256 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/botania.json @@ -0,0 +1,101 @@ +{ + "name": "Botania", + "icon": "botania:mana_pool", + "flag": "mod:botania", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "You found a plethora of colorful flowers growing around forests and plains in small patches. What's up with those? Definitely worth a look if you haven't tinkered with them already." + }, + { + "type": "spectrum:anvil_crushing", + "title": "Crushing Petals", + "advancement": "spectrum:place_pedestal", + "recipe": "spectrum:mod_integration/botania/anvil_crushing/petals/magenta_mystical_flower_to_petals", + "text": "While crushing flowers seems a bit unorthodox, it $(italic)did$() work. No problem plucking the petals from the flattened blossom after that." + }, + { + "type": "patchouli:spotlight", + "title": "Ink from Petals", + "advancement": "spectrum:midgame/place_color_picker", + "item": "botania:magenta_petal", + "text": "Having studied not only botany but also color theory, you definitely recognize some similarities. The colored flowers, resemble $(l:general/colored_trees)Color Trees$(/l) in more than just one point.$(br2)No wonder that their petals can also be used to create $(l:magic/ink)Ink$(/l)." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Glimmering Flowers", + "advancement": "spectrum:collect_shimmerstone", + "recipe": "spectrum:mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower", + "text": "Adding some $(l:resources/shimmerstone)Shimmerstone$(/l) to magical flowers makes them glimmer." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Colored Mushrooms", + "advancement": "spectrum:collect_pigment", + "recipe": "spectrum:mod_integration/botania/pedestal/mushrooms/blue_mushroom", + "text": "Applying $(l:general/pigment)Pigment$(/l) to mushrooms colors them in the respective color." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_pigment", + "recipe": "spectrum:mod_integration/botania/pedestal/floral_fertilizer", + "text": "Using $(l:general/pigment)Pigment$(/l) instead of mundane Dye when creating $(thing)Floral Fertilizer$() is quite a bit more yielding." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "advancement": "spectrum:hidden/collect_jade_vine_petals", + "recipe": "spectrum:mod_integration/botania/spirit_instiller/blacker_lotus", + "text": "The $(thing)Black Lotus$() is a great source of Mana, no questions asked. But yet, it still can be enhanced. Using some $(thing)Jade Petals$()" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "advancement": "spectrum:midgame/harvest_moonstruck_nectar", + "recipe": "spectrum:mod_integration/botania/spirit_instiller/overgrowth_seed", + "text": "Those elusive seeds you could only find in chests hidden around the world? Pricey - maybe not even worth the hassle - but you finally found a way to replicate them." + }, + { + "type": "patchouli:spotlight", + "title": "Enchanted Soil", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "item": "botania:enchanted_soil", + "text": "Enchanted Soil can be harvested using tools enchanted with $(l:enchanting/resonance)Resonance$(/l)." + }, + { + "type": "patchouli:spotlight", + "title": "New Potion Reagent", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:black_lotus", + "text": "Infuses the Potion with a huge amount of additional positive as well as negative, effects, but it's black color also makes it completely unidentifiable. What might you get?" + }, + { + "type": "patchouli:spotlight", + "title": "New Potion Reagent", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:blacker_lotus", + "text": "Infuses the Potion with a huge amount of additional - mostly positive - effects, but it's black color also makes it completely unidentifiable. What might you get?" + }, + { + "type": "patchouli:spotlight", + "title": "New Potion Reagent", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:life_essence", + "text": "Makes your Potions much more potent, but at a huge loss of duration. If the duration will get too short the potion might end up useless altogether..." + }, + { + "type": "patchouli:spotlight", + "title": "New Potion Reagent", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:mana_powder", + "text": "Gives a small multiplicative boost to Duration and a tiny chance to add the last brewed effect, too." + }, + { + "type": "patchouli:spotlight", + "title": "New Potion Reagent", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:pixie_dust", + "text": "Converts the Potions into Lingering Potions as a single reagent. This way it allows you to directly create $(thing)Tipped Arrows$(), too!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/chalk.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/chalk.json new file mode 100644 index 0000000000..c12fe04c36 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/chalk.json @@ -0,0 +1,35 @@ +{ + "name": "Chalk", + "icon": "chalk:chalk", + "flag": "mod:chalk", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Getting lost in the belows time and time again made you carry a bit of $(thing)Chalk$() with you, allowing you to mark your way back out. Sadly these little pieces of Calcite always do not last too long before breaking." + }, + { + "type": "spectrum:pedestal_crafting", + "required_advancement": "spectrum:collect_pigment", + "title": "Unbreakable Chalk", + "recipe": "spectrum:mod_integration/chalk/pedestal/chalk", + "text": "By using Pigments instead of Dye, the $(thing)Chalk$() provides you with a never-ending supply of color." + }, + { + "type": "spectrum:pedestal_crafting", + "required_advancement": "spectrum:collect_pigment", + "title": "Unbr. Glow Chalk", + "recipe": "spectrum:mod_integration/chalk/pedestal/glow_chalk", + "text": "Of course you are able to create unbreakable $(thing)Glow Chalk$(), too." + }, + { + "type": "spectrum:pedestal_crafting", + "required_advancement": "spectrum:collect_pigment", + "flag": "mod:chalk-colorful-addon", + "title": "Chalk Colorful Addon", + "recipe": "spectrum:mod_integration/chalk/pedestal/red_chalk", + "text": "Oh, you thought about creating colored chalk, too? Of course those can be made unbreakable, too." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/conjuring.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/conjuring.json new file mode 100644 index 0000000000..42223036be --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/conjuring.json @@ -0,0 +1,32 @@ +{ + "name": "Conjuring", + "icon": "conjuring:conjurer", + "flag": "mod:conjuring", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Souls, Spirits, Cages$()$(br)Now if that isn't a work of shrewd occultism you do not know what is." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Resistance Potions", + "recipe": "spectrum:mod_integration/conjuring/potion_workshop_brewing/distilled_spirit_resistance", + "advancement": "spectrum:midgame/brew_powerful_potion_in_potion_workshop", + "text": "Distilled Spirits can be... $(br)umm.. distilled?$(br)$(italic)distilled further?$()$(br)into long lasting $(thing)Resistance$() Potions." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "recipe": "spectrum:mod_integration/conjuring/spirit_instiller/lesser_conjuration_essence", + "advancement": "spectrum:midgame/build_spirit_instiller_structure", + "text": "You're not even sure yourself how you came up with this recipe anymore.$(br)Maybe you inhaled a little too much $(thing)Quitoxic Powder$() when you combined various ingredients. But the result is interesting, no question." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "recipe": "spectrum:mod_integration/conjuring/spirit_instiller/mob_spawner", + "advancement": "spectrum:midgame/build_spirit_instiller_structure", + "text": "Combining everything you learned as a Spawner expert and Pigment Tinkerer gave you the ability to create plain $(thing)Mob Spawners$() yourself.$(br)You only need to assign a Creature to spawn using the $(l:creating_life/spirit_instiller)Spirit Instiller$(/l)." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/create.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/create.json new file mode 100644 index 0000000000..0547a8160f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/create.json @@ -0,0 +1,37 @@ +{ + "name": "Create", + "icon": "create:crushing_wheel", + "flag": "mod:create", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Everywhere it rattles and fizzles, whistles and smokes. An ensemble of Assemblage.$(br2)Surely a few of those machines will come in handy." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_potion_workshop", + "item": "spectrum:magenta_leaves", + "text": "$(thing)Colored Leaves$() can be crushed, yielding $(thing)Pigment$() and $(thing)Colored Saplings$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_potion_workshop", + "item": "spectrum:magenta_log", + "text": "Crushing $(thing)Colored Logs$() results in a nice yield of $(thing)Pigment$()." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_quitoxic_reeds", + "item": "spectrum:quitoxic_reeds", + "text": "$(l:resources/quitoxic_reeds)Quitoxic Reeds$() can be ground into powder easily." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_potion_workshop", + "item": "minecraft:amethyst_shard", + "text": "Milling $(thing)Gemstone Shards Yields$() results in a higher amount of $(thing)Gemstone Powder$() compared crushing them with an Anvil." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/ecologics.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/ecologics.json new file mode 100644 index 0000000000..ca5cb0b99f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/ecologics.json @@ -0,0 +1,20 @@ +{ + "name": "Ecologics", + "icon": "ecologics:penguin_feather", + "flag": "mod:ecologics", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "New biomes bring new possibilities. But which?" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Slippery Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/ecologics/potion_workshop_brewing/ecologics_slippery", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/extraalchemy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/extraalchemy.json new file mode 100644 index 0000000000..774cc05aac --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/extraalchemy.json @@ -0,0 +1,127 @@ +{ + "name": "Extra Alchemy", + "icon": "extraalchemy:penguin_feather", + "flag": "mod:extraalchemy", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "To an outsider, an alchemist might well be mistaken for a magician. Time to get to know the differences - but also the similarities." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Combustion Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_combustion", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Concentration Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_concentration", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Crumbling Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_crumbling", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Detection Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_detection", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Fuse Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_fuse", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Gravity Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_gravity", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Growing Potions", + "flag": "mod:pekhui", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_growing", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Learning Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_learning", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Magnetism Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_magnetism", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Pacifism Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_pacifism", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Photosynthesis Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_photosynthesis", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Piper Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_piper", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Recall Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_recall", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Returning Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_returning", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Sails Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_sails", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Shrinking Potions", + "flag": "mod:pekhui", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_shrinking", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/gobber.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/gobber.json new file mode 100644 index 0000000000..67f19cc9fd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/gobber.json @@ -0,0 +1,31 @@ +{ + "name": "Gobber", + "icon": "gobber2:gobber2_globette", + "flag": "mod:gobber2", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "This material seems ridiculously powerful at first glance for how common it is. That's why you gave it such a funny name. Let's see what you can do with it." + }, + { + "type": "spectrum:crystallarieum_growing", + "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette", + "advancement": "spectrum:progression/unlock_crystallarieum", + "text": "It grows!" + }, + { + "type": "spectrum:crystallarieum_growing", + "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette_nether", + "advancement": "spectrum:progression/unlock_crystallarieum", + "text": "It also grows!" + }, + { + "type": "spectrum:crystallarieum_growing", + "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette_end", + "advancement": "spectrum:progression/unlock_crystallarieum", + "text": "You are not going to believe this" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/gofish.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/gofish.json new file mode 100644 index 0000000000..922c7e7515 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/gofish.json @@ -0,0 +1,26 @@ +{ + "name": "Go Fish", + "icon": "gofish:starry_salmon", + "flag": "mod:go-fish", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Fishing is a relaxing activity to do in your leisure time. Let's see what's biting today." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_molten_rod", + "title": "Lava Fishing", + "item": "spectrum:molten_rod", + "text": "Your magical fishing rods are able to fish lava and end dwelling fish, like the Go Fish fishing rods.$(br)Crates can also be fished, as long as you are in the open." + }, + { + "type": "patchouli:spotlight", + "title": "Other Features", + "item": "minecraft:enchanted_book{StoredEnchantments: [{id: \"gofish:deepfry\", lvl: 1s}]}", + "text": "While the Deepfry Enchantment cooks fish as usual, lures have no effect. But you are sure you will find a way to enhance your rod later.$(br)Deepfry on Fishing Rods is also mutually exclusive to Foundry" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/hexcasting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/hexcasting.json new file mode 100644 index 0000000000..4bd451122b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/hexcasting.json @@ -0,0 +1,25 @@ +{ + "name": "Hex Casting", + "icon": "hexcasting:charged_amethyst", + "flag": "mod:hexcasting", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Unlike other gemstones, $(thing)Amethyst$() seems to have the ability to power spell casting wands. While this ability has broken your brain more than once, the results are impressive.$(br)What more is there?" + }, + { + "type": "spectrum:potion_workshop_brewing", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/hexcasting/fusion_shrine/charged_amethyst_from_amethyst_shard_fusion", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/hexcasting/potion_workshop_reacting/charged_amethyst", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/little_ants.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/little_ants.json new file mode 100644 index 0000000000..ee68cb97ec --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/little_ants.json @@ -0,0 +1,31 @@ +{ + "name": "Little Ants", + "icon": "ants:dirt_ant_nest", + "flag": "mod:ants", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "These industrious little buggers continuously collect leaves from trees. The results of their work are also reflected in their products. While they mostly produce $(thing)Clay$(), there might be others..." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:jade_vine_petal_block", + "required_advancement": "spectrum:hidden/collect_jade_vine_petals", + "text": "The ants produce an almost silk-like material from $(thing)Jade Petals$()." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:orange_dye", + "required_advancement": "spectrum:collect_pigment", + "text": "If you harvest a full anthill that collected leaves of colored trees with a shovel, you get $(thing)Dye$()." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:orange_pigment", + "required_advancement": "spectrum:collect_pigment", + "text": "Even better, if you bribe them with $(thing)Vegetal$(), you can even salvage pure $(thing)Pigment$() instead.$(br2)$(br2)Shoutout to MastroCaleb for this great mod!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/tech_reborn.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/tech_reborn.json new file mode 100644 index 0000000000..a83a9e98ac --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/mod_integration/tech_reborn.json @@ -0,0 +1,25 @@ +{ + "name": "Tech Reborn", + "icon": "techreborn:grinder", + "flag": "mod:techreborn", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "There is this new thing, called $(italic)Electricity$(), you should check that out.$(br2)The factory must grow." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:amethyst_ore", + "advancement": "spectrum:break_gemstone_ore", + "text": "Most of Spectrums Ores can be processed in the Grinder / Industrial Grinder to extract resources." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:amethyst_shard", + "advancement": "spectrum:spectrum", + "text": "Of course you can also grind down Shards, too!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/connection_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/connection_node.json new file mode 100644 index 0000000000..fbbd5360a6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/connection_node.json @@ -0,0 +1,18 @@ +{ + "name": "Connection Node", + "icon": "spectrum:provider_node", + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "pages": [ + { + "type": "patchouli:text", + "text": "As the most basic of Nodes the Connection Node does not have any use by itself.$(br2)They solely act as a cheap and unobtrusive way to expand the range of your network." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/pastel_network/connection_node", + "text": "As all other Nodes, the Connection Node has a range of 12 Blocks." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/gather_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/gather_node.json new file mode 100644 index 0000000000..4e136c11c8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/gather_node.json @@ -0,0 +1,18 @@ +{ + "name": "Gather Node", + "icon": "spectrum:gather_node", + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "pages": [ + { + "type": "patchouli:text", + "text": "The Gather Node will actively request from other nodes in it's $(l:pastel_network/pastel_network)Pastel Network$(/l) and put them in it's connected inventory.$(br)Specify the items to collect in it's $(thing)filter$()." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/pastel_network/gather_node", + "text": "Gathering Order:$(br)1. $(l:pastel_network/sender_node)Sender Nodes$(/l)$(br)2. $(l:pastel_network/provider_node)Provider Nodes$(/l)$(br)3. $(l:pastel_network/storage_node)Storage Nodes$(/l)" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/node_coloring.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/node_coloring.json new file mode 100644 index 0000000000..9ed71a2162 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/node_coloring.json @@ -0,0 +1,44 @@ +{ + "name": "Node Coloring", + "icon": "minecraft:red_dye", + "advancement": "spectrum:progression/__todo_unlock_pastel_node_coloring", + "category": "spectrum:pastel_network_category", + "priority": true, + "sortnum": 2, + "secret": true, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Node Coloring", + "item": "spectrum:purple_pigment", + "text": "You can use $(l:general/pigment)Pigment$(/l) on Pastel Network Nodes to dye them.$(br2)Each node can only transfer items to nodes of the same color and colors it composites into, but not the other way around (Cyan nodes can transfer to Blue ones, but not Blue nodes to Cyan)." + }, + { + "type": "patchouli:image", + "title": "", + "images": [ + "spectrum:textures/gui/guidebook/composite_colors.png" + ], + "border": true, + "text": "" + }, + { + "type": "patchouli:spotlight", + "title": "Colored Nodes", + "item": "spectrum:red_pigment", + "text": "Using Pigment you can very finely adjust which Nodes can interact with others, allowing you to build complex transfer chains.$(br2)The default $(bold)White$() nodes, lacking all forms of color are only able to connect to other white nodes." + }, + { + "type": "patchouli:spotlight", + "title": "Spectral Colored Nodes", + "item": "spectrum:spectral_shard", + "text": "Nodes colored with spectral pigment are able to interact with all nodes, regardless of their color." + }, + { + "type": "patchouli:spotlight", + "title": "", + "item": "spectrum:purple_pigment", + "text": "Using a $(l:resources/mermaids_brush)Mermaids Gem$(/l) on a node will change it to a Fluid Node.$(br)It will behave very similar than before - but will transfer liquid instead of items." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/pastel_network.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/pastel_network.json new file mode 100644 index 0000000000..da3d4e8ebc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/pastel_network.json @@ -0,0 +1,24 @@ +{ + "name": "The Pastel Network", + "icon": "spectrum:provider_node", + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "priority": true, + "sortnum": 0, + "pages": [ + { + "type": "patchouli:text", + "title": "Pastel Network", + "text": "Your primitive ways of item transport like hopper arrays do not compare to the Pastel Network - this is what you named clusters of Azurite-based nodes.$(br)Placed in close proximity, nodes will connect wirelessly to one another and form an item transfer network.$(br)Nodes do not require line of sight." + }, + { + "type": "patchouli:image", + "title": "Transfer Routes", + "images": [ + "spectrum:textures/gui/guidebook/pastel_travel.png" + ], + "border": false, + "text": "The way nodes can interact with one another." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/provider_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/provider_node.json new file mode 100644 index 0000000000..be89512dcb --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/provider_node.json @@ -0,0 +1,19 @@ +{ + "name": "Provider Node", + "icon": "spectrum:provider_node", + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Provider Node", + "text": "Makes the items in the connected inventory available in it's $(l:pastel_network/pastel_network)Pastel Network$(/l).$(br)Items will not be pushed to other nodes, but can be requested by $(l:pastel_network/gather_node)Gather Nodes$(/l)." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/pastel_network/provider_node", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/redstone_interaction.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/redstone_interaction.json new file mode 100644 index 0000000000..80bc108d7d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/redstone_interaction.json @@ -0,0 +1,18 @@ +{ + "name": "Redstone Interaction", + "icon": "minecraft:redstone", + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "priority": true, + "sortnum": 1, + "pages": [ + { + "type": "patchouli:text", + "text": "When you expose a $(thing)Pastel Node$() to a $(thing)Redstone signal$(), it loses it's link to the connected inventory." + }, + { + "type": "patchouli:text", + "text": "$(li)$(l:pastel_network/gather_node)Gather Nodes$(/l) will stop requesting items$(br)$(li)$(l:pastel_network/provider_node)Provider Nodes$(/l) get unable to offer their items$(br)$(li)$(l:pastel_network/sender_node)Sender Nodes$(/l) will stop emptying their inventory$(br)$(li)$(l:pastel_network/storage_node)Storage Nodes$(/l) will get unable to accept and offer their items." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/sender_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/sender_node.json new file mode 100644 index 0000000000..7fec927e83 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/sender_node.json @@ -0,0 +1,19 @@ +{ + "name": "Sender Node", + "icon": "spectrum:sender_node", + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Sender Node", + "text": "The Sender Node actively tries to keep the connected inventory empty from items.$(br)The order, in which it pushes items to is as follows:$(br)1. $(l:pastel_network/gather_node)Gather Nodes$(/l)$(br)2. $(l:pastel_network/storage_node)Storage Nodes$(/l)" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/pastel_network/sender_node", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/storage_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/storage_node.json new file mode 100644 index 0000000000..1b917ca8d6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/pastel_network/storage_node.json @@ -0,0 +1,20 @@ +{ + "name": "Storage Node", + "icon": "spectrum:provider_node", + "secret": true, + "advancement": "spectrum:progression/unlock_pastel_network", + "category": "spectrum:pastel_network_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Storage Node", + "text": "The Storage Node will show their greatest use in combination with $(l:pastel_network/sender_node)Sender Nodes$(/l) (will push to it) and $(l:pastel_network/gather_node)Gather Nodes$(/l) (will pull from it).$(br2)It's $(thing)filter$() allows you to specify which items it will receive & provide. An empty filter make it act as a general storage for all types of items." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/pastel_network/storage_node", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/block_placer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/block_placer.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/block_placer.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/block_placer.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/ender_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/ender_glass.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/ender_glass.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/ender_glass.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/entity_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/entity_detector.json new file mode 100644 index 0000000000..689c8dd588 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/entity_detector.json @@ -0,0 +1,22 @@ +{ + "name": "Entity Detector", + "advancement": "spectrum:progression/detectors/unlock_entity_detector", + "icon": "spectrum:player_detector", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:entity_detector": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Creature Detector", + "text": "The gemstone built into the Entity Detector reacts to micro-vibrations in the ground. This gives it the ability to measure the number of creatures near it." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/detectors/entity_detector", + "text": "Outputs a cumulative strength of 1 for each creature within a 10 block radius." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/item_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/item_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/item_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/item_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/light_level_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/light_level_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/light_level_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/light_level_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/player_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/player_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/player_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/player_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_calculator.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_calculator.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_calculator.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_calculator.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_sand.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_sand.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_sand.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_sand.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_timer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_timer.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_timer.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_timer.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_wireless.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_wireless.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/redstone_wireless.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/redstone_wireless.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/weather_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/weather_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/weather_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/redstone/weather_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/amaranth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/amaranth.json new file mode 100644 index 0000000000..037737f05a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/amaranth.json @@ -0,0 +1,48 @@ +{ + "name": "Amaranth", + "advancement": "spectrum:milestones/reveal_amaranth", + "icon": "spectrum:amaranth_bushel", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:amaranth_grains": 0, + "spectrum:amaranth_bushel": 0, + "spectrum:honey_pastry": 0, + "spectrum:scone": 0, + "spectrum:triple_meat_pot_pie": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Amaranth", + "text": "Though seemingly left behind for quite some time now, these seeds still look very much alive. You wonder what comes out of it when grown?" + }, + { + "type": "spectrum:anvil_crushing", + "title": "Amaranth Grains", + "advancement": "spectrum:collect_amaranth_bushel", + "recipe": "spectrum:anvil_crushing/amaranth_grains", + "text": "You never have seen anything like it. Such an intense red. So expressive!$(br)These Bushels can be crushed to get more grains.$(br2)They can also be planted decoratively on grass or in a flower pot." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_amaranth_bushel", + "title": "Honey Pastry", + "recipe": "spectrum:pedestal/tier1/honey_pastry", + "text": "The taste of Amaranth is as different from Wheat as its appearance. In your mind sprouted completely new ideas, like this deliciousness here." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_amaranth_bushel", + "title": "Scones", + "recipe": "spectrum:pedestal/tier2/food/scone", + "text": "Small but fine pastry filled with cream.$(br2)$(italic)Perfect with tea." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_triple_meat_pot_pie", + "title": "Triple Meat Pot Pie", + "recipe": "spectrum:pedestal/tier2/food/triple_meat_pot_pie", + "text": "This feast is guaranteed to fill your belly for quite some time.$(br2)$(italic)Full of fat and meat and wine and warp!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/azurite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/azurite.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/azurite.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/azurite.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/bismuth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/bismuth.json new file mode 100644 index 0000000000..6e7f2666e0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/bismuth.json @@ -0,0 +1,28 @@ +{ + "name": "Bismuth", + "advancement": "spectrum:lategame/collect_bismuth", + "icon": "spectrum:bismuth_flake", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:bismuth_flake": 0, + "spectrum:bismuth_block": 0, + "spectrum:small_bismuth_bud": 0, + "spectrum:large_bismuth_bud": 0, + "spectrum:bismuth_cluster": 0, + "spectrum:bismuth_crystal": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Bismuth", + "text": "A metal that shimmers in all the colors of the rainbow.$(br)The small seedlings you collected are far too small to be used for any meaningful purpose.$(br)How do they grow without a budding block? One thing you noticed: it slightly grew in proximity of other metals while you had both in your pocket." + }, + { + "type": "spectrum:crystallarieum_growing", + "advancement": "spectrum:progression/unlock_crystallarieum", + "title": "Growing Bismuth", + "recipe": "spectrum:crystallarieum/bismuth", + "text": "Instead of sacrificing whole metal blocks, the $(l:magical_blocks/crystallarieum)Crystallarieum$() provides a controlled substrate as well as a finer and more efficient way to provide nutrients." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/blood_orchids.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/blood_orchids.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/blood_orchids.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/blood_orchids.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/clover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/clover.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/clover.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/clover.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/geodes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/geodes.json new file mode 100644 index 0000000000..b88761dc7f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/geodes.json @@ -0,0 +1,322 @@ +{ + "name": "Geodes", + "advancement": "spectrum:spectrum", + "icon": "minecraft:amethyst_cluster", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:topaz_ore": 0, + "spectrum:amethyst_ore": 0, + "spectrum:citrine_ore": 0, + "spectrum:moonstone_ore": 0, + "spectrum:deepslate_topaz_ore": 0, + "spectrum:deepslate_amethyst_ore": 0, + "spectrum:deepslate_citrine_ore": 0, + "spectrum:deepslate_moonstone_ore": 0, + "spectrum:small_topaz_bud": 0, + "spectrum:medium_topaz_bud": 0, + "spectrum:large_topaz_bud": 0, + "spectrum:topaz_cluster": 0, + "spectrum:topaz_block": 0, + "spectrum:budding_topaz": 0, + "minecraft:small_amethyst_bud": 0, + "minecraft:medium_amethyst_bud": 0, + "minecraft:large_amethyst_bud": 0, + "minecraft:amethyst_cluster": 0, + "minecraft:amethyst_block": 0, + "minecraft:budding_amethyst": 0, + "spectrum:small_citrine_bud": 0, + "spectrum:medium_citrine_bud": 0, + "spectrum:large_citrine_bud": 0, + "spectrum:citrine_cluster": 0, + "spectrum:citrine_block": 0, + "spectrum:budding_citrine": 0, + "spectrum:small_moonstone_bud": 0, + "spectrum:medium_moonstone_bud": 0, + "spectrum:large_moonstone_bud": 0, + "spectrum:moonstone_cluster": 0, + "spectrum:moonstone_block": 0, + "spectrum:budding_moonstone": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Gemstone Geodes", + "images": [ + "spectrum:textures/gui/guidebook/geode.png" + ], + "border": true, + "text": "Geodes form in places where magical energy is so abundant, it physically crystallizes." + }, + { + "type": "patchouli:text", + "text": "$(br)Breaking Clusters gets you Gemstone Shards, which seem to inherit lots of the original magical properties.$(br)Each type of gemstone seems to represent a different type of fundamental property.$(br2)Different heights promote formation of certain types. To find them all, it makes sense to search in different places." + }, + { + "type": "patchouli:multiblock", + "name": "A Geode", + "enable_visualize": false, + "multiblock": { + "pattern": [ + [ + " ", + " ", + "O ", + " O ", + " ", + " SS ", + " O SSSS ", + " SS O ", + " ", + " ", + " ", + " ", + " " + ], + [ + " O ", + " O ", + " ", + " SSSSSS ", + " SSSCCSSS ", + " SSCCCCSS ", + " SSCCCCCCSS ", + " SSCCCCSS ", + " SSSCCSSS ", + " SSSSSS ", + " ", + " O ", + " " + ], + [ + " ", + " ", + " SSSSSSS ", + " SSCCCCCSS ", + " SSCCAAACCS ", + " SCCAAAAACCS ", + " SCCAAAAACCS ", + " SSCCAAACCSS ", + " SSCCCCCSS ", + " SSSSSSS ", + " ", + " ", + " " + ], + [ + " ", + " SSSSSS ", + " SSCCCCCSS ", + " SSCCAAAACCS ", + " SCCAAAAAACSS ", + " SCCAA AACCS ", + " SCCA AACS ", + " SCCAA ACCS ", + " SCAA AACCS ", + " SCC AAACCS ", + " S CCCSS ", + " SSS ", + " " + ], + [ + " SSS ", + " SSCCCSS ", + " SSCCBACCCS ", + " SCCAAAAAACCS ", + " SCAA AACSS ", + " SCAA ACCS ", + " SCAA ACCS ", + " SCAA ACCS ", + " SCCA AACSS ", + " SC BACCSS ", + " ACCSS ", + " CCSS ", + " SS " + ], + [ + " SSSS ", + " SCCCCCSS ", + " SCCAABACSS ", + " SCCAB AAACSS ", + " SCCAB ACCS ", + " SCA AACS ", + "SCA 0 ACSS", + "SCA AACSS", + "SCA AACS ", + "SCAA AACCS ", + " S AACCSS ", + " S CCSS ", + " SS " + ], + [ + " SSSSS ", + " SCCCCCSS ", + " SSCAAAAACCS ", + " CCAA AAACCS ", + " SCA AACS ", + " SCA ACSS", + " SCA ACCS", + " SCA ACCS", + " SCA AACSS", + " S BCSS ", + " AACCS ", + " CCSS ", + " O SS " + ], + [ + " SSSS ", + " SSCCCCSS ", + " SCCAAACCCS ", + "O SCAAA AAACCS ", + " SCAA AACS ", + " SBA ACSS", + " SCA ACCS", + " SCB ACCS", + " CA ACSS", + " S ACCSS", + " AACSS ", + " CCSS ", + " SSS " + ], + [ + " S ", + " SSCCSSS ", + " SCCCACCCSS ", + " SCCAAAAAACSS ", + " CCA ACCS ", + " SCB AACSS", + " SCA ACSS", + " SCB ACSS", + " SC AACSS", + " S AACSS ", + " ACCS ", + " CCSS ", + " SS " + ], + [ + " ", + " SSSSS ", + " SCCCCCCS ", + " SCCABAACCS ", + " SCAAA ABACCS ", + " SCA AACS ", + " SCAA ABCS ", + " SCAB AACS ", + " SCA ACCS ", + " AAACSS ", + " ACCCS ", + " CCS ", + " SS " + ], + [ + " ", + " S ", + " SSSCSSS ", + " SCCCCCCCS ", + " SCCAAAACCS ", + " CCBAAAAACSS ", + " SCAA AACSS ", + " SCAAA AACSS ", + " SCCAAAAAACSS ", + " S ABACCS ", + " CCCS ", + " SSS ", + " O S " + ], + [ + " O ", + " ", + " SSS ", + " SSCCSSS ", + " SCCCCCCS ", + " SSCCAACCSS ", + " SCCAABCCSS ", + " SCCBAACCSS O", + " SCCCACCCSS ", + " OS CSS ", + " O SS ", + " ", + " " + ], + [ + " ", + " ", + " O ", + " SS ", + " SSSSS ", + " SSCCSSS ", + " SSCCCCSS ", + " SSCCCCSS ", + " SSSCCSS ", + " SSSSSSS O ", + " SS ", + " ", + " " + ], + [ + " ", + " ", + " ", + " ", + " O ", + " S ", + " SSS ", + " SS ", + " S O ", + " ", + " ", + " ", + " " + ] + ], + "mapping": { + "S": "minecraft:smooth_basalt", + "C": "minecraft:calcite", + "A": "minecraft:amethyst_block", + "B": "minecraft:budding_amethyst", + "W": "minecraft:small_amethyst_bud", + "X": "minecraft:medium_amethyst_bud", + "Y": "minecraft:large_amethyst_bud", + "Z": "minecraft:amethyst_cluster", + "O": "spectrum:amethyst_ore" + }, + "symmetrical": false + }, + "text": "The precious gemstones are protected by layers of Basalt and Calcite." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:break_gemstone_ore", + "title": "Gemstone Ores", + "item": "spectrum:amethyst_ore", + "text": "Now that you are paying attention, you noticed small inclusions of gems in the rock all over the place.$(br)If you see such an ore a geode is surely not far!$(br2)While not renewable like Gemstone Clusters, Gemstone Ore provides a lot of Shards, especially when broken with a Fortune-Tool." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "title": "Topaz Geodes", + "item": "spectrum:topaz_block", + "text": "Topaz geodes are gigantic in contrast to the others, fitting for their element of matter. However, for this they are found exclusively far above the ground in mountains or massive hills." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "title": "Amethyst Geodes", + "item": "minecraft:amethyst_block", + "text": "As elements of time, Amethyst Geodes tend to maintain their existence in the lowest layers of the world, quietly sealed off from all other happenings in the world.$(br)Leisurely and yet imposing." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "title": "Citrine Geodes", + "item": "spectrum:citrine_block", + "text": "Geodes with Citrine are found in the middle layers of the world, sometimes even accessible from the surface. These geodes are small, but harbor tremendous energy, so they are cracked especially often." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "title": "Moonstone Geodes", + "item": "spectrum:moonstone_block", + "text": "In the $(l:dimension/dimension)Deeper Down$() you stumbled upon Moonstone Geodes!$(br)You always suspected that there would be another variant and here you are. Those often majestic geodes shine in the brightest of whites, almost blinding, when only accustomed to the darkness of the Deeper Down." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/jade_vines.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/jade_vines.json new file mode 100644 index 0000000000..8fc8fc0f0f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/jade_vines.json @@ -0,0 +1,67 @@ +{ + "name": "Jade Vines", + "advancement": "spectrum:hidden/collect_hibernating_jade_vine_seeds", + "icon": "spectrum:hibernating_jade_vine_seeds", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:hibernating_jade_vine_seeds": 0, + "spectrum:germinated_jade_vine_seeds": 0, + "spectrum:jade_vine_petals": 0, + "spectrum:moonstruck_nectar": 0, + "spectrum:jade_jelly": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Jade Vines", + "item": "spectrum:hibernating_jade_vine_seeds", + "text": "The remaining energy of this plant from aeons ago is barely still perceptible. So light and vulnerable that you think any wrong move could breathe the last bit of life out of your fragile bulb.$(br2)$(italic)Will the history of this plant remain elusive to you forever?" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "Germinating", + "advancement": "spectrum:midgame/build_spirit_instiller_structure", + "recipe": "spectrum:spirit_instiller/germinated_jade_vine_seeds", + "text": "Once almost a lost cause you now have an ace up your sleeve:$(br)With the help of the $(l:creating_life/spirit_instiller)Spirit Instiller$(/l) you are sure that you can breathe life back into the little bulb." + }, + { + "type": "patchouli:spotlight", + "title": "Planting & Growing", + "item": "spectrum:germinated_jade_vine_seeds", + "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", + "text": "Palid, fragile but beautiful hanging plants, twining down wooden fences.$(br)$(c_red)Not used to the intense light after all these aeons, they will die when exposed to too much sunlight.$(br)$(c_lime)They only grow one stage per night and only when exposed to the way more soft, indirect light of the moon." + }, + { + "type": "patchouli:spotlight", + "title": "Jade Jelly", + "anchor": "jade_jelly", + "item": "spectrum:jade_jelly", + "advancement": "spectrum:hidden/collect_jade_jelly", + "text": "As you exposed one of the plants to strong sunlight, you found that it withered. Not only did this withered shrub leave you with new Bulbs, but also this gel-like jelly.$(br2)$(italic)Unexpectedly tasty$()." + }, + { + "type": "spectrum:cinderhearth_smelting", + "title": "Jaramel", + "anchor": "jaramel", + "recipe": "spectrum:cinderhearth/jaramel", + "advancement": "spectrum:hidden/collect_jade_jelly", + "text": "If the Jade Jelly is heated blazingly fast and then cooled down again, the result is a very viscous but sugar-sweet mass.$(br2)$(italic)Fancy a sugar rush?" + }, + { + "type": "patchouli:spotlight", + "title": "Petals", + "anchor": "petals", + "item": "spectrum:jade_vine_petals", + "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", + "text": "Shiny petals can be plucked when partly grown.$(br)They can be used as $(l:decoration/jade_vine_petal_blocks)decoration$().$(br)Rarely, when searching the petals, $(thing)another Bulb$() can be found.(br)How will Jade Vines look when you let them grow further?" + }, + { + "type": "patchouli:spotlight", + "title": "Moonstruck Nectar", + "anchor": "nectar", + "item": "spectrum:moonstruck_nectar", + "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", + "text": "After many nights on a full moon, the plants reach full bloom. The nectar that they collect in their blossoms can be harvested with a Glass Bottle.$(br)Bears great restorative properties:$(li)can be drunk for healing$(li)able to repair any damaged item$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/liquid_crystal_powders.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/liquid_crystal_powders.json new file mode 100644 index 0000000000..b985f2b58c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/liquid_crystal_powders.json @@ -0,0 +1,38 @@ +{ + "name": "Crystallisation", + "advancement": "spectrum:hidden/collect_any_crystallized_block", + "icon": "spectrum:liquid_crystal_bucket", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:blazing_crystal": 0, + "spectrum:fiery_powder": 0, + "spectrum:frostbite_crystal": 0, + "spectrum:blizzard_powder": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_blazing_crystal", + "item": "spectrum:blazing_crystal", + "text": "Letting a full block of Liquid Crystal absorb the immense heat of Lava resulted in this.$(br)Almost feels like a Magma Block, albeit way hotter." + }, + { + "type": "spectrum:anvil_crushing", + "advancement": "spectrum:hidden/collect_blazing_crystal", + "recipe": "spectrum:anvil_crushing/fiery_powder_from_blazing_crystal", + "text": "Crushing $(thing)Blazing Crystal$() with an Anvil yields this burning hot powder, which almost sets your hand in flames by holding it. Crushing $(thing)Magma Blocks$() seems to work, too, albeit with much less yield." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_frostbite_crystal", + "item": "spectrum:frostbite_crystal", + "text": "As Water tried to flow to a full block of Liquid Crystal the crystal turned solid.$(br)Since even a light touch is enough to give you a cold shiver, you called it Frostbite Crystal" + }, + { + "type": "spectrum:anvil_crushing", + "advancement": "spectrum:hidden/collect_frostbite_crystal", + "recipe": "spectrum:anvil_crushing/blizzard_powder_from_frostbite_crystal", + "text": "Crushing $(thing)Frostbite Crystal$() with an Anvil yields this ice cold powder, which almost makes your hand freeze just by holding it. Crushing $(thing)Ice$() seems to work, too, albeit with much less yield." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/malachite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/malachite.json new file mode 100644 index 0000000000..55803cca78 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/malachite.json @@ -0,0 +1,31 @@ +{ + "name": "Malachite", + "advancement": "spectrum:lategame/collect_malachite", + "icon": "spectrum:malachite_cluster", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:malachite_ore": 0, + "spectrum:deepslate_malachite_ore": 0, + "spectrum:blackslag_malachite_ore": 0, + "spectrum:raw_malachite": 0, + "spectrum:malachite_block": 0, + "spectrum:small_malachite_bud": 0, + "spectrum:large_malachite_bud": 0, + "spectrum:malachite_cluster": 0, + "spectrum:malachite_crystal": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Malachite", + "text": "A pristine material, sparkling in a deep green hue. It seems to have strong magical properties, almost like a $(l:dimension/dimension)Deeper Down$() analog of $(l:resources/azurite)Azurite$().$(br)As another similarity to $(l:resources/azurite)Azurite$(), Malachite has to be refined, too. The small fragments you obtained by mining the ore must first grow into full, usable crystals, though they grow so slowly you're not sure you can witness this in your entire lifetime." + }, + { + "type": "spectrum:crystallarieum_growing", + "advancement": "spectrum:progression/unlock_crystallarieum", + "title": "Refining Malachite", + "recipe": "spectrum:crystallarieum/malachite", + "text": "The Crystallarieum seems to be the only way for you to grow Malachite in a reasonable timeframe, by speeding up it's growth significantly.$(br)The influence of $(item)Moonstone$() is required to create an environment for it to grow, mimicking the Deeper Down." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/mermaids_brush.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/mermaids_brush.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/mermaids_brush.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/mermaids_brush.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/moonstone_cores.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/moonstone_cores.json new file mode 100644 index 0000000000..9091c88cbc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/moonstone_cores.json @@ -0,0 +1,24 @@ +{ + "name": "Moonstone Cores", + "advancement": "spectrum:lategame/collect_moonstone_core", + "icon": "spectrum:moonstone_core", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:moonstone_core": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/moonstone_core.png" + ], + "text": "A relic of times long gone." + }, + { + "type": "patchouli:spotlight", + "title": "Moonstone Cores", + "item": "spectrum:moonstone_core", + "text": "This powerhouse of an item is able to funnel huge amounts of $(c_white)White Ink$() with ease. Can be used to boost the capabilities of equipment and devices." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/paltaeria.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/paltaeria.json new file mode 100644 index 0000000000..991d3b4735 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/paltaeria.json @@ -0,0 +1,41 @@ +{ + "name": "Paltaeria", + "advancement": "spectrum:lategame/collect_paltaeria", + "icon": "spectrum:paltaeria_fragments", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:paltaeria_ore": 0, + "spectrum:paltaeria_fragments": 0, + "spectrum:paltaeria_gem": 0, + "spectrum:paltaeria_fragment_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Paltaeria", + "item": "spectrum:paltaeria_fragments", + "text": "The light blue color is the trademark of this ore. It is found exclusively in the end in small clusters.$(br2)Like the end itself, the curious properties of this material are not to be overlooked." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Paltaeria Gem", + "advancement": "spectrum:hidden/collect_paltaeria_gem", + "recipe": "spectrum:pedestal/tier4/paltaeria_gem", + "text": "Rarely you could carve an intact stone. Used in recipes for which the Fragments were simply too small. Though with effort you can merge fragments together." + }, + { + "type": "patchouli:spotlight", + "title": "Paltaeria Floatblock", + "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "item": "spectrum:paltaeria_fragment_block", + "text": "From your previous experiences with Paltaeria, you can already guess that it would not be a good idea to place this block in open sky - your future self will thank you." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "recipe": "spectrum:pedestal/tier1/compacting/paltaeria_fragment_block", + "text": "$(br) $(italic)~ Fly far away ~" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/pure_resources.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/pure_resources.json new file mode 100644 index 0000000000..ca80c938e4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/pure_resources.json @@ -0,0 +1,72 @@ +{ + "name": "Pure Resources", + "advancement": "spectrum:lategame/collect_pure_resource", + "icon": "spectrum:pure_iron", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:pure_coal": 0, + "spectrum:pure_iron": 0, + "spectrum:pure_gold": 0, + "spectrum:pure_diamond": 0, + "spectrum:pure_emerald": 0, + "spectrum:pure_redstone": 0, + "spectrum:pure_lapis": 0, + "spectrum:pure_copper": 0, + "spectrum:pure_quartz": 0, + "spectrum:pure_netherite": 0, + "spectrum:pure_glowstone": 0, + "spectrum:pure_prismarine": 0, + + "spectrum:pure_certus_quartz": 0, + "spectrum:pure_fluix": 0, + "spectrum:pure_globette": 0, + "spectrum:pure_globette_nether": 0, + "spectrum:pure_globette_end": 0, + + "spectrum:pure_coal_block": 0, + "spectrum:pure_iron_block": 0, + "spectrum:pure_gold_block": 0, + "spectrum:pure_diamond_block": 0, + "spectrum:pure_emerald_block": 0, + "spectrum:pure_redstone_block": 0, + "spectrum:pure_lapis_block": 0, + "spectrum:pure_copper_block": 0, + "spectrum:pure_quartz_block": 0, + "spectrum:pure_netherite_block": 0, + "spectrum:pure_glowstone_block": 0, + "spectrum:pure_prismarine_block": 0, + + "spectrum:pure_certus_quartz_block": 0, + "spectrum:pure_fluix_block": 0, + "spectrum:pure_globette_block": 0, + "spectrum:pure_globette_nether_block": 0, + "spectrum:pure_globette_end_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Growing materials in the $(l:magical_blocks/crystallarieum)Crystallarieum$(/l) yields this much more pure, crystalline variant compared to plain $(thing)Raw Ore$().$(br)On closer inspection they almost appear surrounded by an invisible sheen, gently protecting them from outside forces. This shroud also seems to be what protects $(thing)Native Copper$() from oxidization." + }, + { + "type": "patchouli:blasting", + "title": "Blasting", + "recipe": "spectrum:blasting/pure_resources/pure_iron", + "recipe2": "spectrum:blasting/pure_resources/pure_gold", + "text": "Ironically, you found that these resources seemed to be able to withstand the heat of normal $(thing)Furnaces$(). But you were able to smelt them in a $(thing)Blast Furnace$(), at least." + }, + { + "type": "spectrum:cinderhearth_smelting", + "advancement": "spectrum:progression/unlock_cinderhearth", + "title": "Cinderhearth Smelting", + "recipe": "spectrum:cinderhearth/pure_resources/pure_iron", + "recipe2": "spectrum:cinderhearth/pure_resources/pure_gold", + "text": "However, smelting these in the $(l:magical_blocks/cinderhearth)Cinderhearth$() yields a much more decent output of ingots." + }, + { + "type": "patchouli:crafting", + "title": "Compressing", + "recipe": "spectrum:crafting_table/storage_blocks/pure_quartz_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/pure_quartz_from_quartz_storage_block" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/quitoxic_reeds.json new file mode 100644 index 0000000000..8221513487 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/quitoxic_reeds.json @@ -0,0 +1,27 @@ +{ + "name": "Quitoxic Reeds", + "icon": "spectrum:quitoxic_reeds", + "advancement": "spectrum:collect_quitoxic_reeds", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:quitoxic_reeds": 0, + "spectrum:quitoxic_powder": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Quitoxic Reeds", + "images": [ + "spectrum:textures/gui/guidebook/quitoxic_reed.png" + ], + "border": true, + "text": "Grows exclusively in Swamps and seems to devour Clay as a form of nutrient." + }, + { + "type": "patchouli:spotlight", + "anchor": "quitoxic_powder", + "item": "spectrum:quitoxic_powder", + "text": "A purple glittering powder can be extracted from the stems of the alien-looking plant by crushing it with an anvil.$(br)Smell and consistency are very unusual when rubbed between your fingers.$(br2)$(italic)...wait a moment, what are fingers?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/resonating_ender.json new file mode 100644 index 0000000000..271609e116 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/resonating_ender.json @@ -0,0 +1,21 @@ +{ + "name": "Resonating Ender", + "advancement": "spectrum:milestones/reveal_radiating_ender", + "icon": "minecraft:ender_pearl", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:radiating_ender": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Those pesky Endermen!$(br2)They always show up at night and steal blocks off the ground right from your nose. You have the feeling that the whole area here will be nothing but a single crater landscape in a month.$()" + }, + { + "type": "patchouli:spotlight", + "title": "Resonating Ender", + "item": "spectrum:radiating_ender", + "text": "The Endermen come to this world to place those blocks. But what is this stuff? And $(italic)WHY$() do they leave it here?$(br2)Now that you hold one in your hands... they are everywhere! How didn't you notice earlier? Anyways, you are sure that you can take advantage of this interesting material." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/shimmerstone.json new file mode 100644 index 0000000000..619ab67167 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/shimmerstone.json @@ -0,0 +1,26 @@ +{ + "name": "Shimmerstone", + "advancement": "spectrum:collect_shimmerstone", + "icon": "spectrum:shimmerstone_gem", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:shimmerstone_ore": 0, + "spectrum:deepslate_shimmerstone_ore": 0, + "spectrum:blackslag_shimmerstone_ore": 0, + "spectrum:shimmerstone_gem": 0, + "spectrum:shimmerstone_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Shimmerstone", + "item": "spectrum:shimmerstone_gem", + "text": "A yellow ore that does not only emit energy in the form of light, but is able to manipulate it, too.$(br2)Shimmerstone is found close to sea level altitudes." + }, + { + "type": "patchouli:crafting", + "recipe": "spectrum:crafting_table/storage_blocks/shimmerstone_block", + "text": "Full blocks of Shimmerstone emit glowing bright yellow particles." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/stargazing.json new file mode 100644 index 0000000000..a27312f00c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/stargazing.json @@ -0,0 +1,54 @@ +{ + "name": "Stargazing", + "advancement": "spectrum:milestones/unlock_shooting_stars", + "icon": "minecraft:spyglass", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:star_fragment": 0, + "spectrum:stardust": 0, + "spectrum:shooting_star_glistering": 0, + "spectrum:shooting_star_fiery": 0, + "spectrum:shooting_star_colorful": 0, + "spectrum:shooting_star_pristine": 0, + "spectrum:shooting_star_gemstone": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Wishing upon a Star", + "images": [ + "spectrum:textures/gui/guidebook/stargazing.png" + ], + "border": true, + "text": "$(italic)The calmness of the night invites you to lie down in the grass and watch the stars." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "Shooting Stars", + "item": "spectrum:shooting_star_glistering", + "text": "The small Shooting Stars are made of a material unknown to you thus far.$(br2)Can you catch one right off the sky?$(br2)$(italic)Tip: Shooting Stars are much easier to spot when using a Telescope or Night Vision.$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "Star Fragments", + "item": "spectrum:star_fragment", + "text": "Shooting Stars yield precious resources, including this rare Star Fragment, Stardust and a whole lot of other rare materials.$(br2)Picking up a Shooting Star by crouching and $(l:general/anvil_crushing)smashing it via an Anvil$(/l) will yield double the Star Fragments, albeit at the cost of the other materials." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "Stardust", + "item": "spectrum:stardust", + "text": "A powder of unknown origin blessed with the soul of the stars.$(br)Bears coy, yet latent power." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:collect_all_shooting_star_variants", + "title": "Star Hardening", + "recipe": "spectrum:fusion_shrine/shooting_star_hardening", + "text": "Now that you've collected all the variations, it's finally time to unwind! Hardened with a Diamond the Stars do not break anymore when hit.$(br2)$(italic)Fancy a Starball tournament with your friends?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/storm_stones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/storm_stones.json new file mode 100644 index 0000000000..83b97799f0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/storm_stones.json @@ -0,0 +1,22 @@ +{ + "name": "Storm Stones", + "advancement": "spectrum:midgame/collect_storm_stone", + "icon": "spectrum:storm_stone", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:storm_stone": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Thunderstorms", + "text": "Thunderstorms are a powerful sign of the forces of nature.$(br)Using the $(l:general/fusion_shrine)Fusion Shrine$() you did even start them when crafting some powerful resources.$(br2)There was no doubt coming across something here that had a connection to the magic of pigments." + }, + { + "type": "patchouli:spotlight", + "title": "Storm Stones", + "item": "spectrum:storm_stone", + "text": "Dug into the ground by lightning strikes, you found these stones vibrating in your hand due to the inherent static.$(br)Used in the $(l:general/fusion_shrine)Fusion Shrine$(), you can use them to summon thunderstorms yourself.$(br2)$(italic)Because of their volatile nature they do not react too nicely to explosions..." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/stratine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/stratine.json new file mode 100644 index 0000000000..3d54982128 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/en_us/entries/resources/stratine.json @@ -0,0 +1,41 @@ +{ + "name": "Stratine", + "advancement": "spectrum:midgame/collect_stratine", + "icon": "spectrum:stratine_fragments", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:stratine_ore": 0, + "spectrum:stratine_fragments": 0, + "spectrum:stratine_gem": 0, + "spectrum:stratine_fragment_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Stratine", + "item": "spectrum:stratine_fragments", + "text": "This very heavy ore is scattered around the depths of the Nether.$(br)It's probably not the best idea to carry large amounts of it home at once." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Stratine Gem", + "advancement": "spectrum:hidden/collect_stratine_gem", + "recipe": "spectrum:pedestal/tier3/stratine_gem", + "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." + }, + { + "type": "patchouli:spotlight", + "title": "Stratine Floatblock", + "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "item": "spectrum:stratine_fragment_block", + "text": "Stratine - as you may have already noticed - is an exceptionally heavy material. And difficult to shape, too. Even the blazing heat of the Nether could not harm the material.$(br2)However, shaping it via your $(l:general/pedestal)Pedestal$() should not be a problem whatsoever." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "recipe": "spectrum:pedestal/tier1/compacting/stratine_fragment_block", + "text": "$(italic)Heavy Metal" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/creating_life_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/creating_life_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/creating_life_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/creating_life_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/decoration_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/decoration_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/decoration_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/decoration_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/dimension_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/dimension_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/dimension_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/dimension_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/enchanting_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/enchanting_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/enchanting_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/enchanting_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/general_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/general_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/general_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/general_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/hints_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/hints_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/hints_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/hints_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/magic_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/magic_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/magic_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/magic_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/magical_blocks_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/magical_blocks_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/magical_blocks_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/magical_blocks_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/magical_items_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/magical_items_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/magical_items_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/magical_items_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/pastel_network_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/pastel_network_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/pastel_network_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/pastel_network_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/redstone_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/redstone_category.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/redstone_category.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/redstone_category.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/resources_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/resources_category.json new file mode 100644 index 0000000000..18b4a8f950 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/categories/resources_category.json @@ -0,0 +1,6 @@ +{ + "name": "Recursos", + "description": "Várias plantas e minérios estão espalhados pelo mundo apenas esperando que você os descubra. Isso se você notar eles.$(br)Quanto mais acostumado você estiver com a mágia que vem do mundo, maior a quantidade de recursos que você vai conseguir ver.", + "icon": "spectrum:shimmerstone_ore", + "sortnum": 1 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/creating_life.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/creating_life.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/creating_life.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/creating_life.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/decay_away.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/decay_away.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/decay_away.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/decay_away.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/egg_laying_wooly_pig.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/egg_laying_wooly_pig.json new file mode 100644 index 0000000000..aed4413c0d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/egg_laying_wooly_pig.json @@ -0,0 +1,22 @@ +{ + "name": "Egg Laying Wooly Pigs", + "icon": "spectrum:egg_laying_wooly_pig_head", + "advancement": "spectrum:progression/unlock_egg_laying_wooly_pig_head", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:egg_laying_wooly_pig_head": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Egg Laying Wooly Pig", + "text": "Your whole \"creating life\" thing has worked rather mixed so far. But slowly you feel you are able to move something.$(br2)Creating life from nothing is a difficult thing, but combining existing knowledge? You feel a bit like Frankenstein himself.$(br)$(italic)Is that a good thing? Bad? You are not sure at all." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/egg_laying_wooly_pig_head", + "text": "What would your creation like to eat? It's relevant, for... $(l:creating_life/memories)reasons$()." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/fading.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/fading.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/fading.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/fading.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/failing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/failing.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/failing.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/failing.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/memories.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/memories.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/memories.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/memories.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/mob_heads.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/mob_heads.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/mob_heads.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/mob_heads.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/ruin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/ruin.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/ruin.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/ruin.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/spawner_manipulation.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/spawner_manipulation.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/spawner_manipulation.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/spawner_manipulation.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/spirit_instiller.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/spirit_instiller.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/creating_life/spirit_instiller.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/creating_life/spirit_instiller.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/banner_patterns.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/banner_patterns.json new file mode 100644 index 0000000000..f1fbd1f9c9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/banner_patterns.json @@ -0,0 +1,28 @@ +{ + "name": "Desenhos para Estandarte", + "icon": "spectrum:amethyst_shard_banner_pattern", + "advancement": "spectrum:spectrum", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:logo_banner_pattern": 0, + "spectrum:amethyst_shard_banner_pattern": 0, + "spectrum:amethyst_cluster_banner_pattern": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Desenhos para Estandarte", + "border": true, + "images": [ + "spectrum:textures/gui/guidebook/banners.png" + ], + "text": "Recursos e ferramentas que você encontra podem ser diretamente usados no Tear como desenhos." + }, + { + "type": "patchouli:crafting", + "title": "Desenhos Vanilla", + "recipe": "spectrum:crafting_table/banner_patterns/amethyst_cluster_banner_pattern", + "recipe2": "spectrum:crafting_table/banner_patterns/amethyst_shard_banner_pattern" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/block_variants.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/block_variants.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/block_variants.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/block_variants.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/colored_lamps.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/colored_lamps.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/colored_lamps.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/colored_lamps.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/colored_spore_blossoms.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/colored_spore_blossoms.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/colored_spore_blossoms.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/colored_spore_blossoms.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/decostones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/decostones.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/decostones.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/decostones.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/ethereal_platform.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/ethereal_platform.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/ethereal_platform.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/ethereal_platform.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_chimes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_chimes.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_chimes.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_chimes.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_glass.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_glass.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_glass.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_lamps.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_lamps.json new file mode 100644 index 0000000000..512a342e10 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_lamps.json @@ -0,0 +1,32 @@ +{ + "name": "Lâmpadas de Pedra Preciosa", + "icon": "spectrum:citrine_basalt_lamp", + "advancement": "spectrum:collect_shimmerstone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_basalt_lamp": 0, + "spectrum:amethyst_basalt_lamp": 0, + "spectrum:citrine_basalt_lamp": 0, + "spectrum:onyx_basalt_lamp": 0, + "spectrum:moonstone_basalt_lamp": 0, + "spectrum:topaz_calcite_lamp": 0, + "spectrum:amethyst_calcite_lamp": 0, + "spectrum:citrine_calcite_lamp": 0, + "spectrum:onyx_calcite_lamp": 0, + "spectrum:moonstone_calcite_lamp": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:citrine_basalt_lamp", + "title": "Lâmpadas de Pedra Preciosa", + "text": "$(italic)Quando você pisou no primeiro geodo, você se deparou com um agradável brilho confortante. Com o seu conhecimento e com ajuda da Pedra Cintilante, é fácil apliar essa luz para criar lâmpadas chiques.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Receita de Pedestal", + "recipe": "spectrum:pedestal/tier1/gem_lamps/citrine_basalt_lamp", + "text": "Lâmpadas de Pedra Preciosa existem nas cores de todas as pedras gemas disponíveis a você. Ambos $(l:decoration/block_variants#polished_basalt)Calcita Talhada$() e $(l:decoration/block_variants#polished_calcite)Basalto Talhado$() podem ser usados como base." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_runes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_runes.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_runes.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_runes.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_storage_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_storage_blocks.json new file mode 100644 index 0000000000..c8c6793516 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/gemstone_storage_blocks.json @@ -0,0 +1,55 @@ +{ + "name": "Blocos de Pedra Preciosa", + "advancement": "spectrum:spectrum", + "icon": "spectrum:citrine_storage_block", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_storage_block": 0, + "spectrum:amethyst_storage_block": 0, + "spectrum:citrine_storage_block": 0, + "spectrum:onyx_storage_block": 0, + "spectrum:moonstone_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Blocos de Pedra Preciosa", + "text": "$(italic)As gemas tem uma aparência excepcionalmente bonita.$(br)A aparência de gemas brutas, de como você conhece dos geodos, parece muito natural para algumas contruções. Com recursos o suficiente, entranto, isso pode não ser um problema.$(br2)E se acabarem suas gemas alguma hora, a decoração pode ser facilmente quebrada novamente.$()" + }, + { + "type": "patchouli:crafting", + "title": "Topázio Polido", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "recipe": "spectrum:crafting_table/storage_blocks/topaz_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/topaz_shards_from_topaz_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Ametista Polida", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "recipe": "spectrum:crafting_table/storage_blocks/amethyst_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/amethyst_shards_from_amethyst_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Citrino Polido", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "recipe": "spectrum:crafting_table/storage_blocks/citrine_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/citrine_shards_from_citrine_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Ônix Polido", + "advancement": "spectrum:create_onyx_shard", + "recipe": "spectrum:crafting_table/storage_blocks/onyx_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/onyx_shards_from_onyx_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "Pedra da Lua Polida", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "recipe": "spectrum:crafting_table/storage_blocks/moonstone_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/moonstone_shards_from_moonstone_storage_block" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/glowblocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/glowblocks.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/glowblocks.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/glowblocks.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/item_bowl.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/item_bowl.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/item_bowl.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/item_bowl.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/item_roundel.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/item_roundel.json new file mode 100644 index 0000000000..3ebf73a340 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/item_roundel.json @@ -0,0 +1,22 @@ +{ + "name": "Item Roundel", + "advancement": "spectrum:progression/unlock_item_roundel", + "icon": "spectrum:item_roundel", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:item_roundel": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "item": "spectrum:item_roundel", + "text": "You very much took a liking to the rotating roundels in these ancient structures. So much, that your copied their design yourself. Definitely a nice way to present your items, or keep them ready.$(br2)$(italic)Hopefully the patents have already expired." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/item_roundel", + "text": "The basalt and calcite version you cobbled together hold significantly more items, up to 6 whole stacks." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/jade_vine_petal_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/jade_vine_petal_blocks.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/jade_vine_petal_blocks.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/jade_vine_petal_blocks.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/particle_spawner.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/particle_spawner.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/particle_spawner.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/particle_spawner.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/phantom_frame.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/phantom_frame.json new file mode 100644 index 0000000000..f447d3a6ec --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/phantom_frame.json @@ -0,0 +1,29 @@ +{ + "name": "Molduras Phantom", + "icon": "spectrum:phantom_frame", + "advancement": "spectrum:collect_shimmerstone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:phantom_frame": 0, + "spectrum:glow_phantom_frame": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Phantom Frames", + "text": "$(italic)Você gostaria de mostrar seus preciosos bens. Até agora, você sempre usou molduras para isso. Mas algumas exibições seriam melhores se não desse para ver a moldura.$(br)Mel na chupeta, você se aproveitou das propriedades de manipulação de luz das suas gemas." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Receita de Pedestal", + "recipe": "spectrum:pedestal/tier1/phantom_frame", + "text": "A Moldura Phantom fica invisível assim que você coloca um item nela." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Molduras Phantom Brilhantes", + "recipe": "spectrum:pedestal/tier1/glow_phantom_frame", + "text": "Essa tem um outro detalhe: o item mostrado emana uma luz clara, fazendo ele parecer ainda mais imponente." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/radiant_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/radiant_glass.json new file mode 100644 index 0000000000..03c38329d9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/radiant_glass.json @@ -0,0 +1,23 @@ +{ + "name": "Vidro Radiante", + "advancement": "spectrum:collect_shimmerstone", + "icon": "spectrum:glowing_glass", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:glowing_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:glowing_glass", + "title": "Vidro Radiante", + "text": "$(italic)Você precisa de uma forma eficiente de iluminar seu abrigo e suas outras estruturas.$(br2)O que seria melhor que usar as propriedaded luminosas da Pedra Cintilante diretamente no seu vidro?$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Receita de Pedestal", + "recipe": "spectrum:pedestal/tier1/glowing_glass", + "text": "Vidro Radiante é basicamente o oposto de Vidro Fosco. A Pedra Cintilante usada na sua fabricação garante que o vidro brilho de dentro." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/shimmerstone_lights.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/shimmerstone_lights.json new file mode 100644 index 0000000000..e21d0e032c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/decoration/shimmerstone_lights.json @@ -0,0 +1,27 @@ +{ + "name": "Luzes de Pedra Cintilante", + "icon": "spectrum:basalt_shimmerstone_light", + "advancement": "spectrum:progression/unlock_shimmerstone_lights", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:andesite_shimmerstone_light": 0, + "spectrum:basalt_shimmerstone_light": 0, + "spectrum:calcite_shimmerstone_light": 0, + "spectrum:deepslate_shimmerstone_light": 0, + "spectrum:diorite_shimmerstone_light": 0, + "spectrum:granite_shimmerstone_light": 0, + "spectrum:stone_shimmerstone_light": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Nas primeiras noites nesse mundo você iluminou sua tendo improvisada com tochas.$(br)Mesmo sendo tão atmosférico quanto foi, também foi uma coisa: primitivo.$(br2)Pra se afastar do seu passado iluminado com tochas, você projetou lâmpadas baseadas em Pedra Cintilante.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Receita de Pedestal", + "recipe": "spectrum:pedestal/tier1/shimmerstone_lights/basalt_shimmerstone_light", + "text": "Você pode usar Basalto Polido, Calcita Polida, Pedra Lisa, Ardósia Polida, Diorito Polido, Andesito Polido ou Granito Polido como base." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/dimension/dimension.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/dimension/dimension.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/dimension/dimension.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/dimension/dimension.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/dimension/getting_deeper_down.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/dimension/getting_deeper_down.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/dimension/getting_deeper_down.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/dimension/getting_deeper_down.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/dimension/monstrosity.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/dimension/monstrosity.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/dimension/monstrosity.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/dimension/monstrosity.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/big_catch.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/big_catch.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/big_catch.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/big_catch.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/clovers_favor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/clovers_favor.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/clovers_favor.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/clovers_favor.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/conflicting_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/conflicting_enchantments.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/conflicting_enchantments.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/conflicting_enchantments.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/creating_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/creating_enchanted_books.json new file mode 100644 index 0000000000..3d8c2169bd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/creating_enchanted_books.json @@ -0,0 +1,22 @@ +{ + "name": "Criando Livros", + "icon": "minecraft:enchanted_book", + "priority": true, + "sortnum": 2, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Usando $(l:general/pigment)Pigmento$(/l), ingredientes selecionados e um pouco de exeperiência, o $(l:enchanting/enchanter)Encantador$(/l) te perimite adicionar Encantamentos a Livros comuns.$(br2)Enquanto esse processo gasta mais experiência que encantar em uma Mesa de Encantamentos normal você tem total controle de qual Encantamento você quer criar." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/creating_enchanted_books.png" + ], + "border": true, + "text": "$(italic)Talvez você até consiga usar esse processo para encantar suas ferramentas mágicas." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/curse_of_the_void.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/curse_of_the_void.json new file mode 100644 index 0000000000..05a54803c9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/curse_of_the_void.json @@ -0,0 +1,25 @@ +{ + "name": "Maldição do Vazio", + "icon": "minecraft:wooden_pickaxe", + "advancement": "spectrum:progression/tools/unlock_oblivion_pickaxe", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Suas ferramentas com esse encantmento parecem dissolver tudo que mineram sem deixar nada. Quebrado virando a areia mais fina e sendo levado pelo vento.$(br2)Para caso você queira derrubar mais cidade feita de pura pedra isso possa ser útil. Algumas coisas provavelmente são uma maldição e uma bênção ao mesmo tempo." + }, + { + "type": "patchouli:spotlight", + "title": "Características", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "text": "Destroi o blocos sem gerar espólios.$(br2)Maior Nível: 1$(br)Aplicável em ferramentas de mineração." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Receitar de Encantador", + "recipe": "spectrum:enchanter/spectrum_books/book_voiding", + "advancement": "spectrum:progression/enchantments/voiding", + "text": "Você pode infusionar um livro comum com Maldição do Vazio rodeando seu Encantador com Pigmento e outros materiais necessários." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/disarming.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/disarming.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/disarming.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/disarming.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/enchanter.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/enchanter.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/enchanter.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/enchanter.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/enchanting_items.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/enchanting_items.json new file mode 100644 index 0000000000..1ff4216d4a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/enchanting_items.json @@ -0,0 +1,34 @@ +{ + "name": "Encantação Spectrum", + "icon": "spectrum:enchanter", + "priority": true, + "sortnum": 1, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Encantação Spectrum", + "text": "Usar o Encantador para encantar itens é bem fácil:$(br)Coloque Livros Encantados nas $(l:decoration/item_bowl)Tijelas de Item$(/l) e o item que você quer encantar no próprio Encantador.$(br2)Diferente de encatação normal, isso não consome os livros - mas vai precisar de uma quantidade de experiência muito maior." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/enchanting_items.png" + ], + "border": true, + "text": "Finalmente providencie uma fonte constante de experiência usando uma $(l:magical_items/knowledge_gem)Gema do Conhecimento$(/l) e está tudo pronto." + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:enchanted_book", + "title": "Copiar Livros Encantados", + "text": "Você também pode usar esse mecanismo para criar novos Livros Encantador. Basta colocar o(s) Livro(s) Encantado(s) que você quer colocar nas $(l:decoration/item_bowl)Tijelas de Item$(/l) e um livro simples no $(l:enchanting/enchanter)Encantador$(/l).$(br2)Por causa da natureza mundana dos livros isso vai precisar de muita experiência." + }, + { + "type": "patchouli:text", + "title": "Experiência Necessária", + "text": "Você estima um valor $(bold)entre 50 e 200 pontos de experiência na maior parte dos casos por encantamento$().$(br)Quanto mais raro o encantamento, maior seu nível, melhor o alvo para receber os encantamentos, e alguns outros fatores afeta esse resultado.$(br)Interferências aumentam o custo, como encantamentos que não são para seu alvo." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/exuberance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/exuberance.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/exuberance.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/exuberance.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/first_strike.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/first_strike.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/first_strike.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/first_strike.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/foundry.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/foundry.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/foundry.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/foundry.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/gilded_book.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/gilded_book.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/gilded_book.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/gilded_book.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/improved_critical.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/improved_critical.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/improved_critical.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/improved_critical.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/indestructible.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/indestructible.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/indestructible.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/indestructible.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/inertia.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/inertia.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/inertia.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/inertia.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/inventory_insertion.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/inventory_insertion.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/inventory_insertion.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/inventory_insertion.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/overchanting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/overchanting.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/overchanting.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/overchanting.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/pest_control.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/pest_control.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/pest_control.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/pest_control.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/resonance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/resonance.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/resonance.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/resonance.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/sniper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/sniper.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/sniper.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/sniper.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/steadfast.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/steadfast.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/steadfast.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/steadfast.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/tight_grip.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/tight_grip.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/tight_grip.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/tight_grip.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/treasure_hunter.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/treasure_hunter.json new file mode 100644 index 0000000000..74db740838 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/treasure_hunter.json @@ -0,0 +1,35 @@ +{ + "name": "Caçador de Tesouros", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/treasure_hunter", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Em uma pintura você viu uma criatura fantástica que parece ser feita de Areia das Almas e Crânios de Esqueletos Wither. Por horas você fica em uma Fortaleza no Nether, quase perdendo a própria cabeça enquanto procura com um Esqueleto Wither com a espinha solta o suficiente para derrubar seu crânio. Paciência, você nunca foi de desistir fácil." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:cow_head", + "text": "$(italic)Mas tem os Creepers! Uma vez atingidos por um raio, eles causam uma explosão tão robusta que a explosão arranca a cabeça de seus oponentes do corpo (no pior caso: você).$(br)Num momento de epifania você pensou nesse novo encantamento usando $(l:resources/storm_stones)Pedras de Tempestade$(/l).$(br)Então Caçador de Tesouros foi criado, permitindo você coletar $(l:creating_life/mob_heads)Cabeças de todos os tipo de Criaturas$(/l)." + }, + { + "type": "patchouli:spotlight", + "title": "Características", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:treasure_hunter\", lvl: 3s}]}", + "text": "Ocasionalmente derruba cabeças de criaturas ao matar.$(br2)Nível Máximo: 3$(br)Aplicável a armas corpo a corpo.$(br)Mutualmente exclusivo com Saque." + }, + { + "type": "spectrum:enchanter_crafting", + "title": "Receita de Encantador", + "recipe": "spectrum:enchanter/spectrum_books/book_treasure_hunter", + "text": "Você pode infusionar um livro comum com Caçador de Tesouros rodeando seu Encantador com Pigmento e outros materiais necessários." + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "Melhoria de Encantador", + "recipe": "spectrum:enchantment_upgrade/spectrum/treasure_hunter_level_2", + "text": "Melhorar Caçador de Tesouros do nível 1 ao nível 2 é razoavelmente barato no começo.$(br)Esse preço rapidamenta aumenta para mais e mais Pigmento e Experiência para cada nível adicional." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/upgrading_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/upgrading_enchanted_books.json new file mode 100644 index 0000000000..355751651c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/upgrading_enchanted_books.json @@ -0,0 +1,22 @@ +{ + "name": "Melhorando Livros", + "icon": "minecraft:enchanted_book", + "priority": true, + "sortnum": 3, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Encantamentos e sua Magia de Cor tem muito em comum. É por isso que você não ficou surpreso quando sua primeira tentativa de combinar Livros Encantados com $(l:general/pigment)Pigmento$(/l) foi um sucesso instantâneo.$()$(br2)Colocando um Livro Ecnantado no Encantador, rodeando com Pigmento apropriado e dano uma fonte constante de experiência aumenta o nível do seu livro." + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/upgrading_enchanted_books.png" + ], + "border": true, + "text": "Só tente não interromper o processo, se não ele para completamente." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/vanilla_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/vanilla_enchantments.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/vanilla_enchantments.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/enchanting/vanilla_enchantments.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/ancient_ruins.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/ancient_ruins.json new file mode 100644 index 0000000000..5245c28428 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/ancient_ruins.json @@ -0,0 +1,49 @@ +{ + "name": "Ruínas Anciãs", + "icon": "spectrum:dike_chiseled_preservation_stone", + "advancement": "spectrum:find_ancient_ruins", + "sortnum": 16, + "turnin": "spectrum:generate_ancient_ruins_loot", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:preservation_stone": 0, + "spectrum:preservation_controller": 0, + "spectrum:dike_chiseled_preservation_stone": 0, + "spectrum:treasure_chest": 0, + "spectrum:preservation_glass": 0, + "spectrum:tinted_preservation_glass": 0, + "spectrum:dike_gate": 0, + "spectrum:dike_gate_fountain": 0, + "spectrum:courier_statue": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Ruínas Anciãs", + "item": "spectrum:dike_chiseled_preservation_stone", + "text": "No subterrânio você achou essa estrutura gigante, a entrada da qual parece estar protegida por uma forte, força mágica." + }, + { + "type": "patchouli:image", + "title": "A Entrada", + "images": [ + "spectrum:textures/gui/guidebook/ancient_ruins.png" + ], + "border": true, + "text": "O que pode estar se escondendo de você atrás dessa barreira? Qual o significado desses glifos?" + }, + { + "type": "patchouli:spotlight", + "title": "Mais do Digno", + "item": "spectrum:azure_dike_ring", + "advancement": "spectrum:enter_ancient_ruins", + "text": "Parece que usar equipamento de Dique Azul te permitiu entrar.$(br2)Até agora, você pensou estar sozinho no seu empenho com as gemas e os pigmentos. Pelo que parece você estava errado. $(italic)Muito, muito errado..." + }, + { + "type": "patchouli:text", + "title": "Um Desafio?", + "advancement": "spectrum:generate_ancient_ruins_loot", + "text": "Quem quer que tenha construído essas estruturas, obviamente seguiram o mesmo caminho que você, mas eles estão kilómetro na sua frente, tecnologicamente.$(br2)De qualquer forma. Você aceita o desafio, claro. Você tem uma grande vantagem:$(br)$(italic)VOCÊ ainda está vivo." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/anvil_crushing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/anvil_crushing.json new file mode 100644 index 0000000000..54d1bbf9da --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/anvil_crushing.json @@ -0,0 +1,23 @@ +{ + "name": "Esmagar Item", + "icon": "minecraft:anvil", + "sortnum": 3, + "advancement": "spectrum:place_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:collect_gemstone_powder", + "pages": [ + { + "type": "patchouli:image", + "title": "Esmagar Item", + "images": [ + "spectrum:textures/gui/guidebook/anvil_crushing.png" + ], + "border": true, + "text": "$(italic)\"Para criar algo novo$(br)você tem que ir pelo caminho da destruição\" - alguém" + }, + { + "type": "patchouli:text", + "text": "Até agora você usou sua bigorna principalmente para reparar e aprimorar suas ferramentas. Porém, um objeto tã̀o pesado como uma bigorna pode ser muito mais útil! Por que não usá-la para esmagar coisas até o pó por força bruta? Tipo a cabeça dos seus inimigos ... ou itens. É, isso é provavelmente melhor.$(br2)Você pode esmagar $(l:general/shards)Fragmentos de Pedra Gema$() em $(l:general/gemstone_powder)pó$().$(br2)$(italic)Dica: Quanto mais a bigorna cair, melhor." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/color_mixing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/color_mixing.json new file mode 100644 index 0000000000..e6d8d93d6a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/color_mixing.json @@ -0,0 +1,34 @@ +{ + "name": "Misturar Cores", + "icon": "minecraft:light_blue_dye", + "sortnum": 5, + "advancement": "spectrum:collect_vegetal", + "category": "spectrum:general_category", + "turnin": "spectrum:craft_colored_sapling", + "pages": [ + { + "type": "patchouli:image", + "title": "Misturar Cores", + "images": [ + "spectrum:textures/gui/guidebook/color_mixing.png" + ], + "text": "Ao usar as cores base $(c_cyan)Ciano$(), $(c_magenta)Magenta$() e $(c_yellow)Amarelo$(), (quase) toda cor pode ser criada." + }, + { + "type": "patchouli:text", + "text": "Suas tentativas de misturar $(l:general/gemstone_powder)Pó de Pedra Gema$(/l) diretamente não tiveram muito sucesso. Mas você teve outra ideia agora:$(br)A relação das suas pedras gemas com a natureza implica que $(italic)natureza$() deve ser tanto a fonte como a resposta!$(br2)Rapidamente você rabisca algumas anotações e $(l:general/colored_trees)sai uma receita$(), que parece promissora." + }, + { + "type": "patchouli:text", + "title": "Criando Pigmento Marrom", + "text": "Você tentou e tentou. Você não conseguiu achar uma forma de criar pigmento marrom ao misturar seus pós de pedra gema. O mais perto que você conseguiu foi um laranja desbotado - ui.$(br)Não pode ser TÃO difícil. Tipo... $(c_brown)terra é marrom$() e é a coisa mais comum por perto.$(br2)Tem que ter um jeito...$(br)e você está bem certo de que $(c_black)Preto$() é a resposta." + }, + { + "type": "patchouli:link", + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "text": "$(br2)$(br2)$(italic)Sério, pode ver! O jeito que a gente percebe marrom é facinante!$()", + "url": "https://www.youtube.com/watch?v=wh4aWZRtTwU", + "link_text": "Marrom é Estranho" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/colored_trees.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/colored_trees.json new file mode 100644 index 0000000000..4f5bcf9918 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/colored_trees.json @@ -0,0 +1,199 @@ +{ + "name": "Ãrvores Coloridas", + "icon": "spectrum:red_sapling", + "sortnum": 6, + "advancement": "spectrum:collect_vegetal", + "turnin": "spectrum:craft_colored_sapling", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:black_sapling": 0, + "spectrum:blue_sapling": 0, + "spectrum:brown_sapling": 0, + "spectrum:cyan_sapling": 0, + "spectrum:gray_sapling": 0, + "spectrum:green_sapling": 0, + "spectrum:light_blue_sapling": 0, + "spectrum:light_gray_sapling": 0, + "spectrum:lime_sapling": 0, + "spectrum:magenta_sapling": 0, + "spectrum:orange_sapling": 0, + "spectrum:pink_sapling": 0, + "spectrum:purple_sapling": 0, + "spectrum:red_sapling": 0, + "spectrum:white_sapling": 0, + "spectrum:yellow_sapling": 0, + "spectrum:black_log": 0, + "spectrum:blue_log": 0, + "spectrum:brown_log": 0, + "spectrum:cyan_log": 0, + "spectrum:gray_log": 0, + "spectrum:green_log": 0, + "spectrum:light_blue_log": 0, + "spectrum:light_gray_log": 0, + "spectrum:lime_log": 0, + "spectrum:magenta_log": 0, + "spectrum:orange_log": 0, + "spectrum:pink_log": 0, + "spectrum:purple_log": 0, + "spectrum:red_log": 0, + "spectrum:white_log": 0, + "spectrum:yellow_log": 0, + "spectrum:black_leaves": 0, + "spectrum:blue_leaves": 0, + "spectrum:brown_leaves": 0, + "spectrum:cyan_leaves": 0, + "spectrum:gray_leaves": 0, + "spectrum:green_leaves": 0, + "spectrum:light_blue_leaves": 0, + "spectrum:light_gray_leaves": 0, + "spectrum:lime_leaves": 0, + "spectrum:magenta_leaves": 0, + "spectrum:orange_leaves": 0, + "spectrum:pink_leaves": 0, + "spectrum:purple_leaves": 0, + "spectrum:red_leaves": 0, + "spectrum:white_leaves": 0, + "spectrum:yellow_leaves": 0, + "spectrum:black_planks": 0, + "spectrum:blue_planks": 0, + "spectrum:brown_planks": 0, + "spectrum:cyan_planks": 0, + "spectrum:gray_planks": 0, + "spectrum:green_planks": 0, + "spectrum:light_blue_planks": 0, + "spectrum:light_gray_planks": 0, + "spectrum:lime_planks": 0, + "spectrum:magenta_planks": 0, + "spectrum:orange_planks": 0, + "spectrum:pink_planks": 0, + "spectrum:purple_planks": 0, + "spectrum:red_planks": 0, + "spectrum:white_planks": 0, + "spectrum:yellow_planks": 0, + "spectrum:black_stairs": 0, + "spectrum:blue_stairs": 0, + "spectrum:brown_stairs": 0, + "spectrum:cyan_stairs": 0, + "spectrum:gray_stairs": 0, + "spectrum:green_stairs": 0, + "spectrum:light_blue_stairs": 0, + "spectrum:light_gray_stairs": 0, + "spectrum:lime_stairs": 0, + "spectrum:magenta_stairs": 0, + "spectrum:orange_stairs": 0, + "spectrum:pink_stairs": 0, + "spectrum:purple_stairs": 0, + "spectrum:red_stairs": 0, + "spectrum:white_stairs": 0, + "spectrum:yellow_stairs": 0, + "spectrum:black_pressure_plate": 0, + "spectrum:blue_pressure_plate": 0, + "spectrum:brown_pressure_plate": 0, + "spectrum:cyan_pressure_plate": 0, + "spectrum:gray_pressure_plate": 0, + "spectrum:green_pressure_plate": 0, + "spectrum:light_blue_pressure_plate": 0, + "spectrum:light_gray_pressure_plate": 0, + "spectrum:lime_pressure_plate": 0, + "spectrum:magenta_pressure_plate": 0, + "spectrum:orange_pressure_plate": 0, + "spectrum:pink_pressure_plate": 0, + "spectrum:purple_pressure_plate": 0, + "spectrum:red_pressure_plate": 0, + "spectrum:white_pressure_plate": 0, + "spectrum:yellow_pressure_plate": 0, + "spectrum:black_fence": 0, + "spectrum:blue_fence": 0, + "spectrum:brown_fence": 0, + "spectrum:cyan_fence": 0, + "spectrum:gray_fence": 0, + "spectrum:green_fence": 0, + "spectrum:light_blue_fence": 0, + "spectrum:light_gray_fence": 0, + "spectrum:lime_fence": 0, + "spectrum:magenta_fence": 0, + "spectrum:orange_fence": 0, + "spectrum:pink_fence": 0, + "spectrum:purple_fence": 0, + "spectrum:red_fence": 0, + "spectrum:white_fence": 0, + "spectrum:yellow_fence": 0, + "spectrum:black_fence_gate": 0, + "spectrum:blue_fence_gate": 0, + "spectrum:brown_fence_gate": 0, + "spectrum:cyan_fence_gate": 0, + "spectrum:gray_fence_gate": 0, + "spectrum:green_fence_gate": 0, + "spectrum:light_blue_fence_gate": 0, + "spectrum:light_gray_fence_gate": 0, + "spectrum:lime_fence_gate": 0, + "spectrum:magenta_fence_gate": 0, + "spectrum:orange_fence_gate": 0, + "spectrum:pink_fence_gate": 0, + "spectrum:purple_fence_gate": 0, + "spectrum:red_fence_gate": 0, + "spectrum:white_fence_gate": 0, + "spectrum:yellow_fence_gate": 0, + "spectrum:black_button": 0, + "spectrum:blue_button": 0, + "spectrum:brown_button": 0, + "spectrum:cyan_button": 0, + "spectrum:gray_button": 0, + "spectrum:green_button": 0, + "spectrum:light_blue_button": 0, + "spectrum:light_gray_button": 0, + "spectrum:lime_button": 0, + "spectrum:magenta_button": 0, + "spectrum:orange_button": 0, + "spectrum:pink_button": 0, + "spectrum:purple_button": 0, + "spectrum:red_button": 0, + "spectrum:white_button": 0, + "spectrum:yellow_button": 0, + "spectrum:black_slab": 0, + "spectrum:blue_slab": 0, + "spectrum:brown_slab": 0, + "spectrum:cyan_slab": 0, + "spectrum:gray_slab": 0, + "spectrum:green_slab": 0, + "spectrum:light_blue_slab": 0, + "spectrum:light_gray_slab": 0, + "spectrum:lime_slab": 0, + "spectrum:magenta_slab": 0, + "spectrum:orange_slab": 0, + "spectrum:pink_slab": 0, + "spectrum:purple_slab": 0, + "spectrum:red_slab": 0, + "spectrum:white_slab": 0, + "spectrum:yellow_slab": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Ãrvores Coloridas", + "text": "Você precisa de alguma coisa orgânica pra misturar seus pigmentos. Nos seus experimentos, você pode ver que as raízes das mudas absorveme a cor dos pigmentos com facilidade e se desenvolvem de acordo. A energia das gemas pulsa pelo tronco e pelas primeiras folhas já.$(br2)Como elas vão ser quando crescidas?" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Mudas Coloridas", + "recipe": "spectrum:pedestal/tier1/saplings/red_sapling", + "text": "Cada Muda Colorida vai precisar de uma combinção diferente de $(l:general/gemstone_powder)Pó de Pedra Gema$(), correspondente a $(l:general/color_mixing)quantidade para misturar sua cor$(/l)." + }, + { + "type": "patchouli:image", + "title": "Geração Natural", + "advancement": "spectrum:craft_colored_sapling", + "images": [ + "spectrum:textures/gui/guidebook/colored_trees.png" + ], + "text": "Elas sempre existiram! Quem sabe o que mais tem por aí?" + }, + { + "type": "patchouli:crafting", + "advancement": "spectrum:craft_colored_sapling", + "title": "Madeira Colorida", + "recipe": "spectrum:crafting_table/colored_wood/light_blue_planks", + "text": "Como sua versão não-colorida e não-mágica, você pode usar o tronco colorido para fazer Tábuas, Escadas, Lajes, Botões, Placas de Pressão, Cercas e Portões." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/create_budding_onyx.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/create_budding_onyx.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/create_budding_onyx.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/create_budding_onyx.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/fusion_shrine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/fusion_shrine.json new file mode 100644 index 0000000000..afde29d99b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/fusion_shrine.json @@ -0,0 +1,61 @@ +{ + "name": "Altar de Fusão", + "icon": "spectrum:fusion_shrine_basalt", + "sortnum": 9, + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "turnin": "spectrum:build_fusion_shrine", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:fusion_shrine_basalt": 1, + "spectrum:fusion_shrine_calcite": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Para o processo de criação de $(l:general/onyx_shards)Fragmentos Pretos$() você desenvolveu uma construção especial.$(br2)Você pode clicar ou jogar item e baldes nela. Você também consegue processar um pilha de ingredientes de fusão de uma vez, fazeno fusão muito mais eficiente do que com um único item por ciclo." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Receita de Pedestal", + "recipe": "spectrum:pedestal/tier2/fusion_shrine_basalt", + "text": "Pode ser feito de Basalto ou Calcita.$(br)Precisa de uma estrutura de foco e visão clara ao céu." + }, + { + "type": "patchouli:multiblock", + "name": "Estrutura de Altar", + "multiblock_id": "spectrum:fusion_shrine_structure", + "enable_visualize": true, + "text": "Você sempre pode trocar Basalto por Calcita e escolher $(l:decoration/gemstone_storage_blocks)Blocos de Pedra Gema$(/l) a sua preferência." + }, + { + "type": "patchouli:text", + "title": "Lista Cheque de Blocos", + "text": "$(li)1 Altar de Fusão$(li)4 Blocos Polidos de Pedra Gema$(li)4 Blocos Polidos Talhados$(li)8 Pilares Polidos$(li)12 Lajes Polidas$(li)77 Blocos Polidos" + }, + { + "type": "patchouli:text", + "title": "Mudando o Tempo", + "text": "Você projetou a estrutura do Altar de Fusão para juntar as energias magicas de $(c_cyan)Matéria$(), $(c_magenta)Tempo$() e $(c_yellow)Energia$() e focá-las em um único ponto central, o Altar de Fusão em si.$(br2)Essas energias poderosas agrupadas parecem ter poder suficiente até para mudar o Tempo." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Tempo Ensolarado", + "recipe": "spectrum:fusion_shrine/weather/weather_clear", + "text": "$(italic)É um novo dia$(br)E o Sol está alto$(br)Todos os pássaros estão cantando$(br)Que você vai morrer." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Tempo Chuvoso", + "advancement": "spectrum:collect_mermaids_gem", + "recipe": "spectrum:fusion_shrine/weather/weather_rain", + "text": "$(italic)Toc Toc$(br)Quem é?$(br)Senhor do Tempo$(br)Senhor do Tempo quem?$(br)Eu não sou senhor do tempo, mas eu sei que vai chover." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Tempestades", + "advancement": "spectrum:midgame/collect_storm_stone", + "recipe": "spectrum:fusion_shrine/weather/weather_thunder", + "text": "$(italic)Não é bom dar um copo d'água pra Thor$(br2)Porque ele vai causar uma tempestade em copo d'água." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/gemstone_powder.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/gemstone_powder.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/gemstone_powder.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/gemstone_powder.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/intro.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/intro.json new file mode 100644 index 0000000000..55f8a2f26b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/intro.json @@ -0,0 +1,32 @@ +{ + "name": "Intro", + "icon": "spectrum:pedestal_basic_amethyst", + "category": "spectrum:general_category", + "sortnum": 0, + "pages": [ + { + "type": "patchouli:image", + "title": "Welcome to Spectrum!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum.png" + ], + "border": true, + "text": "Spectrum é um mod completo sobre magia e eexploração." + }, + { + "type": "patchouli:text", + "text": "Spectrum ée baseado em mistura de cores no sistema subtrativo de cores (CMYK). Mistura subtrativa de cores pode ser familiar a você de pintar com aquarela ou imprimir.$(br2)As cores principais de Spectrum são representadas por pedras gemas, achadas em geodos espalhados pelo mundo, com a Ametista do vanilla representando a parte Magenta do espétro." + }, + { + "type": "patchouli:text", + "title": "Sistema de Progressão", + "text": "Spectrum tem um sistema complexo de progressão onde você desbloqueia novas coisas ao progredir.$(br)Ao se aprofundar, você vai notar mudanças no mundo. Diferenças, que apenas você consegue notar.$(br2)Tudo que você aprender vai te trazer mais perto do seu destino final: Achar o que está esperando por você de baixo do chão impenetrável de Rocha-Mãe." + }, + { + "type": "patchouli:link", + "text": "Sem ideia de como progredir? Dê uma olhada nos seus progressos. Eles vão te dar varias dicas da próxima coisa a fazer.$(br2)$(br)Spectrum ainda está em desenvolvimento pesado. Se você achar um bug ou tiver uma sugestão, visite o Discord do Spectrum ou reporte no Github.$(br2)Se Divirta!$(br) - DaFuqs", + "url": "https://discord.com/invite/EXU9XFXT8a", + "link_text": "Discord do Spectrum" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/midnight_aberration.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/midnight_aberration.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/midnight_aberration.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/midnight_aberration.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/mysterious_locket.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/mysterious_locket.json new file mode 100644 index 0000000000..f79da70cbf --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/mysterious_locket.json @@ -0,0 +1,43 @@ +{ + "name": "A Mysterious Locket", + "icon": "spectrum:mysterious_locket", + "advancement": "spectrum:collect_mysterious_locket", + "category": "spectrum:general_category", + "sortnum": 15, + "extra_recipe_mappings": { + "spectrum:mysterious_locket": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "A Mysterious Locket", + "item": "spectrum:mysterious_locket", + "text": "This small locket is tight shut. It features an odd crystal ornament which almost resembles a lock, softly glowing a pale white color, a shimmer reminiscent of the moon.$(br)Who knows who this once belonged to and why it was left behind." + }, + { + "type": "patchouli:text", + "text": "There seems to be something inside. It also has an engraving on it's back, but if it even resembles a language it's none you have ever seem.$(br2)$bold)Want to know what's inside? Stay tuned for the next mod update soon(tm)" + }, + { + "type": "patchouli:text", + "title": "A Challenge?", + "advancement": "spectrum:lategame/learn_dreiton", + "text": "Now that you understand Dreiton tongue, it is easy for you to decipher the inscription on the back:$(br2)$(italic)Don't be silly Asteras - the moon can't glow, it can only reflect the sun's light." + }, + { + "type": "patchouli:image", + "title": "The Locket's Contents", + "advancement": "spectrum:open_mysterious_locket", + "images": [ + "spectrum:textures/gui/guidebook/locket.png" + ], + "border": true, + "text": "" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:open_mysterious_locket", + "text": "The locket also contained a small crystal, bearing a dimmer, yet much warmer glow than it's lock.$(br)While in the $(l:dimension/dimension)Deeper Down$(/l)it softly vibrates as you turn." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/onyx_shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/onyx_shards.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/onyx_shards.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/onyx_shards.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_cmy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_cmy.json new file mode 100644 index 0000000000..dd8cec7eed --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_cmy.json @@ -0,0 +1,44 @@ +{ + "name": "Melhoria CMY de Pedestal", + "icon": "spectrum:pedestal_all_basic", + "sortnum": 8, + "advancement": "spectrum:progression/unlock_cmy_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:build_basic_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_all_basic": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "Variante CMY", + "recipe": "spectrum:pedestal/tier1/pedestal_all_basic", + "text": "Aprimore seu $(l:general/pedestal)Pedestal de Pigmentos$() usando todos os fragmentos que você coletou na sua jornada." + }, + { + "type": "patchouli:text", + "title": "Estrutura de Pedestal", + "text": "Para pode usar as abilidades aprimoradas do $(l:general/pedestal)Pedestal de Pigmentos$() você vai precisar de uma estrutura para focar energia de pedra gema.$(br2)Você chama de $(br)$(bold)Foco Spectrum$()." + }, + { + "type": "patchouli:multiblock", + "name": "Foco Spectrum", + "multiblock_id": "spectrum:pedestal_simple_structure_check", + "enable_visualize": true, + "text": "Você pode trocar os blocos de basalto por calcita e escolher os blocos de pedra gema como quiser." + }, + { + "type": "patchouli:text", + "title": "Lista Cheque de Blocos", + "text": "$(li)1 Pedestal de Pigmentos$(li)4 Blocos de Pedra Gema Polidos$(li)4 Blocos Polidos Talhados$(li)4 Blocos Polidos Entalhados$(li)8 Pilares Polidos$(li)68 Blocos Polidos" + }, + { + "type": "patchouli:image", + "title": "Personalize!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_focus_customisation.png" + ], + "text": "Misture Basalto e Calcita para criar sua variaçã̀o pessoal!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_moonstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_moonstone.json new file mode 100644 index 0000000000..a13f0b030e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_moonstone.json @@ -0,0 +1,44 @@ +{ + "name": "Melhoria de Pedra da Lua de Pedestal", + "icon": "spectrum:pedestal_moonstone", + "sortnum": 13, + "advancement": "spectrum:lategame/spectrum_lategame", + "category": "spectrum:general_category", + "turnin": "spectrum:midgame/build_complex_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_moonstone": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "Variante de Pedra da Lua", + "recipe": "spectrum:pedestal/tier3/pedestal_moonstone", + "text": "Aprimore seu $(l:general/pedestal)Pedestal de Pigmentos$() usando os $(l:general/shards#moonstone)Fragmentos de Pedra da Lua$() que você coletou." + }, + { + "type": "patchouli:multiblock", + "name": "Palácio Spectrum", + "multiblock_id": "spectrum:pedestal_complex_structure_check", + "enable_visualize": true, + "text": "Você pode trocar os blocos de basalto por calcilta e também os blocos de ametista por qualquer outro bloco de pedra gema." + }, + { + "type": "patchouli:text", + "title": "Lista Cheque (Completa)", + "text": "$(li)1 Pedestal de Pigmentos$(li)4 Blocos Esculpidos com Ônix$(li)4 Blocos Polidos Entalhados$(li)8 Lâmpadas de Pedra Gema$(li)4 Blocos Esculpidos com Pedra Gema$(li)12 Blocos de Pedra Gema Polida$(li)16 Bl. Esculpidos com CMY$(li)28 Bl. Esculpidos com Pedra da Lua$(li)36 Pilares Polidos$(li)52 Blocos Ornamentais Polidos$(li)144 Blocos Polidos" + }, + { + "type": "patchouli:text", + "title": "Lista Cheque (Aprimoramento)", + "text": "$(li)4 Blocos Esculpidos com Ônix$(li)4 Blocos de Pedra Gema Polidos$(li)28 Bl. Esculpidos com Pedra da Lua$(li)36 Blocos Ornamentais Polidos" + }, + { + "type": "patchouli:image", + "title": "Personalize!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_complex_customisation.png" + ], + "text": "Misture os blocos para criar sua variação pessoal!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_onyx.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_onyx.json new file mode 100644 index 0000000000..1f2f981f6a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pedestal_upgrade_onyx.json @@ -0,0 +1,44 @@ +{ + "name": "Melhoria Ônix de Pedestal", + "icon": "spectrum:pedestal_onyx", + "sortnum": 11, + "advancement": "spectrum:create_onyx_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:midgame/build_advanced_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_onyx": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "Variante Ônix", + "recipe": "spectrum:pedestal/tier2/pedestal_onyx", + "text": "Aprimore seu $(l:general/pedestal)Pedestal de Pigmentos$() usando um dos seus $(l:general/shards#onyx)Fragmentos de Ônix$() para aumentar ainda mais seus poderes mágicos." + }, + { + "type": "patchouli:multiblock", + "name": "Templo Spectrum", + "multiblock_id": "spectrum:pedestal_advanced_structure_check", + "enable_visualize": true, + "text": "Você pode trocar os blocos de basalto por calcilta e também os blocos de ametista por qualquer outro bloco de pedra gema." + }, + { + "type": "patchouli:text", + "title": "Lista Cheque (Completa)", + "text": "$(li)1 Pedestal de Pigmentos$(li)8 Blocos de Pedra Gema Polidos$(li)8 Lâmpadas de Pedra Gema$(li)4 Blocos Polidos Talhados$(li)16 Blocos Esculpidos com Pedra Gema$(li)16 Blocos Ornamentais Polidos$(li)4 Blocos Polidos Entalhados$(li)36 Pilares Polidos$(li)160 Blocos Polidos" + }, + { + "type": "patchouli:text", + "title": "Lista Cheque (Aprimoramento)", + "text": "$(li)4 Blocos de Pedra Gema Polidos$(li)8 Lâmpadas de Pedra Gema$(li)16 Blocos Esculpidos com Pedra Gema$(li)16 Blocos Ornamentais Polidos$(li)28 Pilares Polidos$(li)92 Blocos Polidos" + }, + { + "type": "patchouli:image", + "title": "Personalize!", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_hall_customisation.png" + ], + "text": "Misture os blocos para criar sua variação pessoal!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pigment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pigment.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pigment.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/pigment.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/shards.json new file mode 100644 index 0000000000..8bb2c0f6b9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/shards.json @@ -0,0 +1,69 @@ +{ + "name": "Fragmentos de Pedra Gema", + "icon": "minecraft:amethyst_shard", + "sortnum": 1, + "category": "spectrum:general_category", + "turnin": "spectrum:collect_all_basic_shards", + "extra_recipe_mappings": { + "spectrum:topaz_shard": 0, + "minecraft:amethyst_shard": 0, + "spectrum:citrine_shard": 0, + "spectrum:onyx_shard": 0, + "spectrum:moonstone_shard": 0, + "spectrum:spectral_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Para começar a investigar Spectrum você primeiro tem que achar alguns fragmentos de Pedra Gema.$(br2)Cada tipo de pedra gema representa uma cor elemental e um tipo diferente de força natural." + }, + { + "type": "patchouli:spotlight", + "anchor": "topaz", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "title": "Fragmentos de Topázio", + "item": "spectrum:topaz_shard", + "text": "Fragmentos de Topázio são surpreendentemente pesados na sua mão. Frágeis de relance, esse pedra gema rapidamente se tornou um dos materias mais robustos que você conseguir - talvez apenas superado pelo diamante. Topázio é achado em geodos bem no topo de colinas íngremes e no topo de montanhas muito altas.$(br)O Topázio representa $(bold)$(c_cyan)MATÉRIA$()." + }, + { + "type": "patchouli:spotlight", + "anchor": "amethyst", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "title": "Fragmentos de Ametista", + "item": "minecraft:amethyst_shard", + "text": "A luz magenta refrata nessa pedra gema.$(br)Formada por eras nos geodos, essa pedra gema erradia temor. É um símbolo de permanência e achado nas camadas mais profunas o muno.$(br2)A Ametista representa $(bold)$(c_purple)TEMPO$()." + }, + { + "type": "patchouli:spotlight", + "anchor": "citrine", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "title": "Fragmentos de Citrino", + "item": "spectrum:citrine_shard", + "text": "Essa pedra gema amarela é achada perto do nível da superfície, one a luz o sol dissipa em calor.$(br2)Seu brilho amarelo vivo erradia $(bold)$(c_yellow)ENERGIA$() pura e é levemente quente ao toque a todo momento." + }, + { + "type": "patchouli:spotlight", + "anchor": "onyx", + "advancement": "spectrum:create_onyx_shard", + "title": "Fragmentos de Ônix", + "item": "spectrum:onyx_shard", + "text": "Ônix é quase um breu. Parece até que retiraria a luz do ambiente.$(br2)A Ônix, como uma combinação de energia, matéria, e tempo, serve como $(bold)$(c_black)reforço de foco e catalista$() para ferramentas e dispositívos mágicos." + }, + { + "type": "patchouli:spotlight", + "anchor": "moonstone", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "title": "Fragmentos de Pedra da Lua", + "item": "spectrum:moonstone_shard", + "text": "Seu brilho branco azulada te lembra da luz acalmante da lua em uma noite calma de verão. A tranquilidade que exala deixa uma marca calma, mas significante, como um gato dormindo - bálsamo para a alma, mas também um predador, sempre de guarda.$(br2)A Pedra da Lua encarna $(bold)$(c_white)magia pura$()." + }, + { + "type": "patchouli:spotlight", + "anchor": "spectral", + "advancement": "spectrum:lategame/create_spectral_shard", + "title": "Fragmentos Espectrais", + "item": "spectrum:spectral_shard", + "text": "Fragmentos Espectrais brilham em todas as cores do arco-íris." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/spectral_shard.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/spectral_shard.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/spectral_shard.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/general/spectral_shard.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/amethyst.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/amethyst.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/amethyst.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/amethyst.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/azurite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/azurite.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/azurite.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/azurite.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/citrine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/citrine.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/citrine.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/citrine.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/clover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/clover.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/clover.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/clover.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/fading.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/fading.json new file mode 100644 index 0000000000..4db5dae2f5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/fading.json @@ -0,0 +1,24 @@ +{ + "name": "Experiment #1", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:craft_bottle_of_fading", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:collect_vegetal", + "pages": [ + { + "type": "spectrum:hint", + "title": "Small Clue", + "completion_advancement": "spectrum:collect_vegetal", + "cost": "spectrum:shimmerstone_gem#16", + "text": "Fading, as a small and weak organism, can only process organic blocks placed next to it, while also taking quite a while." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:shimmerstone_gem#48", + "text": "Place organic blocks, like Leaves, Pumpkins or Melons next to it and wait a while. After some time the block will get consumed and replaced with a different looking Variant. Break those converted blocks to get a new Resource." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/failing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/failing.json new file mode 100644 index 0000000000..8f88fe9ddd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/failing.json @@ -0,0 +1,24 @@ +{ + "name": "Experiment #2", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/craft_bottle_of_failing", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:midgame/collect_neolith", + "pages": [ + { + "type": "spectrum:hint", + "title": "Small Clue", + "completion_advancement": "spectrum:midgame/collect_neolith", + "cost": "spectrum:stratine_fragments#8", + "text": "Just like Fading, they prefer a specific block placed next to them. This time a lot more strong, though. 'I hate mining this' strong, to be precise." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:stratine_fragments#24", + "text": "The preferred food is Obsidian. Watch out for their insatiable hunger, though. They will eat quite a lot, if given the chance..." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/mermaids_gems.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/mermaids_gems.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/mermaids_gems.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/mermaids_gems.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/paletur.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/paletur.json new file mode 100644 index 0000000000..282cc46181 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/paletur.json @@ -0,0 +1,24 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_paltaeria", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:lategame/collect_paltaeria", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:lategame/collect_paltaeria", + "cost": "spectrum:moonstone_shard#8", + "text": "There is a new turquoise ore found in the End." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:moonstone_shard#32", + "text": "This ore, that you are now able to perceive is generating at both the central island and the outer regions of the End. Catch it, before it is too late!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/quitoxic_reeds.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/quitoxic_reeds.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/quitoxic_reeds.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/resonating_ender.json new file mode 100644 index 0000000000..4ea82a2be6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/resonating_ender.json @@ -0,0 +1,24 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:get_radiating_ender", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:get_radiating_ender", + "cost": "minecraft:ender_pearl#4", + "text": "Not every block that an Enderman carries seems to be what is looks like at first glance." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:ender_pearl#12", + "text": "Some Endermen appear in the Overworld carrying Blocks that could very well be small relics of the End itself. You can get a hold of one by killing an Endermen while it carries what looks like Cobblestone. Endermen holding these blocks can also be found in the End, albeit more rarely." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/ruin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/ruin.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/ruin.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/ruin.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/ruins.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/ruins.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/ruins.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/ruins.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/shimmerstone.json new file mode 100644 index 0000000000..5a527868dc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/shimmerstone.json @@ -0,0 +1,24 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_shimmerstone", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:collect_shimmerstone", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:collect_shimmerstone", + "cost": "minecraft:copper_ingot#8", + "text": "There is a new Ore to be found in the Overworld at and above surface level." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:copper_ingot#24", + "text": "It generates in all biomes in the center and upper layers of the Overworld in large veins. Most often you can find it exposed in mountains." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/stargazing.json new file mode 100644 index 0000000000..2b6df1690e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/stargazing.json @@ -0,0 +1,24 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/unlock_shooting_stars", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:collect_star_fragment", + "pages": [ + { + "type": "spectrum:hint", + "title": "What to look for", + "completion_advancement": "spectrum:collect_star_fragment", + "cost": "spectrum:shimmerstone_gem#8", + "text": "Shooting Stars only show up at night. Having something ready to better see them in the darkness will surely help a lot. They show up with a noticeable particle trail." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:shimmerstone_gem#24", + "text": "Your best chances to see a Shooting Star are to search for it with Night Vision and a Spyglass equipped. If you see one crashing down on the earth try to trace its steps to find out where it landed. They shoot up particles like a beam." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/storm_stones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/storm_stones.json new file mode 100644 index 0000000000..6fffe37ea9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/storm_stones.json @@ -0,0 +1,24 @@ +{ + "name": "A new Resource", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_storm_stones", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:midgame/collect_storm_stone", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:midgame/collect_storm_stone", + "cost": "spectrum:neolith#8", + "text": "Thunderstorms are a powerful display of nature. There are tremendous energies playing." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "spectrum:neolith#24", + "text": "Sometimes you are able to find weird shards at places where lightning struck. There even is a way to focus Lightning at a specific position, to make gathering them even more efficient." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/stratine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/stratine.json new file mode 100644 index 0000000000..d3457bf7dd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/stratine.json @@ -0,0 +1,24 @@ +{ + "name": "A new Ore", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_stratine", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:midgame/collect_stratine", + "pages": [ + { + "type": "spectrum:hint", + "title": "Where to find", + "completion_advancement": "spectrum:midgame/collect_stratine", + "cost": "minecraft:quartz#16", + "text": "There is a new Ore found in the Nether." + }, + { + "type": "spectrum:hint", + "title": "Concise Instructions", + "cost": "minecraft:quartz#48", + "text": "It generates in the lower layers of the Nether in all biomes, below lava level." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/topaz.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/topaz.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/topaz.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/hints/topaz.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/artists_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/artists_palette.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/artists_palette.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/artists_palette.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/catkin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/catkin.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/catkin.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/catkin.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/color_picker.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/color_picker.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/color_picker.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/color_picker.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/crystal_apothecary.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/crystal_apothecary.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/crystal_apothecary.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/crystal_apothecary.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink_assortment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink_assortment.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink_assortment.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink_assortment.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink_duct.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink_duct.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink_duct.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink_duct.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink_flask.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink_flask.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/ink_flask.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/ink_flask.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/inkwell.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/inkwell.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/inkwell.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/inkwell.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/pigment_palette.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/pigment_palette.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/pigment_palette.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/spirit_sallow.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/spirit_sallow.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magic/spirit_sallow.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magic/spirit_sallow.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/bedrock_anvil.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/bedrock_anvil.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/bedrock_anvil.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/bedrock_anvil.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/black_hole_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/black_hole_chest.json new file mode 100644 index 0000000000..18715524ad --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/black_hole_chest.json @@ -0,0 +1,21 @@ +{ + "name": "Black Hole Chest", + "advancement": "spectrum:progression/unlock_black_hole_chest", + "icon": "spectrum:black_hole_chest", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:black_hole_chest": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)The problem with hoppers is that, on the one hand, they are not only slow, but also poorly suited for larger farms due to their non-existent range.$(br2)With a bit of application of blue pigment, all items in a large radius around the crate can easily be brought to safety." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/black_hole_chest", + "text": "Black Hole Chests have a radius of 12 blocks. You can disable them by placing a block on top. It offers filters to specify which items it should accept." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/compacting_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/compacting_chest.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/compacting_chest.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/compacting_chest.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/ender_dropper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/ender_dropper.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/ender_dropper.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/ender_dropper.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/ender_hopper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/ender_hopper.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/ender_hopper.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/ender_hopper.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/fabrication_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/fabrication_chest.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/fabrication_chest.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/fabrication_chest.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/glistering_melons.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/glistering_melons.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/glistering_melons.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/glistering_melons.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/lava_sponge.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/lava_sponge.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/lava_sponge.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/lava_sponge.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/liquid_crystal.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/liquid_crystal.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/liquid_crystal.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/liquid_crystal.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/midnight_solution.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/midnight_solution.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/midnight_solution.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/midnight_solution.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/mob_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/mob_blocks.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/mob_blocks.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/mob_blocks.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/mud.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/mud.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/mud.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/mud.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_brewing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_brewing.json new file mode 100644 index 0000000000..ac65d7833e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_brewing.json @@ -0,0 +1,74 @@ +{ + "name": "Potion Works.: Brewing", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "minecraft:potion": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Brewing Potions", + "text": "Since the Potion Workshop is basically an upgraded Brewing Stand, you are able to create all the Potion variants that were available to you before, too.$(br)In addition, the possibility to use magic items as ingredients opens new doors for you.$(br2)Some of them are easier or harder to get enhanced effects from." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Vanilla Potion Variants", + "recipe": "spectrum:potion_workshop_brewing/fire_resistance", + "text": "The process of creating Potions with the same effects that you could use before use the same ingredients. Unlike using the Brewing Stand, you can use $(l:magical_blocks/potion_workshop_reagents)Reagents$(/l) to enhance their effects even further." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Absorption", + "recipe": "spectrum:potion_workshop_brewing/absorption", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Glowing", + "recipe": "spectrum:potion_workshop_brewing/glowing", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Haste", + "recipe": "spectrum:potion_workshop_brewing/haste", + "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Mining Fatigue$() instead." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Saturation", + "recipe": "spectrum:potion_workshop_brewing/saturation", + "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Hunger$() instead." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Levitation", + "advancement": "spectrum:lategame/collect_paltaeria", + "recipe": "spectrum:potion_workshop_brewing/levitation", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Luck", + "recipe": "spectrum:potion_workshop_brewing/luck", + "advancement": "spectrum:collect_four_leaf_clover", + "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Bad Luck$() instead." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Resistance", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "recipe": "spectrum:potion_workshop_brewing/resistance", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Wither", + "advancement": "spectrum:midgame/craft_midnight_chip", + "recipe": "spectrum:potion_workshop_brewing/wither", + "text": "" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_crafting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_crafting.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_crafting.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_crafting.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_reagents.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_reagents.json new file mode 100644 index 0000000000..b85c4b0211 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/potion_workshop_reagents.json @@ -0,0 +1,166 @@ +{ + "name": "Potion Works.: Reagents", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "pages": [ + { + "type": "patchouli:text", + "title": "Using Reagents", + "text": "Using Mermaids Gems as a Base instead of Blaze Powder results in a much more reactive potion. Not only does this allow you to add your new range of additional magical ingredients to your Potions, but also use some of them as additional Reagent. Each of those Reagents modifies the resulting properties of your Potions. Each Reagent can only be used once per recipe." + }, + { + "type": "patchouli:spotlight", + "title": "Redstone", + "item": "minecraft:redstone", + "text": "Doubles Duration" + }, + { + "type": "patchouli:spotlight", + "title": "Glowstone", + "item": "minecraft:glowstone_dust", + "text": "Flat increase in Potency" + }, + { + "type": "patchouli:spotlight", + "title": "Gunpowder", + "item": "minecraft:gunpowder", + "text": "Creates Splash Potions" + }, + { + "type": "patchouli:spotlight", + "title": "Dragon's Breath", + "item": "minecraft:dragon_breath", + "advancement": "spectrum:hidden/collect_vanilla/collect_dragon_breath", + "text": "Creates Lingering Potions - also requires Gunpowder as reagent$(br2)Allows you to create Tipped Arrows, if you supply Arrows instead of Bottles" + }, + { + "type": "patchouli:spotlight", + "title": "Topaz", + "item": "spectrum:topaz_powder", + "text": "Makes Effects not show any particles" + }, + { + "type": "patchouli:spotlight", + "title": "Amethyst", + "item": "spectrum:amethyst_powder", + "text": "Adds a short flat bonus to the Potions Duration" + }, + { + "type": "patchouli:spotlight", + "title": "Citrine", + "item": "spectrum:citrine_powder", + "text": "Slight multiplicative Potency bonus" + }, + { + "type": "patchouli:spotlight", + "title": "Onyx", + "item": "spectrum:onyx_powder", + "text": "Adds a very weird taste and smell to the potion, making it unidentifiable.$(br)Also makes its color completely black." + }, + { + "type": "patchouli:spotlight", + "title": "Moonstone", + "item": "spectrum:moonstone_powder", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "text": "Changes all otherwise negative Effects to their positive ones" + }, + { + "type": "patchouli:spotlight", + "title": "Shimmerstone", + "item": "spectrum:shimmerstone_gem", + "text": "Tiny multiplicative bonus to both Duration and Potency" + }, + { + "type": "patchouli:spotlight", + "title": "Quitoxic Powder", + "item": "spectrum:quitoxic_powder", + "advancement": "spectrum:collect_quitoxic_reeds", + "text": "Increases Potency of all negative Effects by flat +2" + }, + { + "type": "patchouli:spotlight", + "title": "Stratine", + "item": "spectrum:stratine_fragments", + "advancement": "spectrum:midgame/collect_stratine", + "text": "Flat +1 bonus to all Effects Potencies, at the cost of adding a random negative Effect" + }, + { + "type": "patchouli:spotlight", + "title": "Paltaeria", + "item": "spectrum:paltaeria_fragments", + "advancement": "spectrum:lategame/collect_paltaeria", + "text": "Adds a random positive Effect" + }, + { + "type": "patchouli:spotlight", + "title": "Stardust", + "item": "spectrum:stardust", + "advancement": "spectrum:hidden/collect_stardust", + "text": "$(italic)Absorbs the last drops of what remains of your previous brew.$()$(br2)Small chance to add the main Effect of the Potion that was brewed previously" + }, + { + "type": "patchouli:spotlight", + "title": "Star Fragment", + "item": "spectrum:star_fragment", + "advancement": "spectrum:collect_star_fragment", + "text": "$(italic)Similar to Stardust, but much more potent.$()$(br2)Guaranteed chance to add the main Effect of the Potion that was brewed previously, at slightly decreased Potency" + }, + { + "type": "patchouli:spotlight", + "title": "Storm Stone", + "item": "spectrum:storm_stone", + "advancement": "spectrum:midgame/collect_storm_stone", + "text": "Increases the Potions Potency at the beginning, but wearing off fast over time" + }, + { + "type": "patchouli:spotlight", + "title": "Azurite", + "item": "spectrum:raw_azurite", + "advancement": "spectrum:midgame/collect_azurite", + "text": "Negates the duration penalty for Lingering Potions as well as for Tipped Arrows" + }, + { + "type": "patchouli:spotlight", + "title": "Clover", + "item": "spectrum:four_leaf_clover", + "advancement": "spectrum:collect_four_leaf_clover", + "text": "Provides a huge boost to a random stat" + }, + { + "type": "patchouli:spotlight", + "title": "Vegetal", + "item": "spectrum:vegetal", + "advancement": "spectrum:collect_vegetal", + "text": "Doubles the potions Duration at the cost of their Potency" + }, + { + "type": "patchouli:spotlight", + "title": "Neolith", + "item": "spectrum:neolith", + "advancement": "spectrum:midgame/collect_neolith", + "text": "Increases Yield, allowing you to brew an additional potion" + }, + { + "type": "patchouli:spotlight", + "title": "Midnight Chip", + "item": "spectrum:midnight_chip", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "Increases Potency and adds 30 seconds to the Duration, but drastically lowers Yield." + }, + { + "type": "patchouli:spotlight", + "title": "Moonstruck Nectar", + "item": "spectrum:moonstruck_nectar", + "advancement": "spectrum:midgame/harvest_moonstruck_nectar", + "text": "Makes the Potion much more smooth, resulting in it being way faster to drink. Might come in handy when every second is crucial." + }, + { + "type": "patchouli:spotlight", + "title": "Bedrock Dust", + "item": "spectrum:bedrock_dust", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "text": "Doubles the Potions Potency, at the cost of Duration" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/present.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/present.json new file mode 100644 index 0000000000..efc93d66e6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/present.json @@ -0,0 +1,31 @@ +{ + "name": "Present", + "advancement": "spectrum:progression/unlock_present", + "icon": "spectrum:present", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:present": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The people around you have already helped you in one or the other dicey situation. It's time to give something back. The bit of little $(l:resources/shimmerstone)Shimmerstone$(/l) allows you to explode the package in a colorful shower of particles.$(br2)(Or, you know, you can always gift your future self!)" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/present", + "text": "Click the Present onto the items you want to gift.$(br)Then all you have to do is place it down for the recipient to open it and watch them jump of joy." + }, + { + "type": "patchouli:crafting", + "recipe": "spectrum:crafting_table/special/wrap_present", + "title": "Wrapping", + "text": "Place a filled Present in a crafting grid to wrap it.$(br2)You can additionally add:$(li)$(l:general/pigment)Pigments$() for a colorful particle shower in those pigments colors." + }, + { + "type": "patchouli:text", + "text": "$(li)Special ingredients to choose from a variety of wrapping papers:$(li2)Red Dye: Red$(li2)Blue Dye: Blue$(li2)Cyan Dye: Cyan$(li2)Green Dye: Green$(li2)Purple Dye: Purple$(li2)Cake: Cake$(li2)Flower: Stripes$(li2)Firework Star: Starry$(li2)Sapling: Winter$(li2)Spore Blossom: Rainbow" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/private_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/private_chest.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/private_chest.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/private_chest.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/semi_permeable_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/semi_permeable_glass.json new file mode 100644 index 0000000000..9dc564cbb0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/semi_permeable_glass.json @@ -0,0 +1,37 @@ +{ + "name": "Semi-permeable Glass", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "icon": "spectrum:amethyst_semi_permeable_glass", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:vanilla_semi_permeable_glass": 0, + "spectrum:tinted_semi_permeable_glass": 0, + "spectrum:glowing_semi_permeable_glass": 0, + "spectrum:topaz_semi_permeable_glass": 0, + "spectrum:amethyst_semi_permeable_glass": 0, + "spectrum:citrine_semi_permeable_glass": 0, + "spectrum:onyx_semi_permeable_glass": 0, + "spectrum:moonstone_semi_permeable_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Semi-permeable Glass", + "item": "spectrum:amethyst_semi_permeable_glass", + "text": "$(italic)For a long time now, those annoying monsters that always appear at night are no longer a threat to you and only serve as a resource supplier, if at all. But that doesn't stop them from pursuing you further.$(br)You spend more time keeping those pesky monsters out of your base than you care to admit.$()" + }, + { + "type": "patchouli:text", + "text": "$(italic)Then you remember the gemstone glass recipe you thought up earlier.$(br2)With a bit of magical energy, it should be no problem to make it not only transparent for you, but also passable (not for them!).$(br2)Bonus: If you make it look exactly like regular glass you might even be able to fool your competition.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/player_only_glass/amethyst_semi_permeable_glass" + }, + { + "type": "patchouli:text", + "text": "Semi-permeable Glass comes in all gemstone colors, common, tinted and glowing variants.$(br2)It looks exactly like its $(l:decoration/gemstone_glass)mundane counterpart$(), but has the special property that players can pass through it without problems, while all other creatures will bounce off it like a fly off a window." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/titration_barrel.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/titration_barrel.json new file mode 100644 index 0000000000..0510765ce1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/titration_barrel.json @@ -0,0 +1,63 @@ +{ + "name": "Titration Barrel", + "icon": "spectrum:titration_barrel", + "advancement": "spectrum:progression/unlock_titration_barrel", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:titration_barrel": 0, + "spectrum:kimchi": 0, + "spectrum:clotted_cream": 0, + "spectrum:fresh_chocolate": 0, + "spectrum:hot_chocolate": 0, + "spectrum:bodacious_berry_bar": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The idea of fermenting $(l:magical_blocks/titration_barrel#kimchi)food$(/l) and $(l:magical_items/infused_beverages)drinks$(/l) in $(l:general/colored_trees#colored_wood)Colored Wood$(/l) was not far away. Over time, the properties of the wood influences contents.$(br)The results are sometimes more, sometimes less delicious, but always interesting. (On the other hand, the last could of course also be due to your cooking skills)$(br)Holds up to a stack of items and 1 bucket of liquid." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/titration_barrel", + "text": "$(italic)When you blink and it felt like the world stopped existing? Each time that happens, the barrel fermentation process seems to have advanced." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Kimchi", + "anchor": "kimchi", + "recipe": "spectrum:titration_barrel/kimchi", + "text": "Fermentation is not for drinks alone! Made from 3 different vegetables, Kimchi is a hearty dish, best served as a side." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Clotted Cream", + "anchor": "clotted_cream", + "recipe": "spectrum:titration_barrel/clotted_cream", + "text": "Slightly fermented, it still keeps the properties of $(thing)Milk$(). Eating will remove currently active Status Effects." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Fresh Chocolate", + "anchor": "fresh_chocolate", + "recipe": "spectrum:titration_barrel/fresh_chocolate", + "text": "A great snack. Biting off a piece is quick and even makes you reasonably full.$(br)Pleasantly sweet and fruity." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Bodacious Berry Bar", + "advancement": "spectrum:progression/unlock_bodacious_berry_bar", + "anchor": "bodacious_berry_bar", + "recipe": "spectrum:pedestal/tier2/food/bodacious_berry_bar", + "text": "A elaborate to create feast of flavor that guarantees to make your mouth water." + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "Hot Chocolate", + "advancement": "spectrum:progression/unlock_potion_workshop", + "anchor": "hot_chocolate", + "recipe": "spectrum:potion_workshop_crafting/hot_chocolate", + "text": "Perfect to come to the calm and in the cold season." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/universe_spyhole.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/universe_spyhole.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/universe_spyhole.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/universe_spyhole.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_efficiency.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_efficiency.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_efficiency.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_efficiency.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_experience.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_experience.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_experience.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_experience.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_speed.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_speed.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_speed.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_speed.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_yield.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_yield.json new file mode 100644 index 0000000000..b344e30bb4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_blocks/upgrade_yield.json @@ -0,0 +1,29 @@ +{ + "name": "Production Surge", + "advancement": "spectrum:lategame/collect_paltaeria", + "icon": "spectrum:upgrade_yield", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:upgrade_yield": 0, + "spectrum:upgrade_yield2": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "This upgrade is an interesting one. Although the chance is very small, you can increase the amount of your crafting results.$(br2)$(italic)More bang for your buck!" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/upgrade_yield", + "text": "Place on top your $(l:general/pedestal)Pigment Pedestals$(/l) Gemstone Blocks or the Chiseled Blocks of your $(l:general/fusion_shrine)Fusion Shrine$(/l). Additional ones have a decreased effect." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_yield2", + "title": "Tier 2", + "recipe": "spectrum:pedestal/tier4/upgrade_yield2", + "text": "This upgraded version is much more potent, allowing you to get even more output for your crafting." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ashen_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/ashen_circlet.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ashen_circlet.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/ashen_circlet.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/azure_dike_equipment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/azure_dike_equipment.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/azure_dike_equipment.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/azure_dike_equipment.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bag_of_holding.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bag_of_holding.json new file mode 100644 index 0000000000..81b62abd71 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bag_of_holding.json @@ -0,0 +1,23 @@ +{ + "name": "Bag of Holding", + "advancement": "spectrum:progression/unlock_bag_of_holding", + "icon": "spectrum:bag_of_holding", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bag_of_holding": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Bag of Holding", + "item": "spectrum:bag_of_holding", + "text": "$(italic)Placing an Ender Chest, opening it, and mining it with an enchanted pickaxe is not what you think of as fun.$(br)That's why you invented this thing." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/bag_of_holding", + "text": "Just open it and the contents of your Ender Chest are right there." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/base_trinkets.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/base_trinkets.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/base_trinkets.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/base_trinkets.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/bedrock_armor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bedrock_armor.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/bedrock_armor.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bedrock_armor.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/bedrock_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bedrock_tools.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/bedrock_tools.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bedrock_tools.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/block_flooder.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/block_flooder.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/block_flooder.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/block_flooder.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/blood_orchid_products.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/blood_orchid_products.json new file mode 100644 index 0000000000..7a2c28fd98 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/blood_orchid_products.json @@ -0,0 +1,48 @@ +{ + "name": "Blood Orchid Products", + "icon": "spectrum:bloodboil_syrup", + "advancement": "spectrum:midgame/collect_blood_orchid_petal", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bloodboil_syrup": 0, + "spectrum:demon_tea": 0, + "spectrum:demon_trifle": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "name": "Blood Orchid Products", + "item": "spectrum:bloodboil_syrup", + "text": "Extracts of the $(l:resources:blood_orchid)Blood Orchid$(/l) have an intense effect when consumed: they may to put you into $(thing)Frenzy$().$(br)Damage, attack speed, speed and knockback resistance are buffed the more you kill. But if you do not score a kill all 15 seconds you get debuffs instead. The higher the effects level, the higher the amplitude." + }, + { + "type": "patchouli:text", + "title": "Frenzy Stacking", + "text": "Instead of resetting the duration, applying another $(thing)Frenzy$() effect will increase it's potency instead.$(br2)To get the most out of the effect getting one with long duration first and then stacking up on that seems to be most effective." + }, + { + "type": "spectrum:potion_workshop_crafting", + "recipe": "spectrum:potion_workshop_crafting/bloodboil_syrup", + "text": "It's active ingredients can be extracted from a petal into a thick solution. While it almost smells like Rose Water, it's effect when drunk is definitely... $(italic)a little more effervescent$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_demon_trifle", + "recipe": "spectrum:pedestal/tier3/food/demon_trifle", + "text": "The $(thing)Frenzy$() effect you may get is starts out low, but lasts a bit longer." + }, + { + "type": "spectrum:potion_workshop_crafting", + "advancement": "spectrum:progression/unlock_demon_tea", + "recipe": "spectrum:potion_workshop_crafting/demon_tea", + "text": "The $(thing)Frenzy$() effect you may get is relatively short, but starts out quite high." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_rabbit_poison", + "title": "Rabbit Poison", + "recipe": "spectrum:titration_barrel/infused_beverages/rabbit_poison", + "text": "A truly nasty brew. Tastes like you would imagine and the effects are similar." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bottomless_bundle.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bottomless_bundle.json new file mode 100644 index 0000000000..3647b1a18e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/bottomless_bundle.json @@ -0,0 +1,49 @@ +{ + "name": "Bottomless Bundle", + "advancement": "spectrum:progression/unlock_bottomless_bundle", + "icon": "spectrum:bottomless_bundle", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bottomless_bundle": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottomless_bundle", + "text": "$(italic)On your journeys through the underground you collect a whole lot of identical blocks, which you will never need again. But they are too good to throw away, you think.$(br2)Time to develop a storage solution that takes care of your little homemade problem.$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/bottomless_bundle", + "text": "The Bottomless Bundle stores a virtually unlimited number of items, but of only one type.$(br)Right click it on stacks or empty slots in your inventory to fill/empty it" + }, + { + "type": "patchouli:image", + "title": "Automation", + "images": [ + "spectrum:textures/gui/guidebook/bottomless_bundle_automation.png" + ], + "text": "Crouching places it down, making it able to be automatically filled / emptied." + }, + { + "type": "patchouli:text", + "title": "", + "text": "$(br)A placed Bundle will always remember the last item you put into it.$(br)Even if it is emptied it will only accept new items that it was holding before, making it also usable as a filter.$(br2)$(italic)Note: If it was placed empty it will accept the first item pumped into it and get locked to that.$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Enchanting - Power", + "item": "spectrum:bottomless_bundle{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "Enchanting a Bottomless Bundle with Power by using the $(l:enchanting/enchanting_items)Enchanter$(/l) you can increase its capacity tenfold for each level of Power.$(br2)$(italic)Are you able to fill a Bottomless Bundle with Power V?" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Curse of the Void", + "item": "spectrum:bottomless_bundle{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "text": "Enchanting a Bottomless Bundle with Curse of the Void by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will result in voiding all items that would overfill the Bottomless Bundle.$(br2)$(italic)No more useless blocks cluttering your path when mining." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/celestial_pocketwatch.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/celestial_pocketwatch.json new file mode 100644 index 0000000000..05129ed944 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/celestial_pocketwatch.json @@ -0,0 +1,21 @@ +{ + "name": "Celestial Pocketwatch", + "advancement": "spectrum:progression/unlock_celestial_pocketwatch", + "icon": "spectrum:celestial_pocketwatch", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:celestial_pocketwatch": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The problem with Onyx Shards is that the creation is bound to very tight conditions. New moon is simply not every day. Every time you look at the clock, coincidentally, the time window has passed for two minutes.$(br)Time to unpack the big guns: Magenta's affinity for time." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/celestial_pocketwatch", + "text": "$(italic)What a stellar idea of yours" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/constructors_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/constructors_staff.json new file mode 100644 index 0000000000..06a57a890d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/constructors_staff.json @@ -0,0 +1,21 @@ +{ + "name": "Constructors' Staff", + "advancement": "spectrum:progression/unlock_constructors_staff", + "icon": "spectrum:constructors_staff", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:constructors_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You always spend a lot of time placing blocks. You could almost think that this is the main reason for your existence. Placing a lot of similar blocks is tedious.$(br2)Or more like: $(italic)Was$() tedious." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/constructors_staff", + "text": "Crouch-Click to get a selection of all available placement modi." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/crafting_tablet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/crafting_tablet.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/crafting_tablet.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/crafting_tablet.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/crescent_clock.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/crescent_clock.json new file mode 100644 index 0000000000..f7d69a68f9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/crescent_clock.json @@ -0,0 +1,21 @@ +{ + "name": "Crescent Clock", + "advancement": "spectrum:progression/unlock_crescent_clock", + "icon": "spectrum:crescent_clock", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:crescent_clock": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "There seems to be something magical about the flow of time.$(br)This clock, formed from witnesses of time, is to show you a way in this never-ending stream of beginning and passing." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/crescent_clock", + "text": "$(italic)If we shadows have offended, Know but this and all is mended.$(br)That you have but slumbered here, While these visions did appear.$(br)And this weak and idle theme, No more yielding, but a dream." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/enchantment_canvas.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/enchantment_canvas.json new file mode 100644 index 0000000000..2715804142 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/enchantment_canvas.json @@ -0,0 +1,21 @@ +{ + "name": "Enchantment Canvas", + "advancement": "spectrum:progression/unlock_enchantment_canvas", + "icon": "spectrum:enchantment_canvas", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:enchantment_canvas": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Your pickaxe, which was sinfully expensive to enchant? Almost broken and each additional broken block hurts your nerves more than the tool itself.$(br)May the tool not be able to be rescued, at least the Enchantments will! This canvas can not only capture color: Used on a tool, the enchantments are exchanged." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/enchantment_canvas", + "text": "Once used, an image of the item you used it on will be drawn on the canvas, never be removed again, binding it to this type of item." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ender_splice.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/ender_splice.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ender_splice.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/ender_splice.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/exchanging_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/exchanging_staff.json new file mode 100644 index 0000000000..3d2c923a54 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/exchanging_staff.json @@ -0,0 +1,35 @@ +{ + "name": "Exchanging Staff", + "advancement": "spectrum:progression/unlock_exchanging_staff", + "icon": "spectrum:exchanging_staff", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:exchanging_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "For all those who don't live in a simple cobblestone house, or don't have walls at all - of course you don't feel addressed - you have thought up the Exchanging Staff.$(br2)Mining has just gotten a whole bunch more fun." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier4/exchanging_staff", + "text": "Crouch-Click to get a selection of all available placement modi." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Enchanting - Fortune", + "item": "spectrum:exchanging_staff{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", + "text": "Enchanting an Exchanging Staff with Fortune by using the $(l:enchanting/enchanting_items)Enchanter$(/l) allows it to multiply Ore drops when exchanging similar to using a common Fortune tool." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Silk Touch", + "item": "spectrum:exchanging_staff{Enchantments: [{id: \"spectrum:silk_touch\", lvl: 1s}]}", + "text": "Enchanting an Exchanging Staff with Silk Touch by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will give it the power to exchange blocks exactly how they appear in the world, without breaking the more fragile blocks, like Glass or Ores." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/freigeist.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/freigeist.json new file mode 100644 index 0000000000..310055f206 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/freigeist.json @@ -0,0 +1,20 @@ +{ + "name": "Freigeist", + "icon": "spectrum:freigeist", + "advancement": "spectrum:progression/unlock_freigeist", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:freigeist": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "As the first drop touched your lips, it already filled your body with immense might. Just the memory of it makes your hand $(italic)tremble$() of tension. That's no good.$(br)And yet you have never felt more powerful and alive than you did at this very moment.$(br)However, is it really worth emptying that vial? Should you die against all odds, the price will be immense." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "recipe": "spectrum:titration_barrel/freigeist", + "text": "$(br)$(italic)Caress the one,$(br) the never-fading$(br)Rain in your heart,$(br) the tears of$(br) snow-white sorrow$(br)Caress the one,$(br) the hiding amaranth$(br)In a land of the daybreak" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/gemstone_armor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/gemstone_armor.json new file mode 100644 index 0000000000..5de497496f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/gemstone_armor.json @@ -0,0 +1,46 @@ +{ + "name": "Gemstone Armor", + "advancement": "spectrum:progression/unlock_gemstone_armor_category", + "icon": "spectrum:ferocious_chestplate", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:fetchling_helmet": 0, + "spectrum:ferocious_chestplate": 0, + "spectrum:sylph_leggings": 0, + "spectrum:oread_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "You had more than enough time to develop your own individual fighting style.$(br)To best support this style, you've designed a range of matching gear out of interesting materials.$(br2)Disadvantage: The shards used in the production are kind of brittle. Therefore, this equipment has a comparatively low durability." + }, + { + "type": "patchouli:text", + "text": "To take advantage of their unique abilities you will need some special materials.$(br2)$(bold)Helmet:$() When nothingness meets hell$(br2)$(bold)Chestplate:$() The golden Ratio$(br2)$(bold)Leggings:$() The source of nightmares$(br2)$(bold)Boots:$() Mourning of the Nether$(br2)They can be repaired in Anvils by using $(l:general/gemstone_shards)Gemstone Shards$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/fetchling_helmet", + "text": "Gives attackers Weakness and Slowness when they hit you, letting you slip through their claws like a shadow." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/ferocious_chestplate", + "text": "Grants Absorption and Instant Health when you get hit, making you a formidable close combat fighter." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/sylph_leggings", + "text": "Gives a short burst of Speed and Invisibility when you get hit, giving you an opportunity to retreat. Perfect for ranged combat." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear", + "recipe": "spectrum:pedestal/tier2/gemstone_armor/oread_boots", + "text": "Gives you a short burst of Resistance and Regeneration on hit, making you a massive wall for a short duration." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gleaming_pin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/gleaming_pin.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gleaming_pin.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/gleaming_pin.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/glistering_jelly_tea.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/glistering_jelly_tea.json new file mode 100644 index 0000000000..e331e4dbe9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/glistering_jelly_tea.json @@ -0,0 +1,21 @@ +{ + "name": "Glistering Jelly Tea", + "advancement": "spectrum:progression/unlock_glistering_jelly_tea", + "icon": "spectrum:glistering_jelly_tea", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:glistering_jelly_tea": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The Jade Vine is known for it's regenerative properties, as well as Glistering Melons.As it happens, mixed together unfolds exquisitely harmonious, sweet taste.$(br2)Temporarily grants you a small health boost." + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "Workshop Recipe", + "recipe": "spectrum:potion_workshop_crafting/glistering_jelly_tea", + "text": "$(italic)Don't even think about drinking that with milk!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/glow_vision_goggles.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/glow_vision_goggles.json new file mode 100644 index 0000000000..20a9f8de28 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/glow_vision_goggles.json @@ -0,0 +1,22 @@ +{ + "name": "Glow Vision Goggles", + "advancement": "spectrum:progression/unlock_glow_vision_goggles", + "icon": "spectrum:glow_vision_goggles", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:glow_vision_goggles": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:glow_vision_goggles", + "text": "$(italic)What makes Glow Squids so special is them lighting your way in the darkness of the caves. As beautiful as they are, they seem to wash ashore far too often and meet their sad end there.$(br)You honor their clumsy glowing legacy by designing glasses that can continue guiding you in the darkness of the caves." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/glow_vision_goggles", + "text": "If you are in a dark area and have Glow Ink Sacs on you, the Glow Vision Goggles grant you the Night Vision effect." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/greater_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/greater_potion_pendant.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/greater_potion_pendant.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/greater_potion_pendant.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/incandescent_amalgam.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/incandescent_amalgam.json new file mode 100644 index 0000000000..020ef8582f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/incandescent_amalgam.json @@ -0,0 +1,37 @@ +{ + "name": "Incandescent Amalgam", + "advancement": "spectrum:progression/unlock_incandescent_amalgam", + "icon": "spectrum:incandescent_amalgam", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:incandescent_amalgam": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "The sun on the palm of your hand sounded far better in theory. $(br2)Now that it sits there... well, it burns. The simple fact that it exists is almost a miracle - really, it should have exploded in the barrel - an unstable, simmering amalgam of ethanol blended with a cocktail of accelerants that hates existing." + }, + { + "type": "patchouli:text", + "text": "A single wrong move could easily cause it to detonate, taking everything nearby with it including yourself. And yet, for all those reasons and yet more, the soft, warm glow of the gel elicits endless curiosity, all things are drawn to the flame. There is no question that what is effectively a high yield magical explosive bears endless potential. All you need is a little care, a small mountain of it, and a hint of reckless abandon." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Titration Snythesis", + "recipe": "spectrum:titration_barrel/incandescent_amalgam", + "text": "$(italic)my very own sun...$()$(br2)The longer the synthesis goes on, the higher the yield... you really can't blame the angels for not wanting a cut of this." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Pure Synthesis", + "recipe": "spectrum:titration_barrel/pure_incandescent_amalgam", + "text": "$(italic)...so grossly incandescent!$()$(br2)" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Distillation", + "recipe": "spectrum:titration_barrel/fast_pure_alcohol", + "text": "The pristine burn of the amalgam makes it uniquely suited for pure alcohol distillation" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/infused_beverages.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/infused_beverages.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/infused_beverages.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/infused_beverages.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/jade_wine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/jade_wine.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/jade_wine.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/jade_wine.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/jeopardant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/jeopardant.json new file mode 100644 index 0000000000..3ad1487daa --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/jeopardant.json @@ -0,0 +1,21 @@ +{ + "name": "Jeopardant", + "advancement": "spectrum:progression/unlock_jeopardant", + "icon": "spectrum:jeopardant", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jeopardant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Adrenaline does not have to be the only thing racing through your veins in state of emergency.$(br)With every heart lost, the $(l:resources/stratine)Stratine Gem$() in this ring shines brighter and brighter, pulsating in the same rhythm as your racing heart - granting you an exponential damage boost." + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/jeopardant", + "text": "$(italic)Tell me what you think about your situation$(br)Complication, aggravation" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/knowledge_gem.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/knowledge_gem.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/knowledge_gem.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/knowledge_gem.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lagoon_rod.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lagoon_rod.json new file mode 100644 index 0000000000..ac32153a33 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lagoon_rod.json @@ -0,0 +1,22 @@ +{ + "name": "Lagoon Rod", + "advancement": "spectrum:progression/unlock_lagoon_rod", + "secret": true, + "icon": "spectrum:lagoon_rod", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:lagoon_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "On quiet days on your patio, you could observe that the Mermaids Gems have a very special attraction to marine life. Add to that that they naturally float on water you used one as bobber.$(br2)And lo and behold, not only does it increase your success, but it also has quite a few other interesting side effects...." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/tools/lagoon_rod", + "text": "$(italic)You wonder what you can bring to the surface?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/lesser_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lesser_potion_pendant.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/lesser_potion_pendant.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lesser_potion_pendant.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lucky_roll.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lucky_roll.json new file mode 100644 index 0000000000..1d8a7c98ef --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/lucky_roll.json @@ -0,0 +1,21 @@ +{ + "name": "Lucky Roll", + "advancement": "spectrum:progression/unlock_lucky_roll", + "icon": "spectrum:lucky_roll", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:lucky_roll": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Are you going to become a pastry chef after all, in addition to your main job as an artist? These don't even look that bad (taste good too!).$(br2)Composed of $(l:resources/amaranth)Amaranth$(/l), $(thing)Sugar$(), $(thing)Milk$(), and a $(l:resources/clover)Four-Leaf Clover$(), it has a very special effect: you noticed that you were a little bit more successful handling tools with Fortune, Looting and other random-based things." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/lucky_roll", + "text": "$(italic)Lucky Roll, get it???" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/molten_rod.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/molten_rod.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/molten_rod.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/molten_rod.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/moonshine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/moonshine.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/moonshine.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/moonshine.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/multitool.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/multitool.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/multitool.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/multitool.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/natures_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/natures_staff.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/natures_staff.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/natures_staff.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/neat_ring.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/neat_ring.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/neat_ring.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/neat_ring.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/perturbed_eye.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/perturbed_eye.json new file mode 100644 index 0000000000..b9818dab6a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/perturbed_eye.json @@ -0,0 +1,59 @@ +{ + "name": "End Portal Relocation", + "advancement": "spectrum:progression/unlock_perturbed_eye", + "icon": "minecraft:end_portal_frame", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:perturbed_eye": 0, + "spectrum:cracked_end_portal_frame": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Every time you want to enter the realm of the Endermen you have to travel half a world. Whoever created the portals to the End... you're so much more powerful than they are now.$(br2)Well, almost. You haven't yet figured out how to create such portals yourself, but pack them up and take them home? No problem." + }, + { + "type": "patchouli:image", + "title": "End Portal Relocation", + "images": [ + "spectrum:textures/gui/guidebook/end_portal.png" + ], + "border": true, + "text": "The end portal, like found in strongholds." + }, + { + "type": "patchouli:spotlight", + "title": "Pedestal Recipe", + "item": "spectrum:perturbed_eye", + "text": "These modified Eye of Ender harbor extremely destructive potential. They need to be, to be able to manipulate the extremely robust portal frame.$(br)When used in an End Portal base, you should keep your distance quickly." + }, + { + "type": "patchouli:multiblock", + "name": "Reconstructed End Portal", + "multiblock": { + "pattern": [ + [ + " HHH ", + "VPPPV", + "VPPPV", + "VPPPV", + " HHH ", + " 0 " + ] + ], + "mapping": { + "H": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=false]", + "V": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=true]", + "P": "minecraft:end_portal" + }, + "offset": [ + 0, + 3, + 0 + ], + "symmetrical": false + }, + "text": "You just put the portal back together the way it was initially, add Ender Pearls, done!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/pigment_palette.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/pigment_palette.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/pigment_palette.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/preenchanted_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/preenchanted_tools.json new file mode 100644 index 0000000000..e953317148 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/preenchanted_tools.json @@ -0,0 +1,58 @@ +{ + "name": "Preenchanted Tools", + "advancement": "spectrum:progression/tools/unlock_any_preenchanted_tool", + "icon": "spectrum:lucky_pickaxe", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:tender_pickaxe": 0, + "spectrum:lucky_pickaxe": 0, + "spectrum:razor_falchion": 0, + "spectrum:oblivion_pickaxe": 0, + "spectrum:resonant_pickaxe": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "That stupid obsidian desk is very stubborn when it comes to giving you the enchantments you seek.$(br)Besides, you'd either have to slaughter a whole herd of cows or rob the books of a dozen villages (no wonder the inhabitants there are so dumb and all too happy to be eaten by zombies)." + }, + { + "type": "patchouli:text", + "text": "The advantage of knowing exactly what you want gives you the ability to shape your tools so that they inherently possess those qualities. The magic of colors makes it possible.$(br)Unfortunately, these features make these tools very fragile for the most part." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_tender_pickaxe", + "recipe": "spectrum:pedestal/tier1/tools/tender_pickaxe", + "text": "The ends of this pickaxe are studded with Topaz to cut even the most delicate material from stone.$(br)The Tender Pickaxe comes pre-enchanted with $(c_cyan)$(bold)Silk Touch$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_lucky_pickaxe", + "recipe": "spectrum:pedestal/tier1/tools/lucky_pickaxe", + "text": "Infused with the power of $(c_yellow)energy$(), it allows you to carve out every last bit of ore from every vein. The Lucky Pickaxe comes pre-enchanted with $(c_yellow)$(bold)Fortune III$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_razor_falchion", + "recipe": "spectrum:pedestal/tier1/tools/razor_falchion", + "text": "The short, razor-sharp blade makes this item a deadly weapon - but at the cost of durability.$(br)The Razor Falchion comes pre-enchanted with $(c_magenta)$(bold)Looting III$()." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/tools/unlock_oblivion_pickaxe", + "recipe": "spectrum:pedestal/tier2/oblivion_pickaxe", + "text": "As an outsider in the group, the Oblivion Pickaxe has a large amount of durability and mining speed. However, all mined blocks $(l:enchanting/curse_of_the_void)are destroyed$()." + }, + { + "type": "patchouli:text", + "title": "Resonant Pickaxe", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "text": "This bright blue pickaxe matches its own gentle inherent vibration to that of its surroundings. This allows you to keep blocks intact that would otherwise be irreparably destroyed by force.$(br)The Resonant Pickaxe comes pre-enchanted with $(l:enchanting/resonance)Resonance$(/l)." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier4/resonant_pickaxe", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/puff_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/puff_circlet.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/puff_circlet.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/puff_circlet.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/radiance_pin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/radiance_pin.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/radiance_pin.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/radiance_pin.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/radiance_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/radiance_staff.json new file mode 100644 index 0000000000..82568511cf --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/radiance_staff.json @@ -0,0 +1,28 @@ +{ + "name": "Radiance Staff", + "advancement": "spectrum:progression/unlock_radiance_staff", + "icon": "spectrum:radiance_staff", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:radiance_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Torches have one crucial weakness: you can only place them when you're already standing in the dark. In contrast the Radiance Staff can place lights far away and in the air, illuminating large caverns at a distance.$(br)As a final goodie, these lights are invisible, making them great for illuminating your structures atmospherically." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/radiance_staff", + "text": "Right click placed lights with the staff to adjust the emitted light level.$(br)They can even be summoned under water." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "Enchanting - Infinity", + "item": "spectrum:radiance_staff{Enchantments: [{id: \"minecraft:infinity\", lvl: 1s}]}", + "text": "Enchanting the Radiance Staff with Infinity by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will completely remove the need for Shimmerstone." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/reprise.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/reprise.json new file mode 100644 index 0000000000..9bdb5fc75e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/reprise.json @@ -0,0 +1,21 @@ +{ + "name": "Reprise", + "advancement": "spectrum:progression/unlock_reprise", + "icon": "spectrum:reprise", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:reprise": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "This beverage, brewed from Chorus Fruit, takes over - and amplifies - not only the special taste, but also the unique property of the plant.$(br2)When ingested, this drink randomly teleports you over great distances. The higher the alcohol content, the further." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Titration Recipe", + "recipe": "spectrum:titration_barrel/reprise", + "text": "$(italic)What does it taste like? Most likely still like raspberry? But there are none in it at all. Strange." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/restoration_tea.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/restoration_tea.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/restoration_tea.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/restoration_tea.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/rock_candy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/rock_candy.json new file mode 100644 index 0000000000..3c433f7214 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/rock_candy.json @@ -0,0 +1,48 @@ +{ + "name": "Rock Candy", + "advancement": "spectrum:progression/unlock_rock_candy", + "icon": "spectrum:rock_candy", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:sugar_stick": 0, + "spectrum:topaz_sugar_stick": 0, + "spectrum:amethyst_sugar_stick": 0, + "spectrum:citrine_sugar_stick": 0, + "spectrum:onyx_sugar_stick": 0, + "spectrum:moonstone_sugar_stick": 0, + + "spectrum:rock_candy": 0, + "spectrum:topaz_rock_candy": 0, + "spectrum:amethyst_rock_candy": 0, + "spectrum:citrine_rock_candy": 0, + "spectrum:onyx_rock_candy": 0, + "spectrum:moonstone_rock_candy": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "A stick with sugar on it.$(br2)...wait wait wait, there's more to it!$(br)If you place this stick so that its underside is immersed in $(l:magical_items/liquid_crystal)Liquid Crystal$(/l), you just have to slowly dissolve more sugar in the liquid until the stick turns into a sweet-crunchy candy stick." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier3/food/sugar_stick", + "text": "You might even be able to add more stuff than just plain Sugar when immersed? Liquid $(italic)Crystal$() and all that..." + }, + { + "type": "patchouli:image", + "title": "Growing Rock Candy", + "images": [ + "spectrum:textures/gui/guidebook/rock_candy_growing.png" + ], + "text": "$(thing)Silk Touch$() keeps their size for use as fancy lights, or just for storage." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:topaz_rock_candy", + "title": "Gemstone Rock Candy", + "advancement": "spectrum:midgame/collect_gemstone_rock_candy", + "text": "Dissolving $(l:general/gemstone_powder)Gemstone Powder$(/l) instead of Sugar in the liquid allowed the Rock Candy to take on the gemstone's typical color.$(br2)You always wanted to know what those taste like. Definitely seems like a healthier option than snorting them up your nose." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/seven_league_boots.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/seven_league_boots.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/seven_league_boots.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/seven_league_boots.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/star_candy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/star_candy.json new file mode 100644 index 0000000000..bfa9c0ca9a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/star_candy.json @@ -0,0 +1,29 @@ +{ + "name": "Star Candies", + "advancement": "spectrum:progression/unlock_star_candy", + "icon": "spectrum:star_candy", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:star_candy": 0, + "spectrum:purple_star_candy": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "It seems those $(l:resources/stargazing)Shooting Stars$(/l) have more secrets than you previously thought, and weird ones at that.$(br)Baked Stardust tastes oddly refreshing, the magic makes your tongue tingle as the heaven-sent candy dissolves in your mouth. You felt an odd lot healthier afterwards.$(br)Their hard, golden flesh has some purple speckles, shimmering like star shards." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/food/star_candy", + "text": "Perhaps the speckles are the source of their restorative properties? You are left to wonder if it is possible to create a fully purple one." + }, + { + "type": "patchouli:spotlight", + "title": "A rare Find", + "advancement": "spectrum:hidden/collect_purple_star_candy", + "item": "spectrum:purple_star_candy", + "text": "Now THAT's a tasty one!$(br)Even just touching those star-laden streaks gives you much the same tingle as when you ate the whole thing." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/suspicious_brew.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/suspicious_brew.json new file mode 100644 index 0000000000..3c7ebaa52f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/suspicious_brew.json @@ -0,0 +1,21 @@ +{ + "name": "Suspicious Brew", + "advancement": "spectrum:progression/unlock_suspicious_brew", + "icon": "spectrum:suspicious_brew", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:suspicious_brew": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Curiously, the combination of mushrooms and water is a perfect receptor for all forms of other bloomy notes, either rounding the taste, or creating... very peculiar ones.$(br2)Each flower has a specific effect, as if you would feed it to a $(thing)Brown Mooshroom$()." + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Titration Recipe", + "recipe": "spectrum:titration_barrel/special/suspicious_brew", + "text": "The fermentation process in colored wood makes the effect last quite a bit longer than $(item)Suspicious Stew$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/take_off_belt.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/take_off_belt.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/take_off_belt.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/take_off_belt.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/tarts.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/tarts.json new file mode 100644 index 0000000000..8645729af4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/tarts.json @@ -0,0 +1,52 @@ +{ + "name": "Tarts", + "icon": "spectrum:ashen_tart", + "advancement": "spectrum:progression/unlock_tarts", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jaramel_tart": 0, + "spectrum:salted_jaramel_tart": 0, + "spectrum:ashen_tart": 0, + "spectrum:weeping_tart": 0, + "spectrum:whispy_tart": 0, + "spectrum:puff_tart": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Even though you are not the most proficient chef, even this rudimentary one tastes great! $(br)You can garnish it with different toppings to grant you $(thing)defensive abilities$() for a short duration." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Jaramel Tart", + "recipe": "spectrum:pedestal/tier3/food/jaramel_tart", + "text": "The classic. The only thing that would make this one more delicious would be the tears of your enemies." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:craft_salted_jaramel_trifle_or_tart", + "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_tart", + "text": "$(italic)Extra Salty" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/ashen_tart", + "text": "Makes you able to see & swim in lava as were it water.$(br2)Does NOT, however, make you Fire immune." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/weeping_tart", + "text": "Makes you able to swim at light speed and greatly increases your underwater mining rate." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/whispy_tart", + "text": "Makes you feel well rested, like after a good nights sleep. Scares away creatures of nightmares." + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/puff_tart", + "text": "Small chance for projectiles to simply deflect off of you." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/totem_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/totem_pendant.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/totem_pendant.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/totem_pendant.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/trifles.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/trifles.json new file mode 100644 index 0000000000..9b0f7ade69 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/trifles.json @@ -0,0 +1,34 @@ +{ + "name": "Trifles", + "icon": "spectrum:jaramel_trifle", + "advancement": "spectrum:progression/unlock_trifles", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jaramel_trifle": 0, + "spectrum:salted_jaramel_trifle": 0, + "spectrum:monster_trifle": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "Sweet delicacies, guaranteed to not only give you a sugar rush - depending on the toppings very intense, mostly $(thing)offensive$() ones.$(br)Made from $(l:resources/jade_vines#jaramel)Jaramel$(/l), $(thing)Gelatin$() & $(l:resources/amaranth)Amaranth$(/l). Even the rudimentary one tastes great!" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Jaramel Trifle", + "recipe": "spectrum:pedestal/tier3/food/jaramel_trifle", + "text": "The classic. The only thing that would make this one more delicious would be the tears of your enemies." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:craft_salted_jaramel_trifle_or_tart", + "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_trifle", + "text": "$(italic)Extra Salty" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/monster_trifle", + "text": "Gives out effects at random. Fancy a gamble?" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/weeping_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/weeping_circlet.json new file mode 100644 index 0000000000..098b58e99f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/weeping_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "Weeping Circlet", + "advancement": "spectrum:progression/unlock_weeping_circlet", + "icon": "spectrum:weeping_circlet", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:weeping_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "These hostile underwater temples are a hell to maneuver. Luckily, in your search for treasure you stumbled upon a Heart of The Sea.$(br)This circlet allows you to live and mine under water as if it were the most natural thing ever. You swim and mine faster, require no air and are able to see better.$(br)It also heals your little close by Axolotl friends ♥" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/weeping_circlet", + "text": "$(italic)Have you ever wanted to live underwater? No?$(br)Whatever, now you can.$(br)Time to build an underwater base!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/whispy_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/whispy_circlet.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/whispy_circlet.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/magical_items/whispy_circlet.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/gofish.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/mod_integration/gofish.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/gofish.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/mod_integration/gofish.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/block_placer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/block_placer.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/block_placer.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/block_placer.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/ender_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/ender_glass.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/ender_glass.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/ender_glass.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/entity_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/entity_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/entity_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/entity_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/item_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/item_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/item_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/item_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/light_level_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/light_level_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/light_level_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/light_level_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/player_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/player_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/player_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/player_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_calculator.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_calculator.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_calculator.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_calculator.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_sand.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_sand.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_sand.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_sand.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_timer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_timer.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_timer.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_timer.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_wireless.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_wireless.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/redstone_wireless.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/redstone_wireless.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/weather_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/weather_detector.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/redstone/weather_detector.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/redstone/weather_detector.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/amaranth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/amaranth.json new file mode 100644 index 0000000000..1e96b9d1f7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/amaranth.json @@ -0,0 +1,47 @@ +{ + "name": "Amaranth", + "advancement": "spectrum:milestones/reveal_amaranth", + "icon": "spectrum:amaranth_bushel", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:amaranth_grains": 0, + "spectrum:amaranth_bushel": 0, + "spectrum:honey_pastry": 0, + "spectrum:scone": 0, + "spectrum:triple_meat_pot_pie": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Amaranth", + "text": "Though seemingly left behind for quite some time now, these seeds still look very much alive. You wonder what comes out of it when grown?" + }, + { + "type": "spectrum:anvil_crushing", + "advancement": "spectrum:collect_amaranth_bushel", + "recipe": "spectrum:anvil_crushing/amaranth_grains", + "text": "You never have seen anything like it. Such an intense red. So expressive!$(br)These Bushels can be crushed to get more grains.$(br2)They can also be planted decoratively on grass or in a flower pot." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_amaranth_bushel", + "title": "Honey Pastry", + "recipe": "spectrum:pedestal/tier1/honey_pastry", + "text": "The taste of Amaranth is as different from Wheat as its appearance. In your mind sprouted completely new ideas, like this deliciousness here." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_amaranth_bushel", + "title": "Scones", + "recipe": "spectrum:pedestal/tier2/food/scone", + "text": "Small but fine pastry filled with cream.$(br2)$(italic)Perfect with tea." + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_triple_meat_pot_pie", + "title": "Triple Meat Pot Pie", + "recipe": "spectrum:pedestal/tier2/food/triple_meat_pot_pie", + "text": "This feast is guaranteed to fill your belly for quite some time.$(br2)$(italic)Full of fat and meat and wine and warp!" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/azurite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/azurite.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/azurite.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/azurite.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/blood_orchids.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/blood_orchids.json new file mode 100644 index 0000000000..959792742d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/blood_orchids.json @@ -0,0 +1,25 @@ +{ + "name": "Blood Orchids", + "icon": "spectrum:blood_orchid_petal", + "advancement": "spectrum:midgame/collect_blood_orchid_petal", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:blood_orchid": 0, + "spectrum:blood_orchid_petal": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:blood_orchid_petal", + "title": "Blood Orchid Petals", + "text": "These leaves seem to belong to a flower you don't know. Did it once bloom here, was it once grown by those who came before you? Perhaps a souvenir from a world you yourself have never entered? Yet it looks like it was plucked just 5 minutes ago.$(br)You feel something whenever you touch the petal: restlessness." + }, + { + "type": "spectrum:spirit_instiller_crafting", + "advancement": "spectrum:progression/unlock_blood_orchid", + "title": "Blood Orchid Plants", + "recipe": "spectrum:spirit_instiller/blood_orchid", + "text": "$(l:magical_blocks/liquid_crystal#resonant_lily)Resonant Lilies$(/l)! Truly an elusive flower - and seemingly related to Blood Orchids. Though the Blood Orchids energy very quickly takes over.$(br)Whelp, worst thing that can happen is you ending up with a true plant that you can pluck additional petals of." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/clover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/clover.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/clover.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/clover.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/geodes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/geodes.json new file mode 100644 index 0000000000..5f66de23e0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/geodes.json @@ -0,0 +1,324 @@ +{ + "name": "Geodes", + "advancement": "spectrum:spectrum", + "icon": "minecraft:amethyst_cluster", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:topaz_ore": 0, + "spectrum:amethyst_ore": 0, + "spectrum:citrine_ore": 0, + "spectrum:moonstone_ore": 0, + "spectrum:deepslate_topaz_ore": 0, + "spectrum:deepslate_amethyst_ore": 0, + "spectrum:deepslate_citrine_ore": 0, + "spectrum:deepslate_moonstone_ore": 0, + "spectrum:small_topaz_bud": 0, + "spectrum:medium_topaz_bud": 0, + "spectrum:large_topaz_bud": 0, + "spectrum:topaz_cluster": 0, + "spectrum:topaz_block": 0, + "spectrum:budding_topaz": 0, + "minecraft:small_amethyst_bud": 0, + "minecraft:medium_amethyst_bud": 0, + "minecraft:large_amethyst_bud": 0, + "minecraft:amethyst_cluster": 0, + "minecraft:amethyst_block": 0, + "minecraft:budding_amethyst": 0, + "spectrum:small_citrine_bud": 0, + "spectrum:medium_citrine_bud": 0, + "spectrum:large_citrine_bud": 0, + "spectrum:citrine_cluster": 0, + "spectrum:citrine_block": 0, + "spectrum:budding_citrine": 0, + "spectrum:small_moonstone_bud": 0, + "spectrum:medium_moonstone_bud": 0, + "spectrum:large_moonstone_bud": 0, + "spectrum:moonstone_cluster": 0, + "spectrum:moonstone_block": 0, + "spectrum:budding_moonstone": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Gemstone Geodes", + "images": [ + "spectrum:textures/gui/guidebook/geode.png" + ], + "border": true, + "text": "Geodes form in places where magical energy is so abundant, it crystallizes to physical form - as Gemstones. Each type of gemstone seems to represent a different type of fundamental property." + }, + { + "type": "patchouli:multiblock", + "name": "Geode Structure", + "enable_visualize": false, + "multiblock": { + "pattern": [ + [ + " ", + " ", + "O ", + " O ", + " ", + " SS ", + " O SSSS ", + " SS O ", + " ", + " ", + " ", + " ", + " " + ], + [ + " O ", + " O ", + " ", + " SSSSSS ", + " SSSCCSSS ", + " SSCCCCSS ", + " SSCCCCCCSS ", + " SSCCCCSS ", + " SSSCCSSS ", + " SSSSSS ", + " ", + " O ", + " " + ], + [ + " ", + " ", + " SSSSSSS ", + " SSCCCCCSS ", + " SSCCAAACCS ", + " SCCAAAAACCS ", + " SCCAAAAACCS ", + " SSCCAAACCSS ", + " SSCCCCCSS ", + " SSSSSSS ", + " ", + " ", + " " + ], + [ + " ", + " SSSSSS ", + " SSCCCCCSS ", + " SSCCAAAACCS ", + " SCCAAAAAACSS ", + " SCCAA AACCS ", + " SCCA AACS ", + " SCCAA ACCS ", + " SCAA AACCS ", + " SCC AAACCS ", + " S CCCSS ", + " SSS ", + " " + ], + [ + " SSS ", + " SSCCCSS ", + " SSCCBACCCS ", + " SCCAAAAAACCS ", + " SCAA AACSS ", + " SCAA ACCS ", + " SCAA ACCS ", + " SCAA ACCS ", + " SCCA AACSS ", + " SC BACCSS ", + " ACCSS ", + " CCSS ", + " SS " + ], + [ + " SSSS ", + " SCCCCCSS ", + " SCCAABACSS ", + " SCCAB AAACSS ", + " SCCAB ACCS ", + " SCA AACS ", + "SCA ACSS", + "SCA AACSS", + "SCA AACS ", + "SCAA AACCS ", + " S AACCSS ", + " S CCSS ", + " SS " + ], + [ + " SSSSS ", + " SCCCCCSS ", + " SSCAAAAACCS ", + " CCAA AAACCS ", + " SCA AACS ", + " SCA ACSS", + " SCA ACCS", + " SCA ACCS", + " SCA AACSS", + " S BCSS ", + " AACCS ", + " CCSS ", + " O SS " + ], + [ + " SSSS ", + " SSCCCCSS ", + " SCCAAACCCS ", + "O SCAAA AAACCS ", + " SCAA AACS ", + " SBA ACSS", + " SCA 0 ACCS", + " SCB ACCS", + " CA ACSS", + " S ACCSS", + " AACSS ", + " CCSS ", + " SSS " + ], + [ + " S ", + " SSCCSSS ", + " SCCCACCCSS ", + " SCCAAAAAACSS ", + " CCA ACCS ", + " SCB AACSS", + " SCA ACSS", + " SCB ACSS", + " SC AACSS", + " S AACSS ", + " ACCS ", + " CCSS ", + " SS " + ], + [ + " ", + " SSSSS ", + " SCCCCCCS ", + " SCCABAACCS ", + " SCAAA ABACCS ", + " SCA AACS ", + " SCAA ABCS ", + " SCAB AACS ", + " SCA ACCS ", + " AAACSS ", + " ACCCS ", + " CCS ", + " SS " + ], + [ + " ", + " S ", + " SSSCSSS ", + " SCCCCCCCS ", + " SCCAAAACCS ", + " CCBAAAAACSS ", + " SCAA AACSS ", + " SCAAA AACSS ", + " SCCAAAAAACSS ", + " S ABACCS ", + " CCCS ", + " SSS ", + " O S " + ], + [ + " O ", + " ", + " SSS ", + " SSCCSSS ", + " SCCCCCCS ", + " SSCCAACCSS ", + " SCCAABCCSS ", + " SCCBAACCSS O", + " SCCCACCCSS ", + " OS CSS ", + " O SS ", + " ", + " " + ], + [ + " ", + " ", + " O ", + " SS ", + " SSSSS ", + " SSCCSSS ", + " SSCCCCSS ", + " SSCCCCSS ", + " SSSCCSS ", + " SSSSSSS O ", + " SS ", + " ", + " " + ], + [ + " ", + " ", + " ", + " ", + " O ", + " S ", + " SSS ", + " SS ", + " S O ", + " ", + " ", + " ", + " " + ] + ], + "mapping": { + "S": "minecraft:smooth_basalt", + "C": "minecraft:calcite", + "A": "minecraft:amethyst_block", + "B": "minecraft:budding_amethyst", + "W": "minecraft:small_amethyst_bud", + "X": "minecraft:medium_amethyst_bud", + "Y": "minecraft:large_amethyst_bud", + "Z": "minecraft:amethyst_cluster", + "O": "spectrum:amethyst_ore" + }, + "symmetrical": false + }, + "text": "Different heights promote formation of certain types. To find them all, it makes sense to search in different places." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:spectrum", + "title": "Gemstone Ores", + "item": "spectrum:amethyst_ore", + "text": "Now that you are paying attention, you noticed small inclusions of gems in the rock all over the place.$(br)If you see such an ore a geode is surely not far!$(br2)While not renewable like Gemstone Clusters, Gemstone Ore provides a lot of Shards, especially when broken with a Fortune-Tool." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "title": "Topaz Geodes", + "item": "spectrum:topaz_block", + "text": "Topaz geodes are gigantic in contrast to the others, fitting for their element of matter. However, for this they are found exclusively far above the ground in mountains or massive hills." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "title": "Amethyst Geodes", + "item": "minecraft:amethyst_block", + "text": "As elements of time, Amethyst Geodes tend to maintain their existence in the lowest layers of the world, quietly sealed off from all other happenings in the world.$(br)Leisurely and yet imposing." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "title": "Citrine Geodes", + "item": "spectrum:citrine_block", + "text": "Geodes with Citrine are found in the middle layers of the world, sometimes even accessible from the surface. These geodes are small, but harbor tremendous energy, so they are cracked especially often." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "title": "Moonstone Geodes", + "item": "spectrum:moonstone_block", + "text": "TODO" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:lategame/collect_resonance_enchanted_tool", + "title": "Acquiring Budding Blocks", + "text": "=> $(l:enchanting/resonance)Resonance$()." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/jade_vines.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/jade_vines.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/jade_vines.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/jade_vines.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/mermaids_brush.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/mermaids_brush.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/mermaids_brush.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/mermaids_brush.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/paletur.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/paletur.json new file mode 100644 index 0000000000..c5f9f6c06f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/paletur.json @@ -0,0 +1,41 @@ +{ + "name": "Paltaeria", + "advancement": "spectrum:lategame/collect_paltaeria", + "icon": "spectrum:paltaeria_fragments", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:paltaeria_ore": 0, + "spectrum:paltaeria_fragments": 0, + "spectrum:paltaeria_gem": 0, + "spectrum:paltaeria_fragment_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Paltaeria", + "item": "spectrum:paltaeria_fragments", + "text": "The light blue color is the trademark of this ore. It is found exclusively in the end in small clusters.$(br)Like the end itself, the curious properties of this material are not to be overlooked." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Paltaeria Gem", + "advancement": "spectrum:hidden/collect_paltaeria_gem", + "recipe": "spectrum:pedestal/tier4/paltaeria_gem", + "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." + }, + { + "type": "patchouli:spotlight", + "title": "Paltaeria Floatblock", + "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "item": "spectrum:paltaeria_fragment_block", + "text": "From your previous experience with Paltaeria, you can already guess that it would not be a good idea to place this block in open sky.$(br2)The arrow on this block will service you as a reminder - your future self will thank you." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "recipe": "spectrum:pedestal/tier1/compacting/paltaeria_fragment_block", + "text": " $(italic)~Fly far away~" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/pure_resources.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/pure_resources.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/pure_resources.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/pure_resources.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/quitoxic_reeds.json new file mode 100644 index 0000000000..ac68e4a25b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/quitoxic_reeds.json @@ -0,0 +1,26 @@ +{ + "name": "Quitoxic Reeds", + "icon": "spectrum:quitoxic_reeds", + "advancement": "spectrum:collect_quitoxic_reeds", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:quitoxic_reeds": 0, + "spectrum:quitoxic_powder": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Quitoxic Reeds", + "images": [ + "spectrum:textures/gui/guidebook/quitoxic_reed.png" + ], + "border": true, + "text": "Grows exclusively in Swamps and seems to devour Clay as a form of nutrient." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:quitoxic_powder", + "text": "A purple glittering powder can be extracted from the stems of the alien-looking plant by crushing it with an anvil.$(br)Smell and consistency are very unusual when rubbed between your fingers.$(br2)$(italic)...wait a moment, what are fingers?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/resonating_ender.json new file mode 100644 index 0000000000..271609e116 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/resonating_ender.json @@ -0,0 +1,21 @@ +{ + "name": "Resonating Ender", + "advancement": "spectrum:milestones/reveal_radiating_ender", + "icon": "minecraft:ender_pearl", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:radiating_ender": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Those pesky Endermen!$(br2)They always show up at night and steal blocks off the ground right from your nose. You have the feeling that the whole area here will be nothing but a single crater landscape in a month.$()" + }, + { + "type": "patchouli:spotlight", + "title": "Resonating Ender", + "item": "spectrum:radiating_ender", + "text": "The Endermen come to this world to place those blocks. But what is this stuff? And $(italic)WHY$() do they leave it here?$(br2)Now that you hold one in your hands... they are everywhere! How didn't you notice earlier? Anyways, you are sure that you can take advantage of this interesting material." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/shimmerstone.json new file mode 100644 index 0000000000..8972f59a4e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/shimmerstone.json @@ -0,0 +1,25 @@ +{ + "name": "Shimmerstone", + "advancement": "spectrum:collect_shimmerstone", + "icon": "spectrum:shimmerstone_ore", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:shimmerstone_ore": 0, + "spectrum:deepslate_shimmerstone_ore": 0, + "spectrum:shimmerstone_gem": 0, + "spectrum:shimmerstone_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Shimmerstone", + "item": "spectrum:shimmerstone_gem", + "text": "A yellow ore that does not only emit energy in the form of light, but is able to manipulate it, too.$(br2)Shimmerstone is found close to sea level altitudes." + }, + { + "type": "patchouli:crafting", + "recipe": "spectrum:crafting_table/storage_blocks/shimmerstone_block", + "text": "Full blocks of Shimmerstone emit glowing bright yellow particles." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/stargazing.json new file mode 100644 index 0000000000..4248d608a2 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/stargazing.json @@ -0,0 +1,47 @@ +{ + "name": "Stargazing", + "advancement": "spectrum:milestones/unlock_shooting_stars", + "icon": "minecraft:spyglass", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:star_fragment": 0, + "spectrum:stardust": 0, + "spectrum:shooting_star_glistering": 0, + "spectrum:shooting_star_fiery": 0, + "spectrum:shooting_star_colorful": 0, + "spectrum:shooting_star_pristine": 0, + "spectrum:shooting_star_gemstone": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "Wishing upon a Star", + "images": [ + "spectrum:textures/gui/guidebook/stargazing.png" + ], + "border": true, + "text": "$(italic)The calmness of the night invites you to lie down in the grass and watch the stars." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "Shooting Stars", + "item": "spectrum:shooting_star_glistering", + "text": "The small Shooting Stars are made of a material unknown to you thus far.$(br2)Can you catch one right off the sky?$(br2)$(italic)Tip: Shooting Stars are much easier to spot when using a Telescope or Night Vision.$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "Star Fragments", + "item": "spectrum:star_fragment", + "text": "Shooting Stars yield precious resources, including this rare Star Fragment, Stardust and a whole lot of other rare materials.$(br2)Picking up a Shooting Star by crouching and $(l:general/anvil_crushing)smashing it via an Anvil$(/l) will yield double the Star Fragments, albeit at the cost of the other materials." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "Stardust", + "item": "spectrum:stardust", + "text": "A powder of unknown origin blessed with the soul of the stars.$(br)Bears coy, yet latent power." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/storm_stones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/storm_stones.json new file mode 100644 index 0000000000..31181357f7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/storm_stones.json @@ -0,0 +1,22 @@ +{ + "name": "Storm Stones", + "advancement": "spectrum:midgame/collect_storm_stone", + "icon": "spectrum:storm_stone", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:storm_stone": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Thunderstorms", + "text": "Thunderstorms are a powerful sign of the forces of nature.$(br)With the $(l:general/fusion_shrine)Fusion Shrine$() you did even start them when crafting some powerful resources.$(br2)There was no doubt coming across something here that had a connection to the magic of pigments." + }, + { + "type": "patchouli:spotlight", + "title": "Storm Stones", + "item": "spectrum:storm_stone", + "text": "Dug into the ground by lightning strikes, you found these stones vibrating in your hand due to the inherent static.$(br)Used in the $(l:general/fusion_shrine)Fusion Shrine$(), you can use them to summon thunderstorms yourself.$(br2)$(italic)Because of their volatile nature they do not react too nicely to explosions..." + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/stratine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/stratine.json new file mode 100644 index 0000000000..3d54982128 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/pt_br/entries/resources/stratine.json @@ -0,0 +1,41 @@ +{ + "name": "Stratine", + "advancement": "spectrum:midgame/collect_stratine", + "icon": "spectrum:stratine_fragments", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:stratine_ore": 0, + "spectrum:stratine_fragments": 0, + "spectrum:stratine_gem": 0, + "spectrum:stratine_fragment_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Stratine", + "item": "spectrum:stratine_fragments", + "text": "This very heavy ore is scattered around the depths of the Nether.$(br)It's probably not the best idea to carry large amounts of it home at once." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Stratine Gem", + "advancement": "spectrum:hidden/collect_stratine_gem", + "recipe": "spectrum:pedestal/tier3/stratine_gem", + "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." + }, + { + "type": "patchouli:spotlight", + "title": "Stratine Floatblock", + "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "item": "spectrum:stratine_fragment_block", + "text": "Stratine - as you may have already noticed - is an exceptionally heavy material. And difficult to shape, too. Even the blazing heat of the Nether could not harm the material.$(br2)However, shaping it via your $(l:general/pedestal)Pedestal$() should not be a problem whatsoever." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "recipe": "spectrum:pedestal/tier1/compacting/stratine_fragment_block", + "text": "$(italic)Heavy Metal" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/creating_life_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/creating_life_category.json new file mode 100644 index 0000000000..017b47871a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/creating_life_category.json @@ -0,0 +1,6 @@ +{ + "name": "创造生命", + "description": "满足你的生物学家梦:开å¯åˆ›é€ ç”Ÿå‘½çš„æ—…途。", + "icon": "spectrum:bottle_of_fading", + "sortnum": 8 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/decoration_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/decoration_category.json new file mode 100644 index 0000000000..654f6f0721 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/decoration_category.json @@ -0,0 +1,6 @@ +{ + "name": "装饰", + "description": "用精美的方å—去装点周边与ä½å®…å§ï¼", + "icon": "spectrum:chiseled_polished_calcite", + "sortnum": 3 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/dimension_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/dimension_category.json new file mode 100644 index 0000000000..b91d7db778 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/dimension_category.json @@ -0,0 +1,6 @@ +{ + "name": "基岩之下", + "description": "è¿›å‘,å‘世界的深处与中心ï¼", + "icon": "minecraft:bedrock", + "sortnum": 11 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/enchanting_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/enchanting_category.json new file mode 100644 index 0000000000..760a33f846 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/enchanting_category.json @@ -0,0 +1,6 @@ +{ + "name": "附魔", + "description": "å‡çº§å·¥å…·å’Œæ­¦å™¨æ‰€éœ€çš„一切。", + "icon": "spectrum:enchanter", + "sortnum": 9 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/general_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/general_category.json new file mode 100644 index 0000000000..87f1aef4d3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/general_category.json @@ -0,0 +1,6 @@ +{ + "name": "å¯ç¨‹", + "description": "一段简å•快速的光谱世界概览,带你入门并开始冒险ï¼", + "icon": "spectrum:pedestal_basic_amethyst", + "sortnum": 0 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/hints_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/hints_category.json new file mode 100644 index 0000000000..a6f0a8c9c5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/hints_category.json @@ -0,0 +1,6 @@ +{ + "name": "锦囊妙计", + "description": "如果你å¡åœ¨æŸä¸ªé˜¶æ®µæ— æ³•ç»§ç»­å‰è¿›ï¼Œå¯ä»¥æ¥è¿™é‡ŒèŽ·å–一些æç¤ºã€‚$(br)但如果你在没有æç¤ºçš„æƒ…况下完æˆäº†æ‰€æœ‰ä»»åŠ¡ï¼Œä½ ä¼šèŽ·å¾—ä¸€ä¸ªå°å°çš„奖励哦ï¼:)$(br)就当这一章ä¸å­˜åœ¨å§~$(br) ——DaFuqs", + "icon": "minecraft:writable_book", + "sortnum": 13 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magic_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magic_category.json new file mode 100644 index 0000000000..6864f7eb0d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magic_category.json @@ -0,0 +1,6 @@ +{ + "name": "墨水魔法", + "description": "元素之çµåœ¨å¬å”¤ç€ä½ ã€‚", + "icon": "spectrum:pigment_palette", + "sortnum": 12 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magical_blocks_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magical_blocks_category.json new file mode 100644 index 0000000000..450cc07e6c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magical_blocks_category.json @@ -0,0 +1,6 @@ +{ + "name": "魔法方å—", + "description": "åªéœ€æ¶ˆè€—一些神奇的魔法矿石,这些魔法方å—å°±å¯ä»¥å®Œæˆè®¸å¤šå·¥ä½œã€‚$(br2)其中æŸäº›éœ€è¦æä¾›æŸç§å½¢å¼çš„能é‡ã€‚", + "icon": "spectrum:private_chest", + "sortnum": 6 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magical_items_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magical_items_category.json new file mode 100644 index 0000000000..87ee3c1ee1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/magical_items_category.json @@ -0,0 +1,6 @@ +{ + "name": "魔法物å“", + "description": "æ•°ç§å¯ç©¿æˆ´ç‰©ä»¶ï¼ŒåŠ©åŠ›ä½ çš„æ¸¸æˆæ—…程。", + "icon": "spectrum:natures_staff", + "sortnum": 5 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/mod_integration_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/mod_integration_category.json new file mode 100644 index 0000000000..6b02e2d7fd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/mod_integration_category.json @@ -0,0 +1,6 @@ +{ + "name": "Modè”动", + "description": "你在其它mod中的å„ç§æŽ¢ç´¢å‘现。", + "icon": "minecraft:knowledge_book", + "sortnum": 13 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/pastel_network_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/pastel_network_category.json new file mode 100644 index 0000000000..5d42fd857f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/pastel_network_category.json @@ -0,0 +1,6 @@ +{ + "name": "绘彩è”络", + "description": "é¢œæ–™é©±åŠ¨çš„ç‰©å“æ— çº¿ä¼ è¾“网络。", + "icon": "spectrum:provider_node", + "sortnum": 10 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/redstone_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/redstone_category.json new file mode 100644 index 0000000000..537d78b73a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/redstone_category.json @@ -0,0 +1,6 @@ +{ + "name": "红石元件", + "description": "拿起第一粒å®çŸ³æ™¶çš„æ—¶å€™ï¼Œä½ ä¾¿å¯Ÿè§‰æ‰‹ä¸­çš„å®çŸ³æ™¶ç¢Žç‰‡æ­£éšå››å‘¨çš„细微å˜åŒ–而脉动。$(br)ä½ å¯ä»¥å–„加利用这些特性,并在基础红石电路中铺设并使用这些新器件。", + "icon": "minecraft:redstone", + "sortnum": 7 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/resources_category.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/resources_category.json new file mode 100644 index 0000000000..b2a217fe43 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/categories/resources_category.json @@ -0,0 +1,6 @@ +{ + "name": "资æº", + "description": "世界å„处的多ç§çŸ¿ç‰©å’Œæ¤ç‰©äºŸå¾…ä½ å‰åŽ»æŽ¢ç´¢â€”â€”ä¸è¿‡ä½ å¾—先能察觉到它们的存在。$(br)éšç€ä½ å¯¹ä¸–é—´è•´å«çš„é­”æ³•è¶Šå‘æ´žæ‚‰ï¼Œå®ƒä»¬ä¹Ÿæ¸ä¼šå¯¹ä½ å±•露形迹。", + "icon": "spectrum:sparklestone_ore", + "sortnum": 1 +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/creating_life.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/creating_life.json new file mode 100644 index 0000000000..e434b842ca --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/creating_life.json @@ -0,0 +1,18 @@ +{ + "name": "创造生命", + "icon": "minecraft:egg", + "advancement": "spectrum:progression/unlock_bottle_of_fading", + "category": "spectrum:creating_life_category", + "priority": true, + "pages": [ + { + "type": "patchouli:text", + "title": "创造生命", + "text": "创造人造生命一直以æ¥éƒ½æ˜¯äººä»¬çš„æ¢¦æƒ³ã€‚$(br)既然你手æ¡é­”法å®çŸ³æ™¶çš„魔力,这想必是å°èœä¸€ç¢Ÿï¼Ÿ" + }, + { + "type": "patchouli:text", + "text": "å®çŸ³æ™¶è•´å«çš„原始魔力是最好的切入对象。$(br2)ä½ èº«ä¸ºä¸æ­»ä¹‹èº¯ï¼Œé‚£å°±æœ‰å¤§æŠŠå¤§æŠŠæ—¶é—´æ½œå¿ƒé’»ç ”。$(br)(上次一头直立行走的绿猪令你大åƒä¸€æƒŠï¼Œç¬¬äºŒå¤©æ—©ä¸Šä½ ä¾¿åœ¨åºŠä¸ŠæƒŠé†’)$(br2)那么,是实验的时候了ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/decay_away.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/decay_away.json new file mode 100644 index 0000000000..d62268144e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/decay_away.json @@ -0,0 +1,23 @@ +{ + "name": "祛消解微生物 ", + "icon": "spectrum:bottle_of_decay_away", + "advancement": "spectrum:progression/unlock_bottle_of_decay_away", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:bottle_of_decay_away": 0 + }, + "pages": [ + { + "title": "祛消解微生物", + "type": "patchouli:spotlight", + "item": "spectrum:bottle_of_decay_away", + "text": "你上次的实验ä¸ä»…å±é™©ï¼Œè¿˜å¾ˆé𾿏…ç†å¹²å‡€ã€‚$(br)为防止事æ€å¤±æŽ§ï¼Œä½ åˆ›é€ äº†è¿™ç§å˜ä½“微生物。这次,是为修缮而éžåžæ²¡ä½ çš„基地。$(br2)这主æ„ä¸å°±å¥½å¤šäº†ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/bottle_of_decay_away", + "text": "去除99%的自我å¤åˆ¶å¾®ç”Ÿç‰©ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/egg_laying_wooly_pig.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/egg_laying_wooly_pig.json new file mode 100644 index 0000000000..89cb43dc73 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/egg_laying_wooly_pig.json @@ -0,0 +1,22 @@ +{ + "name": "下蛋绒猪", + "icon": "spectrum:egg_laying_wooly_pig_head", + "advancement": "spectrum:progression/unlock_egg_laying_wooly_pig_head", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:egg_laying_wooly_pig_head": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "下蛋绒猪", + "text": "在此之å‰ï¼Œä½ è®¤ä¸ºâ€œåˆ›é€ ç”Ÿå‘½â€è¿™ä¸€äº‹ä¸šè¿˜æœ‰äº›å¤æ‚,ä¸è¿‡çŽ°åœ¨ä½ æ…¢æ…¢çš„å‘现你能结åˆä¸€äº›ä¸œè¥¿æ¥åˆ›é€ ç”Ÿå‘½äº†ã€‚$(br2)ä»Žæ— åˆ°æœ‰çš„åˆ›é€ ç”Ÿå‘½å¹¶éžæ˜“事,但åªè¦ç”¨å¿ƒæ€»ç»“你掌æ¡çš„知识,你就会å‘çŽ°è‡ªå·±ç¦»å¼—å…°è‚¯æ–¯å¦æœ¬äººæ›´è¿›ä¸€æ­¥äº†ï¼$(br)$(italic)但这个事业孰好孰å,你还无法确定。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/egg_laying_wooly_pig_head", + "text": "你的这个造物会åƒä»€ä¹ˆå‘¢ï¼Ÿç­”案就在...$(l:creating_life/memories)这里$()。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/fading.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/fading.json new file mode 100644 index 0000000000..f19beb862e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/fading.json @@ -0,0 +1,32 @@ +{ + "name": "实验#1:褪解", + "icon": "spectrum:bottle_of_fading", + "advancement": "spectrum:progression/unlock_bottle_of_fading", + "category": "spectrum:creating_life_category", + "turnin": "spectrum:collect_vegetal", + "extra_recipe_mappings": { + "spectrum:bottle_of_fading": 0, + "spectrum:vegetal": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottle_of_fading", + "text": "ä½ å¾ˆå¿«å°±è‰æ‹Ÿå‡ºäº†ä¸€ä¸ªè®¡åˆ’。$(br2)你构造的有机体虽然微弱,但好歹说明你的设计æ€è·¯è‡³å°‘在ç†è®ºä¸Šæ²¡æœ‰é—®é¢˜ï¼ä¸å¾—䏿‰¿è®¤ï¼Œè¿™å“ªæ€•åªæ˜¯ä¸€å¨å¾®ç”Ÿç‰©ï¼Œæœ€èµ·ç ä¹Ÿæ˜¯æ´»ç‰©ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/bottle_of_fading", + "text": "生物的本能大都能总结为两æ¡ï¼šè¿›é£Ÿã€ç¹æ®–。$()那……它们åƒä»€ä¹ˆå‘¢ï¼Ÿå…¶å®ƒæ–¹å—å—?兴许得是容易消化的东西。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_vegetal", + "title": "æ¤æœ¬è´¨", + "anchor": "vegetal", + "item": "spectrum:vegetal", + "text": "åŽŸæ¥æ˜¯æœ‰æœºç‰©ï¼ç¡®å®žå®¹æ˜“消化。$(br)è¢«æ¶ˆåŒ–æŽ‰çš„æœ‰æœºç‰©å˜æˆäº†ä¸€ç§æœ‰è¶£çš„副产å“â€”â€”ä½ ç§°ä½œæ¤æœ¬è´¨ã€‚它蕴å«ç€$(bold)纯粹的自然能é‡$()。$(br2)想必一定很有用。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/failing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/failing.json new file mode 100644 index 0000000000..db814f57e6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/failing.json @@ -0,0 +1,32 @@ +{ + "name": "实验#2:蚀解", + "icon": "spectrum:bottle_of_failing", + "advancement": "spectrum:progression/unlock_bottle_of_failing", + "category": "spectrum:creating_life_category", + "turnin": "spectrum:midgame/collect_neolith", + "extra_recipe_mappings": { + "spectrum:bottle_of_failing": 0, + "spectrum:neolith": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottle_of_failing", + "text": "注入了缟玛瑙和绯红å®çŸ³çš„强大潜能之åŽï¼Œä½ ç ”å‘çš„ç¬¬äºŒæ¬¾æœ‰æœºä½“æ˜¾ç„¶â€¦â€¦æ¯”ä¸Šæ¬¡çš„è¦æ´»è·ƒå¾—多。$(br2)$(bold)而且ç»å¯¹éžå¸¸é¥¥é¥¿ã€‚$(br)éžå¸¸ï¼Œéžå¸¸é¥¥é¥¿ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/bottle_of_failing", + "text": "兴许æŸç§ç‰¹åˆ«å¼ºç¡¬çš„ææ–™å¯ä»¥æ»¡è¶³å®ƒä»¬ï¼Ÿ" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/collect_neolith", + "title": "åšæ–°çŸ³", + "anchor": "neolith", + "item": "spectrum:neolith", + "text": "黑曜石被化为齑粉。原æ¥è¿™å°±æ˜¯çº¯ç²¹çš„力é‡å—ï¼$(br2)产物是一ç§åšå®žçš„ææ–™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/memories.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/memories.json new file mode 100644 index 0000000000..e0fcab5e77 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/memories.json @@ -0,0 +1,28 @@ +{ + "name": "回忆", + "icon": "spectrum:memory{EntityTag: {id: \"minecraft:fox\"}, TicksToManifest: 20}", + "advancement": "spectrum:midgame/collect_neolith", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:memory": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "回忆", + "item": "spectrum:memory{EntityTag: {id: \"minecraft:fox\"}, TicksToManifest: 20}", + "text": "有了$(l:creating_life/spirit_instiller)çµé­‚çŒæ³¨å°$(/l),你å¯ä»¥å¤è‹æ­»åŽ»çš„ç”Ÿç‰©ã€‚$(br)它们会以$(italic)回忆$()的形å¼å…·çŽ°åŒ–ã€‚" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "çµé­‚çŒæ³¨é…æ–¹", + "recipe": "spectrum:spirit_instiller/memories/fox", + "text": "é‡å”¤å›žå¿†éœ€è¦ç”Ÿç‰©çš„$(l:creating_life/mob_heads)头颅$(/l)和它最喜欢的物å“,并使用$(l:creating_life/fading#vegetal)æ¤æœ¬è´¨$(/l)作为介质进行结åˆã€‚$(br)æ¢ç”¨$(l:creating_life/failing#neolith)åšæ–°çŸ³$(/l)则会完全é®è”½ç”Ÿç‰©æœ¬æ¥çš„能é‡ï¼Œä½¿å¾—回忆本身无法被识别,直到它完全具现化为止。" + }, + { + "type": "patchouli:text", + "title": "具现化", + "text": "å›žå¿†å…·çŽ°æ˜¯éœ€è¦æ—¶é—´çš„,好比孵蛋:放置下æ¥ï¼Œé™ç­‰å­µåŒ–。所耗时间长短也å–决于生物ç§ç±»ï¼šå¯èƒ½å¾ˆå¿«ï¼Œä¹Ÿå¯èƒ½è¦ç­‰ä¸Šä¸€è¾ˆå­ã€‚$(br2)$(italic)放置在æŸäº›ç‰¹å®šçš„æ–¹å—ä¸Šä¼¼ä¹Žèƒ½åŠ é€Ÿè¿™ä¸€è¿›ç¨‹ï¼ŒæŠ‘æˆ–æ˜¯ä»¤å…¶å®Œå…¨åœæ­¢ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/mob_heads.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/mob_heads.json new file mode 100644 index 0000000000..4b93c76b10 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/mob_heads.json @@ -0,0 +1,123 @@ +{ + "name": "生物头颅", + "advancement": "spectrum:progression/enchantments/treasure_hunter", + "icon": "minecraft:wither_skeleton_skull", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:axolotl_blue_head": 0, + "spectrum:axolotl_brown_head": 0, + "spectrum:axolotl_cyan_head": 0, + "spectrum:axolotl_gold_head": 0, + "spectrum:axolotl_leucistic_head": 0, + "spectrum:bat_head": 0, + "spectrum:bee_head": 0, + "spectrum:blaze_head": 0, + "spectrum:cat_head": 0, + "spectrum:cave_spider_head": 0, + "spectrum:chicken_head": 0, + "spectrum:clownfish_head": 0, + "spectrum:cow_head": 0, + "spectrum:donkey_head": 0, + "spectrum:drowned_head": 0, + "spectrum:elder_guardian_head": 0, + "spectrum:enderman_head": 0, + "spectrum:endermite_head": 0, + "spectrum:evoker_head": 0, + "spectrum:fox_head": 0, + "spectrum:fox_arctic_head": 0, + "spectrum:ghast_head": 0, + "spectrum:glow_squid_head": 0, + "spectrum:goat_head": 0, + "spectrum:guardian_head": 0, + "spectrum:hoglin_head": 0, + "spectrum:horse_head": 0, + "spectrum:husk_head": 0, + "spectrum:illusioner_head": 0, + "spectrum:iron_golem_head": 0, + "spectrum:llama_head": 0, + "spectrum:magma_cube_head": 0, + "spectrum:mooshroom_red_head": 0, + "spectrum:mooshroom_brown_head": 0, + "spectrum:mule_head": 0, + "spectrum:ocelot_head": 0, + "spectrum:panda_head": 0, + "spectrum:parrot_blue_head": 0, + "spectrum:parrot_cyan_head": 0, + "spectrum:parrot_gray_head": 0, + "spectrum:parrot_green_head": 0, + "spectrum:parrot_red_head": 0, + "spectrum:phantom_head": 0, + "spectrum:pig_head": 0, + "spectrum:piglin_head": 0, + "spectrum:polar_bear_head": 0, + "spectrum:pufferfish_head": 0, + "spectrum:rabbit_head": 0, + "spectrum:ravager_head": 0, + "spectrum:salmon_head": 0, + "spectrum:sheep_black_head": 0, + "spectrum:sheep_blue_head": 0, + "spectrum:sheep_brown_head": 0, + "spectrum:sheep_cyan_head": 0, + "spectrum:sheep_gray_head": 0, + "spectrum:sheep_green_head": 0, + "spectrum:sheep_light_blue_head": 0, + "spectrum:sheep_light_gray_head": 0, + "spectrum:sheep_lime_head": 0, + "spectrum:sheep_magenta_head": 0, + "spectrum:sheep_orange_head": 0, + "spectrum:sheep_pink_head": 0, + "spectrum:sheep_purple_head": 0, + "spectrum:sheep_red_head": 0, + "spectrum:sheep_white_head": 0, + "spectrum:sheep_yellow_head": 0, + "spectrum:shulker_black_head": 0, + "spectrum:shulker_blue_head": 0, + "spectrum:shulker_brown_head": 0, + "spectrum:shulker_cyan_head": 0, + "spectrum:shulker_gray_head": 0, + "spectrum:shulker_green_head": 0, + "spectrum:shulker_light_blue_head": 0, + "spectrum:shulker_light_gray_head": 0, + "spectrum:shulker_lime_head": 0, + "spectrum:shulker_magenta_head": 0, + "spectrum:shulker_orange_head": 0, + "spectrum:shulker_pink_head": 0, + "spectrum:shulker_purple_head": 0, + "spectrum:shulker_red_head": 0, + "spectrum:shulker_white_head": 0, + "spectrum:shulker_yellow_head": 0, + "spectrum:silverfish_head": 0, + "spectrum:slime_head": 0, + "spectrum:snow_golem_head": 0, + "spectrum:spider_head": 0, + "spectrum:squid_head": 0, + "spectrum:stray_head": 0, + "spectrum:strider_head": 0, + "spectrum:trader_llama_head": 0, + "spectrum:turtle_head": 0, + "spectrum:vex_head": 0, + "spectrum:villager_head": 0, + "spectrum:vindicator_head": 0, + "spectrum:wandering_trader_head": 0, + "spectrum:witch_head": 0, + "spectrum:wither_head": 0, + "spectrum:wolf_head": 0, + "spectrum:zoglin_head": 0, + "spectrum:zombie_villager_head": 0, + "spectrum:zombified_piglin_head": 0, + "spectrum:warden_head": 0, + "spectrum:allay_head": 0, + "spectrum:tadpole_head": 0, + "spectrum:frog_temperate_head": 0, + "spectrum:frog_warm_head": 0, + "spectrum:frog_cold_head": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "生物头颅", + "item": "spectrum:cow_head", + "text": "$(l:enchanting/treasure_hunter)奇ç猎手$(/l)附魔å¯ä»¥èŽ·å–生物的头颅。$(br)ä½œä¸ºå½°æ˜¾å¾æœæˆ˜æžœçš„展å“固然ä¸é”™ï¼Œä½†å®ƒä»¬ä¾ç¨€é—ªçƒç€æ›¾æœ‰çš„生气。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/ruin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/ruin.json new file mode 100644 index 0000000000..77d1901e73 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/ruin.json @@ -0,0 +1,52 @@ +{ + "name": "实验#3:åç­", + "icon": "spectrum:bottle_of_ruin", + "advancement": "spectrum:progression/unlock_bottle_of_ruin", + "category": "spectrum:creating_life_category", + "turnin": "spectrum:midgame/break_decayed_bedrock", + "extra_recipe_mappings": { + "spectrum:bottle_of_ruin": 0, + "spectrum:bedrock_dust": 0, + "spectrum:bedrock_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottle_of_ruin", + "text": "哪怕是一ä¸ç‚¹çš„失败,也ç»å¯¹ä¸å¯èƒ½é˜»æ­¢ä½ ä¸ºäº†åˆæˆè¿™æ ·ä¸€ä¸ªå®Œç¾Žçš„造物而努力——它便是如此。$(br)它å¯èƒ½å‡¶æ®‹åˆ°èƒ½å¤Ÿæ‘§æ¯ä½ å…ˆå‰è®¤ä¸ºåšä¸å¯æ‘§çš„事物。$(br)如果使用ä¸å½“,你的世界真的会æ¯åœ¨ä½ æ‰‹ä¸Šã€‚$(br)在需è¦çš„æ—¶å€™æ¥ä¸€åœºçœŸæ­£çš„牺牲å§ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/bottle_of_ruin", + "text": "å°å¿ƒç‚¹ï¼è¿™å¯æ˜¯å­—颿„义上的$(#ff0000)凶残$()玩æ„å„¿ï¼Œæ²¡æœ‰ä¸æ¯«å¼€çŽ©ç¬‘çš„æ„æ€ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "基岩粉", + "item": "spectrum:bedrock_dust", + "text": "基岩都ç»å—ä¸ä½ä½ æ‰€åˆ›é€ çš„这股“生命â€çš„力é‡ã€‚就如微渺的ç§å­çªç ´äº†ç£çŸ³ä¸€èˆ¬â€¦â€¦" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "勿ƒ…å°è´´å£«", + "text": "如果你在阅读这串文字的时候还没收拾好场é¢ï¼Œæˆ‘建议你在追悔莫åŠä¹‹å‰ç«é€Ÿæ•´ç†å¹²å‡€ã€‚$(br2)还好,你已ç»è®¾è®¡è¿‡ä¸€å¥—$(l:creating_life/decay_away)åˆé€‚çš„å制措施$(/l)了。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "基岩粉å—", + "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_storage_block", + "text": "å³ä½¿æ˜¯åŸºå²©çš„碎屑也éžå¸¸åšå›ºï¼Œæ™®é€šçš„工作å°åŽ‹æ ¹æ— æ³•å¤„ç†å®ƒä»¬ã€‚但有了$(l:general/pedestal)七彩基座$(/l),把它们åˆå¹¶èµ·æ¥å¹¶éžéš¾äº‹ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "title": "分解", + "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_storage_block_uncrafting", + "text": "基岩粉å—也很åšå›ºï¼Œå“ªæ€•是凋çµä¹Ÿå¯¹å®ƒä»¬æ— èƒ½ä¸ºåŠ›ã€‚$(br2ä¸è¿‡ï¼Œä½¿ç”¨ä¸ƒå½©åŸºåº§ï¼Œä½ ä»ç„¶èƒ½è½»æ¾çš„将基岩粉å—分为å°å—。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/spawner_manipulation.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/spawner_manipulation.json new file mode 100644 index 0000000000..56ab58baa8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/spawner_manipulation.json @@ -0,0 +1,48 @@ +{ + "name": "刷怪笼æ“纵", + "advancement": "spectrum:milestones/unlock_spawner_manipulation", + "icon": "spectrum:spawner", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "minecraft:spawner": 0, + "spectrum:spawner": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "获å–刷怪笼", + "item": "spectrum:resonant_pickaxe", + "text": "$(l:enchanting/resonance)共振$(/l)附魔å…许你采集刷怪笼。$(br2)虽然你ä»ç„¶ä¸çŸ¥é“怎么制作刷怪笼,利用$(l:creating_life/spirit_instiller)çµé­‚çŒæ³¨å°$(/l)ä½ ä¾ç„¶å¯ä»¥éšå¿ƒæ‰€æ¬²åœ°æ“纵刷怪笼的性质。" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "æ›´æ¢ç”Ÿç‰©", + "recipe": "spectrum:spirit_instiller/spawner/spawner_creature_change", + "text": "使用类似$(l:creating_life/memory)回忆$(/l)的法术,你å¯ä»¥æ›´æ”¹åˆ·æ€ªç¬¼ç”Ÿæˆçš„生物类型。" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "生物生æˆå»¶è¿Ÿ", + "recipe": "spectrum:spirit_instiller/spawner/spawner_spawn_delay_change", + "text": "缩短生物生æˆå‘¨æœŸçš„æœ€å°å’Œæœ€å¤§å»¶è¿Ÿã€‚" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "ç”Ÿç‰©ç”Ÿæˆæ•°é‡", + "recipe": "spectrum:spirit_instiller/spawner/spawner_spawn_count_change", + "text": "增加æ¯ä¸€å‘¨æœŸç”Ÿæˆçš„生物数é‡ã€‚" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "生物生æˆå®¹é‡", + "recipe": "spectrum:spirit_instiller/spawner/spawner_max_nearby_entities_change", + "text": "æé«˜åˆ·æ€ªç¬¼å‘¨å›´æ‰€èƒ½å®¹çº³çš„生物容é‡ä¸Šé™ã€‚$(br)$(italic)åˆ·æ€ªç¬¼å‘¨å›´ç”Ÿç‰©å¤ªå¤šçš„æ—¶å€™å°±ä¼šåœæ­¢åˆ·æ€ªã€‚éš¾é“æ˜¯åœ¨æ”¾ä½ ä¸€é©¬ä¸æˆï¼Ÿæžå¾—好åƒä½ æ²¡æœ‰èƒ½è€ä¼¼çš„,无趣。" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "玩家激活åŠå¾„", + "recipe": "spectrum:spirit_instiller/spawner/spawner_required_player_range_change", + "text": "增大刷怪笼å—玩家激活的检测åŠå¾„。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/spirit_instiller.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/spirit_instiller.json new file mode 100644 index 0000000000..5632206af0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/creating_life/spirit_instiller.json @@ -0,0 +1,33 @@ +{ + "name": "çµé­‚çŒæ³¨å°", + "icon": "spectrum:spirit_instiller", + "advancement": "spectrum:progression/unlock_spirit_instiller", + "category": "spectrum:creating_life_category", + "extra_recipe_mappings": { + "spectrum:spirit_instiller": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你使用你全部的学识打造了çµé­‚çŒæ³¨å°ã€‚它å¯ä»¥åˆ©ç”¨æŸäº›ä»‹è´¨æ¥æ¡¥æŽ¥ä¸¤ç§ç‰©ä½“之间的能é‡ã€‚$(br)真是令人神魂颠倒呢。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/spirit_instiller", + "text": "çµé­‚çŒæ³¨å°ä¹Ÿéœ€è¦åŸºåº§ç»“æž„æ‰èƒ½æ­£å¸¸è¿ä½œã€‚对ç€å·²æ”¾ç½®çš„çµé­‚çŒæ³¨å°å³å‡»æ¥æ—‹è½¬æŠ•影。" + }, + { + "type": "patchouli:multiblock", + "name": "çŒæ³¨å°ç»“æž„", + "multiblock_id": "spectrum:spirit_instiller_structure", + "enable_visualize": true, + "text": "在錾制缟玛瑙岩石方å—上放置å‡çº§ï¼Œå³å¯å¯¹çŒæ³¨å°ç”Ÿæ•ˆã€‚" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表", + "text": "$(li)1个çµé­‚çŒæ³¨å°$(li)2个物å“底座$(li)2个无å°éŒ¾åˆ¶å²©çŸ³æ–¹å—(li)2个錾制磨制岩石方å—$(li)2个錾制缟玛瑙岩石方å—$(li)6个磨制岩石柱$(li)17个磨制岩石åŠç –$(li)41个磨制岩石方å—$(li)2个å®çŸ³æ™¶é£Žé“ƒ" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/banner_patterns.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/banner_patterns.json new file mode 100644 index 0000000000..44cefed680 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/banner_patterns.json @@ -0,0 +1,28 @@ +{ + "name": "旗帜图案", + "icon": "spectrum:amethyst_shard_banner_pattern", + "advancement": "spectrum:spectrum", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:logo_banner_pattern": 0, + "spectrum:amethyst_shard_banner_pattern": 0, + "spectrum:amethyst_cluster_banner_pattern": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "旗帜图案", + "border": true, + "images": [ + "spectrum:textures/gui/manual/banners.png" + ], + "text": "你所é‡åˆ°çš„工具和资æºéƒ½å¯ä»¥åœ¨ç»‡å¸ƒæœºä¸­ç›´æŽ¥ä½¿ç”¨ï¼Œä½œä¸ºæ——帜图案。" + }, + { + "type": "patchouli:crafting", + "title": "原版旗帜图案", + "recipe": "spectrum:crafting_table/banner_patterns/amethyst_cluster_banner_pattern", + "recipe2": "spectrum:crafting_table/banner_patterns/amethyst_shard_banner_pattern" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/block_variants.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/block_variants.json new file mode 100644 index 0000000000..f81dc9fabb --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/block_variants.json @@ -0,0 +1,125 @@ +{ + "name": "æ–¹å—ç§ç±»", + "advancement": "spectrum:spectrum", + "icon": "spectrum:chiseled_polished_basalt", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:polished_basalt": 0, + "spectrum:polished_calcite": 0, + "spectrum:polished_basalt_slab": 0, + "spectrum:polished_calcite_slab": 0, + "spectrum:polished_basalt_stairs": 0, + "spectrum:polished_calcite_stairs": 0, + "spectrum:polished_basalt_pillar": 0, + "spectrum:polished_calcite_pillar": 0, + "spectrum:polished_basalt_crest": 0, + "spectrum:polished_calcite_crest": 0, + "spectrum:chiseled_polished_basalt": 0, + "spectrum:chiseled_polished_calcite": 0, + "spectrum:notched_polished_basalt": 0, + "spectrum:notched_polished_calcite": 0, + "spectrum:polished_basalt_wall": 0, + "spectrum:polished_calcite_wall": 0, + "spectrum:basalt_bricks": 0, + "spectrum:calcite_bricks": 0, + "spectrum:basalt_brick_slab": 0, + "spectrum:calcite_brick_slab": 0, + "spectrum:basalt_brick_stairs": 0, + "spectrum:calcite_brick_stairs": 0, + "spectrum:basalt_brick_wall": 0, + "spectrum:calcite_brick_wall": 0, + "spectrum:smooth_basalt_slab": 0, + "spectrum:calcite_slab": 0, + "spectrum:smooth_basalt_stairs": 0, + "spectrum:calcite_stairs": 0, + "spectrum:smooth_basalt_wall": 0, + "spectrum:calcite_wall": 0, + "spectrum:polished_calcite_button": 0, + "spectrum:polished_basalt_button": 0, + "spectrum:polished_calcite_pressure_plate": 0, + "spectrum:polished_basalt_pressure_plate": 0, + "spectrum:basalt_tiles": 0, + "spectrum:calcite_tiles": 0, + "spectrum:calcite_tile_stairs": 0, + "spectrum:basalt_tile_stairs": 0, + "spectrum:calcite_tile_wall": 0, + "spectrum:basalt_tile_wall": 0, + "spectrum:calcite_tile_slab": 0, + "spectrum:basalt_tile_slab": 0, + "spectrum:cracked_calcite_bricks": 0, + "spectrum:cracked_basalt_bricks": 0, + "spectrum:cracked_calcite_tiles": 0, + "spectrum:cracked_basalt_tiles": 0 + }, + "pages": [ + { + "type": "patchouli:smelting", + "anchor": "polished_basalt", + "title": "磨制玄武岩", + "recipe": "spectrum:smelting/smooth_basalt_to_polished_basalt", + "text": "还记得晶洞外层的那圈岩石å—?直接的ç«ç‚¼ä¼¼ä¹Žè®©å²©çŸ³çš„黑与白å˜å¾—更为纯粹。$(br)玄武岩ç»è¿‡çƒ§åˆ¶åŽï¼Œè‰²æ³½å˜å¾—近乎纯黑。$(br)å…´è®¸å®ƒä»¬å¸æ”¶äº†ç‚¹æ™¶æ´žçš„çµæ°”?$(br)说ä¸å®šå‘¢ã€‚" + }, + { + "type": "patchouli:smelting", + "anchor": "polished_calcite", + "title": "磨制方解石", + "recipe": "spectrum:smelting/calcite_to_polished_calcite", + "text": "方解石的白真是你所è§è¿‡çš„自然界中最明净的色泽,清亮而纯æ´ï¼Œä¸ŽçŽ„æ­¦å²©çš„é»‘è‰²å½¢æˆäº†é²œæ˜Žå¯¹æ¯”。$(br2)磨制玄武岩和磨制方解石都å¯ä»¥è¢«åˆ¶ä½œæˆå¤šç§å¤šæ ·çš„装饰方å—。" + }, + { + "type": "patchouli:crafting", + "title": "å°é˜¶å’Œæ¥¼æ¢¯", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_slab", + "recipe2": "spectrum:crafting_table/calcite/polished_calcite_stairs" + }, + { + "type": "patchouli:crafting", + "title": "柱å­å’Œé¥°çº¹æ–¹å—", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_pillar", + "recipe2": "spectrum:crafting_table/calcite/polished_calcite_crest" + }, + { + "type": "patchouli:crafting", + "title": "éŒ¾åˆ¶å’Œæ— å°æ–¹å—", + "recipe": "spectrum:crafting_table/basalt/chiseled_polished_basalt", + "recipe2": "spectrum:crafting_table/calcite/notched_polished_calcite" + }, + { + "type": "patchouli:crafting", + "title": "砖和瓷砖å˜ç§", + "recipe": "spectrum:crafting_table/basalt/basalt_brick_stairs", + "recipe2": "spectrum:crafting_table/calcite/calcite_tile_stairs" + }, + { + "type": "patchouli:crafting", + "title": "墙", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_wall", + "recipe2": "spectrum:crafting_table/calcite/calcite_tile_wall" + }, + { + "type": "patchouli:crafting", + "title": "按钮和压力æ¿", + "recipe": "spectrum:crafting_table/basalt/polished_basalt_button", + "recipe2": "spectrum:crafting_table/calcite/polished_calcite_pressure_plate" + }, + { + "type": "spectrum:anvil_crushing", + "title": "裂纹å˜ç§", + "recipe": "spectrum:anvil_crushing/spectrum_pulverising/cracked_calcite_bricks", + "text": "You can crack Bricks & Tiles." + }, + { + "type": "patchouli:crafting", + "title": "未加工å˜ç§", + "recipe": "spectrum:crafting_table/basalt/basalt_stairs", + "recipe2": "spectrum:crafting_table/calcite/calcite_slab" + }, + { + "type": "patchouli:smelting", + "title": "回ç«", + "recipe": "spectrum:smelting/basalt_unsmelting/basalt_brick_stairs_to_polished_basalt", + "recipe2": "spectrum:smelting/calcite_unsmelting/chiseled_polished_calcite_to_polished_calcite", + "text": "釿–°çƒ§åˆ¶å³å¯å°†æ–¹å—å˜å›žæ™®é€šçš„磨制版本。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/colored_lamps.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/colored_lamps.json new file mode 100644 index 0000000000..df8acc6d2e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/colored_lamps.json @@ -0,0 +1,36 @@ +{ + "name": "彩色红石ç¯", + "icon": "spectrum:cyan_lamp", + "advancement": "spectrum:progression/colored_lamps/unlock_any_colored_lamp", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:black_lamp": 0, + "spectrum:blue_lamp": 0, + "spectrum:brown_lamp": 0, + "spectrum:cyan_lamp": 0, + "spectrum:gray_lamp": 0, + "spectrum:green_lamp": 0, + "spectrum:light_blue_lamp": 0, + "spectrum:light_gray_lamp": 0, + "spectrum:lime_lamp": 0, + "spectrum:magenta_lamp": 0, + "spectrum:orange_lamp": 0, + "spectrum:pink_lamp": 0, + "spectrum:purple_lamp": 0, + "spectrum:red_lamp": 0, + "spectrum:white_lamp": 0, + "spectrum:yellow_lamp": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)既然你已ç»èƒ½éšå¿ƒæ‰€æ¬²åœ°æ··åˆé¢œè‰²ï¼Œè¯•试看颜料的å„ç§å…¶å®ƒç”¨é€”ä¸ä¹Ÿä¸é”™ï¼Ÿæ™®é€šçš„红石ç¯è¿™ä¹ˆå¹³æ·¡ï¼Œè¯¥ç»™ç‚¹é¢œè‰²çž§çž§äº†ï¼$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/colored_lamps/cyan_lamp", + "text": "除了正常的红石ç¯åŠŸèƒ½ä»¥å¤–ï¼Œå…¶äº®èµ·çš„æ—¶å€™å‘¨å›´ä¼šå‘出对应颜色的光芒。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/colored_spore_blossoms.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/colored_spore_blossoms.json new file mode 100644 index 0000000000..18f099d5c5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/colored_spore_blossoms.json @@ -0,0 +1,36 @@ +{ + "name": "彩色孢å­èб", + "advancement": "spectrum:progression/unlock_colored_spore_blossoms", + "icon": "spectrum:orange_spore_blossom", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:black_spore_blossom": 0, + "spectrum:blue_spore_blossom": 0, + "spectrum:brown_spore_blossom": 0, + "spectrum:cyan_spore_blossom": 0, + "spectrum:gray_spore_blossom": 0, + "spectrum:green_spore_blossom": 0, + "spectrum:light_blue_spore_blossom": 0, + "spectrum:light_gray_spore_blossom": 0, + "spectrum:lime_spore_blossom": 0, + "spectrum:magenta_spore_blossom": 0, + "spectrum:orange_spore_blossom": 0, + "spectrum:pink_spore_blossom": 0, + "spectrum:purple_spore_blossom": 0, + "spectrum:red_spore_blossom": 0, + "spectrum:white_spore_blossom": 0, + "spectrum:yellow_spore_blossom": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ç©¿è¶Šæ¤è¢«èŒ‚密的洞窟的时候,你被弥漫在空中的花瓣所å¸å¼•。$(br)美妙的景象ä¸ç¦è®©ä½ æœŸå¾…用缤纷的色彩在其间留下属于你的浓é‡ä¸€ç¬”。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/colored_spore_blossoms/orange_spore_blossom", + "text": "å­¢å­èбå¯ä½¿ç”¨ä¸åŒçš„颜料进行染色。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/decostones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/decostones.json new file mode 100644 index 0000000000..6138ae3db3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/decostones.json @@ -0,0 +1,26 @@ +{ + "name": "摆件", + "icon": "spectrum:amethyst_decostone", + "advancement": "spectrum:progression/decostones/unlock_any_decostone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_decostone": 0, + "spectrum:amethyst_decostone": 0, + "spectrum:citrine_decostone": 0, + "spectrum:onyx_decostone": 0, + "spectrum:moonstone_decostone": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "摆件", + "text": "è¿™äº›ä¸¤æ ¼é«˜çš„æ‘†ä»¶å±•çŽ°çš„æ˜¯ä½ å¯¹æ‰€è§æ‰€å¾—的美学è¿ç”¨ã€‚$(br2)令人å°è±¡æ·±åˆ»çš„艺术å“啊。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/decostones/topaz_decostone", + "text": "摆件的颜色å–决于选用的å®çŸ³æ™¶ææ–™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/ethereal_platform.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/ethereal_platform.json new file mode 100644 index 0000000000..a9272e9e3d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/ethereal_platform.json @@ -0,0 +1,23 @@ +{ + "name": "缥缈平å°", + "advancement": "spectrum:progression/unlock_ethereal_platform", + "icon": "spectrum:ethereal_platform", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:ethereal_platform": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:ethereal_platform", + "title": "缥缈平å°", + "text": "$(italic)你希望有一ç§å¯ä»¥åŠç©¿é€çš„æ–¹å—在ä¸å½±å“å»ºç­‘å¤–è§‚çš„æƒ…å†µä¸‹ä¸ºä½ æ‰€ç”¨ï¼Œè€Œæµæ˜Ÿç»™äº†ä½ ä¸€ç‚¹å¯å‘。$(br2)åªè¦æ³¨å…¥ç¼ŸçŽ›ç‘™çš„å¼ºåŠ›æ½œèƒ½ï¼Œä½ å¯ä»¥æŠŠè¿™äº›è½¬çž¬å³é€çš„ç²’å­å‡ç»“为实体。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/ethereal_platform", + "text": "缥缈平å°çš„一大亮点是它åªå¯¹æ´»ç‰©èµ·æ•ˆã€‚诸如物å“之类的东西åªä¼šç©¿è¿‡å®ƒã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_chimes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_chimes.json new file mode 100644 index 0000000000..be7716708b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_chimes.json @@ -0,0 +1,26 @@ +{ + "name": "å®çŸ³æ™¶é£Žé“ƒ", + "icon": "spectrum:amethyst_chime", + "advancement": "spectrum:progression/gemstone_chimes/unlock_any_chime", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_chime": 0, + "spectrum:amethyst_chime": 0, + "spectrum:citrine_chime": 0, + "spectrum:onyx_chime": 0, + "spectrum:moonstone_chime": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "å®çŸ³æ™¶é£Žé“ƒ", + "text": "$(italic)å®çŸ³æ™¶è™½è„†å¼±è€Œéš¾ä»¥å¡‘形,但你锻造å®çŸ³æ™¶çš„能力已ç»å‡ºç¥žå…¥åŒ–,炉ç«çº¯é’。$(br2)摇曳时回å“çš„å®é“ƒæ˜¯å¦è®©ä½ å›žå¿†èµ·é©»è¶³æ™¶æ´žä¹‹é—´æ—¶æ‡µæ‡‚的起点?旅途总有å¯ç¨‹ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/gemstone_chimes/topaz_chime", + "text": "风铃的鸣å“声å–决于选用的å®çŸ³æ™¶ææ–™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_glass.json new file mode 100644 index 0000000000..6b6f919b1b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_glass.json @@ -0,0 +1,27 @@ +{ + "name": "å®çŸ³æ™¶çŽ»ç’ƒ", + "icon": "spectrum:topaz_glass", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_glass": 0, + "spectrum:amethyst_glass": 0, + "spectrum:citrine_glass": 0, + "spectrum:onyx_glass": 0, + "spectrum:moonstone_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:topaz_glass", + "title": "å®çŸ³æ™¶çŽ»ç’ƒ", + "text": "$(italic)å®çŸ³æ™¶æ—¢ç„¶å·²æ˜¯å¤©ç„¶é€æ˜Žï¼Œä½•ä¸ç”¨äºŽåˆ¶ä½œçŽ»ç’ƒå‘¢ï¼Ÿ$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/glass/topaz_glass", + "text": "å®çŸ³æ™¶çŽ»ç’ƒçš„é¢œè‰²å–决于选用的å®çŸ³æ™¶é¢œè‰²ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_lamps.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_lamps.json new file mode 100644 index 0000000000..2490bff4c5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_lamps.json @@ -0,0 +1,32 @@ +{ + "name": "å®çŸ³æ™¶ç¯", + "icon": "spectrum:citrine_basalt_lamp", + "advancement": "spectrum:collect_shimmerstone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_basalt_lamp": 0, + "spectrum:amethyst_basalt_lamp": 0, + "spectrum:citrine_basalt_lamp": 0, + "spectrum:onyx_basalt_lamp": 0, + "spectrum:moonstone_basalt_lamp": 0, + "spectrum:topaz_calcite_lamp": 0, + "spectrum:amethyst_calcite_lamp": 0, + "spectrum:citrine_calcite_lamp": 0, + "spectrum:onyx_calcite_lamp": 0, + "spectrum:moonstone_calcite_lamp": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:citrine_basalt_lamp", + "title": "å®çŸ³æ™¶ç¯", + "text": "$(italic)åˆæ¬¡é©»è¶³äºŽæ™¶æ´žä¹‹é—´çš„你注æ„到了交织的微光。现在,你学到了许多,知é“了微光石能够放大这份微光,制作亮丽的å®çŸ³æ™¶ç¯ã€‚$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/gem_lamps/citrine_basalt_lamp", + "text": "å®çŸ³æ™¶ç¯çš„颜色å–决于选用的å®çŸ³æ™¶é¢œè‰²ã€‚$(l:decoration/block_variants#polished_basalt)錾制玄武岩$()与$(l:decoration/block_variants#polished_calcite)錾制方解石$()都å¯ä»¥ä½œä¸ºåŽŸæ–™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_runes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_runes.json new file mode 100644 index 0000000000..f886441578 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_runes.json @@ -0,0 +1,36 @@ +{ + "name": "å®çŸ³æ™¶ç¬¦æ–‡", + "advancement": "spectrum:create_onyx_shard", + "icon": "spectrum:citrine_chiseled_calcite", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_chiseled_basalt": 0, + "spectrum:amethyst_chiseled_basalt": 0, + "spectrum:citrine_chiseled_basalt": 0, + "spectrum:onyx_chiseled_basalt": 0, + "spectrum:moonstone_chiseled_basalt": 0, + "spectrum:topaz_chiseled_calcite": 0, + "spectrum:amethyst_chiseled_calcite": 0, + "spectrum:citrine_chiseled_calcite": 0, + "spectrum:onyx_chiseled_calcite": 0, + "spectrum:moonstone_chiseled_calcite": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)å¯ä»¥ç¡®å®šçš„æ˜¯ï¼Œæ–¹è§£çŸ³ä¸ŽçŽ„æ­¦å²©å°†æ™¶æ´žç‰¢ç‰¢å°å­˜ï¼Œä¸€åŒæŠ¤å«ç€æ™¶æ´žè•´å«çš„能é‡ã€‚然而,世纪以æ¥ç§¯ç´¯çš„能é‡ç»ˆä¼šè¶…载,最终将晶洞的物ç†ç»“构直接洞穿。$(br2)你用微缩的形å¼å¤åˆ»äº†è¿™ä»½æ™¯è§‚。想必其中也å°å­˜äº†å¾ˆå¤šèƒ½é‡å§â€”—浓缩就是精åŽã€‚$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/runes/topaz_chiseled_basalt_from_shards", + "text": "å®çŸ³æ™¶ç¬¦æ–‡çš„æè´¨å–决于选用的å®çŸ³æ™¶ææ–™ã€‚å¯é€‰$(l:decoration/block_variants#polished_basalt)磨制玄武岩$()与$(l:decoration/block_variants#polished_calcite)磨制方解石$()ä½œä¸ºåˆæˆåŽŸæ–™ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "å¯é€‰åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/runes/amethyst_chiseled_basalt_from_cluster", + "text": "用完整的å®çŸ³æ™¶ç°‡æ¥è¿›è¡Œåˆæˆï¼Œæ•ˆçŽ‡å°±é«˜å¤šäº†ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_storage_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_storage_blocks.json new file mode 100644 index 0000000000..85bcb56bc0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/gemstone_storage_blocks.json @@ -0,0 +1,55 @@ +{ + "name": "磨制å®çŸ³æ™¶æ–¹å—", + "advancement": "spectrum:spectrum", + "icon": "spectrum:citrine_storage_block", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:topaz_storage_block": 0, + "spectrum:amethyst_storage_block": 0, + "spectrum:citrine_storage_block": 0, + "spectrum:onyx_storage_block": 0, + "spectrum:moonstone_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "å®çŸ³æ™¶æ–¹å—", + "text": "$(italic)å®çŸ³æ™¶çš„外观实在是绚烂夺目。$(br)然而,天然å®çŸ³æ™¶å—的表现还是过分温润,并ä¸é€‚åˆæ›´åŠ ç‹‚é‡Žçš„å»ºç­‘æž„æ€ã€‚但既然手头的资æºè¶³å¤Ÿï¼Œè¿™ç§äº‹æƒ…ç†åº”ä¸åœ¨è¯ä¸‹ã€‚$(br2)这些磨制方å—也å¯ä»¥ä½œä¸ºåŽ‹ç¼©çš„èµ„æºå­˜å‚¨æ–¹å¼ï¼Œä»¥ä¾¿ä¸æ—¶ä¹‹éœ€ã€‚$()" + }, + { + "type": "patchouli:crafting", + "title": "磨制托帕石晶å—", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "recipe": "spectrum:crafting_table/storage_blocks/topaz_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/topaz_shards_from_topaz_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "磨制紫水晶å—", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "recipe": "spectrum:crafting_table/storage_blocks/amethyst_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/amethyst_shards_from_amethyst_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "ç£¨åˆ¶é»„æ°´æ™¶å— ", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "recipe": "spectrum:crafting_table/storage_blocks/citrine_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/citrine_shards_from_citrine_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "磨制缟玛瑙晶å—", + "advancement": "spectrum:create_onyx_shard", + "recipe": "spectrum:crafting_table/storage_blocks/onyx_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/onyx_shards_from_onyx_storage_block" + }, + { + "type": "patchouli:crafting", + "title": "磨制月长石晶å—", + "advancement": "spectrum:midgame/collect_moonstone_shard", + "recipe": "spectrum:crafting_table/storage_blocks/moonstone_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/moonstone_shards_from_moonstone_storage_block" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/glowblocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/glowblocks.json new file mode 100644 index 0000000000..d5d719fb0c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/glowblocks.json @@ -0,0 +1,38 @@ +{ + "name": "å‘光方å—", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "icon": "spectrum:orange_glowblock", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:black_glowblock": 0, + "spectrum:blue_glowblock": 0, + "spectrum:brown_glowblock": 0, + "spectrum:cyan_glowblock": 0, + "spectrum:gray_glowblock": 0, + "spectrum:green_glowblock": 0, + "spectrum:light_blue_glowblock": 0, + "spectrum:light_gray_glowblock": 0, + "spectrum:lime_glowblock": 0, + "spectrum:magenta_glowblock": 0, + "spectrum:orange_glowblock": 0, + "spectrum:pink_glowblock": 0, + "spectrum:purple_glowblock": 0, + "spectrum:red_glowblock": 0, + "spectrum:white_glowblock": 0, + "spectrum:yellow_glowblock": 0 + }, + "pages": [ + { +"type": "patchouli:spotlight", + "item": "spectrum:orange_glowblock", + "title": "å‘光方å—", + "text": "$(italic)既然你有最为纯净的颜料,何ä¸ç€æ‰‹åˆ¶é€ ä¸€äº›é¢œè‰²åŒæ ·çº¯å‡€æ— æš‡çš„æ–¹å—呢?$(br2)你原本想起个““逆方å—â€çš„åå­—ï¼Œç„¶è€Œæ—¢ç„¶éƒ½æ˜¯æ–¹å—æœ‰ä»€ä¹ˆå¥½é€†ä¸é€†å‘¢â€¦â€¦è¿˜æ˜¯ä¸å«è¿™å了å§ï¼Ÿ$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/glowblocks/orange_glowblock", + "text": "å‘光方å—的颜色å–å†³äºŽç”¨äºŽåˆæˆçš„颜料的颜色,并且外观与色泽ä¸éšå…‰ç…§å¼ºåº¦å˜åŒ–。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/item_bowl.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/item_bowl.json new file mode 100644 index 0000000000..9cc3454bd2 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/item_bowl.json @@ -0,0 +1,24 @@ +{ + "name": "物å“底座", + "advancement": "spectrum:progression/unlock_item_bowl", + "icon": "spectrum:item_bowl_basalt", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:item_bowl_basalt": 0, + "spectrum:item_bowl_calcite": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "物å“底座", + "item": "spectrum:item_bowl_basalt", + "text": "$(italic)出行冒险的时候总会一个ä¸å°å¿ƒå¿˜äº†å¸¦ä¸Šä»€ä¹ˆä¸œè¥¿ï¼Œè¦æ˜¯æŠŠéšèº«æºå¸¦çš„用于标记归途的粉笔给忘了那å¯å°±éº»çƒ¦äº†ã€‚用底座æ¥å±•示这些必需å“以时刻æé†’自己兴许是一个好主æ„呢。$()$(br2)磨制方解石与磨制玄武岩皆å¯ç”¨äºŽåˆ¶ä½œåº•座。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/item_bowl_calcite", + "text": "将一å ç‰©å“放置在底座中会令其悬浮展示。$(br)å³å‡»ç‰©å“åº•åº§æˆ–å°†ç‰©å“æŽ·å…¥åº•åº§çš†å¯è¿›è¡Œæ”¾ç½®ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/item_roundel.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/item_roundel.json new file mode 100644 index 0000000000..62c78684ec --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/item_roundel.json @@ -0,0 +1,22 @@ +{ + "name": "ç‰©å“æ—‹è½®å°", + "advancement": "spectrum:progression/unlock_item_roundel", + "icon": "spectrum:item_roundel", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:item_roundel": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "item": "spectrum:item_roundel", + "text": "你深深的ç€è¿·äºŽé‚£äº›åœ¨è¿œå¤é—è¿¹é‡Œçš„å¾ˆå¤šæ—‹è½¬è½®å°æœºï¼Œå¹¶å†³å®šè¦å°†å…¶å¤åˆ¶å…¶è®¾è®¡æ¥æ›´å¥½çš„展示你的物å“。$(br2)$(italic)幸è¿çš„æ˜¯ï¼Œå®ƒä»¬çš„专利早已过期了。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "é˜²æŠ¤ç‰©å“æ—‹è½®å°", + "recipe": "spectrum:pedestal/tier2/item_roundel", + "text": "由你使用玄武岩和方解石亲手制作的å¤åˆ¶å“能展示更多的物å“,最多å¯åŒæ—¶å®¹çº³6组ä¸åŒçš„物å“。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/jade_vine_petal_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/jade_vine_petal_blocks.json new file mode 100644 index 0000000000..9149a05672 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/jade_vine_petal_blocks.json @@ -0,0 +1,24 @@ +{ + "name": "玉藤花瓣å—", + "advancement": "spectrum:hidden/collect_jade_vine_petals", + "icon": "spectrum:jade_vine_petal_block", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:jade_vine_petal_block": 0, + "spectrum:jade_vine_petal_carpet": 0 + }, + "pages": [ + { + "type": "patchouli:crafting", + "title": "玉藤花瓣å—", + "recipe": "spectrum:crafting_table/jade_vines/jade_vine_petal_block", + "text": "你用$(l:resources/jade_vines)玉藤$(/l)的花瓣制作了ç§ç§å¯ä¾›è£…饰的方å—。" + }, + { + "type": "patchouli:crafting", + "title": "地毯", + "recipe": "spectrum:crafting_table/jade_vines/jade_vine_petal_carpet", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/particle_spawner.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/particle_spawner.json new file mode 100644 index 0000000000..89f685f1da --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/particle_spawner.json @@ -0,0 +1,22 @@ +{ + "name": "ç²’å­ç”Ÿæˆå™¨", + "advancement": "spectrum:progression/unlock_particle_spawner", + "icon": "spectrum:particle_spawner", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:particle_spawner": 0, + "spectrum:creative_particle_spawner": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)æµæ˜Ÿå è½æ—¶å››å¤„播撒的粒å­åœ¨å¤œç©ºä¸­åˆ’出一é“ç’€ç’¨çš„å°¾è¿¹ï¼Œæ­¤ç­‰å¥‡è§‚åŠ¿å¿…ç”±ä½ æ•æ‰é‡çŽ°ã€‚ä¸ºæ­¤ï¼Œä½ æ‰“é€ äº†ç²’å­ç”Ÿæˆå™¨ï¼ŒåŽ»è¥é€ æ›´ä¸ºç¹åŽå¤šæ ·çš„æ™¯è§‚。$()$(br2)无论是平实的烟囱还是耀眼的ç«ç®­å°¾ç„°ï¼Œè¿˜æ˜¯ç”¨æ¥ç‚¹ç¼€ç¥­å›çš„æ°”势磅礴的人工雨,粒å­ç”Ÿæˆå™¨å§‹ç»ˆä¼´ä½ å·¦å³ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/particle_spawner", + "text": "在粒å­ç”Ÿæˆå™¨çš„交互界é¢å†…ä½ å¯ä»¥éšå¿ƒæŒ‡å®šä½ éœ€è¦çš„ç²’å­æ•ˆæžœã€‚é€šä¸Šçº¢çŸ³ä¿¡å·æ¥å¼€å§‹è¡¨æ¼”å§ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/phantom_frame.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/phantom_frame.json new file mode 100644 index 0000000000..52b3ea198f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/phantom_frame.json @@ -0,0 +1,29 @@ +{ + "name": "幻影物å“展示框", + "icon": "spectrum:invisible_item_frame", + "advancement": "spectrum:collect_shimmerstone", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:invisible_item_frame": 0, + "spectrum:invisible_glow_item_frame": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "幻影物å“展示框", + "text": "$(italic)è°ä¸å–œæ¬¢å±•示精美的战利å“?但展示框本身å¶å°”也有影å“观感的时候……$(br)å˜›ï¼Œä¸æ˜¯å¤§äº‹â€”—用å®çŸ³æ™¶çš„特殊光学效应就å¯ä»¥è½»æ¾è§£å†³è¿™ä¸€é—®é¢˜ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/invisible_item_frame", + "text": "幻影物å“展示框会在放入物å“åŽç«‹åˆ»éšå½¢ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "è§å…‰å¹»å½±ç‰©å“展示框", + "recipe": "spectrum:pedestal/tier1/invisible_glow_item_frame", + "text": "这款更是美妙:放入的物å“会放出迷人的光芒。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/radiant_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/radiant_glass.json new file mode 100644 index 0000000000..54bb633de1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/radiant_glass.json @@ -0,0 +1,23 @@ +{ + "name": "å‘光玻璃", + "advancement": "spectrum:collect_shimmerstone", + "icon": "spectrum:glowing_glass", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:glowing_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:glowing_glass", + "title": "å‘光玻璃", + "text": "$(italic)有没有什么更有效的办法æ¥ç…§æ˜Žä½å®…和建筑物呢?$(br2)把微光石的独特性质和玻璃结åˆåœ¨ä¸€èµ·åº”该是一个ä¸é”™çš„主æ„ï¼$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/glowing_glass", + "text": "å‘å…‰çŽ»ç’ƒï¼Œé¡¾åæ€ä¹‰ï¼Œå°±æ˜¯é®å…‰çŽ»ç’ƒçš„å¯¹ç«‹é¢ã€‚将微光石èžå…¥çŽ»ç’ƒä¹‹ä¸­ï¼ŒçŽ»ç’ƒæœ¬èº«å°±èƒ½è‡ªç„¶å‘光。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/shimmerstone_lights.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/shimmerstone_lights.json new file mode 100644 index 0000000000..49448023af --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/decoration/shimmerstone_lights.json @@ -0,0 +1,34 @@ +{ + "name": "闪光石ç¯", + "icon": "spectrum:basalt_shimmerstone_light", + "advancement": "spectrum:progression/unlock_shimmerstone_lights", + "category": "spectrum:decoration_category", + "extra_recipe_mappings": { + "spectrum:andesite_shimmerstone_light": 0, + "spectrum:basalt_shimmerstone_light": 0, + "spectrum:calcite_shimmerstone_light": 0, + "spectrum:deepslate_shimmerstone_light": 0, + "spectrum:diorite_shimmerstone_light": 0, + "spectrum:granite_shimmerstone_light": 0, + "spectrum:stone_shimmerstone_light": 0, + "spectrum:blackslag_shimmerstone_light": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)è¿˜è®°å¾—åˆæ¥ä¹åˆ°ä¹‹æ—¶ç”¨ç«æŠŠç…§æ˜Žçš„æ¼«æ¼«é•¿å¤œå—?$(br)è™½ç„¶æ°”æ°›å¾ˆè¶³ï¼Œä½†ç«æŠŠç¡®å®žä¹Ÿå¾ˆâ€”â€”åŽŸå§‹ã€‚$(br2)既然黑暗已æˆè¿‡å¾€ï¼Œé‚£è‡ªç„¶è¦ç”¨é—ªå…‰çŸ³çš„光芒去迎接当下。$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/shimmerstone_lights/basalt_shimmerstone_light", + "text": "磨制玄武岩ã€ç£¨åˆ¶æ–¹è§£çŸ³ã€å¹³æ»‘石头ã€ç£¨åˆ¶æ·±æ¿å²©ã€ç£¨åˆ¶é—ªé•¿å²©ã€ç£¨åˆ¶å®‰å±±å²©å’Œç£¨åˆ¶èŠ±å²—å²©éƒ½å¯ä»¥ç”¨äºŽåˆæˆé—ªå…‰çŸ³ç¯ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_blackslag_shimmerstone_light", + "recipe": "spectrum:pedestal/tier1/shimmerstone_lights/blackslag_shimmerstone_light", + "text": "也å¯ä½¿ç”¨é»¢é»‘矿渣æ¥åˆæˆé¢œè‰²æ›´æ·±çš„å˜ç§ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/dimension.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/dimension.json new file mode 100644 index 0000000000..a235a7bab7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/dimension.json @@ -0,0 +1,19 @@ +{ + "pages":[ + { + "item":"minecraft:bedrock", + "text":"$(italic)å¾… 办", + "type":"patchouli:spotlight" + }, + { + "text":"太阳永远ä¸ä¼šç…§è€€çš„地方", + "type":"patchouli:text", + "title":"" + } + ], + "advancement":"spectrum:midgame/__enter_dimension", + "name":"更深层次的", + "icon":"minecraft:bedrock", + "sortnum":1, + "category":"spectrum:dimension_category" +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/getting_deeper_down.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/getting_deeper_down.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/getting_deeper_down.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/getting_deeper_down.json diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/monstrosity.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/monstrosity.json similarity index 100% rename from src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/monstrosity.json rename to src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/dimension/monstrosity.json diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/big_catch.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/big_catch.json new file mode 100644 index 0000000000..7d1436b808 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/big_catch.json @@ -0,0 +1,31 @@ +{ + "name": "æ•鱼达人", + "icon": "spectrum:molten_rod", + "advancement": "spectrum:progression/enchantments/big_catch", + "flag": "spectrum:enchantment_exists_spectrum_big_catch", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)你崭新的魔法钓竿能够å¸å¼•活的生物上钩。为什么普通的钓竿ä¸å°±ä¸è¡Œå‘¢ï¼Ÿä¸çŸ¥é“诶。$(br)有了这个魔咒,你就å¯ä»¥å¢žå¤§æ•获活物的概率了。" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "spectrum:molten_rod{Enchantments: [{id: \"spectrum:big_catch\", lvl: 3s}]}", + "text": "增大æ•获活物的概率。$(br2)附魔等级上é™ï¼š3$(br)适用于光谱钓竿。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_big_catch", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入æ•鱼达人附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/big_catch_level_2", + "text": "å°†æ•鱼达人附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/clovers_favor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/clovers_favor.json new file mode 100644 index 0000000000..a82a807029 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/clovers_favor.json @@ -0,0 +1,31 @@ +{ + "name": "å››å¶è‰çš„眷佑", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/clovers_favor", + "flag": "spectrum:enchantment_exists_spectrum_clovers_favor", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)敌人能掉è½å“ªæ€•一个稀有物å“都å¯ä»¥ç®—得上你走è¿çš„æ—¶å€™ã€‚$(br)或许åªè¦è”结$(l:resources/clover)å››å¶è‰$(/l)å’Œ$(l:general/pigment#light_blue)æ·¡è“色墨水$(/l)çš„è¿æ°”å°±å¯ä»¥æŒç»­ä¸æ–­åœ°èµ°å¤§è¿ä¹Ÿè¯´ä¸å®šå‘¢ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:clovers_favor\", lvl: 3s}]}", + "text": "æé«˜ç¨€æœ‰æŽ‰è½ç‰©çš„æŽ‰çŽ‡ï¼ˆå¦‚åƒµå°¸çš„é“锭)。$(br)兴许还能æé«˜ç¨€æœ‰ç‰©å“的产出?$(br2)附魔等级上é™ï¼š3$(br)适用于近战武器。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_clovers_favor", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入四å¶è‰çš„眷佑附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/clovers_favor_level_2", + "text": "将四å¶è‰çš„眷佑附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/conflicting_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/conflicting_enchantments.json new file mode 100644 index 0000000000..8f940b753d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/conflicting_enchantments.json @@ -0,0 +1,21 @@ +{ + "name": "附魔专精", + "icon": "minecraft:enchanted_book", + "priority": true, + "secret": true, + "sortnum": 5, + "advancement": "spectrum:milestones/unlock_conflicted_enchanting_with_enchanter", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:spotlight", + "title": "附魔专精", + "item": "minecraft:diamond_chestplate{Enchantments: [{id: \"minecraft:protection\", lvl: 3s}, {id: \"minecraft:blast_protection\", lvl: 3s}, {id: \"minecraft:projectile_protection\", lvl: 3s}, {id: \"minecraft:fire_protection\", lvl: 3s}]}", + "text": "$(italic)昔日因附魔冲çªè€Œä¸èƒ½åŒæ—¶å…¼å®¹çš„çƒ¦æ¼æ—©å·²è¢«ä½ æ‚‰æ•°æŠ›è¯¸è„‘åŽã€‚$(br)如今有强大的魔法加æŒï¼Œå”¯ä¸€ä¸èƒ½æ»¡è¶³çš„åªæœ‰ä½ çš„æ¬²æœ›ã€‚" + }, + { + "type": "patchouli:text", + "text": "你现在å¯ä»¥å°†åŽŸæœ¬äº’ç›¸å†²çªçš„附魔魔咒强行å åŠ é™„é­”ã€‚$(br2)注æ„:$(br)$(italic)è¿™éœ€è¦æ¶ˆè€—很多很多ç»éªŒ$()。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/creating_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/creating_enchanted_books.json new file mode 100644 index 0000000000..e378dda465 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/creating_enchanted_books.json @@ -0,0 +1,22 @@ +{ + "name": "制作附魔书", + "icon": "minecraft:enchanted_book", + "priority": true, + "sortnum": 2, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(l:enchanting/enchanter)附魔基座$(/l)å¯ä»¥æ¶ˆè€—$(l:general/pigment)颜料$(/l)ï¼ŒåŽŸææ–™ä¸Žç»éªŒå¯¹ä¹¦è¿›è¡Œé™„魔。$(br2)虽然ç»éªŒå¼€é”€ç•¥é«˜äºŽé™„é­”å°ï¼Œä½†ä½ å¯ä»¥å¯¹é™„魔的魔咒进行更为细致入微的选å–。" + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/manual/creating_enchanted_books.png" + ], + "border": true, + "text": "$(italic)åŒæ ·çš„仪å¼å¯¹é­”法工具也能起效也说ä¸å®šï¼Ÿ" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/curse_of_the_void.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/curse_of_the_void.json new file mode 100644 index 0000000000..c1981219b7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/curse_of_the_void.json @@ -0,0 +1,26 @@ +{ + "name": "虚空诅咒", + "icon": "minecraft:wooden_pickaxe", + "advancement": "spectrum:progression/tools/unlock_voiding_pickaxe", + "flag": "spectrum:enchantment_exists_spectrum_voiding", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)这个魔咒接触到的一切都将化作虚无,如空中的尘埃一般éšé£Žæ¶ˆé€ï¼Œä¸å¤å­˜åœ¨ã€‚$(br2)然而,在你需è¦å¤§è‚†ç ´å,ä¸ç•™ç—•迹的时候,这样的魔咒åˆå¯ä»¥æ´¾ä¸Šç”¨åœºã€‚所谓““祸ç¦ç›¸ä¾â€æ˜¯ä¹Ÿã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "text": "é”€æ¯æ‰€æœ‰è¢«ç ´å的方å—。$(br2)附魔等级上é™ï¼š1$(br)适用于采掘工具。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_voiding", + "advancement": "spectrum:progression/enchantments/voiding", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入虚空诅咒附魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/disarming.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/disarming.json new file mode 100644 index 0000000000..939c0ad758 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/disarming.json @@ -0,0 +1,31 @@ +{ + "name": "缴械", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/disarming", + "flag": "spectrum:enchantment_exists_spectrum_disarming", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)ä½ æ¯å¤©éƒ½èƒ½çœ‹è§åƒµå°¸ä»¬èº«ç€æ‰‹æŒåŽä¸½å®è´µçš„装备。然而他们一死,这些东西就消失ä¸è§äº†ã€‚$(br2)那就è¶ä»–们活ç€çš„æ—¶å€™æ‰’下æ¥å§ï¼æ‹¿æ¥ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:disarming\", lvl: 2s}]}", + "text": "有概率使敌人(包括玩家ï¼ï¼‰æŽ‰è½ä»–们的装备。$(br2)附魔等级上é™ï¼š2$(br)适用于近战武器。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_disarming", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入缴械附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/disarming_level_2", + "text": "将缴械附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/enchanter.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/enchanter.json new file mode 100644 index 0000000000..b53326f5f4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/enchanter.json @@ -0,0 +1,32 @@ +{ + "name": "附魔基座", + "icon": "spectrum:enchanter", + "priority": true, + "sortnum": 0, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)ç”¨æ™®é€šçš„é™„é­”å°æ¥æ‰“é€ å®Œç¾Žå·¥å…·æœªå…æœ‰ç‚¹çŠ¯éš¾ã€‚ä½¿ç”¨è¿™æ¬¾é«˜åº¦æ”¹é€ çš„é™„é­”å°åº”该就能解决ä¸å°‘痛点了。$()$(br2)它å¯ä»¥ï¼š$(li)$(l:enchanting/creating_enchanted_books)附魔书本$(/l)$(li)$(l:enchanting/upgrading_enchanted_books)å‡çº§ä¹¦æœ¬$(/l)$(li)$(l:enchanting/enchanting_items)䏿¶ˆè€—附魔书进行物å“的附魔$(/l)" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/enchanter", + "text": "附魔基座需è¦åŸºåº§ç»“æž„æ‰èƒ½è¿è¡Œã€‚" + }, + { + "type": "patchouli:multiblock", + "name": "附魔基座结构", + "multiblock_id": "spectrum:enchanter_structure", + "enable_visualize": true, + "text": "å®çŸ³æ™¶æ–¹å—å‘¨å›´çš„æ°´æ± éœ€è¦æ³¨å…¥$(l:magical_blocks/liquid_crystal)æ¶²æ€æ°´æ™¶$()。" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表", + "text": "$(li)1个附魔基座$(li)8个物å“底座$(li)4+æ¡¶æ¶²æ€æ°´æ™¶$(li)4个磨制å®çŸ³æ™¶æ–¹å—$(li)8个å®çŸ³æ™¶ç¯$(li)12个磨制岩石柱$(li)24个磨制岩石åŠç –$(li)159个磨制岩石方å—$(br2)$(italic)基座å‡çº§æ”¾ç½®åœ¨å®çŸ³æ™¶æ–¹å—上å³å¯ç”Ÿæ•ˆã€‚$()" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/enchanting_items.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/enchanting_items.json new file mode 100644 index 0000000000..a2202e5904 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/enchanting_items.json @@ -0,0 +1,34 @@ +{ + "name": "光谱附魔", + "icon": "spectrum:enchanter", + "priority": true, + "sortnum": 1, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "title": "光谱附魔", + "text": "附魔基座的附魔工åºéžå¸¸ç®€å•:$(br)å‘$(l:decoration/item_bowl)物å“底座$(/l)中放入附魔书,基座中放入需è¦é™„魔的物å“。$(br2)和普通的附魔工åºä¸åŒï¼šè¿™ä¸æ¶ˆè€—书本,但相对地消耗更多的ç»éªŒã€‚" + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/manual/enchanting_items.png" + ], + "border": true, + "text": "最åŽé€šè¿‡$(l:magical_items/knowledge_gem)知识å®çŸ³$(/l)注入稳定的ç»éªŒæµå³å¯ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:enchanted_book", + "title": "å¤åˆ¶é™„魔书", + "text": "你也å¯ä»¥å¤åˆ¶é™„魔书。把需è¦å¤åˆ¶çš„附魔书放入$(l:decoration/item_bowl)物å“底座$(/l),普通的书放入$(l:enchanting/enchanter)附魔基座$(/l)å³å¯ã€‚$(br2)å½“ç„¶ï¼Œç»™æ™®é€šçš„ä¹¦æœ¬æ³¨å…¥é­”åŠ›ç¡®å®žè¿˜æ˜¯è¦æ¶ˆè€—大é‡ç»éªŒçš„。" + }, + { + "type": "patchouli:text", + "title": "所需ç»éªŒ", + "text": "$(bold)æ¯ä¸€é¡¹é™„魔所需ç»éªŒé¢„计在50到200之间$()。$(br)附魔的稀有程度,附魔的等级,附魔对象对魔咒的亲和力,以åŠå…¶å®ƒå„é¡¹å› ç´ éƒ½ä¼šå½±å“æ‰€éœ€ç»éªŒã€‚$(br)干扰项也会造æˆå½±å“ï¼Œä¾‹å¦‚ä¸Žç‰©å“æœ¬èº«æ— æ³•兼容的附魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/exuberance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/exuberance.json new file mode 100644 index 0000000000..d6b94bcc2c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/exuberance.json @@ -0,0 +1,31 @@ +{ + "name": "ç»éªŒå……æ²›", + "icon": "spectrum:multitool", + "advancement": "spectrum:progression/enchantments/exuberance", + "flag": "spectrum:enchantment_exists_spectrum_exuberance", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)附魔å°è™½ç„¶æ˜¯ä¸ªè¶æ‰‹æ´»å„¿ï¼Œä½†å¯¹ç»éªŒçš„æ¸´æ±‚å´è´ªå©ªæ— åº¦ã€‚$(br2)既然你所需的附魔工具日益è§é•¿ï¼ŒåŽ»æ¦¨å¹²æ•Œäººçš„æ¯ä¸€æ»´ç»éªŒæ˜¯ä¸€ä¸ªä¸é”™çš„主æ„。" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "spectrum:multitool{Enchantments: [{id: \"spectrum:exuberance\", lvl: 5s}]}", + "text": "增加掉è½çš„ç»éªŒã€‚$(br2)附魔等级上é™ï¼š5$(br)适用于近战武器ã€é‡‡æŽ˜å·¥å…·åŠå…‰è°±é’“竿。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_exuberance", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入ç»éªŒå……沛附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/exuberance_level_2", + "text": "å°†ç»éªŒå……沛附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/first_strike.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/first_strike.json new file mode 100644 index 0000000000..e198611a0f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/first_strike.json @@ -0,0 +1,31 @@ +{ + "name": "å…ˆå‘制人", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/first_strike", + "flag": "spectrum:enchantment_exists_spectrum_first_strike", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)俗语有云:先å‘制人,åŽâ€¦â€¦åŽé¢çš„æˆ‘忘了。$(br2)éšä¾¿å•¦ã€‚$(br)顺带一æï¼šä½ ç ”å‘了这个å为“先å‘制人â€çš„魔咒。é¢å¯¹å¼±å°çš„æ•Œäººçš„æ—¶å€™ï¼Œæ”»å‡»ä¼šæ›´ä¸ºæœ‰æ•ˆã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:first_strike\", lvl: 2s}]}", + "text": "巨幅增加对满血敌人的伤害。$(br2)附魔等级上é™ï¼š2$(br)适用于近战武器。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_first_strike", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入先å‘制人附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/first_strike_level_2", + "text": "将先å‘制人附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/foundry.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/foundry.json new file mode 100644 index 0000000000..05eb3a8d82 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/foundry.json @@ -0,0 +1,25 @@ +{ + "name": "自动烧炼", + "icon": "minecraft:iron_pickaxe", + "advancement": "spectrum:progression/enchantments/autosmelt", + "flag": "spectrum:enchantment_exists_spectrum_autosmelt", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)曾几何时,你还è¦å¤§è´¹å‘¨ç« åœ°ä»ŽçŸ¿çŸ³ä¸­å‡¿å–ç…¤ç‚­æ¥æç‚¼ç¼çƒ§ä½ çš„矿物。你暗中为这样的日å­å®£åˆ¤æ­»åˆ‘,细细盘算ç€å®ƒå‰©ä¸‹çš„æ—¥å­â€”—看看现在,未æ¥å¦‚æœŸè€Œè‡³å•¦ï¼Œè€æ»‘头。$(br2)å½“ç„¶ï¼Œæ˜¯æœ‰ä»£ä»·çš„ï¼šè¿™ç§æ–¹å¼çƒ§ç‚¼çš„矿石ä¸ä¼šäº§ç”Ÿç»éªŒã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:autosmelt\", lvl: 1s}]}", + "text": "自动烧炼被破å的方å—。附在钓竿上则会点燃被钩中的实体。$(br2)附魔等级上é™ï¼š1$(br)适用于采掘工具åŠå…‰è°±é’“竿。$(br)与 精准采集 åŠ å…±æŒ¯ ä¸å…¼å®¹ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_autosmelt", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入自动烧炼附魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/gilded_book.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/gilded_book.json new file mode 100644 index 0000000000..4928d51f48 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/gilded_book.json @@ -0,0 +1,21 @@ +{ + "name": "éŽé‡‘之书", + "icon": "spectrum:gilded_book", + "advancement": "spectrum:progression/unlock_gilded_book", + "category": "spectrum:enchanting_category", + "extra_recipe_mappings": { + "spectrum:gilded_book": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "éŽé‡‘之书å¯ä»¥ä½œä¸ºæ™®é€šä¹¦æœ¬åœ¨$(l:enchanting/enchanter)附魔基座$(/l)中的替代å“ã€‚æ—¢ç„¶å¯¹é­”æ³•çš„äº²å’ŒåŠ›æ›´å¼ºï¼Œé™„é­”çš„æˆæœ¬è‡ªç„¶ä¼šæ›´ä½Žå»‰ï¼Œä¹Ÿä¼šæ›´ä¸ºå¿«é€Ÿã€‚$(br)ä¸ä»…如此,éŽé‡‘之书还å¯ä»¥å°†å…¶å®ƒç‰©å“(ä¸åªæ˜¯é™„魔书)的附魔å¤åˆ¶åˆ°å…¶è‡ªèº«ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/gilded_book", + "text": "$(italic)金玉其外ä¸ä¸€å®šé‡‘玉其中。$(br)——虽然这些书确实是。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/improved_critical.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/improved_critical.json new file mode 100644 index 0000000000..4a01c8889e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/improved_critical.json @@ -0,0 +1,31 @@ +{ + "name": "暴击增强", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/improved_critical", + "flag": "spectrum:enchantment_exists_spectrum_improved_critical", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)在你一跃而起è½ä¸‹é‡å‡»çš„æ—¶å€™ï¼Œä½ å‘现你造æˆçš„伤害增加了。$(br)ä¸ºäº†å¢žè¿›è¿™äº›è·³èµ·æ”»å‡»çš„æ€§èƒ½ï¼Œä½ å‘æ˜Žäº†è¿™ä¸ªé­”å’’æ¥æé«˜è¿™äº›æ”»å‡»çš„è¾“å‡ºã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:improved_critical\", lvl: 2s}]}", + "text": "增加暴击伤害。$(br2)附魔等级上é™ï¼š2$(br)适用于近战武器。$(br)与 锋利 ä¸å…¼å®¹ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_improved_critical", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入暴击增强附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/improved_critical_level_2", + "text": "将暴击增强附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/indestructible.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/indestructible.json new file mode 100644 index 0000000000..35986577da --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/indestructible.json @@ -0,0 +1,26 @@ +{ + "name": "åšä¸å¯æ‘§", + "icon": "spectrum:multitool", + "secret": true, + "advancement": "spectrum:progression/enchantments/indestructible", + "flag": "spectrum:enchantment_exists_spectrum_indestructible", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)一路走æ¥ï¼Œè®¸å¤šå¤§å¤§å°å°çš„问题或多或少都迎刃而解,你å´ä»ç„¶æ²¡æ³•解决诸如打ç«çŸ³ç”¨å¤ªå¤šæ¬¡å°±ä¼šåæŽ‰çš„è¿™ç§æ—¥å¸¸çäº‹â€”â€”é›¶ç¢Žçš„å·¥å…·è£…å¤‡å®žåœ¨å¤ªå¤šï¼Œç¨æœ‰ä¸æ…Žå°±ä¼šæŸå。$(br)然而,手头有了基岩粉,这下总è¦ç¡¬æ°”èµ·æ¥ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "spectrum:multitool{Enchantments: [{id: \"spectrum:indestructible\", lvl: 1s}]}", + "text": "使得物å“åšä¸å¯æ‘§ï¼Œä¸å—伤害。$(br2)附魔等级上é™ï¼š1$(br)适用于所有工具。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_indestructible", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入åšä¸å¯æ‘§é™„魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/inertia.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/inertia.json new file mode 100644 index 0000000000..bba609bb10 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/inertia.json @@ -0,0 +1,31 @@ +{ + "name": "惯性", + "icon": "minecraft:iron_pickaxe", + "advancement": "spectrum:progression/enchantments/inertia", + "flag": "spectrum:enchantment_exists_spectrum_inertia", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)这个魔咒散å‘ç€ç”Ÿå‘½çš„åæ¯ã€‚$(br2)éšç€ä½ çš„æŒ–掘,工具也会慢慢熟络起对应方å—çš„æ€§è´¨ï¼Œé€æ¸è¶ŠæŒ–越快。但是,其它方å—的挖掘速度会é™ä½Žã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:inertia\", lvl: 3s}]}", + "text": "é™ä½ŽæŒ–掘速度。但连续挖相åŒç±»åž‹çš„æ–¹å—时增加挖掘速度。$(br2)附魔等级上é™ï¼š3$(br)适用于采掘工具.$(br)与 效率 ä¸å…¼å®¹ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_inertia", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入惯性附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/inertia_level_2", + "text": "将惯性附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/inventory_insertion.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/inventory_insertion.json new file mode 100644 index 0000000000..685204926d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/inventory_insertion.json @@ -0,0 +1,25 @@ +{ + "name": "自动收集", + "icon": "minecraft:iron_pickaxe", + "advancement": "spectrum:progression/enchantments/inventory_insertion", + "flag": "spectrum:enchantment_exists_spectrum_inventory_insertion", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)背包里装满泥土的时候,继续开矿的结果很å¯èƒ½å°±æ˜¯ç»§ç»­èŽ·å¾—æ³¥åœŸï¼Œè€ŒçŸ¿ç‰©å¾„ç›´è½å…¥ç†”岩……$(br2)è¦é‚£ä¹ˆå¤šæ³¥åœŸå¹²å˜›ï¼Ÿç»™æ–°äººç›–ç«æŸ´ç›’?$(br)å˜›ï¼Œåæ­£ç†”å²©çš„äº‹æƒ…ä¸€å®šè¦æœ‰ä¸ªå¤´ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:inventory_insertion\", lvl: 1s}]}", + "text": "将被破å的方å—自动å¸çº³åˆ°ç‰©å“æ ä¸­è€Œä¸è½åœ°ã€‚$(br2)附魔等级上é™ï¼š1$(br)适用于采掘工具åŠå…‰è°±é’“竿。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_inventory_insertion", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入自动收集附魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/overchanting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/overchanting.json new file mode 100644 index 0000000000..4cae33ec57 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/overchanting.json @@ -0,0 +1,31 @@ +{ + "name": "è¶…é™é™„é­”", + "icon": "minecraft:enchanted_book", + "priority": true, + "secret": true, + "sortnum": 4, + "advancement": "spectrum:milestones/unlock_overenchanting_with_enchanter", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:spotlight", + "title": "è¶…é™é™„é­”", + "item": "minecraft:enchanted_book{StoredEnchantments: [{id: \"minecraft:fortune\", lvl: 5s}]}", + "text": "$(italic)魔法与附魔基座å‘你打开了新世界的大门:$(br)è¶…é™é™„魔。$(br2)ç„¶è€Œï¼Œå°†è¿™ä¹ˆå¤šé­”æ³•èƒ½é‡æ³¨å…¥ä¸€æœ¬ä¹¦ä¸­çš„代价相当高昂。大部分情况下,å¯èƒ½å¹¶ä¸å€¼å¾—。" + }, + { + "type": "patchouli:text", + "title": "光谱世界附魔", + "text": "$(li)å››å¶è‰çš„眷佑:3 => 6$(li)缴械:2 => 4$(li)ç»éªŒå……沛:5 => 10$(li)å…ˆå‘制人:2 => 5$(li)暴击增强:2 => 4$(li)惯性:2 => 5$(li)åˆ©è½æŠŠæŸ„ï¼š2 => 4$(li)奇ç猎手:3 => 5$(li)狙击手:2 => 4" + }, + { + "type": "patchouli:text", + "title": "原版附魔", + "text": "èŠ‚è‚¢æ€æ‰‹ï¼š5 => 8$(li)çˆ†ç‚¸ä¿æŠ¤ï¼š4 => 8$(li)深海探索者:3 => 3$(li)效率:5 => 8$(li)æ‘”è½ä¿æŠ¤ï¼š4 => 6$(li)ç«ç„°é™„加:2 => 4$(li)ç«ç„°ä¿æŠ¤ï¼š4 => 8$(li)æ—¶è¿ï¼š3 => 5$(li)冰霜行者:2 => 4$(li)穿刺:5 => 8$(li)击退:2 => 5$(li)抢夺:3 => 6$(li)忠诚:3 => 4$(li)海之眷顾:3 => 5" + }, + { + "type": "patchouli:text", + "text": "饵钓:3 => 5$(li)ç©¿é€ï¼š4 => 8$(li)力é‡ï¼š5 => 8$(li)å¼¹å°„ç‰©ä¿æŠ¤ï¼š4 => 8$(li)ä¿æŠ¤ï¼š4 => 8$(li)冲击:2 => 5$(li)快速装填:3 => 5$(li)水下呼å¸ï¼š3 => 6$(li)æ¿€æµï¼š3 => 4$(li)锋利:5 => 8$(li)äº¡çµæ€æ‰‹ï¼š5 => 8$(li)çµé­‚疾行:3 => 4$(li)横扫之刃:3 => 7$(li)è†æ£˜ï¼š3 => 6$(li)è€ä¹…:3 => 6" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/pest_control.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/pest_control.json new file mode 100644 index 0000000000..b3f79ae1ee --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/pest_control.json @@ -0,0 +1,25 @@ +{ + "name": "害虫防治", + "icon": "minecraft:iron_pickaxe", + "advancement": "spectrum:progression/enchantments/pest_control", + "flag": "spectrum:enchantment_exists_spectrum_pest_control", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)你在地下å‘现了由æŸä¸ªç–‘ä¼¼å²å‰æ–‡æ˜Žå»ºé€ çš„è¦å¡žå»ºç­‘。$(br)他们的科技似乎早已先进到å¯ä»¥æ‰“开异世界传é€é—¨ï¼Œä½†å®³è™«å­³ç”Ÿçš„问题怎么就没想ç€ç®¡ç®¡å‘¢â€¦â€¦ï¼Ÿ" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:pest_control\", lvl: 1s}]}", + "text": "采集被虫蚀的方å—的时候清除蠹虫。$(br2)附魔等级上é™ï¼š1$(br)适用于采掘工具.$(br)与 共振 ä¸å…¼å®¹ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_pest_control", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入害虫防治附魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/resonance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/resonance.json new file mode 100644 index 0000000000..45e88f2a39 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/resonance.json @@ -0,0 +1,62 @@ +{ + "name": "共振", + "icon": "spectrum:resonant_pickaxe", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "flag": "spectrum:enchantment_exists_spectrum_resonance", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)你对æŸäº›æ–¹å—确实饶有兴趣,但无论怎么轻柔地挖掘你都无法完美无缺地å–得到它们。然而,这些方å—以æŸç§ç‰¹åˆ«çš„频率振动,与你最近å‘现的å®çŸ³æ™¶é¢‡ä¸ºç±»ä¼¼ã€‚$(br)用正确的频率采集,它们终于能被你收入囊中。" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", + "text": "ç”¨æ¸©å’Œçš„æŒ¯åŠ¨ä½¿ä¸€äº›æ–¹å—æŽ‰è½è‡ªèº«ã€‚$(br2)附魔等级上é™ï¼š1$(br)适用于采掘工具.$(br)与 自动烧炼 åŠ å®³è™«é˜²æ²» ä¸å…¼å®¹ã€‚$(br2)$(br2)" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "advancement": "spectrum:progression/enchantments/resonance", + "recipe": "spectrum:enchanter/spectrum_books/book_resonance", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入共振附魔。" + }, + { + "type": "patchouli:spotlight", + "title": "å®çŸ³æ™¶èн", + "item": "minecraft:medium_amethyst_bud", + "text": "å°ç‚¹çš„æ™¶èŠ½æ›´ä¸ºè„†å¼±ï¼Œä¸Žå…¶æ¯å²©æ— æ³•分割。$(br2)然而,如果使用正确的频率一åŒå…±æŒ¯ï¼Œè¿™äº›æ™¶èŠ½ä¼¼ä¹Žä¼šè‡ªç„¶è€Œç„¶åœ°è„±è½ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "高纯资æº", + "item": "spectrum:pure_iron", + "advancement": "spectrum:lategame/collect_pure_resource", + "text": "使用带有共振附魔的工具挖掘矿石能掉è½å…¶$(l:resources/pure_resources)高纯的矿物$(),而éžå…¶åŽŸå…ˆçš„ç²—çŸ¿ã€‚$(br2)该过程使用时è¿é™„魔也能生效...除éžä½ æœ‰ä»€ä¹ˆæ–¹æ³•能够将这两ç§äº’相排斥的附魔结åˆèµ·æ¥ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "彩色树å¶", + "item": "spectrum:orange_leaves", + "text": "彩色树å¶ä¼šè¢«æŒ¯åŠ¨æ¿€æ´»ï¼Œä»Žè€ŒæŽ‰è½æ ‘苗。$(br2)将共振魔咒应用在锄头上进行采掘,就å¯ä»¥æŒç»­èŽ·å¾—$(l:general/colored_trees)彩色树苗$()了。" + }, + { + "type": "patchouli:spotlight", + "title": "采集刷怪笼", + "item": "minecraft:spawner", + "text": "在洞穴中探险的时候你å‘现了ä¸å°‘笼å­ï¼Œæ¯æ¯é è¿‘其便会å出无穷无尽的怪物浪潮攻击你。你ä¸å¾—ä¸å¥½å¥‡è¿™ç©¶ç«Ÿæ˜¯ä»€ä¹ˆç¥žç§˜äººå£«çš„æ°ä½œï¼Œç©¶ç«Ÿæœ‰ä»€ä¹ˆç›®çš„ï¼Œè¿™ç§éªšæ‰°æ–¹å¼ç©¶ç«Ÿå€¼ä¸å€¼å¾—。但是,有一点是很明确的:这些笼å­è‚¯å®šå¤§æœ‰ç”¨å¤„,å·å·æ‹¿èµ°å‡ ä¸ªä»–应该ä¸ä¼šä»‹æ„ï¼" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:reinforced_deepslate", + "text": "è¿™ç§èƒ½åœ¨åœ°ä¸‹è¿œå¤åŸŽå¸‚中找到的éžå¸¸åšç¡¬çš„石头å¯è¢«çŽ©å®¶èŽ·å¾—ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "被虫蚀的方å—", + "item": "minecraft:infested_stone_bricks", + "text": "轻柔的振动能够安抚方å—中的蠹虫。$(br2)如此,你å¯ä»¥æŠŠè£…有蠹虫的方å—ç›´æŽ¥è£…èµ°è€Œä¸æƒŠæ‰°å®ƒä»¬ã€‚$(br)大仇得报ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/sniper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/sniper.json new file mode 100644 index 0000000000..e44bdce53d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/sniper.json @@ -0,0 +1,25 @@ +{ + "name": "狙击手", + "icon": "minecraft:crossbow", + "advancement": "spectrum:progression/enchantments/sniper", + "flag": "spectrum:enchantment_exists_spectrum_sniper", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)相比弓之万众瞩目,弩实在是太ä¸èµ·çœ¼äº†ã€‚$(br2)然而狙击手魔咒终于让弩æˆä¸ºåˆä¸€æ¬¾å¿«å‡†ç‹ çš„远程利器。" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:crossbow{Enchantments: [{id: \"spectrum:sniper\", lvl: 2s}]}", + "text": "增加弹射物的伤害,精准度与速度。$(br2)附魔等级上é™ï¼š2$(br)适用于弩。$(br)与 多é‡å°„击 ä¸å…¼å®¹ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_sniper", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入狙击手附魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/steadfast.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/steadfast.json new file mode 100644 index 0000000000..42e231f80a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/steadfast.json @@ -0,0 +1,25 @@ +{ + "name": "åšéŸ§", + "icon": "spectrum:multitool", + "advancement": "spectrum:progression/enchantments/steadfast", + "flag": "spectrum:enchantment_exists_spectrum_steadfast", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)想想你的日常:手æ¡é«˜ç²¾å°–é™„é­”è£…å¤‡ï¼Œä½†ä¸€è„±æ‰‹å®ƒå°±ç›´å†²ç†”å²©ï¼›åœ¨æœ«å½±äººçš„åœ°ç›˜å°±æ›´åŠ ææ€–:无边的虚空ç€å®žä»¤äººå¤´çš®å‘麻。$(br2)用上这个新魔咒,你的装备就å†ä¹Ÿæ²¡æœ‰è¿™ç§åŽé¡¾ä¹‹å¿§å•¦ï¼ˆç”šè‡³åŒ…括仙人掌)ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "spectrum:multitool{Enchantments: [{id: \"spectrum:steadfast\", lvl: 1s}]}", + "text": "å˜ä¸ºæŽ‰è½ç‰©æ—¶ï¼Œå…ç–«ç»å¤§å¤šæ•°ç±»åž‹çš„伤害,包括熔岩与虚空伤害。$(br2)附魔等级上é™ï¼š1$(br)适用于所有工具。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_steadfast", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入åšéŸ§é™„魔。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/tight_grip.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/tight_grip.json new file mode 100644 index 0000000000..35105efa9f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/tight_grip.json @@ -0,0 +1,31 @@ +{ + "name": "åˆ©è½æŠŠæŸ„", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/tight_grip", + "flag": "spectrum:enchantment_exists_spectrum_tight_grip", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)加快武器挥舞的速度简直是é¥ä¸å¯åŠçš„æ¢¦æƒ³ã€‚ä¸Žæ­¤åŒæ—¶ï¼Œä½ æŒ¥å‡ºçš„æ¯ä¸€å‡»èŠ±æŽ‰çš„åŠ›æ°”åˆä¸å¾—ä¸è®©ä½ åœä¸‹å–˜æ¯ã€‚$(br)éš¾é“æ˜¯è€äº†å—?$(br2)对武器åšå‡ºå¿…è¦çš„æ”¹é€ çš„è¯ï¼Œå°±å¯ä»¥ç¨å¾®è½»æ¾ä¸€äº›äº†ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:tight_grip\", lvl: 2s}]}", + "text": "é™ä½Žæ”»å‡»å†·å´ã€‚$(br2)附魔等级上é™ï¼š2$(br)适用于近战武器。" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_tight_grip", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“åº•åº§ä¸­ï¼Œä¸ºæ™®é€šçš„ä¹¦æœ¬æ³¨å…¥åˆ©è½æŠŠæŸ„é™„é­”ã€‚" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/tight_grip_level_2", + "text": "å°†åˆ©è½æŠŠæŸ„é™„é­”ä»Ž1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/treasure_hunter.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/treasure_hunter.json new file mode 100644 index 0000000000..0072324a3c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/treasure_hunter.json @@ -0,0 +1,36 @@ +{ + "name": "奇ç猎手", + "icon": "minecraft:iron_sword", + "advancement": "spectrum:progression/enchantments/treasure_hunter", + "flag": "spectrum:enchantment_exists_spectrum_treasure_hunter", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)画中所è§çš„ç”±çµé­‚沙与凋çµéª·é«…头颅组æˆçš„三首怪物是什么呢?你想自己组装一个看看,但你在下界è¦å¡žç äº†ä¸‰äº”ä¸ªå°æ—¶ï¼Œé™¤äº†å·®ç‚¹æŠŠè‡ªå·±çš„头给é€èµ°ä»¥å¤–,你åªèƒ½ä»Žç•¥å¾®æ¾åž®çš„那几个骷髅肩上勉强收集到零星一二。哎呀算了å§ï¼Œä¼˜å…ˆè€ƒè™‘自己的脑袋还在ä¸åœ¨ï¼" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:cow_head", + "text": "$(italic)诶等下,还有闪电苦力怕ï¼å®ƒä»¬å“亮而磅礴的炸裂足以把生物的脑袋直接震下æ¥ï¼ï¼ˆæœ€å·®æƒ…况:你自己)$(br)你试图用$(l:resources/lightning_stones)风暴之石$(/l)å¤åˆ»è¿™ç­‰é›·éœ†éœ‡æ€’。$(br)于是“奇ç猎手â€å“亮登场ï¼çŽ°åœ¨ä½ å¯ä»¥è‚†æ„$(l:creating_life/mob_heads)枭首$(/l)啦ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "性质", + "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:treasure_hunter\", lvl: 3s}]}", + "text": "åœ¨å‡»æ€æ€ªç‰©æ—¶æœ‰å‡ çŽ‡æŽ‰è½å¤´ã€‚$(br2)附魔等级上é™ï¼š3$(br)适用于近战武器。$(br)与 抢夺 ä¸å…¼å®¹ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "附魔酿–¹", + "recipe": "spectrum:enchanter/spectrum_books/book_treasure_hunter", + "text": "ä½ å¯ä»¥å°†æ‰€éœ€ææ–™åŠé¢œæ–™æ”¾å…¥é™„魔基座周围的物å“底座中,为普通的书本注入奇ç猎手附魔。" + }, + { + "type": "spectrum:enchanter_upgrading", + "title": "å‡çº§é™„é­”", + "recipe": "spectrum:enchantment_upgrade/spectrum/treasure_hunter_level_2", + "text": "将奇ç猎手附魔从1级å‡çº§è‡³2级的花销并ä¸é«˜æ˜‚。$(br)但éšç€ç­‰çº§é€çº§é€’增,所消耗的颜料和ç»éªŒä¹Ÿä¼šå¿«é€Ÿå¢žåŠ ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/upgrading_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/upgrading_enchanted_books.json new file mode 100644 index 0000000000..0b79269a85 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/upgrading_enchanted_books.json @@ -0,0 +1,22 @@ +{ + "name": "å‡çº§é™„魔书", + "icon": "minecraft:enchanted_book", + "priority": true, + "sortnum": 3, + "advancement": "spectrum:midgame/enter_liquid_crystal", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)附魔魔法与颜色魔法确实有很多共通之处,因此,附魔书与$(l:general/pigment)颜料$(/l)相互结åˆçš„æˆåŠŸç»“æžœä¸æ¯«ä¸è®©ä½ æ„Ÿåˆ°æƒŠè®¶ã€‚$()$(br2)将附魔书放在基座中,用相应的颜料环绕,å†ç”¨ç¨³å®šçš„ç»éªŒæµè¾“é€èƒ½é‡å³å¯å‡çº§ä¹¦çš„等级。" + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/manual/upgrading_enchanted_books.png" + ], + "border": true, + "text": "打断这个过程的è¯ï¼Œå°±ä¼šå®Œå…¨ä¸­æ­¢ï¼Œè¯·å°å¿ƒæ³¨æ„。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/vanilla_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/vanilla_enchantments.json new file mode 100644 index 0000000000..96ab2671f3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/enchanting/vanilla_enchantments.json @@ -0,0 +1,280 @@ +{ + "name": "原版附魔", + "icon": "spectrum:multitool", + "priority": true, + "sortnum": 6, + "advancement": "spectrum:progression/enchantments/disarming", + "category": "spectrum:enchanting_category", + "pages": [ + { + "type": "patchouli:text", + "text": "åˆ©ç”¨ç”¨æ™®é€šçš„åˆæˆå°å°±å¯ä»¥åœ¨é™„魔基座上获å–éšå¤„å¯è§çš„通常附魔了。$(br2)è¿™äº›é™„é­”åŒæ ·å¯ä»¥ç”¨å¯¹åº”的颜料进行å‡çº§ã€‚" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "水下速掘", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_aqua_affinity", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "èŠ‚è‚¢æ€æ‰‹", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_bane_of_arthropods", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "绑定诅咒", + "advancement": "spectrum:progression/enchantments/vanilla_curses", + "recipe": "spectrum:enchanter/vanilla_books/book_binding_curse", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "çˆ†ç‚¸ä¿æŠ¤", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_blast_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "引雷", + "advancement": "spectrum:progression/enchantments/vanilla_trident_channeling", + "recipe": "spectrum:enchanter/vanilla_books/book_channeling", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "深海探索者", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_depth_strider", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "效率", + "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", + "recipe": "spectrum:enchanter/vanilla_books/book_efficiency", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "æ‘”è½ä¿æŠ¤", + "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", + "recipe": "spectrum:enchanter/vanilla_books/book_feather_falling", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "ç«ç„°é™„加", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_fire_aspect", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "ç«ç„°ä¿æŠ¤", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_fire_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "ç«çŸ¢", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_flame", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "æ—¶è¿", + "advancement": "spectrum:progression/enchantments/vanilla_luck", + "recipe": "spectrum:enchanter/vanilla_books/book_fortune", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "冰霜行者", + "advancement": "spectrum:progression/enchantments/vanilla_treasure", + "recipe": "spectrum:enchanter/vanilla_books/book_frost_walker", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "穿刺", + "advancement": "spectrum:progression/enchantments/vanilla_trident", + "recipe": "spectrum:enchanter/vanilla_books/book_impaling", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "æ— é™", + "advancement": "spectrum:progression/enchantments/vanilla_projectile_infinity", + "recipe": "spectrum:enchanter/vanilla_books/book_infinity", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "击退", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_knockback", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "抢夺", + "advancement": "spectrum:progression/enchantments/vanilla_luck", + "recipe": "spectrum:enchanter/vanilla_books/book_looting", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "忠诚", + "advancement": "spectrum:progression/enchantments/vanilla_trident", + "recipe": "spectrum:enchanter/vanilla_books/book_loyalty", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "海之眷顾", + "advancement": "spectrum:progression/enchantments/vanilla_water_luck", + "recipe": "spectrum:enchanter/vanilla_books/book_luck_of_the_sea", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "饵钓", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_lure", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "ç»éªŒä¿®è¡¥", + "advancement": "spectrum:progression/enchantments/vanilla_treasure", + "recipe": "spectrum:enchanter/vanilla_books/book_mending", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "多é‡å°„击", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_multishot", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "ç©¿é€", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_piercing", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "力é‡", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_power", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "å¼¹å°„ç‰©ä¿æŠ¤", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_projectile_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "ä¿æŠ¤", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_protection", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "冲击", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_punch", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "快速装填", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "recipe": "spectrum:enchanter/vanilla_books/book_quick_charge", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "水下呼å¸", + "advancement": "spectrum:progression/enchantments/vanilla_water", + "recipe": "spectrum:enchanter/vanilla_books/book_respiration", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "æ¿€æµ", + "advancement": "spectrum:progression/enchantments/vanilla_trident", + "recipe": "spectrum:enchanter/vanilla_books/book_riptide", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "锋利", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_sharpness", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "精准采集", + "advancement": "spectrum:progression/enchantments/vanilla_silk_touch", + "recipe": "spectrum:enchanter/vanilla_books/book_silk_touch", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "äº¡çµæ€æ‰‹", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_smite", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "çµé­‚疾行", + "advancement": "spectrum:progression/enchantments/vanilla_treasure", + "recipe": "spectrum:enchanter/vanilla_books/book_soul_speed", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "横扫之刃", + "advancement": "spectrum:progression/enchantments/vanilla_damage", + "recipe": "spectrum:enchanter/vanilla_books/book_sweeping", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "è†æ£˜", + "advancement": "spectrum:progression/enchantments/vanilla_protection", + "recipe": "spectrum:enchanter/vanilla_books/book_thorns", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "è€ä¹…", + "advancement": "spectrum:progression/enchantments/vanilla_unbreaking", + "recipe": "spectrum:enchanter/vanilla_books/book_unbreaking", + "text": "" + }, + { + "type": "spectrum:enchanter_crafting", + "title": "消失诅咒", + "advancement": "spectrum:progression/enchantments/vanilla_curses", + "recipe": "spectrum:enchanter/vanilla_books/book_vanishing_curse", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/ashen_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/ashen_circlet.json new file mode 100644 index 0000000000..284b6b970e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/ashen_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "余烬头ç®", + "advancement": "spectrum:progression/unlock_ashen_circlet", + "icon": "spectrum:ashen_circlet", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:ashen_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "镶嵌于头ç®ä¹‹é—´çš„绯红å®çŸ³åœ¨ä¸‹ç•Œè‚²æˆï¼Œè‡ªèƒ½è½»æ˜“叿”¶å‘¨èº«çš„ç¼çƒ­ã€‚$(br)它甚至能帮你短暂地抵御熔岩的高温——这样需è¦å†·å´ã€‚$(br)åªè¦æ­é…ä¸€ä»¶èµ‹äºˆé˜²ç«æ•ˆæžœçš„物å“,在熔岩中游泳便是如鱼得水。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/ashen_circlet", + "text": "$(li)å…ç–«ç«ç„°ä¸Žç‚½çƒ­åœ°è¡¨é€ æˆçš„伤害。$(li)åªè¦ç»è¿‡å†·å´ï¼Œå°±èƒ½æš‚时抵御熔岩的伤害。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/azure_dike_equipment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/azure_dike_equipment.json new file mode 100644 index 0000000000..ce978359e3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/azure_dike_equipment.json @@ -0,0 +1,43 @@ +{ + "name": "è”šè“æŠ¤ç›¾è£…å¤‡", + "advancement": "spectrum:progression/unlock_any_azure_dike_equipment", + "icon": "spectrum:azure_dike_ring", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:azure_dike_ring": 0, + "spectrum:azure_dike_belt": 0, + "spectrum:shieldgrasp_amulet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "å°†$(l:resources/azurite)石é’$(/l)与$(l:general/pigment#blue)è“色颜料$(/l)çš„ä¿æŠ¤æ€§è´¨ç›¸ç»“åˆçš„åˆ›æƒ³ç‚¹ç‡ƒäº†ä½ çš„å…´è¶£ã€‚è¿™ç§ææ–™çš„å‘¨å›´æœ‰ä¸€ç§é€æ˜Žçš„åŠ›åœºï¼Œä½ è´¹äº†å¥½äº›åŠ›æ°”æ‰æ‘¸ç€å®ƒã€‚$(br2)$(italic)还算有点东西……" + }, + { + "type": "patchouli:text", + "title": "è”šè“æŠ¤ç›¾", + "text": "一ç§é­”æ³•åŠ›åœºåŒ…è£¹äº†ä½ çš„èº«èº¯ï¼Œä¿æŠ¤ä½ å…å—伤害。$(br)护盾消耗åŽä¼šç¼“慢充能到最大值。$(br2)æ¯ä¸€ä»¶è”šè“护盾装备都会增加护盾的最大值上é™ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "è”šè“æŠ¤ç›¾æˆ’æŒ‡", + "advancement": "spectrum:progression/unlock_azure_dike_ring", + "recipe": "spectrum:fusion_shrine/trinkets/azure_dike_ring", + "text": "$(li)æå‡$(c_green)4$()点$(c_blue)è”šè“æŠ¤ç›¾å€¼$()上é™ã€‚$(li)略微加速$(c_blue)è”šè“æŠ¤ç›¾$()充能。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "è”šè“æŠ¤ç›¾è…°å¸¦", + "advancement": "spectrum:progression/unlock_azure_dike_belt", + "recipe": "spectrum:fusion_shrine/trinkets/azure_dike_belt", + "text": "$(li)æå‡$(c_green)6$()点$(c_blue)è”šè“æŠ¤ç›¾å€¼$()上é™ã€‚$(li)增加å—击åŽ$(c_blue)è”šè“æŠ¤ç›¾$()çš„æ¢å¤ï¼Œä»¥æ­¤åŠ é€Ÿå……èƒ½ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "åšç›¾æŠ¤ç¬¦", + "advancement": "spectrum:progression/unlock_shieldgrasp_amulet", + "recipe": "spectrum:fusion_shrine/trinkets/shieldgrasp_amulet", + "text": "为护符注入$(l:magic/ink)è“色墨水$(/l)å³å¯æå‡$(c_blue)è”šè“æŠ¤ç›¾å€¼$()上é™ã€‚$(br)一开始并ä¸ä¼šç‰¹åˆ«æ¶ˆè€—能é‡ï¼Œä½†æ³¨å…¥å¢¨æ°´è¶Šå¤šï¼Œæ¶ˆè€—的能é‡ä¹Ÿä¼šè¶Šå¤šï¼Œå¹¶å‘ˆæŒ‡æ•°å¢žé•¿ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/base_trinkets.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/base_trinkets.json new file mode 100644 index 0000000000..fd117ea747 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/base_trinkets.json @@ -0,0 +1,57 @@ +{ + "name": "基础饰å“", + "advancement": "spectrum:progression/unlock_any_base_trinket", + "icon": "spectrum:fanciful_stone_ring", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:fanciful_stone_ring": 0, + "spectrum:fanciful_belt": 0, + "spectrum:fanciful_pendant": 0, + "spectrum:fanciful_circlet": 0, + "spectrum:fanciful_bismuth_ring": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "花ä¿çŸ³æˆ’指", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_stone_ring", + "advancement": "spectrum:progression/unlock_fanciful_stone_ring", + "text": "åŸºç¡€é¥°å“æ˜¯åˆ¶ä½œé«˜çº§é¥°å“çš„ææ–™ã€‚å¯ç”¨çš„æˆå“饰å“都须ç»ç”±$(l:general/fusion_shrine)èžåˆåœ£å›$()制作。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "花ä¿å¤´ç®", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_circlet", + "advancement": "spectrum:progression/unlock_fanciful_circlet", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "花ä¿è…°å¸¦", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_belt", + "advancement": "spectrum:progression/unlock_fanciful_belt", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "花ä¿åŠå ", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_pendant", + "advancement": "spectrum:progression/unlock_fanciful_pendant", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "èŠ±ä¿æ‰‹å¥—", + "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_gloves", + "advancement": "spectrum:progression/unlock_fanciful_gloves", + "text": "" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "花ä¿é“‹æ™¶æˆ’指", + "recipe": "spectrum:pedestal/tier4/fanciful_bismuth_ring", + "advancement": "spectrum:progression/unlock_fanciful_bismuth_ring", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/bedrock_armor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/bedrock_armor.json new file mode 100644 index 0000000000..a45e8509a9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/bedrock_armor.json @@ -0,0 +1,38 @@ +{ + "name": "基岩盔甲", + "advancement": "spectrum:progression/unlock_bedrock_tools", + "icon": "spectrum:bedrock_chestplate", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bedrock_helmet": 0, + "spectrum:bedrock_chestplate": 0, + "spectrum:bedrock_leggings": 0, + "spectrum:bedrock_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ä½ æ‰‹å¤´æœ€å¼ºéŸ§çš„ææ–™å°±æ˜¯ä¸‹ç•Œåˆé‡‘了。然而,修å¤ä¸‹ç•Œåˆé‡‘盔甲ä¸ä»…比盔甲本身还贵,盔甲的æŸè€—ä¹Ÿä¼šå‰Šå¼±å…¶ä¿æŠ¤åŠŸèƒ½ã€‚ä½†åªè¦ç›”甲$(italic)ä¸ä¼š$()å—æŸï¼Œè¿™äº›é—®é¢˜å°±è¿Žåˆƒè€Œè§£äº†ï¼$(br)$(italic)åŽè‡ªç£çŸ³ç”Ÿï¼Œå²æœˆä¸èš€ï¼Œé£Žé›¨ä¸å€¾ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_helmet", + "text": "基岩头盔自带$(bold)å¼¹å°„ç‰©ä¿æŠ¤V$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_chestplate", + "text": "基岩胸甲自带$(bold)ä¿æŠ¤V$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_leggings", + "text": "基岩护腿自带$(bold)çˆ†ç‚¸ä¿æŠ¤V$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_boots", + "text": "基岩é´å­è‡ªå¸¦$(bold)ç«ç„°ä¿æŠ¤V$()。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/bedrock_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/bedrock_tools.json new file mode 100644 index 0000000000..9258f1f83e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/bedrock_tools.json @@ -0,0 +1,68 @@ +{ + "name": "基岩工具", + "advancement": "spectrum:progression/unlock_bedrock_tools", + "icon": "spectrum:bedrock_pickaxe", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:bedrock_pickaxe": 0, + "spectrum:bedrock_axe": 0, + "spectrum:bedrock_shovel": 0, + "spectrum:bedrock_sword": 0, + "spectrum:bedrock_hoe": 0, + "spectrum:bedrock_bow": 0, + "spectrum:bedrock_crossbow": 0, + "spectrum:bedrock_shears": 0, + "spectrum:bedrock_fishing_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你进入新世界的第一件事情,就是èšé›†æ‘民,å¸å¼•僵尸,感染治愈,å夿“作直到ç»éªŒä¿®è¡¥å‡ºè´§ä¸ºæ­¢ã€‚没头没脑焦头烂é¢åœ°åˆ·ä¸Šé‚£ä¹ˆä¸‰äº”天,难é“åªæ˜¯ä¸ºäº†æ—¥åŽä¸ç”¨äº²è‡ªåŠ¨æ‰‹ä¿®å¤å·¥å…·è€Œå·²ï¼Ÿ$(br)ä¸å•æ— èŠï¼Œè¿˜æœ‰ç§æ—迫害之嫌。现在,你既然能处ç†åŸºå²©ï¼Œä¹Ÿå°±ä¸€æ ·èƒ½ç»™å‡ºæ›´åˆé€‚æ›´æ–¹ä¾¿çš„è§£å†³æ–¹æ¡ˆï¼Œæ˜¯ä¸æ˜¯ï¼Ÿ" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_pickaxe", + "text": "基岩é•自带$(bold)精准采集$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_axe", + "text": "基岩斧自带$(bold)效率VI$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_shovel", + "text": "基岩锹自带$(bold)效率VI$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_sword", + "text": "基岩剑自带$(bold)锋利VI$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_hoe", + "text": "基岩锄自带$(bold)æ—¶è¿IV$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_bow", + "text": "基岩弓自带$(bold)力é‡VI$()。" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bedrock_crossbow", + "text": "基岩弩自带$(bold)快速装填IV$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_shears", + "text": "基岩剪刀自带$(bold)精准采集$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/bedrock/bedrock_fishing_rod", + "text": "基岩钓鱼竿自带$(bold)海之眷顾IV$()。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/circlet_of_arrogance.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/circlet_of_arrogance.json new file mode 100644 index 0000000000..8286f2902b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/circlet_of_arrogance.json @@ -0,0 +1,21 @@ +{ + "name": "自大头ç®ï¼ˆæš‚译)", + "advancement": "spectrum:progression/unlock_circlet_of_arrogance", + "icon": "spectrum:circlet_of_arrogance", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:circlet_of_arrogance": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "为了追求更高的效果加æˆï¼Œä½ è¿«åˆ‡çš„寻找一切å¯ä»¥ä½©æˆ´çš„高加æˆé¥°å“。$(br)这里便有这么一ç§å¤´ç®ï¼Œä½†ä¼šåœ¨ä½ æ·±å—é‡å‡»æ—¶è®©ä½ çš„处境更加å±é™©ã€‚$(br)为了最终æžçš„æ•ˆæžœåŠ æˆï¼Œä½ æ„¿æ„戴上这个头ç®ï¼Œä¸è®¡ä»»ä½•代价å—...?$(br2)当然愿æ„。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/circlet_of_arrogance", + "text": "$(italic)骄傲使人è½åŽã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/constructors_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/constructors_staff.json new file mode 100644 index 0000000000..59b107610a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/constructors_staff.json @@ -0,0 +1,21 @@ +{ + "name": "建造法æ–", + "advancement": "spectrum:progression/unlock_constructors_staff", + "icon": "spectrum:constructors_staff", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:constructors_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "我敢说,你通常会把时间大把的花在建造上é¢ã€‚$(br2)或许你早已对ä¸åœçš„æ”¾ç½®é‡å¤çš„æ–¹å—感到厌倦了,$(italic)䏿˜¯å—?" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/constructors_staff", + "text": "æŒ‰ä½æ½œè¡Œé”®å¹¶å³å‡»ä»¥é€‰å–所有å¯ç”¨çš„æ”¾ç½®æ¨¡å¼ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/dreamflayer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/dreamflayer.json new file mode 100644 index 0000000000..32e33827d2 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/dreamflayer.json @@ -0,0 +1,21 @@ +{ + "name": "离梦利刃", + "advancement": "spectrum:progression/unlock_dreamflayer", + "secret": true, + "icon": "spectrum:dreamflayer", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:dreamflayer": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "论外级武器。“进攻就是最好的防御â€çš„完美诠释。$(br)离梦利刃天然èµäºˆä½ åŠ›é‡çš„平衡:$(br)对方的盔甲值相比于你越多,你造æˆçš„伤害就越高。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/dreamflayer", + "text": "$(italic)想化身裸装近战大神?用$()$(br2)$(k:sneak)+$(k:use)é”®å³å¯å°†å…¶å……能,期间会快速消耗大é‡$(c_red)红色墨水$()墨水。区区削é“如泥破甲如风,ä¸è¿‡å¦‚æ­¤ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/exchanging_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/exchanging_staff.json new file mode 100644 index 0000000000..983ed52896 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/exchanging_staff.json @@ -0,0 +1,42 @@ +{ + "name": "æ–¹å—æ›¿æ¢é­”æ–", + "advancement": "spectrum:progression/unlock_exchange_staff", + "icon": "spectrum:exchange_staff", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:exchange_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "åªè¦ä¸æ˜¯ä½åœ¨ç«æŸ´ç›’é‡Œçš„â€”â€”æˆ–è€…è¿žå®¶éƒ½æ²¡æœ‰çš„â€”â€”åº”è¯¥éƒ½æƒ³è¿‡æ–¹å—æ›¿æ¢é­”æ–的点å­ã€‚$(br2)挖矿旅程åˆå˜å¾—妙趣横生了起æ¥ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier4/exchange_staff", + "text": "潜行å³å‡»å³å¯é€‰æ‹©å¯ç”¨çš„æ”¾ç½®æ¨¡å¼ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "æ—¶è¿é­”å’’", + "item": "spectrum:exchange_staff{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", + "text": "使用$(l:enchanting/enchanting_items)附魔基座$(/l)ä¸ºé­”æ–æ³¨å…¥æ—¶è¿é­”å’’å³å¯åœ¨è½¬æ¢çŸ¿çŸ³çš„æ—¶å€™æŽ‰è½æ›´å¤šçŸ¿ç‰©ï¼Œç±»ä¼¼é€šå¸¸çš„æ—¶è¿é­”咒。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "精准采集魔咒", + "item": "spectrum:exchange_staff{Enchantments: [{id: \"spectrum:silk_touch\", lvl: 1s}]}", + "text": "使用$(l:enchanting/enchanting_items)附魔基座$(/l)ä¸ºé­”æ–æ³¨å…¥ç²¾å‡†é‡‡é›†é­”å’’å³å¯å®Œå…¨ä¸€å¯¹ä¸€åœ°è¿›è¡Œæ–¹å—的替æ¢ï¼Œè€Œä¸ä¼šç ´å诸如玻璃和矿石这样的方å—。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/create_resonance_enchanted_book", + "title": "共振魔咒", + "item": "spectrum:exchange_staff{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", + "text": "使用$(l:enchanting/enchanting_items)附魔基座$(/l)ä¸ºé­”æ–æ³¨å…¥å…±æŒ¯é­”å’’å³å¯å®Œæ•´åœ°é‡‡é›†æŸäº›ç‰¹åˆ«çš„æ–¹å—。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gemstone_armor.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gemstone_armor.json new file mode 100644 index 0000000000..eb0c55d269 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gemstone_armor.json @@ -0,0 +1,52 @@ +{ + "name": "å®çŸ³æ™¶ç›”甲", + "advancement": "spectrum:progression/unlock_gemstone_armor_category", + "icon": "spectrum:emergency_chestplate", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:emergency_helmet": 0, + "spectrum:emergency_chestplate": 0, + "spectrum:emergency_leggings": 0, + "spectrum:emergency_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ä½ å·²ç»å…»æˆäº†ä¸€å¥—独特的战斗方å¼ã€‚$(br)为了完美地支æ´è¿™ç§æˆ˜æ–—æ–¹å¼ï¼Œä½ ç”¨ä¸€äº›æœ‰è¶£çš„ææ–™è®¾è®¡äº†ä¸€å¥—装备。$(br2)缺点:实战表现里,这些å®çŸ³æ™¶æœ‰ç‚¹è„†ã€‚因此,这些装备的è€ä¹…度相当的低。" + }, + { + "type": "spectrum:checklist", + "checklist": { + "spectrum:hidden/collect_vanilla/collect_ender_eye": "头盔:终焉的圆ç ä¸Žç‚¼ç‹±çš„炽炎,交汇èžåˆçš„æ´žè§ä¹‹çœ¼", + "spectrum:hidden/collect_vanilla/collect_nautilus_shell": "胸甲:黄金的比例,深海的螺旋", + "spectrum:hidden/collect_vanilla/collect_phantom_membrane": "护腿:失眠的化形,梦魇的真身", + "spectrum:hidden/collect_vanilla/collect_ghast_tear": "é´å­ï¼šä¸‹ç•Œçš„å“€æ„,飘浮的怨泣" + }, + "text": "使用$(l:general/shards)å®çŸ³æ™¶ç¢Žç‰‡$()å³å¯ä¿®å¤è¿™äº›ç›”甲。$(br2)为了高效利用它们的特性,你需è¦å‡†å¤‡å¦‚ä¸‹ææ–™ï¼š" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye", + "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_helmet", + "text": "å—击时给予攻击者虚弱和缓慢效果,在它们的爪牙é¢å‰æ¶ˆå¤±å¾—无影无踪å§ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell", + "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_chestplate", + "text": "å—å‡»æ—¶ç»™äºˆè‡ªèº«ä¼¤å®³å¸æ”¶å’ŒæŠ—性æå‡æ•ˆæžœï¼ŒçŸ­æš‚的赋予你铜墙é“å£ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane", + "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_leggings", + "text": "å—击时给予自身生命æ¢å¤æ•ˆæžœï¼Œå—伤了也能快速回归战斗。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear", + "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_boots", + "text": "å—击时给予自身速度和éšèº«æ•ˆæžœï¼Œæ—¶æ—¶éƒ½æ˜¯æ’¤é€€çš„良机。远程战斗必备。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/glass_crest_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/glass_crest_tools.json new file mode 100644 index 0000000000..63930a8800 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/glass_crest_tools.json @@ -0,0 +1,52 @@ +{ + "name": "æ··åˆæ°´æ™¶å·¥å…·", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_tools", + "icon": "spectrum:glass_crest_ultra_greatsword", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:glass_crest_workstaff": 0, + "spectrum:glass_crest_ultra_greatsword": 0, + "spectrum:glass_crest_crossbow": 0, + "spectrum:ferocious_glass_crest_bident": 0, + "spectrum:fractal_glass_crest_bident": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstone_core", + "text": "å°†$(l:resources/moonstone_core)月长石核心$(/l)嵌进$(l:equipment/malachite_tools)孔雀石工具$(/l)以赋予其更为强大的新能力。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_workstaff", + "recipe": "spectrum:fusion_shrine/malachite/glass_crest_workstaff", + "text": "其能$(k:use)å–·å°„$(c_white)白色墨水$()æ¥å‡»ç¢Žæ–¹å—。此外,你å¯ä»¥åœ¨ä¸ºå…¶é™„魔时选择$(l:enchanting/resonance)共振$(/l)附魔。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_ultra_greatsword", + "recipe": "spectrum:fusion_shrine/malachite/glass_crest_ultra_greatsword", + "text": "一把使用$(thing)魔法$()的致命å®å‰‘,ä¸ä»…能破甲攻击,而且还能通过$(k:use)蓄力$(thing)æ¥é€ æˆå¤§èŒƒå›´çš„伤害$()。此外,在附上$(thing)横扫之刃$()的附魔时还能击退你周围的所有敌人。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:progression/malachite/unlock_glass_crest_crossbow", + "recipe": "spectrum:fusion_shrine/malachite/glass_crest_crossbow", + "text": "在上膛完æˆåŽï¼Œä½ è¿˜å¯ä»¥æŒ‰ä½$(k:sneak)å¹¶$(k:use)æ¥è¿›ä¸€æ­¥æé«˜å°„击精度,速度和伤害。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "残暴两å‰çŸ›", + "advancement": "spectrum:progression/malachite/unlock_ferocious_glass_crest_bident", + "recipe": "spectrum:fusion_shrine/malachite/ferocious_glass_crest_bident", + "text": "åªè¦ä½ ä¸ºå®ƒé™„上$(thing)æ¿€æµ$()附魔,并æºå¸¦äº†è¶³å¤Ÿçš„墨水,你便能使用它æ¥å°†ä½ æŠ›å‘空中,并摧æ¯ä½ èº«è¾¹çš„一切障ç¢ã€‚你甚至能在干旱的沙漠中这么åšï¼Œå‰ææ˜¯ä½ è¿˜æ²¡è€—尽你的墨水。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "分形两å‰çŸ›", + "advancement": "spectrum:progression/malachite/unlock_fractal_glass_crest_bident", + "recipe": "spectrum:fusion_shrine/malachite/fractal_glass_crest_bident", + "text": "这个使用了$(thing)回å“碎片$()的两å‰çŸ›èƒ½æŠ•出带有回å“的分身,并在击中目标åŽè‡ªè¡Œç¢Žè§£ï¼Œä½†å…¶æœ¬ä½“ä»è¢«ä½ ç´§æ¡ç€ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gleaming_pin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gleaming_pin.json new file mode 100644 index 0000000000..7b636a41b7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gleaming_pin.json @@ -0,0 +1,28 @@ +{ + "name": "闪耀胸针", + "advancement": "spectrum:progression/unlock_gleaming_pin", + "icon": "spectrum:gleaming_pin", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:gleaming_pin": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "探索的途中你总会被箭矢å·è¢­ä¸€æ¬¡åˆä¸€æ¬¡ï¼Œæ…Œå¼ ä¹‹ä¸­è¿žå¿™æ‰“æŽ¢å››å‘¨ä¹Ÿå·²ç»æ•æ‰ä¸åˆ°æ•Œäººçš„æ®‹å½±ã€‚$(br2)戴上闪耀胸针,它就会在你å—击时å‘四周å‘é€ä¸€é“ç©¿é€æ€§çš„魔法脉冲,以此助力你追踪附近的敌人。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/gleaming_pin", + "text": "$(br)$(italic)乖乖现形,别想逃" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/sniper", + "title": "狙击魔咒", + "item": "spectrum:gleaming_pin{Enchantments: [{id: \"spectrum:sniping\", lvl: 2s}]}", + "text": "为闪耀胸针附魔狙击魔咒å³å¯åŠ å¼ºé­”æ³•è„‰å†²çš„ç©¿é€æ€§ï¼Œè¿›ä¸€æ­¥æå‡æŽ¢æµ‹èŒƒå›´ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gloves_of_dawns_grasp.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gloves_of_dawns_grasp.json new file mode 100644 index 0000000000..e6d9a77bb5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/gloves_of_dawns_grasp.json @@ -0,0 +1,21 @@ +{ + "name": "黎明之æ¡çš„æ‰‹å¥—", + "advancement": "spectrum:progression/unlock_gloves_of_dawns_grasp", + "icon": "spectrum:gloves_of_dawns_grasp", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:gloves_of_dawns_grasp": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你曾问过邻居关于那ç§ä»€ä¹ˆâ€œæˆˆä¼¯â€ææ–™çš„事情:“哎呀,你个破画画的懂什么ï¼è¿™ç§é¡¶å¤©ææ–™ä½ èƒ½æ‘¸å¾—到å—ï¼â€$(br)é¡¶å¤©ï¼Ÿæ‘¸åˆ°ï¼Ÿæ˜¯å­—é¢æ„义å—?——他们还没æ¥å¾—åŠè§£é‡Šï¼Œä½ å°±ä¸ºæ­¤è®¾è®¡å¥½ä¸€åŒæ‰‹å¥—了。哎呀ï¼" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/gloves_of_dawns_grasp", + "text": "嘛,设计都设计好了,将就ç€ç”¨å’¯ã€‚$(br2)注入$(l:magic/ink)æ·¡è“色墨水$(/l)å³å¯è¿›ä¸€æ­¥æå‡æ”»å‡»è·ç¦»ä¸Šé™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/glow_vision_goggles.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/glow_vision_goggles.json new file mode 100644 index 0000000000..a0ac67c369 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/glow_vision_goggles.json @@ -0,0 +1,22 @@ +{ + "name": "è§å…‰ç›®é•œ", + "advancement": "spectrum:progression/unlock_glow_vision_helmet", + "icon": "spectrum:glow_vision_helmet", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:glow_vision_helmet": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:glow_vision_helmet", + "text": "$(italic)å‘å…‰é±¿é±¼çš„ç‰¹åˆ«ä¹‹å¤„åœ¨äºŽå®ƒä»¬ä¼šä¸ºé»‘æš—ä¸­çš„ä½ ç‚¹æ˜Žæ´žçªŸæŽ¢é™©çš„è·¯é€”ã€‚å¯æƒœï¼Œè¿™ç§ç¾Žä¸½çš„ç”Ÿç‰©å¸¸å› ææµ…而é­é‡ä¸å¹¸ã€‚$(br)为了纪念,你设计了这套眼镜,让这份独特的è§å…‰ç»§ç»­å‘亮å§ï¼ŒæŒ‡å¼•ä¸ç­ï¼Œå…‰æ˜Žä¸æ¯ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/glow_vision_helmet", + "text": "è§å…‰ç›®é•œä¼šåœ¨é˜´æš—处消耗å‘光墨囊,赋予你夜视效果。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/greater_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/greater_potion_pendant.json new file mode 100644 index 0000000000..765b1db6cc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/greater_potion_pendant.json @@ -0,0 +1,22 @@ +{ + "name": "å¤§åž‹è¯æ°´åŠå ", + "advancement": "spectrum:progression/unlock_greater_potion_pendant", + "secret": true, + "icon": "spectrum:greater_potion_pendant", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:greater_potion_pendant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "在功能上,它与它的$(l:magical_items/lesser_potion_pendant)å°å¼Ÿ$(/l)相似。$(br)å…¶å…·æœ‰ä¸‰ä¸ªåˆ†ç«‹çš„è¯æ¶²ä»“,å„å¯ä»¥å¡«å……一ç§è¯æ°´æ•ˆæžœã€‚然而,æ¯ä¸€åˆ†ç«‹çš„è¯æ¶²ä»“容积较å°ï¼Œä»…能容纳效果强度为Içº§çš„è¯æ°´ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/greater_potion_pendant", + "text": "使用$(l:magical_blocks/potion_workshop)è¯æ°´å·¥ä½œç«™$(/l)æ¥çŒæ³¨è¯æ°´ã€‚$(br)æ¯ä¸€ç§è¯æ°´éƒ½ä¼šæ¶ˆè€—ä½ $(l:general/pigment_palette)调色æ¿$(/l)中对应颜色的墨水。等级越高,消耗也越快。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/heartsingers_reward.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/heartsingers_reward.json new file mode 100644 index 0000000000..25418aa507 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/heartsingers_reward.json @@ -0,0 +1,21 @@ +{ + "name": "å¿ƒçµæ­Œæ‰‹çš„回报", + "advancement": "spectrum:progression/unlock_heartsingers_reward", + "icon": "spectrum:heartsingers_reward", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:heartsingers_reward": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "如此纤巧的戒指,功能å´å®žåœ¨ä¸ä¿—:消耗一点点(或很多ï¼ï¼‰ç²‰è‰²å¢¨æ°´å³å¯ç”±å†…而外地强化你自己,并赋予生命上é™ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/heartsingers_reward", + "text": "对其注入$(l:magic/ink)粉色墨水$(/l)å³å¯è¿›ä¸€æ­¥æé«˜ç”Ÿå‘½ä¸Šé™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/jeopardant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/jeopardant.json new file mode 100644 index 0000000000..519eff7045 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/jeopardant.json @@ -0,0 +1,21 @@ +{ + "name": "孤勇戒指", + "advancement": "spectrum:progression/unlock_jeopardant", + "icon": "spectrum:jeopardant", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jeopardant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ç´§è¦å…³å¤´æ—¶æµç»è¡€ç®¡çš„å¯ä»¥ä¸æ­¢è‚¾ä¸Šè…ºç´ ã€‚$(br)你所失去的æ¯ä¸€é¢—心都会让戒指之间的$(l:resources/scarlet)绯红å®çŸ³$()é—ªçƒå¾—更加耀眼逼人。绯红的光芒éšå¿ƒæåŠ¨ï¼Œè¶Šå‘ç–¾é€Ÿçš„å¿ƒè·³å³æ˜¯è¶Šå‘致命的å击——你的伤害输出éšè¡€é‡é€’å‡å‘ˆæŒ‡æ•°é€’增。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/jeopardant", + "text": "$(italic)此情此景你何以å“应?$(br)神ä¸å®šï¼Œå¿ƒä¸åœï¼Œå”¯ä»¥å‘½æå‘½ï¼Œä»¥å‘½æ•Œå‘½" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/lagoon_rod.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/lagoon_rod.json new file mode 100644 index 0000000000..4d29880501 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/lagoon_rod.json @@ -0,0 +1,21 @@ +{ + "name": "湖光钓竿", + "advancement": "spectrum:progression/unlock_lagoon_rod", + "icon": "spectrum:lagoon_rod", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:lagoon_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "闲暇之时,你无æ„é—´å‘现美人鱼å®çŸ³ä¼¼ä¹Žå¯¹æµ·æ´‹ç”Ÿç‰©æœ‰ç€æžå¤§çš„å¸å¼•力,更何况它还能浮在水é¢ä¸Šï¼Œæ‰€ä»¥ä½ æ‰“ç®—å°†å…¶åˆ¶æˆæµ®æ ‡$(br2)看哪,这个新浮标ä¸ä»…ä¼šåŠ å¿«ä¸Šé’©ï¼Œè¿˜ä¼šæœ‰å…¶ä»–ä¸€äº›ä½ æ„æƒ³ä¸åˆ°çš„æ•ˆæžœå‘生..." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/tools/lagoon_rod", + "text": "$(italic)你还è¦ä»Žæ°´ä¸­é’“出什么?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/lesser_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/lesser_potion_pendant.json new file mode 100644 index 0000000000..022a1edce7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/lesser_potion_pendant.json @@ -0,0 +1,21 @@ +{ + "name": "å°åž‹è¯æ°´åŠå ", + "advancement": "spectrum:progression/unlock_lesser_potion_pendant", + "icon": "spectrum:lesser_potion_pendant", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:lesser_potion_pendant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "è¯æ°´å¤šå¥½ç”¨å•Šã€‚然而åŠä¸ªèƒŒåŒ…é‡Œéƒ½å¡žæ»¡è¯æ°´å¯å°±æ˜¯çœŸçš„䏿–¹ä¾¿ã€‚$(br)è¯æ°´åŠå å†…å«ä¸€ä¸ªè¯æ¶²ä»“,å¯åœ¨å…¶ä¸­å¡«å……è¯å‰‚。åªéœ€ç©¿æˆ´åŠå ï¼Œä½ å°±èƒ½èŽ·å¾—å…¶ä¸­çš„è¯æ°´æ•ˆæžœäº†ã€‚$(br)è¯æ°´å¹¶æœªè¢«é¥®ç”¨å¸æ”¶ï¼Œå› æ­¤æ•ˆæžœç­‰çº§æœ€é«˜ä¸ºIII级。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/lesser_potion_pendant", + "text": "使用$(l:magical_blocks/potion_workshop)è¯æ°´å·¥ä½œç«™$(/l)æ¥çŒæ³¨è¯æ°´å³å¯ï¼Œå°±åƒçŒæ³¨çŽ»ç’ƒç“¶ä¸€æ ·ã€‚$(br)è‹¥è¦æ¸…é™¤æ•ˆæžœï¼Œæ”¾å…¥åˆæˆæ ä¸­å³å¯ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/malachite_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/malachite_tools.json new file mode 100644 index 0000000000..117fba9955 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/malachite_tools.json @@ -0,0 +1,74 @@ +{ + "name": "孔雀石工具", + "advancement": "spectrum:progression/malachite/unlock_malachite_tools", + "icon": "spectrum:malachite_ultra_greatsword", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:malachite_workstaff": 0, + "spectrum:malachite_ultra_greatsword": 0, + "spectrum:malachite_crossbow": 0, + "spectrum:malachite_bident": 0, + "spectrum:malachite_glass_arrow": 0, + "spectrum:topaz_glass_arrow": 0, + "spectrum:amethyst_glass_arrow": 0, + "spectrum:citrine_glass_arrow": 0, + "spectrum:onyx_glass_arrow": 0, + "spectrum:moonstone_glass_arrow": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(l:resources/malachite)孔雀石$/l)éžå¸¸é€‚åˆç”¨æ¥åˆ¶ä½œå·¥å…·ï¼ŒåŒ…括和其他原料相结åˆï¼Œåˆ¶ä½œå‡ºä¸€äº›ç‹¬ç‰¹ä¸”实用的工具。$(br)孔雀石在和$(thing)钻石$()ç›¸ç»“åˆæ—¶æ•ˆæžœæœ€ä½³ï¼Œä¸è¿‡ç”¨åˆ«çš„原料结åˆä¼šæ›´å®¹æ˜“些。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_workstaff", + "text": "如何使用这个完美的$(l:equipment/multitool)多功能工具$():$(br)按ä½$(k:sneak)键并$(k:use)以切æ¢é™„魔($(thing)精准采集$()或$(thing)æ—¶è¿$()),并一次性挖掘一个大型隧é“,其形状å¯é€‰$(thing)带状$(),$(thing)直通$()å’Œ$(thing)æ‰å¹³$()。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_ultra_greatsword", + "text": "这把硕大的巨剑能让你在较远的地方攻击敌人。$(br)如果ä¸ä½¿ç”¨ä½ è‡ªå·±çš„$(resources/paltaeria)Paltaeria$(),你还ä¸èƒ½å°†å®ƒä¸¾èµ·ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_bident", + "text": "这个å‡çº§ç‰ˆçš„$(thing)䏉剿ˆŸ$()效果更强,投出åŽè¿˜èƒ½çž¬é—´å›žåˆ°ä½ çš„身边。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/malachite/malachite_crossbow", + "text": "这个å‡çº§ç‰ˆçš„弩和普通的$(thing)弩$()ç›¸æ¯”æœ‰ç€æ›´é«˜çš„射击精度和速度。它ä¸ä»…能å‘射普通的箭和烟花ç«ç®­ï¼Œè¿˜èƒ½å‘å°„$(thing)玻璃箭$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/malachite_glass_arrow", + "text": "è¿™ç§ç‰¹æ®Šçš„ç®­åœ¨è¢«å°„å‡ºæ—¶ä¼šè½¬å˜æˆçº¯ç²¹çš„能é‡ï¼Œä¸ä»…èƒ½é€ æˆæ›´å¤§çš„伤害,而且能使它们轻æ¾ç©¿é€åŠé€æ˜Žçš„æ–¹å—,å³ä½¿æ˜¯åœ¨æ¶²ä½“中也ä¸ä¼šè¢«å‡é€Ÿã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/topaz_glass_arrow", + "text": "è¿™ç§ç®­èƒ½å°†ç›®æ ‡æ‹‰å‘你所在的ä½ç½®â€”—是时候将远攻转å˜ä¸ºæ›´è‡´å‘½çš„近战了ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/amethyst_glass_arrow", + "text": "è¿™ç§ç®­èƒ½å°†ç›®æ ‡å†»ç»“,å‡ç¼“其移动速度,并éšç€æ—¶é—´æŽ¨ç§»ç»™ç›®æ ‡é€ æˆå†°å†»ä¼¤å®³ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/citrine_glass_arrow", + "text": "è¿™ç§ç®­èƒ½å°†ç›®æ ‡å‡»é€€çš„很远——用巨大的力é‡è®©æ•Œäººé€€æ•£å§ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/onyx_glass_arrow", + "text": "è¿™ç§ç®­èƒ½å‡»ä¸­éšå½¢çš„ç›®æ ‡å¹¶å°†å…¶æ˜¾å½¢ï¼Œæ­¤å¤–è¿˜èƒ½å¯¹æœ‰æŠ¤ç”²ä¿æŠ¤æˆ–ä½¿ç”¨æŠ¤ç›¾çš„ç›®æ ‡é€ æˆé¢å¤–的伤害。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/arrows/moonstone_glass_arrow", + "text": "è¿™ç§ç®­èƒ½åœ¨å‡»ä¸­æ—¶äº§ç”Ÿä¸€ä¸ªå®Œå…¨ç”±èƒ½é‡æž„æˆçš„çƒï¼Œå¹¶é€šè¿‡çˆ†ç‚¸æ¥å¯¹å‘¨å›´çš„æ‰€æœ‰ç›®æ ‡é€ æˆä¼¤å®³ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/molten_rod.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/molten_rod.json new file mode 100644 index 0000000000..747edba1d8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/molten_rod.json @@ -0,0 +1,21 @@ +{ + "name": "熔èžé’“ç«¿", + "advancement": "spectrum:progression/unlock_molten_rod", + "secret": true, + "icon": "spectrum:molten_rod", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:molten_rod": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "温暖的橙色具有数ä¸èƒœæ•°çš„特性å¯ä¾›åº”ç”¨ï¼Œä¾‹å¦‚ä½ æ‰‹ä¸Šçš„è¿™ä»¶å¥‡å¦™å‘æ˜Žã€‚$(br)与普通的钓鱼竿ä¸åŒï¼Œå®ƒä¸ä»…能在熔岩中钓鱼,也能在其它å„ç§å„样的液体中钓鱼。浮出液é¢çš„到底会是什么呢——?" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier1/molten_rod", + "text": "$(italic)å°å¿ƒï¼Œçƒ«ï¼$()$(br)炽热的鱼钩å¯ä¸ä»…是ç¼ä¼¤æ‰‹æŒ‡é‚£ä¹ˆç®€å•的哦……" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/multitool.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/multitool.json new file mode 100644 index 0000000000..2484c12994 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/multitool.json @@ -0,0 +1,22 @@ +{ + "name": "多功能工具", + "advancement": "spectrum:build_basic_pedestal_structure", + "icon": "spectrum:multitool", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:multitool": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:multitool", + "text": "出门冒险的时候,你总è¦å¸¦ä¸Šä¸€å¤§åŒ…工具,虽然相比身上大把大把的石头是ä¸å€¼ä¸€æã€‚但无论如何,一ç§ç»“åˆäº†é•ã€æ–§ã€é”¹å’Œé”„的功能的通用工具确实适åˆä½ ã€‚$()$(br)" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/multitool", + "text": "å¤šåŠŸèƒ½å·¥å…·ä»…ä»…åªæ˜¯ç»“åˆå¤šæ–¹é¢çš„功能,性能上并没有比å•é¡¹çš„å·¥å…·è¦æ¥å¾—优越,但总比æ¯ä¸‰ç§’钟都æ¢ä¸€ä¸ªå·¥å…·è¦æ¥å¾—好。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/natures_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/natures_staff.json new file mode 100644 index 0000000000..a511f54f41 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/natures_staff.json @@ -0,0 +1,28 @@ +{ + "name": "自然法æ–", + "advancement": "spectrum:progression/unlock_natures_staff", + "icon": "spectrum:natures_staff", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:natures_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ä½ çªç„¶è¿¸å‘了天æ‰çš„çµæ„Ÿï¼Œç»“åˆäº†$(c_brown)自然$()与$(c_lime)生机$()之力。$(br)骨粉在你的新工具é¢å‰ç®€ç›´å°±æ˜¯ç¬‘è¯ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/natures_staff", + "text": "$(italic)éšå¿ƒæ‰€æŒ‡ä¹‹å¤„,花朵自然绽放" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "效率魔咒", + "item": "spectrum:natures_staff{Enchantments: [{id: \"minecraft:efficiency\", lvl: 5s}]}", + "text": "使用$(l:enchanting/enchanting_items)附魔基座$(/l)å¯ä¸ºæ³•æ–æ³¨å…¥æ•ˆçŽ‡é­”å’’ï¼Œæ¯ä¸€çº§é­”咒都将进一步é™ä½Ž$(l:creating_life/fading#vegetal)æ¤æœ¬è´¨$(/l)被消耗的几率。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/neat_ring.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/neat_ring.json new file mode 100644 index 0000000000..8cd309e311 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/neat_ring.json @@ -0,0 +1,22 @@ +{ + "name": "æ•´æ´çš„æˆ’指", + "advancement": "spectrum:progression/unlock_neat_ring", + "icon": "spectrum:neat_ring", + "secret": true, + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:neat_ring": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)æ•´æ´å¾—很å‘ï¼" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/neat_ring", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/nightfalls_blade.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/nightfalls_blade.json new file mode 100644 index 0000000000..cb424e5804 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/nightfalls_blade.json @@ -0,0 +1,20 @@ +{ + "name": "黄æ˜åˆ€ï¼ˆæš‚译)", + "advancement": "spectrum:progression/unlock_nightfalls_blade", + "icon": "spectrum:nightfalls_blade", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:nightfalls_blade": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "这把å°åˆ€å¤ªç»†äº†ï¼Œæ— æ³•é€ æˆæ°¸ä¹…性的伤å£ï¼Œä½†å…¶åˆƒä¸Šçš„众多锋利的倒刺å´èƒ½å¾ˆå¥½çš„刺进敌人的肉中。$(br)使用$(l:magical_blocks/potion_workshop)è¯æ°´å·¥ä½œç«™$()æ¥ä¸ºå®ƒæ³¨å…¥è¯æ°´ï¼Œå¹¶åœ¨æ”»å‡»æ—¶å¯¹æ‰€æœ‰è¢«å‡»ä¸­çš„æ•Œäººé€ æˆç›¸åº”çš„è¯æ°´æ•ˆæžœï¼Œä½†å‰ææ˜¯ä½ æºå¸¦äº†è¶³å¤Ÿå¤šçš„å’Œè¯æ°´é¢œè‰²ç›¸å¯¹åº”的墨水。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "recipe": "spectrum:fusion_shrine/nightfalls_blade", + "text": "$(italic)很残å¿ï¼Œä½†å¾ˆæœ‰ç”¨ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/preenchanted_tools.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/preenchanted_tools.json new file mode 100644 index 0000000000..6625662047 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/preenchanted_tools.json @@ -0,0 +1,58 @@ +{ + "name": "自带附魔工具", + "advancement": "spectrum:progression/tools/unlock_any_preenchanted_tool", + "icon": "spectrum:fortune_pickaxe", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:silker_pickaxe": 0, + "spectrum:fortune_pickaxe": 0, + "spectrum:looting_falchion": 0, + "spectrum:voiding_pickaxe": 0, + "spectrum:resonant_pickaxe": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "愚é’的黑曜石å°å­çœŸæ˜¯æ­»æ´»åä¸å‡ºä»€ä¹ˆå¥½é™„魔。$(br)此外,你还è¦å…»ç‰›å®°ç‰›èŽ·å–çš®é©ï¼Œæˆ–者把æ‘åº„çš„ä¹¦æž¶æ´—åŠ«ä¸€ç©ºæ‰æœ‰ä¹¦å¤Ÿç”¨ï¼ˆæ€ªä¸å¾—æ‘æ°‘总喜欢蠢蠢地é€å‘½å‘¢ï¼‰ã€‚" + }, + { + "type": "patchouli:text", + "text": "既然你很清楚你的需求,å†å€ŸåŠ©ä¸€ç‚¹è‰²å½©çš„é­”åŠ›ï¼Œä½ å°±è‡ªç„¶å¯ä»¥æ‰“造能直接满足需求的工具。$(br)坿ƒœçš„æ˜¯ï¼Œè¿™æ ·åˆ¶ä½œè€Œæˆçš„工具大多相当ä¸è€ç”¨ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "轻柔之é•", + "advancement": "spectrum:progression/tools/unlock_silker_pickaxe", + "recipe": "spectrum:pedestal/tier1/tools/silker_pickaxe", + "text": "这个é•å­çš„é•头由托帕石装点而æˆï¼Œå¯ä»¥è½»æŸ”地采集最为脆弱的矿物。$(br)轻柔之é•自带$(c_cyan)$(bold)精准采集$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "幸è¿ä¹‹é•", + "advancement": "spectrum:progression/tools/unlock_fortune_pickaxe", + "recipe": "spectrum:pedestal/tier1/tools/fortune_pickaxe", + "text": "é•头被注入了$(c_yellow)能é‡$()的活力,能轻易地将矿物的æ¯ä¸€åˆ†ç²¾åŽéƒ½å¼€é‡‡æ®†å°½ã€‚幸è¿ä¹‹é•自带$(c_yellow)$(bold)æ—¶è¿III$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "抢夺利器", + "advancement": "spectrum:progression/tools/unlock_looting_falchion", + "recipe": "spectrum:pedestal/tier1/tools/looting_falchion", + "text": "锋é”的短刃å¯è°“åˆ€åˆ€å…¥é­‚ï¼Œå¯æƒœçš„æ˜¯è¿™ç­‰åˆ©å™¨å¹¶ä¸è€ä¹…。$(br)抢夺利器自带$(c_magenta)$(bold)抢夺III$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "净除之é•", + "advancement": "spectrum:progression/tools/unlock_voiding_pickaxe", + "recipe": "spectrum:pedestal/tier2/voiding_pickaxe", + "text": "工具中的异类,挖掘速度与è€ä¹…都相当æ°å‡ºã€‚但是,被挖掘的方å—$(l:enchanting/curse_of_the_void)会被直接销æ¯$()。" + }, + { + "type": "patchouli:text", + "title": "共鸣之é•", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "recipe": "spectrum:pedestal/tier4/resonant_pickaxe", + "text": "这把蔚è“çš„é•å­èƒ½è‡ªç„¶åœ°ä¸Žå‘¨å›´äº§ç”Ÿå…±é¸£ã€‚这样一æ¥ï¼Œå“ªæ€•是必é­è›®åŠ›æ‘§æ¯çš„事物,也能被采集下æ¥äº†ã€‚$(br)共鸣之é•自带$(l:enchanting/resonance)共振$(/l)。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/puff_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/puff_circlet.json new file mode 100644 index 0000000000..3b2d9f6e84 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/puff_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "蓬蓬头ç®", + "advancement": "spectrum:progression/unlock_puff_circlet", + "icon": "spectrum:puff_circlet", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:puff_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "这个闪闪å‘亮的头ç®ä¼šåœ¨ä½ çš„周围形æˆä¸€å±‚ç©ºæ°”ä¿æŠ¤ç½©ã€‚$(br)给予$(c_green)4$()点$(c_blue)è”šè“æŠ¤ç›¾å€¼$()。$(br)这层防护罩ä¸ä»…ä¿æŠ¤ä½ å…于弹射物侵袭,还能起到è½åœ°ç¼“冲的效果。$(br)蓬蓬头ç®åŒæ—¶å¯ä»¥é˜²æ­¢ä½ è¸©è¸å†œç”°ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/puff_circlet", + "text": "$(italic)暗箭难防的往日早已ä¸å†ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/radiance_pin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/radiance_pin.json new file mode 100644 index 0000000000..af43284e5d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/radiance_pin.json @@ -0,0 +1,21 @@ +{ + "name": "è¾èŠ’èƒ¸é’ˆ", + "advancement": "spectrum:progression/unlock_radiance_pin", + "icon": "spectrum:radiance_pin", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:radiance_pin": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "å’Œ$(l:magical_items/radiance_staff)è¾èŠ’æ³•æ–$(/l)一样的åå­—å¯ä¸æ˜¯ç™½å«çš„。$(br)胸针会为身处黑暗之中的你点亮éšå½¢çš„å…‰æºã€‚然而,和$(l:magical_items/radiance_staff)è¾èŠ’æ³•æ–$(/l)ä¸åŒçš„æ˜¯ï¼Œè¿™é“光芒会越å‘微弱,直至消散。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/radiance_pin", + "text": "洞窟探险所ç»ä¹‹è·¯ï¼Œç‚¹æ˜Žå†çœ‹æ˜¯å¦ä¹Ÿåˆ«æœ‰ä¸€ç•ªè¶£å‘³å‘¢ï¼Ÿ" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/radiance_staff.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/radiance_staff.json new file mode 100644 index 0000000000..209bf04f4b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/radiance_staff.json @@ -0,0 +1,21 @@ +{ + "name": "è¾èŠ’æ³•æ–", + "advancement": "spectrum:progression/unlock_light_staff", + "icon": "spectrum:light_staff", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:light_staff": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ç«æŠŠçš„ä¸€ä¸ªç¼ºç‚¹å…³é”®è€Œè‡´å‘½ï¼šä½ å¾—èº«å¤„é»‘æš—ä¹‹ä¸­æ‰èƒ½æ”¾ä¸‹ç«æŠŠã€‚但è¾èŠ’æ³•æ–å°±ä¸ä¸€æ ·äº†ï¼šå®ƒå¯ä»¥è¿œç¨‹æ”¾ç½®å…‰æºï¼Œç”šè‡³å¯ä»¥å°†å…‰æºæ”¾ç½®åœ¨ç©ºä¸­ã€‚这样一æ¥ï¼Œä½ å“ªæ€•站得远远的也能点亮洞窟了。$(br)啊,最åŽä¸€ä¸ªä¼˜ç‚¹ï¼šè¿™äº›å…‰æºéƒ½æ˜¯éšå½¢çš„。你å¯ä»¥åœ¨ä¸å½±å“装饰氛围的情况下照明你的建筑物了。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/light_staff", + "text": "å³å‡»æ”¾ç½®çš„å…‰æºä»¥è°ƒèŠ‚äº®åº¦ã€‚$(br)å…‰æºå¯åœ¨æ°´ä¸‹æ”¾ç½®ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/ring_of_pursuit.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/ring_of_pursuit.json new file mode 100644 index 0000000000..4c74f7f039 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/ring_of_pursuit.json @@ -0,0 +1,21 @@ +{ + "name": "渴望戒指(暂译)", + "advancement": "spectrum:progression/unlock_ring_of_pursuit", + "icon": "spectrum:ring_of_pursuit", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:ring_of_pursuit": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "æŒ–çŸ¿ä¾¿æ˜¯ä½ çš„äººç”Ÿâ€”â€”ä½ çƒ­çˆ±æŒ–çŸ¿ï¼Œå¹¶å¸Œæœ›èƒ½è¾¾åˆ°ä¸€ç§æ›´é«˜çš„境界。因此,你ä¸ä»…需è¦å‡çº§ä½ çš„å·¥å…·ï¼Œè€Œä¸”è¿˜è¦æå‡ä½ çš„æŠ€æœ¯â€”—你人在æˆé•¿ï¼Œè¿™æŠ€æœ¯éš¾é“å°±ä¸è·Ÿç€é•¿å—?" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/ring_of_pursuit", + "text": "注入$(l:magic/ink)å“红色墨水$(/l)æ¥æé«˜ä½ çš„æŒ–æŽ˜é€Ÿåº¦ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/seven_league_boots.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/seven_league_boots.json new file mode 100644 index 0000000000..e5eff9eccc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/seven_league_boots.json @@ -0,0 +1,28 @@ +{ + "name": "飞跃é´å­", + "advancement": "spectrum:progression/unlock_seven_league_boots", + "icon": "spectrum:seven_league_boots", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:seven_league_boots": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "赶路很花时间。$(br)尤其是去找$(l:resources/geodes)æ™¶æ´ž$(/l)的时候,会常常因为路途é¥è¿œè€Œè€—费掉ä¸å°‘时间。$(br)穿上这åŒé´å­ï¼Œä½ çš„æœºåŠ¨æ€§å°±å¯ä»¥æé«˜ä¸å°‘。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/seven_league_boots", + "text": "æå‡ç§»åŠ¨é€Ÿåº¦å’ŒæŠ¬æ­¥é«˜åº¦ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "title": "力é‡é­”å’’", + "item": "spectrum:seven_league_boots{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "力é‡é­”å’’å¯ä»¥è¿›ä¸€æ­¥æå‡ç§»åŠ¨é€Ÿåº¦ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/take_off_belt.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/take_off_belt.json new file mode 100644 index 0000000000..dd770b380a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/take_off_belt.json @@ -0,0 +1,35 @@ +{ + "name": "弹射腰带", + "advancement": "spectrum:progression/unlock_take_off_belt", + "icon": "spectrum:take_off_belt", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:take_off_belt": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "æ”€å±±è¶Šå²­ä¹Ÿç›¸å½“è€—æ—¶ã€‚å¦‚æžœè¶Šé‡Žæ”€å²©ä¸æ˜¯ä½ çš„长项,那你åªèƒ½å¼€å±±å‡¿å²©ï¼Œç›´æŽ¥æ´žç©¿è¿‡åŽ»å’¯ã€‚$(br)弹射腰带能带你弹射起飞,跃过高山,这样一æ¥å°±ä¸ç”¨å†å¯¹ç¾Žä¸½çš„大自然景观痛下狠手了。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/take_off_belt", + "text": "潜行充能,充能越久,弹射越高。$(br2)$(italic)虽然åå«å¼¹å°„腰带,但请ä¸è¦å¼¹å°„腰带本身。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/vanilla_projectile", + "title": "力é‡é­”å’’", + "item": "spectrum:take_off_belt{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "力é‡é­”å’’å¯ä»¥è¿›ä¸€æ­¥æå‡å¼¹å°„高度。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", + "title": "æ‘”è½ä¿æŠ¤é­”å’’", + "item": "spectrum:take_off_belt{Enchantments: [{id: \"minecraft:feather_falling\", lvl: 4s}]}", + "text": "æ‘”è½ä¿æŠ¤é­”å’’ä¼šç»™äºˆä½ çŸ­æš‚çš„ç¼“é™æ•ˆæžœï¼Œæ–¹ä¾¿ä½ è½è„šã€‚魔咒等级高一点的è¯ï¼Œä¸‹å±±ä¹Ÿä¸éš¾å•¦ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/totem_pendant.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/totem_pendant.json new file mode 100644 index 0000000000..a58f4609c5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/totem_pendant.json @@ -0,0 +1,21 @@ +{ + "name": "图腾åŠå ", + "advancement": "spectrum:progression/unlock_totem_pendant", + "icon": "spectrum:totem_pendant", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:totem_pendant": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "䏿­»å›¾è…¾çš„èµ·æ­»å›žç”Ÿä¹‹åŠ›å¼ºå¤§åˆæ–¹ä¾¿ï¼Œç„¶è€Œä¸€å®šè¦æ‹¿åœ¨æ‰‹ä¸Šæ‰èƒ½ç”Ÿæ•ˆè¿™ç‚¹å®žåœ¨å¤ªä¸æ–¹ä¾¿äº†ã€‚$(br)å°†$(l:general/pigment#blue)è“色颜料$(/l)çš„ä¿æŠ¤æ€§è´¨é›†ä¸­èšç„¦ï¼Œä½ å°±å¯ä»¥æŒç»­å—到起死回生之力的庇佑了,哪怕戴在脖å­ä¸Šã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/totem_pendant", + "text": "ä¸€æ¬¡æ€§å…æ­»ã€‚生效åŽè‡ªæ¯ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/weeping_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/weeping_circlet.json new file mode 100644 index 0000000000..7d30dad365 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/weeping_circlet.json @@ -0,0 +1,21 @@ +{ + "name": "Weeping Circlet", + "advancement": "spectrum:progression/unlock_weeping_circlet", + "icon": "spectrum:weeping_circlet", + "category": "spectrum:equipment_category", + "extra_recipe_mappings": { + "spectrum:weeping_circlet": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "These hostile underwater temples are a hell to maneuver. Luckily, in your search for treasure you stumbled upon a Heart of The Sea.$(br)This circlet allows you to live and mine under water as if it were the most natural thing ever. You swim and mine faster, require no air and are able to see better.$(br)It also heals your little close by Axolotl friends ♥" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "Fusion Recipe", + "recipe": "spectrum:fusion_shrine/trinkets/weeping_circlet", + "text": "$(italic)Have you ever wanted to live underwater? No?$(br)Whatever, now you can.$(br)Time to build an underwater base!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/whispy_circlet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/whispy_circlet.json new file mode 100644 index 0000000000..c84434507d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/equipment/whispy_circlet.json @@ -0,0 +1,18 @@ +{ + "name": "舒缓头ç®", + "icon": "spectrum:whispy_circlet", + "advancement": "spectrum:progression/unlock_whispy_circlet", + "category": "spectrum:magical_items_category", + "pages": [ + { + "type": "patchouli:text", + "text": "缺ä¹ç¡çœ çš„åŽæžœä¸æ­¢çœ¼è¢‹ï¼Œè¿˜æœ‰è¿™äº›è¦ç»•在你头顶的生物——缺ä¹ç¡çœ è€Œé”™è¿‡çš„æ¢¦é­‡åŒ–作了实体,梦里ä¸è§æŠ¬å¤´è§ï¼$(br)那么这个头ç®å°±æ˜¯èº«å¿ƒæ”¾æ¾çš„实体具现了。无需ç¡çœ ï¼Œåªéœ€ç©¿æˆ´å‡ åˆ†é’Ÿï¼Œèº«å¿ƒä¹‹ç–²æƒ«è‡ªç„¶ä¸€æ‰«è€Œç©ºã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/whispy_circlet", + "text": "$(italic)顿觉清爽,有如一夜安眠" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/ancient_ruins.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/ancient_ruins.json new file mode 100644 index 0000000000..cd6e175925 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/ancient_ruins.json @@ -0,0 +1,49 @@ +{ + "name": "远å¤é—迹", + "icon": "spectrum:dike_chiseled_preservation_stone", + "advancement": "spectrum:find_ancient_ruins", + "sortnum": 14, + "turnin": "spectrum:generate_ancient_ruins_loot", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:preservation_stone": 0, + "spectrum:preservation_controller": 0, + "spectrum:dike_chiseled_preservation_stone": 0, + "spectrum:treasure_chest": 0, + "spectrum:preservation_glass": 0, + "spectrum:tinted_preservation_glass": 0, + "spectrum:dike_gate": 0, + "spectrum:dike_gate_fountain": 0, + "spectrum:courier_statue": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "远å¤é—迹", + "item": "spectrum:dike_chiseled_preservation_stone", + "text": "ä½ å‘现了æŸä¸ªåŸ‹è—在地底的巨大é—迹,入å£è¢«å¼ºå¤§çš„魔法力场所守护……" + }, + { + "type": "patchouli:image", + "title": "The Entrance", + "images": [ + "spectrum:textures/gui/manual/ancient_ruins.png" + ], + "border": true, + "text": "åŠ›åœºçš„èƒŒåŽæ˜¯ä»€ä¹ˆå‘¢ï¼Ÿè¿™äº›æ ‡å¿—åˆæ˜¯ä»€ä¹ˆï¼Ÿ" + }, + { + "type": "patchouli:spotlight", + "title": "适格之人", + "item": "spectrum:azure_dike_ring", + "advancement": "spectrum:enter_ancient_ruins", + "text": "蔚è“装备似乎就是准入许å¯ã€‚$(br2)你一度认为,仅有你孤身一人独自钻研色彩与å®çŸ³æ™¶å†…涵的魔法力é‡ã€‚看æ¥ï¼Œè¿™ä¸ªæŽ¨æµ‹ä¸å¯¹ã€‚$(italic)甚至于错得离谱……" + }, + { + "type": "patchouli:text", + "title": "挑战?", + "advancement": "spectrum:generate_ancient_ruins_loot", + "text": "这些建筑的建造æ€è·¯å’Œæ‰‹æ³•ä¸Žä½ çš„ç›¸å½“ç›¸ä¼¼ï¼Œç„¶è€ŒæŠ€æœ¯ä¸Šè¦æ›´é«˜æ˜Žï¼Œç”šè‡³äºŽé«˜æ˜Žå¾—多了。$(br2)但无论怎么样,还是欣然接å—这个挑战å§ï¼Œæ¯•竟——$(br)$(italic)ä½ æ‰æœ‰å¤§æŠŠå¤§æŠŠçš„æ—¶é—´ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/anvil_crushing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/anvil_crushing.json new file mode 100644 index 0000000000..4bd69f942f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/anvil_crushing.json @@ -0,0 +1,23 @@ +{ + "name": "物å“粉碎", + "icon": "minecraft:anvil", + "sortnum": 4, + "advancement": "spectrum:place_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:collect_gemstone_powder", + "pages": [ + { + "type": "patchouli:image", + "title": "物å“粉碎", + "images": [ + "spectrum:textures/gui/manual/anvil_crushing.png" + ], + "border": true, + "text": "$(italic)“ä¸ç ´ä¸ç«‹$(br)æœ‰ç ´æ‰æœ‰ç«‹â€ ——æŸäºº" + }, + { + "type": "patchouli:text", + "text": "é“砧除了修å¤ã€å‡çº§å·¥å…·ä¹‹å¤–还有什么更åˆé€‚的用途么?这东西这么沉é‡ï¼Œè‡ªç„¶è¦æ‹¿æ¥ç ¸ç¢Žä»€ä¹ˆä¸œè¥¿æ‰è¡Œå•Šï¼ä¾‹å¦‚,敌人的头骨……呃,或者物å“ï¼å—¯ï¼Œç‰©å“。$(br2)ä½ å¯ä»¥ç”¨ä¸‹è½çš„é“砧粉碎$(l:general/shards)å®çŸ³æ™¶$(),将其碎为$(l:general/gemstone_powder)粉末$()。$(br2)$(italic)å°è´´å£«ï¼šé“砧下è½è¶Šè¿œï¼ŒåŠ›é“越大,效果越好。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/color_mixing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/color_mixing.json new file mode 100644 index 0000000000..ec57e209ff --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/color_mixing.json @@ -0,0 +1,34 @@ +{ + "name": "颜色混åˆ", + "icon": "minecraft:light_blue_dye", + "sortnum": 6, + "advancement": "spectrum:collect_vegetal", + "category": "spectrum:general_category", + "turnin": "spectrum:craft_colored_sapling", + "pages": [ + { + "type": "patchouli:image", + "title": "颜色混åˆ", + "images": [ + "spectrum:textures/gui/manual/color_mixing.png" + ], + "text": "使用三基色:$(c_cyan)é’色$()ã€$(c_magenta)å“红色$()与$(c_yellow)黄色$()å³å¯è°ƒé…出(几乎)所有颜色了。" + }, + { + "type": "patchouli:text", + "text": "直接混åˆ$(l:general/gemstone_powder)å®çŸ³æ™¶ç²‰æœ«$(/l)的结果ä¸å¦‚人æ„……ä¸è¿‡ä½ äº§ç”Ÿäº†ä¸€ä¸ªæ–°æƒ³æ³•:$(br)å®çŸ³æ™¶ä¸Žå¤§è‡ªç„¶ä¹‹é—´çš„亲和力是å¦è¯´æ˜Ž$(italic)自然$()本身就是问题的答案呢ï¼$(br2)ä½ å¼€å§‹å¥‹ç¬”ç–¾ä¹¦ï¼Œè‰æ‹Ÿäº†$(l:general/colored_trees)ä¸€ä¸ªåˆæˆé…æ–¹$()。这下总有点眉目了å§ï¼" + }, + { + "type": "patchouli:text", + "title": "制作棕色颜料", + "text": "å•用å®çŸ³æ™¶ç²‰æœ«æ˜¯æ— è®ºå¦‚何都混ä¸å‡ºæ£•è‰²äº†â€¦â€¦æœ€å¥½çš„ç»“æžœä¹Ÿå°±åªæ˜¯ï¼ŒæŸç§æ°´æ´—过的橙色。呕。$(br)能这么难å—ï¼â€¦$(c_brown)泥土å¯ä¸å°±æ˜¯æ£•色的å—$(),而且几乎éšå¤„å¯è§ï¼Œå”¾æ‰‹å¯å¾—。$(br2)一定有办法的ï¼$(br)你相信$(c_black)黑色$()就是答案。" + }, + { + "type": "patchouli:link", + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "text": "$(br2)$(br2)$(br2)$(br)$(italic)æ£•è‰²ç¡®å®žå¾ˆå¥‡æ€ªï¼æˆ‘们认识棕色的方å¼ç¡®å®žéžå¸¸å¥‡å¦™ï¼$()", + "url": "https://www.youtube.com/watch?v=wh4aWZRtTwU", + "link_text": "棕色很奇怪(视频)" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/colored_trees.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/colored_trees.json new file mode 100644 index 0000000000..de29104889 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/colored_trees.json @@ -0,0 +1,199 @@ +{ + "name": "彩色树", + "icon": "spectrum:red_sapling", + "sortnum": 7, + "advancement": "spectrum:collect_vegetal", + "turnin": "spectrum:craft_colored_sapling", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:black_sapling": 0, + "spectrum:blue_sapling": 0, + "spectrum:brown_sapling": 0, + "spectrum:cyan_sapling": 0, + "spectrum:gray_sapling": 0, + "spectrum:green_sapling": 0, + "spectrum:light_blue_sapling": 0, + "spectrum:light_gray_sapling": 0, + "spectrum:lime_sapling": 0, + "spectrum:magenta_sapling": 0, + "spectrum:orange_sapling": 0, + "spectrum:pink_sapling": 0, + "spectrum:purple_sapling": 0, + "spectrum:red_sapling": 0, + "spectrum:white_sapling": 0, + "spectrum:yellow_sapling": 0, + "spectrum:black_log": 0, + "spectrum:blue_log": 0, + "spectrum:brown_log": 0, + "spectrum:cyan_log": 0, + "spectrum:gray_log": 0, + "spectrum:green_log": 0, + "spectrum:light_blue_log": 0, + "spectrum:light_gray_log": 0, + "spectrum:lime_log": 0, + "spectrum:magenta_log": 0, + "spectrum:orange_log": 0, + "spectrum:pink_log": 0, + "spectrum:purple_log": 0, + "spectrum:red_log": 0, + "spectrum:white_log": 0, + "spectrum:yellow_log": 0, + "spectrum:black_leaves": 0, + "spectrum:blue_leaves": 0, + "spectrum:brown_leaves": 0, + "spectrum:cyan_leaves": 0, + "spectrum:gray_leaves": 0, + "spectrum:green_leaves": 0, + "spectrum:light_blue_leaves": 0, + "spectrum:light_gray_leaves": 0, + "spectrum:lime_leaves": 0, + "spectrum:magenta_leaves": 0, + "spectrum:orange_leaves": 0, + "spectrum:pink_leaves": 0, + "spectrum:purple_leaves": 0, + "spectrum:red_leaves": 0, + "spectrum:white_leaves": 0, + "spectrum:yellow_leaves": 0, + "spectrum:black_planks": 0, + "spectrum:blue_planks": 0, + "spectrum:brown_planks": 0, + "spectrum:cyan_planks": 0, + "spectrum:gray_planks": 0, + "spectrum:green_planks": 0, + "spectrum:light_blue_planks": 0, + "spectrum:light_gray_planks": 0, + "spectrum:lime_planks": 0, + "spectrum:magenta_planks": 0, + "spectrum:orange_planks": 0, + "spectrum:pink_planks": 0, + "spectrum:purple_planks": 0, + "spectrum:red_planks": 0, + "spectrum:white_planks": 0, + "spectrum:yellow_planks": 0, + "spectrum:black_plank_stairs": 0, + "spectrum:blue_plank_stairs": 0, + "spectrum:brown_plank_stairs": 0, + "spectrum:cyan_plank_stairs": 0, + "spectrum:gray_plank_stairs": 0, + "spectrum:green_plank_stairs": 0, + "spectrum:light_blue_plank_stairs": 0, + "spectrum:light_gray_plank_stairs": 0, + "spectrum:lime_plank_stairs": 0, + "spectrum:magenta_plank_stairs": 0, + "spectrum:orange_plank_stairs": 0, + "spectrum:pink_plank_stairs": 0, + "spectrum:purple_plank_stairs": 0, + "spectrum:red_plank_stairs": 0, + "spectrum:white_plank_stairs": 0, + "spectrum:yellow_plank_stairs": 0, + "spectrum:black_plank_pressure_plate": 0, + "spectrum:blue_plank_pressure_plate": 0, + "spectrum:brown_plank_pressure_plate": 0, + "spectrum:cyan_plank_pressure_plate": 0, + "spectrum:gray_plank_pressure_plate": 0, + "spectrum:green_plank_pressure_plate": 0, + "spectrum:light_blue_plank_pressure_plate": 0, + "spectrum:light_gray_plank_pressure_plate": 0, + "spectrum:lime_plank_pressure_plate": 0, + "spectrum:magenta_plank_pressure_plate": 0, + "spectrum:orange_plank_pressure_plate": 0, + "spectrum:pink_plank_pressure_plate": 0, + "spectrum:purple_plank_pressure_plate": 0, + "spectrum:red_plank_pressure_plate": 0, + "spectrum:white_plank_pressure_plate": 0, + "spectrum:yellow_plank_pressure_plate": 0, + "spectrum:black_plank_fence": 0, + "spectrum:blue_plank_fence": 0, + "spectrum:brown_plank_fence": 0, + "spectrum:cyan_plank_fence": 0, + "spectrum:gray_plank_fence": 0, + "spectrum:green_plank_fence": 0, + "spectrum:light_blue_plank_fence": 0, + "spectrum:light_gray_plank_fence": 0, + "spectrum:lime_plank_fence": 0, + "spectrum:magenta_plank_fence": 0, + "spectrum:orange_plank_fence": 0, + "spectrum:pink_plank_fence": 0, + "spectrum:purple_plank_fence": 0, + "spectrum:red_plank_fence": 0, + "spectrum:white_plank_fence": 0, + "spectrum:yellow_plank_fence": 0, + "spectrum:black_plank_fence_gate": 0, + "spectrum:blue_plank_fence_gate": 0, + "spectrum:brown_plank_fence_gate": 0, + "spectrum:cyan_plank_fence_gate": 0, + "spectrum:gray_plank_fence_gate": 0, + "spectrum:green_plank_fence_gate": 0, + "spectrum:light_blue_plank_fence_gate": 0, + "spectrum:light_gray_plank_fence_gate": 0, + "spectrum:lime_plank_fence_gate": 0, + "spectrum:magenta_plank_fence_gate": 0, + "spectrum:orange_plank_fence_gate": 0, + "spectrum:pink_plank_fence_gate": 0, + "spectrum:purple_plank_fence_gate": 0, + "spectrum:red_plank_fence_gate": 0, + "spectrum:white_plank_fence_gate": 0, + "spectrum:yellow_plank_fence_gate": 0, + "spectrum:black_plank_button": 0, + "spectrum:blue_plank_button": 0, + "spectrum:brown_plank_button": 0, + "spectrum:cyan_plank_button": 0, + "spectrum:gray_plank_button": 0, + "spectrum:green_plank_button": 0, + "spectrum:light_blue_plank_button": 0, + "spectrum:light_gray_plank_button": 0, + "spectrum:lime_plank_button": 0, + "spectrum:magenta_plank_button": 0, + "spectrum:orange_plank_button": 0, + "spectrum:pink_plank_button": 0, + "spectrum:purple_plank_button": 0, + "spectrum:red_plank_button": 0, + "spectrum:white_plank_button": 0, + "spectrum:yellow_plank_button": 0, + "spectrum:black_plank_slab": 0, + "spectrum:blue_plank_slab": 0, + "spectrum:brown_plank_slab": 0, + "spectrum:cyan_plank_slab": 0, + "spectrum:gray_plank_slab": 0, + "spectrum:green_plank_slab": 0, + "spectrum:light_blue_plank_slab": 0, + "spectrum:light_gray_plank_slab": 0, + "spectrum:lime_plank_slab": 0, + "spectrum:magenta_plank_slab": 0, + "spectrum:orange_plank_slab": 0, + "spectrum:pink_plank_slab": 0, + "spectrum:purple_plank_slab": 0, + "spectrum:red_plank_slab": 0, + "spectrum:white_plank_slab": 0, + "spectrum:yellow_plank_slab": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "彩色树", + "text": "ä½ éœ€è¦æœ‰æœºçš„ä»‹è´¨æ¥æ··åˆé¢œæ–™ã€‚ä½ å®žéªŒå¾—åˆ°çš„æ ‘è‹—è½»æ˜“åœ°å¸æ”¶äº†é¢œæ–™çš„能é‡ï¼Œæµ®çŽ°å‡ºç›¸åº”çš„è‰²æ³½ã€‚æ ‘è‹—å°šä¸”ç¨šå«©ï¼Œä½†ä½ å·²ç»æ„Ÿå—到了å®çŸ³æ™¶çš„能é‡åœ¨å…¶æžæ¡ ä¸Žå«©å¶ä¹‹é—´çš„æ‚„然闪动。$(br2)长大了是什么样呢?真令人期待啊。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "彩色树苗", + "recipe": "spectrum:pedestal/tier1/saplings/red_sapling", + "text": "ä¸åŒçš„彩色树苗需è¦ä¸åŒæ•°é‡çš„$(l:general/gemstone_powder)å®çŸ³æ™¶ç²‰æœ«$()æ­é…,æ‰èƒ½è°ƒé…出与之对应的$(l:general/color_mixing)颜色$(/l)。" + }, + { + "type": "patchouli:image", + "title": "自然生æˆ", + "advancement": "spectrum:craft_colored_sapling", + "images": [ + "spectrum:textures/gui/manual/colored_trees.png" + ], + "text": "原æ¥å®ƒä»¬æœ¬å°±éšå¤„å¯è§ï¼è¿˜æœ‰ä»€ä¹ˆæˆ‘没å‘现的秘密å—ï¼" + }, + { + "type": "patchouli:crafting", + "advancement": "spectrum:craft_colored_sapling", + "title": "彩色原木", + "recipe": "spectrum:crafting_table/colored_wood/light_blue_planks", + "text": "和通常的原木一样,彩色原木也å¯ä»¥ç”¨äºŽåˆ¶ä½œæœ¨æ¿ï¼Œæ¥¼æ¢¯ï¼Œå°é˜¶ï¼ŒæŒ‰é’®ï¼ŒåŽ‹åŠ›æ¿ï¼Œæ …æ ä¸Žæ …æ é—¨ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/create_budding_onyx.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/create_budding_onyx.json new file mode 100644 index 0000000000..df122561e0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/create_budding_onyx.json @@ -0,0 +1,31 @@ +{ + "name": "制作缟玛瑙æ¯å²©", + "icon": "spectrum:onyx_cluster", + "sortnum": 15, + "advancement": "spectrum:progression/unlock_budding_onyx", + "turnin": "spectrum:midgame/create_budding_onyx", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:small_onyx_bud": 0, + "spectrum:medium_onyx_bud": 0, + "spectrum:large_onyx_bud": 0, + "spectrum:onyx_cluster": 0, + "spectrum:onyx_block": 0, + "spectrum:budding_onyx": 0, + "spectrum:onyx_ore": 0, + "spectrum:deepslate_onyx_ore": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "制作缟玛瑙æ¯å²©", + "text": "缟玛瑙的制作步骤实在相当ç¹çã€‚åˆæˆè¿˜è¦çœ‹æœˆç›¸ï¼Œä½ ä¸å¾—ä¸ç”¨ä¸Š$(l:magical_items/crescent_clock)月相时钟$(/l)。$(br)如果能有什么å¯å†ç”Ÿçš„æ‰‹æ®µæ¥èŽ·å–ç¼ŸçŽ›ç‘™å²‚ä¸æ˜¯æ–¹ä¾¿å¾—多?$(br2)$(italic)奇怪的是,这é“å·¥åºå¯¹å…¶å®ƒç§ç±»çš„å®çŸ³æ™¶ä¼¼ä¹Žå¹¶ä¸èµ·æ•ˆâ€¦â€¦" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "çµé­‚çŒæ³¨é…æ–¹", + "recipe": "spectrum:spirit_instiller/budding_onyx", + "text": "è™½ç„¶æ˜¯ä¸€é“æ˜‚贵的工åºï¼Œä½†æ—¢ç„¶å¯å†ç”Ÿäº†æ€»æ˜¯å€¼å¾—的。$(br)å…ˆæå‰åˆæˆå¥½è¶³é‡çš„$(l:general/midnight_aberration)åˆå¤œåƒå·®$(/l)å§ï¼Œè¿™äº›ä¸œè¥¿åœ¨ä½ æ‰‹ä¸Šè¡°å˜å¾—很快。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/fusion_shrine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/fusion_shrine.json new file mode 100644 index 0000000000..decb18a38f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/fusion_shrine.json @@ -0,0 +1,61 @@ +{ + "name": "èžåˆåœ£å›", + "icon": "spectrum:fusion_shrine_basalt", + "sortnum": 10, + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "turnin": "spectrum:build_fusion_shrine", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:fusion_shrine_basalt": 1, + "spectrum:fusion_shrine_calcite": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "为了创造$(l:general/onyx_shards)黑色的å®çŸ³æ™¶$(),你构æ€äº†ä¸€ä¸ªç¥­å›ç»“构。$(br2)直接å³å‡»åœ£å›æˆ–è€…æŠŠç‰©å“æ‰”上去都å¯ä»¥å°†ç‰©å“放置在圣å›ä¹‹ä¸Šã€‚圣å›ä¹Ÿå¯ä»¥ä¸€æ¬¡æ€§å¤„ç†ä¸€ç»„物å“,这样一æ¥ï¼Œèžåˆä¹Ÿä¼šæ›´ä¸ºé«˜æ•ˆã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/fusion_shrine_basalt", + "text": "方解石或玄武岩皆å¯ã€‚$(br)需è¦éœ²å¤©çš„基座结构。" + }, + { + "type": "patchouli:multiblock", + "name": "圣å›åŸºåº§ç»“æž„", + "multiblock_id": "spectrum:fusion_shrine_structure", + "enable_visualize": true, + "text": "ä½ å¯ä»¥éšæ„选喿–¹è§£çŸ³ã€çŽ„æ­¦å²©ä¸Ž$(l:decoration/gemstone_storage_blocks)å®çŸ³æ™¶$(/l)çš„æ­é…。" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表", + "text": "$(li)1个èžåˆåœ£å›$(li)4个磨制å®çŸ³æ™¶æ–¹å—$(li)4个錾制磨制岩石方å—$(li)8个磨制岩石柱$(li)12个磨制岩石å°é˜¶$(li)77个磨制岩石方å—" + }, + { + "type": "patchouli:text", + "title": "改å˜å¤©æ°”", + "text": "ä½ æž„æ€çš„圣å›ç»“æž„å¯ä»¥ç»“åˆ$(c_cyan)物质$()ã€$(c_magenta)æ—¶é—´$()与$(c_yellow)能é‡$()å¹¶èšç„¦é›†ä¸­åœ¨åœ£å›ä¸Šã€‚$(br2)è¿™ç§ç»“åˆçš„能é‡å¼ºå¤§åˆ°å¯ä»¥å‘¼é£Žå”¤é›¨ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "晴天", + "recipe": "spectrum:fusion_shrine/weather/weather_clear", + "text": "$(italic)太阳当空照$(br)花儿对我笑$(br)å°é¸Ÿè¯´ï¼Œæ—©æ—©æ—©$(br)你为什么背ç€ç‚¸è¯åŒ…" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "雨天", + "advancement": "spectrum:collect_mermaids_gem", + "recipe": "spectrum:fusion_shrine/weather/weather_rain", + "text": "$(italic)$(br)“你为什么带伞?â€$(br)“等会è¦ä¸‹é›¨ã€‚â€$(br)â€œä½ çš„æ ¹æ®æ˜¯ä»€ä¹ˆï¼Ÿâ€$(br)“我确实有根锯,我那根锯å­åœ¨å®¶é‡Œã€‚â€" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "é›·æš´", + "advancement": "spectrum:midgame/collect_lightning_stone", + "recipe": "spectrum:fusion_shrine/weather/weather_thunder", + "text": "$(italic)为什么表演都ä¸å¸¦é›·ç¥žï¼Ÿ$(br2)一眼托儿。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/gemstone_powder.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/gemstone_powder.json new file mode 100644 index 0000000000..c3e8db44b8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/gemstone_powder.json @@ -0,0 +1,26 @@ +{ + "name": "å®çŸ³æ™¶ç²‰æœ«", + "icon": "spectrum:amethyst_powder", + "sortnum": 5, + "advancement": "spectrum:place_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:collect_gemstone_powder", + "extra_recipe_mappings": { + "spectrum:topaz_powder": 0, + "spectrum:amethyst_powder": 0, + "spectrum:citrine_powder": 0, + "spectrum:onyx_powder": 0, + "spectrum:moonstone_powder": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你的七彩基座需è¦å„色å®çŸ³æ™¶ç²‰æœ«ä½œä¸ºé­”åŠ›æºæ³‰æ¥é©±åŠ¨ã€‚$(br2)å®çŸ³æ™¶ç²‰æœ«å¯ä»¥é€šè¿‡$(l:general/anvil_crushing)粉碎$()å®çŸ³æ™¶çš„æ–¹å¼åˆ¶å¾—。" + }, + { + "type": "patchouli:text", + "title": "颜色混åˆ", + "text": "新晋画师的第一课便是学会感知和调é…颜色。$(br)然而,å®çŸ³æ™¶ç²‰æœ«ä¼¼ä¹Žä¸å¤§å¥½å¤„ç†â€¦â€¦ç®€å•的混åˆåªèƒ½å¾—到一å¨äº”颜六色的混æ‚ç‰©ï¼Œè€Œä¸æ˜¯çº¯å‡€çš„颜色。$(br2)有什么好点å­å—?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/intro.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/intro.json new file mode 100644 index 0000000000..d2275ddf01 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/intro.json @@ -0,0 +1,32 @@ +{ + "name": "入门", + "icon": "spectrum:pedestal_basic_amethyst", + "category": "spectrum:general_category", + "sortnum": 0, + "pages": [ + { + "type": "patchouli:image", + "title": "欢迎æ¥åˆ°å…‰è°±ä¸–界ï¼", + "images": [ + "spectrum:textures/gui/manual/spectrum.png" + ], + "border": true, + "text": "《光谱世界》是一款完整的探索和魔法模组。" + }, + { + "type": "patchouli:text", + "text": "《光谱世界》的魔法ç†å¿µæºäºŽå‡è‰²æ··åˆç³»ç»Ÿ(CMYK)。如果你熟悉水彩与颜料混åˆï¼Œä½ ä¹Ÿåº”该相当熟悉å‡è‰²æ··åˆç³»ç»Ÿã€‚$(br2)《光谱世界》的å®çŸ³æ™¶ä»£è¡¨ç€ä¸‰åŽŸè‰²ï¼Œå¹¶æ•£å¸ƒåœ¨ä¸–ç•Œå„处的晶洞之中,由你探寻。其中,原版的紫水晶代表å“红色。" + }, + { + "type": "patchouli:text", + "title": "进度系统", + "text": "éšç€ä½ å¯¹ã€Šå…‰è°±ä¸–ç•Œã€‹çš„æŽ¢ç´¢è¶Šå‘æ·±å…¥ï¼Œä½ æ‰€è¾¾æˆçš„进度越多,解é”的新事物也就越多。$(br)ä½ åŽŸæœ¬ç†ŸçŸ¥çš„ä¸–ç•Œä¼šé€æ¸æ˜¾éœ²å…¨æ–°æ ·è²Œï¼Œå‘ä½ å±•çŽ°å‡ºå‰æ‰€æœªè§çš„å„色新事物——åªå¯¹ä½ å±•现。$(br2)æœ€ç»ˆï¼Œä½ è¦æ±‡é›†ä½ çš„æ‰€å­¦æ‰€è¯†ï¼Œå®Œæˆæœ€åŽçš„目标:深入基岩下方。" + }, + { + "type": "patchouli:link", + "text": "没有头绪å—ï¼Ÿçœ‹çœ‹å·²è§£é”æˆ–未解é”的进度å§ï¼Œå®ƒä»¬ä¼šæŒ‡å¼•ä½ å‰åŽ»æŽ¢ç´¢ã€‚$(br2)$(br)《光谱世界》ä»åœ¨å¼€å‘中,若有æ„è§æˆ–问题å馈,请加入我们的Discord频铿ˆ–æäº¤åˆ°æˆ‘们的GitHub页é¢ï¼$(br2)ç¥ä½ çŽ©å¾—å¼€å¿ƒï¼ â€”â€”DaFuqs", + "url": "https://discord.com/invite/EXU9XFXT8a", + "link_text": "光谱世界Discord" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/midnight_aberration.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/midnight_aberration.json new file mode 100644 index 0000000000..82f0260156 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/midnight_aberration.json @@ -0,0 +1,35 @@ +{ + "name": "完美的化åˆç‰©ï¼Ÿ", + "icon": "spectrum:midnight_aberration", + "sortnum": 13, + "advancement": "spectrum:midgame/collect_neolith", + "category": "spectrum:general_category", + "turnin": "spectrum:midgame/create_midnight_aberration", + "extra_recipe_mappings": { + "spectrum:midnight_aberration": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ä½ æ‰‹å¤´æœ€æ–°çš„ç ”ç©¶æˆæžœä»¤ä½ ä¸æ–­å¯»æ±‚ç«­å°½å®çŸ³æ™¶ä¹‹èƒ½é‡çš„ç»å¦™æ–¹æ³•。$(br2)对了ï¼åšæ–°çŸ³ä¸€å®šå°±æ˜¯å…³é”®ï¼å¦‚果你把所有ä¸åŒçš„å®çŸ³æ™¶å’Œå®ƒç»“åˆåœ¨ä¸€èµ·ï¼Œå°±ä¸€å®šä¼šåˆ›é€ å‡ºå¼ºå¤§çš„ï¼Œç‹¬å±žäºŽä½ çš„å¤§å¸ˆçº§ææ–™ï¼" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/midnight_aberration", + "text": "这么多能é‡èšåˆåœ¨ä¸€èµ·ï¼Œä¸€å®šèƒ½äº§ç”Ÿä¸€ä¸ªå¼ºå¤§çš„èƒ½é‡æºæ³‰çš„ï¼$(br2)需在天晴的白天时进行" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:midnight_aberration", + "advancement": "spectrum:midgame/create_midnight_aberration", + "title": "åˆå¤œåƒå·®", + "text": "$(italic)如此产物,仅余“亵渎â€äºŒå­—å¯è¨€ã€‚$()$(br2)å…¶æ¾æ•£çš„结构在你的手中仅仅须臾转瞬便垮塌破碎。真是彻头彻尾的失败。" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:midgame/create_midnight_aberration", + "text": "释出这般混沌$(italic)ç»éž$()你的本æ„,哪怕产物本身确实强大。$(br)也正是这ç§å¼ºå¤§çš„能é‡ä½¿å¾—产物在你的手中顷刻间便无法自æŒå››æ•£ç“¦è§£ã€‚$(br2)ä¸Žæ­¤åŒæ—¶ï¼Œåˆ¶ä½œè¿‡ç¨‹ä¸­å‡ºçŽ°äº†ä¸€ç§ä¾µèš€æ€§çš„黑色液体,你称其为$(l:magical_blocks/midnight_solution)åˆå¤œæº¶æ¶²$(/l)。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/moonstone_shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/moonstone_shards.json new file mode 100644 index 0000000000..d49a7d1e16 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/moonstone_shards.json @@ -0,0 +1,20 @@ +{ + "name": "月长石碎片", + "icon": "spectrum:moonstone_shard", + "sortnum": 15, + "advancement": "spectrum:lategame/collect_moonstone_shard", + "category": "spectrum:general_category", + "extra_recipe_mappings": { + "spectrum:moonstone_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "在此之å‰ï¼Œä½ çš„头脑很简å•,我敢说。你以为你什么都知é“,然而事实上你所知é“的仅仅是真相的一åŠã€‚$(br)ä¸è¿‡çŽ°åœ¨ä½ çš„çŸ¥è¯†ä¼šæ›´ä¸Šä¸€å±‚æ¥¼äº†ï¼Œå› ä¸ºä½ æ‰‹é‡Œæ§ç€çš„这颗白色且纯净,闪çƒç€æ¸©å’Œçš„光芒的å®çŸ³ï¼Œæ­£æ˜¯çŸ¥è¯†çš„体现。" + }, + { + "type": "patchouli:text", + "text": "你永远ä¸ä¼šæˆä¸ºæ— æ‰€ä¸èƒ½çš„人,因为这世上没有一个人能通晓世间所有的魔法。但åªè¦ä½ å¿ƒæ€€è°¦é€Šï¼Œæ„¿æ„接å—他人的关心和支æŒï¼Œä½ ä¹Ÿå¯ä»¥ç¦»å…¨èƒ½ä¹‹äººæ›´è¿›ä¸€æ­¥ã€‚$(br2)$(bold)$(c_white)这便是纯真的求知之心啊ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/mysterious_locket.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/mysterious_locket.json new file mode 100644 index 0000000000..85ce5458ea --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/mysterious_locket.json @@ -0,0 +1,44 @@ +{ + "name": "一个神秘的å é¥°ç›’", + "icon": "spectrum:mysterious_locket", + "advancement": "spectrum:collect_mysterious_locket", + "category": "spectrum:general_category", + "secret": true, + "sortnum": 20, + "extra_recipe_mappings": { + "spectrum:mysterious_locket": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "一个神秘的å é¥°ç›’", + "item": "spectrum:mysterious_locket", + "text": "这个å°å°çš„å é¥°ç›’ç´§é”ç€ã€‚它有一个奇怪的水晶装饰å“ï¼Œçœ‹ä¸ŠåŽ»åƒæ˜¯ä¸€æŠŠé”ï¼Œå¦‚åŒæœˆå…‰ä¸€èˆ¬å¾®å¼±çš„æ•£å‘ç€è‹ç™½è‰²çš„光芒。$(br)它曾属于è°ï¼Ÿå®ƒä¸ºä½•被é—忘于此?无人知晓。" + }, + { + "type": "patchouli:text", + "text": "里é¢ä¼¼ä¹Žè£…有什么东西。它的背侧刻有一ç§åƒæ˜¯æŸç§ä½ ä¸è®¤è¯†çš„语言的铭文。$(br2)$(bold)想è¦çŸ¥é“里é¢è£…的是什么东西å—?请è€å¿ƒç­‰å¾…本模组的更新(æ¼ï¼‰" + }, + { + "type": "patchouli:text", + "title": "一个挑战?", + "advancement": "spectrum:lategame/learn_dreiton", + "text": "现在你明白了Dreiton(游æˆèƒŒæ™¯éŸ³ä¹å)的æ„境,你很容易的破译了这个铭文:$(br2)$(italic)别傻了,阿斯特拉斯——月亮ä¸èƒ½å‘光,它åªèƒ½å射太阳的光。" + }, + { + "type": "patchouli:image", + "title": "å é¥°ç›’内的东西", + "advancement": "spectrum:open_mysterious_locket", + "images": [ + "spectrum:textures/gui/guidebook/locket.png" + ], + "border": true, + "text": "" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:open_mysterious_locket", + "text": "å°å é¥°ç›’è¿˜å«æœ‰ä¸€ä¸ªå°æ°´æ™¶ï¼Œæ•£å‘ç€æ›´æš—淡的光芒,ä¸è¿‡å’Œé”ç›¸æ¯”è¦æ¸©æš–得多。$(br)在$(l:dimension/dimension)深渊领域$(/l)中,当你转动å é¥°ç›’时,它还会轻轻的振动。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/onyx_shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/onyx_shards.json new file mode 100644 index 0000000000..b6f2094ea3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/onyx_shards.json @@ -0,0 +1,35 @@ +{ + "name": "制作缟玛瑙碎片", + "icon": "spectrum:onyx_shard", + "sortnum": 11, + "advancement": "spectrum:collect_all_basic_pigments_besides_brown", + "category": "spectrum:general_category", + "turnin": "spectrum:create_onyx_shard", + "extra_recipe_mappings": { + "spectrum:onyx_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "想è¦åˆ¶ä½œæ£•色颜料的è¯ï¼Œä½ å¾—å…ˆè®©æ©™è‰²å˜æš—。$(br)而你çªç„¶æ‚Ÿäº†ä¸€ä»¶äº‹æƒ…:三ç§å®çŸ³æ™¶ä¸æ­£æ˜¯å…‰è°±çš„三原色å—ï¼$(br)将这三者混åˆåˆ°ä¸€èµ·ä¹‹åŽï¼Œä½ èŽ·å¾—äº†æŸç§...近乎超脱凡世的黑色。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/onyx_shard", + "text": "既然è¦åœ¨$(l:general/fusion_shrine)èžåˆåœ£å›$()上制作“最黑的黑色â€ï¼Œé‚£ä¹ˆå®çŸ³æ™¶æ‰€å—的光照必须纯è°è€Œæ— çº·æ‰°ã€‚那么,新月的月光应该ä¸é”™äº†ï¼è®°å¾—戴上时钟。" + }, + { + "type": "patchouli:image", + "title": "月相", + "images": [ + "spectrum:textures/gui/guidebook/moon_phases.png" + ], + "text": "日月之ä½å˜åŒ–,使月有阴晴圆缺。" + }, + { + "type": "patchouli:text", + "text": "这便称为$(thing)月相$()。$(br2)当月çƒå射太阳光最多的时候,其被称为$(thing)满月$(),其å射太阳光最少的时候则是$(thing)新月$()。$(br2)从一个新月到下一个新月的一整个月相周期称为$(thing)“一个月â€$()。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/paintbrush.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/paintbrush.json new file mode 100644 index 0000000000..c4ece55216 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/paintbrush.json @@ -0,0 +1,35 @@ +{ + "name": "Paintbrush", + "icon": "spectrum:paintbrush", + "category": "spectrum:general_category", + "sortnum": 3, + "turnin": "spectrum:craft_using_pedestal", + "extra_recipe_mappings": { + "spectrum:paintbrush": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "画笔", + "text": "è¿™$(italic)画笔$()åˆ°åº•åˆæ˜¯æ€Žä¹ˆä¸€å›žäº‹å‘¢ï¼Ÿ$(br2)好问题啊,好问题,你暗自æ€å¿–ç€â€”—这一选择的直觉,兴许是因为七彩斑斓的å®çŸ³æ™¶è§¦åŠ¨äº†ä½ å†…å¿ƒèŒç”Ÿçš„å„ç§åˆ›æƒ³å§ã€‚" + }, + { + "type": "patchouli:crafting", + "title": "åˆæˆé…æ–¹", + "recipe": "spectrum:crafting_table/paintbrush", + "text": "ç»™$(l:general/pedestal)七彩基座$(/l)狠狠敲上那么一下就å¯ä»¥å¼€å§‹åˆæˆäº†ã€‚" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—上色", + "advancement": "spectrum:collect_pigment", + "text": "$(l:general/pigment)颜料$()å°±æ˜¯è¦æ‹¿æ¥æ¶‚抹绘画的嘛ï¼$(br)手æŒç”»ç¬”的时候潜行å³å¯æ‰“开颜色选择界é¢ã€‚åªè¦å¯¹ç€æ–¹å—轻轻一抹,$(l:general/pigment)颜料$()ä¾¿ä¼šåŒ€æŸ“å…¶ä¸Šï¼Œå°†å…¶å˜æˆç›¸åº”的上色版本。" + }, + { + "type": "patchouli:text", + "title": "墨水投掷", + "advancement": "spectrum:midgame/fill_ink_container", + "text": "手头有了墨水,画笔就有新的用途了:你å¯ä»¥èšé›†å‡ºé¢œæ–™å¼¹å°„物,并投掷å‘射它们。$(br)被击中的方å—è‹¥èƒ½å¸æ”¶é¢œæ–™ï¼Œç›®æ ‡è¡¨é¢åˆ™ä¼šè¢«é¢œæ–™ä¸Šè‰²ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal.json new file mode 100644 index 0000000000..3842494ff1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal.json @@ -0,0 +1,35 @@ +{ + "name": "七彩基座", + "icon": "spectrum:pedestal_basic_amethyst", + "category": "spectrum:general_category", + "sortnum": 2, + "turnin": "spectrum:place_pedestal", + "extra_recipe_mappings": { + "spectrum:pedestal_basic_amethyst": 0, + "spectrum:pedestal_basic_topaz": 0, + "spectrum:pedestal_basic_citrine": 0 + }, + "pages": [ + { + "type": "patchouli:crafting", + "title": "七彩基座", + "recipe": "spectrum:crafting_table/pedestal_basic_amethyst", + "text": "$(bold)七彩基座$()是《光谱世界》中最主è¦çš„åˆæˆæ–¹å¼ã€‚$(br2)使用$(l:general/paintbrush)画笔$()æˆ–çº¢çŸ³ä¿¡å·æ¿€æ´»å®ƒå³å¯å¼€å§‹é…æ–¹çš„åˆæˆã€‚$(br)其正上方必须是一格空气或容器。" + }, + { + "type": "patchouli:text", + "text": "$(br)å¤§éƒ¨åˆ†é…æ–¹éœ€è¦$(l:general/gemstone_powder)å®çŸ³æ™¶ç²‰æœ«$()。$(br2)但七彩基座也å¯ä»¥ä½œä¸ºæ™®é€šçš„åˆæˆå°ä½¿ç”¨ï¼Œæ¥åˆæˆæ™®é€šçš„åˆæˆå°é…方。$(br2)ä½ å¯ä»¥ä½¿ç”¨$(l:magical_items/crafting_tablet)åˆæˆæ¨¡æ¿$()è¿›è¡Œåˆæˆçš„自动化。" + }, + { + "type": "patchouli:text", + "title": "ç§ç±»", + "text": "$(br)ä¸ƒå½©åŸºåº§çš„å¤–è§‚ç”±ä½ ç”¨äºŽåˆæˆçš„å®çŸ³æ™¶å†³å®šã€‚$(br2)当然,功能还是一样的。" + }, + { + "type": "patchouli:crafting", + "title": "åˆæˆé…æ–¹", + "recipe": "spectrum:crafting_table/pedestal_basic_topaz", + "recipe2": "spectrum:crafting_table/pedestal_basic_citrine" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_cmy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_cmy.json new file mode 100644 index 0000000000..c477f2d69b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_cmy.json @@ -0,0 +1,44 @@ +{ + "name": "基座CMYå‡çº§", + "icon": "spectrum:pedestal_all_basic", + "sortnum": 9, + "advancement": "spectrum:progression/unlock_cmy_pedestal", + "category": "spectrum:general_category", + "turnin": "spectrum:build_basic_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_all_basic": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "CMYå˜ç§", + "recipe": "spectrum:pedestal/tier1/pedestal_all_basic", + "text": "使用收集得到的å®çŸ³æ™¶ç¢Žç‰‡æ¥å‡çº§ä½ çš„$(l:general/pedestal)七彩基座$()。" + }, + { + "type": "patchouli:text", + "title": "基座结构", + "text": "你需è¦ä¸€ä¸ªç‰¹åˆ«çš„èšç„¦ç»“æž„æ¥å°†å®çŸ³æ™¶çš„能é‡ä¸²è”集中到$(l:general/pedestal)七彩基座$()上,æ‰èƒ½å‘挥è¿ç”¨å…¶æ›´æ·±å±‚次的潜能。$(br2)你称其为$(br)$(bold)注魔基座$()。" + }, + { + "type": "patchouli:multiblock", + "name": "注魔基座", + "multiblock_id": "spectrum:pedestal_simple_structure_check", + "enable_visualize": true, + "text": "ä½ å¯ä»¥ä»»æ„选用方解石或玄武岩,并采用你喜欢的å®çŸ³æ™¶æ–¹å—。" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表", + "text": "$(li)1个七彩基座$(li)4个磨制å®çŸ³æ™¶æ–¹å—$(li)4个錾制磨制岩石方å—$(li)4个无å°ç£¨åˆ¶å²©çŸ³æ–¹å—$(li)8个磨制岩石柱$(li)68个磨制岩石方å—" + }, + { + "type": "patchouli:image", + "title": "个性定制ï¼", + "images": [ + "spectrum:textures/gui/manual/spectrum_focus_customisation.png" + ], + "text": "éšå¿ƒæ­é…,自由设计ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_moonstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_moonstone.json new file mode 100644 index 0000000000..8f4d8fa16b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_moonstone.json @@ -0,0 +1,36 @@ +{ + "name": "基座月长石å‡çº§", + "icon": "spectrum:pedestal_moonstone", + "sortnum": 16, + "advancement": "spectrum:lategame/collect_moonstone_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:lategame/build_complex_pedestal_structure_without_moonstone", + "extra_recipe_mappings": { + "spectrum:pedestal_moonstone": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "月长石å˜ç§", + "recipe": "spectrum:pedestal/tier3/pedestal_moonstone", + "text": "使用$(l:general/shards#moonstone)月长石碎片$()æ¥å‡çº§ä½ çš„$(l:general/pedestal)七彩基座$()。" + }, + { + "type": "patchouli:multiblock", + "name": "注魔殿堂", + "multiblock_id": "spectrum:pedestal_complex_structure_without_moonstone_check", + "enable_visualize": true, + "text": "ä½ å¯ä»¥é€‰ç”¨ä»»æ„ç§ç±»çš„æ–¹è§£çŸ³æˆ–玄武岩,并采用你喜欢的å®çŸ³æ™¶æ–¹å—。" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表(完整)", + "text": "$(li)1个七彩基座$(li)4个錾制缟玛瑙岩石方å—$(li)4个无å°ç£¨åˆ¶å²©çŸ³æ–¹å—$(li)8个å®çŸ³æ™¶ç¯$(li)4个錾制å®çŸ³æ™¶å²©çŸ³æ–¹å—$(li)12个磨制å®çŸ³æ™¶æ–¹å—$(li)16个錾制CMYå®çŸ³æ™¶å²©çŸ³æ–¹å—$(li)28个錾制月长石岩石方å—$(li)36个磨制岩石柱$(li)52个磨制饰纹岩石方å—$(li)172个磨制岩石方å—" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表(å‡çº§ï¼‰", + "text": "$(li)4个錾制缟玛瑙岩石方å—$(li)4个磨制å®çŸ³æ™¶æ–¹å—$(li)28个錾制月长石岩石方å—$(li)36个磨制饰纹岩石方å—" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_moonstone_2.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_moonstone_2.json new file mode 100644 index 0000000000..99be0ac53a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_moonstone_2.json @@ -0,0 +1,40 @@ +{ + "name": "基座月长石å‡çº§ï¼ˆ2)", + "icon": "spectrum:pedestal_moonstone", + "sortnum": 17, + "advancement": "spectrum:lategame/build_complex_pedestal_structure_without_moonstone", + "category": "spectrum:general_category", + "turnin": "spectrum:lategame/build_complex_pedestal_structure", + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstone_chiseled_basalt", + "text": "你现有的注魔殿堂结构感觉åƒ...还缺了点什么。既然你现已掌æ¡äº†$(l:general/moonstone_shards)月长石$(/l)的用法,那么你应该为你的结构补上$(c_white)月长石$()了。å‡çº§ä½ çš„结构有点麻烦:需è¦ä½¿ç”¨$(thing)錾制月长石å—$()æ¥æ‰©å»ºï¼Œå¹¶å°†ä½ çš„七彩基座å‡çº§ä¸º$(thing)七彩基座月长石å˜ç§$()æ‰èƒ½å‘挥全部的效果。$(br)$(italic)有什么方法也能将你å¯åЍå—?" + }, + { + "type": "patchouli:multiblock", + "name": "注魔殿堂", + "multiblock_id": "spectrum:pedestal_complex_structure_check", + "enable_visualize": true, + "text": "ä½ å¯ä»¥é€‰ç”¨ä»»æ„ç§ç±»çš„æ–¹è§£çŸ³æˆ–玄武岩,并采用你喜欢的å®çŸ³æ™¶æ–¹å—。" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表(完整)", + "text": "$(li)1个七彩基座$(li)4个錾制缟玛瑙岩石方å—$(li)4个无å°ç£¨åˆ¶å²©çŸ³æ–¹å—$(li)8个å®çŸ³æ™¶ç¯$(li)4个錾制å®çŸ³æ™¶å²©çŸ³æ–¹å—$(li)12个磨制å®çŸ³æ™¶æ–¹å—$(li)16个錾制CMYå®çŸ³æ™¶å²©çŸ³æ–¹å—$(li)28个錾制月长石岩石方å—$(li)36个磨制岩石柱$(li)52个磨制饰纹岩石方å—$(li)144个磨制岩石方å—" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表(å‡çº§ï¼‰", + "text": "$(li)28个錾制月长石岩石方å—" + }, + { + "type": "patchouli:image", + "title": "个性定制ï¼", + "images": [ + "spectrum:textures/gui/guidebook/spectrum_complex_customisation.png" + ], + "text": "éšå¿ƒæ­é…,自由设计ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_onyx.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_onyx.json new file mode 100644 index 0000000000..9d0a0081cb --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pedestal_upgrade_onyx.json @@ -0,0 +1,44 @@ +{ + "name": "基座缟玛瑙å‡çº§", + "icon": "spectrum:pedestal_onyx", + "sortnum": 12, + "advancement": "spectrum:create_onyx_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:midgame/build_advanced_pedestal_structure", + "extra_recipe_mappings": { + "spectrum:pedestal_onyx": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "缟玛瑙å˜ç§", + "recipe": "spectrum:pedestal/tier2/pedestal_onyx", + "text": "使用$(l:general/shards#onyx)缟玛瑙碎片$()æ¥å‡çº§ä½ çš„$(l:general/pedestal)七彩基座$()。" + }, + { + "type": "patchouli:multiblock", + "name": "注魔祭å›", + "multiblock_id": "spectrum:pedestal_advanced_structure_check", + "enable_visualize": true, + "text": "ä½ å¯ä»¥ä»»æ„选用方解石或玄武岩,并采用你喜欢的å®çŸ³æ™¶æ–¹å—。" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表(完整)", + "text": "$(li)1个七彩基座$(li)8个磨制å®çŸ³æ™¶æ–¹å—$(li)8个å®çŸ³æ™¶ç¯$(li)4个錾制磨制岩石方å—$(li)16个錾制å®çŸ³æ™¶å²©çŸ³æ–¹å—$(li)16个磨制饰纹岩石方å—$(li)4个无å°ç£¨åˆ¶å²©çŸ³æ–¹å—$(li)36个磨制岩石柱$(li)160个磨制岩石方å—" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表(å‡çº§ï¼‰", + "text": "$(li)4个磨制å®çŸ³æ™¶æ–¹å—$(li)8个å®çŸ³æ™¶ç¯$(li)16个錾制å®çŸ³æ™¶å²©çŸ³æ–¹å—$(li)16个磨制饰纹岩石方å—$(li)28个磨制岩石柱$(li)92个磨制岩石方å—" + }, + { + "type": "patchouli:image", + "title": "个性定制ï¼", + "images": [ + "spectrum:textures/gui/manual/spectrum_hall_customisation.png" + ], + "text": "éšå¿ƒæ­é…,自由设计ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pigment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pigment.json new file mode 100644 index 0000000000..4afaf701cc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/pigment.json @@ -0,0 +1,188 @@ +{ + "name": "颜料", + "icon": "spectrum:magenta_pigment", + "sortnum": 8, + "advancement": "spectrum:collect_pigment", + "category": "spectrum:general_category", + "turnin": "spectrum:collect_all_basic_pigments_besides_brown", + "extra_recipe_mappings": { + "spectrum:black_pigment": 0, + "spectrum:blue_pigment": 0, + "spectrum:brown_pigment": 0, + "spectrum:cyan_pigment": 0, + "spectrum:gray_pigment": 0, + "spectrum:green_pigment": 0, + "spectrum:light_blue_pigment": 0, + "spectrum:light_gray_pigment": 0, + "spectrum:lime_pigment": 0, + "spectrum:magenta_pigment": 0, + "spectrum:orange_pigment": 0, + "spectrum:pink_pigment": 0, + "spectrum:purple_pigment": 0, + "spectrum:red_pigment": 0, + "spectrum:white_pigment": 0, + "spectrum:yellow_pigment": 0, + "spectrum:black_block": 0, + "spectrum:blue_block": 0, + "spectrum:brown_block": 0, + "spectrum:cyan_block": 0, + "spectrum:gray_block": 0, + "spectrum:green_block": 0, + "spectrum:light_blue_block": 0, + "spectrum:light_gray_block": 0, + "spectrum:lime_block": 0, + "spectrum:magenta_block": 0, + "spectrum:orange_block": 0, + "spectrum:pink_block": 0, + "spectrum:purple_block": 0, + "spectrum:red_block": 0, + "spectrum:white_block": 0, + "spectrum:yellow_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "终于ï¼$(l:general/colored_trees)彩色树$()的树å¶ç”Ÿäº§å‡ºäº†ä½ æ¢¦å¯ä»¥æ±‚的纯粹颜料ï¼$(br)锄头采集也éžå¸¸æ–¹ä¾¿å¿«æ·ã€‚$(br)这些颜料纯粹由对应的$(bold)$(c_magenta)æ—¶é—´$()ã€$(bold)$(c_yellow)能é‡$()与$(bold)$(c_cyan)物质$()三大基本è¦ç´ æž„æˆï¼Œå•是看上去就充满了魔法的气æ¯ã€‚$(br2)å®žåœ¨æ˜¯é­”å¹»å¾—éš¾ä»¥ç½®ä¿¡â€¦â€¦æ˜¯ä¸æ˜¯è¿˜$(l:general/color_mixing)缺了什么$(/l)?" + }, + { + "type": "spectrum:checklist", + "checklist": { + "spectrum:hidden/collect_pigment/collect_black_pigment": "$(c_black)黑色", + "spectrum:hidden/collect_pigment/collect_blue_pigment": "$(c_blue)è“色", + "spectrum:hidden/collect_pigment/collect_brown_pigment": "$(c_brown)棕色", + "spectrum:hidden/collect_pigment/collect_cyan_pigment": "$(c_cyan)é’色", + "spectrum:hidden/collect_pigment/collect_gray_pigment": "$(c_gray)ç°è‰²", + "spectrum:hidden/collect_pigment/collect_green_pigment": "$(c_green)绿色", + "spectrum:hidden/collect_pigment/collect_light_blue_pigment": "$(c_light_blue)æ·¡è“色", + "spectrum:hidden/collect_pigment/collect_light_gray_pigment": "$(c_light_gray)æ·¡ç°è‰²", + "spectrum:hidden/collect_pigment/collect_lime_pigment": "$(c_lime)黄绿色", + "spectrum:hidden/collect_pigment/collect_magenta_pigment": "$(c_magenta)å“红色", + "spectrum:hidden/collect_pigment/collect_orange_pigment": "$(c_orange)橙色", + "spectrum:hidden/collect_pigment/collect_pink_pigment": "$(c_pink)粉红色", + "spectrum:hidden/collect_pigment/collect_purple_pigment": "$(c_purple)紫色", + "spectrum:hidden/collect_pigment/collect_red_pigment": "$(c_red)红色", + "spectrum:hidden/collect_pigment/collect_white_pigment": "$(c_white)白色", + "spectrum:hidden/collect_pigment/collect_yellow_pigment": "$(c_yellow)黄色" + }, + "text": "目测的整个列表?" + }, + { + "type": "patchouli:spotlight", + "anchor": "black", + "advancement": "spectrum:hidden/collect_pigment/collect_black_pigment", + "item": "spectrum:black_pigment", + "text": "你手中æ¡ç€æœ€ä¸ºçº¯æ­£ï¼Œè¶…凡脱俗的黑色。$(br2)$(c_black)黑色$()象å¾ç€äº†$(italic)虚无$(),$(italic)力é‡$()与$(italic)神秘$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "blue", + "advancement": "spectrum:hidden/collect_pigment/collect_blue_pigment", + "item": "spectrum:blue_pigment", + "text": "手æ¡è“色给你带æ¥äº†ä¸€ä¸å®‰å¿ƒâ€¦â€¦å¼€çŽ©ç¬‘ï¼Œè¿™åªæ˜¯é¢œæ–™è€Œå·²å•Šï¼ä½†æ˜¯è¿™ä»½æ„Ÿè§‰â€¦â€¦$(br2)$(c_blue)è“色$() 象å¾ç€$(italic)安å®$()与$(italic)存续$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "brown", + "advancement": "spectrum:hidden/collect_pigment/collect_brown_pigment", + "item": "spectrum:brown_pigment", + "text": "棕色,大自然æ¯äº²çš„颜色。$(br2)$(c_brown)棕色$()象å¾ç€$(italic)自然$()与$(italic)稳定$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "cyan", + "advancement": "spectrum:hidden/collect_pigment/collect_cyan_pigment", + "item": "spectrum:cyan_pigment", + "text": "手æ¡é’色仿佛置身天穹,眺寰宇而渺四方。$(br2)$(c_cyan)é’色$()象å¾ç€$(italic)物质$()与$(italic)完整$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "gray", + "advancement": "spectrum:hidden/collect_pigment/collect_gray_pigment", + "item": "spectrum:gray_pigment", + "text": "æ·¡ç°è‰²çš„兄长,丧气而èŽé¡ã€‚ä¸çŸ¥ä¸ºä½•,你看ç€è¿™ä»½é¢œè‰²ä¹Ÿä¼šæ³›èµ·å¿§éƒã€‚$(br2)$(c_gray)ç°è‰²$()象å¾ç€$(italic)å€é€$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "green", + "advancement": "spectrum:hidden/collect_pigment/collect_green_pigment", + "item": "spectrum:green_pigment", + "text": "这份颜料散å‘ç€å’Œå¹³çš„光芒。$(br2)$(c_green)绿色$()象å¾ç€$(italic)平衡$()与$(italic)å’Œè°$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "light_blue", + "advancement": "spectrum:hidden/collect_pigment/collect_light_blue_pigment", + "item": "spectrum:light_blue_pigment", + "text": "这份色泽,是ä¹è§‚的色泽,也是离别的色泽。$(br2)$(c_light_blue)æ·¡è“色$()象å¾ç€$(italic)好è¿$()与$(italic)和平$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "black", + "advancement": "spectrum:hidden/collect_pigment/collect_light_gray_pigment", + "item": "spectrum:light_gray_pigment", + "text": "纵使世间万物如沧海桑田,过眼云烟之åŽä¾¿ç‰©æ˜¯äººéžï¼Œä½ æ‰‹æ¡è¿™ä»½é¢œè‰²å´æ„Ÿåˆ°èŽ«å的祥和——一切都会好的。$(br2)$(c_light_gray)æ·¡ç°è‰²$()象å¾ç€$(italic)å˜åŒ–$()与$(italic)å®é™$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "lime", + "advancement": "spectrum:hidden/collect_pigment/collect_lime_pigment", + "item": "spectrum:lime_pigment", + "text": "é»„ç»¿è‰²ï¼Œé²œè‰³æ¬²æ»´ï¼Œæ˜¯æ˜¥å¤©æ—©æ™¨çš„æœæ°”——ç€å®žä»¤äººç•…想的春æ„啊。$(br2)$(c_lime)黄绿色$()象å¾ç€$(italic)å¿«ä¹$()与$(italic)生机$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "magenta", + "advancement": "spectrum:hidden/collect_pigment/collect_magenta_pigment", + "item": "spectrum:magenta_pigment", + "text": "å“红色是安定与满足的颜色。$(br2)$(c_magenta)å“红色$()象å¾ç€$(italic)æ—¶é—´$(),$(italic)和善$()与$(italic)包容$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "orange", + "advancement": "spectrum:hidden/collect_pigment/collect_orange_pigment", + "item": "spectrum:orange_pigment", + "text": "æ©™è‰²æ˜¯ç§‹æ—¥é‡Œèˆ’é€‚çš„èººæ¤…å‰æ¸©æš–çš„å£ç‚‰ã€‚$(br2)$(c_orange)橙色$()象å¾ç€$(italic)温暖$()与$(italic)舒适$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "pink", + "advancement": "spectrum:hidden/collect_pigment/collect_pink_pigment", + "item": "spectrum:pink_pigment", + "text": "é¦™é¦™è½¯è½¯ç”œç”œç²‰ç²‰å«©å«©çš„ç²‰çº¢è‰²åªæƒ³è®©ä½ å–Šå‡ºâ€œå¥½è€¶â€ï¼$(br2)$(c_pink)粉红色$()象å¾ç€$(italic)å¥åº·$()与$(italic)å¯çˆ±$()ï¼" + }, + { + "type": "patchouli:spotlight", + "anchor": "purple", + "advancement": "spectrum:hidden/collect_pigment/collect_purple_pigment", + "item": "spectrum:purple_pigment", + "text": "让大脑全速è¿è½¬çš„冲击性色彩。全力调动你的求知欲,还有最具创æ„的创想……$(br2)$(c_purple)紫色$()象å¾ç€$(italic)智慧$()与$(italic)创造力$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "red", + "advancement": "spectrum:hidden/collect_pigment/collect_red_pigment", + "item": "spectrum:red_pigment", + "text": "红色盛情地激å‘ç€ä½ å¯¹è‰ºæœ¯å’Œç¾Žå­¦çš„æ¬²æœ›ä¸Žè¿½æ±‚。$(br2)$(c_red)红色$()象å¾ç€$(italic)激情$()与$(italic)æ„志力$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "white", + "advancement": "spectrum:hidden/collect_pigment/collect_white_pigment", + "item": "spectrum:white_pigment", + "text": "明亮的真白,无暇而无言。$(br2)$(c_white)白色$()象å¾ç€$(italic)$(bold)生命$()$(), $(italic)光芒$()与$(italic)纯æ´$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "yellow", + "advancement": "spectrum:hidden/collect_pigment/collect_yellow_pigment", + "item": "spectrum:yellow_pigment", + "text": "黄色的能é‡å‘¼ä¹‹æ¬²å‡ºã€‚$(br2)$(c_yellow)黄色$()象å¾ç€$(italic)能é‡$()与$(italic)活跃$()。" + }, + { + "title": "颜色方å—", + "type": "patchouli:crafting", + "recipe": "spectrum:crafting_table/pigment_storage_blocks/magenta_block", + "recipe2": "spectrum:crafting_table/pigment_storage_blocks/magenta_block_to_magenta_pigment" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/shards.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/shards.json new file mode 100644 index 0000000000..42038175bc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/shards.json @@ -0,0 +1,69 @@ +{ + "name": "å®çŸ³æ™¶ç¢Žç‰‡", + "icon": "minecraft:amethyst_shard", + "sortnum": 2, + "category": "spectrum:general_category", + "turnin": "spectrum:collect_all_basic_shards", + "extra_recipe_mappings": { + "spectrum:topaz_shard": 0, + "minecraft:amethyst_shard": 0, + "spectrum:citrine_shard": 0, + "spectrum:onyx_shard": 0, + "spectrum:moonstone_shard": 0, + "spectrum:spectral_shard": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "探寻《光谱世界》的第一步是获å–å®çŸ³æ™¶ç¢Žç‰‡ã€‚$(br2)æ¯ä¸€ç§å®çŸ³æ™¶éƒ½å¯¹åº”ç€ä¸€ç§è‡ªç„¶ç•Œçš„基本è¦ç´ ã€‚" + }, + { + "type": "patchouli:spotlight", + "anchor": "topaz", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "title": "托帕石碎片", + "item": "spectrum:topaz_shard", + "text": "托帕石在你的手中有一份独特的厚é‡ã€‚其貌似脆弱,然而仔细打é‡ä¸€ç•ªä¾¿èƒ½å‘现其åšéŸ§å¼ºç¡¬è¿œè¶…ç»å¤§å¤šæ•°ææ–™â€”—å¯èƒ½ä»…次于钻石。托帕石晶洞仅在高山与峭å£ä¹‹ä¸­å½¢æˆã€‚$(br)托帕石对应$(bold)$(c_cyan)物质$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "amethyst", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "title": "紫水晶碎片", + "item": "minecraft:amethyst_shard", + "text": "紫水晶中闪耀ç€å“红色的光辉。$(br)其在晶洞中存在了åƒä¸‡å¹´ï¼Œè±¡å¾ç€å­˜ç»­ä¸Žå¨ä¸¥ã€‚紫晶洞仅在世界深层生æˆã€‚$(br2)紫水晶对应$(bold)$(c_purple)æ—¶é—´$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "citrine", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "title": "黄水晶碎片", + "item": "spectrum:citrine_shard", + "text": "阳光在地表消散,化作晶洞中的温度。$(br2)é»„æ°´æ™¶äº®é»„è‰²çš„è¡¨é¢æ•£å‘出纯粹的$(bold)$(c_yellow)能é‡$(),触感温暖怡人。" + }, + { + "type": "patchouli:spotlight", + "anchor": "onyx", + "advancement": "spectrum:create_onyx_shard", + "title": "缟玛瑙碎片", + "item": "spectrum:onyx_shard", + "text": "缟玛瑙近乎通体纯黑,黑暗得让人怀疑它是å¦åœ¨ä¸»åЍ叿”¶å››å‘¨çš„光芒。$(br2)缟玛瑙结åˆäº†èƒ½é‡ã€ç‰©è´¨ä¸Žæ—¶é—´çš„æœ¬è´¨ï¼Œå¾—以æˆä¸ºé­”法器具的$(bold)$(c_black)催化物与èšç„¦ç‚¹$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "moonstone", + "advancement": "spectrum:midgame/collect_moonstone_shard", + "title": "月长石碎片", + "item": "spectrum:moonstone_shard", + "text": "è¿™æ¸…æ¾ˆçš„ç™½æ˜¯ä»²å¤æœˆå¤œçš„ç™½ï¼Œæ¬æ·¡å¹³å’Œå´å¯Œæœ‰å¼ åŠ›â€”â€”å®‰çœ çš„çŒ«å’ªå®‰è¯¦å®é™ï¼Œå´ä¿æŒç€çŒŽäººçš„æœºè­¦æ½œä¼åœ¨æ¢¦ä¸­ï¼Œé𿗶准备好醒æ¥ã€‚$(br2)月长石蕴å«ç€$(bold)$(c_white)纯粹的魔法$()。" + }, + { + "type": "patchouli:spotlight", + "anchor": "spectral", + "advancement": "spectrum:lategame/create_spectral_shard", + "title": "七彩碎片", + "item": "spectrum:spectral_shard", + "text": "七彩碎片闪耀ç€å½©è™¹çš„七彩。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/spectral_shard.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/spectral_shard.json new file mode 100644 index 0000000000..a6ae781ca7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/general/spectral_shard.json @@ -0,0 +1,39 @@ +{ + "name": "七彩碎片", + "advancement": "spectrum:lategame/spectrum_lategame", + "sortnum": 16, + "secret": true, + "icon": "spectrum:spectral_shard", + "category": "spectrum:general_category", + "turnin": "spectrum:lategame/create_spectral_shard", + "extra_recipe_mappings": { + "spectrum:spectral_shard": 0, + "spectrum:spectral_shard_block": 0, + "spectrum:spectral_shard_storage_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "七彩碎片", + "text": "未完æˆ" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/spectral_shard", + "text": "未完æˆ" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:lategame/create_spectral_shard", + "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_block", + "text": "$(italic)å–µ$()" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:lategame/create_spectral_shard", + "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_storage_block", + "text": "$(italic)下界åˆé‡‘信标那哪å«è´µï¼Ÿ$()" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/amethyst.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/amethyst.json new file mode 100644 index 0000000000..5558376af5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/amethyst.json @@ -0,0 +1,17 @@ +{ + "name": "一ç§å®çŸ³æ™¶", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:spectrum", + "read_by_default": true, + "turnin": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "pages": [ + { + "type": "spectrum:hint", + "title": "如何找到", + "completion_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "cost": "spectrum:citrine_shard#16", + "text": "这些晶洞å¯ä»¥åœ¨åœ°åº•下找到。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/azurite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/azurite.json new file mode 100644 index 0000000000..6742ad9a20 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/azurite.json @@ -0,0 +1,23 @@ +{ + "name": "新的矿石", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_azurite", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_azurite", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:midgame/collect_azurite", + "cost": "spectrum:neolith#8", + "text": "ä½ å¯ä»¥åœ¨ä¸»ä¸–ç•Œçš„æ‰€æœ‰çš„ç”Ÿç‰©ç¾¤ç³»æ‰¾åˆ°è¿™ç§æ–°çŸ¿çŸ³ã€‚" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:neolith#24", + "text": "è¿™ç§æ·±è“色矿石在åªåœ¨åœ°ä¸‹æ·±å¤„å°‘é‡ç”Ÿæˆã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/citrine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/citrine.json new file mode 100644 index 0000000000..c6c2aba597 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/citrine.json @@ -0,0 +1,17 @@ +{ + "name": "一ç§å®çŸ³æ™¶", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:spectrum", + "read_by_default": true, + "turnin": "spectrum:hidden/collect_shards/collect_citrine_shard", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "cost": "spectrum:topaz_shard#16", + "text": "这些晶洞å¯ä»¥åœ¨æŽ¥è¿‘地表的地层找到。在峡谷或湖泊中常常天然暴露。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/clover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/clover.json new file mode 100644 index 0000000000..64497359de --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/clover.json @@ -0,0 +1,23 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_enchanting_structure", + "read_by_default": true, + "turnin": "spectrum:collect_four_leaf_clover", + "pages": [ + { + "type": "spectrum:hint", + "title": "该怎么找", + "completion_advancement": "spectrum:collect_four_leaf_clover", + "cost": "spectrum:vegetal#16", + "text": "在平原上闲逛会ä¸ä¼šæ”¶è޷好è¿å‘¢ï¼" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:vegetal#48", + "text": "平原生物群系会生æˆä¸‰å¶è‰ã€‚å››å¶è‰çš„外形和三å¶è‰æœ‰æ‰€ä¸åŒã€‚直接采集å³å¯ï¼Œä½¿ç”¨éª¨ç²‰æˆ–自然法æ–进行增殖。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/fading.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/fading.json new file mode 100644 index 0000000000..22c8a7c40e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/fading.json @@ -0,0 +1,23 @@ +{ + "name": "实验#1", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:craft_bottle_of_fading", + "read_by_default": true, + "turnin": "spectrum:collect_vegetal", + "pages": [ + { + "type": "spectrum:hint", + "title": "一点线索", + "completion_advancement": "spectrum:collect_vegetal", + "cost": "spectrum:shimmerstone_gem#16", + "text": "褪解微生物渺å°è€Œå¾®å¼±ï¼Œä»…能缓慢åžé£Ÿä¸´è¿‘的有机物。" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:shimmerstone_gem#48", + "text": "å°†å—瓜,西瓜,树å¶è¿™æ ·çš„æœ‰æœºç‰©æ”¾åœ¨æ—è¾¹ç¨ä½œç­‰å¾…,这些方å—就会被微生物寄生åžå™¬ï¼Œå¤–表上产生å˜åŒ–。采集这些方å—å³å¯èŽ·å¾—æ–°èµ„æºã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/failing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/failing.json new file mode 100644 index 0000000000..855024a801 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/failing.json @@ -0,0 +1,23 @@ +{ + "name": "实验#2", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/craft_bottle_of_failing", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_neolith", + "pages": [ + { + "type": "spectrum:hint", + "title": "一点线索", + "completion_advancement": "spectrum:midgame/collect_neolith", + "cost": "spectrum:scarlet_fragments#8", + "text": "和褪解微生物一样,它们åªåƒé™„近的东西。ä¸è¿‡è¿™æ¬¡ä½ éœ€è¦ä¸€äº›ç›¸å½“åšç¡¬çš„东西,“哎呀挖起æ¥çœŸéš¾å—啊â€è¿™æ ·çš„åšç¡¬ï¼Œå—¯ã€‚" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:scarlet_fragments#24", + "text": "具体地说:它们åƒé»‘曜石。注æ„了,它们的饥饿永无止境。一旦找到机会,它们会åƒå¾ˆå¤šå¾ˆå¤šçš„……å°å¿ƒç‚¹ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/malachite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/malachite.json new file mode 100644 index 0000000000..8a503f9707 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/malachite.json @@ -0,0 +1,23 @@ +{ + "name": "新的矿石", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_malachite", + "read_by_default": true, + "turnin": "spectrum:lategame/collect_malachite", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:lategame/collect_malachite", + "cost": "spectrum:bismuth_crystal#8", + "text": "ä½ å¯ä»¥åœ¨æ·±æ¸Šé¢†åŸŸæ‰¾åˆ°è¿™ç§æ–°çŸ¿çŸ³ã€‚" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:bismuth_crystal#24", + "text": "è¿™ç§äº®è“色的矿石生æˆåœ¨æ·±æ¸Šé¢†åŸŸçš„地下最深处。它通常ä¸ä¼šæš´éœ²åœ¨ç©ºæ°”中生æˆï¼Œå› æ­¤ä½ å¯ä»¥ä½¿ç”¨é±¼éª¨æŒ–çŸ¿æ³•æ¥æ›´å¥½çš„寻找它。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/mermaids_gems.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/mermaids_gems.json new file mode 100644 index 0000000000..c90576f926 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/mermaids_gems.json @@ -0,0 +1,23 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "read_by_default": true, + "turnin": "spectrum:collect_mermaids_gem", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:collect_mermaids_gem", + "cost": "spectrum:onyx_shard#4", + "text": "æµ·é¢ä¸Šå¶å°”ä¼šæœ‰éšæ³¢æµªè€Œèµ·ä¼çš„æŸç§æ™¶çŸ³å¯è§å“¦ï¼Œè¯•ç€æ‰¾ä¸€ä¸ªï¼Ÿ" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:onyx_shard#12", + "text": "æµ·åº•åŽŸæ¥æ˜¯æœ‰ä¸€å°ç¾¤èŠ±æœµåœ¨äº§ç”Ÿè¿™ç§æ™¶çŸ³å•Šã€‚这些花朵略微泛明,如果戴上å‘光鱿鱼头盔则更为明亮。等它慢慢开花,待它自然地å露这份å®è—å§ã€‚åªæœ‰äº²è‡ªç«¯è¯¦æ‰èƒ½çœ‹æ¸…它的本æ¥é¢è²Œâ€¦â€¦" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/midnight_chip.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/midnight_chip.json new file mode 100644 index 0000000000..b269d6c59a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/midnight_chip.json @@ -0,0 +1,24 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/create_midnight_aberration", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_midnight_chip", + "pages": [ + { + "type": "spectrum:hint", + "title": "å°è´´å£«", + "completion_advancement": "spectrum:midgame/collect_midnight_chip", + "cost": "spectrum:neolith#8", + "text": "制作åˆå¤œåƒå·®çš„过程中生æˆçš„è¿™ç§æ¶²ä½“会伤害一切é è¿‘之物。" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "completion_advancement": "spectrum:midgame/collect_midnight_chip", + "cost": "spectrum:neolith#24", + "text": "åˆå¤œæº¶æ¶²ä¸Žå…¶æŽ¥è§¦çš„物å“å¯èƒ½äº§ç”Ÿå应。附魔的物å“ä¼šå¤±åŽ»é­”åŠ›ã€æŸäº›ç‰©å“å¯èƒ½ä¼šè¢«è½¬åŒ–ã€è€Œå› æµ¸æ³¡è€Œæ­»çš„ç”Ÿç‰©ä¼šæŽ‰è½æŸç§æ®‹ç‰‡ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/paltaeria.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/paltaeria.json new file mode 100644 index 0000000000..7f14cf7653 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/paltaeria.json @@ -0,0 +1,24 @@ +{ + "name": "新的矿石", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_paletur", + "secret": true, + "read_by_default": true, + "turnin": "spectrum:lategame/collect_paletur", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:lategame/collect_paletur", + "cost": "spectrum:moonstone_shard#8", + "text": "ä½ å¯ä»¥åœ¨æœ«åœ°æ‰¾åˆ°è¿™ç§æ°´è“色的新矿石。" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:moonstone_shard#32", + "text": "è¿™ç§çŸ¿çŸ³åœ¨æœ«åœ°ä¸»å²›ä¸Žå¤–围都会生æˆã€‚到手的矿石å¯ä¸èƒ½é£žäº†ï¼Œç‰¢ç‰¢æŠ“ä½å®ƒå‘€ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/quitoxic_reeds.json new file mode 100644 index 0000000000..d2cef093af --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/quitoxic_reeds.json @@ -0,0 +1,23 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_quitoxic_reeds", + "read_by_default": true, + "turnin": "spectrum:collect_quitoxic_reeds", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:collect_quitoxic_reeds", + "cost": "minecraft:clay_ball#16", + "text": "冒险å¯ç¨‹ï¼è¿›å‘——å‰å¾€æ²¼æ³½åœ°ï¼" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "minecraft:clay_ball#48", + "text": "æŸç§å¥‡æ€ªçš„æ¤ç‰©åœ¨æ²¼æ³½åœ°çš„é»åœŸå †ä¸Šç”Ÿé•¿ã€‚å®ƒä»¬ä¼šå¸æ”¶é™„è¿‘çš„é»åœŸå—,从而长得更高。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/resonating_ender.json new file mode 100644 index 0000000000..0b417c6f23 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/resonating_ender.json @@ -0,0 +1,23 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "read_by_default": true, + "turnin": "spectrum:get_radiating_ender", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:get_radiating_ender", + "cost": "minecraft:ender_pearl#4", + "text": "末影人手上具体拿的是什么东西å¯è¦å¥½å¥½çœ‹æ¸…楚了。" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "minecraft:ender_pearl#12", + "text": "主世界的末影人å¶å°”ä¼šæ‰‹æŒæŸç§æœ«åœ°çš„æ®‹ç‰‡ã€‚如果æŸä¸ªæœ«å½±äººæ‰‹æŒçš„æ˜¯åœ†çŸ³ï¼Œé‚£å…´è®¸å¹¶ä¸æ˜¯åœ†çŸ³ï¼Œå®°ä¸€ä¸ªçœ‹çœ‹ã€‚è¿™ç§æœ«å½±äººåœ¨æœ«åœ°ä¹Ÿä¼šç”Ÿæˆï¼Œä½†æ›´ç¨€æœ‰ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/ruin.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/ruin.json new file mode 100644 index 0000000000..2c4a85612f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/ruin.json @@ -0,0 +1,23 @@ +{ + "name": "实验#3", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/craft_bottle_of_ruin", + "read_by_default": true, + "turnin": "spectrum:midgame/break_decayed_bedrock", + "pages": [ + { + "type": "spectrum:hint", + "title": "一点线索", + "completion_advancement": "spectrum:midgame/break_decayed_bedrock", + "cost": "spectrum:brown_pigment#8", + "text": "åç­å¾®ç”Ÿç‰©ï¼Œé¡¾åæ€ä¹‰ï¼Œèƒ½å¤Ÿæ¶ˆåŒ–æ— è®ºå¤šä¹ˆå¼ºç¡¬çš„ææ–™ï¼Œæ— è®ºå¤šä¹ˆå¼ºç¡¬â€¦â€¦" + }, + { + "type": "spectrum:hint", + "title": "警告", + "cost": "spectrum:brown_pigment#24", + "text": "还能有比基岩更åšç¡¬çš„ææ–™å—?记ä½ç•™å¥½åŽæ‰‹ï¼Œåˆ«è®©åœºé¢å¤±æŽ§ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/ruins.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/ruins.json new file mode 100644 index 0000000000..8e452352d5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/ruins.json @@ -0,0 +1,41 @@ +{ + "name": "一ç§ç»“æž„", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:midgame/get_azure_dike_charge", + "read_by_default": true, + "turnin": "spectrum:generate_ancient_ruins_loot", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:generate_ancient_ruins_loot", + "cost": "spectrum:refined_azurite#4", + "text": "在主世界任æ„生物群系的地下深处,埋è—ç€3ç§ä¸åŒçš„æ— æ³•ç ´å的建筑物,它们似乎是用一些åšä¸å¯æ‘§çš„石头建æˆçš„。" + }, + { + "type": "spectrum:hint", + "title": "è“色的心", + "advancement": "spectrum:find_ancient_ruins", + "completion_advancement": "spectrum:generate_ancient_ruins_loot", + "cost": "spectrum:refined_azurite#12", + "text": "å…¥å£ä¼¼ä¹Žæ˜¯è¢«æŸç§å¼ºå¤§åŠ›åœºæŒ¡ä½äº†ã€‚ä¸è¿‡å»ºç­‘的主人留下了一点线索:è“色的心说明你需è¦è”šè“护盾装备æ‰èƒ½ç©¿è¿‡ã€‚" + }, + { + "type": "spectrum:hint", + "title": "彩色孢å­èб", + "advancement": "spectrum:find_ancient_ruins", + "completion_advancement": "spectrum:enter_color_mixing_puzzle_structure", + "cost": "spectrum:refined_azurite#12", + "text": "天花æ¿ä¸Šçš„彩色孢å­èŠ±å’Œå¢™ä¸Šçš„é›•åˆ»ä¼¼ä¹Žæš—ç¤ºäº†è§£å†³æ–¹æ¡ˆã€‚ä¸€ä¸ªç²‰æœ«é›•åˆ»å’Œä¸€ä¸ªâ€œï¼Ÿ + ?â€ã€‚è¿™éš¾é“æ˜¯è¦æ··åˆç²‰æœ«å—?" + }, + { + "type": "spectrum:hint", + "title": "Bedrock Seal", + "advancement": "spectrum:find_ancient_ruins", + "completion_advancement": "spectrum:enter_wireless_redstone_puzzle_structure", + "cost": "spectrum:refined_azurite#12", + "text": "有什么将基岩破å的方法å—?带好这本书,进去的时候记得多看看相应的页é¢ï¼Œé¡ºä¾¿æŸ¥é˜…一下你在那里找到的所有东西。记得多带一些染料,这对你的探索大有所益。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/shimmerstone.json new file mode 100644 index 0000000000..e3adcbe4b4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/shimmerstone.json @@ -0,0 +1,23 @@ +{ + "name": "新的矿石", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_shimmerstone", + "read_by_default": true, + "turnin": "spectrum:collect_shimmerstone", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:collect_shimmerstone", + "cost": "minecraft:copper_ingot#8", + "text": "There is a new Ore to be found in the Overworld at and above surface level." + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "minecraft:copper_ingot#24", + "text": "è¿™ç§çŸ¿çŸ³åœ¨ä¸»ä¸–界中层与上层大é‡ç”Ÿæˆï¼Œå¸¸å¸¸åœ¨å±±å³¦è¡¨é¢æš´éœ²ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/stargazing.json new file mode 100644 index 0000000000..6d3d90b916 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/stargazing.json @@ -0,0 +1,23 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/unlock_shooting_stars", + "read_by_default": true, + "turnin": "spectrum:collect_star_fragment", + "pages": [ + { + "type": "spectrum:hint", + "title": "该找什么", + "completion_advancement": "spectrum:collect_star_fragment", + "cost": "spectrum:shimmerstone_gem#8", + "text": "æµæ˜Ÿåªåœ¨å¤œæ™šé™ä¸´ã€‚能够增进夜间视觉的东西实在是å†å¥½ä¸è¿‡ã€‚æµæ˜Ÿçš„å°¾è¿¹ç²’å­æ•ˆæžœä¹Ÿç›¸å½“显眼。" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:shimmerstone_gem#24", + "text": "ä½¿ç”¨æœ›è¿œé•œä¸Žå¤œè§†è¯æ°´èƒ½å¤Ÿæ›´å¥½åœ°å¯Ÿè§‰å®ƒä»¬çš„å­˜åœ¨ã€‚å¦‚æžœä½ çœ‹åˆ°ä¸€ä¸ªæµæ˜Ÿç›´å†²åœ°é¢ï¼Œä½ å¯ä»¥é¡ºç€è½¨è¿¹å‰å¾€è½ç‚¹ã€‚æµæ˜Ÿçš„ç²’å­æ•ˆæžœå¦‚åŒå…‰æŸä¸€èˆ¬ï¼Œéžå¸¸æ˜¾çœ¼ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/storm_stones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/storm_stones.json new file mode 100644 index 0000000000..3d19b31b70 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/storm_stones.json @@ -0,0 +1,23 @@ +{ + "name": "新的资æº", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_storm_stones", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_storm_stone", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:midgame/collect_storm_stone", + "cost": "spectrum:neolith#8", + "text": "雷暴是大自然强有力的体现,其能é‡ä¹‹æºé布ç€è¿™ç§çŸ³å¤´ã€‚" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "spectrum:neolith#24", + "text": "有时你å¯ä»¥åœ¨é—ªç”µå‡»ä¸­çš„地方找到一些奇怪的碎片。你还å¯ä»¥ä½¿ç”¨ä¸€äº›æ–¹æ³•将闪电集中到æŸä¸€ä½ç½®ä¸Šï¼ˆå¦‚使用é¿é›·é’ˆï¼‰ï¼Œä»¥æ›´å¥½çš„æ”¶é›†è¿™ç§èµ„æºã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/stratine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/stratine.json new file mode 100644 index 0000000000..44918f472c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/stratine.json @@ -0,0 +1,23 @@ +{ + "name": "新的矿石", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:milestones/reveal_stratine", + "read_by_default": true, + "turnin": "spectrum:midgame/collect_stratine", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:midgame/collect_stratine", + "cost": "minecraft:quartz#16", + "text": "ä½ å¯ä»¥åœ¨ä¸‹ç•Œæ‰¾åˆ°è¿™ç§æ–°çŸ¿çŸ³ã€‚" + }, + { + "type": "spectrum:hint", + "title": "简è¦è¯´æ˜Ž", + "cost": "minecraft:quartz#48", + "text": "它生æˆäºŽä¸‹ç•Œæ‰€æœ‰ç”Ÿç‰©ç¾¤ç³»çš„岩浆平é¢ä¹‹ä¸‹çš„地层。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/topaz.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/topaz.json new file mode 100644 index 0000000000..48420ee816 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/hints/topaz.json @@ -0,0 +1,17 @@ +{ + "name": "一ç§å®çŸ³æ™¶", + "category": "spectrum:hints_category", + "icon": "minecraft:writable_book", + "advancement": "spectrum:spectrum", + "read_by_default": true, + "turnin": "spectrum:hidden/collect_shards/collect_topaz_shard", + "pages": [ + { + "type": "spectrum:hint", + "title": "怎么找到", + "completion_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "cost": "minecraft:amethyst_shard#16", + "text": "这些晶洞å¯ä»¥åœ¨é«˜å¤„找到,一般ä½äºŽå±±å³°ä¹‹ä¸­ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/artists_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/artists_palette.json new file mode 100644 index 0000000000..609e61a06b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/artists_palette.json @@ -0,0 +1,22 @@ +{ + "name": "艺术家调色æ¿", + "advancement": "spectrum:progression/unlock_artists_palette", + "secret": true, + "icon": "spectrum:artists_palette", + "category": "spectrum:magic_category", + "extra_recipe_mappings": { + "spectrum:artists_palette": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "艺术家调色æ¿ç»“åˆäº†$(l:magic/pigment_palette)调色æ¿$(/l)的墨水存储能力与$(l:magic/color_picker)颜色选å–器$(/l)的色彩混åˆèƒ½åŠ›ã€‚$(br)它å¯ä»¥ç›´æŽ¥å¤§é‡å­˜å‚¨å¢¨æ°´ï¼Œå¹¶åœ¨å¿…è¦çš„æ—¶å€™åŠ ä»¥æ··åˆã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/artists_palette", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/color_picker.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/color_picker.json new file mode 100644 index 0000000000..0df891d996 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/color_picker.json @@ -0,0 +1,18 @@ +{ + "name": "颜色选å–器", + "advancement": "spectrum:progression/unlock_color_picker", + "icon": "spectrum:color_picker", + "category": "spectrum:magic_category", + "pages": [ + { + "type": "patchouli:text", + "text": "å°†$(l:general/pigment)颜料$(/l)转化为墨水,用于驱动你的魔法物å“。$(br)å¯ä»¥è£…入墨水容器,如$(l:magic/ink_flask)墨水瓶$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/color_picker", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/crystal_apothecary.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/crystal_apothecary.json new file mode 100644 index 0000000000..6a85fcfd21 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/crystal_apothecary.json @@ -0,0 +1,21 @@ +{ + "name": "水晶收集器", + "advancement": "spectrum:progression/unlock_crystal_apothecary", + "icon": "spectrum:crystal_apothecary", + "category": "spectrum:magic_category", + "extra_recipe_mappings": { + "spectrum:crystal_apothecary": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "放在$(l:resources/geodes)æ™¶æ´ž$(/l)中å³å¯è‡ªåŠ¨é‡‡é›†ç”Ÿé•¿æˆç†Ÿçš„å®çŸ³æ™¶ç°‡ã€‚$(br2)说回æ¥ï¼Œå¦‚果你远离其它的å„ç§å™¨æ¢°æˆ–者æ¤ç‰©ï¼Œå®ƒä»¬ä¼¼ä¹Žå°±åƒåœ¨æ—¶ç©ºä¸­åœæ­¢äº†ä¸€èˆ¬ä¸å†æ­£å¸¸è¿è¡Œäº†ã€‚但这个å¯ä»¥ï¼Ÿå¥‡æ€ªã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/crystal_apothecary", + "text": "虽然生产效率上是ä¸å¦‚直接用é•å­åŽ»æŒ–æŽ˜çš„ï¼Œä½†ç®€å•æ˜“用就是王é“ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink.json new file mode 100644 index 0000000000..3279da049e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink.json @@ -0,0 +1,30 @@ +{ + "name": "墨水", + "advancement": "spectrum:progression/unlock_ink_flask", + "icon": "spectrum:ink_flask", + "category": "spectrum:magic_category", + "priority": true, + "pages": [ + { + "type": "patchouli:text", + "text": "你对颜料的本质早已谙熟于心,既然如此,为什么éšèº«æºå¸¦æ‹¿ç€å››å¤„è·‘å‘¢ï¼Ÿå¤šä¹ˆå¤æ—©å‘³ã€‚你呿˜Žäº†ä¸€ç§å°†é¢œæ–™è½¬åŒ–为更高形å¼çš„能é‡çš„办法$(br)你称呼为:$(c_cyan)墨$(c_magenta)·$(c_yellow)æ°´$()。" + }, + { + "type": "patchouli:text", + "title": "制作和存储", + "text": "$(l:magic/color_picker)颜色选å–器$(/l)å¯ä»¥å°†é¢œæ–™è½¬åŒ–为墨水,并存入容器中,例如$(l:magic/ink_flask)墨水瓶$(/l)。$(br2)åªæœ‰ä¸€ä¸ªé—®é¢˜ï¼šå¢¨æ°´æ—¢ç„¶æ— å½¢ï¼Œå°±å†ä¸å¯èƒ½å˜å›žé¢œæ–™äº†ã€‚" + }, + { + "type": "patchouli:image", + "title": "墨水转移", + "images": [ + "spectrum:textures/gui/guidebook/ink_transfer.png" + ], + "text": "å¢¨æ°´çš„ç‰©ç†æ€§è´¨å’Œæ¶²ä½“相似,它能从墨水多的地方æµå‘墨水少的地方。" + }, + { + "type": "patchouli:text", + "text": "$(br)当两个存储墨水的容器(如颜色选å–器和墨水瓶)彼此相连的时候,两个容器内的液é¢ä¼šå› ä¸ºå¢¨æ°´çš„缓慢æµåŠ¨è€Œç›¸å¹³ï¼Œå› è€Œå®Œæˆäº†ä¸€æ¬¡å¢¨æ°´è½¬ç§»$(br)容器两侧的墨水性质差异越大,墨水转移的速度也会越快。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_assortment.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_assortment.json new file mode 100644 index 0000000000..44ac326790 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_assortment.json @@ -0,0 +1,21 @@ +{ + "name": "墨水混åˆå™¨", + "advancement": "spectrum:progression/unlock_ink_assortment", + "icon": "spectrum:ink_assortment", + "category": "spectrum:magic_category", + "extra_recipe_mappings": { + "spectrum:ink_assortment": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "这些å°ç“¶å¯ä»¥å°‘é‡å­˜å‚¨å¤šç§å¢¨æ°´ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/ink_assortment", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_duct.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_duct.json new file mode 100644 index 0000000000..fa6c6a2519 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_duct.json @@ -0,0 +1,19 @@ +{ + "name": "墨水导管", + "advancement": "spectrum:progression/unlock_ink_duct", + "secret": true, + "icon": "spectrum:ink_duct", + "category": "spectrum:magic_category", + "pages": [ + { + "type": "patchouli:text", + "text": "将颜料能é‡ä»Ž$(l:magic/inkwell)墨水井$(/l)传输到你的å„个魔法仪器上进行供能。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/ink_duct", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_flask.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_flask.json new file mode 100644 index 0000000000..4e1b556c04 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/ink_flask.json @@ -0,0 +1,21 @@ +{ + "name": "墨水瓶", + "advancement": "spectrum:progression/unlock_ink_flask", + "icon": "spectrum:ink_flask", + "category": "spectrum:magic_category", + "extra_recipe_mappings": { + "spectrum:ink_flask": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "墨水瓶å¯ä»¥å¤§é‡å­˜å‚¨ä¸€ç§å¢¨æ°´ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/ink_flask", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/inkwell.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/inkwell.json new file mode 100644 index 0000000000..6bb1c62d08 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/inkwell.json @@ -0,0 +1,19 @@ +{ + "name": "墨水井", + "advancement": "spectrum:progression/unlock_inkwell", + "secret": true, + "icon": "spectrum:inkwell", + "category": "spectrum:magic_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)在你记录这一点å­çš„æ—¶å€™ï¼Œä½ çš„åŒæ‰‹æŽ§åˆ¶ä¸ä½åœ°é¢¤æŠ–——这真是伟大的点å­ï¼$()$(br2)制作墨水的过程真的相当ç¹ç:收集$(l:general/shards)å®çŸ³æ™¶ç¢Žç‰‡$(/l)啦,$(l:general/anvil_crushing)打碎$(/l)啦,$(l:general/colored_trees)ç§æ ‘$(/l)啦,收集$(l:general/pigment)颜料$(/l)å•¦ï¼Œæœ€åŽæ‰èƒ½å˜æˆ$(l:magic/color_picker)颜色选å–器$(/l)中的墨水。$(br)$(italic)è¯¥ç€æ‰‹åŒ–简工åºäº†ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/inkwell", + "text": "墨水井,åªè¦æ”¾åœ¨$(l:magic/crystal_apothecary)水晶收集器$(/l)上,就å¯ä»¥æŠŠæ™¶æ´žçš„能é‡ç›´æŽ¥è½¬åŒ–为墨水,并å¯ä»¥åœ¨$(l:magic/ink_duct)墨水导管$(/l)中转è¿ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/pigment_palette.json new file mode 100644 index 0000000000..57ad7556a6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/pigment_palette.json @@ -0,0 +1,21 @@ +{ + "name": "调色æ¿", + "advancement": "spectrum:progression/unlock_pigment_palette", + "icon": "spectrum:pigment_palette", + "category": "spectrum:magic_category", + "extra_recipe_mappings": { + "spectrum:pigment_palette": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "身上背ç€è¿™ä¹ˆå¤šå¢¨æ°´çœŸçš„æ˜¯æ²‰é‡çš„负担一件。$(br2)是时候让调色æ¿ç™»åœºäº†ï¼å®ƒå­˜æ”¾çš„墨水å¯ä»¥é©±åŠ¨ä½ çš„å„色魔法装备。" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/pigment_palette", + "text": "$(italic)æžé¢œè‰²çš„大师,现在就是你了。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/spirit_sallow.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/spirit_sallow.json new file mode 100644 index 0000000000..91a53b07fa --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magic/spirit_sallow.json @@ -0,0 +1,49 @@ +{ + "name": "é­‚çµæŸ³", + "advancement": "spectrum:lategame/spectrum_lategame", + "secret": true, + "icon": "spectrum:ominous_sapling", + "category": "spectrum:magic_category", + "priority": true, + "extra_recipe_mappings": { + "spectrum:ominous_sapling": 0, + "spectrum:spirit_sallow_roots": 0, + "spectrum:spirit_sallow_log": 0, + "spectrum:spirit_sallow_leaves": 0, + "spectrum:spirit_sallow_heart": 0, + + "spectrum:vibrant_cyan_catkin": 0, + "spectrum:vibrant_magenta_catkin": 0, + "spectrum:vibrant_yellow_catkin": 0, + "spectrum:vibrant_black_catkin": 0, + "spectrum:vibrant_white_catkin": 0, + "spectrum:lucid_cyan_catkin": 0, + "spectrum:lucid_magenta_catkin": 0, + "spectrum:lucid_yellow_catkin": 0, + "spectrum:lucid_black_catkin": 0, + "spectrum:lucid_white_catkin": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:ominous_sapling", + "text": "未完æˆ" + }, + { + "type": "patchouli:text", + "advancement": "spectrum:lategame/grow_ominous_sapling", + "title": "é­‚çµæŸ³", + "text": "未完æˆ" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:vibrant_cyan_catkin", + "text": "未完æˆ" + }, + { + "type": "patchouli:text", + "title": "鲜活的柔è‘花åº", + "text": "未完æˆ" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/bedrock_anvil.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/bedrock_anvil.json new file mode 100644 index 0000000000..1319471e1a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/bedrock_anvil.json @@ -0,0 +1,21 @@ +{ + "name": "基岩é“ç §", + "advancement": "spectrum:progression/unlock_bedrock_tools", + "icon": "spectrum:bedrock_anvil", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:bedrock_anvil": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你用过ä¸å°‘é“砧(更准确一点:用掉ä¸å°‘)。然而,无论是$(l:general/anvil_crushing)物å“粉碎$(/l),物å“ä¿®å¤è¿˜æ˜¯é™„魔都相当æŸè€—é“砧。$(br)è¦è®©é“ç §æ›´æŒä¹…è€ç”¨ï¼Œç”šè‡³åšä¸å¯æ‘§çš„è¯â€¦â€¦åŸºå²©æ€Žä¹ˆæ ·å‘¢ï¼Ÿ" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_anvil", + "text": "å…è´¹é‡å‘½å物å“,且没有ç»éªŒèŠ±é”€ä¸Šé™ã€‚你也å¯ä»¥ä¸ºç‰©å“添加独有的æè¿°ä¿¡æ¯ã€‚$(br)$(italic)å°è´´å£«ï¼šè¾“入“\\nâ€å¯ä»¥æ¢è¡Œã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/black_hole_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/black_hole_chest.json new file mode 100644 index 0000000000..491f898d5e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/black_hole_chest.json @@ -0,0 +1,21 @@ +{ + "name": "黑洞箱", + "advancement": "spectrum:progression/unlock_sucking_chest", + "icon": "spectrum:sucking_chest", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:sucking_chest": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)æ™®é€šæ¼æ–—的痛点相当实在:速度缓慢,范围狭å°ï¼Œæžä¸é€‚åˆå¤§è§„模应用。$(br2)用上一点è“色颜料的魔力的è¯ï¼Œå¤§èŒƒå›´å†…的许多物å“都å¯ä»¥è¢«å®‰å…¨åœ°æ”¶å…¥å›Šä¸­äº†ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/sucking_chest", + "text": "é»‘æ´žç®±çš„å¸æ”¶åŠå¾„是12格。用一格方å—盖在箱å­ä¸Šå³å¯åœç”¨ç®±å­ã€‚ç®±å­å†…附有过滤器,å¯ä»¥å†³å®šä»€ä¹ˆç‰©å“会被å¸å…¥ç®±å­ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/cinderhearth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/cinderhearth.json new file mode 100644 index 0000000000..afe6f6ea57 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/cinderhearth.json @@ -0,0 +1,42 @@ +{ + "name": "炼化炉", + "icon": "spectrum:cinderhearth", + "advancement": "spectrum:progression/unlock_cinderhearth", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:cinderhearth": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "特制高炉,独属于你的精尖设计。消耗$(c_orange)橙色墨水$()进行矿物等物å“的烧炼。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/cinderhearth", + "text": "放置一个$(l:magical_items/knowledge_gem)知识å®çŸ³$()å°±å¯ä»¥è‡ªåŠ¨æ”¶é›†çƒ§ç‚¼æ—¶çš„ç»éªŒäº†ã€‚" + }, + { + "type": "patchouli:multiblock", + "name": "炼化炉结构", + "multiblock_id": "spectrum:cinderhearth_structure", + "enable_visualize": true, + "text": "使用$(l:magical_blocks/upgrades)å‡çº§$()æ¥å¼ºåŒ–炼化炉的å„项能力。放置在两个錾制岩石方å—上å³å¯ã€‚" + }, + { + "type": "patchouli:text", + "title": "æ–¹å—列表", + "text": "$(li)1个炼化炉$(li)23个磨制岩石方å—$(li)6个磨制饰纹岩石方å—$(li)5个玻璃类方å—$(li)2个錾制岩石方å—(li)6桶熔岩$(br2)$(italic)……呃,都有$(c_orange)墨水$()$(italic)了,原æ¥è¿˜è¦ç†”岩的å—?应该ä¸ç”¨ï¼Œä¸è¿‡æœ‰çš„è¯å°±å¥½çœ‹å¾—多了。" + }, + { + "type": "patchouli:text", + "title": "å‡çº§", + "text": "在$(thing)錾制岩石方å—$()上放置的å‡çº§å¹¶ä¸ç›´æŽ¥ç”Ÿæ•ˆã€‚你需è¦å‘炼化炉补充其它ç§ç±»çš„墨水æ‰èƒ½èµ·æ•ˆã€‚å‡çº§ç­‰çº§è¶Šé«˜ï¼Œæ¶ˆè€—的墨水越多。" + }, + { + "type": "patchouli:text", + "text": "$(li)速度($(c_magenta)å“红色墨水$()):$(br)加速烧炼速度$(br)$(li)产率($(c_light_blue)æ·¡è“色墨水$()):$(br)概率å€å¢žå¤§éƒ¨åˆ†è¾“出产物$(br)$(li)ç»éªŒï¼ˆ$(c_purple)紫色墨水$()):$(br)巨幅æå‡ç»éªŒäº§å‡º$(br)$(li)效率($(c_black)黑色墨水$()):$(br)大幅å‡å°‘其它类型的墨水消耗,包括$(c_orange)橙色墨水$()" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/compacting_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/compacting_chest.json new file mode 100644 index 0000000000..bd7ceed084 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/compacting_chest.json @@ -0,0 +1,21 @@ +{ + "name": "压缩箱", + "advancement": "spectrum:progression/unlock_compacting_chest", + "icon": "spectrum:compacting_chest", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:compacting_chest": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)煤炭啦铜啦é“啦这些东西在你的箱å­é‡Œè‡ªç„¶è€Œç„¶åœ°å°±å †æˆäº†å±±ï¼Œå®žåœ¨å¤ªå¤šäº†ã€‚把这么多东西手动压缩起æ¥åˆæ˜¯ç´¯äººçš„æ´»ã€‚$(br2)这么å•è°ƒä¹å‘³çš„事情就应该用æŸç§æœºå…³æ¥å¹²ï¼â€”—为此,你构æ€äº†åŽ‹ç¼©ç®±ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/compacting_chest", + "text": "物如其å。$(br)压缩箱会试图将塞入的物å“以3x3,2x2或1x1的方å¼åˆæˆã€‚å¯åœ¨äº¤äº’界é¢å†…调整。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/crystallarieum.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/crystallarieum.json new file mode 100644 index 0000000000..9832eaa955 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/crystallarieum.json @@ -0,0 +1,145 @@ +{ + "name": "结晶室", + "icon": "spectrum:crystallarieum", + "advancement": "spectrum:progression/unlock_crystallarieum", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:crystallarieum": 0, + + "spectrum:small_coal_bud": 0, + "spectrum:large_coal_bud": 0, + "spectrum:coal_cluster": 0, + "spectrum:small_copper_bud": 0, + "spectrum:large_copper_bud": 0, + "spectrum:copper_cluster": 0, + "spectrum:small_diamond_bud": 0, + "spectrum:large_diamond_bud": 0, + "spectrum:diamond_cluster": 0, + "spectrum:small_emerald_bud": 0, + "spectrum:large_emerald_bud": 0, + "spectrum:emerald_cluster": 0, + "spectrum:small_glowstone_bud": 0, + "spectrum:large_glowstone_bud": 0, + "spectrum:glowstone_cluster": 0, + "spectrum:small_gold_bud": 0, + "spectrum:large_gold_bud": 0, + "spectrum:gold_cluster": 0, + "spectrum:small_iron_bud": 0, + "spectrum:large_iron_bud": 0, + "spectrum:iron_cluster": 0, + "spectrum:small_lapis_bud": 0, + "spectrum:large_lapis_bud": 0, + "spectrum:lapis_cluster": 0, + "spectrum:small_netherite_bud": 0, + "spectrum:large_netherite_bud": 0, + "spectrum:netherite_cluster": 0, + "spectrum:small_prismarine_bud": 0, + "spectrum:large_prismarine_bud": 0, + "spectrum:prismarine_cluster": 0, + "spectrum:small_quartz_bud": 0, + "spectrum:large_quartz_bud": 0, + "spectrum:quartz_cluster": 0, + "spectrum:small_redstone_bud": 0, + "spectrum:large_redstone_bud": 0, + "spectrum:redstone_cluster": 0, + "spectrum:small_certus_quartz_bud": 0, + "spectrum:large_certus_quartz_bud": 0, + "spectrum:certus_quartz_cluster": 0, + "spectrum:small_fluix_bud": 0, + "spectrum:large_fluix_bud": 0, + "spectrum:fluix_cluster": 0, + "spectrum:small_globette_bud": 0, + "spectrum:large_globette_bud": 0, + "spectrum:globette_cluster": 0, + "spectrum:small_globette_end_bud": 0, + "spectrum:large_globette_end_bud": 0, + "spectrum:globette_end_cluster": 0, + "spectrum:small_globette_nether_bud": 0, + "spectrum:large_globette_nether_bud": 0, + "spectrum:globette_nether_cluster": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "å®çŸ³æ™¶æ¯å²©å¯å‘了结晶室这一创想:由墨水驱动的魔法仪器,å¯ä»¥è‡ªåŠ¨ç”Ÿé•¿å‡ºå…¶ä¸Šæ–¹çš„çŸ¿ç‰©èµ„æºçš„结晶。$(br)虽然你无论怎么努力都没法长出$(l:general/shards)å®çŸ³æ™¶ç¢Žç‰‡$(/l),但能生长其它矿物结晶的è¯ï¼Œåº”ç”¨å‰æ™¯ä¹Ÿå¾ˆå¹¿é˜”呢。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier4/crystallarieum", + "text": "结晶室内å¯ä»¥å®¹çº³ä¸€æ•´ç»„催化剂,å¯ä»¥ç”¨äºŽå‚¬åŒ–结晶的生长。对于æŸäº›ç»“晶过程而言,催化甚至是必è¦çš„。" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "é“结晶", + "recipe": "spectrum:crystallarieum/vanilla/iron", + "text": "åªè¦æŠŠæœªç»åŠ å·¥çš„ç²—åŽŸæ–™ä¸¢åœ¨ä¸Šé¢ï¼Œå¦‚$(thing)ç²—é“$()等,就å¯ä»¥ç”Ÿé•¿è¿™äº›èµ„æºäº†ã€‚ä½ å¯ä»¥çœ‹åˆ°å°å°çš„铿™¶èн逿¸ç”Ÿé•¿ã€‚完全长大之åŽï¼Œå°±å¯ä»¥è¢«å®‰å…¨åœ°é‡‡é›†äº†ã€‚" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "钻石结晶", + "recipe": "spectrum:crystallarieum/vanilla/diamond", + "text": "具有晶体结构的方å—,例如$(thing)钻石$(),也å¯ä»¥è¢«ç›¸åŒçš„æ–¹å¼ç”Ÿé•¿ã€‚虽然这些晶体一般消耗更多墨水,但它们本身已有的晶体结构å¯ä»¥åå¤åˆ©ç”¨ï¼Œé‡æ–°ç”Ÿé•¿â€”—例如$(thing)钻石矿簇$()会产出$(thing)钻石$()。" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "铜结晶", + "recipe": "spectrum:crystallarieum/vanilla/copper", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "金结晶", + "recipe": "spectrum:crystallarieum/vanilla/gold", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "下界åˆé‡‘结晶", + "recipe": "spectrum:crystallarieum/vanilla/netherite", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "煤炭结晶", + "recipe": "spectrum:crystallarieum/vanilla/coal", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "绿å®çŸ³ç»“æ™¶", + "recipe": "spectrum:crystallarieum/vanilla/emerald", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "è§çŸ³ç»“æ™¶", + "recipe": "spectrum:crystallarieum/vanilla/glowstone", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "é’金石结晶", + "recipe": "spectrum:crystallarieum/vanilla/lapis", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "海晶结晶", + "recipe": "spectrum:crystallarieum/vanilla/prismarine_crystal", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "石英结晶", + "recipe": "spectrum:crystallarieum/vanilla/quartz", + "text": "" + }, + { + "type": "spectrum:crystallarieum_growing", + "title": "红石结晶", + "recipe": "spectrum:crystallarieum/vanilla/redstone", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/ender_dropper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/ender_dropper.json new file mode 100644 index 0000000000..305204224c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/ender_dropper.json @@ -0,0 +1,23 @@ +{ + "name": "末影投掷器", + "advancement": "spectrum:progression/unlock_ender_blocks", + "icon": "spectrum:ender_dropper", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:ender_dropper": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "末影投掷器", + "item": "spectrum:ender_dropper", + "text": "æœ«å½±æŠ•æŽ·å™¨ä¸Žæœ«å½±æ¼æ–—在功能上互补。末影投掷器会在接收到红石脉冲åŽè‡ªä½ çš„æœ«å½±ç®±ä¸­å–出一个物å“进行投掷。$(br2)注æ„:末影投掷器仅在你在线的时候å¯ç”¨ï¼Œè€Œä¸”è¿™ä¸ªæœºå…³å¯æ˜¯è°éƒ½å¯ä»¥äº¤äº’的哦?——别被å·å…‰äº†ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/ender_dropper", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/ender_hopper.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/ender_hopper.json new file mode 100644 index 0000000000..8329fb8aba --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/ender_hopper.json @@ -0,0 +1,23 @@ +{ + "name": "æœ«å½±æ¼æ–—", + "advancement": "spectrum:progression/unlock_ender_blocks", + "icon": "spectrum:ender_dropper", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:ender_hopper": 1 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "æœ«å½±æ¼æ–—", + "item": "spectrum:ender_hopper", + "text": "ä¸Žæ™®é€šæ¼æ–—的功能形æ€ç›¸ä»¿ï¼Œä½†æ˜¯å®ƒä¼šå°†ç‰©å“直接输入你的末影箱中。$(br2)æœ«å½±æ¼æ–—仅在你在线的时候å¯ç”¨ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/ender_hopper", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/fabrication_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/fabrication_chest.json new file mode 100644 index 0000000000..baddf53b88 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/fabrication_chest.json @@ -0,0 +1,22 @@ +{ + "name": "装é…ç®±", + "advancement": "spectrum:progression/unlock_restocking_chest", + "icon": "spectrum:restocking_chest", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:restocking_chest": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:restocking_chest", + "text": "$(italic)ä¸ƒå½©åŸºåº§çœŸæ˜¯ä¸ªç²¾å¦™çš„è‡ªåŠ¨åŒ–åˆæˆå·¥å…·ã€‚但对æ¯ä¸€ç§ç±»çš„物å“都å„è¦è®¾è®¡ä¸€ä¸ªåˆæˆæœºæž„那也太麻烦了å§â€¦â€¦$(br2)å—¯å“¼ï¼Œåº”è¯¥æœ‰ä¸ªæ›´å¥½çš„åŠžæ³•æ‰æ˜¯ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/restocking_chest", + "text": "装é…ç®±å†…é™„å››ä¸ªåˆæˆæ¨¡æ¿æ§½ä½ã€‚åªè¦ç®±å­é‡Œæœ‰è¶³å¤Ÿçš„原料,装é…箱就会ä¿è¯é…æ–¹æŒ‡å®šçš„äº§ç‰©æºæºä¸æ–­ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/glistering_melons.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/glistering_melons.json new file mode 100644 index 0000000000..15e37f22b8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/glistering_melons.json @@ -0,0 +1,24 @@ +{ + "name": "é—ªçƒçš„西瓜", + "advancement": "spectrum:collect_vegetal", + "icon": "minecraft:glistering_melon_slice", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "minecraft:glistering_melon_slice": 0, + "spectrum:glistering_melon": 0, + "spectrum:glistering_melon_seeds": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "é—ªçƒçš„西瓜作物", + "item": "minecraft:glistering_melon_slice", + "text": "ä½ æˆåŠŸåœ°ä¸ºç§å­èµ‹äºˆäº†å®çŸ³æ™¶ç²‰æœ«çš„魔力,试试看别的作物怎么样呢?$(br)â€¦â€¦åªæ˜¯å®žéªŒä¸€ä¸‹å˜›ï¼è‚¯å®šä¸æ˜¯è´ªå¿ƒè¿˜æ˜¯ä»€ä¹ˆçš„ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/glistering_melon_seeds" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/lava_sponge.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/lava_sponge.json new file mode 100644 index 0000000000..d5e67e942d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/lava_sponge.json @@ -0,0 +1,28 @@ +{ + "name": "熔岩海绵", + "advancement": "spectrum:progression/unlock_lava_sponge", + "icon": "spectrum:lava_sponge", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:lava_sponge": 0, + "spectrum:wet_lava_sponge": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "熔岩海绵", + "text": "$(italic)æ‰‹æŒæ¹¿æ¼‰æ¼‰çš„æµ·ç»µï¼Œä½ å¼€å§‹ç•…想有没有类似的ã€é’ˆå¯¹ç†”岩的用具。虽然找ä¸åˆ°è¿™ç§ä¸œè¥¿ï¼Œè¿™ä¹Ÿæ‹¦ä¸ä½ä½ ï¼Œè‡ªå·±å‘明一个便是。$(br2)这下,在世界深处或者传é€é—¨çš„å¦ä¸€è¾¹æŽ¢é™©å¯å°±æ–¹ä¾¿å¤šå•¦ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/lava_sponge", + "text": "â€”â€”ç†æƒ³å¾ˆä¸°æ»¡ï¼Œç„¶è€Œå¸æ»¡äº†ç†”岩的海绵有ç€ç›¸å½“$(italic)ä¸å ª$()的副作用。$(br)早知如此……" + }, + { + "type": "patchouli:text", + "title": "熔炉燃料", + "text": "熔岩海绵是一ç§é«˜æ•ˆçš„熔炉燃料,使用åŽå°±ä¼šé‡æ–°å˜å¾—干燥。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/liquid_crystal.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/liquid_crystal.json new file mode 100644 index 0000000000..a6caf45ae8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/liquid_crystal.json @@ -0,0 +1,50 @@ +{ + "name": "液体水晶", + "advancement": "spectrum:progression/unlock_liquid_crystal_bucket", + "icon": "spectrum:liquid_crystal_bucket", + "category": "spectrum:magical_blocks_category", + "turnin": "spectrum:midgame/enter_liquid_crystal", + "extra_recipe_mappings": { + "spectrum:liquid_crystal_bucket": 0, + "spectrum:blazing_crystal": 0, + "spectrum:frostbite_crystal": 0, + "spectrum:resonant_lily": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:liquid_crystal_bucket", + "text": "$(italic)å®çŸ³æ™¶çº¯æ­£èƒ½é‡çš„æ¶²æ€å½¢å¼ã€‚似乎有治疗的功效。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/liquid_crystal_bucket", + "text": "和其它å„ç§æ¶²ä½“交互生æˆçš„ææ–™å¯è°“åƒå¥‡ç™¾æ€ªã€‚在下界试试看应该也ä¸é”™ï¼" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:clay", + "text": "液体水晶与泥浆交互生æˆäº†é»åœŸå—ï¼è¿˜æœ‰åˆ«çš„ç»„åˆæ­é…å—?$(br2)$(italic)我怀疑你在æžä¸å¹³è¡¡ï¼Œä½†æˆ‘æ²¡æœ‰è¯æ®ã€‚$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_blazing_crystal", + "item": "spectrum:blazing_crystal", + "text": "å®Œæ•´çš„ä¸€æ ¼æ¶²ä½“æ°´æ™¶åœ¨å¸æ”¶äº†ç†”岩的巨大热é‡ä¹‹åŽå½¢æˆäº†è¿™ä¸ªä¸œè¥¿ã€‚$(br)有点åƒå²©æµ†å—,但滚烫得多。你称之为炽热水晶。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_frostbite_crystal", + "item": "spectrum:frostbite_crystal", + "text": "æ¶²ä½“æ°´æ™¶è¢«æ°´æµæµè¿‡ä¹‹åŽå°±å‡å›ºäº†ã€‚$(br)åªéœ€è½»è½»è§¦ç¢°ï¼Œä½ å°±æ„Ÿå—到了凛冽而刺骨的严寒。你称之为霜冻水晶。" + }, + { + "type": "spectrum:liquid_crystal_converting", + "advancement": "spectrum:midgame/collect_resonant_lily", + "anchor": "resonant_lily", + "recipe": "spectrum:liquid_crystal_converting/resonant_lily", + "text": "è¿™ä¸ªæœ‰ç‚¹æ„æ€ã€‚èŠ±æœµçš„æ ¹åŸºå¸æ”¶äº†è¿™äº›æ¶²ä½“魔法,化作了谜样的æ¤ç‰©ã€‚然而这些æ¤ç‰©æ— æ³•承å—ä½è¿™ç­‰çº¯ç²¹çš„能é‡ï¼Œå› æ­¤å°±è‡ªç„¶æŽ‰è½äº†ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/midnight_solution.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/midnight_solution.json new file mode 100644 index 0000000000..923570f1be --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/midnight_solution.json @@ -0,0 +1,50 @@ +{ + "name": "åˆå¤œæº¶æ¶²", + "icon": "spectrum:midnight_solution_bucket", + "advancement": "spectrum:progression/unlock_midnight_solution", + "category": "spectrum:magical_blocks_category", + "turnin": "spectrum:midgame/collect_midnight_chip", + "extra_recipe_mappings": { + "spectrum:midnight_solution_bucket": 0, + "spectrum:midnight_chip": 0, + "spectrum:black_materia": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你第一次è§åˆ°è¿™ç§æ€§è´¨å¥‡å¼‚的溶液,是在你的$(l:general/midnight_aberration)èžåˆå®žéªŒäº‹æ•…$()现场。$(br)ç”Ÿç‰©çš„ç”Ÿå‘½åŠ›åœ¨é¡·åˆ»é—´å°±ä¼šè¢«æº¶æ¶²å¸æ”¶æº¶è§£ï¼Œè¿˜æ˜¯ä¸è¦é è¿‘溶液的为妙。$(br)ï¼å› ç”Ÿå‘½åŠ›è¢«å¸æ”¶è€Œâ€œç­æ´»â€çš„生物也会掉è½ä»…çŽ©å®¶å‡»æ€æ‰ä¼šç”Ÿæˆçš„æˆ˜åˆ©å“。" + }, + { + "type": "patchouli:spotlight", + "title": "åˆå¤œæ®‹ç‰‡", + "item": "spectrum:midnight_chip", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "åœ¨è¿™ç§æš´æˆ¾çš„æº¶æ¶²ä¸­æ­»åŽ»çš„ç”Ÿç‰©ä¼šæŽ‰è½å½¢ä¼¼$(l:general/midnight_aberration)åˆå¤œåƒå·®$(/l)çš„ç¢Žç‰‡ï¼Œåªæ˜¯åœ¨å°ºå¯¸ä¸Šå°å¾—多得多。尖é”,锋利,邪æ¶â€”—这蚀穿心房的阴暗残片俨然æˆä¸ºäº†å®ƒä»¬ç”Ÿå‘½çš„å¥ç‚¹ã€‚" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "åˆå¤œæº¶æ¶²æ¡¶", + "recipe": "spectrum:potion_workshop_crafting/midnight_solution_bucket", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "ç”¨è¿™ç§æ®‹ç‰‡å¯ä»¥ç”Ÿäº§æ›´å¤šçš„æº¶æ¶²ä»¥æ€æ­»æ›´å¤šç”Ÿç‰©â€¦â€¦çœŸæ˜¯å¥½é˜´æš—的点å­å•Šã€‚" + }, + { + "type": "spectrum:midnight_solution_converting", + "title": "物å“转æ¢", + "recipe": "spectrum:midnight_solution_converting/blackstone", + "text": "æŸäº›ç‰©å“被丢入溶液就会被侵蚀è…åŒ–ï¼Œå˜æˆå®Œå…¨ä¸åŒçš„æ–°ç‰©å“。" + }, + { + "type": "patchouli:text", + "title": "祛魔", + "text": "甚至,如果你把附魔物å“丢入溶液,其上的魔咒就会被完全褪除。最åŽåªå‰©ä¸‹ä¸€ä¸ªæ™®é€šçš„物å“与一堆ç»éªŒã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "黑暗物质", + "item": "spectrum:black_materia", + "advancement": "spectrum:hidden/break_black_materia", + "text": "在åˆå¤œæº¶æ¶²å‘¨å›´å½¢æˆçš„æŸç§çœ‹ä¼¼æ— ç”¨çš„物质。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/mob_blocks.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/mob_blocks.json new file mode 100644 index 0000000000..3b750f5a75 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/mob_blocks.json @@ -0,0 +1,273 @@ +{ + "name": "魔盒", + "advancement": "spectrum:progression/unlock_mob_blocks", + "icon": "spectrum:fox_mob_block", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:axolotl_mob_block": 0, + "spectrum:bat_mob_block": 0, + "spectrum:bee_mob_block": 0, + "spectrum:blaze_mob_block": 0, + "spectrum:cat_mob_block": 0, + "spectrum:chicken_mob_block": 0, + "spectrum:cow_mob_block": 0, + "spectrum:creeper_mob_block": 0, + "spectrum:ender_dragon_mob_block": 0, + "spectrum:enderman_mob_block": 0, + "spectrum:endermite_mob_block": 0, + "spectrum:evoker_mob_block": 0, + "spectrum:fish_mob_block": 0, + "spectrum:fox_mob_block": 0, + "spectrum:ghast_mob_block": 0, + "spectrum:glow_squid_mob_block": 0, + "spectrum:goat_mob_block": 0, + "spectrum:guardian_mob_block": 0, + "spectrum:horse_mob_block": 0, + "spectrum:illusioner_mob_block": 0, + "spectrum:ocelot_mob_block": 0, + "spectrum:parrot_mob_block": 0, + "spectrum:phantom_mob_block": 0, + "spectrum:pig_mob_block": 0, + "spectrum:piglin_mob_block": 0, + "spectrum:polar_bear_mob_block": 0, + "spectrum:pufferfish_mob_block": 0, + "spectrum:rabbit_mob_block": 0, + "spectrum:sheep_mob_block": 0, + "spectrum:shulker_mob_block": 0, + "spectrum:silverfish_mob_block": 0, + "spectrum:skeleton_mob_block": 0, + "spectrum:slime_mob_block": 0, + "spectrum:snow_golem_mob_block": 0, + "spectrum:spider_mob_block": 0, + "spectrum:squid_mob_block": 0, + "spectrum:stray_mob_block": 0, + "spectrum:strider_mob_block": 0, + "spectrum:turtle_mob_block": 0, + "spectrum:witch_mob_block": 0, + "spectrum:wither_mob_block": 0, + "spectrum:wither_skeleton_mob_block": 0, + "spectrum:zombie_mob_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "魔盒", + "text": "æ–¹å—å½¢å¼çš„具现化生物。$(br)使用魔盒ã€åœ¨é­”ç›’ä¸Šèµ°åŠ¨ã€æˆ–者用弹射物击中它们都会触å‘与生物相关的特殊效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/axolotl_mob_block", + "text": "给予短暂的生命æ¢å¤æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/bat_mob_block", + "text": "高亮显示åŠå¾„8格范围内的生物。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/bee_mob_block", + "text": "为周围的æ¤ç‰©æ–½è‚¥ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/blaze_mob_block", + "text": "将方å—的四周以åŠè§¦å‘魔盒的生物点燃。有几率加热甚至ç¼ç„¦å‘¨å›´çš„æ–¹å—ï¼ˆå¦‚çƒ§ç‚¼çŸ¿ç‰©ã€æŠŠä¸‹ç•Œå²©å˜ä¸ºå²©æµ†å—等……)。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/cat_mob_block", + "text": "è½åœ¨å…¶ä¸Šæ–¹æ—¶å…除所有摔è½ä¼¤å®³ï¼Œä¹Ÿå¯ä»¥ä¸­æ–­ä½ çš„下è½è¿‡ç¨‹ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/chicken_mob_block", + "text": "ç»™äºˆçŸ­æš‚çš„ç¼“é™æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/cow_mob_block", + "text": "为åŠå¾„6格范围内的牛ã€å±±ç¾Šä¸Žå“žè‡æŒ¤å¥¶ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/creeper_mob_block", + "text": "引å‘å°åž‹çˆ†ç‚¸ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/ender_dragon_mob_block", + "text": "å‘射一枚末影龙ç«çƒã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/enderman_mob_block", + "text": "将你传é€åˆ°åŠå¾„16æ ¼å†…çš„éšæœºæ–¹å—上。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/endermite_mob_block", + "text": "将你传é€åˆ°é¢æœæ–¹ä½çš„直线上最多16格外的超传魔盒上。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/evoker_mob_block", + "text": "生æˆä¸€åªæ¼é¬¼ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/fish_mob_block", + "text": "ç»™äºˆçŸ­æš‚çš„æ°´ä¸‹å‘¼å¸æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/fox_mob_block", + "text": "给予短暂的急迫效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/ghast_mob_block", + "text": "å‘射一枚ç«çƒã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/glow_squid_mob_block", + "text": "给予短暂的å‘光效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/goat_mob_block", + "text": "造æˆå‡»é€€ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/guardian_mob_block", + "text": "给予短暂的挖掘疲劳效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/horse_mob_block", + "text": "ç»™äºˆçŸ­æš‚çš„åŠ›é‡æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/illusioner_mob_block", + "text": "给予短暂的éšèº«æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/ocelot_mob_block", + "text": "给予短暂的夜视效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/parrot_mob_block", + "text": "ç»™äºˆçŸ­æš‚çš„ä¼¤å®³å¸æ”¶æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/phantom_mob_block", + "text": "造æˆå¤±çœ ã€‚$(br)在露天环境下会立刻生æˆå¹»ç¿¼ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/pig_mob_block", + "text": "使用地上的食物喂养åŠå¾„6格内的动物。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/piglin_mob_block", + "text": "使用金锭交互å³å¯è¿›è¡Œäº¤æ˜“。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/polar_bear_mob_block", + "text": "冻结周围的方å—(如:水冻æˆå†°ï¼Œç†”岩冻结æˆé»‘曜石等)。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/pufferfish_mob_block", + "text": "给予短暂的å胃效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/rabbit_mob_block", + "text": "给予短暂的跳跃æå‡æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/sheep_mob_block", + "text": "为åŠå¾„6格范围内的生物剪毛。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/shulker_mob_block", + "text": "给予短暂的飘浮效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/silverfish_mob_block", + "text": "ä¸ºå‘¨å›´çš„æ–¹å—æ³¨å…¥è ¹è™«ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/skeleton_mob_block", + "text": "å‘射一根箭。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/slime_mob_block", + "text": "使åŠå¾„6格内的å²èŽ±å§†è†¨èƒ€å˜å¤§ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/snow_golem_mob_block", + "text": "å‘射一枚雪çƒã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/spider_mob_block", + "text": "给予短暂的中毒效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/squid_mob_block", + "text": "给予短暂的失明效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/stray_mob_block", + "text": "给予短暂的缓慢效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/strider_mob_block", + "text": "ç»™äºˆçŸ­æš‚çš„é˜²ç«æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/turtle_mob_block", + "text": "给予短暂的抗性æå‡æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/witch_mob_block", + "text": "给予短暂的虚弱效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/wither_mob_block", + "text": "造æˆå¤§åž‹çˆ†ç‚¸ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/wither_skeleton_mob_block", + "text": "给予短暂的凋零效果。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/mob_blocks/zombie_mob_block", + "text": "给予短暂的饥饿效果。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/mud.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/mud.json new file mode 100644 index 0000000000..be29a03a15 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/mud.json @@ -0,0 +1,23 @@ +{ + "name": "泥浆", + "advancement": "spectrum:progression/unlock_mud_bucket", + "icon": "spectrum:mud_bucket", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:mud_bucket": 0 + }, + "pages": [ + { + "title": "泥浆", + "type": "patchouli:spotlight", + "item": "spectrum:mud_bucket", + "text": "$(italic)泥浆。泥,浆。没什么特别好玩的地方。但实用的是它与水或熔岩碰撞åŽç”Ÿæˆçš„产物。分别是土和砂土。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/mud_bucket", + "text": "泥浆浴虽然å¬ä¸ŠåŽ»å¾ˆèˆ’æœä½†è¿˜æ˜¯ä¸è¦å°è¯•的比较好哦ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop.json new file mode 100644 index 0000000000..66bdc668f6 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop.json @@ -0,0 +1,21 @@ +{ + "name": "è¯æ°´å·¥ä½œç«™", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:potion_workshop": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)探险期间,你手上已ç»å¢žæ·»äº†è®¸å¤šæ–°çš„资æºå’Œææ–™ã€‚是时候研习一下å„ç§ææ–™åœ¨è¯æ°´ç‚¼åˆ¶è¿‡ç¨‹ä¸­çš„功效了。$(br2)è§å¤šè¯†å¹¿çš„你一定猜到了一点:会很棒ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/potion_workshop", + "text": "è¯æ°´å·¥ä½œç«™ç”±ç¾Žäººé±¼å®çŸ³é©±åŠ¨ï¼Œè€Œéžçƒˆç„°ç²‰ã€‚好就好在你ä¸éœ€è¦æå‰ç»™ç“¶å­è£…水了。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_brewing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_brewing.json new file mode 100644 index 0000000000..475af2500d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_brewing.json @@ -0,0 +1,85 @@ +{ + "name": "è¯æ°´å·¥ä½œç«™ï¼šç‚¼è¯", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "minecraft:potion": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "è¯æ°´ç‚¼åˆ¶", + "text": "è¯æ°´å·¥ä½œç«™æ¯•竟就一å‡çº§ç‰ˆç‚¼è¯å°ï¼Œä¹‹å‰èƒ½å¤Ÿç‚¼åˆ¶çš„è¯æ°´ä½ çŽ°åœ¨ä¹Ÿèƒ½ç‚¼åˆ¶ã€‚$(br)但å„ç§å„æ ·çš„é­”æ³•è¯æä¸ºä½ æ‰“å¼€äº†æ–°ä¸–ç•Œçš„å¤§é—¨ã€‚$(br2)利用æ¯ç§ææ–™èŽ·å–增益的难度å„异。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "åŽŸç‰ˆè¯æ°´", + "recipe": "spectrum:potion_workshop_brewing/fire_resistance", + "text": "å…ˆå‰åœ¨ç‚¼è¯å°ä¸­å¯ä¾›ä½¿ç”¨çš„ææ–™åŒæ ·å¯ä»¥åœ¨å·¥ä½œç«™ä¸­ä½¿ç”¨ä»¥ç‚¼åˆ¶ç›¸åŒçš„è¯æ°´ã€‚但和炼è¯å°ä¸åŒçš„æ˜¯ï¼Œè¯æ°´å·¥ä½œç«™ä¸­å¯ä»¥æ·»åŠ $(l:magical_blocks/potion_workshop_reagents)è¯æ°´ç‚¼æ$(/l)ä»¥èŽ·å–æ›´å¼ºå¤§çš„增益。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "伤害叿”¶", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/absorption", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å‘å…‰", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/glowing", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "急迫", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/haste", + "text": "加入一个å‘酵蛛眼å³å¯å°†æ•ˆæžœè½¬å˜ä¸º$(bold)挖掘疲劳$()。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "饱和", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "recipe": "spectrum:potion_workshop_brewing/saturation", + "text": "加入一个å‘酵蛛眼å³å¯å°†æ•ˆæžœè½¬å˜ä¸º$(bold)饥饿$()。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "飘浮", + "advancement": "spectrum:progression/potions/unlock_levitation_potion", + "recipe": "spectrum:potion_workshop_brewing/levitation", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "幸è¿", + "advancement": "spectrum:progression/potions/unlock_luck_potion", + "recipe": "spectrum:potion_workshop_brewing/luck", + "text": "加入一个å‘酵蛛眼å³å¯å°†æ•ˆæžœè½¬å˜ä¸º$(bold)霉è¿$()。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "抗性æå‡", + "advancement": "spectrum:progression/potions/unlock_resistance_potion", + "recipe": "spectrum:potion_workshop_brewing/resistance", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "凋零", + "advancement": "spectrum:progression/potions/unlock_wither_potion", + "recipe": "spectrum:potion_workshop_brewing/wither", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "黑暗", + "advancement": "spectrum:progression/potions/unlock_darkness_potion", + "recipe": "spectrum:potion_workshop_brewing/darkness", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_crafting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_crafting.json new file mode 100644 index 0000000000..8ae4342693 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_crafting.json @@ -0,0 +1,70 @@ +{ + "name": "è¯æ°´å·¥ä½œç«™ï¼šåˆæˆ", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "minecraft:water_bucket": 0, + "minecraft:lava_bucket": 0, + "spectrum:midnight_solution_bucket": 0, + "minecraft:honey_bottle": 0, + "minecraft:powder_snow_bucket": 0, + "minecraft:experience_bottle": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "å·¥ä½œç«™åˆæˆ", + "text": "è¯æ°´å·¥ä½œç«™çš„主è¦åŠŸèƒ½æ­£å¦‚å…¶å:制作强大的è¯å‰‚。$(br)但你也å‘çŽ°äº†å…¶å®ƒçš„ç”¨é€”ã€‚åŠ ä¸Šå‡ ä¸ªå¯æŽ§å¾®è°ƒå¼€å…³å’Œé˜€é—¨è¿˜æœ‰è¿™é‡Œé‚£é‡Œçš„ç²¾é›•ç»†ç¢ï¼Œä½ æˆåŠŸå¤çŽ°äº†æ³¥æµ†å’Œæ¶²ä½“æ°´æ™¶çš„åˆ¶ä½œè¿‡ç¨‹â€”â€”ç”šè‡³æ¯”åŽŸå…ˆæ›´ä¸ºé«˜æ•ˆã€‚$(br)$()以䏋酿–¹å…¨éƒ¨ä¸ä½¿ç”¨$(l:magical_blocks/potion_workshop_reagents)è¯æ°´ç‚¼æ$(/l)。" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "æ°´", + "recipe": "spectrum:potion_workshop_crafting/water_bucket", + "text": "" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "熔岩", + "recipe": "spectrum:potion_workshop_crafting/lava_bucket", + "text": "$(l:magical_blocks/lava_sponge)熔岩海绵$(/l)ä¸ä¼šè¢«æ¶ˆè€—,因而å…许你快速制作大é‡ç†”岩。" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "泥浆", + "recipe": "spectrum:potion_workshop_crafting/mud_bucket", + "text": "" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "液体水晶", + "recipe": "spectrum:potion_workshop_crafting/liquid_crystal_bucket", + "text": "" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "åˆå¤œæº¶æ¶²", + "advancement": "spectrum:midgame/collect_midnight_chip", + "recipe": "spectrum:potion_workshop_crafting/midnight_solution_bucket", + "text": "" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "蜂蜜液化", + "recipe": "spectrum:potion_workshop_crafting/honey_bottle", + "text": "" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "细雪", + "recipe": "spectrum:potion_workshop_crafting/powder_snow_bucket", + "text": "" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "附魔之瓶", + "recipe": "spectrum:potion_workshop_crafting/experience_bottle", + "text": "会消耗知识å®çŸ³ä¸­çš„10点ç»éªŒã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_reagents.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_reagents.json new file mode 100644 index 0000000000..fd208d7d15 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/potion_workshop_reagents.json @@ -0,0 +1,162 @@ +{ + "name": "è¯æ°´å·¥ä½œç«™ï¼šç‚¼æ", + "icon": "spectrum:potion_workshop", + "advancement": "spectrum:progression/unlock_potion_workshop", + "category": "spectrum:magical_blocks_category", + "pages": [ + { + "type": "patchouli:text", + "title": "使用炼æ", + "text": "相比由烈焰粉炼制而æˆçš„è¯æ°´ï¼Œä½¿ç”¨ç¾Žäººé±¼å®çŸ³ç‚¼åˆ¶çš„è¯æ°´å应更为剧烈:你ä¸ä»…å¯ä»¥æ·»åŠ å„ç§å„æ ·çš„æ–°åž‹é­”æ³•ææ–™ï¼Œè¿˜èƒ½å¤Ÿä½¿ç”¨ç‰¹åˆ«çš„è¯æ°´ç‚¼æä½œä¸ºå应剂。æ¯ä¸€ç§ç‚¼æéƒ½ä¼šæ”¹å˜è¯æ°´æœ¬èº«çš„æ€§è´¨ï¼Œä¸”å„åªèƒ½ä½¿ç”¨ä¸€æ¬¡ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:redstone", + "text": "效果æŒç»­æ—¶é—´åŠ å€ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:glowstone_dust", + "text": "æå‡æ•ˆæžœå¼ºåº¦ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:gunpowder", + "text": "åˆ¶ä½œå–·æº…åž‹è¯æ°´ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:dragon_breath", + "advancement": "spectrum:hidden/collect_vanilla/collect_dragon_breath", + "text": "åˆæˆæ»žç•™åž‹è¯æ°´ - åŒæ—¶éœ€è¦ç«è¯ä½œä¸ºç‚¼æã€‚$(br2)将玻璃瓶替æ¢ä¸ºç®­èƒ½å¤Ÿåˆ¶ä½œè¯ç®­ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:topaz_powder", + "text": "移除效果粒å­ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:amethyst_powder", + "text": "å°å¹…加长效果æŒç»­æ—¶é—´ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:citrine_powder", + "text": "å°å¹…å€å¢žæ•ˆæžœå¼ºåº¦ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:onyx_powder", + "text": "ä¸ºè¯æ°´å¢žæ·»æŸç§å¥‡æ€ªçš„味é“和气味,使其无法被辨认。$(br)并将其完全å˜ä¸ºé»‘色。" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstone_powder", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "text": "å°†æ‰€æœ‰è´Ÿé¢æ•ˆæžœè½¬æ¢ä¸ºå¯¹åº”çš„æ­£é¢æ•ˆæžœã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:shimmerstone_gem", + "text": "略微å€å¢žæ•ˆæžœæŒç»­æ—¶é—´å’Œæ•ˆæžœå¼ºåº¦ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:quitoxic_powder", + "advancement": "spectrum:collect_quitoxic_reeds", + "text": "巨幅æå‡æ‰€æœ‰è´Ÿé¢æ•ˆæžœçš„æ•ˆæžœå¼ºåº¦ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:stratine_fragments", + "advancement": "spectrum:midgame/collect_stratine", + "text": "大幅æå‡æ•ˆæžœå¼ºåº¦ï¼Œä½†æ·»åŠ ä¸€ä¸ªéšæœºçš„è´Ÿé¢æ•ˆæžœã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:paltaeria_fragments", + "advancement": "spectrum:lategame/collect_paltaeria", + "text": "æ·»åŠ ä¸€ä¸ªéšæœºçš„æ­£é¢æ•ˆæžœã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:stardust", + "advancement": "spectrum:hidden/collect_stardust", + "text": "$(italic)把先å‰ç‚¼åˆ¶è¿‡çš„è¯æ°´æ‰€æ®‹ç•™çš„æ¯ä¸€æ»´éƒ½å¸å¾—干干净净。$()$(br2)å°æ¦‚çŽ‡ä¸ºè¯æ°´æ·»åŠ å…ˆå‰ç‚¼åˆ¶è¿‡çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:star_fragment", + "advancement": "spectrum:collect_star_fragment", + "text": "$(italic)类似星尘,但效果更强。$()$(br2)ä¸ºè¯æ°´æ·»åŠ å…ˆå‰ç‚¼åˆ¶è¿‡çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœï¼Œæ·»åŠ çš„æ•ˆæžœå¼ºåº¦å°å¹…下é™ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:storm_stone", + "advancement": "spectrum:midgame/collect_storm_stone", + "text": "æå‡ä¸€å¼€å§‹çš„æ•ˆæžœå¼ºåº¦ï¼Œä½†éšç€æ—¶é—´çš„æŽ¨ç§»ï¼Œæ•ˆæžœå¼ºåº¦å°†è¿…速å‡å¼±ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:raw_azurite", + "advancement": "spectrum:midgame/collect_azurite", + "text": "æå‡ä¸€å¼€å§‹çš„æ•ˆæžœå¼ºåº¦ï¼Œä½†éšç€æ—¶é—´çš„æŽ¨ç§»ï¼Œæ•ˆæžœå¼ºåº¦å°†è¿…速å‡å¼±ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:four_leaf_clover", + "advancement": "spectrum:collect_four_leaf_clover", + "text": "ä¸ºéšæœºä¸€ä¸ªæ•ˆæžœæä¾›å·¨å¤§å¢žå¹…。" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:vegetal", + "advancement": "spectrum:collect_vegetal", + "text": "以é™ä½Žæ•ˆæžœå¼ºåº¦ä¸ºä»£ä»·ä½¿æ•ˆæžœæŒç»­æ—¶é—´åŠ å€ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:neolith", + "advancement": "spectrum:midgame/collect_neolith", + "text": "增加产é‡ï¼Œå…è®¸ä½ å¤šç‚¼åˆ¶ä¸€ç“¶è¯æ°´ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:midnight_chip", + "advancement": "spectrum:midgame/collect_midnight_chip", + "text": "æå‡æ•ˆæžœå¼ºåº¦å¹¶å»¶é•¿æ•ˆæžœæŒç»­æ—¶é—´30秒,但大幅é™ä½Žè¯æ°´äº§é‡ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:moonstruck_nectar", + "advancement": "spectrum:midgame/harvest_moonstruck_nectar", + "text": "ä½¿è¯æ°´æ›´åŠ é†‡å’Œï¼Œä»Žè€ŒåŠ å¿«é¥®ç”¨é€Ÿåº¦ã€‚äº‰åˆ†å¤ºç§’çš„æ—¶å€™å…´è®¸å¤§æœ‰ç”¨å¤„ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bedrock_dust", + "advancement": "spectrum:midgame/break_decayed_bedrock", + "text": "效果强度加å€ï¼Œä½†å‡å°‘æŒç»­æ—¶é—´ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:bismuth_crystal", + "advancement": "spectrum:lategame/collect_bismuth_crystal", + "text": "å¹³å‡çš„å¢žå¼ºæ‰€æœ‰çš„æ­£é¢æ•ˆæžœï¼Œå¹¶ä¸ºè¯æ°´æŸ“ä¸Šéšæœºä¸€ç§é¢œè‰²ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:malachite_crystal", + "advancement": "spectrum:lategame/grow_malachite_in_crystallarieum", + "text": "æ•ˆæžœå¼ºåº¦éšæ—¶é—´ä»¥ä¸‰å€åŠ æˆï¼Œä½†ä¼šå»¶é•¿è¯æ°´çš„饮用耗时。" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:prickly_bayleaf", + "anchor": "prickly_bayleaf", + "advancement": "spectrum:lategame/collect_prickly_bayleaf", + "text": "巨幅é™ä½Žç”šè‡³æ˜¯ç›´æŽ¥æ¸…é™¤æ‰€æœ‰çš„è´Ÿé¢æ•ˆæžœã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/private_chest.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/private_chest.json new file mode 100644 index 0000000000..b936582e28 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/private_chest.json @@ -0,0 +1,27 @@ +{ + "name": "心çµç»“å°ç®±", + "advancement": "spectrum:progression/unlock_private_chest", + "icon": "spectrum:private_chest", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:private_chest": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:private_chest", + "text": "$(italic)ä½ è‰è‰æ”¾ä¸‹ç®±å­ç‚¹æŽ‡è¡Œå›Šèº«å®¶ï¼Œæºœè¾¾å›žæ¥å´å‘现箱å­è¢«æ´—劫一空。这ç§äº‹æƒ…实在过分常è§ã€‚$(br)为此,你设计了一款特别的箱å­ã€‚ä¸ä»…防盗,还能辅助你把贼人抓个现行ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/private_chest", + "text": "心çµç»“å°ç®±ä»…能被放置者打开,且æä¾›ä¸¤ä¸ªæ™®é€šç®±å­çš„容é‡ã€‚" + }, + { + "type": "patchouli:text", + "title": "红石元件", + "text": "类似陷阱箱,心çµç»“å°ç®±ä¹Ÿä¼šè¾“出红石信å·ã€‚$(br)由主人打开会输出强度为15的信å·ï¼Œä½†ç”±åˆ«äººæ‰“å¼€åªä¼šè¾“出强度为7的信å·ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/semi_permeable_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/semi_permeable_glass.json new file mode 100644 index 0000000000..2e71f019e5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/semi_permeable_glass.json @@ -0,0 +1,37 @@ +{ + "name": "åŠç©¿é€çŽ»ç’ƒ", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "icon": "spectrum:amethyst_player_only_glass", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:vanilla_player_only_glass": 0, + "spectrum:tinted_player_only_glass": 0, + "spectrum:glowing_player_only_glass": 0, + "spectrum:topaz_player_only_glass": 0, + "spectrum:amethyst_player_only_glass": 0, + "spectrum:citrine_player_only_glass": 0, + "spectrum:onyx_player_only_glass": 0, + "spectrum:moonstone_player_only_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "åŠç©¿é€çŽ»ç’ƒ", + "item": "spectrum:amethyst_player_only_glass", + "text": "$(italic)夜幕é™ä¸´ï¼Œæ€ªç‰©çŽ°å½¢ã€‚ç„¶è€Œè¿™äº›å¯æ€–而凶æ¶çš„å¨èƒå¯¹çŽ°å¦‚ä»Šçš„ä½ ä¸è¿‡æ˜¯å¾®ä¸è¶³é“的资æºè€Œå·²ã€‚å³ä¾¿å¦‚此,它们ä»ç„¶ä¸ä¼šæ”¾è¿‡ä»»ä½•一次烦扰你的机会。$(br)在家还è¦åå¤é©±é€æ€ªç‰©ï¼Œå®žåœ¨ä»¤ä½ ä¸èƒœå…¶çƒ¦ã€‚$()" + }, + { + "type": "patchouli:text", + "text": "$(italic)对了ï¼åŽŸæœ¬ä¸æ˜¯æœ‰ä¸€ä¸ªå®çŸ³æ™¶çŽ»ç’ƒçš„é…æ–¹å—ï¼$(br2)åªè¦å†åŠ ä¸Šä¸€ç‚¹é­”æ³•ï¼Œè¿™æ ·åˆ¶æˆçš„玻璃就å…许由你(仅有你ï¼ï¼‰ç©¿è¿‡ã€‚$(br2)å°è´´å£«ï¼šå¦‚æžœæŠŠå®ƒåšæˆæ™®é€šçŽ»ç’ƒçš„æ¨¡æ ·ï¼Œå…´è®¸è¿˜èƒ½å”¬ä½ä½ çš„对手ï¼$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/player_only_glass/amethyst_player_only_glass" + }, + { + "type": "patchouli:text", + "text": "åŠç©¿é€çŽ»ç’ƒå­˜åœ¨å¤šç§æ¬¾å¼ï¼šå®çŸ³æ™¶æ¬¾å¼ï¼Œé€šå¸¸æ¬¾å¼ï¼Œé®å…‰åŠå‘光款å¼ã€‚$(br2)它们和$(l:decoration/gemstone_glass)普通的å®çŸ³æ™¶çŽ»ç’ƒ$()å½¢æ€ç›¸åŒï¼Œä½†çީ家å¯ä»¥ç©¿é€å¹¶é€šè¿‡è¿™äº›çŽ»ç’ƒï¼Œè€Œå…¶å®ƒç”Ÿç‰©ä¼šåƒè‹è‡ä¸€æ ·è¢«å¼¹å¼€ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/titration_barrel.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/titration_barrel.json new file mode 100644 index 0000000000..770bb47006 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/titration_barrel.json @@ -0,0 +1,63 @@ +{ + "name": "å‘酵桶", + "icon": "spectrum:titration_barrel", + "advancement": "spectrum:progression/unlock_titration_barrel", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:titration_barrel": 0, + "spectrum:kimchi": 0, + "spectrum:clotted_cream": 0, + "spectrum:fresh_chocolate": 0, + "spectrum:hot_chocolate": 0, + "spectrum:bodacious_berry_bar": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "æƒ³è¦æ¥ç‚¹ç»è¿‡å‘酵的$(l:magical_blocks/titration_barrel#kimchi)食物$(/l)å’Œ$(l:magical_items/infused_beverages)饮å“$(/l)å—?现在仅需把原料放进这个由$(l:general/colored_trees#colored_wood)彩色木æ¿$(/l)åšæˆçš„å‘酵桶就行了,剩下的交给时间处ç†ã€‚ $(br)木æ¿çš„属性会影å“ç€åŽŸæ–™çš„å‘酵过程,产物时多时少,时好时å,皆有å¯èƒ½ï¼ˆå¦‚果你的烹饪水平足够好就ä¸ç”¨æ‹…心这些)。$(br)哦对,这东西最多能容纳一组物å“和一桶液体。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/titration_barrel", + "text": "$(italic)è¯•è¯•çœ¨ä¸€ä¸‹çœ¼ï¼Œæ˜¯å¦æ„Ÿåˆ°ä½ çš„世界仿佛转瞬å³é€ï¼Ÿæ¯å½“你有这ç§å¥‡æ€ªçš„æ„Ÿè§‰æ—¶ï¼Œå‘酵桶的å‘酵进度总会有新的进展。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "泡èœ", + "anchor": "kimchi", + "recipe": "spectrum:titration_barrel/kimchi", + "text": "ä¸åªæ˜¯é¥®æ–™èƒ½è¢«å‘é…µï¼çŽ°åœ¨ï¼Œä½¿ç”¨ä¸‰ç§ä¸åŒçš„è”¬èœæ¥åˆ¶ä½œæ³¡èœå§ï¼Œè¿™é“丰盛的èœè‚´å¾ˆé€‚åˆä½œä¸ºé…èœã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "å‡è„‚奶油", + "anchor": "clotted_cream", + "recipe": "spectrum:titration_barrel/clotted_cream", + "text": "这是一ç§ä»…被轻微å‘酵的乳制å“,它ä»ç„¶å…·æœ‰å’Œ$(thing)奶$()相åŒçš„特性——食用åŽä¼šæ¸…é™¤æ‰€æœ‰çš„çŠ¶æ€æ•ˆæžœã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "鲜巧克力", + "anchor": "fresh_chocolate", + "recipe": "spectrum:titration_barrel/fresh_chocolate", + "text": "试试这个很ä¸é”™çš„å°åƒï¼šä½ èƒ½å¾ˆå¿«çš„将它一å£åžä¸‹ï¼Œå¹¶ä¸ºä½ å¸¦æ¥å足的饱腹感。$(br)ç”œèœœåˆæžœé¦™åè¶³ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "元气莓果棒", + "advancement": "spectrum:progression/unlock_bodacious_berry_bar", + "anchor": "bodacious_berry_bar", + "recipe": "spectrum:pedestal/tier2/food/bodacious_berry_bar", + "text": "这份精心制作的美味盛宴,ç»å¯¹ä¼šè®©æ‚¨åž‚涎三尺ï¼" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "热巧克力", + "advancement": "spectrum:progression/unlock_potion_workshop", + "anchor": "hot_chocolate", + "recipe": "spectrum:potion_workshop_crafting/hot_chocolate", + "text": "在冷清åˆå¯’冷的季节,没有什么能比这份热巧克力更加温暖人心了ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/universe_spyhole.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/universe_spyhole.json new file mode 100644 index 0000000000..e31a9e1287 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/universe_spyhole.json @@ -0,0 +1,21 @@ +{ + "name": "全视é€é•œ", + "advancement": "spectrum:progression/unlock_universe_spyhole", + "icon": "spectrum:universe_spyhole", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:universe_spyhole": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "这个神奇的方å—å¯ä»¥è®©ä½ çœ¼ç©¿å¤§åœ°ï¼Œç›®é€å²©çŸ³ã€‚åªè¦æ”¾ç½®åœ¨å¢™è¾¹æˆ–者地上,你就å¯ä»¥é€šè¿‡é€é•œæ´žå¯Ÿå¯¹ä¾§çš„一切。$(br2)$(italic)末影è¾å…‰åˆ¶å“的奇妙性质真是令你大开眼界。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/universe_spyhole", + "text": "$(italic)看看你的" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/upgrades.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/upgrades.json new file mode 100644 index 0000000000..211766c3dd --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_blocks/upgrades.json @@ -0,0 +1,129 @@ +{ + "name": "基座增益器", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "icon": "spectrum:upgrade_speed", + "category": "spectrum:magical_blocks_category", + "extra_recipe_mappings": { + "spectrum:upgrade_speed": 0, + "spectrum:upgrade_speed2": 0, + "spectrum:upgrade_speed3": 0, + "spectrum:upgrade_experience": 0, + "spectrum:upgrade_experience2": 0, + "spectrum:upgrade_efficiency": 0, + "spectrum:upgrade_efficiency2": 0, + "spectrum:upgrade_yield": 0, + "spectrum:upgrade_yield2": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "七彩基座和èžåˆåœ£å›è™½ç„¶å„æ˜¾ç¥žé€šï¼Œä½†éƒ½ä»æœ‰ç›¸å½“大的改进空间。为此,你设计了这些增益器。æ¯ç§å¢žç›Šå™¨å„为结构本身的æŸé¡¹åŠŸèƒ½æä¾›ç‰¹åŒ–加æˆï¼Œé€‰å–å“ªç§æ‚‰å¬å°Šä¾¿ã€‚$(br)åŒç±»å¢žç›Šå™¨æ•ˆæžœå åŠ ï¼Œä½†åŠ æˆé€’å‡ã€‚" + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:midgame/build_advanced_pedestal_structure", + "title": "åˆæˆåŠ é€Ÿå™¨", + "recipe": "spectrum:pedestal/tier3/upgrade_speed", + "text": "处ç†å¤æ‚原料时,$(l:general/pedestal)七彩基座$(/l)çš„åˆæˆç”¨æ—¶ä¼šå˜å¾—ç›¸å½“é•¿ä¹…ã€‚åˆæˆåŠ é€Ÿå™¨èƒ½æŠŠè€—æ—¶åŽ‹å…¥å¯ä»¥æŽ¥å—的时长内。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_speed2", + "title": "II级å‡çº§", + "recipe": "spectrum:pedestal/tier3/upgrade_speed2", + "text": "IIçº§åˆæˆåŠ é€Ÿå™¨æ˜¯å‰è€…的全é¢å‡çº§ï¼ŒåŠ©ä½ æ›´å¿«é€Ÿåœ°åˆæˆç‰©å“。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_speed3", + "title": "III级å‡çº§", + "recipe": "spectrum:pedestal/tier4/upgrade_speed3", + "text": "III级å‡çº§ï¼Œæ— å¿§æ— è™‘â€”â€”è‡³å°‘åœ¨åˆæˆé€ŸçŽ‡ä¸Šç¡®å®žä¸ä¼šå†æœ‰ä»€ä¹ˆé¡¾è™‘了。" + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_experience", + "title": "知识汇集器", + "recipe": "spectrum:pedestal/tier3/upgrade_experience", + "text": "$(l:general/pedestal)七彩基座$(/l)åˆæˆç”Ÿäº§çš„ç»éªŒç»å¸¸åªå¤Ÿå¡žç‰™ç¼ã€‚知识汇集器能够å¯è§‚地æé«˜ç»éªŒäº§é‡ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_experience2", + "title": "II级å‡çº§", + "recipe": "spectrum:pedestal/tier3/upgrade_experience2", + "text": "å‡çº§ç‰ˆçŸ¥è¯†æ±‡é›†å™¨è¿˜èƒ½å†è¿›ä¸€æ­¥æé«˜äº§é‡ã€‚" + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:midgame/create_refined_azurite", + "title": "å应催化器", + "recipe": "spectrum:pedestal/tier3/upgrade_efficiency", + "text": "$(l:general/pedestal)七彩基座$(/l)对å®çŸ³æ™¶ç²‰æœ«çš„æ¶ˆè€—å¯è°“ç‹®å­å¤§å¼€å£ã€‚$(br)现在总算能节æµäº†ï¼Œèƒ½çœä¸€ç‚¹æ˜¯ä¸€ç‚¹ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_efficiency2", + "title": "II级å‡çº§", + "recipe": "spectrum:pedestal/tier4/upgrade_efficiency2", + "text": "这款“å‡çº§çš„增益â€è¿˜èƒ½å†å¤šç²¾çœä¸€ç‚¹èµ„æºã€‚" + }, + + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:lategame/collect_paletur", + "title": "转化率æå‡å™¨", + "recipe": "spectrum:pedestal/tier4/upgrade_yield", + "text": "è¿™ä¸ªæœ‰æ„æ€ã€‚ä½ æœ‰å‡ çŽ‡èŽ·å¾—æ›´å¤šçš„åˆæˆäº§ç‰©ï¼Œè™½ç„¶æ¦‚率很å°ã€‚$(br)$(italic)物美价廉,å•è½¦å˜æ‘©æ‰˜å•¦ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_upgrade_yield2", + "title": "II级å‡çº§", + "recipe": "spectrum:pedestal/tier4/upgrade_yield2", + "text": "å‡çº§ç‰ˆåˆ™æ˜¯æ›´ä¸ºå¼ºåŠ²ï¼Œä½ å¯èƒ½èŽ·å¾—æ›´å¤šäº§ç‰©ã€‚" + }, + + { + "type": "patchouli:multiblock", + "name": "七彩基座å‡çº§æ”¾ç½®ä½", + "multiblock_id": "spectrum:pedestal_structure_with_upgrades", + "enable_visualize": false, + "text": "共有4个å‡çº§ä½" + }, + { + "type": "patchouli:multiblock", + "name": "èžåˆåœ£å›å‡çº§æ”¾ç½®ä½", + "multiblock_id": "spectrum:fusion_shrine_structure_with_upgrades", + "enable_visualize": false, + "text": "共有4个å‡çº§ä½" + }, + { + "type": "patchouli:multiblock", + "advancement": "spectrum:midgame/enter_liquid_crystal", + "name": "附魔基座å‡çº§æ”¾ç½®ä½", + "multiblock_id": "spectrum:enchanter_structure_with_upgrades", + "enable_visualize": false, + "text": "共有4个å‡çº§ä½" + }, + { + "type": "patchouli:multiblock", + "advancement": "spectrum:progression/unlock_cinderhearth", + "name": "炼化炉å‡çº§æ”¾ç½®ä½", + "multiblock_id": "spectrum:cinderhearth_structure_with_upgrades", + "enable_visualize": false, + "text": "共有2个å‡çº§ä½" + }, + { + "type": "patchouli:multiblock", + "advancement": "spectrum:progression/unlock_spirit_instiller", + "name": "çµé­‚çŒæ³¨å°å‡çº§æ”¾ç½®ä½", + "multiblock_id": "spectrum:spirit_instiller_structure_with_upgrades", + "enable_visualize": false, + "text": "共有2个å‡çº§ä½" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/bag_of_holding.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/bag_of_holding.json new file mode 100644 index 0000000000..2a8fdbaa87 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/bag_of_holding.json @@ -0,0 +1,23 @@ +{ + "name": "纳袋", + "advancement": "spectrum:progression/unlock_bag_of_holding", + "icon": "spectrum:bag_of_holding", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bag_of_holding": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "纳袋", + "item": "spectrum:bag_of_holding", + "text": "$(italic)还在为先放上末影箱,装好东西åŽå†ç”¨å¸¦æœ‰ç²¾å‡†é‡‡é›†çš„é•å­æŒ–掉这一ç¹ççš„æ“作而苦æ¼å—?$(br)è¿™é¡¹å‘æ˜Žå®Œç¾Žçš„解决了这个问题。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/bag_of_holding", + "text": "仅需将它打开,你就能看到你的末影箱里装了哪些东西。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/block_flooder.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/block_flooder.json new file mode 100644 index 0000000000..4a9d4764f2 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/block_flooder.json @@ -0,0 +1,21 @@ +{ + "name": "æ–¹å—填充器", + "advancement": "spectrum:progression/unlock_block_flooder", + "icon": "spectrum:block_flooder", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:block_flooder": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "四处手动照明点ç¯ï¼Œå°é—­æ´žçªŸå‡ºå…¥å£çš„你好åƒä¸€ä¸ªåŽŸå§‹äººã€‚ä¸ºäº†å‡å°‘负担,你想到了$(l:creating_life/fading)褪解微生物$(/l)çš„å¢žæ®–ç‰¹æ€§ï¼Œå€Ÿæ­¤å‘æ˜Žäº†æ–¹å—填充器。$(br)扔进洞å£ã€æ± å¡˜ã€å³¡è°·ï¼Œå®ƒä»¬å°±è¢«å¡žæ»¡å•¦â€”—甚至有5%的几率看起æ¥åƒé‚£ä¹ˆå›žäº‹ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/block_flooder", + "text": "æ–¹å—å¡«å……å™¨ä¼šä»Žä½ çš„ç‰©å“æ ä¸­æ‹‰å–æ–¹å—æ¥å¡«å……ç¼éš™ã€‚如果你没有相应的方å—了,它会试图用圆石代替。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/blood_orchid_products.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/blood_orchid_products.json new file mode 100644 index 0000000000..ff24b65762 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/blood_orchid_products.json @@ -0,0 +1,48 @@ +{ + "name": "血红兰制å“", + "icon": "spectrum:bloodboil_syrup", + "advancement": "spectrum:midgame/collect_blood_orchid_petal", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bloodboil_syrup": 0, + "spectrum:demon_tea": 0, + "spectrum:demon_trifle": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "name": "血红兰制å“", + "item": "spectrum:bloodboil_syrup", + "text": "æ‘„å…¥$(l:resources:blood_orchid)血红兰$(/l)çš„æå–物会产生一ç§å¾ˆå¼ºçš„å应——这将会让摄入者陷入$(thing)ç‹‚èº$():$(br)其攻击力,攻击和移动速度,击退抗性会因其击æ€çš„ç”Ÿç‰©è¶Šå¤šè€Œé€æ¸å¢žå¼ºï¼›ç›¸å,其在15秒内没有攻击任何生物则会å—到负é¢å½±å“,效果等级越大,影å“也越大。" + }, + { + "type": "patchouli:text", + "title": "ç‹‚èºå åŠ ", + "text": "为了尽å¯èƒ½çš„åˆ©ç”¨å¥½è¿™ç§æ•ˆæžœï¼Œä½ å¯ä»¥åœ¨å·²ç»æœ‰è¯¥æ•ˆæžœçš„基础上å†èŽ·å¾—ä¸€æ¬¡$(thing)ç‹‚èº$()效果,无需é‡ç½®å…¶æŒç»­æ—¶é—´ã€‚$(br2)一个更好的例å­ï¼šå…ˆèŽ·å¾—ä¸€ä¸ªæŒç»­æ—¶é—´è¾ƒé•¿çš„该效果,之åŽå†å åŠ å¦ä¸€ä¸ªè¯¥æ•ˆæžœå³å¯å°†æ•ˆç›Šæœ€å¤§åŒ–。" + }, + { + "type": "spectrum:potion_workshop_crafting", + "recipe": "spectrum:potion_workshop_crafting/bloodboil_syrup", + "text": "从花瓣中æå–出的有效æˆåˆ†çœ‹ä¸ŠåŽ»åƒæ˜¯ä¸€ç§æ•£å‘出和玫瑰水相似味é“的浓稠液体。这东西å–下去ç»å¯¹ä¼šèµ·æ•ˆ...$(italic)还有些起泡$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_demon_trifle", + "recipe": "spectrum:pedestal/tier3/food/demon_trifle", + "text": "在一开始,你获得的$(thing)ç‹‚èº$()效果等级还比较低,但其æŒç»­çš„æ—¶é—´ä¼šå¾ˆä¹…。" + }, + { + "type": "spectrum:potion_workshop_crafting", + "advancement": "spectrum:progression/unlock_demon_tea", + "recipe": "spectrum:potion_workshop_crafting/demon_tea", + "text": "你获得的$(thing)ç‹‚èº$()效果等级比较高,但其æŒç»­çš„æ—¶é—´ä¼šå¾ˆçŸ­ã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_rabbit_poison", + "title": "å…”å­è¯æ°´", + "recipe": "spectrum:titration_barrel/infused_beverages/rabbit_poison", + "text": "一ç§çœ‹ç€ä»¤äººåŽŒæ¶çš„é…’é…¿ï¼Œå…¶å‘³é“æ­£å¦‚你所想的那样ä¸å¯æè¿°ï¼Œä¸è¿‡å–了它该有的效果还会æ¥çš„。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/bottomless_bundle.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/bottomless_bundle.json new file mode 100644 index 0000000000..3f96fcbedc --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/bottomless_bundle.json @@ -0,0 +1,49 @@ +{ + "name": "无底袋", + "advancement": "spectrum:progression/unlock_bottomless_bundle", + "icon": "spectrum:bottomless_bundle", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:bottomless_bundle": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:bottomless_bundle", + "text": "$(italic)在探索地下世界的旅途中,你总会采集到一些看似多余,但实则大有用途的方å—。$(br2)如果你很想把这些方å—统统收集起æ¥ï¼Œå´å›¿äºŽä½ çš„空袋空间严é‡ä¸è¶³çš„è¯ï¼Œæ˜¯æ—¶å€™ä¸ºä½ çš„储存问题æä¾›ä¸€ä¸ªæ–°çš„æ–¹æ¡ˆäº†ï¼$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/bottomless_bundle", + "text": "è¿™ä¾¿æ˜¯æ— åº•è¢‹â€”â€”æ‹¥æœ‰ç€æœ€å¤šæ— é™å‚¨é‡çš„袋å­ï¼ä¸è¿‡ä»…é™å‚¨å­˜åŒä¸€ç§æ–¹å—或物å“。$(br)åœ¨ç‰©å“æ ä¸­ï¼Œæ‹¿ç€æŸç§æ–¹å—或物å“对其å³å‡»ä»¥è£…进去;将装好东西的袋å­å¯¹ç€ç©ºæ§½ä½å³å‡»ä»¥å€’出æ¥ã€‚此外直接å³å‡»ä¹Ÿå¯å€’出东西。" + }, + { + "type": "patchouli:image", + "title": "自动化", + "images": [ + "spectrum:textures/gui/guidebook/bottomless_bundle_automation.png" + ], + "text": "æŒ‰ä½æ½œè¡Œé”®ï¼Œæ‰‹æŒæ— åº•è¢‹å¯¹ç€æ–¹å—上表é¢å³å‡»ä¾¿å¯å°†å…¶æ”¾ç½®ï¼ˆä»¥æ–¹å—的形å¼ï¼‰ï¼Œä¹‹åŽä¾¿ä¸ºå…¶è¿žæŽ¥æ¼æ–—æ¥å®žçŽ°æ–¹å—æˆ–物å“的自动存放。" + }, + { + "type": "patchouli:text", + "title": "", + "text": "$(br)被放置的无底袋会记忆其存入的东西的ç§ç±»ã€‚$(br)å³ä½¿å…¶è¢«æ¸…空也ä¸ä¼šæŽ¥å—å…¶ä»–ç§ç±»çš„东西,因此å¯å°†å®ƒä½œä¸ºä¸€ç§è¿‡æ»¤å™¨ä½¿ç”¨ã€‚$(br2)$(italic)å¤‡æ³¨ï¼šå¦‚æžœå…¶åœ¨æ”¾ç½®ä¹‹å‰æ²¡è£…有任何东西,它将会记ä½è¢«æ³¨å…¥çš„第一个东西的ç§ç±»ï¼Œå¹¶å†å…¶åŽä»…接å—这一ç§ä¸œè¥¿çš„存放。$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "附魔 - 能é‡", + "item": "spectrum:bottomless_bundle{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", + "text": "无底袋能通过在$(l:enchanting/enchanting_items)注魔基座$(/l)上注入力é‡çš„附魔æ¥å¢žåР容é‡ã€‚æ¯å¢žåŠ ä¸€çº§åŠ›é‡ï¼Œå…¶å®¹é‡å¢žåŠ åå€ã€‚$(br2)$(italic)ä½ èƒ½ç»™ä½ çš„è¢‹å­æ³¨å…¥åŠ›é‡V的附魔å—?" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "虚空的诅咒", + "item": "spectrum:bottomless_bundle{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "text": "在$(l:enchanting/enchanting_items)注魔基座$(/l)上为无底袋注入虚空诅咒,会使其收纳的所有超出其容é‡ä¸œè¥¿ç›´æŽ¥æ¶ˆå¤±ã€‚$(br2)$(italic)挖矿时ä¸ç”¨æ‹…心太多没用的方å—阻ç¢ä½ çš„æŒ–掘进度了。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/celestial_pocketwatch.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/celestial_pocketwatch.json new file mode 100644 index 0000000000..1f606200d4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/celestial_pocketwatch.json @@ -0,0 +1,21 @@ +{ + "name": "天体怀表", + "advancement": "spectrum:progression/unlock_celestial_pocketwatch", + "icon": "spectrum:celestial_pocketwatch", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:celestial_pocketwatch": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "åˆæˆç¼ŸçŽ›ç‘™å¯¹å¤©è±¡çš„è¦æ±‚还是太严苛了,新月å¯ä¸æ˜¯å¤©å¤©è§çš„。æ¯å½“ä½ æŽç€è¡¨ç­‰å¾…åˆå¤œçš„æ—¶å€™ï¼Œä¸€ä¸ªä¸å°å¿ƒå·²ç»è¶…出两分钟了。$(br)祭出大æ€å™¨ï¼šå“红色的时间æ“纵特色å§ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier4/celestial_pocketwatch", + "text": "$(italic)这点å­è¿˜æŒºæ˜Ÿï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/crafting_tablet.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/crafting_tablet.json new file mode 100644 index 0000000000..8f942021a8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/crafting_tablet.json @@ -0,0 +1,22 @@ +{ + "name": "åˆæˆæ¨¡æ¿", + "icon": "spectrum:crafting_tablet", + "advancement": "spectrum:progression/unlock_crafting_tablet", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:crafting_tablet": 0 + }, + "pages": [ + { + "type": "spectrum:pedestal_crafting", + "title": "åˆæˆæ¨¡æ¿", + "recipe": "spectrum:pedestal/tier1/crafting_tablet", + "text": "åˆæˆæ¨¡æ¿å¯ä¸åªæ˜¯ä¾¿æºå¼åˆæˆå°ï¼šå®ƒå¯ä»¥ä¿å­˜ä¸€ä¸ªé…æ–¹ï¼ŒæŒ‰éœ€åˆæˆã€‚" + }, + { + "type": "patchouli:text", + "title": "基座自动化", + "text": "你需è¦åå¤åˆæˆæŸæ ·ææ–™çš„æ—¶å€™ï¼Œè‚¯å®šæœ‰è€ƒè™‘过自动化å§ï¼Ÿåˆæˆ–者你是æŸç§æµæ°´ç”Ÿäº§çº¿è‚å¸äººçš‡ï¼Œæ¯ä¸ªç‰©å“都æžè‡ªåŠ¨ç”Ÿäº§åªæ˜¯å› ä¸ºæˆ‘想?$(br2)$(l:general/pedestal)七彩基座$()æœ‰ä¸“é—¨æ”¾ç½®åˆæˆæ¨¡æ¿çš„æ§½ä½ã€‚ä½¿ç”¨æ¼æ–—或者类似的器件填充基座的时候,物å“ä¼šæŒ‰ç…§åˆæˆæ¨¡æ¿ä¸­é…方的指示å‡åŒ€åœ°è½åœ¨å¯¹åº”的槽ä½ä¸Šã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/crescent_clock.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/crescent_clock.json new file mode 100644 index 0000000000..520aad23e8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/crescent_clock.json @@ -0,0 +1,21 @@ +{ + "name": "月相时钟", + "advancement": "spectrum:progression/unlock_crescent_clock", + "icon": "spectrum:crescent_clock", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:crescent_clock": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "æ—¶é—´çš„æµåŠ¨çœŸæ˜¯è¿·å¹»ã€‚$(br)伊始与终焉之间的循环往å¤ï¼Œæ°¸ç»­è½®å›žï¼Œå°±æ­¤æµ“缩在这尊时钟之中å§â€”—敬请è§è¯ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/crescent_clock", + "text": "$(italic)阴影éšåˆçŽ°ï¼Œè½®å›žæœˆå¤åœ†ã€‚$(br)å¼¥ç¼ºè€Œæ— æ†¾ï¼Œå¯æ˜Žä¼´å…¥çœ ã€‚$(br)æš—å¤œæ€æœ€é•¿ï¼Œæ¢¦é†’å¤å½·å¾¨ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/enchantment_canvas.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/enchantment_canvas.json new file mode 100644 index 0000000000..405c60cdf1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/enchantment_canvas.json @@ -0,0 +1,21 @@ +{ + "name": "附魔画布", + "advancement": "spectrum:progression/unlock_enchantment_canvas", + "icon": "spectrum:enchantment_canvas", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:enchantment_canvas": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "是å¦ä¸ºæ¯ä¸€æ¬¡è€—尽一个拥有特定附魔的工具而难过?既然失去的工具无法被挽回,ä¸å¦‚在工具耗尽之å‰å°†é™„魔转移ï¼$(br)这幅神奇的画布ä¸ä»…èƒ½æ•æ‰é¢œè‰²ï¼Œè¿˜èƒ½æ•æ‰é™„魔,对ç€å·¥å…·ä½¿ç”¨å®ƒå°±èƒ½å®žçŽ°é™„é­”çš„è½¬ç§»ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/enchantment_canvas", + "text": "æ¯æ¬¡ä½¿ç”¨æ—¶ï¼Œé™„魔画布会将工具的ç§ç±»å’Œé™„é­”ä¿¡æ¯æ°¸ä¹…的绘制下æ¥ï¼Œä¸å¯æ›´æ”¹ã€‚绘制好的画布åªèƒ½ä¸ºç»˜åˆ¶æ—¶çš„åŒç§å·¥å…·è¿›è¡Œé™„魔转移。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/ender_splice.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/ender_splice.json new file mode 100644 index 0000000000..10e362239b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/ender_splice.json @@ -0,0 +1,41 @@ +{ + "name": "末影连弦", + "advancement": "spectrum:progression/unlock_ender_splice", + "icon": "spectrum:ender_splice", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:ender_splice": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:ender_splice", + "text": "$(italic)末影人最有趣的地方,毫无疑问,就是它们的传é€èƒ½åŠ›ã€‚ä½ å¯¹è¿™ä»½èƒ½åŠ›çš„å¤çŽ°ä¹Ÿç›¸å½“æˆåŠŸï¼ä½†æ˜¯ï¼Œè‹¥è¦æŒ‡å®šä¼ é€ç›®çš„地,你需è¦é¦–先在目的地截å–一份当地的快照。$(br)末影人ä¸ç”¨è¿™ä¹ˆåšå‘€ï¼Œä¸ºä»€ä¹ˆï¼Ÿ" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/ender_splice", + "text": "末影连弦的的一个缺点就是它无法进行跨维度传é€ï¼Œå®ƒåªèƒ½åœ¨å•个维度内进行传é€ã€‚" + }, + { + "type": "patchouli:text", + "title": "用途", + "text": "末影连弦的充能方å¼å’Œå¼©çš„填装类似,充能之åŽå®ƒå°±ä¼šè¢«ç»‘定到当å‰ä½ç½®ã€‚$(br2)第二次使用å³å¯ä¼ é€åˆ°ç»‘定的ä½ç½®ã€‚甚至å¯ä»¥å¯¹åˆ«çš„玩家使用。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/build_enchanting_structure", + "title": "è€ä¹…魔咒", + "item": "spectrum:ender_splice{Enchantments: [{id: \"minecraft:unbreaking\", lvl: 3s}]}", + "text": "使用$(l:enchanting/enchanting_items)附魔基座$(/l)å³å¯ä¸ºæœ«å½±è¿žå¼¦æ³¨å…¥è€ä¹…魔咒,以此é™ä½Žå…¶ç ´ç¢Žçš„æ¦‚率。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/create_resonance_enchanted_book", + "title": "共振魔咒", + "item": "spectrum:ender_splice{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", + "text": "使用$(l:enchanting/enchanting_items)附魔基座$(/l)为末影连弦注入共振魔咒åŽï¼Œå°±å¯ä»¥è¿›è¡Œè·¨ç»´åº¦ä¼ é€äº†ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/freigeist.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/freigeist.json new file mode 100644 index 0000000000..0c0c52c3a7 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/freigeist.json @@ -0,0 +1,20 @@ +{ + "name": "圣çµé…’", + "icon": "spectrum:freigeist", + "advancement": "spectrum:progression/unlock_freigeist", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:freigeist": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "当第一滴酒进入到你的嘴巴时,你的全身仿佛立刻充满了巨大的力é‡ã€‚è®°å¿†åœ¨ä½ è„‘æµ·ä¸­æµ®çŽ°ï¼Œä½ çš„åŒæ‰‹æ­£ç´§å¼ çš„$(italic)颤抖$()ç€ï¼Œè¿™å¯ä¸å¤ªå¦™ã€‚$(br)你感å—åˆ°äº†å‰æ‰€æœªæœ‰çš„æ›´åŠ å¼ºå¤§çš„èƒ½åŠ›å’Œç²¾åŠ›ã€‚$(br)然而,真的值得清空那个å°ç“¶å—?如果你ä¸é¡¾ä¸€åˆ‡åœ°æ­»åŽ»ï¼Œä½ å°†ä¼šä¸ºæ­¤è€Œä»˜å‡ºå·¨å¤§çš„ä»£ä»·ã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "recipe": "spectrum:titration_barrel/freigeist", + "text": "$(br)$(italic)æ„¿å›é¡¾ä¹‹ï¼Œ$(br)无瑕之雨$(br)沥之于心,$(br)如悲æ¸ä¹‹æ³ª$(br)化作纷飞之白雪。$(br)æ„¿å›é¡¾ä¹‹ï¼Œ$(br)直至黎明之时$(br)è‹‹èœé野。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/glistering_jelly_tea.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/glistering_jelly_tea.json new file mode 100644 index 0000000000..ee5c0bf5af --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/glistering_jelly_tea.json @@ -0,0 +1,21 @@ +{ + "name": "闪光å‡å†»èŒ¶", + "advancement": "spectrum:progression/unlock_glistering_jelly_tea", + "icon": "spectrum:glistering_jelly_tea", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:glistering_jelly_tea": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "玉藤和闪çƒçš„西瓜å‡ä»¥å…¶æžå¼ºçš„å†ç”Ÿæ€§è€Œè‘—ç§°ã€‚è¯•è¯•å°†è¿™ä¸¤ç§æ¤ç‰©æ··åˆåœ¨ä¸€èµ·å¹¶åšæˆä¸€é“甜点å§ï¼$(br2)ä¸ä»…能给你带æ¥ç”œèœœçš„享å—ï¼Œè¿˜èƒ½ç»™ä½ å¸¦æ¥æš‚æ—¶æ€§çš„生命æå‡çš„æ•ˆæžœã€‚" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "è¯æ°´å·¥ä½œç«™é…æ–¹", + "recipe": "spectrum:potion_workshop_crafting/glistering_jelly_tea", + "text": "$(italic)别和ç€ç‰›å¥¶ä¸€èµ·å–ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/incandescent_amalgam.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/incandescent_amalgam.json new file mode 100644 index 0000000000..0f500cc417 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/incandescent_amalgam.json @@ -0,0 +1,37 @@ +{ + "name": "白炽åˆé‡‘", + "advancement": "spectrum:progression/unlock_incandescent_amalgam", + "icon": "spectrum:incandescent_amalgam", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:incandescent_amalgam": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "你或许会认为这个“掌心的太阳â€å¾ˆæ¸©å’Œï¼Œä¸è¿‡ä¸‹ä¸€ç§’你就会打消这个念头了——它在你手中烧起æ¥äº†...$(br2)ä¸è¿‡ä½ ä»è¦ä¸ºæ­¤æ„Ÿåˆ°åº†å¹¸â€”â€”è¿™ç§æŽºæ‚了酒精和其他原料的物质æžä¸ç¨³å®šï¼Œå·®ç‚¹å°±æŠŠä½ çš„å应桶给炸没了。" + }, + { + "type": "patchouli:text", + "text": "è¿™ä¸œè¥¿æ˜“ç‡ƒæ˜“çˆ†ç‚¸ï¼Œç¨æœ‰ä¸æ…Žå°±ä¼šå°†å®ƒå‘¨å›´çš„ä¸€åˆ‡ï¼ˆåŒ…æ‹¬ä½ è‡ªå·±ï¼‰ç»™ç‚¸é£žã€‚å°½ç®¡å¦‚æ­¤ï¼Œè¿™ä»æ˜¯ä¸€ç§ä»¤äººç€è¿·çš„物质——它如å‡èƒ¶èˆ¬æŸ”软,并散å‘ç€æ¸©å’Œçš„光芒,å´èƒ½å°†å‘¨å›´çš„ä¸€åˆ‡æ¹®æ²¡äºŽç«æµ·ä¹‹ä¸­ï¼Œè¿™ç¡®å®žè®©äººæµ®æƒ³è”翩。这ç§é«˜å½“é‡çš„魔法炸è¯å¾ˆå®žç”¨ï¼Œä¸è¿‡åœ¨ä½¿ç”¨ä¹‹å‰ï¼Œä½ éœ€è¦å°å¿ƒç¿¼ç¿¼çš„将它放在地上,一å°ç‚¹è¶³çŸ£ï¼Œä¹‹åŽç”¨ç²—æš´çš„æ–¹å¼æ¥å°†å®ƒå¼•爆。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "å‘é…µæ¡¶åˆæˆ", + "recipe": "spectrum:titration_barrel/incandescent_amalgam", + "text": "$(italic)噢,我的太阳...$()$(br2)å应时间越长,产é‡è¶Šé«˜...别急,上天没有欠你什么。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "é«˜çº¯åˆæˆ", + "recipe": "spectrum:titration_barrel/pure_incandescent_amalgam", + "text": "$(italic)...哇,更白更亮了ï¼$()$(br2)" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "è’¸é¦", + "recipe": "spectrum:titration_barrel/fast_pure_alcohol", + "text": "è¿™ç§åˆé‡‘在燃烧时会释放充分的热é‡ï¼Œå› æ­¤å¯ç”¨äºŽé…’å“è’¸é¦ï¼Œä»Žä¸­æç‚¼å‡ºçº¯é…’精。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/infused_beverages.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/infused_beverages.json new file mode 100644 index 0000000000..a1ed3eb40a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/infused_beverages.json @@ -0,0 +1,178 @@ +{ + "name": "注魔饮料", + "icon": "spectrum:infused_beverage", + "advancement": "spectrum:progression/unlock_titration_barrel", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:infused_beverage": 0, + "spectrum:pure_alcohol": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "酿造的艺术", + "text": "å‘酵是一个éžå¸¸è‡ªç„¶çš„过程,需è¦è¶³å¤Ÿçš„æ—¶é—´å’Œç²¾å¿ƒçš„准备。å‘é…µæˆæžœçš„好å主è¦ç”±ä»¥ä¸‹å‡ ç§å› ç´ å†³å®šï¼š$(li)æ—¶é—´ï¼šæ¡¶å†…çš„ä¸œè¥¿éœ€è¦æ—¶é—´æ¥äº§ç”Ÿå˜åŒ–,给定的时间越长,å˜åŒ–也就越大。大多数的饮料在å‘酵远超建议的时间åŽï¼Œä¼šèŽ·å¾—æ›´åŠ ä»¥åŠæ›´å¥½ç”šè‡³æ›´å¤šçš„æ•ˆæžœå¢žç›Šã€‚" + }, + { + "type": "patchouli:text", + "text": "$(li)温度:å‘酵温度ä¸èƒ½å¤ªé«˜ï¼Œå¦åˆ™é‡Œé¢çš„æ¶²ä½“å°±ä¼šæ¸æ¸çš„è’¸å‘,最åŽä½ ä»€ä¹ˆä¹Ÿå¾—ä¸åˆ°ã€‚$(li)湿度:空气湿度越大,桶内的液体更ä¸å®¹æ˜“è’¸å‘,则会更好的ä¿ç•™å…¶æ•ˆæžœ$(li)供水é‡ï¼šå‘é…µéœ€è¦æŽ§åˆ¶å¥½æ°´çš„ä¾›åº”é‡ã€‚如果你给原料æä¾›è¿‡å¤šçš„æ°´ï¼Œå…¶å‘酵的耗时会更快,但æä¾›çš„æ•ˆæžœæŒç»­æ—¶é—´ä¹Ÿä¼šæ›´çŸ­ã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "麦芽啤酒", + "recipe": "spectrum:titration_barrel/infused_beverages/malt_beer", + "text": "香甜å¯å£çš„麦芽啤酒,满足你最基本的饮酒需求ï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "麦西隆苹果æ±ï¼ˆæš‚译)", + "advancement": "spectrum:lategame/collect_myceylon", + "recipe": "spectrum:titration_barrel/infused_beverages/myceylon_apple_juice", + "text": "如肉桂般甜蜜ï¼" + }, + { + "type": "spectrum:confirmation_button", + "title": "安全æé†’", + "checked_advancement": "spectrum:milestones/confirmed_drinking_age", + "button_text": "我确定", + "button_text_confirmed": "确定✔", + "confirmation": "confirm_drinking_age", + "text": "$(thing)å‘酵桶$()能用于酿造å«é…’精的饮料。考虑到有些国家é™åˆ¶é¥®é…’åŠå…¶è®¸å¯å¹´é¾„,如果你满足相应的æ¡ä»¶ï¼Œé‚£ä¹ˆä½ å¯ä»¥ç‚¹å‡»ä¸‹æ–¹çš„â€œæˆ‘ç¡®å®šâ€æŒ‰é’®æ¥è§£é”æ›´å¤šçš„é…æ–¹ã€‚$(br)å¦‚æžœä½ å¾ˆé—æ†¾æ²¡æœ‰è¾¾åˆ°æ¡ä»¶ï¼Œä¸å¿…ä¸ºæ­¤æ‹…å¿ƒï¼Œå› ä¸ºä½ ä¾æ—§ä¸ä¼šé”™è¿‡æœ¬æ¨¡ç»„的任何é‡è¦çš„东西ï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "啤酒", + "recipe": "spectrum:titration_barrel/infused_beverages/beer", + "recipe2": "spectrum:titration_barrel/infused_beverages/ale", + "text": "啤酒ä¸ä»…能æä¾›æ€¥è¿«çš„çŠ¶æ€æ•ˆæžœï¼Œè¿˜èƒ½æä¾›ä¸€å®šçš„饱和效果,å‘酵时间越长,饱和效果越大。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "", + "recipe": "spectrum:titration_barrel/infused_beverages/lager", + "recipe2": "spectrum:titration_barrel/infused_beverages/porter", + "text": "å‘é…µ...哦对,这ç§é…’别å‘酵太久了,ä¸ç„¶ä¼šå˜è´¨çš„。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_gin", + "title": "ç´é…’", + "recipe": "spectrum:titration_barrel/infused_beverages/gin", + "text": "一ç§ç”±$(l:resources/amaranth)è‹‹èœ$(/l)酿制而æˆçš„酒,能æä¾›$(thing)幸è¿$()å’Œ$(thing)急迫$()çš„çŠ¶æ€æ•ˆæžœã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "朗姆酒", + "recipe": "spectrum:titration_barrel/infused_beverages/rum", + "text": "一ç§å£æ„Ÿå¼ºçƒˆçš„酒,能æä¾›$(thing)伤害叿”¶$()å’Œ$(thing)抗性æå‡$()的效果。效果强度会å—到彩色木æ¿ç§ç±»çš„å½±å“。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "蜜酒", + "recipe": "spectrum:titration_barrel/infused_beverages/mead", + "text": "富å«ç³–分的蜂蜜很适åˆç”¨æ¥é…¿é…’。这ç§èœœé…’ä¸ä»…壿„Ÿç”œèœœï¼Œè¿˜èƒ½æä¾›è¾ƒå¼ºçš„æ•ˆæžœã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "苹果汽水", + "recipe": "spectrum:titration_barrel/infused_beverages/apple_cider", + "text": "一ç§ç”±è‹¹æžœé…¿åˆ¶è€Œæˆçš„,ä¸ä»…酸甜å¯å£ï¼Œè¿˜æ™¶è޹é€äº®çš„饮料。开å¯åŽè®°å¾—尽快饮用。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "金苹果汽水", + "recipe": "spectrum:titration_barrel/infused_beverages/golden_apple_cider", + "recipe2": "spectrum:titration_barrel/infused_beverages/enchanted_apple_cider", + "text": "用更好的苹果æ¥é…¿åˆ¶æ›´å¥½çš„苹果汽水ï¼ä¸ä»…能æä¾›æ›´å¥½çš„增益,还永远ä¸ä¼šå˜è´¨ï¼Œä¿è¯ä½ æ— è®ºä½•时都能å“å°åˆ°å®ƒçš„ç»ä½³å£æ„Ÿï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "莓果汽水", + "recipe": "spectrum:titration_barrel/infused_beverages/berry_cider", + "recipe2": "spectrum:titration_barrel/infused_beverages/glow_berry_cider", + "text": "比苹果汽水更加果味åè¶³ï¼ç”¨å‘光浆果酿造的汽水ä¸ä»…增益更好,酿造耗时更短,也会让你å˜å¾—...å—¯...闪闪å‘å…‰ï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "莓果酒", + "recipe": "spectrum:titration_barrel/infused_beverages/berry_liquor", + "recipe2": "spectrum:titration_barrel/infused_beverages/glow_berry_liquor", + "text": "浆果还能用æ¥é…¿åˆ¶æˆä¸€ç§æµ“稠åˆå£æ„Ÿç”œç¾Žé†‡åŽšçš„é…’ï¼Œä¸è¿‡é…¿é€ è€—时会更久一些。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_mint_beverages", + "title": "è–„è·é¥®", + "recipe": "spectrum:titration_barrel/infused_beverages/mint_cream", + "recipe2": "spectrum:titration_barrel/infused_beverages/mint_schnapps", + "text": "$(italic)液体般的幸è¿ï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "è’¿è‰é…’和蛋黄酒", + "recipe": "spectrum:titration_barrel/infused_beverages/artemisa", + "recipe2": "spectrum:titration_barrel/infused_beverages/advocaat", + "text": "" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "大马士é©é…’和赫尔ç­çº³é…’(暂译)", + "recipe": "spectrum:titration_barrel/infused_beverages/damassine", + "recipe2": "spectrum:titration_barrel/infused_beverages/hare_bane_creme", + "text": "" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "ä¼ç‰¹åŠ ", + "recipe": "spectrum:titration_barrel/infused_beverages/vodka", + "recipe2": "spectrum:titration_barrel/infused_beverages/poisonous_vodka", + "text": "æä¾›åŠ›é‡çš„çŠ¶æ€æ•ˆæžœï¼Œé…¿é€ æ—¶é—´è¶Šé•¿ï¼Œæ•ˆæžœè¶Šå¤§ã€‚åŒå¿—ï¼Œè¦æ¥æ¯ä¼ç‰¹åŠ ä¸ï¼Ÿ" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:milestones/confirmed_drinking_age", + "title": "龙舌兰酒", + "recipe": "spectrum:titration_barrel/infused_beverages/tequila", + "text": "æä¾›è¿…æ·çš„çŠ¶æ€æ•ˆæžœï¼Œé…¿é€ æ—¶é—´è¶Šé•¿ï¼Œæ•ˆæžœè¶Šå¤§ã€‚壿„Ÿçˆ½åˆ°é£žèµ·ï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "月光美酒", + "recipe": "spectrum:titration_barrel/infused_beverages/moonshine", + "text": "å“å°ä¸€å£ï¼Œç”œèœœæ¸©å’Œçš„酒液在你嘴里绽放,世间一切烦æ¼ä»¿ä½›é¡·åˆ»ä¹‹é—´ç¦»ä½ è¿œåŽ»$()。$(br2)$(italic)è¿™æ„Ÿè§‰å°±åƒæ˜¯åœ¨æœˆäº®ä¸Šæ•£æ­¥ï¼" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_myceylon_liquor", + "title": "麦西隆酒(暂译)", + "recipe": "spectrum:titration_barrel/infused_beverages/myceylon_liquor", + "text": "壿„Ÿæ¯”看上去还è¦è¾£ã€‚" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "advancement": "spectrum:progression/unlock_spiked_mullet_wine", + "title": "Spiked Mullet Wine(译å待定)", + "recipe": "spectrum:titration_barrel/infused_beverages/spiked_mullet_wine", + "text": "æ··åˆäº†æ¥è‡ªæ·±æ¸Šé¢†åŸŸçš„æ‰€æœ‰å¥‡ç的美酒,记得è¦è¶çƒ­å–ï¼" + }, + { + "type": "patchouli:spotlight", + "title": "纯酒精", + "advancement": "spectrum:tap_pure_alcohol", + "anchor": "pure_alcohol", + "item": "spectrum:pure_alcohol", + "text": "记忆总是烟消云散,ä¸çŸ¥ä¸ºä½•你酿造出了这个玩æ„儿,所以你决定...$(br)最好别给你的体内进行致命的消毒ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/jade_wine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/jade_wine.json new file mode 100644 index 0000000000..17e28c68f4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/jade_wine.json @@ -0,0 +1,37 @@ +{ + "name": "玉藤酒", + "advancement": "spectrum:progression/unlock_jade_wine", + "icon": "spectrum:jade_wine", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jade_wine": 0, + "spectrum:chrysocolla": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "玉藤æžå¼ºçš„å†ç”Ÿèƒ½åŠ›ä»¤äººçˆ±æ¨äº¤ç»‡ï¼Œå°¤å…¶æ˜¯å°†å®ƒç”¨äºŽé…¿é…’时,平衡用料带æ¥çš„壿„Ÿä¸Šæ›´æ˜¯ä»¤äººå¤´ç–¼ã€‚$(br)çŽ‰è—¤çƒæžœå‘酵时会产生苦味,ä¸è¿‡å†åŠ ç‚¹çŽ‰è—¤èŠ±ç“£åˆ™ä¼šæŠŠè‹¦å‘³ä¸­å’Œï¼Œå¹¶å¸¦æ¥ä¸€ç§æŽºæ‚了泥土和花香的气æ¯ã€‚è¿™ç§é…’å–èµ·æ¥åƒè‘¡è„酒,ä¸è¿‡å¤–è§‚å´æ˜¯æ ‡å¿—性的玉黄色。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "å‘é…µæ¡¶é…æ–¹", + "recipe": "spectrum:titration_barrel/special/jade_wine", + "text": "å¾€å‘酵桶放进1ä¸ªçƒæžœå’Œ3个花瓣,å†å€’一桶水就å¯ä»¥å¼€å§‹é…¿é€ äº†ã€‚$(br)å‘é…µæ—¶é—´è¶Šé•¿ï¼Œå…¶å£æ„Ÿè¶Šæµ“厚。$(br2)$(italic)或许å†åŠ ç‚¹ç³–ï¼Œå£æ„Ÿä¼šæ›´å¥½ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "加点甜的", + "advancement": "spectrum:midgame/tap_sweetened_jade_wine", + "anchor": "sweetened_jade_wine", + "item": "spectrum:moonstruck_nectar", + "text": "仅需加一点$(item)æœ›èˆ’ç¼æµ†$()å°±èƒ½è®©çŽ‰è—¤é…’çš„å£æ„Ÿæ›´ä¸Šä¸€å±‚楼——ä¸ä»…ä¼šå¢žå¼ºå…¶ç»½æ”¾åº¦ï¼ŒåŒæ—¶ä¹Ÿä¼šæžå¤§çš„削å‡å…¶è´Ÿé¢æ•ˆæžœçš„强度。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/tap_chrysocolla", + "anchor": "chrysocolla", + "item": "spectrum:chrysocolla", + "text": "当你å‘酵玉藤$(italic)éžå¸¸$()ä¹…æ—¶ï¼Œä½ ä¾¿ä¼šèŽ·å¾—è¿™ç§æ¶²ä½“。$(br)它å°èµ·æ¥åªå‰©è‹¦æ¶©å’Œé…¸å‘³ã€‚$(br)尽管它看上去还是和玉藤酒很åƒï¼Œä¸è¿‡ä¸€ä¸ªå¯ä»¥é¥®ç”¨ï¼Œå¦ä¸€ä¸ªæœ€å¥½è¯ç”¨...$(br)å–下去了,就别怪没人åŠä½ åˆ«å–ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/knowledge_gem.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/knowledge_gem.json new file mode 100644 index 0000000000..c0135ab04c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/knowledge_gem.json @@ -0,0 +1,21 @@ +{ + "name": "知识å®çŸ³", + "advancement": "spectrum:progression/unlock_knowledge_gem", + "icon": "spectrum:knowledge_gem{stored_experience:500}", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:knowledge_gem": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)æ€æ­»æ•ŒäººæŽ‰è½çš„翠绿色的çƒä¼¼ä¹Žæœ‰å¯æ™ºçš„功效。$(br2)然而,粗心大æ„笨手笨脚的死亡在所难å…,这些ç»éªŒå°±è¿™ä¹ˆä¸¢å¤±å¯çœŸæ˜¯å¯æƒœã€‚把这ç§ç»éªŒç”¨ç»“晶的方å¼å­˜å‚¨èµ·æ¥å¡žè¿›ç®±å­é‡Œï¼Œæ€»æ¯”带在身上è¦å®‰å…¨å¾—多了。$()" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/knowledge_gem", + "text": "一个å®çŸ³å¯ä»¥å­˜å‚¨æœ€å¤š10000点ç»éªŒã€‚使用$(l:enchanting/enchanting_items)附魔基座$()注入$(thing)效率$()魔咒å³å¯æå‡è¿™ä¸ªä¸Šé™ã€‚$(thing)快速装填$()魔咒则能加快ç»éªŒçš„传输速率,使得存储和æå–更为方便。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/lucky_roll.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/lucky_roll.json new file mode 100644 index 0000000000..e9febc89d9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/lucky_roll.json @@ -0,0 +1,21 @@ +{ + "name": "幸è¿å·", + "advancement": "spectrum:progression/unlock_lucky_roll", + "icon": "spectrum:lucky_roll", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:lucky_roll": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "å³ä½¿æ˜¯ä¸ªè‰ºæœ¯å®¶ä¹Ÿè¦è¯•ç€æ“点副业,比如学习一下烘焙。(ä¸ç”¨å¤ªæ‹…心自己的水平,åšå‡ºç¾Žå‘³æœ‰æ—¶ä¹Ÿå¾ˆç®€å•ï¼ï¼‰$(br2)用点$(l:resources/amaranth)è‹‹èœ$(/l),$(thing)ç³–$(),$(thing)奶$(),å†åŠ ä¸€ä¸ª$(l:resources/clover)å››å¶è‰$(),你就能åšå‡ºè¿™ä»½è±¡å¾ç€å¹¸è¿çš„点心——åƒä¸‹å®ƒï¼Œä½ ä¼šå‘çŽ°è‡ªå·±çš„è¿æ°”会爆棚,因为它会æå‡ä¾‹å¦‚ä½¿ç”¨æ—¶è¿æˆ–æŠ¢å¤ºé™„é­”çš„å·¥å…·ç­‰åŸºäºŽéšæœºçš„ç‰©å“æŽ‰è½ï¼ˆäº§ç”Ÿï¼‰çŽ‡ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/lucky_roll", + "text": "$(italic)幸è¿å·ï¼Œåšå‡ºæ¥äº†å—???" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/perturbed_eye.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/perturbed_eye.json new file mode 100644 index 0000000000..4eb50e1df8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/perturbed_eye.json @@ -0,0 +1,58 @@ +{ + "name": "末地传é€é—¨æ‹†è§£å™¨", + "advancement": "spectrum:progression/unlock_perturbed_eye", + "icon": "minecraft:end_portal_frame", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:perturbed_eye": 0, + "spectrum:cracked_end_portal_frame": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "有时你为了进入末影人的è€å®¶ï¼Œè¾›è¾›è‹¦è‹¦çš„è·‘é几乎åŠä¸ªä¸–界,仅仅是因为那些传é€é—¨æ¡†æž¶åªåœ¨å›ºå®šä½ç½®ç”Ÿæˆï¼Œè¿˜ä¸èƒ½è¢«ä½ é€ å‡ºæ¥ã€‚到底是è°åˆ›é€ äº†è¿™äº›ä¼ é€é—¨æ¡†æž¶...$(br2)$(italic)这是个好问题,但对你无关紧è¦ã€‚既然你现在有了更强的实力,与其纠结如何å¤åˆ¶ä¸€ä¸ªæœ«åœ°ä¼ é€é—¨æ¡†æž¶ï¼Œä¸å¦‚è¯•ç€æŠŠå®ƒä»¬å–下æ¥å¹¶é‡æ–°æ”¾ç½®åœ¨å®¶é‡Œï¼Ÿè¿™å¹¶éžéš¾äº‹ï¼" + }, + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/end_portal.png" + ], + "border": true, + "text": "è¦å¡žä¸­çš„æœ«åœ°ä¼ é€é—¨ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier4/perturbed_eye", + "text": "为了应付æžä¸ºåšå›ºçš„æœ«åœ°ä¼ é€é—¨æ¡†æž¶ï¼Œè¿™ç§æ‹†è§£å™¨å…·æœ‰æžå¤§çš„ç ´å能力,将它安装好åŽè®°å¾—离远一点。" + }, + { + "type": "patchouli:multiblock", + "name": "Reconstructed Portal", + "multiblock": { + "pattern": [ + [ + " HHH ", + "VPPPV", + "VPPPV", + "VPPPV", + " HHH ", + " 0 " + ] + ], + "mapping": { + "H": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=false]", + "V": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=true]", + "P": "minecraft:end_portal" + }, + "offset": [ + 0, + 3, + 0 + ], + "symmetrical": false + }, + "text": "现在你仅需将拆好的末地传é€é—¨æ¡†æž¶æŒ‰åŽŸæ ·ç»„è£…åœ¨ä¸€èµ·ï¼Œå¹¶æŒ‰åŒæ ·çš„æ­¥éª¤æ”¾å¥½æœ«å½±ä¹‹çœ¼ï¼Œå®Œäº‹ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/pigment_palette.json new file mode 100644 index 0000000000..d004942a5d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/pigment_palette.json @@ -0,0 +1,25 @@ +{ + "name": "调色æ¿", + "advancement": "spectrum:progression/unlock_pigment_palette", + "icon": "spectrum:pigment_palette", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:pigment_palette": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "ä¿å…»é­”法装备也æˆäº†ä¸€ä»¶è‹¦å·®äº‹ã€‚é¢œæ–™å¡žæ»¡èƒŒåŒ…ä¹Ÿä¸æ˜¯ä¸ªå¤´ã€‚$(br)既然你已ç»è¿™ä¹ˆç†Ÿæ‚‰é¢œæ–™çš„特质,åƒä¸­ä¸–纪人一样背ç€é¢œæ–™åˆ°å¤„è·‘å²‚ä¸æ˜¯æœ‰å¤±é¢œé¢ï¼Ÿæ¯•竟是è§å¤šè¯†å¹¿ï¼Œèº«ç»ç™¾æˆ˜äº†ï¼" + }, + { + "type": "patchouli:text", + "text": "è¯¥æ‰“é€ å…¨æ–°å‘æ˜Žäº†ï¼šè°ƒè‰²æ¿ã€‚è¿™æ‰å«ä¸ƒå½©è‰ºæœ¯å®¶ï¼$(br)调色æ¿èƒ½å¤Ÿå¸æ”¶ã€åŽ‹ç¼©å¹¶å­˜å‚¨$(l:general/pigment)颜料$(/l)的魔法è¦ç´ ï¼Œä¸”能为你的å„色魔法装备与器件补充åˆé€‚的颜料。$(br2)å”¯ä¸€ç¼ºç‚¹ï¼šè¢«å¸æ”¶çš„颜料失去了实形,无法å†é‡æ–°å˜å›žé¢œæ–™ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "èžåˆé…æ–¹", + "recipe": "spectrum:fusion_shrine/trinkets/pigment_palette", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/reprise.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/reprise.json new file mode 100644 index 0000000000..2a4884737e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/reprise.json @@ -0,0 +1,21 @@ +{ + "name": "Reprise(译å待定)", + "advancement": "spectrum:progression/unlock_reprise", + "icon": "spectrum:reprise", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:reprise": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "è¿™ç§ç”±ç´«é¢‚果酿制而æˆçš„饮料ä¸ä»…ä¿ç•™äº†åŽŸæ–™ç‰¹æœ‰çš„é£Žå‘³ï¼Œè¿˜ä¿ç•™äº†å…¶ç‰¹æ€§â€”—å–下åŽå°±èƒ½å°†ä½ ä¼ é€åˆ°ä¸€ä¸ªè¾ƒè¿œçš„éšæœºä½ç½®ã€‚酿造时间越久,传é€èƒ½åŠ›è¶Šå¤§ï¼Œä¼ é€çš„è·ç¦»ä¹Ÿå°±è¶Šè¿œ" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "Titration Recipe", + "recipe": "spectrum:titration_barrel/reprise", + "text": "$(italic)壿„Ÿåƒè¦†ç›†å­ï¼Œä¸è¿‡é‡Œé¢å´æ²¡æœ‰è¿™ç§ä¸œè¥¿ï¼ŒçœŸæ˜¯å¥‡æ€ªï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/restoration_tea.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/restoration_tea.json new file mode 100644 index 0000000000..9787b22890 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/restoration_tea.json @@ -0,0 +1,21 @@ +{ + "name": "æ¢å¤ä¹‹èŒ¶", + "advancement": "spectrum:progression/unlock_restoration_tea", + "icon": "spectrum:restoration_tea", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:restoration_tea": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "çª—å¤–æ˜¯é›¨å¤©å‚æ™šï¼Œè€Œä½ å在å£ç‚‰å‰è½»æ¾é¥®èŒ¶çš„æ„Ÿè§‰é“å””é“啊?$(br)休憩之间饮个茶先啦ï¼$(br)å°é…Œä¸€æ¯ç”±$(l:resources/jade_vines)玉藤花瓣$(/l)泡制而æˆçš„好茶,ä¸ä»…能好好放æ¾èº«å¿ƒï¼Œè¿˜èƒ½å…å—凋零效果的毒害。$(italic)饮完好茶还能直é¢å‡‹çµï¼Œè¿™å¯çœŸæ˜¯æ–¹ä¾¿å•Š$()。" + }, + { + "type": "spectrum:potion_workshop_crafting", + "title": "å·¥ä½œç«™é…æ–¹", + "recipe": "spectrum:potion_workshop_crafting/restoration_tea", + "text": "$(italic)想啥呢,加奶还能å–下去?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/rock_candy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/rock_candy.json new file mode 100644 index 0000000000..09e00a2e76 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/rock_candy.json @@ -0,0 +1,48 @@ +{ + "name": "冰糖", + "advancement": "spectrum:progression/unlock_rock_candy", + "icon": "spectrum:rock_candy", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:sugar_stick": 0, + "spectrum:topaz_sugar_stick": 0, + "spectrum:amethyst_sugar_stick": 0, + "spectrum:citrine_sugar_stick": 0, + "spectrum:onyx_sugar_stick": 0, + "spectrum:moonstone_sugar_stick": 0, + + "spectrum:rock_candy": 0, + "spectrum:topaz_rock_candy": 0, + "spectrum:amethyst_rock_candy": 0, + "spectrum:citrine_rock_candy": 0, + "spectrum:onyx_rock_candy": 0, + "spectrum:moonstone_rock_candy": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "这东西ä¸å°±æ˜¯ä¸€æ ¹è£¹ä¸Šç³–çš„æ£å­ä¹ˆï¼Ÿ$(br2)...ä¸ï¼Œè¿˜æ²¡å®Œå‘¢ï¼$(br)如果你把这根æ£å­æµ¸æ²¡åœ¨$(l:magical_blocks/liquid_crystal)液体水晶$(/l)里é¢ï¼ˆå¯æ”¾ç½®åœ¨æ–¹å—底é¢ï¼‰ï¼Œä½ åªéœ€æ…¢æ…¢åœ°ç­‰å¾…更多的糖溶解在液体中,并å‡èšåœ¨æ£å­ä¸Šï¼Œç›´åˆ°æ£å­å˜æˆç”œè„†çš„冰糖。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier3/food/sugar_stick", + "text": "你还能在其浸泡的时候加点更多的东西,ä¸åªæ˜¯æ™®é€šçš„糖和更多的液体$(italic)æ°´æ™¶$()..." + }, + { + "type": "patchouli:image", + "title": "å†°ç³–é•¿æˆæ–¹å¼", + "images": [ + "spectrum:textures/gui/guidebook/rock_candy_growing.png" + ], + "text": "ç³–æ£å¯é€šè¿‡ä½¿ç”¨é™„有$(thing)精准采集$()的工具回收以备用。这东西用æ¥åšä¸€ä¸ªèŠ±å“¨çš„ç¯ä¹Ÿä¸é”™ï¼" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:topaz_rock_candy", + "title": "Gemstone Rock Candy", + "advancement": "spectrum:midgame/collect_gemstone_rock_candy", + "text": "在液体水晶中放入$(l:general/gemstone_powder)å®çŸ³ç²‰æœ«$(/l)而éžç³–,能使长出的冰糖呈现对应ç§ç±»å®çŸ³çš„颜色。$(br2)åƒçŸ¥é“它们味é“如何?ä¸ç”¨å‡‘è¿‘æ¥é—»ä¸€ä¸‹ï¼Œç›´æŽ¥æ”¾è¿›å˜´é‡Œå“å°å°±æ˜¯ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/star_candy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/star_candy.json new file mode 100644 index 0000000000..e4159d02c5 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/star_candy.json @@ -0,0 +1,29 @@ +{ + "name": "星星糖", + "advancement": "spectrum:progression/unlock_star_candy", + "icon": "spectrum:star_candy", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:star_candy": 0, + "spectrum:purple_star_candy": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(l:resources/stargazing)æµæ˜Ÿ$(/l)的秘密远比你想象的还è¦å¤šã€‚$(br)è¿™ç§ç”±æ˜Ÿå°˜åˆ¶æˆå¹¶çƒ˜çƒ¤è¿‡çš„ç³–æžœå°èµ·æ¥å‡ºå¥‡çš„æ¸…爽,爽到让你的舌尖打颤,浑身舒æœï¼Œç®€ç›´å°±æ˜¯æ¥è‡ªä¸Šå¤©çš„甜蜜馈赠。$(br)糖果金黄且酥脆,里é¢è¿˜åˆ†å¸ƒç€ä¸€äº›ç´«è‰²çš„å°ç‚¹ï¼Œå¹¶åƒå¤©ä¸Šçš„ç¹æ˜Ÿä¸€æ ·é—ªçƒç€å…‰èŠ’ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier2/food/star_candy", + "text": "糖果里é¢çš„紫色å°ç‚¹çŠ¶ç‰©è´¨è®©ä½ æ„Ÿåˆ°å¥½å¥‡â€”â€”æˆ–è®¸è¿™å°±æ˜¯ç³–æžœèƒ½å¸¦æ¥æ•ˆæžœå¢žç›Šçš„æœ‰æ•ˆæˆåˆ†ï¼Ÿå¦‚果能åƒåˆ°å®Œå…¨ç”±è¿™ç§ç´«è‰²ç‰©è´¨åšæˆçš„糖果,那该有多好?" + }, + { + "type": "patchouli:spotlight", + "title": "一ç§ç½•è§å®ç‰©", + "advancement": "spectrum:hidden/collect_purple_star_candy", + "item": "spectrum:purple_star_candy", + "text": "ä½ ç»ˆäºŽå¾—åˆ°è¿™ä¸ªç©¶ï¼æžï¼ç¾Žå‘³äº†ï¼$(br)è¿™ç§å‡ ä¹Žå®Œç¾Žçš„糖果闪çƒç€æµæ˜Ÿèˆ¬çš„光芒,甚至无需å“å°ï¼Œä»…仅是触摸一下糖果本身也能让你的全身打颤。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/suspicious_brew.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/suspicious_brew.json new file mode 100644 index 0000000000..dc58928760 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/suspicious_brew.json @@ -0,0 +1,21 @@ +{ + "name": "谜之酒酿", + "advancement": "spectrum:progression/unlock_suspicious_brew", + "icon": "spectrum:suspicious_brew", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:suspicious_brew": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "使用蘑è‡å’Œé²œèŠ±ï¼Œä¾¿èƒ½åšå‡ºä¸€ä»½ä»¤äººç€è¿·çš„ç‚–èœã€‚使用ä¸åŒç§ç±»çš„花朵便能åšå‡ºå…·æœ‰ä¸åŒæ•ˆæžœçš„谜之炖èœã€‚$(br2)ä¸è¿‡åœ¨è¿™é‡Œï¼Œæ— éœ€ä½¿ç”¨$(thing)棕色蘑è‡$(),仅仅是用水和å„ç§èŠ±æœµå¾€å‘é…µæ¡¶é‡Œä¸€æ”¾ï¼Œå°±èƒ½é…¿é€ å‡ºä¸€ç§æ•ˆæžœå’Œç‚–èœå·®ä¸å¤šçš„酒酿。" + }, + { + "type": "spectrum:titration_barrel_fermenting", + "title": "å‘é…µæ¡¶é…æ–¹", + "recipe": "spectrum:titration_barrel/special/suspicious_brew", + "text": "è¿™ç§æ¥è‡ªç”±å½©è‰²æœ¨å¤´åˆ¶æˆçš„æ¡¶åšå‡ºçš„酒酿,会比$(item)谜之炖èœ$()æœ‰ç€æŒç»­æ—¶é—´æ›´é•¿çš„çŠ¶æ€æ•ˆæžœåŠ æˆã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/tarts.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/tarts.json new file mode 100644 index 0000000000..1be1de0f13 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/tarts.json @@ -0,0 +1,52 @@ +{ + "name": "蛋挞", + "icon": "spectrum:ashen_tart", + "advancement": "spectrum:progression/unlock_tarts", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jaramel_tart": 0, + "spectrum:salted_jaramel_tart": 0, + "spectrum:ashen_tart": 0, + "spectrum:weeping_tart": 0, + "spectrum:whispy_tart": 0, + "spectrum:puff_tart": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "å³ä½¿ä½ ä¸æ˜¯ä¸€ä¸ªä¸“业的厨师,你也能åšå‡ºè¿™ç§ç¾Žå‘³çš„点心ï¼$(br)å†åŠ ä¸Šä¸€äº›ç‰¹åˆ«çš„åŽŸæ–™ï¼Œè¿˜èƒ½è®©å®ƒèµ‹äºˆä½ ä¸€å°ç‚¹æ—¶é—´çš„$(thing)çŠ¶æ€æ•ˆæžœ$()。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "玉藤焦糖蛋挞", + "recipe": "spectrum:pedestal/tier3/food/jaramel_tart", + "text": "ç»å…¸å£å‘³çš„蛋挞。如果你想让它更加美味,你需è¦å†åŠ ç‚¹æ•Œäººçš„çœ¼æ³ªã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:craft_salted_jaramel_trifle_or_tart", + "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_tart", + "text": "$(italic)é½å’¸ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/ashen_tart", + "text": "让你在岩浆里é¢èƒ½çœ‹æ¸…周围的一切,就åƒåœ¨æ°´ä¸­ä¸€æ ·ã€‚$(br2)ä¸è¿‡è¿™ä¸œè¥¿ä¸ä¼šç»™äºˆä½ é˜²ç«çš„æ•ˆæžœã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/weeping_tart", + "text": "è®©ä½ åœ¨æ°´ä¸­æ¸¸æ³³æ—¶é€Ÿåº¦å¦‚å…‰é€Ÿä¸€èˆ¬å¿«ï¼ŒåŒæ—¶ä¹Ÿèƒ½åŠ å¿«ä½ åœ¨æ°´ä¸‹çš„æŒ–æŽ˜é€Ÿåº¦ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/whispy_tart", + "text": "让你浑身轻æ¾ï¼Œå¦‚åŒå·²ç»ç¡äº†ä¸€ä¸ªç¾Žæ»¡çš„å¥½è§‰ä¸€æ ·ã€‚åŒæ—¶ä¹Ÿèƒ½é©±æ•£ä¸€åˆ‡åœ¨ä½ å™©æ¢¦ä¸­çš„生物。" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/puff_tart", + "text": "è®©å¼¹å°„ç‰©æœ‰è¾ƒå°æ¦‚率从你身边弹开。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/trifles.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/trifles.json new file mode 100644 index 0000000000..833c06ad4d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/magical_items/trifles.json @@ -0,0 +1,34 @@ +{ + "name": "å°ç³•", + "icon": "spectrum:jaramel_trifle", + "advancement": "spectrum:progression/unlock_trifles", + "category": "spectrum:magical_items_category", + "extra_recipe_mappings": { + "spectrum:jaramel_trifle": 0, + "spectrum:salted_jaramel_trifle": 0, + "spectrum:monster_trifle": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "å°å·§ä½†ç”œç¾Žçš„糕点,一å£åƒä¸‹åŽ»å°±èƒ½ç»™ä½ å¸¦æ¥ä¸€ç‚¹æ¥è‡ªç³–的甜蜜震撼,让你直呼上头。$(br)仅需使用$(l:resources/jade_vines#jaramel)玉藤焦糖$(/l),$(thing)å‡èƒ¶$()å’Œ$(l:resources/amaranth)è‹‹èœç±½$(/l)就能åšå‡ºè¿™ä¸ªç²¾è‡´çš„点心了。å°å°çš„也很棒ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "玉藤焦糖å°ç³•", + "recipe": "spectrum:pedestal/tier3/food/jaramel_trifle", + "text": "ç»å…¸å£å‘³çš„å°ç³•。如果你想让它更加美味,你需è¦å†åŠ ç‚¹æ•Œäººçš„çœ¼æ³ªã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:craft_salted_jaramel_trifle_or_tart", + "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_trifle", + "text": "$(italic)é½å’¸ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "recipe": "spectrum:pedestal/tier3/food/monster_trifle", + "text": "ç»™äºˆéšæœºç§ç±»çš„çŠ¶æ€æ•ˆæžœã€‚è¦æ¥èµŒä¸€å±€å—?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/ae2.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/ae2.json new file mode 100644 index 0000000000..0f474655f0 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/ae2.json @@ -0,0 +1,37 @@ +{ + "name": "Applied Energistics 2(应用能æº2)", + "icon": "ae2:controller", + "flag": "mod:ae2", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "ä¿—è¯è¯´å¾—好:“任何的先进技术就是魔法â€ã€‚$(br)你一直æžä¸æ˜Žç™½ï¼Œä¸ºä»€ä¹ˆè¿™ç§å°å·§çš„储存系统之中能包å«å¦‚此多的方å—,但想想你也ç»å¸¸æºå¸¦ç€æ•°ç™¾ç«‹æ–¹ç±³çš„æ³¥åœŸè·‘æ¥è·‘去,这个问题就没必è¦è¿‡åˆ†æ·±ç©¶ã€‚" + }, + { + "type": "spectrum:anvil_crushing", + "title": "é“砧粉碎", + "recipe": "spectrum:mod_integration/ae2/anvil_crushing/certus_quartz_dust", + "text": "AE2的一部分物å“也å¯ä»¥è¢«é“砧粉碎:赛特斯石英,ç¦é²ä¼Šå…‹æ–¯ï¼Œé™¨çŸ³å’Œæœ«å½±çç ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:midgame/collect_storm_stone", + "recipe": "spectrum:mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal", + "text": "急需$(thing)充能赛特斯石英$()?自己充能就行,ä¸éœ€è¦å†çœ‹è¿æ°”啦ï¼" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:midgame/collect_storm_stone", + "recipe": "spectrum:mod_integration/ae2/fusion_shrine/fluix_dust", + "text": "...没è€å¿ƒçš„è¯ï¼Œåˆ¶é€ $(thing)ç¦é²ä¼Šå…‹æ–¯$()也是å¯ä»¥çš„。" + }, + { + "type": "spectrum:crystallarieum_growing", + "advancement": "spectrum:progression/unlock_crystallarieum", + "recipe": "spectrum:mod_integration/ae2/crystallarieum/certus_quartz_crystal", + "text": "作为晶体,$(thing)赛特斯石英$()å’Œ$(thing)ç¦é²ä¼Šå…‹æ–¯æ°´æ™¶$()皆å¯ä»¥åœ¨ç»“晶室内生长。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/alloy_forgery.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/alloy_forgery.json new file mode 100644 index 0000000000..4e3b312562 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/alloy_forgery.json @@ -0,0 +1,31 @@ +{ + "name": "Alloy Forgery(åˆé‡‘冶炼)", + "icon": "alloy_forgery:bricks_forge_controller", + "flag": "mod:alloy_forgery", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Some of Spectrum's ores can be used as fuel for the Alloy Forge, or have increased output when smelted in it. You will find these here, as soon as you discovered them.$(br2)Tell Noaaan I said hi!" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_lava_sponge", + "item": "spectrum:wet_lava_sponge", + "text": "叿”¶äº†ç†”岩的$(item)熔岩海绵$()的热é‡è¶³ä»¥ä¸º$(thing)åˆé‡‘冶炼炉$()供能很长时间了。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:midgame/collect_stratine", + "item": "spectrum:stratine_ore", + "text": "高级的$(thing)åˆé‡‘冶炼炉$()å¯ä»¥ç¨å¾®ä¸º$(l:resources/scarlet)绯红å®çŸ³çŸ¿$(/l)增产。" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:paltaeria_ore", + "advancement": "spectrum:lategame/collect_paltaeria", + "text": "...$(l:resources/paletur)è‹ç»¿å®çŸ³$(/l)当然也å¯ä»¥ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/biomemakeover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/biomemakeover.json new file mode 100644 index 0000000000..3401173018 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/biomemakeover.json @@ -0,0 +1,27 @@ +{ + "name": "Biome Makeover(生物群系改造)", + "icon": "biomemakeover:antidote", + "flag": "mod:biomemakeover", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "å°½æƒ…çš„æ¬£èµæ¥è‡ªæ–°çš„地形的美丽景观å§ï¼æ–°çš„地形æ„味ç€ä¼šå¸¦æ¥æ–°çš„原料,记得è¦å¥½å¥½çš„利用它们。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "è§£æ¯’è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/biomemakeover/biomemakeover_antidote", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å¤œè¡Œè¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/biomemakeover/biomemakeover_nocturnal", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/botania.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/botania.json new file mode 100644 index 0000000000..e68c31ad6c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/botania.json @@ -0,0 +1,101 @@ +{ + "name": "Botania(æ¤ç‰©é­”法)", + "icon": "botania:mana_pool", + "flag": "mod:botania", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "You found a plethora of colorful flowers growing around forests and plains in small patches. What's up with those? Definitely worth a look if you haven't tinkered with them already." + }, + { + "type": "spectrum:anvil_crushing", + "title": "碾压花瓣", + "advancement": "spectrum:place_pedestal", + "recipe": "spectrum:mod_integration/botania/anvil_crushing/petals/magenta_mystical_flower_to_petals", + "text": "碾压花朵似乎比较邪é“,但能行$(italic)确实是$()能行。从压æ‰çš„花朵上拾å–花瓣å¯ä»¥è¯´æ˜¯æ¯«æ— åŽ‹åŠ›ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "花瓣墨水", + "advancement": "spectrum:midgame/place_color_picker", + "item": "botania:magenta_petal", + "text": "æ¤ç‰©å­¦å’Œé¢œè‰²é­”法样样精通的你å‘现了两者之间的异曲åŒå·¥ä¹‹å¦™ã€‚色彩多样的花朵和$(l:general/colored_trees)彩色树木$(/l)有ç€å„样的相似之处。$(br2)怪ä¸å¾—花瓣å¯ä»¥ç”¨äºŽåˆ¶ä½œ$(l:magic/ink)墨水$(/l)。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "闪耀的花朵", + "advancement": "spectrum:collect_shimmerstone", + "recipe": "spectrum:mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower", + "text": "把$(l:resources/sparklestone)微光石(/l)用在魔法花朵上å³å¯ä»¤å®ƒä»¬é—ªçƒäº†ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "彩色蘑è‡", + "advancement": "spectrum:collect_pigment", + "recipe": "spectrum:mod_integration/botania/pedestal/mushrooms/blue_mushroom", + "text": "对蘑è‡ä½¿ç”¨$(l:general/pigment)颜料$(/l)å³å¯å°†è˜‘è‡ä¸Šè‰²ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_pigment", + "recipe": "spectrum:mod_integration/botania/pedestal/floral_fertilizer", + "text": "åˆæˆ$(thing)花肥$()的时候将染料æ¢ä¸º$(l:general/pigment)颜料$(/l)å¯ä»¥èŽ·å¾—æ›´å¤šçš„äº§é‡ã€‚" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "advancement": "spectrum:hidden/collect_jade_vine_petals", + "recipe": "spectrum:mod_integration/botania/spirit_instiller/blacker_lotus", + "text": "毫无疑问,$(thing)黑莲花$()çš„ç¡®æ˜¯å¾ˆæ£’çš„é­”åŠ›æ¥æºã€‚ç„¶è€Œï¼Œå®ƒç¡®å®žä»æœ‰æ”¹è¿›çš„空间。使用$(thing)玉藤花瓣$()å§ã€‚" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "advancement": "spectrum:midgame/harvest_moonstruck_nectar", + "recipe": "spectrum:mod_integration/botania/spirit_instiller/overgrowth_seed", + "text": "这些谜样的ç§å­ç«Ÿåªèƒ½åœ¨å®ç®±é‡Œæ‰èƒ½æ‰¾åˆ°ï¼ŸäºŽæ˜¯ä½ å‘现了一个å¤åˆ¶å®ƒä»¬çš„æ–¹å¼â€”—虽然很昂贵,甚至ä¸ä¸€å®šå€¼å¾—。" + }, + { + "type": "patchouli:spotlight", + "title": "附魔土壤", + "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", + "item": "botania:enchanted_soil", + "text": "附魔土壤能被带有$(l:enchanting/resonance)共振$(/l)附魔的工具采集。" + }, + { + "type": "patchouli:spotlight", + "title": "æ–°è¯æ°´ç‚¼æ", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:black_lotus", + "text": "ä¸ºè¯æ°´æ³¨å…¥å¤§é‡é¢å¤–的正é¢å’Œè´Ÿé¢æ•ˆæžœï¼Œä½†å°†å…¶å˜ä¸ºæ— æ³•辨别的黑色。会得到什么呢?" + }, + { + "type": "patchouli:spotlight", + "title": "æ–°è¯æ°´ç‚¼æ", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:blacker_lotus", + "text": "ä¸ºè¯æ°´æ³¨å…¥å¤§é‡é¢å¤–的效果——ç»å¤§å¤šæ•°éƒ½æ˜¯æ­£é¢æ•ˆæžœï¼Œä½†å°†å…¶å˜ä¸ºæ— æ³•辨别的黑色。会得到什么呢?" + }, + { + "type": "patchouli:spotlight", + "title": "æ–°è¯æ°´ç‚¼æ", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:life_essence", + "text": "æŸå¤±å¤§é‡æ•ˆæžœæŒç»­æ—¶é—´çš„åŒæ—¶å¤§å¹…增强效果强度。如果æŒç»­æ—¶é—´å¤ªçŸ­ï¼Œè¯æ°´å°±æ²¡ç”¨äº†..." + }, + { + "type": "patchouli:spotlight", + "title": "æ–°è¯æ°´ç‚¼æ", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:mana_powder", + "text": "å°å¹…å¢žå¼ºè¯æ°´æŒç»­æ—¶é—´å¹¶å°æ¦‚率增加先å‰ç‚¼åˆ¶è¿‡çš„è¯æ°´çš„æ•ˆæžœã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "æ–°è¯æ°´ç‚¼æ", + "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "item": "botania:pixie_dust", + "text": "å°†è¯æ°´ä½œä¸ºå•项炼æï¼Œè½¬æ¢ä¸ºæ»žç•™è¯æ°´ã€‚è¿™å…è®¸ä½ ä»¥æ­¤ç›´æŽ¥åˆæˆè¯ç®­ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/chalk.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/chalk.json new file mode 100644 index 0000000000..14af719fef --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/chalk.json @@ -0,0 +1,35 @@ +{ + "name": "Chalk(粉笔)", + "icon": "chalk:chalk", + "flag": "mod:chalk", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "是å¦å› ä¸€æ¬¡åˆä¸€æ¬¡çš„在地下迷路感到厌倦?现在有了$(thing)粉笔$(),你å¯ä»¥æ ‡è®°è¿”回的路径,ä¸ç”¨ä¸ºæ­¤æ‹…å¿ƒäº†ã€‚å¯æƒœçš„æ˜¯ï¼Œè¿™äº›æ–¹è§£çŸ³å°å—会因时间的æµé€è€Œå¼€è£‚,ä¸èƒ½é•¿æœŸä¿å­˜ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "required_advancement": "spectrum:collect_pigment", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:mod_integration/chalk/pedestal/chalk", + "text": "用染料制作的粉笔实在用ä¸é•¿ã€‚使用颜料的è¯ï¼Œå°±å¯ä»¥å°†$(thing)粉笔$()å˜å¾—永久è€ç”¨å•¦ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "required_advancement": "spectrum:collect_pigment", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:mod_integration/chalk/pedestal/glow_chalk", + "text": "当然,ä¸å¯ç ´åçš„$(thing)è§å…‰ç²‰ç¬”$()也å¯ä»¥åšã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "required_advancement": "spectrum:collect_pigment", + "flag": "mod:chalk-colorful-addon", + "title": "多彩粉笔扩展", + "recipe": "spectrum:mod_integration/chalk/pedestal/red_chalk", + "text": "å—¯ï¼Œä½ æƒ³è¦æ•´ç‚¹å½©è‰²çš„粉笔å—?还是å¯ä»¥æ•´æˆä¸å¯ç ´å的哦ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/conjuring.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/conjuring.json new file mode 100644 index 0000000000..8eeb4ca051 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/conjuring.json @@ -0,0 +1,32 @@ +{ + "name": "Conjuring", + "icon": "conjuring:conjurer", + "flag": "mod:conjuring", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)Souls, Spirits, Cages$()$(br)Now if that isn't a work of shrewd occultism you do not know what is." + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "抗性æå‡è¯æ°´", + "recipe": "spectrum:mod_integration/conjuring/potion_workshop_brewing/distilled_spirit_resistance", + "advancement": "spectrum:midgame/brew_powerful_potion_in_potion_workshop", + "text": "è’¸é¦é…’ç²¾å¯ä»¥$(br)呃…被蒸é¦ï¼Ÿ$(br)$(italic)å†è¢«è’¸é¦ï¼Ÿ$()$(br)为长效$(thing)抗性æå‡è¯æ°´$()。" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "recipe": "spectrum:mod_integration/conjuring/spirit_instiller/lesser_conjuration_essence", + "advancement": "spectrum:midgame/build_spirit_instiller_structure", + "text": "你甚至想ä¸èµ·æ¥è¿™ä¸ªé…æ–¹çš„çµæ„Ÿæ˜¯å“ªæ¥çš„。$(br)å¯èƒ½æ˜¯å¥‡æ¯’粉末å¸å¤šäº†ï¼Ÿä½†æ¯«æ— ç–‘问,产物很有趣。" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "recipe": "spectrum:mod_integration/conjuring/spirit_instiller/mob_spawner", + "advancement": "spectrum:midgame/build_spirit_instiller_structure", + "text": "身兼刷怪笼专家和色彩大师二èŒçš„你获得了直接制作$(thing)刷怪笼$()的知识。$(br)ä½ åªéœ€åœ¨$(l:creating_life/spirit_instiller)çµé­‚çŒæ³¨å™¨$(/l)里绑定生物,刷怪笼就完æˆäº†ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/create.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/create.json new file mode 100644 index 0000000000..bbdfbca5be --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/create.json @@ -0,0 +1,37 @@ +{ + "name": "Create(机械动力)", + "icon": "create:crushing_wheel", + "flag": "mod:create", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "机械冒ç€è’¸æ±½ï¼Œé½¿è½®ä¼ åŠ¨çš„å’¯å±å£°å’Œæ±½ç¬›çš„鸣å“声ä¸ç»äºŽè€³ï¼Œè¿™åœºé¢ç®€ç›´å°±æ˜¯åœ¨ç”¨è’¸æ±½æ¼”å¥äº¤å“ä¹ï¼$(br2)这些机械“ä¹å™¨â€æœ‰æ—¶ä¹Ÿä¼šä¸ºæœ¬æ¨¡ç»„派上用场。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_potion_workshop", + "item": "spectrum:magenta_leaves", + "text": "$(thing)彩色树å¶$()能被压碎æˆ$(thing)颜料$()å’Œ$(thing)彩色树苗$()。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_potion_workshop", + "item": "spectrum:magenta_log", + "text": "通过粉碎$(thing)彩色原木$()æ¥ç”Ÿäº§å¤§é‡çš„$(thing)颜料$()。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_quitoxic_reeds", + "item": "spectrum:quitoxic_reeds", + "text": "$(l:resources/quitoxic_reeds)奇毒苇$()现在会更容易的被磨æˆç²‰æœ«ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_potion_workshop", + "item": "minecraft:amethyst_shard", + "text": "和原先的用é“砧粉碎相比,用该方法粉碎$(thing)å®çŸ³æ™¶ç¢Žç‰‡$()会产生更多的$(thing)å®çŸ³æ™¶ç²‰æœ«$()了。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/ecologics.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/ecologics.json new file mode 100644 index 0000000000..50c809f476 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/ecologics.json @@ -0,0 +1,20 @@ +{ + "name": "Ecologics(丰富的生æ€ï¼‰", + "icon": "ecologics:penguin_feather", + "flag": "mod:ecologics", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "新的生物群系æ„å‘³ç€æ–°çš„æœºé‡...嗯,然åŽå‘¢ï¼Ÿ" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "Slippery Potions", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/ecologics/potion_workshop_brewing/ecologics_slippery", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/extraalchemy.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/extraalchemy.json new file mode 100644 index 0000000000..6949cc04ba --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/extraalchemy.json @@ -0,0 +1,127 @@ +{ + "name": "Extra Alchemy(扩展炼è¯ï¼‰", + "icon": "extraalchemy:penguin_feather", + "flag": "mod:extraalchemy", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "对一般人æ¥è¯´ï¼Œè¾¨åˆ«ç‚¼é‡‘术士和魔术师是相当有挑战的。是时候æ¥äº†è§£ä¸€ä¸‹ä»–们的区别和共åŒä¹‹å¤„了。" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "çƒˆç„°è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_combustion", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å®ç¥žè¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_concentration", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "åœ°å™¬è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_crumbling", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "ä¾¦æµ‹è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_detection", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å¼•ä¿¡è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_fuse", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "é‡åŠ›è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_gravity", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "ç”Ÿé•¿è¯æ°´", + "flag": "mod:pekhui", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_growing", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "æ™ºæ…§è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_learning", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "ç£æ€§è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_magnetism", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å’Œå¹³è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_pacifism", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å…‰åˆè¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_photosynthesis", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "é£Žç¬›è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_piper", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å›žå¿†è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_recall", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "å½’è¿˜è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_returning", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "é£Žå¸†è¯æ°´", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_sails", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "title": "æ”¶ç¼©è¯æ°´", + "flag": "mod:pekhui", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_shrinking", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/gobber.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/gobber.json new file mode 100644 index 0000000000..7767de0d98 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/gobber.json @@ -0,0 +1,31 @@ +{ + "name": "Gobber 2(戈伯2)", + "icon": "gobber2:gobber2_globette", + "flag": "mod:gobber2", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "è¿™ç§ææ–™çœ‹èµ·æ¥å¾ˆå¼ºå¤§ï¼Œä½†åˆå分常è§ï¼Œå› æ­¤å®ƒæ‰æœ‰å¦‚此幽默的å称。一起æ¥çœ‹çœ‹å®ƒèƒ½ç”¨æ¥åšä»€ä¹ˆå§ï¼" + }, + { + "type": "spectrum:crystallarieum_growing", + "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette", + "advancement": "spectrum:progression/unlock_crystallarieum", + "text": "它会生长诶ï¼" + }, + { + "type": "spectrum:crystallarieum_growing", + "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette_nether", + "advancement": "spectrum:progression/unlock_crystallarieum", + "text": "它也会生长诶ï¼" + }, + { + "type": "spectrum:crystallarieum_growing", + "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette_end", + "advancement": "spectrum:progression/unlock_crystallarieum", + "text": "真是难以置信诶ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/gofish.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/gofish.json new file mode 100644 index 0000000000..ef81f45c5f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/gofish.json @@ -0,0 +1,26 @@ +{ + "name": "Go Fish(一起钓鱼å§ï¼ï¼‰", + "icon": "gofish:starry_salmon", + "flag": "mod:go-fish", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "Fishing is a relaxing activity to do in your leisure time. Let's see what's biting today." + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:progression/unlock_molten_rod", + "title": "熔岩钓鱼", + "item": "spectrum:molten_rod", + "text": "你的魔法钓竿似乎能钓起熔岩中的鱼类,和“一起钓鱼å§ï¼â€çš„钓竿类似。$(br)åªè¦æ¶²ä½“区域开阔,你ä»ç„¶å¯ä»¥é’“上盲盒。" + }, + { + "type": "patchouli:spotlight", + "title": "其它功能", + "item": "minecraft:enchanted_book{StoredEnchantments: [{id: \"gofish:deepfry\", lvl: 1s}]}", + "text": "深度烧烤魔咒能够照常è¿ä½œï¼Œä½†é±¼é¥µä¸èƒ½ã€‚ä¸è¿‡ä½ ç›¸å½“肯定会有更好的å‡çº§æ–¹æ¡ˆã€‚$(br)深度烧烤魔咒与自动烧烤ä¸å…¼å®¹ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/hexcasting.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/hexcasting.json new file mode 100644 index 0000000000..8ea2d94e38 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/hexcasting.json @@ -0,0 +1,25 @@ +{ + "name": "Hex Casting(咒法学)", + "icon": "hexcasting:charged_amethyst", + "flag": "mod:hexcasting", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "和其他å®çŸ³ä¸åŒï¼Œ$(thing)ç´«æ°´æ™¶$()ä¼¼ä¹Žèƒ½æœ‰ä¸ºæ³•æ–æä¾›èƒ½é‡çš„能力。这ç§èƒ½åŠ›ä¸€æ¬¡æ¬¡çš„åˆ·æ–°ä½ çš„è®¤çŸ¥ï¼Œä½ å¯¹æ­¤å°è±¡æ·±åˆ»ã€‚$(br)嗯,还有什么呢?" + }, + { + "type": "spectrum:potion_workshop_brewing", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/hexcasting/fusion_shrine/charged_amethyst_from_amethyst_shard_fusion", + "text": "" + }, + { + "type": "spectrum:potion_workshop_brewing", + "advancement": "spectrum:progression/unlock_potion_workshop", + "recipe": "spectrum:mod_integration/hexcasting/potion_workshop_reacting/charged_amethyst", + "text": "" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/little_ants.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/little_ants.json new file mode 100644 index 0000000000..872f32dd17 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/little_ants.json @@ -0,0 +1,31 @@ +{ + "name": "å°å°èš‚èš", + "icon": "ants:dirt_ant_nest", + "flag": "mod:ants", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "这些勤劳的å°è™«å­ä»¬å¸¸å¸¸ä»Žæ ‘ä¸ŠèŽ·å–æ ‘å¶ã€‚å®ƒä»¬çš„å·¥ä½œä¹Ÿåæ˜ åœ¨å®ƒä»¬çš„æˆæžœä¹‹ä¸­ã€‚$(br)它们大多情况下会生产$(thing)粘土$(),ä¸è¿‡æœ‰æ—¶åˆ™æ˜¯å…¶ä»–的东西..." + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:jade_vine_petal_block", + "required_advancement": "spectrum:hidden/collect_jade_vine_petals", + "text": "èš‚èšä»¬ä¼šé‡Œç”¨$(thing)玉藤花瓣$()生产æŸç§ç±»ä¼¼ä¸ç»¸çš„东西。" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:orange_dye", + "required_advancement": "spectrum:collect_pigment", + "text": "如果你用锹采收一个采集了彩色树å¶çš„èšçªï¼Œä½ ä¼šèŽ·å¾—æŸ“æ–™ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:orange_pigment", + "required_advancement": "spectrum:collect_pigment", + "text": "还有呢ï¼å¦‚果你用$(thing)æ¤æœ¬è´¨$()贿赂一下它们,你就能采集到纯粹的颜料了。$(br2)$(br2)感谢@MastroCaleb,这个模组真的太棒了ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/tech_reborn.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/tech_reborn.json new file mode 100644 index 0000000000..1f3b3b3d06 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/mod_integration/tech_reborn.json @@ -0,0 +1,25 @@ +{ + "name": "Tech Reborn(科技å¤å…´ï¼‰", + "icon": "techreborn:grinder", + "flag": "mod:techreborn", + "advancement": "spectrum:place_pedestal", + "category": "spectrum:mod_integration_category", + "pages": [ + { + "type": "patchouli:text", + "text": "是时候使用$(italic)电力$()这个新玩æ„å„¿æ¥ä¸ºä½ çš„工厂添砖加瓦了ï¼è®°å¾—å¯åŠ¨æœºå™¨å‰ä»”细检查一下。" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:amethyst_ore", + "advancement": "spectrum:break_gemstone_ore", + "text": "大部分光谱矿物都å¯ä»¥è¢«ç²‰ç¢Žæœº/工业粉碎机处ç†ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "minecraft:amethyst_shard", + "advancement": "spectrum:spectrum", + "text": "当然还能进一步磨æˆç¢Žç‰‡å•¦ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/pastel_network/provider_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/pastel_network/provider_node.json new file mode 100644 index 0000000000..b5902971d9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/pastel_network/provider_node.json @@ -0,0 +1,19 @@ +{ + "pages": [ + { + "text": "è¢«åŠ¨åœ°å°†è¿žæŽ¥çš„åº“å­˜ä¸­çš„æ‰€æœ‰ç‰©å“æä¾›ç»™å…¶è¿žæŽ¥çš„$(l:pastel_network/pastel_network)彩绘网络$(/l)。物å“ä¸ä¼šè¢«æŽ¨é€åˆ°å…¶ä»–节点,但å¯ä»¥è¢«è¯·æ±‚,例如通过$(l:pastel_network/gather_node)接å—节点$(/l)。", + "type": "patchouli:text", + "title": "æä¾›èŠ‚ç‚¹" + }, + { + "recipe": "spectrum:pedestal/tier3/pastel_network/provider_node", + "text": "", + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹" + } + ], + "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", + "name": "æä¾›èŠ‚ç‚¹", + "icon": "spectrum:provider_node", + "category": "spectrum:pastel_network_category" +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/pastel_network/storage_node.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/pastel_network/storage_node.json new file mode 100644 index 0000000000..6b678c9390 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/pastel_network/storage_node.json @@ -0,0 +1,19 @@ +{ + "pages": [ + { + "text": "虽然存储节点本身并ä¸å¼•人注目,但它将与$(l:pastel_network/sender_node)å‘é€èŠ‚ç‚¹$(/l)ï¼ˆå°†ç‰©å“æŽ¨é€åˆ°è¯¥èŠ‚ç‚¹ï¼‰å’Œ$(l:pastel_network/gather_node)接å—节点$(/l)(将物å“从中拉出æ¥ï¼‰ç»“åˆä½¿ç”¨ï¼Œæ˜¾ç¤ºå‡ºå…¶æœ€å¤§çš„用途。", + "type": "patchouli:text", + "title": "存储节点" + }, + { + "recipe": "spectrum:pedestal/tier3/pastel_network/storage_node", + "text": "å³é”®å•击它以打开其物å“过滤器。此过滤器å…许您指定存储节点能够接收和æä¾›å“ªäº›ç‰©å“。å¦åˆ™ï¼Œå®ƒå°†ä½œä¸ºæ‰€æœ‰ç±»åž‹ç‰©å“的通用存储。", + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹" + } + ], + "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", + "name": "存储节点", + "icon": "spectrum:provider_node", + "category": "spectrum:pastel_network_category" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/block_placer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/block_placer.json new file mode 100644 index 0000000000..1de93b0fdb --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/block_placer.json @@ -0,0 +1,22 @@ +{ + "name": "æ–¹å—æ”¾ç½®å™¨", + "advancement": "spectrum:progression/unlock_block_placer", + "icon": "spectrum:block_placer", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:block_placer": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:block_placer", + "text": "$(italic)ä½ å·²ç»æœ‰äº†èƒ½å°†æ–¹å—粉碎,收集,称é‡ï¼Œè£…é…和打包的装置,就差能自动放下方å—的装置了。ä¸è¿‡çŽ°åœ¨å®ƒæ¥äº†ï¼š$(br)得益于$(l:general/shards#topaz)托帕石$(/l)与物质的亲和力,这ç§è£…置能将其内储存的方å—(物å“å½¢å¼ï¼‰ç›´æŽ¥æ”¾ç½®å‡ºæ¥ï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "ä¸ƒå½©åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/block_placer", + "text": "它åšåˆ°äº†!" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/ender_glass.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/ender_glass.json new file mode 100644 index 0000000000..8eea2b4537 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/ender_glass.json @@ -0,0 +1,30 @@ +{ + "name": "末影玻璃", + "advancement": "spectrum:progression/unlock_ender_glass", + "icon": "spectrum:ender_glass", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:ender_glass": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:ender_glass", + "text": "$(italic)当你看è§è¿™ä¸ªè£…ç½®çš„åˆæˆé…方时,你便想到这东西肯定ä¸å¯»å¸¸ï¼š$(br2)è¿™ç§ç»“åˆäº†æœ«åœ°ï¼Œçº¢çŸ³å’Œé­”法的能é‡çš„东西想必一定有ç€å分奇特的作用。" + }, + { + "type": "patchouli:text", + "text": "æ ¹æ®çº¢çŸ³ä¿¡å·çš„è¾“å…¥å¼ºåº¦ï¼Œè¿™ç§æ–¹å—会呈现ä¸åŒçš„状æ€ï¼š$(br2)在没有红石信å·è¾“入时,它是完全ä¸é€æ˜Žçš„固体方å—;有红石信å·è¾“入时,它将开始å˜å¾—åƒçŽ»ç’ƒä¸€æ ·é€æ˜Žã€‚$(br)ä¸è¿‡ï¼Œè¾“入的红石信å·è¾¾åˆ°æœ€å¤§å¼ºåº¦æ—¶ï¼Œå®ƒå°†ä¼šå‘ˆçŽ°å‡ºä¸€ç§æœ€ä¸ºå¥‡æ€ªçš„状æ€ã€‚。。" + }, + { + "type": "patchouli:text", + "text": "$(br2)æ›´åŠ å¥‡æ€ªçš„æ˜¯ï¼Œè¿™ç§æ–¹å—似乎仅对最åŽè¾“入的信å·åšå‡ºååº”ï¼Œè€Œéžæœ€å¼ºçš„ä¿¡å·ã€‚$(br2)实属是æ¥è‡ªæœ«åœ°çš„神秘å®ç‰©å•Šï¼" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "ä¸ƒå½©åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/ender_glass", + "test": "当输入信å·å˜ä¸ºæœ€å°æ—¶ï¼Œå®ƒä¼šè½¬å˜åˆ°æœ€ä½Žèƒ½é‡çš„状æ€ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/entity_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/entity_detector.json new file mode 100644 index 0000000000..4ddc2bd591 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/entity_detector.json @@ -0,0 +1,22 @@ +{ + "name": "实体探测器", + "advancement": "spectrum:progression/detectors/unlock_entity_detector", + "icon": "spectrum:player_detector", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:entity_detector": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "实体探测器", + "text": "实体探测器内å«çš„å®çŸ³ä¼šå¯¹åœ°é¢çš„微尿Œ¯åЍåšå‡ºå应,这使其能探测附近生物的数é‡ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "ä¸ƒå½©åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/detectors/entity_detector", + "text": "在åŠå¾„10个方å—å†…ï¼Œæ¯æŽ¢æµ‹åˆ°1个生物,其会多输出1的信å·å¼ºåº¦ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/item_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/item_detector.json new file mode 100644 index 0000000000..de7e41718d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/item_detector.json @@ -0,0 +1,22 @@ +{ + "name": "ç‰©å“æŽ¢æµ‹å™¨", + "advancement": "spectrum:progression/detectors/unlock_item_detector", + "icon": "spectrum:player_detector", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:item_detector": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "ç‰©å“æŽ¢æµ‹å™¨", + "text": "ç‰©å“æŽ¢æµ‹å™¨èƒ½æŽ¢æµ‹åŠå¾„10个方å—内地é¢ä¸Šçš„ç‰©å“æ•°é‡ã€‚$(br)其输出的红石信å·å¼ºåº¦å–å†³äºŽå‘¨å›´ç‰©å“æ•°é‡ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "ä¸ƒå½©åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/detectors/item_detector", + "text": "当其检测到有64ä¸ªç‰©å“æ—¶ï¼Œå…¶è¾“出的信å·å¼ºåº¦æœ€å¤§ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/light_level_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/light_level_detector.json new file mode 100644 index 0000000000..b5a1db52ff --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/light_level_detector.json @@ -0,0 +1,22 @@ +{ + "name": "亮度探测器", + "advancement": "spectrum:progression/detectors/unlock_light_level_detector", + "icon": "spectrum:player_detector", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:light_level_detector": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "亮度探测器", + "text": "原版的阳光传感器使用下界石英粗制而æˆï¼Œä»…能探测太阳光的强度。$(br)ä¸è¿‡ï¼Œç´«æ°´æ™¶å¯¹å…‰ç…§è¦æ•æ„Ÿå¾—å¤šï¼Œå“ªæ€•æ˜¯ç«æŠŠå‘出的微弱光芒也足以使其å应激烈。想必使用它æ¥åˆ¶ä½œæŽ¢æµ‹äº®åº¦çš„装置会更加精准å§ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "ä¸ƒå½©åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/detectors/light_level_detector", + "text": "亮度探测器ä¸ä»…能探测太阳光的亮度,还能探测其他光æºçš„亮度,比如能å‘光的方å—。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/player_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/player_detector.json new file mode 100644 index 0000000000..89f44a1e7d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/player_detector.json @@ -0,0 +1,22 @@ +{ + "name": "玩家探测器", + "advancement": "spectrum:progression/detectors/unlock_player_detector", + "icon": "spectrum:player_detector", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:player_detector": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "玩家探测器", + "text": "$(italic)试想这样一个场景:有人在æœåŠ¡å™¨é‡Œé¢æ­å»ºäº†ä¸€ä¸ªçº¢çŸ³é—¨ï¼Œä½†å´ä½¿ç”¨ä¼ ç»Ÿçš„åŽ‹åŠ›æ¿æ¥ä½œä¸ºå¼€å…³ã€‚$(br)å¦‚æžœæƒ³è®©å¾ˆå¤šçŽ©å®¶åŒæ—¶è¿›å…¥å¯èƒ½ä¼šå¾ˆéº»çƒ¦ï¼Œä¸è¿‡å¦‚果使用玩家探测器——这ç§èƒ½åœ¨ä¸€å®šè·ç¦»ç±»æŽ¢æµ‹åˆ°ä½ ä»¥åŠå…¶ä»–玩家,并å‘出相应的红石信å·çš„装置æ¥ä»£æ›¿åŽ‹åŠ›æ¿ï¼Œè¯´ä¸å®šå°±èƒ½è§£å†³è¿™ä¸ªé—®é¢˜ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/detectors/player_detector", + "text": "有效探测åŠå¾„为10个方å—。$(br)若探测到放置者å‘出最大信å·å¼ºåº¦ï¼›è‹¥æ˜¯å…¶ä»–玩家则å‘出8级信å·å¼ºåº¦ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_calculator.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_calculator.json new file mode 100644 index 0000000000..288c362c8b --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_calculator.json @@ -0,0 +1,22 @@ +{ + "name": "红石计算器", + "advancement": "spectrum:progression/unlock_redstone_calculator", + "icon": "spectrum:redstone_calculator", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:redstone_calculator": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:redstone_calculator", + "text": "$(italic)ä½¿ç”¨è¿™ç§æ¥è‡ªåœ°ä¸‹çš„红色矿物粉末,你能æ­å»ºä¸€äº›æœ‰ç€æ•°å­¦è¿ç®—能力的机器,ä¸è¿‡å®ƒä»¬é€šå¸¸ä½“积巨大——因为其内最基本的è¿ç®—模å—å°±ç”±å¾ˆå¤šæ–¹å—æž„æˆã€‚如果能将这些模å—精简æˆä¸€ä¸ªçº¢çŸ³è£…置那该有多好?$(l:general/shards#citrine)Citrine$(/l),这ç§è•´å«ç€èƒ½é‡çš„æ™¶ä½“,似乎有ç€å¤©ç„¶çš„逻辑è¿ç®—的能力,因此使用它å¯åˆ¶æˆæ‹¥æœ‰å¤šç§è¿ç®—模å¼çš„红石计算器。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "ä¸ƒå½©åŸºåº§é…æ–¹", + "recipe": "spectrum:pedestal/tier1/redstone_calculator", + "text": "å¯ç”¨æ¨¡å¼ï¼šåŠ æ³•/凿³•,乘法/除法,求模数,求最å°/最大值。$(br)使用方法:首先在其背é¢è¾“入信å·A,其次在其侧é¢è¾“入信å·B。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_sand.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_sand.json new file mode 100644 index 0000000000..771ac7fdff --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_sand.json @@ -0,0 +1,53 @@ +{ + "name": "Redstone Sand", + "advancement": "spectrum:progression/unlock_redstone_sand", + "icon": "spectrum:redstone_sand", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:redstone_sand": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:redstone_sand", + "text": "$(italic)You think back happily to the days when you set little traps for your friends. Touching the wrong block, they were completely buried by sand.$(br)By now, your friends aren't so easily fooled.$(br2)Seems like modern problems require modern solutions." + }, + { + "type": "patchouli:text", + "text": "By adding redstone and a bit of magic to sand, it gains an interesting property: like other blocks, it stays in the air until the Gemstone Powder inside it starts vibrating.$(br2)Redstone Sand behaves like a solid block until it gets a Redstone signal.$(br)The Redstone trigger propagates through all connected blocks, destabilizing them and laws of gravity force it to drop." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/redstone_sand", + "text": "$(italic)So much room for possibilities" + } + ] +} + +{ + "pages":[ + { + "item":"spectrum:redstone_sand", + "text":"$(italic)你愉快地回想起那些为朋å‹è®¾ä¸‹å°åœˆå¥—的日å­ã€‚碰错了方å—,他们被沙å­å®Œå…¨æŽ©åŸ‹äº†ã€‚$(br)到现在为止,你的朋å‹ä»¬è¿˜ä¸é‚£ä¹ˆå®¹æ˜“上当å—骗。$(br2)似乎现代问题需è¦çŽ°ä»£è§£å†³æ–¹æ¡ˆã€‚", + "type":"patchouli:spotlight" + }, + { + "text":"é€šè¿‡å‘æ²™å­ä¸­åŠ å…¥çº¢çŸ³å’Œä¸€äº›é­”æ³•ï¼Œå®ƒèŽ·å¾—äº†ä¸€ä¸ªæœ‰è¶£çš„ç‰¹æ€§ï¼šåƒå…¶ä»–æ–¹å—一样,它一直留在空气中,直到里é¢çš„å®çŸ³ç²‰å¼€å§‹æŒ¯åŠ¨ã€‚$(br2)红石砂的行为就åƒä¸€ä¸ªåšå®žçš„æ–¹å—,直到它得到红石信å·ã€‚$(br)红石触å‘器通过所有连接的方å—传播,使其ä¸ç¨³å®šï¼Œé‡åŠ›å®šå¾‹è¿«ä½¿å…¶ä¸‹é™ã€‚", + "type":"patchouli:text" + }, + { + "recipe":"spectrum:pedestal/tier1/redstone_sand", + "text":"$(italic)有这么多的å¯èƒ½æ€§", + "type":"spectrum:pedestal_crafting", + "title":"åŸºåº§é…æ–¹" + } + ], + "advancement":"spectrum:progression/unlock_redstone_sand", + "extra_recipe_mappings":{ + "spectrum:redstone_sand":0 + }, + "name":"红石沙", + "icon":"spectrum:redstone_sand", + "category":"spectrum:redstone_category" +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_timer.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_timer.json new file mode 100644 index 0000000000..bf479f8cc8 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_timer.json @@ -0,0 +1,45 @@ +{ + "name": "Redstone Timer", + "advancement": "spectrum:progression/unlock_redstone_timer", + "icon": "spectrum:redstone_timer", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:redstone_timer": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:redstone_timer", + "text": "$(italic)Though there are lots of ways to calculate time, most seem relatively... rustic. There are no match for the new trick up your sleeve: the time-affinity of $(l:general/shards#amethyst)Amethyst Shards$(/l)." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/redstone_timer", + "text": "You can toggle the durations for both active time ($(k:use)) and inactive time ($(k:sneak)+$(k:use) with empty hand)." + } + ] +} + +{ + "pages":[ + { + "item":"spectrum:redstone_timer", + "text":"$(italic)虽然有很多计算时间的方法,但大多数方法似乎相对而言有点å¤è€ï¼Œçš„你的袖å­é‡Œæœ‰ä¸€ä¸ªæ–°æŠŠæˆï¼š$(l:general/shards#amethyst)ç´«æ°´æ™¶$(/l)碎片的时间亲和力。", + "type":"patchouli:spotlight" + }, + { + "recipe":"spectrum:pedestal/tier1/redstone_timer", + "text":"您å¯ä»¥åˆ‡æ¢æ´»åŠ¨æ—¶é—´ï¼ˆ$(k:use)ï¼‰å’Œéžæ´»åŠ¨æ—¶é—´ï¼ˆ$(k:sneak)+$(k:use)空手)的æŒç»­æ—¶é—´ã€‚", + "type":"spectrum:pedestal_crafting", + "title":"åŸºåº§é…æ–¹" + } + ], + "advancement":"spectrum:progression/unlock_redstone_timer", + "extra_recipe_mappings":{ + "spectrum:redstone_timer":0 + }, + "name":"红石计时器", + "icon":"spectrum:redstone_timer", + "category":"spectrum:redstone_category" +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_wireless.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_wireless.json new file mode 100644 index 0000000000..c92834e9d3 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/redstone_wireless.json @@ -0,0 +1,45 @@ +{ + "name": "Wireless Redstone", + "advancement": "spectrum:create_onyx_shard", + "icon": "spectrum:redstone_wireless", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:redstone_wireless": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:redstone_wireless", + "text": "$(italic)Gentle resonances are amplified by $(l:general/shards#onyx)Onyx$(/l) to such an extent that they can even be measured through walls, given a suitable receiver. Based on your previous experiments with gemstone shards, it was easy for you to devise such transmitter and receiver systems. These relays do not react well to fast changing signals, though." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier2/redstone_wireless", + "text": "Click with empty hands to toggle sending/receiving. Change the frequency of transmissions by using dye/pigment, so signals do not overlap. Range: 16 Blocks." + } + ] +} + +{ + "pages":[ + { + "item":"spectrum:redstone_wireless", + "text":"$(italic)柔和的共振被$(l:general/shards#onyx)玛瑙$(/l)放大到这样的程度,甚至å¯ä»¥é€šè¿‡å¢™å£æµ‹é‡ï¼Œåªè¦æœ‰åˆé€‚的接收器。基于你之å‰å¯¹å®çŸ³ç¢Žç‰‡çš„实验,你很容易设计出这样的å‘射器和接收器系统。然而,这些继电器对快速å˜åŒ–的信å·å应ä¸ä½³ã€‚", + "type":"patchouli:spotlight" + }, + { + "recipe":"spectrum:pedestal/tier2/redstone_wireless", + "text":"空手点击切æ¢å‘é€/接收。使用染料/颜料改å˜ä¼ è¾“频率,使信å·ä¸é‡å ã€‚范围:16个方å—。", + "type":"spectrum:pedestal_crafting", + "title":"åŸºåº§é…æ–¹" + } + ], + "advancement":"spectrum:create_onyx_shard", + "extra_recipe_mappings":{ + "spectrum:redstone_wireless":0 + }, + "name":"无线红石", + "icon":"spectrum:redstone_wireless", + "category":"spectrum:redstone_category" +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/weather_detector.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/weather_detector.json new file mode 100644 index 0000000000..f964286e26 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/redstone/weather_detector.json @@ -0,0 +1,45 @@ +{ + "name": "Weather Detector", + "advancement": "spectrum:progression/detectors/unlock_weather_detector", + "icon": "spectrum:player_detector", + "category": "spectrum:redstone_category", + "extra_recipe_mappings": { + "spectrum:weather_detector": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "Weather Detector", + "text": "Citrine is very sensitive to the energies released during a storm.$(br2)If the weather detector is directly exposed to rain or a thunderstorm, it emits a redstone signal." + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "recipe": "spectrum:pedestal/tier1/detectors/weather_detector", + "text": "Rain provides a signal with strength 8, thunderstorms of full 15." + } + ] +} + +{ + "pages":[ + { + "text":"黄水晶对风暴期间释放的能é‡éžå¸¸æ•感。$(br2)如果天气探测器直接暴露在雨或雷雨中,它会å‘出红石信å·ã€‚", + "type":"patchouli:text", + "title":"天气探测器" + }, + { + "recipe":"spectrum:pedestal/tier1/detectors/weather_detector", + "text":"雨å‘出的信å·å¼ºåº¦ä¸º8,雷雨为15。", + "type":"spectrum:pedestal_crafting", + "title":"åŸºåº§é…æ–¹" + } + ], + "advancement":"spectrum:progression/detectors/unlock_weather_detector", + "extra_recipe_mappings":{ + "spectrum:weather_detector":0 + }, + "name":"天气探测器", + "icon":"spectrum:player_detector", + "category":"spectrum:redstone_category" +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/amaranth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/amaranth.json new file mode 100644 index 0000000000..9b4a127862 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/amaranth.json @@ -0,0 +1,48 @@ +{ + "name": "è‹‹èœ", + "advancement": "spectrum:milestones/reveal_amaranth", + "icon": "spectrum:amaranth_bushel", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:amaranth_grains": 0, + "spectrum:amaranth_bushel": 0, + "spectrum:honey_pastry": 0, + "spectrum:scone": 0, + "spectrum:triple_meat_pot_pie": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "è‹‹èœ", + "text": "尽管这些ç§å­çœ‹ä¸Šå޻已ç»å­˜æ”¾äº†ç›¸å½“长的一段时间了,它们看起æ¥ä»ç„¶å分鲜活。想一想它们ç§ä¸‹åŽ»ä¼šé•¿æˆä»€ä¹ˆæ ·å—?" + }, + { + "type": "spectrum:anvil_crushing", + "title": "è‹‹èœç±½", + "advancement": "spectrum:collect_amaranth_bushel", + "recipe": "spectrum:anvil_crushing/amaranth_grains", + "text": "你从未è§è¿‡æœ‰å¦‚此鲜红般的æ¤ç‰©ï¼Œé‚£ä¹ˆè¯•试压碎它们å§ï¼$(br)è¿™äº›æ¤æ ªèƒ½è¢«ç²‰ç¢Žæˆæ›´å¤šçš„ç§å­ã€‚$(br2)æ­¤å¤–å®ƒä»¬è¿˜èƒ½è¢«ç›´æŽ¥ç§æ¤åœ¨è‰åœ°æˆ–花盆上。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_amaranth_bushel", + "title": "甜蜜糕点", + "recipe": "spectrum:pedestal/tier1/honey_pastry", + "text": "è‹‹èœçš„壿„Ÿå’Œå°éº¦ä¸åŒã€‚因此,你å¯ä»¥ç”¨å®ƒæ¥åˆ¶ä½œä¸€äº›æ–°å£æ„Ÿçš„美食。" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:collect_amaranth_bushel", + "title": "å¸åº·é¥¼", + "recipe": "spectrum:pedestal/tier2/food/scone", + "text": "å°è€Œç²¾è‡´çš„糕点,里é¢å……满了奶油。$(br2)$(italic)和茶æ­é…é£Ÿç”¨å£æ„Ÿæ›´ä½³ã€‚" + }, + { + "type": "spectrum:pedestal_crafting", + "advancement": "spectrum:progression/unlock_triple_meat_pot_pie", + "title": "三层肉酱派", + "recipe": "spectrum:pedestal/tier2/food/triple_meat_pot_pie", + "text": "这份大é¤èƒ½ä¿è¯ä½ åœ¨ç›¸å½“长的一段时间内饱腹感å足。$(br2)$(italic)充满脂肪,肉,酒精和纤维素的大é¤ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/azurite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/azurite.json new file mode 100644 index 0000000000..c561cbb3a4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/azurite.json @@ -0,0 +1,27 @@ +{ + "name": "石é’", + "advancement": "spectrum:midgame/collect_azurite", + "icon": "spectrum:azurite_ore", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:azurite_ore": 0, + "spectrum:deepslate_azurite_ore": 0, + "spectrum:raw_azurite": 0, + "spectrum:refined_azurite": 0, + "spectrum:azurite_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "石é’", + "item": "spectrum:raw_azurite", + "text": "一ç§å‚¨é‡ä¸°å¯Œçš„è“色矿石。远远望去,其就åƒé’金石一样。它的天然形æ€ä¸­å«æœ‰è¾ƒå¤šçš„æ‚è´¨ï¼Œå› æ­¤éœ€è¦å…ˆå°†å…¶ç²¾ç‚¼ä»¥åŽ»é™¤è¿™äº›æ‚è´¨æ‰èƒ½è¢«ç”¨äºŽå…¶ä»–用途。$(br2)它能在地层深处被找到,并且其似乎蕴å«ç€èƒ½å¢žå¼ºä»»ä½•颜料的能é‡ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "title": "精炼石é’", + "recipe": "spectrum:fusion_shrine/refined_azurite", + "text": "将石é’ç²¾ç‚¼å¹¶éžæ˜“事。$(br)åªæœ‰ä½¿ç”¨è¿™ç§ç²¾ç‚¼é”­ï¼ŒçŸ³é’æ‰å¾—ä»¥ç”¨äºŽæ›´å¤šçš„é…æ–¹ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/bismuth.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/bismuth.json new file mode 100644 index 0000000000..086d73637d --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/bismuth.json @@ -0,0 +1,28 @@ +{ + "name": "é“‹", + "advancement": "spectrum:lategame/collect_bismuth", + "icon": "spectrum:bismuth_flake", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:bismuth_flake": 0, + "spectrum:bismuth_block": 0, + "spectrum:small_bismuth_bud": 0, + "spectrum:large_bismuth_bud": 0, + "spectrum:bismuth_cluster": 0, + "spectrum:bismuth_crystal": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "é“‹", + "text": "一ç§é—ªçƒç€å½©è™¹èˆ¬å…‰èŠ’çš„é‡‘å±žã€‚$(br)在一开始,你åªèƒ½æ‰¾åˆ°ä¸€äº›é“‹æ™¶ç‰‡ï¼Œå®ƒä»¬å¤ªå°äº†ï¼Œè¿˜ä¸èƒ½ç”¨äºŽå…¶ä»–的用途。$(br)那么它们如何在没有æ¯å²©çš„æƒ…况下生长?你注æ„到铋晶片会在你å£è¢‹å†…有其他ç§ç±»çš„金属时会略微生长一些。" + }, + { + "type": "spectrum:crystallarieum_growing", + "advancement": "spectrum:progression/unlock_crystallarieum", + "title": "铋晶生长方法", + "recipe": "spectrum:crystallarieum/bismuth", + "text": "现在,无需消耗一整个金属å—,使用$(l:magical_blocks/crystallarieum)结晶室$()å¹¶æä¾›ç›¸åº”的基质和原料,æ¥è®©é“‹æ™¶çš„生长更加便æ·å¯æŽ§ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/blood_orchids.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/blood_orchids.json new file mode 100644 index 0000000000..cff1c41fdf --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/blood_orchids.json @@ -0,0 +1,25 @@ +{ + "name": "血红兰", + "icon": "spectrum:blood_orchid_petal", + "advancement": "spectrum:midgame/collect_blood_orchid_petal", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:blood_orchid": 0, + "spectrum:blood_orchid_petal": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:blood_orchid_petal", + "title": "血红兰花瓣", + "text": "这些å¶å­ä¼¼ä¹Žæ¥è‡ªä¸€æœµä½ ä¸çŸ¥é“的花。它曾ç»åœ¨è¿™é‡Œç»½å¼€è¿‡å—?它曾ç»è¢«å‰äººç§æ¤è¿‡å—?或者这是æ¥è‡ªä½ ä»Žæœªè®¿é—®çš„世界的一个纪念å“?ä¸è¿‡å®ƒçœ‹ä¸ŠåŽ»åƒæ˜¯åœ¨äº”分钟å‰è¢«æ‘˜ä¸‹çš„那样般鲜活。$(br)æ¯å½“用手触摸这些花瓣时,ä¸å®‰ä¹‹æƒ…总会在你心里挥之ä¸åŽ»ã€‚" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "advancement": "spectrum:progression/unlock_blood_orchid", + "title": "è¡€çº¢å…°æ¤æ ª", + "recipe": "spectrum:spirit_instiller/blood_orchid", + "text": "是$(l:magical_blocks/liquid_crystal#resonant_lily)共振百åˆ$(/l)ï¼è¿™ç¡®å®žæ˜¯ä¸€ç§éš¾ä»¥æ‰æ‘¸çš„花,但它似乎和血红兰有ç€å…³è”。å°è¯•将血红兰的能é‡å°½å¿«çš„转移到共振百åˆä¸­ä¼šå¦‚何?$(br)问得好,å¯èƒ½ä¼šå‘生的最åçš„äº‹æƒ…å°±æ˜¯ä½ æœ€ç»ˆå¾—åˆ°äº†ä¸€ä¸ªçœŸæ­£çš„è¡€çº¢å…°æ¤æ ªï¼Œç”šè‡³è¿˜èƒ½æ‘˜ä¸‹å®ƒçš„æ›´å¤šèŠ±ç“£ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/clover.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/clover.json new file mode 100644 index 0000000000..f3cbeae61a --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/clover.json @@ -0,0 +1,24 @@ +{ + "name": "三å¶è‰", + "advancement": "spectrum:hidden/collect_clover", + "icon": "spectrum:four_leaf_clover", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:clover": 0, + "spectrum:four_leaf_clover": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "三å¶è‰", + "item": "spectrum:clover", + "text": "这些鲜绿多æ±çš„三å¶è‰ç”Ÿé•¿åœ¨å¹³åŽŸå’Œå…¶ä»–å……æ»¡ç”Ÿæœºçš„ç»¿è‰²ç”Ÿç‰©ç¾¤ç³»ä¸­ã€‚$(br2)$(italic)ä»Šå¤©æ˜¯ä½ çš„å¹¸è¿æ—¥å—?$()" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:four_leaf_clover", + "advancement": "spectrum:collect_four_leaf_clover", + "text": "é‚£æ˜¯å½“ç„¶çš„ï¼ $(br)你很确定这个å°å°çš„幸è¿è±¡å¾ç‰©ä¼šåœ¨æŸæ—¶æŸåˆ»æ´¾ä¸Šç”¨åœºã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/geodes.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/geodes.json new file mode 100644 index 0000000000..5b9282b954 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/geodes.json @@ -0,0 +1,322 @@ +{ + "name": "æ™¶æ´ž", + "advancement": "spectrum:spectrum", + "icon": "minecraft:amethyst_cluster", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:topaz_ore": 0, + "spectrum:amethyst_ore": 0, + "spectrum:citrine_ore": 0, + "spectrum:moonstone_ore": 0, + "spectrum:deepslate_topaz_ore": 0, + "spectrum:deepslate_amethyst_ore": 0, + "spectrum:deepslate_citrine_ore": 0, + "spectrum:deepslate_moonstone_ore": 0, + "spectrum:small_topaz_bud": 0, + "spectrum:medium_topaz_bud": 0, + "spectrum:large_topaz_bud": 0, + "spectrum:topaz_cluster": 0, + "spectrum:topaz_block": 0, + "spectrum:budding_topaz": 0, + "minecraft:small_amethyst_bud": 0, + "minecraft:medium_amethyst_bud": 0, + "minecraft:large_amethyst_bud": 0, + "minecraft:amethyst_cluster": 0, + "minecraft:amethyst_block": 0, + "minecraft:budding_amethyst": 0, + "spectrum:small_citrine_bud": 0, + "spectrum:medium_citrine_bud": 0, + "spectrum:large_citrine_bud": 0, + "spectrum:citrine_cluster": 0, + "spectrum:citrine_block": 0, + "spectrum:budding_citrine": 0, + "spectrum:small_moonstone_bud": 0, + "spectrum:medium_moonstone_bud": 0, + "spectrum:large_moonstone_bud": 0, + "spectrum:moonstone_cluster": 0, + "spectrum:moonstone_block": 0, + "spectrum:budding_moonstone": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "å®çŸ³æ™¶æ´ž", + "images": [ + "spectrum:textures/gui/guidebook/geode.png" + ], + "border": true, + "text": "晶洞会在魔法能é‡å¯Œé›†çš„地方形æˆï¼Œé­”法能é‡ä¼šåœ¨æ­¤å¤„结晶æˆå®žç‰©çš„å½¢æ€ã€‚" + }, + { + "type": "patchouli:text", + "text": "$(br)ç ´åæ™¶æ´žé‡Œçš„å®çŸ³æ™¶ç°‡ä¾¿èƒ½å¾—到å®çŸ³ç¢Žç‰‡ï¼Œæ¯ç§ç¢Žç‰‡å‡è•´å«æœ‰å…¶åŽŸæœ‰çš„é­”æ³•å±žæ€§ã€‚$(br)æ¯ç§ç±»åž‹çš„å®çŸ³ä¹Ÿè•´å«æœ‰å…¶å¯¹åº”的基本属性。$(br2)ä¸åŒçš„æµ·æ‹”高度会生æˆä¸åŒç±»åž‹çš„æ™¶æ´žï¼Œä»¥åŠä¸åŒç±»åž‹çš„å®çŸ³æ™¶ç°‡ï¼Œå› æ­¤è¦æƒ³æ”¶é›†æ‰€æœ‰ç§ç±»çš„å®çŸ³ï¼Œåœ¨ä¸åŒçš„地方进行探索是很有必è¦çš„。" + }, + { + "type": "patchouli:multiblock", + "name": "æ™¶æ´ž", + "enable_visualize": false, + "multiblock": { + "pattern": [ + [ + " ", + " ", + "O ", + " O ", + " ", + " SS ", + " O SSSS ", + " SS O ", + " ", + " ", + " ", + " ", + " " + ], + [ + " O ", + " O ", + " ", + " SSSSSS ", + " SSSCCSSS ", + " SSCCCCSS ", + " SSCCCCCCSS ", + " SSCCCCSS ", + " SSSCCSSS ", + " SSSSSS ", + " ", + " O ", + " " + ], + [ + " ", + " ", + " SSSSSSS ", + " SSCCCCCSS ", + " SSCCAAACCS ", + " SCCAAAAACCS ", + " SCCAAAAACCS ", + " SSCCAAACCSS ", + " SSCCCCCSS ", + " SSSSSSS ", + " ", + " ", + " " + ], + [ + " ", + " SSSSSS ", + " SSCCCCCSS ", + " SSCCAAAACCS ", + " SCCAAAAAACSS ", + " SCCAA AACCS ", + " SCCA AACS ", + " SCCAA ACCS ", + " SCAA AACCS ", + " SCC AAACCS ", + " S CCCSS ", + " SSS ", + " " + ], + [ + " SSS ", + " SSCCCSS ", + " SSCCBACCCS ", + " SCCAAAAAACCS ", + " SCAA AACSS ", + " SCAA ACCS ", + " SCAA ACCS ", + " SCAA ACCS ", + " SCCA AACSS ", + " SC BACCSS ", + " ACCSS ", + " CCSS ", + " SS " + ], + [ + " SSSS ", + " SCCCCCSS ", + " SCCAABACSS ", + " SCCAB AAACSS ", + " SCCAB ACCS ", + " SCA AACS ", + "SCA 0 ACSS", + "SCA AACSS", + "SCA AACS ", + "SCAA AACCS ", + " S AACCSS ", + " S CCSS ", + " SS " + ], + [ + " SSSSS ", + " SCCCCCSS ", + " SSCAAAAACCS ", + " CCAA AAACCS ", + " SCA AACS ", + " SCA ACSS", + " SCA ACCS", + " SCA ACCS", + " SCA AACSS", + " S BCSS ", + " AACCS ", + " CCSS ", + " O SS " + ], + [ + " SSSS ", + " SSCCCCSS ", + " SCCAAACCCS ", + "O SCAAA AAACCS ", + " SCAA AACS ", + " SBA ACSS", + " SCA ACCS", + " SCB ACCS", + " CA ACSS", + " S ACCSS", + " AACSS ", + " CCSS ", + " SSS " + ], + [ + " S ", + " SSCCSSS ", + " SCCCACCCSS ", + " SCCAAAAAACSS ", + " CCA ACCS ", + " SCB AACSS", + " SCA ACSS", + " SCB ACSS", + " SC AACSS", + " S AACSS ", + " ACCS ", + " CCSS ", + " SS " + ], + [ + " ", + " SSSSS ", + " SCCCCCCS ", + " SCCABAACCS ", + " SCAAA ABACCS ", + " SCA AACS ", + " SCAA ABCS ", + " SCAB AACS ", + " SCA ACCS ", + " AAACSS ", + " ACCCS ", + " CCS ", + " SS " + ], + [ + " ", + " S ", + " SSSCSSS ", + " SCCCCCCCS ", + " SCCAAAACCS ", + " CCBAAAAACSS ", + " SCAA AACSS ", + " SCAAA AACSS ", + " SCCAAAAAACSS ", + " S ABACCS ", + " CCCS ", + " SSS ", + " O S " + ], + [ + " O ", + " ", + " SSS ", + " SSCCSSS ", + " SCCCCCCS ", + " SSCCAACCSS ", + " SCCAABCCSS ", + " SCCBAACCSS O", + " SCCCACCCSS ", + " OS CSS ", + " O SS ", + " ", + " " + ], + [ + " ", + " ", + " O ", + " SS ", + " SSSSS ", + " SSCCSSS ", + " SSCCCCSS ", + " SSCCCCSS ", + " SSSCCSS ", + " SSSSSSS O ", + " SS ", + " ", + " " + ], + [ + " ", + " ", + " ", + " ", + " O ", + " S ", + " SSS ", + " SS ", + " S O ", + " ", + " ", + " ", + " " + ] + ], + "mapping": { + "S": "minecraft:smooth_basalt", + "C": "minecraft:calcite", + "A": "minecraft:amethyst_block", + "B": "minecraft:budding_amethyst", + "W": "minecraft:small_amethyst_bud", + "X": "minecraft:medium_amethyst_bud", + "Y": "minecraft:large_amethyst_bud", + "Z": "minecraft:amethyst_cluster", + "O": "spectrum:amethyst_ore" + }, + "symmetrical": false + }, + "text": "这些ç贵的å®çŸ³ç»“æ™¶å¤–é¢æ˜¯ç”±çŽ„æ­¦å²©å’Œæ–¹è§£çŸ³æž„æˆçš„ä¿æŠ¤å±‚ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:break_gemstone_ore", + "title": "å®çŸ³çŸ¿çŸ³", + "item": "spectrum:amethyst_ore", + "text": "用心观察和总结,你会留æ„åˆ°åœ¨æ™¶æ´žå¤–å›´å²©å±‚ä¸­è¿˜ä¼šåˆ†å¸ƒæœ‰å«æœ‰å®çŸ³çš„矿石。$(br)因此,åªè¦ä½ å‘现了这样的矿石,那么晶洞就离你ä¸è¿œäº†ï¼$(br2)å®çŸ³çŸ¿çŸ³è™½ç„¶ä¸ä¼šåƒå®çŸ³æ™¶ç°‡é‚£æ ·ä¼šå†ç”Ÿï¼Œä½†å°†å…¶æŒ–æŽ˜ä¼šæŽ‰è½æ›´å¤šçš„å®çŸ³ç¢Žç‰‡ï¼Œå°¤å…¶æ˜¯åœ¨ä½¿ç”¨å¸¦æœ‰æ—¶è¿é™„魔的工具之时。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", + "title": "托帕石晶洞", + "item": "spectrum:topaz_block", + "text": "å’Œå…¶ä»–æ™¶æ´žç›¸æ¯”ï¼Œæ‰˜å¸•çŸ³æ™¶æ´žæ˜¾å¾—æ›´ä¸ºå·¨å¤§ï¼Œç‰©è´¨å…ƒç´ ç»„æˆæ›´åŠ å•ä¸€ã€‚ç„¶è€Œï¼Œè¿™ç§æ™¶æ´žåªèƒ½åœ¨è¿œç¦»åœ°è¡¨çš„山峰或群山里é¢è¢«æ‰¾åˆ°ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", + "title": "ç´«æ°´æ™¶æ´ž", + "item": "minecraft:amethyst_block", + "text": "作为时间的元素,紫水晶洞更容易在世界的最底层被找到,é™é™çš„æ·±åŸ‹åœ¨é‚£é‡Œï¼Œä¸Žä¸–éš”ç»ã€‚$(br)å®é™ä½†æ˜¾å¾—气派。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", + "title": "黄水晶洞", + "item": "spectrum:citrine_block", + "text": "黄水晶洞生æˆäºŽä¸–ç•Œçš„ä¸­é—´åœ°å±‚ï¼Œå› æ­¤æœ‰æ—¶èƒ½ä»Žåœ°è¡¨ç›´æŽ¥æ‰¾åˆ°å¹¶è¿›å…¥å…¶ä¸­ã€‚è¿™ç§æ™¶æ´žä½“积虽å°ï¼Œä½†å´è•´å«ç€å·¨å¤§çš„能é‡ï¼Œæ‰€ä»¥å®ƒä»¬æ—¶å¸¸å› æ­¤è€Œå塌。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:lategame/collect_moonstone_shard", + "title": "月长石晶洞", + "item": "spectrum:moonstone_block", + "text": "在$(l:dimension/dimension)深渊领域$(),你有时能找到月长石的晶洞ï¼$(br)ä¸ç”¨æ€€ç–‘,月长石晶洞也是有较多ä¸åŒå˜ç§çš„。那些雄伟的晶洞在最明亮的白光中闪耀,让那些适应了深渊领域的黑暗的人们几近眼花缭乱。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/jade_vines.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/jade_vines.json new file mode 100644 index 0000000000..9915585a4e --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/jade_vines.json @@ -0,0 +1,67 @@ +{ + "name": "玉藤", + "advancement": "spectrum:hidden/collect_hibernating_jade_vine_seeds", + "icon": "spectrum:hibernating_jade_vine_seeds", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:hibernating_jade_vine_seeds": 0, + "spectrum:germinated_jade_vine_seeds": 0, + "spectrum:jade_vine_petals": 0, + "spectrum:moonstruck_nectar": 0, + "spectrum:jade_jelly": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "玉藤", + "item": "spectrum:hibernating_jade_vine_seeds", + "text": "è¿™ç§æ¤ç‰©ä»Žè¿œå¤æ—¶ä»£é—留下æ¥çš„能é‡åˆ°çŽ°åœ¨è¿˜å‡ ä¹Žçœ‹ä¸åˆ°ã€‚它是如此轻盈和脆弱,以至于你认为任何错误的举动都å¯èƒ½è®©å®ƒè„†å¼±çš„çƒæžœå¤±åŽ»æœ€åŽä¸€ç‚¹ç”Ÿå‘½ã€‚$(br2)$(italic)è¿™ç§æ¤ç‰©çš„历å²ä¼šæ°¸è¿œè®©ä½ æ‰æ‘¸ä¸é€å—?" + }, + { + "type": "spectrum:spirit_instiller_crafting", + "title": "ç„•æ´»", + "advancement": "spectrum:midgame/build_spirit_instiller_structure", + "recipe": "spectrum:spirit_instiller/germinated_jade_vine_seeds", + "text": "曾几何时,将它é‡ç„•生机是一件几乎ä¸å¯èƒ½åšåˆ°çš„事情,ä¸è¿‡çŽ°åœ¨ä½ æœ‰ä¸€ä¸ªç¥žå™¨ï¼š$(br)在$(l:creating_life/spirit_instiller)çµé­‚注入器$(/l)。在它的帮助下,你å¯ä»¥å°†ç”Ÿå‘½é‡æ–°æ³¨å…¥åˆ°è¿™ä¸ªå°çƒæžœä¸­ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "ç§æ¤å’Œç”Ÿé•¿", + "item": "spectrum:germinated_jade_vine_seeds", + "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", + "text": "è¿™ç§è‹ç™½ï¼Œè„†å¼±ä½†ç¾Žä¸½çš„æ‚¬æŒ‚æ¤ç‰©ï¼Œä¼šç¼ ç»•ç€æœ¨åˆ¶æ …æ ç”Ÿé•¿ã€‚$(br)$(c_red)它们无法承å—这些永æ’之åŽçš„强光,当其暴露在过强的阳光下时,它们便会死亡。$(br)$(c_lime)åªæœ‰æš´éœ²åœ¨æ›´ä¸ºæŸ”和,断断续续的月光下时,它们æ‰èƒ½ç”Ÿé•¿ï¼Œå¹¶ä¸”æ¯ä¸ªå¤œæ™šç”Ÿé•¿ä¸€ä¸ªé˜¶æ®µã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "玉藤冻", + "anchor": "jade_jelly", + "item": "spectrum:jade_jelly", + "advancement": "spectrum:hidden/collect_jade_jelly", + "text": "当玉藤暴露在强烈的阳光下时,它们会枯èŽè€Œæ­»ï¼Œç•™ä¸‹æ–°çš„çƒæžœå’Œè¿™ç§å‡èƒ¶çŠ¶çš„ç‰©å“。$(br2)$(italic)å‡ºä¹Žæ„æ–™çš„美味ï¼$()" + }, + { + "type": "spectrum:cinderhearth_smelting", + "title": "玉藤焦糖", + "anchor": "jaramel", + "recipe": "spectrum:cinderhearth/jaramel", + "advancement": "spectrum:hidden/collect_jade_jelly", + "text": "如果将玉藤冻快速加热åŽè¿…速冷å´ï¼Œå…¶ä¼šè½¬å˜æˆè¿™ç§ç²˜ç¨ ä½†åƒç³–一般甜的物质。$(br2)$(italic)想糖想疯了å—?" + }, + { + "type": "patchouli:spotlight", + "title": "花瓣", + "anchor": "petals", + "item": "spectrum:jade_vine_petals", + "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", + "text": "这些闪闪å‘亮的花瓣å¯åœ¨çŽ‰è—¤ç”Ÿé•¿çš„ä»»æ„阶段被摘下,$(br)它们å¯ç”¨äºŽ$(l:decoration/jade_vine_petal_blocks)装饰$()。$(br)æœ‰æ—¶ä»ŽèŠ±ç“£ä¸­è¿˜èƒ½è¾ƒå°æ¦‚率找到其他的$(thing)çƒæžœ$()。(br)让玉藤继续自由的生长,它们接下æ¥ä¼šé•¿æˆä»€ä¹ˆæ ·å‘¢ï¼Ÿ" + }, + { + "type": "patchouli:spotlight", + "title": "æœ›èˆ’ç¼æµ†", + "anchor": "nectar", + "item": "spectrum:moonstruck_nectar", + "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", + "text": "ç»è¿‡å¾ˆå¤šä¸ªæ»¡æœˆçš„å¤œæ™šï¼ŒçŽ‰è—¤çš„èŠ±ä¾¿ä¼šç››å¼€ã€‚ä½¿ç”¨çŽ»ç’ƒç“¶æ”¶é›†è¿™äº›èŠ±æœµäº§ç”Ÿçš„èŠ±èœœä¾¿ä¼šå¾—åˆ°æœ›èˆ’ç¼æµ†ã€‚$(br)è¿™ç§èŠ±èœœå…·æœ‰å¾ˆå¼ºçš„æ¢å¤åŠŸèƒ½ï¼š$(li)将其直接饮用能获得治疗的效果$(li)涂抹在有æŸå的物å“上能将其修å¤$()。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/liquid_crystal_powders.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/liquid_crystal_powders.json new file mode 100644 index 0000000000..34b54da271 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/liquid_crystal_powders.json @@ -0,0 +1,38 @@ +{ + "name": "结晶化", + "advancement": "spectrum:hidden/collect_any_crystallized_block", + "icon": "spectrum:liquid_crystal_bucket", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:blazing_crystal": 0, + "spectrum:fiery_powder": 0, + "spectrum:frostbite_crystal": 0, + "spectrum:blizzard_powder": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_blazing_crystal", + "item": "spectrum:blazing_crystal", + "text": "è®©ä¸€æ•´å—æ¶²ä½“æ°´æ™¶å¸æ”¶å¤§é‡æ¥è‡ªç†”岩的热é‡ï¼Œå°±èƒ½å°†å…¶è½¬å˜ä¸ºç‚½çƒ­æ°´æ™¶ã€‚$(br)è¿™ç§æ–¹å—和岩浆å—很相似,ä¸è¿‡å®ƒè¿˜è¦æ›´çƒ­ä¸€äº›ã€‚" + }, + { + "type": "spectrum:anvil_crushing", + "advancement": "spectrum:hidden/collect_blazing_crystal", + "recipe": "spectrum:anvil_crushing/fiery_powder_from_blazing_crystal", + "text": "使用é“砧粉碎$(thing)炽热水晶$()å¯å°†å…¶è½¬å˜æˆè¿™ç§ç‡ƒç€çš„粉末,æ§ä½å®ƒå‡ ä¹Žä¼šè®©ä½ çš„æ‰‹ç€ç«ã€‚粉碎$(thing)岩浆å—$()也能产生这ç§ç²‰æœ«ï¼Œä¸è¿‡äº§é‡ä¼šä½Žå¾ˆå¤šã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:hidden/collect_frostbite_crystal", + "item": "spectrum:frostbite_crystal", + "text": "当水缓缓æµå‘ä¸€æ•´å—æ¶²ä½“æ°´æ™¶æ—¶ï¼Œæ¶²ä½“æ°´æ™¶ä¾¿ä¼šå†·å‡æˆå›ºä½“。$(br)è¿™ç§æ–¹å—å³ä½¿ä½ ç”¨æ‰‹è½»è½»çš„è§¦æ‘¸ä¹Ÿèƒ½å°†ä½ å†»çš„å‘æŠ–ï¼Œå› æ­¤å…¶è¢«ç§°ä¸ºéœœå†»æ°´æ™¶ã€‚" + }, + { + "type": "spectrum:anvil_crushing", + "advancement": "spectrum:hidden/collect_frostbite_crystal", + "recipe": "spectrum:anvil_crushing/blizzard_powder_from_frostbite_crystal", + "text": "使用é“砧粉碎$(thing)霜冻水晶$()å¯å°†å…¶è½¬å˜æˆè¿™ç§å†°å†·çš„粉末,æ§ä½å®ƒå‡ ä¹Žä¼šè®©ä½ çš„æ‰‹å†»åƒµã€‚粉碎$(thing)冰å—$()也能产生这ç§ç²‰æœ«ï¼Œä¸è¿‡äº§é‡ä¼šä½Žå¾ˆå¤šã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/malachite.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/malachite.json new file mode 100644 index 0000000000..10878c6798 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/malachite.json @@ -0,0 +1,31 @@ +{ + "name": "孔雀石", + "advancement": "spectrum:lategame/collect_malachite", + "icon": "spectrum:malachite_cluster", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:malachite_ore": 0, + "spectrum:deepslate_malachite_ore": 0, + "spectrum:blackslag_malachite_ore": 0, + "spectrum:raw_malachite": 0, + "spectrum:malachite_block": 0, + "spectrum:small_malachite_bud": 0, + "spectrum:large_malachite_bud": 0, + "spectrum:malachite_cluster": 0, + "spectrum:malachite_crystal": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "孔雀石", + "text": "一ç§å¤©ç„¶çš„ææ–™ï¼Œé—ªçƒç€æ·±ç»¿è‰²çš„光芒。它似乎具有很强的魔法属性,几乎就åƒ$(l:dimension/dimension)渊深领域$()中的$(l:resources/azurite)石é’$()一样。$(br)作为一ç§å’Œ$(l:resources/azurite)石é’$()类似的矿物,孔雀石也需è¦è¢«ç²¾ç‚¼ã€‚你通过采矿获得的å°åž‹å­”雀石碎片首先需è¦ç»è¿‡ç”Ÿé•¿æ‰èƒ½èŽ·å¾—å®Œæ•´å¯ç”¨çš„æ™¶ä½“,ä¸è¿‡å®ƒä»¬çš„生长速度æžå…¶ç¼“慢,你甚至ä¸èƒ½ä¿è¯ä½ èƒ½åœ¨ä½ çš„一生中亲眼目ç¹å…¶é•¿æˆçš„那一刻。" + }, + { + "type": "spectrum:crystallarieum_growing", + "advancement": "spectrum:progression/unlock_crystallarieum", + "title": "精炼孔雀石", + "recipe": "spectrum:crystallarieum/malachite", + "text": "ä¸è¿‡ï¼Œä½¿ç”¨å‚¬åŒ–剂应该是你能在åˆç†çš„æ—¶é—´èŒƒå›´å†…显著加速孔雀石生长的唯一方法了。$(br)你还需è¦ä½¿ç”¨$(item)月长石$()æ¥åŠ å¼ºå½±å“,为其生长è¥é€ ä¸€ä¸ªæ¨¡æ‹Ÿæ·±æ¸Šé¢†åŸŸèˆ¬çš„生长环境。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/mermaids_brush.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/mermaids_brush.json new file mode 100644 index 0000000000..b4fe9f0e02 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/mermaids_brush.json @@ -0,0 +1,22 @@ +{ + "name": "美人鱼å®çŸ³", + "icon": "spectrum:mermaids_gem", + "advancement": "spectrum:collect_mermaids_gem", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:mermaids_gem": 0, + "spectrum:mermaids_brush": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "item": "spectrum:mermaids_brush", + "text": "$(italic)è¿™ç§æ¯«ä¸èµ·çœ¼çš„æ¤ç‰©ç”Ÿé•¿åœ¨æµ·æ´‹çš„æœ€æ·±å¤„ï¼Œæ°¸è¿œä¸å—人类的影å“。$(br)它们开出一朵花,并慢慢的结æˆä¸çŠ¶çš„ç§å­ã€‚$()$(br2)美人鱼è‰èƒ½ä½¿ç”¨å‰ªåˆ€è¿›è¡Œæ”¶é›†ã€‚" + }, + { + "type": "patchouli:spotlight", + "item": "spectrum:mermaids_gem", + "text": "等到其完全长æˆåŽï¼Œè¿™äº›ä¸­ç©ºçš„ç§å­ä¼šæ¼‚在海é¢ä¸Šï¼Œéšç€æŸ”和的波浪被带å‘四方。$(br2)显然,美人鱼å®çŸ³ä¹Ÿå’Œæ°´æœ‰ç€å¾ˆå¼ºçš„结åˆåŠ›ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/moonstone_cores.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/moonstone_cores.json new file mode 100644 index 0000000000..6deedbedb9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/moonstone_cores.json @@ -0,0 +1,24 @@ +{ + "name": "月长石核心", + "advancement": "spectrum:lategame/collect_moonstone_core", + "icon": "spectrum:moonstone_core", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:moonstone_core": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "images": [ + "spectrum:textures/gui/guidebook/moonstone_core.png" + ], + "text": "一个æ¥è‡ªæ—©å·²ä¸å¤å­˜åœ¨çš„æ—¶ä»£çš„é—物。" + }, + { + "type": "patchouli:spotlight", + "title": "Moonstone Cores", + "item": "spectrum:moonstone_core", + "text": "è¿™ç§å¼ºå¤§çš„物å“能轻而易举的输é€å¤§é‡çš„$(c_white)白色墨水$()。其也能用于æå‡è®¾å¤‡å’Œè£…置的能力。" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/paltaeria.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/paltaeria.json new file mode 100644 index 0000000000..0a5627ce62 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/paltaeria.json @@ -0,0 +1,41 @@ +{ + "name": "Paltaeria", + "advancement": "spectrum:lategame/collect_paltaeria", + "icon": "spectrum:paltaeria_fragments", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:paltaeria_ore": 0, + "spectrum:paltaeria_fragments": 0, + "spectrum:paltaeria_gem": 0, + "spectrum:paltaeria_fragment_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Paltaeria", + "item": "spectrum:paltaeria_fragments", + "text": "æ·¡è“色是这ç§çŸ¿çŸ³çš„æ ‡å¿—,它åªèƒ½åœ¨æœ«åœ°é‡Œçš„å°åž‹çŸ¿ç°‡ä¸­è¢«å‘现。$(br2)æ­£å¦‚æœ«åœ°æœ¬èº«ä¸€æ ·ï¼Œè¿™ç§ææ–™å¥‡å¦™çš„ç‰¹æ€§ä¹Ÿä¸å®¹å°è§‘。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Paltaeriaå®çŸ³", + "advancement": "spectrum:hidden/collect_paltaeria_gem", + "recipe": "spectrum:pedestal/tier4/paltaeria_gem", + "text": "你很少能挖出一å—完整的这ç§çŸ³å¤´ï¼Œä½¿ç”¨å…¶ç¢Žç‰‡ç›´æŽ¥ç”¨äºŽé…方还ä¸è¶³å¤Ÿã€‚ä¸è¿‡ä½ å¯ä»¥å°†è¿™äº›ç¢Žç‰‡æ‹¼åˆåœ¨ä¸€èµ·ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "Paltaeriaæµ®å—", + "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "item": "spectrum:paltaeria_fragment_block", + "text": "æ ¹æ®ä½ ä¹‹å‰å’ŒPaltaeriaçš„ç»åŽ†ï¼Œä½ å·²ç»æƒ³åˆ°äº†ï¼Œå°†è¿™ç§æ–¹å—放置在开阔的天空中并éžä¸€ä¸ªå¥½çš„主æ„——未æ¥çš„你会因此而感谢现在的你。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "åŸºåº§é…æ–¹", + "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "recipe": "spectrum:pedestal/tier1/compacting/paltaeria_fragment_block", + "text": "$(br) $(italic)~ 远走高飞 ~" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/pure_resources.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/pure_resources.json new file mode 100644 index 0000000000..06e364c5f9 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/pure_resources.json @@ -0,0 +1,72 @@ +{ + "name": "高纯资æº", + "advancement": "spectrum:lategame/collect_pure_resource", + "icon": "spectrum:pure_iron", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:pure_coal": 0, + "spectrum:pure_iron": 0, + "spectrum:pure_gold": 0, + "spectrum:pure_diamond": 0, + "spectrum:pure_emerald": 0, + "spectrum:pure_redstone": 0, + "spectrum:pure_lapis": 0, + "spectrum:pure_copper": 0, + "spectrum:pure_quartz": 0, + "spectrum:pure_netherite": 0, + "spectrum:pure_glowstone": 0, + "spectrum:pure_prismarine": 0, + + "spectrum:pure_certus_quartz": 0, + "spectrum:pure_fluix": 0, + "spectrum:pure_globette": 0, + "spectrum:pure_globette_nether": 0, + "spectrum:pure_globette_end": 0, + + "spectrum:pure_coal_block": 0, + "spectrum:pure_iron_block": 0, + "spectrum:pure_gold_block": 0, + "spectrum:pure_diamond_block": 0, + "spectrum:pure_emerald_block": 0, + "spectrum:pure_redstone_block": 0, + "spectrum:pure_lapis_block": 0, + "spectrum:pure_copper_block": 0, + "spectrum:pure_quartz_block": 0, + "spectrum:pure_netherite_block": 0, + "spectrum:pure_glowstone_block": 0, + "spectrum:pure_prismarine_block": 0, + + "spectrum:pure_certus_quartz_block": 0, + "spectrum:pure_fluix_block": 0, + "spectrum:pure_globette_block": 0, + "spectrum:pure_globette_nether_block": 0, + "spectrum:pure_globette_end_block": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "在$(l:magical_blocks/crystallarieum)催化剂$(/l)中生长的矿石和$(thing)粗矿$()相比,其会更加纯净,并会生长æˆç»“æ™¶çš„å˜ç§ã€‚$(br)仔细观察它们,你会å‘现它们几乎被一层看ä¸è§çš„光泽所包围起æ¥ï¼Œç²¾å¿ƒçš„ä¿æŠ¤å®ƒä»¬ä¸å—外力的影å“。这ç§ä¿æŠ¤å±‚似乎也是它们ä¸ä¼šè¢«æ°§åŒ–的一个原因$(thing)(如原生的铜矿)$()。" + }, + { + "type": "patchouli:blasting", + "title": "高炉煅烧", + "recipe": "spectrum:blasting/pure_resources/pure_iron", + "recipe2": "spectrum:blasting/pure_resources/pure_gold", + "text": "但令人ä¸è§£çš„æ˜¯ï¼Œä½ å‘现这些资æºä¼¼ä¹Žèƒ½æ‰¿å—普通$(thing)熔炉$()的热é‡ï¼Œå¹¶ä¸”你也能将其放在$(thing)高炉$()中冶炼æˆé”­ã€‚" + }, + { + "type": "spectrum:cinderhearth_smelting", + "advancement": "spectrum:progression/unlock_cinderhearth", + "title": "炼化炉冶炼", + "recipe": "spectrum:cinderhearth/pure_resources/pure_iron", + "recipe2": "spectrum:cinderhearth/pure_resources/pure_gold", + "text": "然而,把它们放在$(l:magical_blocks/cinderhearth)炼化炉$()里é¢å†¶ç‚¼ä¼šæœ‰æ›´ä¸ºå¯è§‚的锭产é‡ã€‚" + }, + { + "type": "patchouli:crafting", + "title": "Compressing", + "recipe": "spectrum:crafting_table/storage_blocks/pure_quartz_storage_block", + "recipe2": "spectrum:crafting_table/storage_blocks/pure_quartz_from_quartz_storage_block" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/quitoxic_reeds.json new file mode 100644 index 0000000000..ac246889e1 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/quitoxic_reeds.json @@ -0,0 +1,27 @@ +{ + "name": "奇毒苇", + "icon": "spectrum:quitoxic_reeds", + "advancement": "spectrum:collect_quitoxic_reeds", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:quitoxic_reeds": 0, + "spectrum:quitoxic_powder": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "奇毒苇", + "images": [ + "spectrum:textures/gui/guidebook/quitoxic_reed.png" + ], + "border": true, + "text": "åªåœ¨æ²¼æ³½ä¸­ç”Ÿé•¿ï¼Œå¹¶ä¼¼ä¹Žä»Žç²˜åœŸä¸­æ±²å–养分。" + }, + { + "type": "patchouli:spotlight", + "anchor": "quitoxic_powder", + "item": "spectrum:quitoxic_powder", + "text": "使用é“砧将这ç§å¤–星生物般的æ¤ç‰©çš„茎粉碎,å¯ä»¥è޷得䏀ç§é—ªé—ªå‘光的紫色粉末。$(br)当你将其放在手指间摩擦时,你闻到了一ç§ä¸å¯»å¸¸çš„æ°”味,手指之间也有一ç§å¥‡æ€ªçš„æ„Ÿè§‰...$(br2)$(italic)...等等,我手指呢?ï¼" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/resonating_ender.json new file mode 100644 index 0000000000..0524dbe3e4 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/resonating_ender.json @@ -0,0 +1,21 @@ +{ + "name": "Resonating Ender", + "advancement": "spectrum:milestones/reveal_radiating_ender", + "icon": "minecraft:ender_pearl", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:radiating_ender": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "text": "$(italic)é‚£äº›å¯æ¶çš„æœ«å½±äººï¼$(br2)他们总是在晚上出现,从你眼皮底下里å·èµ°æ–¹å—。在一个月内,你会å‘现你所在的地方会如åŒç«å±±å£ä¸€èˆ¬ç‹¼è—‰ã€‚$()" + }, + { + "type": "patchouli:spotlight", + "title": "Resonating Ender", + "item": "spectrum:radiating_ender", + "text": "末影人æ¥åˆ°è¿™ä¸ªä¸–界是为了放置那些方å—,但这是什么原因?它们$(italic)为什么$()把方å—留在这里?$(br2)现在你手里拿ç€ä¸€ä¸ª...他们无处ä¸åœ¨ï¼ä½ æ€Žä¹ˆæ²¡æ³¨æ„到?无论如何,你肯定å¯ä»¥åˆ©ç”¨è¿™ä¸ªæœ‰è¶£çš„ææ–™ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/shimmerstone.json new file mode 100644 index 0000000000..5ca5d6ef24 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/shimmerstone.json @@ -0,0 +1,26 @@ +{ + "name": "闪光石", + "advancement": "spectrum:collect_shimmerstone", + "icon": "spectrum:shimmerstone_gem", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:shimmerstone_ore": 0, + "spectrum:deepslate_shimmerstone_ore": 0, + "spectrum:blackslag_shimmerstone_ore": 0, + "spectrum:shimmerstone_gem": 0, + "spectrum:shimmerstone_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "闪光石", + "item": "spectrum:shimmerstone_gem", + "text": "一ç§é»„色的矿石,它ä¸ä»…èƒ½ä»¥å…‰çš„å½¢å¼æ•£å‘出能é‡ï¼Œè¿˜èƒ½å°†èƒ½é‡è¿›è¡Œæ“控。$(br2)闪光石能在海平é¢é™„近的高度被找到。" + }, + { + "type": "patchouli:crafting", + "recipe": "spectrum:crafting_table/storage_blocks/shimmerstone_block", + "text": "一整个方å—的闪光石会散å‘出亮黄色的粒å­ã€‚" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/stargazing.json new file mode 100644 index 0000000000..d9452b364c --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/stargazing.json @@ -0,0 +1,54 @@ +{ + "name": "观星", + "advancement": "spectrum:milestones/unlock_shooting_stars", + "icon": "minecraft:spyglass", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:star_fragment": 0, + "spectrum:stardust": 0, + "spectrum:shooting_star_glistering": 0, + "spectrum:shooting_star_fiery": 0, + "spectrum:shooting_star_colorful": 0, + "spectrum:shooting_star_pristine": 0, + "spectrum:shooting_star_gemstone": 0 + }, + "pages": [ + { + "type": "patchouli:image", + "title": "å¯¹ç€æ˜Ÿæ˜Ÿè®¸æ„¿", + "images": [ + "spectrum:textures/gui/guidebook/stargazing.png" + ], + "border": true, + "text": "$(italic)在一个å®é™çš„夜晚,躺在è‰åœ°ä¸Šçœ‹æ˜Ÿæ˜Ÿæ˜¯ä¸ªå¾ˆä¸é”™çš„主æ„。" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "æµæ˜Ÿ", + "item": "spectrum:shooting_star_glistering", + "text": "这些å°åž‹çš„æµæ˜Ÿæ˜¯ç”±ä½ ç›®å‰è¿˜ä¸çŸ¥é“的物质所构æˆçš„。$(br2)你能从天上直接抓一个下æ¥å—?$(br2)$(italic)æç¤ºï¼šä½¿ç”¨æœ›è¿œé•œæˆ–获得夜视效果能更加容易的å‘çŽ°æµæ˜Ÿã€‚$()" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "æµæ˜Ÿç¢Žç‰‡", + "item": "spectrum:star_fragment", + "text": "æµæ˜Ÿèƒ½å¸¦æ¥ä¸€äº›å®è´µçš„资æºï¼Œå…¶ä¸­åŒ…括这ç§ç¨€æœ‰çš„æ˜Ÿæ˜Ÿç¢Žç‰‡ï¼Œæ˜Ÿå°˜å’Œå…¶ä»–所有的很多稀有原料。$(br2)æŒ‰ä½æ½œè¡Œé”®å¹¶å¯¹ç€æµæ˜Ÿå³å‡»ä»¥å°†å…¶æ‹¾èµ·ï¼Œä¹‹åŽ$(l:general/anvil_crushing)使用é“砧将其粉碎$(/l)以获得åŒå€çš„æµæ˜Ÿç¢Žç‰‡ï¼Œå°½ç®¡è¯¥è¿‡ç¨‹ä¼šæ¶ˆè€—å…¶ä»–ææ–™ä¸ºä»£ä»·ã€‚" + }, + { + "type": "patchouli:spotlight", + "advancement": "spectrum:collect_star_fragment", + "title": "星尘", + "item": "spectrum:stardust", + "text": "ä¸€ç§æ¥æºä¸æ˜Žï¼Œä½†è¢«æµæ˜Ÿçš„çµé­‚所ç¥ç¦çš„粉末。$(br)别对其感到为难,因为它们蕴è—ç€æ½œåœ¨çš„能é‡ã€‚" + }, + { + "type": "spectrum:fusion_shrine_crafting", + "advancement": "spectrum:collect_all_shooting_star_variants", + "title": "ç¡¬åŒ–æµæ˜Ÿ", + "recipe": "spectrum:fusion_shrine/shooting_star_hardening", + "text": "çŽ°åœ¨ä½ å·²ç»æ”¶é›†åˆ°æ‰€æœ‰ç§ç±»çš„æµæ˜Ÿäº†ï¼Œæ˜¯æ—¶å€™è®©å®ƒä»¬æ›´åŠ ç»“å®žè€ç”¨äº†ï¼å¯¹ç€æµæ˜Ÿä½¿ç”¨é’»çŸ³ä»¥å°†å…¶ç¡¬åŒ–,这样它们在å—到撞击时就ä¸ä¼šè£‚开了。$(br2)$(italic)想è¦å’Œä½ çš„好å‹ä»¬æ¥ä¸€åœºè¸¢æ˜Ÿçƒæ¯”èµ›å—?" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/storm_stones.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/storm_stones.json new file mode 100644 index 0000000000..167de0f534 --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/storm_stones.json @@ -0,0 +1,22 @@ +{ + "name": "风暴石", + "advancement": "spectrum:midgame/collect_storm_stone", + "icon": "spectrum:storm_stone", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:storm_stone": 0 + }, + "pages": [ + { + "type": "patchouli:text", + "title": "é›·æš´", + "text": "雷暴是大自然强而有力的体现。$(br)使用$(l:general/fusion_shrine)èžåˆç¥žé¾›$(),你还å¯ä»¥åœ¨åˆæˆä¸€äº›å¾ˆæœ‰æ•ˆæžœçš„èµ„æºæ—¶å¯åŠ¨å®ƒä»¬ã€‚$(br2)毫无疑问,我们在这里å‘现了一些与颜料的魔力有关的东西。" + }, + { + "type": "patchouli:spotlight", + "title": "风暴石", + "item": "spectrum:storm_stone", + "text": "在被雷击的地é¢ä¸Šï¼Œä½ ä¼šå‘现这些石头由于其自带的é™ç”µè€Œåœ¨ä½ çš„æ‰‹ä¸ŠæŒ¯åŠ¨ã€‚$(br)在$(l:general/fusion_shrine)èžåˆç¥žé¾›$()中,你å¯ä»¥ä½¿ç”¨å®ƒä»¬æ¥å¬å”¤é›·é›¨ã€‚$(br2)$(italic)ç„¶è€Œç”±äºŽå…¶æ˜“æŒ¥å‘æ€§ï¼Œå®ƒä»¬å¯¹çˆ†ç‚¸çš„å应ä¸å¤ªå¥½..." + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/stratine.json b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/stratine.json new file mode 100644 index 0000000000..ade10a4a2f --- /dev/null +++ b/src/main/resources/data/spectrum/patchouli_books/guidebook/zh_cn/entries/resources/stratine.json @@ -0,0 +1,41 @@ +{ + "name": "Stratine", + "advancement": "spectrum:midgame/collect_stratine", + "icon": "spectrum:stratine_fragments", + "category": "spectrum:resources_category", + "extra_recipe_mappings": { + "spectrum:stratine_ore": 0, + "spectrum:stratine_fragments": 0, + "spectrum:stratine_gem": 0, + "spectrum:stratine_fragment_block": 0 + }, + "pages": [ + { + "type": "patchouli:spotlight", + "title": "Stratine", + "item": "spectrum:stratine_fragments", + "text": "è¿™ç§éžå¸¸æ²‰é‡çš„矿石散è½åœ¨ä¸‹ç•Œæ·±å¤„。$(br)一次性æºå¸¦å¤§é‡çš„è¿™ç§çŸ¿çŸ³å›žå®¶å¹¶éžæ˜¯ä¸€ä¸ªå¥½çš„主æ„。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Stratineå®çŸ³", + "advancement": "spectrum:hidden/collect_stratine_gem", + "recipe": "spectrum:pedestal/tier3/stratine_gem", + "text": "你很少能挖出一å—完整的这ç§çŸ³å¤´ï¼Œä½¿ç”¨å…¶ç¢Žç‰‡ç›´æŽ¥ç”¨äºŽé…方还ä¸è¶³å¤Ÿã€‚ä¸è¿‡ä½ å¯ä»¥å°†è¿™äº›ç¢Žç‰‡æ‹¼åˆåœ¨ä¸€èµ·ã€‚" + }, + { + "type": "patchouli:spotlight", + "title": "Stratineæµ®å—", + "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "item": "spectrum:stratine_fragment_block", + "text": "ä½ å¯èƒ½å·²ç»æ³¨æ„到,Stratine正如其å称一样,是一ç§å¾ˆæ²‰é‡çš„金属,并且也很难被塑形,å³ä½¿æ˜¯ä¸‹ç•Œçš„炽热也ä¸èƒ½å°†å…¶ç†”化。$(br2)然而,使用$(l:general/pedestal)七彩基座$(),你ä¾ç„¶æœ‰åŠžæ³•æ¥è½»è€Œæ˜“举的为其塑形。" + }, + { + "type": "spectrum:pedestal_crafting", + "title": "Pedestal Recipe", + "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "recipe": "spectrum:pedestal/tier1/compacting/stratine_fragment_block", + "text": "$(italic)相当é‡çš„金属" + } + ] +} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/creating_life_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/creating_life_category.json deleted file mode 100644 index c4c03c7332..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/creating_life_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Creating Life", - "description": "Living every biologists dream: Your journey of creating life.", - "icon": "spectrum:bottle_of_fading", - "sortnum": 7 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/dimension_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/dimension_category.json deleted file mode 100644 index 940c7410a7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/dimension_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Beneath the Bedrock", - "description": "Your personal Journey to the Center of the World.", - "icon": "minecraft:bedrock", - "sortnum": 10 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/enchanting_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/enchanting_category.json deleted file mode 100644 index c521ddf317..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/enchanting_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Enchanting", - "description": "Everything you need for improving your tools and weapons.", - "icon": "spectrum:enchanter", - "sortnum": 8 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/hints_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/hints_category.json deleted file mode 100644 index 5f53b68dda..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/hints_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Progression Hints", - "description": "If you are stuck and do not know how to progress further you may unlock some hints here.$(br2)Consider this section non-canon.$(br) ~DaFuqs", - "icon": "minecraft:writable_book", - "sortnum": 12 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magic_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magic_category.json deleted file mode 100644 index 8d2a78a18a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magic_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Ink Magic", - "description": "The elemental spirits are calling out to you.", - "icon": "spectrum:pigment_palette", - "sortnum": 11 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magical_items_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magical_items_category.json deleted file mode 100644 index c390d77e2d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/magical_items_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Magical Items", - "description": "A number of wearable devices you thought up to make your life easier.", - "icon": "spectrum:natures_staff", - "sortnum": 5 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/mod_integration_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/mod_integration_category.json deleted file mode 100644 index f0e5ade85b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/mod_integration_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Mod Integration", - "description": "All the additional functionality & recipes you discovered by getting proficient in other mods.", - "icon": "minecraft:knowledge_book", - "sortnum": 13 -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/pastel_network_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/pastel_network_category.json deleted file mode 100644 index 2cc6642e38..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/pastel_network_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Pastel Network", - "description": "Wireless Item Transfer using Pigment", - "icon": "spectrum:provider_node", - "sortnum": 9 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/redstone_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/redstone_category.json deleted file mode 100644 index 7500bc11cc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/redstone_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Redstone Components", - "description": "As soon as you held the first gemstone in your hands, you noticed the shards reacting to even the smallest change in their environment.$(br)You can take advantage of these properties by using them in new constructions and connecting those to your primitive dust lines.", - "icon": "minecraft:redstone", - "sortnum": 4 -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/resources_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/resources_category.json deleted file mode 100644 index 2f5558ca71..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/categories/resources_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Resources", - "description": "Scattered around the world are various plants and ores, just waiting to get discovered. If you notice them, that is.$(br)The more familiar you are with the magic that comes from the world, the more of them you are able to glimpse.", - "icon": "spectrum:sparklestone_ore", - "sortnum": 1 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/failing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/failing.json deleted file mode 100644 index efe606d94a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/failing.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "Experiment #2: Failing", - "icon": "spectrum:bottle_of_failing", - "advancement": "spectrum:progression/unlock_bottle_of_failing", - "category": "spectrum:creating_life_category", - "turnin": "spectrum:midgame/collect_neolith", - "extra_recipe_mappings": { - "spectrum:bottle_of_failing": 0, - "spectrum:neolith": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:bottle_of_failing", - "text": "Empowered by the potent energy of your Onyx and Stratine, this second organism is clearly... more active than your last creation.$(br2)$(bold)And DEFINITELY hungrier.$(br)WAY hungrier." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/bottle_of_failing", - "text": "Maybe one of the strongest materials you know can satisfy their hunger?" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/collect_neolith", - "title": "Neolith", - "anchor": "neolith", - "item": "spectrum:neolith", - "text": "The obsidian was literally pulverized by your experiment. This is what you call power!$(br2)The result was this sturdy reagent." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/mob_heads.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/mob_heads.json deleted file mode 100644 index 8b3a77c942..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/mob_heads.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "name": "Mob Heads", - "advancement": "spectrum:progression/enchantments/treasure_hunter", - "icon": "minecraft:wither_skeleton_skull", - "category": "spectrum:creating_life_category", - "extra_recipe_mappings": { - "spectrum:axolotl_blue_head": 0, - "spectrum:axolotl_brown_head": 0, - "spectrum:axolotl_cyan_head": 0, - "spectrum:axolotl_gold_head": 0, - "spectrum:axolotl_leucistic_head": 0, - "spectrum:bat_head": 0, - "spectrum:bee_head": 0, - "spectrum:blaze_head": 0, - "spectrum:cat_head": 0, - "spectrum:cave_spider_head": 0, - "spectrum:chicken_head": 0, - "spectrum:clownfish_head": 0, - "spectrum:cow_head": 0, - "spectrum:donkey_head": 0, - "spectrum:drowned_head": 0, - "spectrum:elder_guardian_head": 0, - "spectrum:enderman_head": 0, - "spectrum:endermite_head": 0, - "spectrum:evoker_head": 0, - "spectrum:fox_head": 0, - "spectrum:fox_arctic_head": 0, - "spectrum:ghast_head": 0, - "spectrum:glow_squid_head": 0, - "spectrum:goat_head": 0, - "spectrum:guardian_head": 0, - "spectrum:hoglin_head": 0, - "spectrum:horse_head": 0, - "spectrum:husk_head": 0, - "spectrum:illusioner_head": 0, - "spectrum:iron_golem_head": 0, - "spectrum:llama_head": 0, - "spectrum:magma_cube_head": 0, - "spectrum:mooshroom_red_head": 0, - "spectrum:mooshroom_brown_head": 0, - "spectrum:mule_head": 0, - "spectrum:ocelot_head": 0, - "spectrum:panda_head": 0, - "spectrum:parrot_blue_head": 0, - "spectrum:parrot_cyan_head": 0, - "spectrum:parrot_gray_head": 0, - "spectrum:parrot_green_head": 0, - "spectrum:parrot_red_head": 0, - "spectrum:phantom_head": 0, - "spectrum:pig_head": 0, - "spectrum:piglin_head": 0, - "spectrum:polar_bear_head": 0, - "spectrum:pufferfish_head": 0, - "spectrum:rabbit_head": 0, - "spectrum:ravager_head": 0, - "spectrum:salmon_head": 0, - "spectrum:sheep_black_head": 0, - "spectrum:sheep_blue_head": 0, - "spectrum:sheep_brown_head": 0, - "spectrum:sheep_cyan_head": 0, - "spectrum:sheep_gray_head": 0, - "spectrum:sheep_green_head": 0, - "spectrum:sheep_light_blue_head": 0, - "spectrum:sheep_light_gray_head": 0, - "spectrum:sheep_lime_head": 0, - "spectrum:sheep_magenta_head": 0, - "spectrum:sheep_orange_head": 0, - "spectrum:sheep_pink_head": 0, - "spectrum:sheep_purple_head": 0, - "spectrum:sheep_red_head": 0, - "spectrum:sheep_white_head": 0, - "spectrum:sheep_yellow_head": 0, - "spectrum:shulker_black_head": 0, - "spectrum:shulker_blue_head": 0, - "spectrum:shulker_brown_head": 0, - "spectrum:shulker_cyan_head": 0, - "spectrum:shulker_gray_head": 0, - "spectrum:shulker_green_head": 0, - "spectrum:shulker_light_blue_head": 0, - "spectrum:shulker_light_gray_head": 0, - "spectrum:shulker_lime_head": 0, - "spectrum:shulker_magenta_head": 0, - "spectrum:shulker_orange_head": 0, - "spectrum:shulker_pink_head": 0, - "spectrum:shulker_purple_head": 0, - "spectrum:shulker_red_head": 0, - "spectrum:shulker_white_head": 0, - "spectrum:shulker_yellow_head": 0, - "spectrum:silverfish_head": 0, - "spectrum:slime_head": 0, - "spectrum:snow_golem_head": 0, - "spectrum:spider_head": 0, - "spectrum:squid_head": 0, - "spectrum:stray_head": 0, - "spectrum:strider_head": 0, - "spectrum:trader_llama_head": 0, - "spectrum:turtle_head": 0, - "spectrum:vex_head": 0, - "spectrum:villager_head": 0, - "spectrum:vindicator_head": 0, - "spectrum:wandering_trader_head": 0, - "spectrum:witch_head": 0, - "spectrum:wither_head": 0, - "spectrum:wolf_head": 0, - "spectrum:zoglin_head": 0, - "spectrum:zombie_villager_head": 0, - "spectrum:zombified_piglin_head": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Mob Heads", - "item": "spectrum:cow_head", - "text": "Using your new $(l:enchanting/treasure_hunter)Treasure Hunter$(/l) enchantment you are able to collect heads from all kinds of mobs.$(br)While they make for a nice display of your modest acquisitions they still inherit a small spark of that creatures existence." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/ruin.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/ruin.json deleted file mode 100644 index d2682840b5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/ruin.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "Experiment #3: Ruin", - "icon": "spectrum:bottle_of_ruin", - "advancement": "spectrum:progression/unlock_bottle_of_ruin", - "category": "spectrum:creating_life_category", - "turnin": "spectrum:midgame/break_decayed_bedrock", - "extra_recipe_mappings": { - "spectrum:bottle_of_ruin": 0, - "spectrum:bedrock_dust": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:bottle_of_ruin", - "text": "This is it. The perfection of your recipe. You won't even make it subtle. This stuff is $(#ff0000)NASTY$() by design, you didn't call it that for the fun of it.$(br)This may be the one thing aggressive enough to destroy even materials previously deemed unbreakable.$(br)$(bold)If you are not careful you may ruin the world. Literally.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/bottle_of_ruin", - "text": "You may not have created such lives as you initially imagined, but you still created something clearly powerful. Guess that counts?" - }, - { - "type": "patchouli:text", - "advancement": "spectrum:midgame/break_decayed_bedrock", - "title": "A Friendly Reminder", - "text": "Should you be reading your notes here while some of that stuff is still roaming around free, you should change that as soon as possible otherwise you WILL regret it.$(br2)Luckily you already invented a $(l:creating_life/decay_away)suitable counteragent$(/l)." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/break_decayed_bedrock", - "title": "Bedrock Dust", - "item": "spectrum:bedrock_dust", - "text": "Even Bedrock was not strong enough to withstand your newly created \"life\". It broke through the Bedrock like dandelions through concrete." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:midgame/break_decayed_bedrock", - "title": "Bedrock Blocks", - "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_storage_block", - "text": "The chunks of Bedrock are so sturdy, that a normal Crafting Table can't handle it. But using your $(l:general/pedestal)Pigment Pedestal$(/l) handles it no problem." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:midgame/break_decayed_bedrock", - "title": "Converting back", - "recipe": "spectrum:pedestal/tier3/bedrock/bedrock_storage_block_uncrafting", - "text": "These seem so sturdy, not even a Wither may be able to break them.$(br2)Of course you are also able to convert it back again." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/spawner_manipulation.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/spawner_manipulation.json deleted file mode 100644 index 2bcd6c0eb4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/creating_life/spawner_manipulation.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Spawner Manipulation", - "advancement": "spectrum:milestones/unlock_spawner_manipulation", - "icon": "spectrum:spawner", - "secret": true, - "category": "spectrum:creating_life_category", - "extra_recipe_mappings": { - "minecraft:spawner": 0, - "spectrum:spawner": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Harvesting Spawners", - "item": "spectrum:resonant_pickaxe", - "text": "The $(l:enchanting/resonance)Resonance$(/l) enchantment enables you to get Spawners to drop, to be collected by you.$(br2)While you haven't yet figured out how to make these constructs yourself, you now feel more than capable of changing their properties in your favor, using the $(l:creating_life/spirit_instiller)Spirit Instiller$(/l)." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "Changing Creature", - "recipe": "spectrum:spirit_instiller/spawner/spawner_creature_change", - "text": "Using a similar technique to $(l:creating_life/memory)remembering Memories$(/l) you can change the Spawners creature association, making it spew out another type of creature alltogether." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "Spawn Delay", - "recipe": "spectrum:spirit_instiller/spawner/spawner_spawn_delay_change", - "text": "Lowers both min and max spawn delay." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "Spawn Count", - "recipe": "spectrum:spirit_instiller/spawner/spawner_spawn_count_change", - "text": "Increases the count of Creatures summoned with each cycle." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "Summoning Criteria", - "recipe": "spectrum:spirit_instiller/spawner/spawner_max_nearby_entities_change", - "text": "Increases the number of creatures allowed to be close to the spawner.$(br)$(italic)Spawners seem to naturally stop spawning creatures when there are a lot of them close-by already. Almost like they want to give you a chance. Pathetic, isn't it? As if you would need that." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "Activation Range", - "recipe": "spectrum:spirit_instiller/spawner/spawner_required_player_range_change", - "text": "Increases the range you can stand for the spawner to still spawn creatures." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/banner_patterns.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/banner_patterns.json deleted file mode 100644 index f97799452a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/banner_patterns.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Banner Patterns", - "icon": "spectrum:amethyst_shard_banner_pattern", - "advancement": "spectrum:spectrum", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:logo_banner_pattern": 0, - "spectrum:amethyst_shard_banner_pattern": 0, - "spectrum:amethyst_cluster_banner_pattern": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Banner Patterns", - "border": true, - "images": [ - "spectrum:textures/gui/manual/banners.png" - ], - "text": "Resources and tools you come across can be used directly in the Loom as patterns." - }, - { - "type": "patchouli:crafting", - "title": "Vanilla Patterns", - "recipe": "spectrum:crafting_table/banner_patterns/amethyst_cluster_banner_pattern", - "recipe2": "spectrum:crafting_table/banner_patterns/amethyst_shard_banner_pattern" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/block_variants.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/block_variants.json deleted file mode 100644 index e30847dda5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/block_variants.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "name": "Block Variants", - "advancement": "spectrum:spectrum", - "icon": "spectrum:chiseled_polished_basalt", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:polished_basalt": 0, - "spectrum:polished_calcite": 0, - "spectrum:polished_basalt_slab": 0, - "spectrum:polished_calcite_slab": 0, - "spectrum:polished_basalt_stairs": 0, - "spectrum:polished_calcite_stairs": 0, - "spectrum:polished_basalt_pillar": 0, - "spectrum:polished_calcite_pillar": 0, - "spectrum:polished_basalt_crest": 0, - "spectrum:polished_calcite_crest": 0, - "spectrum:chiseled_polished_basalt": 0, - "spectrum:chiseled_polished_calcite": 0, - "spectrum:notched_polished_basalt": 0, - "spectrum:notched_polished_calcite": 0, - "spectrum:polished_basalt_wall": 0, - "spectrum:polished_calcite_wall": 0, - "spectrum:basalt_bricks": 0, - "spectrum:calcite_bricks": 0, - "spectrum:basalt_brick_slab": 0, - "spectrum:calcite_brick_slab": 0, - "spectrum:basalt_brick_stairs": 0, - "spectrum:calcite_brick_stairs": 0, - "spectrum:basalt_brick_wall": 0, - "spectrum:calcite_brick_wall": 0, - "spectrum:smooth_basalt_slab": 0, - "spectrum:calcite_slab": 0, - "spectrum:smooth_basalt_stairs": 0, - "spectrum:calcite_stairs": 0, - "spectrum:smooth_basalt_wall": 0, - "spectrum:calcite_wall": 0 - }, - "pages": [ - { - "type": "patchouli:smelting", - "anchor": "polished_basalt", - "title": "Polished Basalt", - "recipe": "spectrum:smelting/smooth_basalt_to_polished_basalt", - "text": "Remember the blocks that shielded your precious gemstones from external influences? Applying heat emphasizes their dark and white textures even more.$(br)When smelted, the Basalt almost turns black.$(br)Maybe they also absorbed some of the magical properties of the geodes themselves?$(br)Who knows." - }, - { - "type": "patchouli:smelting", - "anchor": "polished_calcite", - "title": "Polished Calcite", - "recipe": "spectrum:smelting/calcite_to_polished_calcite", - "text": "The bright white of Calcite may be the brightest natural color you've stumbled across, looking very clean and radiating dignity. The white Calcite is a wonderful contrast to the dark hues of Basalt.$(br2)Both Polished Basalt and Calcite can be crafted into a wide array of decoration blocks." - }, - { - "type": "patchouli:crafting", - "title": "Slabs & Stairs", - "recipe": "spectrum:crafting_table/stone_deco/polished_basalt_slab", - "recipe2": "spectrum:crafting_table/stone_deco/polished_calcite_stairs" - }, - { - "type": "patchouli:crafting", - "title": "Pillars & Crests", - "recipe": "spectrum:crafting_table/stone_deco/polished_basalt_pillar", - "recipe2": "spectrum:crafting_table/stone_deco/polished_calcite_crest" - }, - { - "type": "patchouli:crafting", - "title": "Chiseled & Notched", - "recipe": "spectrum:crafting_table/stone_deco/chiseled_polished_basalt", - "recipe2": "spectrum:crafting_table/stone_deco/notched_polished_calcite" - }, - { - "type": "patchouli:crafting", - "title": "Walls", - "recipe2": "spectrum:crafting_table/stone_deco/polished_basalt_wall" - }, - { - "type": "patchouli:crafting", - "title": "Brick & Raw Variants", - "recipe": "spectrum:crafting_table/stone_deco/basalt_brick_stairs", - "recipe2": "spectrum:crafting_table/stone_deco/calcite_slab" - }, - { - "type": "patchouli:smelting", - "title": "Smelting them back", - "recipe": "spectrum:smelting/stone_deco_unsmelting/basalt_brick_stairs_to_polished_basalt", - "recipe2": "spectrum:smelting/stone_deco_unsmelting/chiseled_polished_calcite_to_polished_calcite", - "text": "By applying heat, all blocks can be converted back to their polished versions again." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_lamps.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_lamps.json deleted file mode 100644 index 1397f7c8a4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_lamps.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "Gemstone Lamps", - "icon": "spectrum:citrine_basalt_lamp", - "advancement": "spectrum:collect_sparklestone", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:topaz_basalt_lamp": 0, - "spectrum:amethyst_basalt_lamp": 0, - "spectrum:citrine_basalt_lamp": 0, - "spectrum:onyx_basalt_lamp": 0, - "spectrum:moonstone_basalt_lamp": 0, - "spectrum:topaz_calcite_lamp": 0, - "spectrum:amethyst_calcite_lamp": 0, - "spectrum:citrine_calcite_lamp": 0, - "spectrum:onyx_calcite_lamp": 0, - "spectrum:moonstone_calcite_lamp": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:citrine_basalt_lamp", - "title": "Gemstone Lamps", - "text": "$(italic)When you set foot in the first geode, you were met with pleasant cozy glow. With your knowledge and the help of Shimmerstone, it is easy to amplify this light to create fancy lamps.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/gem_lamps/citrine_basalt_lamp", - "text": "Gemstone Lamps come in all the colors of gemstones available to you. Both $(l:decoration/block_variants#polished_basalt)Chiseled Calcite$() and $(l:decoration/block_variants#polished_calcite)Chiseled Basalt$() can be used as a base." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_runes.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_runes.json deleted file mode 100644 index 78d0d1261f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_runes.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "Gemstone Runes", - "advancement": "spectrum:create_onyx_shard", - "icon": "spectrum:citrine_chiseled_calcite", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:topaz_chiseled_basalt": 0, - "spectrum:amethyst_chiseled_basalt": 0, - "spectrum:citrine_chiseled_basalt": 0, - "spectrum:onyx_chiseled_basalt": 0, - "spectrum:moonstone_chiseled_basalt": 0, - "spectrum:topaz_chiseled_calcite": 0, - "spectrum:amethyst_chiseled_calcite": 0, - "spectrum:citrine_chiseled_calcite": 0, - "spectrum:onyx_chiseled_calcite": 0, - "spectrum:moonstone_chiseled_calcite": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Calcite and Basalt keep the energies of the gems in check as long as they completely enclose the geode, that much is certain. Sometimes, however, the energy accumulated over centuries is so strong that it tears a hole in the geode.$(br2)You recreated the whole thing in miniature. For sure your new construction holds a lot of magical energy.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/runes/topaz_chiseled_basalt_from_shards", - "text": "Come in all gemstone colors. The frame can be built out of $(l:decoration/block_variants#polished_basalt)Polished Basalt$() or $(l:decoration/block_variants#polished_calcite)Polished Calcite$()." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Alternative Recipe", - "recipe": "spectrum:pedestal/tier2/runes/amethyst_chiseled_basalt_from_cluster", - "text": "If you manage to get a hold of complete gemstone clusters the runes are much more efficient to create." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_storage_blocks.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_storage_blocks.json deleted file mode 100644 index cc1bb128ec..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/gemstone_storage_blocks.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "Gemstone Blocks", - "advancement": "spectrum:spectrum", - "icon": "spectrum:citrine_storage_block", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:topaz_storage_block": 0, - "spectrum:amethyst_storage_block": 0, - "spectrum:citrine_storage_block": 0, - "spectrum:onyx_storage_block": 0, - "spectrum:moonstone_storage_block": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Gemstone Blocks", - "text": "$(italic)The gems have an exceptionally beautiful appearance.$(br)The look of the raw gems, as you know them from the geodes, seems a little too natural for your edgier buildings. With enough resources, however, this should not be a problem.$(br2)And if you run out of gems at some point, the decoration can easily be broken up again.$()" - }, - { - "type": "patchouli:crafting", - "title": "Polished Topaz", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "recipe": "spectrum:crafting_table/storage_blocks/topaz_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/topaz_shards_from_topaz_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Polished Amethyst", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "recipe": "spectrum:crafting_table/storage_blocks/amethyst_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/amethyst_shards_from_amethyst_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Polished Citrine", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "recipe": "spectrum:crafting_table/storage_blocks/citrine_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/citrine_shards_from_citrine_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Polished Onyx", - "advancement": "spectrum:create_onyx_shard", - "recipe": "spectrum:crafting_table/storage_blocks/onyx_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/onyx_shards_from_onyx_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Polished Moonstone", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "recipe": "spectrum:crafting_table/storage_blocks/moonstone_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/moonstone_shards_from_moonstone_storage_block" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/particle_spawner.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/particle_spawner.json deleted file mode 100644 index da7842122a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/particle_spawner.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Particle Spawner", - "advancement": "spectrum:progression/unlock_particle_spawner", - "icon": "spectrum:particle_spawner", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:particle_spawner": 0, - "spectrum:creative_particle_spawner": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)The Shooting Star you picked up left a fantastic shower of particles on their way to the ground. You created the Particle Spawner to replicate this spectacle - and lots of others - yourself.$()$(br2)A chimney? Rocket launching particles? Atmospheric particle rain for your Pedestal structure? The Particle Spawner got you covered." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/particle_spawner", - "text": "In the the particle spawners GUI you are able to configure the spawned particles to your liking. Apply redstone to start the fantastic display." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/phantom_frame.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/phantom_frame.json deleted file mode 100644 index c6b2cd41af..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/phantom_frame.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "Phantom Frame", - "icon": "spectrum:invisible_item_frame", - "advancement": "spectrum:collect_sparklestone", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:invisible_item_frame": 0, - "spectrum:invisible_glow_item_frame": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Phantom Frames", - "text": "$(italic)You would like to display your most precious belongings. So far, you've always used item frames for that. But some of your exhibitions would look better if you didn't see the frame.$(br)Piece of cake, you just take advantage of the light manipulating properties of your gems." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Crafting", - "recipe": "spectrum:pedestal/tier1/invisible_item_frame", - "text": "The Phantom Frame becomes invisible as soon as you display an item in it." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Glow Phantom Frame", - "recipe": "spectrum:pedestal/tier1/invisible_glow_item_frame", - "text": "This one has another nice touch: the presented item in it shines in a bright light, making it look even more imposing." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/radiant_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/radiant_glass.json deleted file mode 100644 index 1b892be99c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/radiant_glass.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Radiant Glass", - "advancement": "spectrum:collect_sparklestone", - "icon": "spectrum:glowing_glass", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:glowing_glass": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:glowing_glass", - "title": "Radiant Glass", - "text": "$(italic)You need a way to efficiently light your shelter and other structures.$(br2)What could be better than using the luminous properties of Shimmerstone directly in your glass?$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/glowing_glass", - "text": "Radiant Glass is pretty much the opposite of Tinted Glass. The Shimmerstone used in its manufacture ensures that the glass glows from within." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/sparklestone_lights.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/sparklestone_lights.json deleted file mode 100644 index 23340f40b0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/decoration/sparklestone_lights.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "Shimmerstone Lights", - "icon": "spectrum:basalt_sparklestone_light", - "advancement": "spectrum:progression/unlock_sparklestone_lights", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:andesite_sparklestone_light": 0, - "spectrum:basalt_sparklestone_light": 0, - "spectrum:calcite_sparklestone_light": 0, - "spectrum:deepslate_sparklestone_light": 0, - "spectrum:diorite_sparklestone_light": 0, - "spectrum:granite_sparklestone_light": 0, - "spectrum:stone_sparklestone_light": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)The first nights in this new world you lit your improvised hut with torches.$(br)As atmospheric as that was, it was also one thing: primitive.$(br2)To turn away from your dark, torch-lit past, you designed lamps based on Shimmerstone.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/sparklestone_lights/basalt_sparklestone_light", - "text": "You can use Polished Basalt, Polished Calcite, Smooth Stone, Polished Deepslate, Polished Diorite, Polished Andesite or Polished Granite as a base." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/dimension.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/dimension.json deleted file mode 100644 index d90cf8c45e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/dimension.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "The Deeper Down", - "icon": "minecraft:bedrock", - "sortnum": 1, - "secret": true, - "advancement": "spectrum:midgame/__enter_dimension", - "category": "spectrum:dimension_category", - "pages": [ - { - "type": "patchouli:spotlight", - "item": "minecraft:bedrock", - "text": "$(italic)TODO" - }, - { - "type": "patchouli:text", - "title": "", - "text": "Where the sun never shines" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/getting_deeper_down.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/getting_deeper_down.json deleted file mode 100644 index dd773fd450..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/getting_deeper_down.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Getting Deeper Down", - "icon": "spectrum:bottle_of_ruin", - "sortnum": 0, - "secret": true, - "advancement": "spectrum:lategame/__spectrum_lategame", - "category": "spectrum:dimension_category", - "pages": [ - { - "type": "patchouli:text", - "text": "TODO" - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:bottle_of_ruin", - "text": "TODO" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/monstrosity.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/monstrosity.json deleted file mode 100644 index f4e34b2258..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/dimension/monstrosity.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "The Monstrosity", - "icon": "minecraft:bedrock", - "sortnum": 2, - "secret": true, - "advancement": "spectrum:lategame/__spectrum_lategame", - "category": "spectrum:dimension_category", - "pages": [ - { - "type": "patchouli:text", - "title": "There is something lurking in the dark", - "text": "$(italic)Watch out not getting shredded and devoured by this monstrosity. Always present, always lurking. Just waiting for the right time to strike.$()" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/creating_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/creating_enchanted_books.json deleted file mode 100644 index 875cc8303d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/creating_enchanted_books.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Creating Books", - "icon": "minecraft:enchanted_book", - "priority": true, - "sortnum": 2, - "advancement": "spectrum:midgame/enter_liquid_crystal", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "Using $(l:general/pigment)Pigment$(/l), selected ingredients and some experience the $(l:enchanting/enchanter)Enchanter$(/l) enables you to add Enchantments to regular Books.$(br2)While this process consumes more experience than enchanting in a common Enchanting Table you have granular control about which Enchantment you want to create." - }, - { - "type": "patchouli:image", - "images": [ - "spectrum:textures/gui/manual/creating_enchanted_books.png" - ], - "border": true, - "text": "$(italic)Maybe you could even make use of this process to enchant your magical tools." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/curse_of_the_void.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/curse_of_the_void.json deleted file mode 100644 index fdabecd72a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/curse_of_the_void.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Curse of the Void", - "icon": "minecraft:wooden_pickaxe", - "advancement": "spectrum:progression/tools/unlock_voiding_pickaxe", - "flag": "spectrum:enchantment_exists_spectrum_voiding", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Your tools with this enchantment seem to dissolve all things they mine into thin air. Broken down into the finest sand and blown away by the wind.$(br2)For this one time, however, when you want to knock half a city out of rough stone, it might even come in handy. Some things are probably curse and blessing at the same time." - }, - { - "type": "patchouli:spotlight", - "title": "Characteristics", - "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "text": "Destroys the drops of all broken blocks.$(br2)Max Level: 1$(br)Applicable to mining tools." - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Enchanter Recipe", - "recipe": "spectrum:enchanter/spectrum_books/book_voiding", - "advancement": "spectrum:progression/enchantments/voiding", - "text": "You can infuse a common Book with Curse of the Void by surrounding your Enchanter with Pigment and the other required materials." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/enchanting_items.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/enchanting_items.json deleted file mode 100644 index c552a1733a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/enchanting_items.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Spectrum Enchanting", - "icon": "spectrum:enchanter", - "priority": true, - "sortnum": 1, - "advancement": "spectrum:midgame/enter_liquid_crystal", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Spectrum Enchanting", - "text": "Using the Enchanter to enchant items is fairly easy:$(br)Place Enchanted Books, onto the $(l:decoration/item_bowl)Item Bowls$(/l) and the item you want to enchant on the Enchanter itself.$(br2)Unlike regular enchanting, this will not consume the books - but will require a far greater amount of experience instead." - }, - { - "type": "patchouli:image", - "images": [ - "spectrum:textures/gui/manual/enchanting_items.png" - ], - "border": true, - "text": "Finally supply a steady stream of experience via $(l:magical_items/knowledge_gem)Knowledge Gem$(/l) and you are set." - }, - { - "type": "patchouli:spotlight", - "item": "minecraft:enchanted_book", - "title": "Copy Enchanted Books", - "text": "You can also use this mechanism to create new Enchanted Books. Just put the Enchanted Book(s) you want to copy in the $(l:decoration/item_bowl)Item Bowls$(/l) and a simple book onto the $(l:enchanting/enchanter)Enchanter$(/l).$(br2)Because of the mundane nature of the books this will require lots of experience, though." - }, - { - "type": "patchouli:text", - "title": "Required Experience", - "text": "You estimate a value $(bold)between 50 and 200 experience in most cases per enchantment$().$(br)The rarer an enchantment is, the higher its level, the better the target item is at absorbing enchantments, and a few other factors affect this result.$(br)Interferences further increase this cost, such as enchantments that are not suitable for your target." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/pest_control.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/pest_control.json deleted file mode 100644 index 3fb4e0e2bc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/pest_control.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Pest Control", - "icon": "minecraft:iron_pickaxe", - "secret": true, - "advancement": "spectrum:progression/enchantments/pest_control", - "flag": "spectrum:enchantment_exists_spectrum_pest_control", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)You found a huge underground structure that seemed like an underground fortress of a civilization that lived far before you.$(br)Although they seemed to have technology that allowed them to open a portal to another world, they definitely should have done something about their vermin problem." - }, - { - "type": "patchouli:spotlight", - "title": "Characteristics", - "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:pest_control\", lvl: 1s}]}", - "text": "Gets rid of Silverfish when breaking Infested Blocks.$(br2)Max Level: 1$(br)Applicable to mining tools.$(br)Mutually exclusive with Resonance." - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Enchanter Recipe", - "recipe": "spectrum:enchanter/spectrum_books/book_pest_control", - "text": "You can infuse a common Book with Pest Control by surrounding your Enchanter with Pigment and the other required materials." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/resonance.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/resonance.json deleted file mode 100644 index 63a4dd9572..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/resonance.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "Resonance", - "icon": "spectrum:resonant_pickaxe", - "secret": true, - "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", - "flag": "spectrum:enchantment_exists_spectrum_resonance", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)There have always been blocks that you were very interested in, but you could never carve them out of the ground carefully enough to retrieve them flawlessly. You noticed, however, that these blocks vibrate in a similar way to the gems you've been so concerned with lately.$(br)If you hit the right frequency, you finally can hold some of them in your hands." - }, - { - "type": "patchouli:spotlight", - "title": "Characteristics", - "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", - "text": "Uses gentle vibrations to allow some blocks to drop themselves.$(br2)Max Level: 1$(br)Applicable to mining tools.$(br)Mutually exclusive with Foundry and Pest Control.$(br2)$(br2)" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Enchanter Recipe", - "advancement": "spectrum:progression/enchantments/resonance", - "recipe": "spectrum:enchanter/spectrum_books/book_resonance", - "text": "You can infuse a common Book with Resonance by surrounding your Enchanter with Pigment and the other required materials." - }, - { - "type": "patchouli:spotlight", - "title": "Native Resources", - "item": "spectrum:pure_iron", - "advancement": "spectrum:lategame/collect_pure_resource", - "text": "Breaking Ores with Resonance directly drops $(l:resources/pure_resources)Native Resources$()." - }, - { - "type": "patchouli:spotlight", - "title": "Gemstone Buds", - "item": "minecraft:medium_amethyst_bud", - "text": "The smaller gem buds are usually too fragile to be broken from their mother block.$(br2)However, if you hit the right frequency, the small bods will break from the stone almost by themselves." - }, - { - "type": "patchouli:spotlight", - "title": "Colored Leaves", - "item": "spectrum:orange_leaves", - "text": "Colored Leaves get stimulated in a way to release more saplings.$(br2)Applied to a hoe his will finally be your key to get $(l:general/colored_trees)Colored Saplings$() renewably." - }, - { - "type": "patchouli:spotlight", - "title": "Harvesting Spawners", - "item": "minecraft:spawner", - "text": "In the depths you have come across cages that seem to spit out an endless number of enemies. Which madman placed them there, what purpose they serve and whether it was really worth the effort is a mystery to you. However, you can definitely find some use for these. Whoever the maker was certainly won't miss you packing a few." - }, - { - "type": "patchouli:spotlight", - "title": "Infested Blocks", - "item": "minecraft:infested_stone_bricks", - "text": "The gentle vibrations lull the silverfish hiding in the blocks.$(br2)You can pack up the blocks including the silverfish and take them with you, without them knowing what is happening to them.$(br)Sweet, sweet revenge?" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/treasure_hunter.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/treasure_hunter.json deleted file mode 100644 index c5e821f56a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/treasure_hunter.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "Treasure Hunter", - "icon": "minecraft:iron_sword", - "advancement": "spectrum:progression/enchantments/treasure_hunter", - "flag": "spectrum:enchantment_exists_spectrum_treasure_hunter", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)In a painting you have seen a fantastic creature that seems to be made of Soul Sand and Wither Skeleton Skulls. For hours you waited in a Nether Fortress, only to almost almost lose your head yourself while searching for a Wither Skeleton with a spine loose enough to drop its skull. Heads up, you never were the one to bury your head in the sand." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:cow_head", - "text": "$(italic)But then there were the Creepers! Once struck by lightning, they explode so hefty that their explosion blows the heads of his opponents right off their necks (worst case: yourself).$(br)As if struck by lightning you thought out this new enchantment using $(l:resources/lightning_stones)Storm Stones$(/l).$(br)And so Treasure Hunter was born, allowing you to collect $(l:creating_life/mob_heads)Heads from all kinds of Mobs$(/l)" - }, - { - "type": "patchouli:spotlight", - "title": "Characteristics", - "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:treasure_hunter\", lvl: 3s}]}", - "text": "Occasionally drops mob heads on kill.$(br2)Max Level: 3$(br)Applicable to melee weapons.$(br)Mutually exclusive with Looting." - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Enchanter Recipe", - "recipe": "spectrum:enchanter/spectrum_books/book_treasure_hunter", - "text": "You can infuse a common Book with Treasure Hunter by surrounding your Enchanter with Pigment and the other required materials." - }, - { - "type": "spectrum:enchanter_upgrading", - "title": "Enchantment Upgrading", - "recipe": "spectrum:enchantment_upgrade/spectrum/treasure_hunter_level_2", - "text": "Upgrading Treasure Hunter from level 1 to level 2 is fairly cheap at first.$(br)This price will quickly increase to more and more Pigment and Experience for each additional level." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/upgrading_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/upgrading_enchanted_books.json deleted file mode 100644 index acec751375..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/upgrading_enchanted_books.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Upgrading Books", - "icon": "minecraft:enchanted_book", - "priority": true, - "sortnum": 3, - "advancement": "spectrum:midgame/enter_liquid_crystal", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Enchantments and your Color Magic have a lot in common. That's why you weren't surprised when your first attempt to combine Enchanted Books with $(l:general/pigment)Pigment$(/l) was an instant success.$()$(br2)Placing an Enchanted Book onto the Enchanter, surrounding it with matching Pigment and supplying a steady stream of experience increases your books level." - }, - { - "type": "patchouli:image", - "images": [ - "spectrum:textures/gui/manual/upgrading_enchanted_books.png" - ], - "border": true, - "text": "Just try not to interrupt said process, otherwise it will stop entirely." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/vanilla_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/vanilla_enchantments.json deleted file mode 100644 index c72f621da3..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/enchanting/vanilla_enchantments.json +++ /dev/null @@ -1,280 +0,0 @@ -{ - "name": "Vanilla Enchantments", - "icon": "spectrum:multitool", - "priority": true, - "sortnum": 6, - "advancement": "spectrum:progression/enchantments/disarming", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "The Enchanter is also able to create most Enchantments you are already familiar with, using your mundane crafting table.$(br2)All Enchantments can be upgraded to higher levels, too - using the same Pigment you used for creating it." - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Aqua Affinity", - "advancement": "spectrum:progression/enchantments/vanilla_water", - "recipe": "spectrum:enchanter/vanilla_books/book_aqua_affinity", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Bane Of Arthropods", - "advancement": "spectrum:progression/enchantments/vanilla_damage", - "recipe": "spectrum:enchanter/vanilla_books/book_bane_of_arthropods", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Curse of Binding", - "advancement": "spectrum:progression/enchantments/vanilla_curses", - "recipe": "spectrum:enchanter/vanilla_books/book_binding_curse", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Blast Protection", - "advancement": "spectrum:progression/enchantments/vanilla_protection", - "recipe": "spectrum:enchanter/vanilla_books/book_blast_protection", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Channeling", - "advancement": "spectrum:progression/enchantments/vanilla_trident_channeling", - "recipe": "spectrum:enchanter/vanilla_books/book_channeling", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Depth Strider", - "advancement": "spectrum:progression/enchantments/vanilla_water", - "recipe": "spectrum:enchanter/vanilla_books/book_depth_strider", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Efficiency", - "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", - "recipe": "spectrum:enchanter/vanilla_books/book_efficiency", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Feather Falling", - "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", - "recipe": "spectrum:enchanter/vanilla_books/book_feather_falling", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Fire Aspect", - "advancement": "spectrum:progression/enchantments/vanilla_damage", - "recipe": "spectrum:enchanter/vanilla_books/book_fire_aspect", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Fire Protection", - "advancement": "spectrum:progression/enchantments/vanilla_protection", - "recipe": "spectrum:enchanter/vanilla_books/book_fire_protection", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Flame", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "recipe": "spectrum:enchanter/vanilla_books/book_flame", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Fortune", - "advancement": "spectrum:progression/enchantments/vanilla_luck", - "recipe": "spectrum:enchanter/vanilla_books/book_fortune", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Frost Walker", - "advancement": "spectrum:progression/enchantments/vanilla_treasure", - "recipe": "spectrum:enchanter/vanilla_books/book_frost_walker", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Impaling", - "advancement": "spectrum:progression/enchantments/vanilla_trident", - "recipe": "spectrum:enchanter/vanilla_books/book_impaling", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Infinity", - "advancement": "spectrum:progression/enchantments/vanilla_projectile_infinity", - "recipe": "spectrum:enchanter/vanilla_books/book_infinity", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Knockback", - "advancement": "spectrum:progression/enchantments/vanilla_damage", - "recipe": "spectrum:enchanter/vanilla_books/book_knockback", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Looting", - "advancement": "spectrum:progression/enchantments/vanilla_luck", - "recipe": "spectrum:enchanter/vanilla_books/book_looting", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Loyalty", - "advancement": "spectrum:progression/enchantments/vanilla_trident", - "recipe": "spectrum:enchanter/vanilla_books/book_loyalty", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Luck Of The Sea", - "advancement": "spectrum:progression/enchantments/vanilla_water_luck", - "recipe": "spectrum:enchanter/vanilla_books/book_luck_of_the_sea", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Lure", - "advancement": "spectrum:progression/enchantments/vanilla_water", - "recipe": "spectrum:enchanter/vanilla_books/book_lure", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Mending", - "advancement": "spectrum:progression/enchantments/vanilla_treasure", - "recipe": "spectrum:enchanter/vanilla_books/book_mending", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Multishot", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "recipe": "spectrum:enchanter/vanilla_books/book_multishot", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Piercing", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "recipe": "spectrum:enchanter/vanilla_books/book_piercing", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Power", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "recipe": "spectrum:enchanter/vanilla_books/book_power", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Projectile Protection", - "advancement": "spectrum:progression/enchantments/vanilla_protection", - "recipe": "spectrum:enchanter/vanilla_books/book_projectile_protection", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Protection", - "advancement": "spectrum:progression/enchantments/vanilla_protection", - "recipe": "spectrum:enchanter/vanilla_books/book_protection", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Punch", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "recipe": "spectrum:enchanter/vanilla_books/book_punch", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Quick Charge", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "recipe": "spectrum:enchanter/vanilla_books/book_quick_charge", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Respiration", - "advancement": "spectrum:progression/enchantments/vanilla_water", - "recipe": "spectrum:enchanter/vanilla_books/book_respiration", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Riptide", - "advancement": "spectrum:progression/enchantments/vanilla_trident", - "recipe": "spectrum:enchanter/vanilla_books/book_riptide", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Sharpness", - "advancement": "spectrum:progression/enchantments/vanilla_damage", - "recipe": "spectrum:enchanter/vanilla_books/book_sharpness", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Silk Touch", - "advancement": "spectrum:progression/enchantments/vanilla_silk_touch", - "recipe": "spectrum:enchanter/vanilla_books/book_silk_touch", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Smite", - "advancement": "spectrum:progression/enchantments/vanilla_damage", - "recipe": "spectrum:enchanter/vanilla_books/book_smite", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Soul Speed", - "advancement": "spectrum:progression/enchantments/vanilla_treasure", - "recipe": "spectrum:enchanter/vanilla_books/book_soul_speed", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Sweeping", - "advancement": "spectrum:progression/enchantments/vanilla_damage", - "recipe": "spectrum:enchanter/vanilla_books/book_sweeping", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Thorns", - "advancement": "spectrum:progression/enchantments/vanilla_protection", - "recipe": "spectrum:enchanter/vanilla_books/book_thorns", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Unbreaking", - "advancement": "spectrum:progression/enchantments/vanilla_unbreaking", - "recipe": "spectrum:enchanter/vanilla_books/book_unbreaking", - "text": "" - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Curse of Vanishing", - "advancement": "spectrum:progression/enchantments/vanilla_curses", - "recipe": "spectrum:enchanter/vanilla_books/book_vanishing_curse", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/ancient_ruins.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/ancient_ruins.json deleted file mode 100644 index daab870dcb..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/ancient_ruins.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "Ancient Ruins", - "icon": "spectrum:preservation_controller", - "advancement": "spectrum:find_ancient_ruins", - "sortnum": 14, - "turnin": "spectrum:hidden/generate_every_ancient_ruins_loot", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:preservation_stone": 0, - "spectrum:preservation_controller": 0, - "spectrum:powder_chiseled_preservation_stone": 0, - "spectrum:dike_chiseled_preservation_stone": 0, - "spectrum:treasure_chest": 0, - "spectrum:preservation_glass": 0, - "spectrum:tinted_preservation_glass": 0, - "spectrum:dike_gate": 0, - "spectrum:dike_gate_fountain": 0, - "spectrum:courier_statue": 0, - "spectrum:preservation_bricks": 0, - "spectrum:shimmering_preservation_bricks": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Ancient Ruins", - "item": "spectrum:preservation_controller", - "text": "Deep underground you found this outlandish structure, which seems to be build from immensely sturdy stone. Whoever constructed them seemed to have knowledge way beyond your understanding.$(br)There has to be a way to get in there! If not now, then later... better keep the location in mind." - }, - { - "type": "patchouli:text", - "title": "A Challenge?", - "advancement": "spectrum:generate_ancient_ruins_loot", - "text": "Until now, you thought you were alone in your creative endeavour with the gems and pigments. From the looks of it, you were wrong. So very, very wrong.$(br)Whoever built these structures, they obviously followed the same path as you, but were miles ahead.$(br)Still, anyway. You accept the challenge, of course. You have one huge advantage:$(br2)$(italic)YOU are still alive." - }, - { - "type": "patchouli:image", - "title": "A protected Entrance", - "advancement": "spectrum:enter_ancient_ruins", - "images": [ - "spectrum:textures/gui/manual/ancient_ruins.png" - ], - "border": true, - "text": "A strong, magical forcefield. Wearing $(l:magical_items/azure_dike_equipment)Azure Dike equipment$(/l) allowed you to enter." - }, - { - "type": "patchouli:image", - "title": "Color Combinations", - "advancement": "spectrum:enter_color_mixing_puzzle_structure", - "images": [ - "spectrum:textures/gui/manual/color_mixing_puzzle_structure.png" - ], - "border": true, - "text": "It was all so clear, in the end! You had it $(l:general/color_mixing)laid all out already$(/l)." - }, - { - "type": "patchouli:image", - "title": "Short Wired", - "advancement": "spectrum:enter_wireless_redstone_puzzle_structure", - "images": [ - "spectrum:textures/gui/manual/wireless_redstone_puzzle_structure.png" - ], - "border": true, - "text": "A really weird one. Having some colors at hand helped a lot." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/anvil_crushing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/anvil_crushing.json deleted file mode 100644 index 9dcaaec14b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/anvil_crushing.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Item Crushing", - "icon": "minecraft:anvil", - "sortnum": 4, - "advancement": "spectrum:place_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:collect_gemstone_powder", - "pages": [ - { - "type": "patchouli:image", - "title": "Item Crushing", - "images": [ - "spectrum:textures/gui/manual/anvil_crushing.png" - ], - "border": true, - "text": "$(italic)\"To create something new$(br)you have to go the way of destruction\" - someone" - }, - { - "type": "patchouli:text", - "text": "Until now you primarily used your anvil to repair and upgrade your tools. Such a heavy object as an anvil can be of much more use, though! Why not use it to crush things into dust by sheer force? Like the skulls of your enemies... or items. Yeah, that's probably better.$(br2)You can use Item Crushing to crush $(l:general/shards)Gemstone Shards$() into $(l:general/gemstone_powder)powder$().$(br2)$(italic)Tip: The further the anvil falls, the better." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/color_mixing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/color_mixing.json deleted file mode 100644 index 26c839f507..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/color_mixing.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Color Mixing", - "icon": "minecraft:light_blue_dye", - "sortnum": 6, - "advancement": "spectrum:collect_vegetal", - "category": "spectrum:general_category", - "turnin": "spectrum:craft_colored_sapling", - "pages": [ - { - "type": "patchouli:image", - "title": "Color Mixing", - "images": [ - "spectrum:textures/gui/manual/color_mixing.png" - ], - "text": "By using the base colors $(c_cyan)Cyan$(), $(c_magenta)Magenta$() and $(c_yellow)Yellow$(), (almost) every color can be created." - }, - { - "type": "patchouli:text", - "text": "Your attempts trying to mix $(l:general/gemstone_powder)Gemstone Powder$(/l) directly were not very successful. But you have another idea now:$(br)The closeness of your gemstones to nature suggests that $(italic)nature$() must be both source and answer!$(br2)Quickly you scribble a few notes and $(l:general/colored_trees)out tumbles a recipe$(), which looks very promising." - }, - { - "type": "patchouli:text", - "title": "Creating Brown Pigment", - "text": "You tried and tried. You could not figure out a way to create brown color by mixing your gemstone dust. The closest you came was merely a washed out orange - yuck.$(br)It can't be THAT hard. Like... $(c_brown)dirt is brown$() and it is the most common stuff around.$(br2)There has to be a way...$(br)and you are pretty sure $(c_black)Black$() is the answer." - }, - { - "type": "patchouli:link", - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "text": "$(br2)$(br2)$(br2)$(br)$(italic)Seriously, look it up! The way we perceive brown is fascinating!$()", - "url": "https://www.youtube.com/watch?v=wh4aWZRtTwU", - "link_text": "Brown is weird" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/colored_trees.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/colored_trees.json deleted file mode 100644 index 8f099bb2a4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/colored_trees.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "name": "Colored Trees", - "icon": "spectrum:red_sapling", - "sortnum": 7, - "advancement": "spectrum:collect_vegetal", - "turnin": "spectrum:craft_colored_sapling", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:black_sapling": 0, - "spectrum:blue_sapling": 0, - "spectrum:brown_sapling": 0, - "spectrum:cyan_sapling": 0, - "spectrum:gray_sapling": 0, - "spectrum:green_sapling": 0, - "spectrum:light_blue_sapling": 0, - "spectrum:light_gray_sapling": 0, - "spectrum:lime_sapling": 0, - "spectrum:magenta_sapling": 0, - "spectrum:orange_sapling": 0, - "spectrum:pink_sapling": 0, - "spectrum:purple_sapling": 0, - "spectrum:red_sapling": 0, - "spectrum:white_sapling": 0, - "spectrum:yellow_sapling": 0, - "spectrum:black_log": 0, - "spectrum:blue_log": 0, - "spectrum:brown_log": 0, - "spectrum:cyan_log": 0, - "spectrum:gray_log": 0, - "spectrum:green_log": 0, - "spectrum:light_blue_log": 0, - "spectrum:light_gray_log": 0, - "spectrum:lime_log": 0, - "spectrum:magenta_log": 0, - "spectrum:orange_log": 0, - "spectrum:pink_log": 0, - "spectrum:purple_log": 0, - "spectrum:red_log": 0, - "spectrum:white_log": 0, - "spectrum:yellow_log": 0, - "spectrum:black_leaves": 0, - "spectrum:blue_leaves": 0, - "spectrum:brown_leaves": 0, - "spectrum:cyan_leaves": 0, - "spectrum:gray_leaves": 0, - "spectrum:green_leaves": 0, - "spectrum:light_blue_leaves": 0, - "spectrum:light_gray_leaves": 0, - "spectrum:lime_leaves": 0, - "spectrum:magenta_leaves": 0, - "spectrum:orange_leaves": 0, - "spectrum:pink_leaves": 0, - "spectrum:purple_leaves": 0, - "spectrum:red_leaves": 0, - "spectrum:white_leaves": 0, - "spectrum:yellow_leaves": 0, - "spectrum:black_planks": 0, - "spectrum:blue_planks": 0, - "spectrum:brown_planks": 0, - "spectrum:cyan_planks": 0, - "spectrum:gray_planks": 0, - "spectrum:green_planks": 0, - "spectrum:light_blue_planks": 0, - "spectrum:light_gray_planks": 0, - "spectrum:lime_planks": 0, - "spectrum:magenta_planks": 0, - "spectrum:orange_planks": 0, - "spectrum:pink_planks": 0, - "spectrum:purple_planks": 0, - "spectrum:red_planks": 0, - "spectrum:white_planks": 0, - "spectrum:yellow_planks": 0, - "spectrum:black_plank_stairs": 0, - "spectrum:blue_plank_stairs": 0, - "spectrum:brown_plank_stairs": 0, - "spectrum:cyan_plank_stairs": 0, - "spectrum:gray_plank_stairs": 0, - "spectrum:green_plank_stairs": 0, - "spectrum:light_blue_plank_stairs": 0, - "spectrum:light_gray_plank_stairs": 0, - "spectrum:lime_plank_stairs": 0, - "spectrum:magenta_plank_stairs": 0, - "spectrum:orange_plank_stairs": 0, - "spectrum:pink_plank_stairs": 0, - "spectrum:purple_plank_stairs": 0, - "spectrum:red_plank_stairs": 0, - "spectrum:white_plank_stairs": 0, - "spectrum:yellow_plank_stairs": 0, - "spectrum:black_plank_pressure_plate": 0, - "spectrum:blue_plank_pressure_plate": 0, - "spectrum:brown_plank_pressure_plate": 0, - "spectrum:cyan_plank_pressure_plate": 0, - "spectrum:gray_plank_pressure_plate": 0, - "spectrum:green_plank_pressure_plate": 0, - "spectrum:light_blue_plank_pressure_plate": 0, - "spectrum:light_gray_plank_pressure_plate": 0, - "spectrum:lime_plank_pressure_plate": 0, - "spectrum:magenta_plank_pressure_plate": 0, - "spectrum:orange_plank_pressure_plate": 0, - "spectrum:pink_plank_pressure_plate": 0, - "spectrum:purple_plank_pressure_plate": 0, - "spectrum:red_plank_pressure_plate": 0, - "spectrum:white_plank_pressure_plate": 0, - "spectrum:yellow_plank_pressure_plate": 0, - "spectrum:black_plank_fence": 0, - "spectrum:blue_plank_fence": 0, - "spectrum:brown_plank_fence": 0, - "spectrum:cyan_plank_fence": 0, - "spectrum:gray_plank_fence": 0, - "spectrum:green_plank_fence": 0, - "spectrum:light_blue_plank_fence": 0, - "spectrum:light_gray_plank_fence": 0, - "spectrum:lime_plank_fence": 0, - "spectrum:magenta_plank_fence": 0, - "spectrum:orange_plank_fence": 0, - "spectrum:pink_plank_fence": 0, - "spectrum:purple_plank_fence": 0, - "spectrum:red_plank_fence": 0, - "spectrum:white_plank_fence": 0, - "spectrum:yellow_plank_fence": 0, - "spectrum:black_plank_fence_gate": 0, - "spectrum:blue_plank_fence_gate": 0, - "spectrum:brown_plank_fence_gate": 0, - "spectrum:cyan_plank_fence_gate": 0, - "spectrum:gray_plank_fence_gate": 0, - "spectrum:green_plank_fence_gate": 0, - "spectrum:light_blue_plank_fence_gate": 0, - "spectrum:light_gray_plank_fence_gate": 0, - "spectrum:lime_plank_fence_gate": 0, - "spectrum:magenta_plank_fence_gate": 0, - "spectrum:orange_plank_fence_gate": 0, - "spectrum:pink_plank_fence_gate": 0, - "spectrum:purple_plank_fence_gate": 0, - "spectrum:red_plank_fence_gate": 0, - "spectrum:white_plank_fence_gate": 0, - "spectrum:yellow_plank_fence_gate": 0, - "spectrum:black_plank_button": 0, - "spectrum:blue_plank_button": 0, - "spectrum:brown_plank_button": 0, - "spectrum:cyan_plank_button": 0, - "spectrum:gray_plank_button": 0, - "spectrum:green_plank_button": 0, - "spectrum:light_blue_plank_button": 0, - "spectrum:light_gray_plank_button": 0, - "spectrum:lime_plank_button": 0, - "spectrum:magenta_plank_button": 0, - "spectrum:orange_plank_button": 0, - "spectrum:pink_plank_button": 0, - "spectrum:purple_plank_button": 0, - "spectrum:red_plank_button": 0, - "spectrum:white_plank_button": 0, - "spectrum:yellow_plank_button": 0, - "spectrum:black_plank_slab": 0, - "spectrum:blue_plank_slab": 0, - "spectrum:brown_plank_slab": 0, - "spectrum:cyan_plank_slab": 0, - "spectrum:gray_plank_slab": 0, - "spectrum:green_plank_slab": 0, - "spectrum:light_blue_plank_slab": 0, - "spectrum:light_gray_plank_slab": 0, - "spectrum:lime_plank_slab": 0, - "spectrum:magenta_plank_slab": 0, - "spectrum:orange_plank_slab": 0, - "spectrum:pink_plank_slab": 0, - "spectrum:purple_plank_slab": 0, - "spectrum:red_plank_slab": 0, - "spectrum:white_plank_slab": 0, - "spectrum:yellow_plank_slab": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Colored Trees", - "text": "You need something organic to mix your pigments. In your experiments, you could see that the roots of saplings absorb the color of the pigments with ease and develop accordingly. The energy of the gems pulses through the stem and their first few leaves already.$(br2)How will they look like when fully grown?" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Colored Saplings", - "recipe": "spectrum:pedestal/tier1/saplings/red_sapling", - "text": "Each Colored Sapling will need a different combination of $(l:general/gemstone_powder)Gemstone Powder$(), corresponding to the $(l:general/color_mixing)amount needed to mix its color$(/l)." - }, - { - "type": "patchouli:image", - "title": "Natural Generation", - "advancement": "spectrum:craft_colored_sapling", - "images": [ - "spectrum:textures/gui/manual/colored_trees.png" - ], - "text": "They existed around you all along! Who knows what else is out there?" - }, - { - "type": "patchouli:crafting", - "advancement": "spectrum:craft_colored_sapling", - "anchor": "colored_wood", - "title": "Colored Wood", - "recipe": "spectrum:crafting_table/colored_wood/light_blue_planks", - "text": "Like their non-colorful, non-magical counterparts, you can use the colored wood for Planks, Stairs, Slabs, Buttons, Pressure Plates, Fences and Fence Gates." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/fusion_shrine.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/fusion_shrine.json deleted file mode 100644 index eee9538a8e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/fusion_shrine.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "Fusion Shrine", - "icon": "spectrum:fusion_shrine_basalt", - "sortnum": 10, - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "turnin": "spectrum:build_fusion_shrine", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:fusion_shrine_basalt": 1, - "spectrum:fusion_shrine_calcite": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "For the process of creating $(l:general/onyx_shards)Black Shards$() you have developed a special construction.$(br2)You can either click or throw items and buckets onto it. You are even able to process entire stacks of fusion ingredients at once, making fusing much more efficient than with a single item per cycle." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/fusion_shrine_basalt", - "text": "Can be constructed out of Basalt or Calcite.$(br)Requires a focus structure and clear view of the sky." - }, - { - "type": "patchouli:multiblock", - "name": "Shrine Structure", - "multiblock_id": "spectrum:fusion_shrine_structure", - "enable_visualize": true, - "text": "As always you are able to switch Basalt with Calcite and choose the $(l:decoration/gemstone_storage_blocks)Gemstone Blocks$(/l) to your liking." - }, - { - "type": "patchouli:text", - "title": "Block Checklist", - "text": "$(li)1 Fusion Shrine$(li)4 Polished Gemstone Blocks$(li)4 Chiseled Polished Blocks$(li)8 Polished Pillars$(li)12 Polished Slabs$(li)77 Polished Blocks" - }, - { - "type": "patchouli:text", - "title": "Changing the Weather", - "text": "You have designed the structure for the Fusion Shrine to bundle the magical energies of $(c_cyan)Matter$(), $(c_magenta)Time$() and $(c_yellow)Energy$() and focus them on a single, central point, the Fusion Shrine itself.$(br2)These powerful bundled energies seem to even have enough power to change the weather." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Sunny Weather", - "recipe": "spectrum:fusion_shrine/weather/weather_clear", - "text": "$(italic)It's a brand new day$(br)And the sun is high$(br)All the birds are singing$(br)That you're gonna die" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Rainy Weather", - "advancement": "spectrum:collect_mermaids_gem", - "recipe": "spectrum:fusion_shrine/weather/weather_rain", - "text": "$(italic)Knock Knock$(br)Who's there?$(br)Accordion$(br)Accordion who?$(br)Accordion to the forecast, it's going to rain tonight." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Thunderstorms", - "advancement": "spectrum:midgame/collect_lightning_stone", - "recipe": "spectrum:fusion_shrine/weather/weather_thunder", - "text": "$(italic)Why did the god of thunder drink water?$(br2)Because he was thorsty." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/intro.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/intro.json deleted file mode 100644 index fe5b7c8c16..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/intro.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "Intro", - "icon": "spectrum:pedestal_basic_amethyst", - "category": "spectrum:general_category", - "sortnum": 0, - "pages": [ - { - "type": "patchouli:image", - "title": "Welcome to Spectrum!", - "images": [ - "spectrum:textures/gui/manual/spectrum.png" - ], - "border": true, - "text": "Spectrum is a full-feature mod about magic and exploration." - }, - { - "type": "patchouli:text", - "text": "Spectrum is based on color mixing of the subtractive color system (CMYK). Subtractive color mixing may be familiar to you from painting with watercolors or printing.$(br2)Spectrums main colors are represented by gemstones, found in geodes scattered around the world, with the vanilla Amethyst representing the Magenta part of the spectrum." - }, - { - "type": "patchouli:text", - "title": "Progression System", - "text": "Spectrum comes with a complex progression system where you unlock new things as you progress.$(br)As you delve deeper, you will notice changes in the world. Differences, that only you can perceive.$(br2)Everything you learn will bring you closer to your final destination: Finding out what is waiting for you beneath the impenetrable bedrock floor." - }, - { - "type": "patchouli:link", - "text": "No idea on how to progress? Take a look at this book or your advancements. These give a lot of hints on what to do next. Press the bottom center arrow to get started!$(br2)Spectrum is still in development. If you find a bug or have a suggestion, visit Spectrum's Discord or report them on GitHub.$(br)Have fun! - DaFuqs", - "url": "https://discord.com/invite/EXU9XFXT8a", - "link_text": "Spectrum's Discord" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/midnight_aberration.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/midnight_aberration.json deleted file mode 100644 index 96132846dc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/midnight_aberration.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "The Perfect Compound?", - "icon": "spectrum:midnight_aberration", - "sortnum": 13, - "advancement": "spectrum:midgame/collect_neolith", - "category": "spectrum:general_category", - "turnin": "spectrum:midgame/create_midnight_aberration", - "extra_recipe_mappings": { - "spectrum:midnight_aberration": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "The latest findings from your last experiment make you strive for more and more. Squeeze every last ounce of energy out of your gemstones.$(br2)Neolith is the key! Yes, it must be! If you combine all the stones you have collected so far with it, something must be created that holds incredible power. Alone for you and ONLY for you, master of Pigment!" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/midnight_aberration", - "text": "Fusing all those magical energies must result in an incredible source of power.$(br2)Requires daytime and a clear sky." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:midnight_aberration", - "advancement": "spectrum:midgame/create_midnight_aberration", - "title": "Midnight Aberration", - "text": "$(italic)This abomination of a Gemstone radiates an eerie aura.$()$(br2)It looks loosely connected at best. No wonder it falls apart in your hands in no time. Total failure." - }, - { - "type": "patchouli:text", - "advancement": "spectrum:midgame/create_midnight_aberration", - "text": "While the chaos that ensued $(italic)definitely$() was not the outcome you craved for, the result still does hold immense power.$(br)So much in fact, that if not used quick it crumbles into dust.$(br2)And then there is that aggressive blackish fluid that manifested in the process. Because of its color you named it $(l:magical_blocks/midnight_solution)Midnight Solution$(/l)." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/mysterious_locket.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/mysterious_locket.json deleted file mode 100644 index 53ef2a1d1e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/mysterious_locket.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "A Mysterious Locket", - "icon": "spectrum:mysterious_locket", - "advancement": "spectrum:collect_mysterious_locket", - "category": "spectrum:general_category", - "sortnum": 15, - "extra_recipe_mappings": { - "spectrum:mysterious_locket": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "A Mysterious Locket", - "item": "spectrum:mysterious_locket", - "text": "This small locket is tight shut. It features an odd crystal ornament which almost resembles a lock, softly glowing a pale white color, a shimmer reminiscent of the moon.$(br)Who knows who this once belonged to and why it was left behind." - }, - { - "type": "patchouli:text", - "text": "There seems to be something inside. It also has an engraving on it's back, but if it even resembles a language it's none you have ever seem.$(br2)$bold)Want to know what's inside? Stay tuned for the next mod update soon(tm)" - }, - { - "type": "patchouli:text", - "title": "A Challenge?", - "advancement": "spectrum:lategame/learn_dreiton", - "text": "Now that you understand Dreiton tongue, it is easy for you to decipher the inscription on the back:$(br2)$(italic)Don't be silly Asteras - the moon can't glow, it can only reflect the sun's light." - }, - { - "type": "patchouli:image", - "title": "The Locket's Contents", - "advancement": "spectrum:open_mysterious_locket", - "images": [ - "spectrum:textures/gui/manual/locket.png" - ], - "border": true, - "text": "" - }, - { - "type": "patchouli:text", - "advancement": "spectrum:open_mysterious_locket", - "text": "The locket also contained a small crystal, bearing a dimmer, yet much warmer glow than it's lock.$(br)While in the $(l:dimension/dimension)Deeper Down$(/l)it softly vibrates as you turn." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/onyx_shards.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/onyx_shards.json deleted file mode 100644 index 40423ac369..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/onyx_shards.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Creating Onyx Shards", - "icon": "spectrum:onyx_shard", - "sortnum": 11, - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "category": "spectrum:general_category", - "turnin": "spectrum:create_onyx_shard", - "extra_recipe_mappings": { - "spectrum:onyx_shard": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "To create brown Pigment you needed a way to darken an orange tone.$(br)And then it occurred to you. It's so logical when you think about it! The three gems you found correspond to the three basic colors of color theory!$(br)By mixing all three colors you can create a shard that is so dark it almost looks unreal." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/onyx_shard", - "text": "The creation of this 'blackest of blacks' in the $(l:general/fusion_shrine)Fusion Shrine$() has to be performed in a way that absolutely no unregulated light can pollute the crystal. So midnight on a new moon it is. Best to bring a clock with you." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_cmy.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_cmy.json deleted file mode 100644 index f6d257ad36..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_cmy.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Pedestal CMY Upgrade", - "icon": "spectrum:pedestal_all_basic", - "sortnum": 9, - "advancement": "spectrum:progression/unlock_cmy_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:build_basic_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_all_basic": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "CMY Variant", - "recipe": "spectrum:pedestal/tier1/pedestal_all_basic", - "text": "Upgrade your $(l:general/pedestal)Pigment Pedestal$() by using all the shards you collected on your journey." - }, - { - "type": "patchouli:text", - "title": "Pedestal Structure", - "text": "To make use of the $(l:general/pedestal)Pigment Pedestals$() advanced abilities you will need a structure to focus gemstone energy into it.$(br2)You call it the$(br)$(bold)Spectrum Focus$()." - }, - { - "type": "patchouli:multiblock", - "name": "Spectrum Focus", - "multiblock_id": "spectrum:pedestal_simple_structure_check", - "enable_visualize": true, - "text": "You can switch the basalt blocks with calcite and choose the gemstone blocks as you like it best." - }, - { - "type": "patchouli:text", - "title": "Block Checklist", - "text": "$(li)1 Pigment Pedestal$(li)4 Polished Gemstone Blocks$(li)4 Chiseled Polished Blocks$(li)4 Notched Polished Blocks$(li)8 Polished Pillars$(li)68 Polished Blocks" - }, - { - "type": "patchouli:image", - "title": "Individualize!", - "images": [ - "spectrum:textures/gui/manual/spectrum_focus_customisation.png" - ], - "text": "Mix up Basalt and Calcite up to create your personal variation!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_moonstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_moonstone.json deleted file mode 100644 index e8998a3286..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_moonstone.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "Pedestal Moonstone Upgrade", - "icon": "spectrum:pedestal_moonstone", - "sortnum": 15, - "secret": true, - "advancement": "spectrum:lategame/spectrum_lategame", - "category": "spectrum:general_category", - "turnin": "spectrum:lategame/build_complex_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_moonstone": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "Moonstone Variant", - "recipe": "spectrum:pedestal/tier3/pedestal_moonstone", - "text": "Upgrade your $(l:general/pedestal)Pigment Pedestal$() by using one of your gathered $(l:general/shards#moonstone)Moonstone Shards$()" - }, - { - "type": "patchouli:multiblock", - "name": "Spectrum Palace", - "multiblock_id": "spectrum:pedestal_complex_structure_check", - "enable_visualize": true, - "text": "You can switch the basalt blocks with calcite and also the amethyst blocks for any other gemstone block." - }, - { - "type": "patchouli:text", - "title": "Checklist (Complete)", - "text": "$(li)1 Pigment Pedestal$(li)4 Onyx Chiseled Blocks$(li)4 Notched Polished Blocks$(li)8 Gemstone Lamps$(li)4 Gemstone Chiseled Blocks$(li)12 Polished Gemstone Blocks$(li)16 CMY Gemstone Chiseled Bl.$(li)28 Moonstone Chiseled Bl.$(li)36 Polished Pillars$(li)52 Polished Crests$(li)144 Polished Blocks" - }, - { - "type": "patchouli:text", - "title": "Checklist (Upgrade)", - "text": "$(li)4 Onyx Chiseled Blocks$(li)4 Polished Gemstone Blocks$(li)28 Moonstone Chiseled Bl.$(li)36 Polished Crests" - }, - { - "type": "patchouli:image", - "title": "Individualize!", - "images": [ - "spectrum:textures/gui/manual/spectrum_complex_customisation.png" - ], - "text": "Mix them up to create your personal variation!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_onyx.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_onyx.json deleted file mode 100644 index 7e55add07b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/pedestal_upgrade_onyx.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Pedestal Onyx Upgrade", - "icon": "spectrum:pedestal_onyx", - "sortnum": 12, - "advancement": "spectrum:create_onyx_shard", - "category": "spectrum:general_category", - "turnin": "spectrum:midgame/build_advanced_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_onyx": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "Onyx Variant", - "recipe": "spectrum:pedestal/tier2/pedestal_onyx", - "text": "Upgrade your $(l:general/pedestal)Pigment Pedestal$() by using one of your $(l:general/shards#onyx)Onyx Shards$() to further increase its magical powers." - }, - { - "type": "patchouli:multiblock", - "name": "Spectrum Temple", - "multiblock_id": "spectrum:pedestal_advanced_structure_check", - "enable_visualize": true, - "text": "You can switch the basalt blocks with calcite and also the amethyst blocks for any other gemstone block." - }, - { - "type": "patchouli:text", - "title": "Checklist (Complete)", - "text": "$(li)1 Pigment Pedestal$(li)8 Polished Gemstone Blocks$(li)8 Gemstone Lamps$(li)4 Chiseled Polished Blocks$(li)16 Gemstone Chiseled Blocks$(li)16 Polished Crests$(li)4 Notched Polished Blocks$(li)36 Polished Pillars$(li)160 Polished Blocks" - }, - { - "type": "patchouli:text", - "title": "Checklist (Upgrade)", - "text": "$(li)4 Polished Gemstone Blocks$(li)8 Gemstone Lamps$(li)16 Gemstone Chiseled Blocks$(li)16 Polished Crests$(li)28 Polished Pillars$(li)92 Polished Blocks" - }, - { - "type": "patchouli:image", - "title": "Individualize!", - "images": [ - "spectrum:textures/gui/manual/spectrum_hall_customisation.png" - ], - "text": "Mix them up to create your personal variation!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/shards.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/shards.json deleted file mode 100644 index 3cf5e3aa6c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/shards.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "Gemstone Shards", - "icon": "minecraft:amethyst_shard", - "sortnum": 2, - "category": "spectrum:general_category", - "turnin": "spectrum:collect_all_basic_shards", - "extra_recipe_mappings": { - "spectrum:topaz_shard": 0, - "minecraft:amethyst_shard": 0, - "spectrum:citrine_shard": 0, - "spectrum:onyx_shard": 0, - "spectrum:moonstone_shard": 0, - "spectrum:spectral_shard": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "To start delving into Spectrum you first have to find some gemstone shards.$(br2)Each kind of gemstone represents an elemental color and a different kind of natural force." - }, - { - "type": "patchouli:spotlight", - "anchor": "topaz", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "title": "Topaz Shards", - "item": "spectrum:topaz_shard", - "text": "Topaz Shards lie surprisingly heavy in your hand. Fragile at first glance, this gemstone quickly turned out to be one of the most robust materials, which you were ever getting a hold of - perhaps only surpassed by diamond. Topaz is found in geodes at the very top of steep hills and on the tops of sky-high mountains.$(br)The Topaz represents $(bold)$(c_cyan)MATTER.$()" - }, - { - "type": "patchouli:spotlight", - "anchor": "amethyst", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "title": "Amethyst Shards", - "item": "minecraft:amethyst_shard", - "text": "Magenta light refracts in this gemstone.$(br)Formed over eons in the geodes, this gemstone radiates awe. It is a symbol of permanence and found in the deepest layers of the world.$(br2)The Amethyst represents $(bold)$(c_purple)TIME$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "citrine", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "title": "Citrine Shards", - "item": "spectrum:citrine_shard", - "text": "This yellow gemstone is found close to surface level where the suns light dissipates into warmth.$(br2)Its bright yellow luster radiates pure $(bold)$(c_yellow)ENERGY$() and makes it slightly warm to the touch at all times." - }, - { - "type": "patchouli:spotlight", - "anchor": "onyx", - "advancement": "spectrum:create_onyx_shard", - "title": "Onyx Shards", - "item": "spectrum:onyx_shard", - "text": "Onyx is almost pitch black. It almost seems as if it would even withdraw the light from its surroundings.$(br2)The Onyx, as a combination of energy, matter, and time, serves as a $(bold)$(c_black)reinforcing focus and catalyst$() for magical tools and devices." - }, - { - "type": "patchouli:spotlight", - "anchor": "moonstone", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "title": "Moonstone Shards", - "item": "spectrum:moonstone_shard", - "text": "It's bluish-white shimmer reminds you of the soothing light of the moon on a calm summer night. The tranquility it exudes leaves a calming, yet significant impression, like a sleeping cat - balm for the soul and yet a predator, always on guard.$(br2)The Moonstone embodies $(bold)$(c_white)pure magic$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "spectral", - "advancement": "spectrum:lategame/create_spectral_shard", - "title": "Spectral Shards", - "item": "spectrum:spectral_shard", - "text": "Spectral Shards shine in all colors of the rainbow." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/spectral_shard.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/spectral_shard.json deleted file mode 100644 index 869cfaab15..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/general/spectral_shard.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "Spectral Shard", - "advancement": "spectrum:lategame/spectrum_lategame", - "sortnum": 16, - "secret": true, - "icon": "spectrum:spectral_shard", - "category": "spectrum:general_category", - "turnin": "spectrum:lategame/create_spectral_shard", - "extra_recipe_mappings": { - "spectrum:spectral_shard": 0, - "spectrum:spectral_shard_block": 0, - "spectrum:spectral_shard_storage_block": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Spectral Shard", - "text": "TODO" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/spectral_shard", - "text": "TODO" - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:lategame/create_spectral_shard", - "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_block", - "text": "$(italic)Pretty!$()" - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:lategame/create_spectral_shard", - "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_storage_block", - "text": "$(italic)And you thought a beacon out of Netherite Blocks was a excessive?$()" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/fading.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/fading.json deleted file mode 100644 index f3c5f38a91..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/fading.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Experiment #1", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:craft_bottle_of_fading", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_vegetal", - "pages": [ - { - "type": "spectrum:hint", - "title": "Small Clue", - "completion_advancement": "spectrum:collect_vegetal", - "cost": "spectrum:sparklestone_gem#16", - "text": "Fading, as a small and weak organism, can only process organic blocks placed next to it, while also taking quite a while." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:sparklestone_gem#48", - "text": "Place organic blocks, like Leaves, Pumpkins or Melons next to it and wait a while. After some time the block will get consumed and replaced with a different looking Variant. Break those converted blocks to get a new Resource." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/failing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/failing.json deleted file mode 100644 index 24557469a4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/failing.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Experiment #2", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/craft_bottle_of_failing", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_neolith", - "pages": [ - { - "type": "spectrum:hint", - "title": "Small Clue", - "completion_advancement": "spectrum:midgame/collect_neolith", - "cost": "spectrum:scarlet_fragments#8", - "text": "Just like Fading, they prefer a specific block placed next to them. This time a lot more strong, though. 'I hate mining this' strong, to be precise." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:scarlet_fragments#24", - "text": "The preferred food is Obsidian. Watch out for their insatiable hunger, though. They will eat quite a lot, if given the chance..." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/lightning_stones.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/lightning_stones.json deleted file mode 100644 index 65b44d99a8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/lightning_stones.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_lightning_stones", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_lightning_stone", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:midgame/collect_lightning_stone", - "cost": "spectrum:neolith#8", - "text": "Thunderstorms are a powerful display of nature. There are tremendous energies playing." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:neolith#24", - "text": "Sometimes you are able to find weird shards at places where lightning struck. There even is a way to focus Lightning at a specific position, to make gathering them even more efficient." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/mermaids_gems.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/mermaids_gems.json deleted file mode 100644 index b35a4ff6df..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/mermaids_gems.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_mermaids_gem", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:collect_mermaids_gem", - "cost": "spectrum:onyx_shard#4", - "text": "Sometimes there are shiny gems found in oceans, floating on top of the water, getting rocked back and forth by the waves. If you spend some time near or in the ocean you may find one yourself!" - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:onyx_shard#12", - "text": "Source is a delicate flower, found at the bottom of the sea, growing in small groups. The plant emits a faint glow and if you wear an active Glow Squid helmet it sparkles, too. Wait next to it until it is fully grown and releases its precious treasure and collect it. Only after you collected that drop you can see the plant for what it is." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/midnight_chip.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/midnight_chip.json deleted file mode 100644 index b545c5ba5c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/midnight_chip.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/create_midnight_aberration", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_midnight_chip", - "pages": [ - { - "type": "spectrum:hint", - "title": "A small tip", - "completion_advancement": "spectrum:midgame/collect_midnight_chip", - "cost": "spectrum:neolith#8", - "text": "This liquid, which was created during the creation of the Midnight Aberration... it damages everything it touches." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "completion_advancement": "spectrum:midgame/collect_midnight_chip", - "cost": "spectrum:neolith#24", - "text": "Midnight Solution has various effects depending on what lands in it. Enchanted items lose their magical powers, some items change altogether and creatures killed by it drop a small mysterious fragment." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/paletur.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/paletur.json deleted file mode 100644 index 64d613fd4d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/paletur.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_paletur", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:lategame/collect_paletur", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:lategame/collect_paletur", - "cost": "spectrum:moonstone_shard#8", - "text": "There is a new turquoise ore found in the End." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:moonstone_shard#32", - "text": "This ore, that you are now able to perceive is generating at both the central island and the outer regions of the End. Catch it, before it is too late!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/resonating_ender.json deleted file mode 100644 index 263a97fe5d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/resonating_ender.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:get_ender_treasure", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:get_ender_treasure", - "cost": "minecraft:ender_pearl#4", - "text": "Not every block that an Enderman carries seems to be what is looks like at first glance." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:ender_pearl#12", - "text": "Some Endermen appear in the Overworld carrying Blocks that could very well be small relics of the End itself. You can get a hold of one by killing an Endermen while it carries what looks like Cobblestone. Endermen holding these blocks can also be found in the End, albeit more rarely." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/scarlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/scarlet.json deleted file mode 100644 index b59192a79b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/scarlet.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_scarlet", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_scarlet", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:midgame/collect_scarlet", - "cost": "minecraft:quartz#16", - "text": "There is a new Ore found in the Nether." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:quartz#48", - "text": "It generates in the lower layers of the Nether in all biomes, below lava level." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/shimmerstone.json deleted file mode 100644 index 96581ec86e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/shimmerstone.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_sparklestone", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_sparklestone", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:collect_sparklestone", - "cost": "minecraft:copper_ingot#8", - "text": "There is a new Ore to be found in the Overworld at and above surface level." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:copper_ingot#24", - "text": "It generates in all biomes in the center and upper layers of the Overworld in large veins. Most often you can find it exposed in mountains." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/stargazing.json deleted file mode 100644 index 357e5aab6c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/hints/stargazing.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/unlock_shooting_stars", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_shooting_star", - "pages": [ - { - "type": "spectrum:hint", - "title": "What to look for", - "completion_advancement": "spectrum:collect_shooting_star", - "cost": "spectrum:sparklestone_gem#8", - "text": "Shooting Stars only show up at night. Having something ready to better see them in the darkness will surely help a lot. They show up with a noticeable particle trail." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:sparklestone_gem#24", - "text": "Your best chances to see a Shooting Star are to search for it with Night Vision and a Spyglass equipped. If you see one crashing down on the earth try to trace its steps to find out where it landed. They shoot up particles like a beam." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink.json deleted file mode 100644 index 21d87f6e73..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/ink.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Ink", - "advancement": "spectrum:progression/unlock_ink_flask", - "icon": "spectrum:ink_flask", - "category": "spectrum:magic_category", - "priority": true, - "pages": [ - { - "type": "patchouli:text", - "text": "Now that you're familiar with Pigment, you see no reason to lug it around like you did in the Middle Ages. You have found a way to convert Pigment into a higher form of energy.$(br)You called it $(c_cyan)I$(c_magenta)n$(c_yellow)k$()." - }, - { - "type": "patchouli:text", - "title": "Producing & Storing", - "text": "Pigment can be converted to Ink using the $(l:magic/color_picker)Color Picker$(/l) and then extracted into containers, like $(l:magic/ink_flask)Ink Flasks$(/l).$(br2)Only drawback: deprived of it's physical form, there is no way to transform Ink back into Pigment." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/spirit_sallow.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/spirit_sallow.json deleted file mode 100644 index b4bfc1de45..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magic/spirit_sallow.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Spirit Sallow", - "advancement": "spectrum:lategame/spectrum_lategame", - "secret": true, - "icon": "spectrum:ominous_sapling", - "category": "spectrum:magic_category", - "priority": true, - "extra_recipe_mappings": { - "spectrum:ominous_sapling": 0, - "spectrum:spirit_sallow_roots": 0, - "spectrum:spirit_sallow_log": 0, - "spectrum:spirit_sallow_leaves": 0, - "spectrum:spirit_sallow_heart": 0, - - "spectrum:vibrant_cyan_catkin": 0, - "spectrum:vibrant_magenta_catkin": 0, - "spectrum:vibrant_yellow_catkin": 0, - "spectrum:vibrant_black_catkin": 0, - "spectrum:vibrant_white_catkin": 0, - "spectrum:lucid_cyan_catkin": 0, - "spectrum:lucid_magenta_catkin": 0, - "spectrum:lucid_yellow_catkin": 0, - "spectrum:lucid_black_catkin": 0, - "spectrum:lucid_white_catkin": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:ominous_sapling", - "text": "TODO" - }, - { - "type": "patchouli:text", - "advancement": "spectrum:lategame/grow_ominous_sapling", - "title": "Spirit Sallow", - "text": "TODO" - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:vibrant_cyan_catkin", - "text": "TODO" - }, - { - "type": "patchouli:text", - "title": "Lucid Catkin", - "text": "TODO" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/black_hole_chest.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/black_hole_chest.json deleted file mode 100644 index 5db0a58355..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/black_hole_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Black Hole Chest", - "advancement": "spectrum:progression/unlock_sucking_chest", - "icon": "spectrum:sucking_chest", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:sucking_chest": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)The problem with hoppers is that, on the one hand, they are not only slow, but also poorly suited for larger farms due to their non-existent range.$(br2)With a bit of application of blue pigment, all items in a large radius around the crate can easily be brought to safety." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/sucking_chest", - "text": "Black Hole Chests have a radius of 12 blocks. You can disable them by placing a block on top. It offers filters to specify which items it should accept." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/crystallarieum.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/crystallarieum.json deleted file mode 100644 index b8b8da8c79..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/crystallarieum.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "name": "Crystallarieum", - "icon": "spectrum:crystallarieum", - "secret": true, - "advancement": "spectrum:progression/unlock_crystallarieum", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:crystallarieum": 0, - - "spectrum:small_coal_bud": 0, - "spectrum:large_coal_bud": 0, - "spectrum:coal_cluster": 0, - "spectrum:small_copper_bud": 0, - "spectrum:large_copper_bud": 0, - "spectrum:copper_cluster": 0, - "spectrum:small_diamond_bud": 0, - "spectrum:large_diamond_bud": 0, - "spectrum:diamond_cluster": 0, - "spectrum:small_emerald_bud": 0, - "spectrum:large_emerald_bud": 0, - "spectrum:emerald_cluster": 0, - "spectrum:small_glowstone_bud": 0, - "spectrum:large_glowstone_bud": 0, - "spectrum:glowstone_cluster": 0, - "spectrum:small_gold_bud": 0, - "spectrum:large_gold_bud": 0, - "spectrum:gold_cluster": 0, - "spectrum:small_iron_bud": 0, - "spectrum:large_iron_bud": 0, - "spectrum:iron_cluster": 0, - "spectrum:small_lapis_bud": 0, - "spectrum:large_lapis_bud": 0, - "spectrum:lapis_cluster": 0, - "spectrum:small_netherite_bud": 0, - "spectrum:large_netherite_bud": 0, - "spectrum:netherite_cluster": 0, - "spectrum:small_prismarine_bud": 0, - "spectrum:large_prismarine_bud": 0, - "spectrum:prismarine_cluster": 0, - "spectrum:small_quartz_bud": 0, - "spectrum:large_quartz_bud": 0, - "spectrum:quartz_cluster": 0, - "spectrum:small_redstone_bud": 0, - "spectrum:large_redstone_bud": 0, - "spectrum:redstone_cluster": 0, - "spectrum:small_certus_quartz_bud": 0, - "spectrum:large_certus_quartz_bud": 0, - "spectrum:certus_quartz_cluster": 0, - "spectrum:small_fluix_bud": 0, - "spectrum:large_fluix_bud": 0, - "spectrum:fluix_cluster": 0, - "spectrum:small_globette_bud": 0, - "spectrum:large_globette_bud": 0, - "spectrum:globette_cluster": 0, - "spectrum:small_globette_end_bud": 0, - "spectrum:large_globette_end_bud": 0, - "spectrum:globette_end_cluster": 0, - "spectrum:small_globette_nether_bud": 0, - "spectrum:large_globette_nether_bud": 0, - "spectrum:globette_nether_cluster": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "With Budding Blocks in mind you designed the Crystallarieum: an ink-powered apparatus, which could automatically grow resources from raw ore or crystals on it's top.$(br)While, even after all your efforts, you could not get it to grow actual $(l:general/shards)Gemstone Shards$(/l), you quickly recognised it's potential for growing all kinds of other resources." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier4/crystallarieum", - "text": "It can fit a stack of catalysts, which it uses to enhance the growth process. For a few rare materials that even may be required." - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Iron Growing", - "recipe": "spectrum:crystallarieum/vanilla/iron", - "text": "Metallic resources can be grown by throwing unrefined materials, like $(thing)Raw Iron$() on top of it. Result is a small iron bud that steadily grows until it reaches maturity and can safely be harvested." - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Diamond Growing", - "recipe": "spectrum:crystallarieum/vanilla/diamond", - "text": "Crystal-like blocks, like $(thing)Diamonds$() can be grown, too! Albeit most requiring more Ink than metal ones, their crystal nature allows you to grow them again and again - $(thing)Diamond Clusters$() yielding $(thing)Diamonds$()." - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Copper Growing", - "recipe": "spectrum:crystallarieum/vanilla/copper", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Gold Growing", - "recipe": "spectrum:crystallarieum/vanilla/gold", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Netherite Growing", - "recipe": "spectrum:crystallarieum/vanilla/netherite", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Coal Growing", - "recipe": "spectrum:crystallarieum/vanilla/coal", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Emerald Growing", - "recipe": "spectrum:crystallarieum/vanilla/emerald", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Glowstone Growing", - "recipe": "spectrum:crystallarieum/vanilla/glowstone", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Lapis Growing", - "recipe": "spectrum:crystallarieum/vanilla/lapis", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Prismarine Growing", - "recipe": "spectrum:crystallarieum/vanilla/prismarine_crystal", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Quartz Growing", - "recipe": "spectrum:crystallarieum/vanilla/quartz", - "text": "" - }, - { - "type": "spectrum:crystallarieum_growing", - "title": "Redstone Growing", - "recipe": "spectrum:crystallarieum/vanilla/redstone", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/midnight_solution.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/midnight_solution.json deleted file mode 100644 index 4762760dc7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/midnight_solution.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "Midnight Solution", - "icon": "spectrum:midnight_solution_bucket", - "advancement": "spectrum:progression/unlock_midnight_solution", - "category": "spectrum:magical_blocks_category", - "turnin": "spectrum:midgame/collect_midnight_chip", - "extra_recipe_mappings": { - "spectrum:midnight_solution_bucket": 0, - "spectrum:midnight_chip": 0, - "spectrum:black_materia": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "You first stumbled about this bizarre liquid as a direct result of $(l:general/midnight_aberration)your failed fusion experiment$().$(br)Creatures that touch it seem to get their life drained out of them. Better not get caught in it yourself.$(br)! Creatures unalived by this cruel process seem to drop items as if they were killed by a player." - }, - { - "type": "patchouli:spotlight", - "title": "Midnight Chip", - "item": "spectrum:midnight_chip", - "advancement": "spectrum:midgame/collect_midnight_chip", - "text": "Creatures that died in that feisty liquid drop a small splinter that almost resembles a $(l:general/midnight_aberration)Midnight Aberration$(/l), just way, way smaller. Sharp-Edged and vicious. Almost as if it was that splinter in her heart that finally caused their demise." - }, - { - "type": "spectrum:potion_workshop_crafting", - "title": "Midnight Solution Bucket", - "recipe": "spectrum:potion_workshop_crafting/midnight_solution_bucket", - "advancement": "spectrum:midgame/collect_midnight_chip", - "text": "Using the exact drop that you got by killing creatures with that fluid you can create even more of it. Quite morbid, if you think about it." - }, - { - "type": "spectrum:midnight_solution_converting", - "title": "Item Conversion", - "recipe": "spectrum:midnight_solution_converting/blackstone", - "text": "Throwing some items into the liquid seems to corrupt them up to a point they turn into something else entirely." - }, - { - "type": "patchouli:text", - "title": "Disenchanting", - "text": "Even more, if you throw enchanted items into it, they will be stripped of their special abilities. All that's left is the ordinary item and a bunch of experience." - }, - { - "type": "patchouli:spotlight", - "title": "Black Materia", - "item": "spectrum:black_materia", - "advancement": "spectrum:hidden/break_black_materia", - "text": "A seemingly useless material that forms around pools of Midnight Solution." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_brewing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_brewing.json deleted file mode 100644 index 3406f46a81..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_brewing.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "Potion Works.: Brewing", - "icon": "spectrum:potion_workshop", - "advancement": "spectrum:progression/unlock_potion_workshop", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "minecraft:potion": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Brewing Potions", - "text": "Since the Potion Workshop is basically an upgraded Brewing Stand, you are able to create all the Potion variants that were available to you before, too.$(br)In addition, the possibility to use magic items as ingredients opens new doors for you.$(br2)Some of them are easier or harder to get enhanced effects from." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Vanilla Potion Variants", - "recipe": "spectrum:potion_workshop_brewing/fire_resistance", - "text": "The process of creating Potions with the same effects that you could use before use the same ingredients. Unlike using the Brewing Stand, you can use $(l:magical_blocks/potion_workshop_reagents)Reagents$(/l) to enhance their effects even further." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Absorption", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "recipe": "spectrum:potion_workshop_brewing/absorption", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Glowing", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "recipe": "spectrum:potion_workshop_brewing/glowing", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Haste", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "recipe": "spectrum:potion_workshop_brewing/haste", - "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Mining Fatigue$() instead." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Saturation", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "recipe": "spectrum:potion_workshop_brewing/saturation", - "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Hunger$() instead." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Levitation", - "advancement": "spectrum:progression/potions/unlock_levitation_potion", - "recipe": "spectrum:potion_workshop_brewing/levitation", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Luck", - "advancement": "spectrum:progression/potions/unlock_luck_potion", - "recipe": "spectrum:potion_workshop_brewing/luck", - "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Bad Luck$() instead." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Resistance", - "advancement": "spectrum:progression/potions/unlock_resistance_potion", - "recipe": "spectrum:potion_workshop_brewing/resistance", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Wither", - "advancement": "spectrum:progression/potions/unlock_wither_potion", - "recipe": "spectrum:potion_workshop_brewing/wither", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_reagents.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_reagents.json deleted file mode 100644 index 3603a6d806..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/potion_workshop_reagents.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "Potion Works.: Reagents", - "icon": "spectrum:potion_workshop", - "advancement": "spectrum:progression/unlock_potion_workshop", - "category": "spectrum:magical_blocks_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Using Reagents", - "text": "Using Mermaids Gems as a Base instead of Blaze Powder results in a much more reactive potion. Not only does this allow you to add your new range of additional magical ingredients to your Potions, but also use some of them as additional Reagent. Each of those Reagents modifies the resulting properties of your Potions. Each Reagent can only be used once per recipe." - }, - { - "type": "patchouli:spotlight", - "title": "Redstone", - "item": "minecraft:redstone", - "text": "Doubles Duration" - }, - { - "type": "patchouli:spotlight", - "title": "Glowstone", - "item": "minecraft:glowstone_dust", - "text": "Flat increase in Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Gunpowder", - "item": "minecraft:gunpowder", - "text": "Creates Splash Potions" - }, - { - "type": "patchouli:spotlight", - "title": "Dragon's Breath", - "item": "minecraft:dragon_breath", - "advancement": "spectrum:hidden/collect_vanilla/collect_dragon_breath", - "text": "Creates Lingering Potions - also requires Gunpowder as reagent$(br2)Allows you to create Tipped Arrows, if you supply Arrows instead of Bottles" - }, - { - "type": "patchouli:spotlight", - "title": "Topaz", - "item": "spectrum:topaz_powder", - "text": "Makes Effects not show any particles" - }, - { - "type": "patchouli:spotlight", - "title": "Amethyst", - "item": "spectrum:amethyst_powder", - "text": "Adds a short flat bonus to the Potions Duration" - }, - { - "type": "patchouli:spotlight", - "title": "Citrine", - "item": "spectrum:citrine_powder", - "text": "Slight multiplicative Potency bonus" - }, - { - "type": "patchouli:spotlight", - "title": "Onyx", - "item": "spectrum:onyx_powder", - "text": "Adds a very weird taste and smell to the potion, making it unidentifiable.$(br)Also makes its color completely black." - }, - { - "type": "patchouli:spotlight", - "title": "Moonstone", - "item": "spectrum:moonstone_powder", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "text": "Changes all otherwise negative Effects to their positive ones" - }, - { - "type": "patchouli:spotlight", - "title": "Shimmerstone", - "item": "spectrum:sparklestone_gem", - "text": "Tiny multiplicative bonus to both Duration and Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Quitoxic Powder", - "item": "spectrum:quitoxic_powder", - "advancement": "spectrum:collect_quitoxic_reeds", - "text": "Greatly increases Potency of all negative Effects" - }, - { - "type": "patchouli:spotlight", - "title": "Stratine", - "item": "spectrum:scarlet_fragments", - "advancement": "spectrum:midgame/collect_scarlet", - "text": "Big flat bonus to Potency, at the cost of adding a random negative Effect" - }, - { - "type": "patchouli:spotlight", - "title": "Paltaeria", - "item": "spectrum:paletur_fragments", - "advancement": "spectrum:lategame/collect_paletur", - "text": "Adds a random positive Effect" - }, - { - "type": "patchouli:spotlight", - "title": "Stardust", - "item": "spectrum:stardust", - "advancement": "spectrum:hidden/collect_stardust", - "text": "$(italic)Absorbs the last drops of what remains of your previous brew.$()$(br2)Small chance to add the main Effect of the Potion that was brewed previously" - }, - { - "type": "patchouli:spotlight", - "title": "Star Fragment", - "item": "spectrum:shooting_star", - "advancement": "spectrum:collect_shooting_star", - "text": "$(italic)Similar to Stardust, but much more potent.$()$(br2)Guaranteed chance to add the main Effect of the Potion that was brewed previously, at slightly decreased Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Storm Stone", - "item": "spectrum:lightning_stone", - "advancement": "spectrum:midgame/collect_lightning_stone", - "text": "Increases the Potions Potency at the beginning, but wearing off fast over time" - }, - { - "type": "patchouli:spotlight", - "title": "Azurite", - "item": "spectrum:raw_azurite", - "advancement": "spectrum:midgame/collect_azurite", - "text": "Negates the duration penalty for Lingering Potions as well as for Tipped Arrows" - }, - { - "type": "patchouli:spotlight", - "title": "Four-Leaved Clover", - "item": "spectrum:four_leaf_clover", - "advancement": "spectrum:collect_four_leaf_clover", - "text": "Provides a huge boost to a random stat" - }, - { - "type": "patchouli:spotlight", - "title": "Vegetal", - "item": "spectrum:vegetal", - "advancement": "spectrum:collect_vegetal", - "text": "Doubles the potions Duration at the cost of Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Neolith", - "item": "spectrum:neolith", - "advancement": "spectrum:midgame/collect_neolith", - "text": "Increases Yield, allowing you to brew an additional potion" - }, - { - "type": "patchouli:spotlight", - "title": "Midnight Chip", - "item": "spectrum:midnight_chip", - "advancement": "spectrum:midgame/collect_midnight Chip", - "text": "Increases Potency and adds 30 seconds to the Duration, but drastically lowers Yield" - }, - { - "type": "patchouli:spotlight", - "title": "Moonstruck Nectar", - "item": "spectrum:moonstruck_nectar", - "advancement": "spectrum:hidden/harvest_moonstruck_nectar", - "text": "Makes the Potion much more smooth, resulting in it being way faster to drink. Might come in handy when every second is crucial" - }, - { - "type": "patchouli:spotlight", - "title": "Bedrock Dust", - "item": "spectrum:bedrock_dust", - "advancement": "spectrum:midgame/break_decayed_bedrock", - "text": "Doubles the Potions Potency, at the cost of Duration" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/semi_permeable_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/semi_permeable_glass.json deleted file mode 100644 index 0021f578dd..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/semi_permeable_glass.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "Semi-permeable Glass", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "icon": "spectrum:amethyst_player_only_glass", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:vanilla_player_only_glass": 0, - "spectrum:tinted_player_only_glass": 0, - "spectrum:glowing_player_only_glass": 0, - "spectrum:topaz_player_only_glass": 0, - "spectrum:amethyst_player_only_glass": 0, - "spectrum:citrine_player_only_glass": 0, - "spectrum:onyx_player_only_glass": 0, - "spectrum:moonstone_player_only_glass": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Semi-permeable Glass", - "item": "spectrum:amethyst_player_only_glass", - "text": "$(italic)For a long time now, those annoying monsters that always appear at night are no longer a threat to you and only serve as a resource supplier, if at all. But that doesn't stop them from pursuing you further.$(br)You spend more time keeping those pesky monsters out of your base than you care to admit.$()" - }, - { - "type": "patchouli:text", - "text": "$(italic)Then you remember the gemstone glass recipe you thought up earlier.$(br2)With a bit of magical energy, it should be no problem to make it not only transparent for you, but also passable (not for them!).$(br2)Bonus: If you make it look exactly like regular glass you might even be able to fool your competition.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/player_only_glass/amethyst_player_only_glass" - }, - { - "type": "patchouli:text", - "text": "Semi-permeable Glass comes in all gemstone colors, common, tinted and glowing variants.$(br2)It looks exactly like its $(l:decoration/gemstone_glass)mundane counterpart$(), but has the special property that players can pass through it without problems, while all other creatures will bounce off it like a fly off a window." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/upgrades.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/upgrades.json deleted file mode 100644 index 6875aff979..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_blocks/upgrades.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "name": "Structure Upgrades", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "icon": "spectrum:upgrade_speed", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:upgrade_speed": 0, - "spectrum:upgrade_speed2": 0, - "spectrum:upgrade_speed3": 0, - "spectrum:upgrade_experience": 0, - "spectrum:upgrade_experience2": 0, - "spectrum:upgrade_efficiency": 0, - "spectrum:upgrade_efficiency2": 0, - "spectrum:upgrade_yield": 0, - "spectrum:upgrade_yield2": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Pigment Pedestal and Fusion Shrine have already proven their worth. But there is still plenty of room for improvement. That's why you created these upgrades. Each one improves the properties of your structures in a different way, depending on what's most important to you personally.$(br)Additional ones of the same type have a decreased effect." - }, - - - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/upgrade_speed", - "text": "The crafting time of the $(l:general/pedestal)Pigment Pedestal$(/l) increases a lot when using complex components. This will help you bring back the times to an acceptable level." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_speed2", - "title": "Tier 2", - "recipe": "spectrum:pedestal/tier3/upgrade_speed2", - "text": "The Pedestal Accelerator T2 improves all aspects of the previous variant. Making your crafting even more rapid." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_speed3", - "title": "Tier 3", - "recipe": "spectrum:pedestal/tier4/upgrade_speed3", - "text": "Tier 3 leaves nothing to be desired - at least in terms of crafting speed." - }, - - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_experience", - "title": "Knowledge Focus", - "recipe": "spectrum:pedestal/tier3/upgrade_experience", - "text": "For the most part the experience $(l:general/pedestal)Pigment Pedestal$(/l) crafting rewards is pretty much negligible. But using this Focus you could dramatically increase the amount gained." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_experience2", - "title": "Tier 2", - "recipe": "spectrum:pedestal/tier3/upgrade_experience2", - "text": "This improved Knowledge Focus increases the generated XP even more." - }, - - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:midgame/create_refined_azurite", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/upgrade_efficiency", - "text": "The $(l:general/pedestal)Pigment Pedestal$(/l) devours vast amounts of Gemstone Powder.$(br)Now you should be able to cushion the consumption of your structures a little." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_efficiency2", - "title": "Tier 2", - "recipe": "spectrum:pedestal/tier4/upgrade_efficiency2", - "text": "This 'upgrade of the upgrade' further reduces the consumption of input materials." - }, - - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:lategame/collect_paletur", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier4/upgrade_yield", - "text": "This is an interesting one. Although the chance is very small, you can increase the # of your crafting outputs.$(br)$(italic)More bang for your buck!" - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_yield2", - "title": "Tier 2", - "recipe": "spectrum:pedestal/tier4/upgrade_yield2", - "text": "This upgraded version is much more potent, allowing you to get even more output for your crafting." - }, - - { - "type": "patchouli:multiblock", - "name": "Pedestal Placement", - "multiblock_id": "spectrum:pedestal_structure_with_upgrades", - "enable_visualize": false, - "text": "4 upgrade slots" - }, - { - "type": "patchouli:multiblock", - "name": "Fusion Shrine Placement", - "multiblock_id": "spectrum:fusion_shrine_structure_with_upgrades", - "enable_visualize": false, - "text": "4 upgrade slots" - }, - { - "type": "patchouli:multiblock", - "advancement": "spectrum:midgame/enter_liquid_crystal", - "name": "Enchanter Placement", - "multiblock_id": "spectrum:enchanter_structure_with_upgrades", - "enable_visualize": false, - "text": "4 upgrade slots" - }, - { - "type": "patchouli:multiblock", - "advancement": "spectrum:progression/unlock_cinderhearth", - "name": "Cinderhearth Placement", - "multiblock_id": "spectrum:cinderhearth_structure_with_upgrades", - "enable_visualize": false, - "text": "2 upgrade slots" - }, - { - "type": "patchouli:multiblock", - "advancement": "spectrum:progression/unlock_spirit_instiller", - "name": "Spirit Instiller Placement", - "multiblock_id": "spectrum:spirit_instiller_structure_with_upgrades", - "enable_visualize": false, - "text": "2 upgrade slots" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/azure_dike_equipment.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/azure_dike_equipment.json deleted file mode 100644 index 91487b2beb..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/azure_dike_equipment.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "Azure Dike Equipment", - "advancement": "spectrum:progression/unlock_any_azure_dike_equipment", - "icon": "spectrum:azure_dike_ring", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:azure_dike_ring": 0, - "spectrum:azure_dike_belt": 0, - "spectrum:shieldgrasp_amulet": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "The results of combining $(l:resources/azurite)Azurite$(/l) and the protective properties of $(l:general/pigment#blue)Blue Pigment$(/l) really sparked your interest. The material seemed to surround itself with a transparent aura, which took some effort to penetrate when you reached for the lump.$(br2)$(italic)This is going to be interesting..." - }, - { - "type": "patchouli:text", - "title": "Azure Dike", - "text": "A magical aura surrounding your body, shielding you from incoming damage.$(br)Slowly, but steadily recharges up to a specific amount.$(br2)Each piece of Azure Dike Equipment increases the maximum amount of protection." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Azure Dike Ring", - "advancement": "spectrum:progression/unlock_azure_dike_ring", - "recipe": "spectrum:fusion_shrine/trinkets/azure_dike_ring", - "text": "$(li)Grants you $(c_green)4$() points of $(c_blue)Azure Dike$().$(li)Slightly speeds up $(c_blue)Azure Dike$() charging." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Azure Dike Belt", - "advancement": "spectrum:progression/unlock_azure_dike_belt", - "recipe": "spectrum:fusion_shrine/trinkets/azure_dike_belt", - "text": "$(li)Grants you $(c_green)6$() points of $(c_blue)Azure Dike$().$(li)Decreases $(c_blue)Azure Dike$() recovery after a hit, making it recharge quicker." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Shieldgrasp Amulet", - "advancement": "spectrum:progression/unlock_shieldgrasp_amulet", - "recipe": "spectrum:fusion_shrine/trinkets/shieldgrasp_amulet", - "text": "Infuse it with $(l:magic/ink)Blue Ink$(/l) to increase the amount of $(c_blue)Azure Dike$() provided.$(br)While cheap at first, the required energy to press more power into this amulet increases exponentially." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/base_trinkets.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/base_trinkets.json deleted file mode 100644 index e1a8f5c2c8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/base_trinkets.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Basic Trinkets", - "advancement": "spectrum:progression/unlock_any_base_trinket", - "icon": "spectrum:fanciful_stone_ring", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:fanciful_stone_ring": 0, - "spectrum:fanciful_belt": 0, - "spectrum:fanciful_pendant": 0, - "spectrum:fanciful_circlet": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "Fanciful Stone Ring", - "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_stone_ring", - "advancement": "spectrum:progression/unlock_fanciful_stone_ring", - "text": "These basic accessories are used as a base for more advanced Trinkets. All final Trinkets are created in the $(l:general/fusion_shrine)Fusion Shrine$()." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Fanciful Circlet", - "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_circlet", - "advancement": "spectrum:progression/unlock_fanciful_circlet", - "text": "" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Fanciful Belt", - "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_belt", - "advancement": "spectrum:progression/unlock_fanciful_belt", - "text": "" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Fanciful Pendant", - "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_pendant", - "advancement": "spectrum:progression/unlock_fanciful_pendant", - "text": "" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Fanciful Gloves", - "recipe": "spectrum:pedestal/tier3/trinkets/fanciful_gloves", - "advancement": "spectrum:progression/unlock_fanciful_gloves", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/bedrock_tools.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/bedrock_tools.json deleted file mode 100644 index a88907f78c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/bedrock_tools.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "Bedrock Tools", - "advancement": "spectrum:progression/unlock_bedrock_tools", - "icon": "spectrum:bedrock_pickaxe", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:bedrock_pickaxe": 0, - "spectrum:bedrock_axe": 0, - "spectrum:bedrock_shovel": 0, - "spectrum:bedrock_sword": 0, - "spectrum:bedrock_hoe": 0, - "spectrum:bedrock_bow": 0, - "spectrum:bedrock_crossbow": 0, - "spectrum:bedrock_shears": 0, - "spectrum:bedrock_fishing_rod": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Whenever you enter a new world, you go about the mindless, days-long task of gathering villagers around you, turning them into zombies and healing them again, only for one of them to eventually hand you a book of Mending. All this, just so you don't have to fix your tools.$(br)That's both less exciting and species-appropriate. Now that you can process Bedrock, you have a much more convenient solution, anyways." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_pickaxe", - "text": "The Bedrock Pickaxe comes with $(bold)Silk Touch$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_axe", - "text": "The Bedrock Axe comes with $(bold)Efficiency VI$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_shovel", - "text": "The Bedrock Shovel comes with $(bold)Efficiency VI$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_sword", - "text": "The Bedrock Sword comes with $(bold)Sharpness VI$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_hoe", - "text": "The Bedrock Hoe comes with $(bold)Fortune IV$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_bow", - "text": "The Bedrock Bow comes with $(bold)Power VI$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_shears", - "text": "The Bedrock Shears come with $(bold)Silk Touch$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_fishing_rod", - "text": "The Bedrock Fishing Rod comes with $(bold)Luck of the Sea IV$()." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/celestial_pocketwatch.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/celestial_pocketwatch.json deleted file mode 100644 index 245e08406d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/celestial_pocketwatch.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Celestial Pocketwatch", - "advancement": "spectrum:progression/unlock_celestial_pocketwatch", - "secret": true, - "icon": "spectrum:celestial_pocketwatch", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:celestial_pocketwatch": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "The problem with Onyx Shards is that the creation is bound to very tight conditions. New moon is simply not every day. Every time you look at the clock, coincidentally, the time window has passed for two minutes.$(br)Time to unpack the big guns: Magenta's affinity for time." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier4/celestial_pocketwatch", - "text": "$(italic)What a stellar idea of yours" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/crescent_clock.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/crescent_clock.json deleted file mode 100644 index fa4ad74941..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/crescent_clock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Crescent Clock", - "advancement": "spectrum:progression/unlock_crescent_clock", - "icon": "spectrum:crescent_clock", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:crescent_clock": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "There seems to be something magical about the flow of time.$(br)This clock, formed from witnesses of time, is to show you a way in this never-ending stream of beginning and passing - moon phases." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/crescent_clock", - "text": "$(italic)If we shadows have offended, Know but this and all is mended.$(br)That you have but slumbered here, While these visions did appear.$(br)And this weak and idle theme, No more yielding, but a dream." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/dreamflayer.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/dreamflayer.json deleted file mode 100644 index 92defbb95b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/dreamflayer.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Dreamflayer", - "advancement": "spectrum:progression/unlock_dreamflayer", - "secret": true, - "icon": "spectrum:dreamflayer", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:dreamflayer": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "A truly exceptional weapon, it embodies the definition of \"offense is the best defense.\"$(br)The Dreamflayer is in its nature to balance power:$(br)The more armored your opponent is compared to you, the more damage you do." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/dreamflayer", - "text": "$(italic)If you ever needed a reason to go full nudist, here it is$()$(br2)$(k:sneak) + $(k:use) to empower it, making it consume $(c_red)Red Ink$() at an alarming rate, allowing it to slice even though the most sturdy of armors." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/end_portal_cracker.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/end_portal_cracker.json deleted file mode 100644 index 124330609c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/end_portal_cracker.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "End Portal Relocation", - "advancement": "spectrum:progression/unlock_end_portal_cracker", - "secret": true, - "icon": "minecraft:end_portal_frame", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:end_portal_cracker": 0, - "spectrum:cracked_end_portal_frame": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Every time you want to enter the realm of the Endermen you have to travel half a world. Whoever created the portals to the End... you're so much more powerful than they are now.$(br2)Well, almost. You haven't yet figured out how to create such portals yourself, but pack them up and take them home? No problem." - }, - { - "type": "patchouli:image", - "title": "End Portal Relocation", - "images": [ - "spectrum:textures/gui/manual/end_portal.png" - ], - "border": true, - "text": "The end portal, like found in strongholds." - }, - { - "type": "patchouli:spotlight", - "title": "Pedestal Recipe", - "item": "spectrum:end_portal_cracker", - "text": "These modified Eye of Ender harbor extremely destructive potential. They need to be, to be able to manipulate the extremely robust portal frame.$(br)When used in an End Portal base, you should keep your distance quickly." - }, - { - "type": "patchouli:multiblock", - "name": "Reconstructed End Portal", - "multiblock": { - "pattern": [ - [ - " HHH ", - "VPPPV", - "VPPPV", - "VPPPV", - " HHH ", - " 0 " - ] - ], - "mapping": { - "H": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=false]", - "V": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=true]", - "P": "minecraft:end_portal" - }, - "offset": [ - 0, - 3, - 0 - ], - "symmetrical": false - }, - "text": "You just put the portal back together the way it was initially, add Ender Pearls, done!" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ender_bag.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ender_bag.json deleted file mode 100644 index 8ac3f698ff..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/ender_bag.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Bag of Holding", - "advancement": "spectrum:progression/unlock_ender_bag", - "icon": "spectrum:ender_bag", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:ender_bag": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Bag of Holding", - "item": "spectrum:ender_bag", - "text": "$(italic)Placing an Ender Chest, opening it, and mining it with an enchanted pickaxe is not what you think of as fun.$(br)That's why you invented this thing." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/ender_bag", - "text": "Just open it and the contents of your Ender Chest are right there." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/exchange_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/exchange_staff.json deleted file mode 100644 index ca10a329ff..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/exchange_staff.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "Exchanging Staff", - "advancement": "spectrum:progression/unlock_exchange_staff", - "secret": true, - "icon": "spectrum:exchange_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:exchange_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "For all those who don't live in a simple cobblestone house, or don't have walls at all - of course you don't feel addressed - you have thought up the Exchanging Staff.$(br2)Mining has just gotten a whole bunch more fun." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier4/exchange_staff", - "text": "Crouch-Click to get a selection of all available placement modi." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Enchanting - Fortune", - "item": "spectrum:exchange_staff{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", - "text": "Enchanting an Exchanging Staff with Fortune by using the $(l:enchanting/enchanting_items)Enchanter$(/l) allows it to multiply Ore drops when exchanging similar to using a common Fortune tool." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Silk Touch", - "item": "spectrum:exchange_staff{Enchantments: [{id: \"spectrum:silk_touch\", lvl: 1s}]}", - "text": "Enchanting an Exchanging Staff with Silk Touch by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will give it the power to exchange blocks exactly how they appear in the world, without breaking the more fragile blocks, like Glass or Ores." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:lategame/create_resonance_enchanted_book", - "title": "Resonance", - "item": "spectrum:exchange_staff{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", - "text": "Enchanting an Exchanging Staff with Resonance by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will give it the power to harvest some special blocks as-is." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gemstone_armor.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gemstone_armor.json deleted file mode 100644 index 8e254ce461..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gemstone_armor.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "Gemstone Armor", - "advancement": "spectrum:progression/unlock_gemstone_armor_category", - "icon": "spectrum:emergency_chestplate", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:emergency_helmet": 0, - "spectrum:emergency_chestplate": 0, - "spectrum:emergency_leggings": 0, - "spectrum:emergency_boots": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "You had more than enough time to develop your own individual fighting style.$(br)To best support this style, you've designed a range of matching gear out of interesting materials.$(br2)Disadvantage: The shards used in the production are kind of brittle. Therefore, this equipment has a comparatively low durability." - }, - { - "type": "spectrum:checklist", - "checklist": { - "spectrum:hidden/collect_vanilla/collect_ender_eye": "Helmet: When nothingness meets hell", - "spectrum:hidden/collect_vanilla/collect_nautilus_shell": "Chestplate: The golden Ratio", - "spectrum:hidden/collect_vanilla/collect_phantom_membrane": "Leggings: The source of nightmares", - "spectrum:hidden/collect_vanilla/collect_ghast_tear": "Boots: Mourning of the Nether" - }, - "text": "They can be repaired in Anvils by using $(l:general/shards)Gemstone Shards$().$(br2)To take advantage of their unique abilities you will need some special materials:" - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_helmet", - "text": "Gives attackers Weakness and Slowness when they hit you, letting you slip through their claws like a shadow." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_chestplate", - "text": "Grants Absorption and Resistance when you get hit, making you a massive wall for a short duration." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_leggings", - "text": "Gives you a short burst of Regeneration on hit, making you get right back up after each hit." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_boots", - "text": "Gives a short burst of Speed and Invisibility when you get hit, giving you an opportunity to retreat. Perfect for ranged combat." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gloves_of_dawns_grasp.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gloves_of_dawns_grasp.json deleted file mode 100644 index 8815b90beb..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/gloves_of_dawns_grasp.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Gloves of Dawn's Grasp", - "advancement": "spectrum:progression/unlock_gloves_of_dawns_grasp", - "icon": "spectrum:gloves_of_dawns_grasp", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:gloves_of_dawns_grasp": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "When you asked your neighbor what this \"gobber\" was that they were always talking about, the only answer you got was that this godlike material was out of reach for you little artist.$(br)Before they could explain to you that \"out of reach\" was not to be taken literally, you had already designed these gloves. Oops." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/gloves_of_dawns_grasp", - "text": "Oh, well, now that you've thought them up, you're gonna use them!$(br2)Infuse them with $(l:magic/ink)Light Blue Ink$(/l) to increase the additional reach provided." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/glow_vision_helmet.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/glow_vision_helmet.json deleted file mode 100644 index e920e8e204..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/glow_vision_helmet.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Glow Vision Goggles", - "advancement": "spectrum:progression/unlock_glow_vision_helmet", - "icon": "spectrum:glow_vision_helmet", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:glow_vision_helmet": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:glow_vision_helmet", - "text": "$(italic)What makes Glow Squids so special is them lighting your way in the darkness of the caves. As beautiful as they are, they seem to wash ashore far too often and meet their sad end there.$(br)You honor their clumsy glowing legacy by designing glasses that can continue guiding you in the darkness of the caves." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/glow_vision_helmet", - "text": "If you are in a dark area and have Glow Ink Sacs on you, the Glow Vision Goggles grant you the Night Vision effect." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/greater_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/greater_potion_pendant.json deleted file mode 100644 index 2e57d1a017..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/greater_potion_pendant.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Greater Potion Pendant", - "advancement": "spectrum:progression/unlock_greater_potion_pendant", - "secret": true, - "icon": "spectrum:greater_potion_pendant", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:greater_potion_pendant": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Works very similar to its $(l:magical_items/lesser_potion_pendant)little brother$(/l).$(br)In contrast this version has three chambers, each of which can be filled with a different potion. Since the individual chambers are smaller, it can only support Effects up to Level I." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/greater_potion_pendant", - "text": "Use the $(l:magical_blocks/potion_workshop)Potion Workshop$(/l) to fill it with potions.$(br)For each Potion your $(l:general/pigment_palette)Pigment Palette$(/l) will use up specific color energy. The higher the level, the higher the cost." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/heartsingers_reward.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/heartsingers_reward.json deleted file mode 100644 index 1e04d636f3..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/heartsingers_reward.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Heartsinger's Reward", - "advancement": "spectrum:progression/unlock_heartsingers_reward", - "icon": "spectrum:heartsingers_reward", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:heartsingers_reward": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "This dainty ring has it all: with the help of a little (or a lot!) of Pink Ink, it strengthens you from the inside out and grants you additional hearts." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/heartsingers_reward", - "text": "Infuse it with $(l:magic/ink)Pink Ink$(/l) to increase the amount of extra Hearts provided." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/jeopardant.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/jeopardant.json deleted file mode 100644 index 9421369ef7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/jeopardant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Jeopardant", - "advancement": "spectrum:progression/unlock_jeopardant", - "icon": "spectrum:jeopardant", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:jeopardant": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Adrenaline does not have to be the only thing racing through your veins in state of emergency.$(br)With every heart lost, the $(l:resources/scarlet)Stratine Gem$() in this ring shines brighter and brighter, pulsating in the same rhythm as your racing heart - granting you an exponential damage boost." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/jeopardant", - "text": "$(italic)Tell me what you think about your situation$(br)Complication, aggravation" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lagoon_rod.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lagoon_rod.json deleted file mode 100644 index 2449272438..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lagoon_rod.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Lagoon Rod", - "advancement": "spectrum:progression/unlock_lagoon_rod", - "secret": true, - "icon": "spectrum:lagoon_rod", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:lagoon_rod": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "On quiet days on your patio, you could observe that the Mermaids Gems have a very special attraction to marine life. Add to that that they naturally float on water you used one as bobber.$(br2)And lo and behold, not only does it increase your success, but it also has quite a few other interesting side effects...." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/tools/lagoon_rod", - "text": "$(italic)I wonder what you can bring to the surface?" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lesser_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lesser_potion_pendant.json deleted file mode 100644 index 0b56741974..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/lesser_potion_pendant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Lesser Potion Pendant", - "advancement": "spectrum:progression/unlock_lesser_potion_pendant", - "icon": "spectrum:lesser_potion_pendant", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:lesser_potion_pendant": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Potions are handy. However, carrying around half an inventory of them is more than unwieldy.$(br)The Potion Pendant has a small chamber, which can be filled with a Potion. As long as you wear it, you get the effect of that Potion.$(br)Since the Potions are not ingested the Effects only reach up to Level III." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/lesser_potion_pendant", - "text": "Use the $(l:magical_blocks/potion_workshop)Potion Workshop$(/l) to fill it with a Potion, exactly as if you were using a Bottle.$(br)To clear it's effect, put it in a crafting grid." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/neat_ring.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/neat_ring.json deleted file mode 100644 index edbf1dddb9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/neat_ring.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Neat Ring", - "advancement": "spectrum:progression/unlock_neat_ring", - "icon": "spectrum:neat_ring", - "secret": true, - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:neat_ring": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)I just think it's neat." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/neat_ring", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/placement_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/placement_staff.json deleted file mode 100644 index 5e8c7963c1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/placement_staff.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Constructors' Staff", - "advancement": "spectrum:progression/unlock_placement_staff", - "icon": "spectrum:placement_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:placement_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "You always spend a lot of time placing blocks. You could almost think that this is the main reason for your existence. Placing a lot of similar blocks is tedious.$(br2)Or more like: $(italic)Was$() tedious." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/placement_staff", - "text": "Crouch-Click to get a selection of all available placement modi." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/preenchanted_tools.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/preenchanted_tools.json deleted file mode 100644 index 37460cf0be..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/preenchanted_tools.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "Preenchanted Tools", - "advancement": "spectrum:progression/tools/unlock_any_preenchanted_tool", - "icon": "spectrum:fortune_pickaxe", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:silker_pickaxe": 0, - "spectrum:fortune_pickaxe": 0, - "spectrum:looting_falchion": 0, - "spectrum:voiding_pickaxe": 0, - "spectrum:resonant_pickaxe": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "That stupid obsidian desk is very stubborn when it comes to giving you the enchantments you seek.$(br)Besides, you'd either have to slaughter a whole herd of cows or rob the books of a dozen villages (no wonder the inhabitants there are so dumb and all too happy to be eaten by zombies)." - }, - { - "type": "patchouli:text", - "text": "The advantage of knowing exactly what you want gives you the ability to shape your tools so that they inherently possess those qualities. The magic of colors makes it possible.$(br)Unfortunately, these features make these tools very fragile for the most part." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_silker_pickaxe", - "recipe": "spectrum:pedestal/tier1/tools/silker_pickaxe", - "text": "The ends of this pickaxe are studded with Topaz to cut even the most delicate material from stone.$(br)The Tender Pickaxe comes pre-enchanted with $(c_cyan)$(bold)Silk Touch$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_fortune_pickaxe", - "recipe": "spectrum:pedestal/tier1/tools/fortune_pickaxe", - "text": "Infused with the power of $(c_yellow)energy$(), it allows you to carve out every last bit of ore from every vein. The Lucky Pickaxe comes pre-enchanted with $(c_yellow)$(bold)Fortune III$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_looting_falchion", - "recipe": "spectrum:pedestal/tier1/tools/looting_falchion", - "text": "The short, razor-sharp blade makes this item a deadly weapon - but at the cost of durability.$(br)The Razor Falchion comes pre-enchanted with $(c_magenta)$(bold)Looting III$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_voiding_pickaxe", - "recipe": "spectrum:pedestal/tier2/voiding_pickaxe", - "text": "As an outsider in the group, the Oblivion Pickaxe has a large amount of durability and mining speed. However, all mined blocks $(l:enchanting/curse_of_the_void)are destroyed$()." - }, - { - "type": "patchouli:text", - "title": "Resonant Pickaxe", - "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", - "text": "This bright blue pickaxe matches its own gentle inherent vibration to that of its surroundings. This allows you to keep blocks intact that would otherwise be irreparably destroyed by force.$(br)The Resonant Pickaxe comes pre-enchanted with $(l:enchanting/resonance)Resonance$(/l)." - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier4/resonant_pickaxe", - "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/puff_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/puff_circlet.json deleted file mode 100644 index 455086d4bc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/puff_circlet.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Puff Circlet", - "advancement": "spectrum:progression/unlock_puff_circlet", - "secret": true, - "icon": "spectrum:puff_circlet", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:puff_circlet": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "This glistening hoop creates a protective film of air around you.$(br)Grants you $(c_green)4$() points of $(c_blue)Azure Dike$(). $(br)Using those charges, it not only protects you from enemy projectiles, but can even cushion a deep fall.$(br)The Puff Circlet also prevents Farmland from being trampled." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/puff_circlet", - "text": "$(italic)Gone are the days when skeletons sniped you from behind in an unforeseen moment." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/radiance_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/radiance_staff.json deleted file mode 100644 index 99a12fee2a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/radiance_staff.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Radiance Staff", - "advancement": "spectrum:progression/unlock_light_staff", - "icon": "spectrum:light_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:light_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Torches have one crucial weakness: you can only place them when you're already standing in the dark. In contrast the Radiance Staff can place lights far away and in the air, illuminating large caverns at a distance.$(br)As a final goodie, these lights are invisible, making them great for illuminating your structures atmospherically." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/light_staff", - "text": "Right click placed lights with the staff to adjust the emitted light level.$(br)They can even be summoned under water." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/rock_candy.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/rock_candy.json deleted file mode 100644 index 20ff7ab9ff..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/rock_candy.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "Rock Candy", - "advancement": "spectrum:progression/unlock_rock_candy", - "icon": "spectrum:rock_candy", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:sugar_stick": 0, - "spectrum:topaz_sugar_stick": 0, - "spectrum:amethyst_sugar_stick": 0, - "spectrum:citrine_sugar_stick": 0, - "spectrum:onyx_sugar_stick": 0, - "spectrum:moonstone_sugar_stick": 0, - - "spectrum:rock_candy": 0, - "spectrum:topaz_rock_candy": 0, - "spectrum:amethyst_rock_candy": 0, - "spectrum:citrine_rock_candy": 0, - "spectrum:onyx_rock_candy": 0, - "spectrum:moonstone_rock_candy": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "A stick with sugar on it.$(br2)...wait wait wait, there's more to it!$(br)If you place this stick so that its underside is immersed in $(l:magical_items/liquid_crystal)Liquid Crystal$(/l), you just have to slowly dissolve more sugar in the liquid until the stick turns into a sweet-crunchy candy stick." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/food/sugar_stick", - "text": "You might even be able to add more stuff than just plain Sugar when immersed? Liquid $(italic)Crystal$() and all that..." - }, - { - "type": "patchouli:image", - "title": "Growing Rock Candy", - "images": [ - "spectrum:textures/gui/manual/rock_candy_growing.png" - ], - "text": "$(thing)Silk Touch$() keeps their size for use as fancy lights, or just for storage." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:topaz_rock_candy", - "title": "Gemstone Rock Candy", - "advancement": "spectrum:midgame/collect_gemstone_rock_candy", - "text": "Dissolving $(l:general/gemstone_powder)Gemstone Powder$(/l) instead of Sugar in the liquid allowed the Rock Candy to take on the gemstone's typical color.$(br2)You always wanted to know what those taste like. Definitely seems like a healthier option than snorting them up your nose." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/tarts.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/tarts.json deleted file mode 100644 index a4afc7b7ec..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/tarts.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "Tarts", - "icon": "spectrum:ashen_tart", - "advancement": "spectrum:progression/unlock_tarts", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:jaramel_tart": 0, - "spectrum:salted_jaramel_tart": 0, - "spectrum:ashen_tart": 0, - "spectrum:weeping_tart": 0, - "spectrum:whispy_tart": 0, - "spectrum:puff_tart": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Even though you are not the most proficient chef, even this rudimentary one tastes great! $(br)You can garnish it with different toppings to grant you $(thing)defensive abilities$() for a short duration." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Jaramel Tart", - "recipe": "spectrum:pedestal/tier3/food/jaramel_tart", - "text": "The classic. The only thing that would make this one more delicious would be the tears of your enemies." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:midgame/craft_salted_jaramel_trifle_or_tart", - "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_tart", - "text": "$(italic)Extra Salty" - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier3/food/ashen_tart", - "text": "Makes you able to see & swim in lava as were it water.$(br2)Does NOT, however, make you Fire immune." - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier3/food/weeping_tart", - "text": "Makes you able to swim at light speed and greatly increases your underwater mining rate." - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier3/food/whispy_tart", - "text": "Makes you feel well rested, like after a good nights sleep. Scares away creatures of nightmares." - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier3/food/puff_tart", - "text": "Small chance for projectiles to simply deflect off of you." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/tidal_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/tidal_circlet.json deleted file mode 100644 index e0b3cb1f78..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/tidal_circlet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Weeping Circlet", - "advancement": "spectrum:progression/unlock_tidal_circlet", - "icon": "spectrum:tidal_circlet", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:tidal_circlet": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "These hostile underwater temples are a hell to maneuver. Luckily, in your search for treasure you stumbled upon a Heart of The Sea.$(br)This circlet allows you to live and mine under water as if it were the most natural thing ever. You swim and mine faster, require no air and are able to see better.$(br)It also heals your little close by Axolotl friends ♥" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/tidal_circlet", - "text": "$(italic)Have you ever wanted to live underwater? No?$(br)Whatever, now you can.$(br)Time to build an underwater base!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/trifles.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/trifles.json deleted file mode 100644 index 07b2c18149..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/trifles.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Trifles", - "icon": "spectrum:jaramel_trifle", - "advancement": "spectrum:progression/unlock_trifles", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:jaramel_trifle": 0, - "spectrum:salted_jaramel_trifle": 0, - "spectrum:monster_trifle": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Sweet delicacies, guaranteed to not only give you a sugar rush - depending on the toppings very intense, mostly $(thing)offensive$() ones.$(br)Made from $(l:resources/jade_vines#jaramel)Jaramel$(/l), $(thing)Gelatin$() & $(l:resources/amaranth)Amaranth$(/l). Even the rudimentary one tastes great!" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Jaramel Trifle", - "recipe": "spectrum:pedestal/tier3/food/jaramel_trifle", - "text": "The classic. The only thing that would make this one more delicious would be the tears of your enemies." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:midgame/craft_salted_jaramel_trifle_or_tart", - "recipe": "spectrum:pedestal/tier3/food/salted_jaramel_trifle", - "text": "$(italic)Extra Salty" - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier3/food/monster_trifle", - "text": "Gives out effects at random. Fancy a gamble?" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/void_bundle.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/void_bundle.json deleted file mode 100644 index 124c1233d7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/void_bundle.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Bottomless Bundle", - "advancement": "spectrum:progression/unlock_void_bundle", - "icon": "spectrum:void_bundle", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:void_bundle": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:void_bundle", - "text": "$(italic)On your journeys through the underground you collect a whole lot of identical blocks, which you will never need again. But they are too good to throw away, you think.$(br2)Time to develop a storage solution that takes care of your little homemade problem.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/void_bundle", - "text": "The Bottomless Bundle stores a virtually unlimited number of items, but of only one type.$(br)Right click it on stacks or empty slots in your inventory to fill/empty it" - }, - { - "type": "patchouli:image", - "title": "Automation", - "images": [ - "spectrum:textures/gui/manual/bottomless_bundle_automation.png" - ], - "text": "Crouching places it down, making it able to be automatically filled / emptied." - }, - { - "type": "patchouli:text", - "title": "", - "text": "$(br)A placed Bundle will always remember the last item you put into it.$(br)Even if it is emptied it will only accept new items that it was holding before, making it also usable as a filter.$(br2)$(italic)Note: If it was placed empty it will accept the first item pumped into it and get locked to that.$()" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Enchanting - Power", - "item": "spectrum:void_bundle{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "text": "Enchanting a Bottomless Bundle with Power by using the $(l:enchanting/enchanting_items)Enchanter$(/l) you can increase its capacity tenfold for each level of Power.$(br2)$(italic)Are you able to fill a Bottomless Bundle with Power V?" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Curse of the Void", - "item": "spectrum:void_bundle{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "text": "Enchanting a Bottomless Bundle with Curse of the Void by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will result in voiding all items that would overfill the Bottomless Bundle.$(br2)$(italic)No more useless blocks cluttering your path when mining." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/whispy_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/whispy_circlet.json deleted file mode 100644 index 41e92cafda..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/magical_items/whispy_circlet.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Whispy Circlet", - "icon": "spectrum:whispy_circlet", - "advancement": "spectrum:progression/unlock_whispy_circlet", - "category": "spectrum:magical_items_category", - "pages": [ - { - "type": "patchouli:text", - "text": "Not just the bags under your eyes that are evidence of your lack of sleep. There are those creatures that come haunt you straight out of your missed nightmares when you don't regularly lie down to sleep - almost like they feel cheated.$(br)This here is the manifestation of relaxation, no sleep necessary. After just a few minutes of wear, you feel physically and mentally refreshed. You also recover from negative effects more quickly." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/whispy_circlet", - "text": "$(italic)The pleasures of a good night's sleep" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/ae2.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/ae2.json deleted file mode 100644 index bab5f5f42c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/ae2.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "Applied Energistics", - "icon": "ae2:controller", - "flag": "mod:ae2", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "spectrum:anvil_crushing", - "advancement": "spectrum:place_pedestal", - "recipe": "spectrum:mod_integration/ae2/anvil_crushing/certus_quartz_dust", - "text": "Lots of AE2's items can be crushed to dust using an anvil: Certus Quartz, Fluix, Skystone and Ender Pearls." - }, - { - "type": "spectrum:anvil_crushing", - "advancement": "spectrum:place_pedestal", - "recipe": "spectrum:mod_integration/ae2/anvil_crushing/fluix_dust", - "text": "$(italic)Why use that old handcrank, when your anvil can do the job?" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "advancement": "spectrum:midgame/collect_lightning_stone", - "recipe": "spectrum:mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal", - "text": "Desperately need $(thing)Charged Certus Quartz$()? Charge it up yourself, instead of relying on pure luck." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "advancement": "spectrum:midgame/collect_lightning_stone", - "recipe": "spectrum:mod_integration/ae2/fusion_shrine/fluix_dust", - "text": "...and then create $(thing)Fluix$() from it, if you get impatient." - }, - { - "type": "spectrum:crystallarieum_growing", - "advancement": "spectrum:progression/unlock_crystallarieum", - "recipe": "spectrum:mod_integration/ae2/crystallarieum/certus_quartz_crystal", - "text": "Being crystalline structures, $(thing)Certus Quartz$() and $(thing)Fluix Crystals$() can be grown in the Crystallarieum." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/alloy_forgery.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/alloy_forgery.json deleted file mode 100644 index fb70ecc5d8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/alloy_forgery.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Alloy Forgery", - "icon": "alloy_forgery:bricks_forge_controller", - "flag": "mod:alloy_forgery", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "patchouli:spotlight", - "advancement": "spectrum:progression/unlock_lava_sponge", - "item": "spectrum:wet_lava_sponge", - "text": "A dripping $(item)Lava Sponge$() contains enough heat to fuel your $(thing)Alloy Forge$() for quite some time." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/collect_scarlet", - "item": "spectrum:scarlet_ore", - "text": "Using a high tier $(thing)Alloy Forge$() you can squeeze quite a bit more $(l:resources/scarlet)Stratine$(/l) from the raw ore." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:paletur_ore", - "advancement": "spectrum:lategame/collect_paletur", - "text": "...same is true for $(l:resources/paletur)Paltaeria$(/l), of course." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/botania.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/botania.json deleted file mode 100644 index d1035dfd8e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/botania.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "name": "Botania", - "icon": "botania:mana_pool", - "flag": "mod:botania", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "spectrum:anvil_crushing", - "title": "Crushing Petals", - "advancement": "spectrum:place_pedestal", - "recipe": "spectrum:mod_integration/botania/anvil_crushing/petals/magenta_mystical_flower_to_petals", - "text": "While crushing flowers seems a bit unorthodox, it $(italic)did$() seem to work. No problem plucking the petals from the flattened blossom after that." - }, - { - "type": "patchouli:spotlight", - "title": "Ink from Petals", - "advancement": "spectrum:midgame/place_color_picker", - "item": "botania:magenta_petal", - "text": "Having studied not only botany but also color theory, you definitely recognize some similarities. The colored flowers, resemble $(l:general/colored_trees)Color Trees$(/l) in more than just one point.$(br2)No wonder that their petals can also be used to create $(l:magic/ink)Ink$(/l)." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Glimmering Flowers", - "advancement": "spectrum:collect_sparklestone", - "recipe": "spectrum:mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower", - "text": "Adding some $(l:resources/sparklestone)Sparklestone(/l) to magical flowers makes them glimmer." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Colored Mushrooms", - "advancement": "spectrum:collect_pigment", - "recipe": "spectrum:mod_integration/botania/pedestal/mushrooms/blue_mushroom", - "text": "Applying $(l:general/pigment)Pigment$(/l) to mushrooms colors them in the respective color." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:collect_pigment", - "recipe": "spectrum:mod_integration/botania/pedestal/floral_fertilizer", - "text": "Using $(l:general/pigment)Pigment$(/l) instead of mundane Dye when creating $(thing)Floral Fertilizer$() is quite a bit more yielding." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "advancement": "spectrum:hidden/collect_jade_vine_petals", - "recipe": "spectrum:mod_integration/botania/spirit_instiller/blacker_lotus", - "text": "The $(thing)Black Lotus$() is a great source of Mana, no questions asked. But yet, it still can be enhanced. Using some $(thing)Jade Petals$()" - }, - { - "type": "spectrum:spirit_instiller_crafting", - "advancement": "spectrum:midgame/harvest_moonstruck_nectar", - "recipe": "spectrum:mod_integration/botania/spirit_instiller/overgrowth_seed", - "text": "Those elusive seeds you could only find in chests hidden around the world? While pricey - maybe not even worth the hassle - you finally found a way to replicate those." - }, - { - "type": "patchouli:spotlight", - "title": "New Potion Reagent", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "item": "botania:black_lotus", - "text": "Infuses the Potion with a huge amount of additional positive as well as negative, effects, but it's black color also makes it completely unidentifiable. What might you get?" - }, - { - "type": "patchouli:spotlight", - "title": "New Potion Reagent", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "item": "botania:blacker_lotus", - "text": "Infuses the Potion with a huge amount of additional - mostly positive - effects, but it's black color also makes it completely unidentifiable. What might you get?" - }, - { - "type": "patchouli:spotlight", - "title": "New Potion Reagent", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "item": "botania:life_essence", - "text": "Makes your Potions much more potent, but at a huge loss of duration. If the duration will get too short the potion might end up useless altogether..." - }, - { - "type": "patchouli:spotlight", - "title": "New Potion Reagent", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "item": "botania:mana_powder", - "text": "Gives a small multiplicative boost to Duration and a tiny chance to add the last brewed effect, too." - }, - { - "type": "patchouli:spotlight", - "title": "New Potion Reagent", - "advancement": "spectrum:midgame/brew_potion_in_potion_workshop", - "item": "botania:pixie_dust", - "text": "Converts the Potions into Lingering Potions as a single reagent. This way it allows you to directly create Tipped Arrows, too!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/chalk.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/chalk.json deleted file mode 100644 index 1b7c74265c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/chalk.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Chalk", - "icon": "chalk:chalk", - "flag": "mod:chalk", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "required_advancement": "spectrum:collect_pigment", - "title": "Pedestal Recipe", - "recipe": "spectrum:mod_integration/chalk/pedestal/orange_chalk", - "text": "The little pieces of chalk you colored before with plain dye always didn't last long. By using pigments instead, the $(thing)Chalk$() provides you with a never-ending supply." - }, - { - "type": "spectrum:pedestal_crafting", - "required_advancement": "spectrum:collect_pigment", - "title": "Pedestal Recipe", - "recipe": "spectrum:mod_integration/chalk/pedestal/pink_glow_chalk", - "text": "Of course you are able to create unbreakable $(thing)Glow Chalk$(), too." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/conjuring.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/conjuring.json deleted file mode 100644 index eb3cb15060..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/conjuring.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "Conjuring", - "icon": "conjuring:conjurer", - "flag": "mod:conjuring", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "spectrum:potion_workshop_brewing", - "title": "Resistance Potions", - "recipe": "spectrum:mod_integration/conjuring/potion_workshop_brewing/distilled_spirit_resistance", - "advancement": "spectrum:midgame/brew_powerful_potion_in_potion_workshop", - "text": "Distilled Spirits can be... $(br)umm.. distilled?$(br)$(italic)distilled further?$()$(br)into long lasting $(thing)Resistance$() Potions." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "recipe": "spectrum:mod_integration/conjuring/spirit_instiller/lesser_conjuration_essence", - "advancement": "spectrum:midgame/build_spirit_instiller_structure", - "text": "You're not even sure yourself how you came up with this recipe anymore.$(br)Maybe you inhaled a little too much Quitoxic Powder when you combined various ingredients. But the result is interesting, no question." - }, - { - "type": "spectrum:spirit_instiller_crafting", - "recipe": "spectrum:mod_integration/conjuring/spirit_instiller/mob_spawner", - "advancement": "spectrum:midgame/build_spirit_instiller_structure", - "text": "Combining everything you learned as a Spawner expert and Pigment Tinkerer gave you the ability to create $(thing)Mob Spawners$() yourself.$(br)You only need to assign a Creature to spawn using the $(l:creating_life/spirit_instiller)Spirit Instiller$(/l)." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/gobber.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/gobber.json deleted file mode 100644 index d621984bae..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/gobber.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Gobber", - "icon": "gobber2:gobber2_globette", - "flag": "mod:gobber2", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "spectrum:crystallarieum_growing", - "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette", - "advancement": "spectrum:progression/unlock_crystallarieum", - "text": "It grows!" - }, - { - "type": "spectrum:crystallarieum_growing", - "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette_nether", - "advancement": "spectrum:progression/unlock_crystallarieum", - "text": "It also grows!" - }, - { - "type": "spectrum:crystallarieum_growing", - "recipe": "spectrum:mod_integration/gobber/crystallarieum/globette_end", - "advancement": "spectrum:progression/unlock_crystallarieum", - "text": "You are not going to believe this" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/little_ants.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/little_ants.json deleted file mode 100644 index 9e01101f3f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/little_ants.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Little Ants", - "icon": "ants:dirt_ant_nest", - "flag": "mod:ants", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "patchouli:spotlight", - "item": "minecraft:orange_dye", - "required_advancement": "spectrum:collect_pigment", - "text": "These industrious little buggers continuously collect leaves from trees.$(br)The results of their work are also reflected in their products: If you harvest a full anthill that collected leaves of colored trees with a shovel, you get dye." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:orange_pigment", - "required_advancement": "spectrum:collect_pigment", - "text": "Even better, if you bribe them with $(thing)Vegetal$(), you can even salvage pure pigment.$(br2)$(br2)Shoutout to @MastroCaleb for this great mod!" - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:jade_vine_petal_block", - "required_advancement": "spectrum:hidden/collect_jade_vine_petals", - "text": "The ants produce an almost silk-like material from $(thing)Jade Petals$()." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/tech_reborn.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/tech_reborn.json deleted file mode 100644 index 951eb339a7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/mod_integration/tech_reborn.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Tech Reborn", - "icon": "techreborn:grinder", - "flag": "mod:techreborn", - "category": "spectrum:mod_integration_category", - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:amethyst_ore", - "advancement": "spectrum:spectrum", - "text": "Most of Spectrums Ores can be processed in the Grinder / Industrial Grinder to extract resources." - }, - { - "type": "patchouli:spotlight", - "item": "minecraft:amethyst_shard", - "advancement": "spectrum:spectrum", - "text": "Of course you can also grind down Shards, too!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/connection_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/connection_node.json deleted file mode 100644 index 44710a741e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/connection_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Connection Node", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Connection Node", - "text": "As the most basic of Nodes the Connection Node does not have any use by itself.$(br)They are very small and solely act as a cheap and unobtrusive way to expand the range of your network." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/connection_node", - "text": "As all other Nodes, the Connection Node has a range of 16 Blocks." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/interaction_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/interaction_node.json deleted file mode 100644 index 942835456b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/interaction_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Interaction Node", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_interaction_node", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Interaction Node", - "text": "TODO. Getting close to it will present you a list of all items stored in its connected network. Just reach for it and it will be pulled out from the network for you, automatically." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/interaction_node", - "text": "TODO" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/pastel_network.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/pastel_network.json deleted file mode 100644 index 743fcb1c71..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/pastel_network.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "The Pastel Network", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "priority": true, - "sortnum": 0, - "pages": [ - { - "type": "patchouli:text", - "title": "Pastel Network", - "text": "$(italic)Logistics is a complicated thing.$(br)Your primitive ways of item transport like hopper arrays do not compare to the Pastel Network - that is what you called clusters of Azurite-based Nodes. Each Node with its own special features. Placed in close proximity, nodes will connect wirelessly to one another and form an item transfer network." - }, - { - "type": "patchouli:image", - "title": "", - "images": [ - "spectrum:textures/gui/manual/pastel_network.png" - ], - "border": true, - "text": "All Nodes have a range of 16 blocks and need to have line of sight to one another." - }, - { - "type": "patchouli:spotlight", - "title": "Dyeing Nodes", - "item": "spectrum:purple_pigment", - "text": "You can use $(l:general/pigment)Pigment$(/l) on Pastel Network Nodes to dye them.$(br2)Each node can only transfer items to nodes of the same color and colors it composites into, but not the other way around (Cyan nodes can transfer to Blue ones, but not Blue nodes to Cyan)." - }, - { - "type": "patchouli:image", - "title": "", - "images": [ - "spectrum:textures/gui/manual/composite_colors.png" - ], - "border": true, - "text": "" - }, - { - "type": "patchouli:spotlight", - "title": "Colored Nodes", - "item": "spectrum:red_pigment", - "text": "Using Pigment you can very finely adjust which Nodes can interact with others, allowing you to build complex transfer chains.$(br2)The default $(bold)White$() nodes, lacking all forms of color are only able to connect to other white nodes." - }, - { - "type": "patchouli:spotlight", - "title": "Spectral Colored Nodes", - "item": "spectrum:spectral_shard", - "text": "$(bold)Black$() in contrast, as the combination of all Pigment Colors, is able to interact with all other Nodes, including other black ones.$(br2)Nodes colored with spectral pigment are able to interact with all nodes, regardless of their color." - }, - { - "type": "patchouli:spotlight", - "title": "", - "item": "spectrum:purple_pigment", - "text": "Using a $(l:resources/mermaids_brush)Mermaids Gem$(/l) on a node will change it to a Fluid Node.$(br)It will behave very similar than before - but will be able to wirelessly tranfer liquid instead of items." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/provider_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/provider_node.json deleted file mode 100644 index 4674761f4e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/provider_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Provider Node", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Provider Node", - "text": "Passively offers all items in the connected inventory to it's connected $(l:pastel_network/pastel_network)Pastel Network$(/l). Items will not be pushed to other nodes, but can be requested, for example by $(l:pastel_network/puller_node)Puller Nodes$(/l)." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/provider_node", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/puller_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/puller_node.json deleted file mode 100644 index c4fe23fbc2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/puller_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Puller Node", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Puller Node", - "text": "The Puller Node has the special feature of having an interface. There you are able to configure items that the Puller Node will actively request from other nodes to be placed in its connected inventory." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/puller_node", - "text": "The order, in which it checks other nodes to request items from is as follows:$(br)1. $(l:pastel_network/pusher_node)Pusher Nodes$(/l)$(br)2. $(l:pastel_network/provider_node)Provider Nodes$(/l)$(br)3. $(l:pastel_network/storage_node)Storage Nodes$(/l)" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/pusher_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/pusher_node.json deleted file mode 100644 index ea86f6d0c5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/pusher_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Pusher Node", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Pusher Node", - "text": "The pusher node actively tries to keep the connected inventory empty from items." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/pusher_node", - "text": "The order, in which it pushes items to is as follows:$(br)1. $(l:pastel_network/puller_node)Puller Nodes$(/l)$(br)2. $(l:pastel_network/storage_node)Storage Nodes$(/l)" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/storage_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/storage_node.json deleted file mode 100644 index 5d1c14f3ec..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/pastel_network/storage_node.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Storage Node", - "icon": "spectrum:provider_node", - "secret": true, - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Storage Node", - "text": "The Storage Node, while nothing spectacular itself, will show their greatest use in combination with $(l:pastel_network/pusher_node)Pusher Nodes$(/l) (Will push items to it) and $(l:pastel_network/puller_node)Puller Nodes$(/l) (pull items from it." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/storage_node", - "text": "Right click it to open its item filter. This filters allows you to specify which items the Storage Node will be able to receive & provide. Otherwise it will act as a general storage for all types of items." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/entity_detector.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/entity_detector.json deleted file mode 100644 index 6ea9c473a8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/redstone/entity_detector.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Entity Detector", - "advancement": "spectrum:progression/detectors/unlock_entity_detector", - "secret": true, - "icon": "spectrum:player_detector", - "category": "spectrum:redstone_category", - "extra_recipe_mappings": { - "spectrum:entity_detector": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Creature Detector", - "text": "The gemstone built into the Mob Detector reacts to micro-vibrations in the ground. This gives the Mob Detector the ability to measure the number of creatures near it." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/detectors/entity_detector", - "text": "For each creature within a 10 block radius, the Mob Detector outputs an additional strength of 1." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/amaranth.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/amaranth.json deleted file mode 100644 index c035e2b99c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/amaranth.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "Amaranth", - "advancement": "spectrum:milestones/reveal_amaranth", - "icon": "spectrum:amaranth_bushel", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:amaranth_grains": 0, - "spectrum:amaranth_bushel": 0, - "spectrum:honey_pastry": 0, - "spectrum:scone": 0, - "spectrum:triple_meat_pot_pie": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Amaranth", - "text": "Though seemingly left behind for quite some time now, these seeds still look very much alive. You wonder what comes out of it when grown?" - }, - { - "type": "spectrum:anvil_crushing", - "advancement": "spectrum:collect_amaranth_bushel", - "recipe": "spectrum:anvil_crushing/amaranth_grains", - "text": "You never have seen anything like it. Such an intense red. So expressive!$(br)These Bushels can be crushed to get more grains.$(br2)They can also be planted decoratively on grass or in a flower pot." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:collect_amaranth_bushel", - "title": "Honey Pastry", - "recipe": "spectrum:pedestal/tier1/honey_pastry", - "text": "The taste of Amaranth is as different from Wheat as its appearance. In your mind sprouted completely new ideas, like this deliciousness here." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/collect_amaranth_bushel", - "title": "Scones", - "recipe": "spectrum:pedestal/tier2/food/scone", - "text": "Small but fine pastry filled with cream.$(br2)$(italic)Perfect with tea." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_triple_meat_pot_pie", - "title": "Triple Meat Pot Pie", - "recipe": "spectrum:pedestal/tier2/food/triple_meat_pot_pie", - "text": "This feast is guaranteed to fill your belly for quite some time.$(br2)$(italic)Full of fat and meat and wine and warp!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/bismuth.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/bismuth.json deleted file mode 100644 index 703be195f1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/bismuth.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "Bismuth", - "advancement": "spectrum:midgame/collect_bismuth", - "secret": true, - "icon": "spectrum:bismuth_flake", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:bismuth_flake": 0, - "spectrum:bismuth_block": 0, - "spectrum:small_bismuth_bud": 0, - "spectrum:large_bismuth_bud": 0, - "spectrum:bismuth_cluster": 0, - "spectrum:bismuth_crystal": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Bismuth", - "text": "A metal that shimmers in all the colors of the rainbow.$(br)The small seedlings you collected are far too small to be used for any meaningful purpose. The shimmering metal seems to grow larger very slowly by absorbing the energy of other metallic blocks in it's vicinity." - }, - { - "type": "spectrum:crystallarieum_growing", - "advancement": "spectrum:progression/unlock_crystallarieum", - "title": "Growing Bismuth", - "recipe": "spectrum:crystallarieum/bismuth", - "text": "Instead of providing whole metal blocks, the $(l:magical_blocks/crystallarieum)Crystallarieum$(), too, provides a controlled substrate and also finer and more efficient way to provide nutrients." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/geodes.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/geodes.json deleted file mode 100644 index fec8cc34cf..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/geodes.json +++ /dev/null @@ -1,322 +0,0 @@ -{ - "name": "Geodes", - "advancement": "spectrum:spectrum", - "icon": "minecraft:amethyst_cluster", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:topaz_ore": 0, - "spectrum:amethyst_ore": 0, - "spectrum:citrine_ore": 0, - "spectrum:moonstone_ore": 0, - "spectrum:deepslate_topaz_ore": 0, - "spectrum:deepslate_amethyst_ore": 0, - "spectrum:deepslate_citrine_ore": 0, - "spectrum:deepslate_moonstone_ore": 0, - "spectrum:small_topaz_bud": 0, - "spectrum:medium_topaz_bud": 0, - "spectrum:large_topaz_bud": 0, - "spectrum:topaz_cluster": 0, - "spectrum:topaz_block": 0, - "spectrum:budding_topaz": 0, - "minecraft:small_amethyst_bud": 0, - "minecraft:medium_amethyst_bud": 0, - "minecraft:large_amethyst_bud": 0, - "minecraft:amethyst_cluster": 0, - "minecraft:amethyst_block": 0, - "minecraft:budding_amethyst": 0, - "spectrum:small_citrine_bud": 0, - "spectrum:medium_citrine_bud": 0, - "spectrum:large_citrine_bud": 0, - "spectrum:citrine_cluster": 0, - "spectrum:citrine_block": 0, - "spectrum:budding_citrine": 0, - "spectrum:small_moonstone_bud": 0, - "spectrum:medium_moonstone_bud": 0, - "spectrum:large_moonstone_bud": 0, - "spectrum:moonstone_cluster": 0, - "spectrum:moonstone_block": 0, - "spectrum:budding_moonstone": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Gemstone Geodes", - "images": [ - "spectrum:textures/gui/manual/geode.png" - ], - "border": true, - "text": "Geodes form in places where magical energy is so abundant, it physically crystallizes." - }, - { - "type": "patchouli:text", - "text": "$(br)Breaking Clusters gets you Gemstone Shards, which seem to inherit lots of the original magical properties.$(br)Each type of gemstone seems to represent a different type of fundamental property.$(br2)Different heights promote formation of certain types. To find them all, it makes sense to search in different places." - }, - { - "type": "patchouli:multiblock", - "name": "A Geode", - "enable_visualize": false, - "multiblock": { - "pattern": [ - [ - " ", - " ", - "O ", - " O ", - " ", - " SS ", - " O SSSS ", - " SS O ", - " ", - " ", - " ", - " ", - " " - ], - [ - " O ", - " O ", - " ", - " SSSSSS ", - " SSSCCSSS ", - " SSCCCCSS ", - " SSCCCCCCSS ", - " SSCCCCSS ", - " SSSCCSSS ", - " SSSSSS ", - " ", - " O ", - " " - ], - [ - " ", - " ", - " SSSSSSS ", - " SSCCCCCSS ", - " SSCCAAACCS ", - " SCCAAAAACCS ", - " SCCAAAAACCS ", - " SSCCAAACCSS ", - " SSCCCCCSS ", - " SSSSSSS ", - " ", - " ", - " " - ], - [ - " ", - " SSSSSS ", - " SSCCCCCSS ", - " SSCCAAAACCS ", - " SCCAAAAAACSS ", - " SCCAA AACCS ", - " SCCA AACS ", - " SCCAA ACCS ", - " SCAA AACCS ", - " SCC AAACCS ", - " S CCCSS ", - " SSS ", - " " - ], - [ - " SSS ", - " SSCCCSS ", - " SSCCBACCCS ", - " SCCAAAAAACCS ", - " SCAA AACSS ", - " SCAA ACCS ", - " SCAA ACCS ", - " SCAA ACCS ", - " SCCA AACSS ", - " SC BACCSS ", - " ACCSS ", - " CCSS ", - " SS " - ], - [ - " SSSS ", - " SCCCCCSS ", - " SCCAABACSS ", - " SCCAB AAACSS ", - " SCCAB ACCS ", - " SCA AACS ", - "SCA 0 ACSS", - "SCA AACSS", - "SCA AACS ", - "SCAA AACCS ", - " S AACCSS ", - " S CCSS ", - " SS " - ], - [ - " SSSSS ", - " SCCCCCSS ", - " SSCAAAAACCS ", - " CCAA AAACCS ", - " SCA AACS ", - " SCA ACSS", - " SCA ACCS", - " SCA ACCS", - " SCA AACSS", - " S BCSS ", - " AACCS ", - " CCSS ", - " O SS " - ], - [ - " SSSS ", - " SSCCCCSS ", - " SCCAAACCCS ", - "O SCAAA AAACCS ", - " SCAA AACS ", - " SBA ACSS", - " SCA ACCS", - " SCB ACCS", - " CA ACSS", - " S ACCSS", - " AACSS ", - " CCSS ", - " SSS " - ], - [ - " S ", - " SSCCSSS ", - " SCCCACCCSS ", - " SCCAAAAAACSS ", - " CCA ACCS ", - " SCB AACSS", - " SCA ACSS", - " SCB ACSS", - " SC AACSS", - " S AACSS ", - " ACCS ", - " CCSS ", - " SS " - ], - [ - " ", - " SSSSS ", - " SCCCCCCS ", - " SCCABAACCS ", - " SCAAA ABACCS ", - " SCA AACS ", - " SCAA ABCS ", - " SCAB AACS ", - " SCA ACCS ", - " AAACSS ", - " ACCCS ", - " CCS ", - " SS " - ], - [ - " ", - " S ", - " SSSCSSS ", - " SCCCCCCCS ", - " SCCAAAACCS ", - " CCBAAAAACSS ", - " SCAA AACSS ", - " SCAAA AACSS ", - " SCCAAAAAACSS ", - " S ABACCS ", - " CCCS ", - " SSS ", - " O S " - ], - [ - " O ", - " ", - " SSS ", - " SSCCSSS ", - " SCCCCCCS ", - " SSCCAACCSS ", - " SCCAABCCSS ", - " SCCBAACCSS O", - " SCCCACCCSS ", - " OS CSS ", - " O SS ", - " ", - " " - ], - [ - " ", - " ", - " O ", - " SS ", - " SSSSS ", - " SSCCSSS ", - " SSCCCCSS ", - " SSCCCCSS ", - " SSSCCSS ", - " SSSSSSS O ", - " SS ", - " ", - " " - ], - [ - " ", - " ", - " ", - " ", - " O ", - " S ", - " SSS ", - " SS ", - " S O ", - " ", - " ", - " ", - " " - ] - ], - "mapping": { - "S": "minecraft:smooth_basalt", - "C": "minecraft:calcite", - "A": "minecraft:amethyst_block", - "B": "minecraft:budding_amethyst", - "W": "minecraft:small_amethyst_bud", - "X": "minecraft:medium_amethyst_bud", - "Y": "minecraft:large_amethyst_bud", - "Z": "minecraft:amethyst_cluster", - "O": "spectrum:amethyst_ore" - }, - "symmetrical": false - }, - "text": "The precious gemstones are protected by layers of Basalt and Calcite." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:spectrum", - "title": "Gemstone Ores", - "item": "spectrum:amethyst_ore", - "text": "Now that you are paying attention, you noticed small inclusions of gems in the rock all over the place.$(br)If you see such an ore a geode is surely not far!$(br2)While not renewable like Gemstone Clusters, Gemstone Ore provides a lot of Shards, especially when broken with a Fortune-Tool." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "title": "Topaz Geodes", - "item": "spectrum:topaz_block", - "text": "Topaz geodes are gigantic in contrast to the others, fitting for their element of matter. However, for this they are found exclusively far above the ground in mountains or massive hills." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "title": "Amethyst Geodes", - "item": "minecraft:amethyst_block", - "text": "As elements of time, Amethyst Geodes tend to maintain their existence in the lowest layers of the world, quietly sealed off from all other happenings in the world.$(br)Leisurely and yet imposing." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "title": "Citrine Geodes", - "item": "spectrum:citrine_block", - "text": "Geodes with Citrine are found in the middle layers of the world, sometimes even accessible from the surface. These geodes are small, but harbor tremendous energy, so they are cracked especially often." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "title": "Moonstone Geodes", - "item": "spectrum:moonstone_block", - "text": "In the $(l:dimension/dimension)Deeper Down$() you stumbled upon Moonstone Geodes!$(br)You always suspected that there would be another variant and here you are. Those often majestic geodes shine in the brightest of whites, almost blinding, when only accustomed to the darkness of the Deeper Down." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/jade_vines.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/jade_vines.json deleted file mode 100644 index 5cf04b67d5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/jade_vines.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "Jade Vines", - "advancement": "spectrum:hidden/collect_hibernating_jade_vine_seeds", - "icon": "spectrum:hibernating_jade_vine_seeds", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:hibernating_jade_vine_seeds": 0, - "spectrum:germinated_jade_vine_seeds": 0, - "spectrum:jade_vine_petals": 0, - "spectrum:moonstruck_nectar": 0, - "spectrum:jade_jelly": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Jade Vines", - "item": "spectrum:hibernating_jade_vine_seeds", - "text": "The remaining energy of this plant from aeons ago is barely still perceptible. So light and vulnerable that you think any wrong move could breathe the last bit of life out of your fragile bulb.$(br2)$(italic)Will the history of this plant remain elusive to you forever?" - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "Germinating", - "advancement": "spectrum:midgame/build_spirit_instiller_structure", - "recipe": "spectrum:spirit_instiller/germinated_jade_vine_seeds", - "text": "Once almost a lost cause you now have an ace up your sleeve:$(br)With the help of the $(l:creating_life/spirit_instiller)Spirit Instiller$(/l) you are sure that you can breathe life back into the little bulb." - }, - { - "type": "patchouli:spotlight", - "title": "Planting & Growing", - "item": "spectrum:germinated_jade_vine_seeds", - "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", - "text": "Palid, fragile but beautiful hanging plants, twining down wooden fences.$(br)$(c_red)Not used to the intense light after all these aeons, they will die when exposed directly to sunlight.$(br)$(c_lime)They only grow one stage per night and only when exposed to the way more soft, indirect light of the moon." - }, - { - "type": "patchouli:spotlight", - "title": "Jade Jelly", - "anchor": "jade_jelly", - "item": "spectrum:jade_jelly", - "advancement": "spectrum:hidden/collect_jade_jelly", - "text": "When you accidentally put one of the plants to strong sunlight, you found that it withered. Not only did this withered shrub leave you with a new Bulb, but also this gel-like jelly.$(br2)$(italic)Unexpectedly tasty$()." - }, - { - "type": "spectrum:cinderhearth_smelting", - "title": "Jaramel", - "anchor": "jaramel", - "recipe": "spectrum:cinderhearth/jaramel", - "advancement": "spectrum:hidden/collect_jade_jelly", - "text": "If the Jade Jelly is heated blazingly fast and then cooled down again, the result is a very viscous but sugar-sweet mass.$(br2)$(italic)Fancy a sugar rush?" - }, - { - "type": "patchouli:spotlight", - "title": "Petals", - "anchor": "petals", - "item": "spectrum:jade_vine_petals", - "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", - "text": "Shiny petals can be plucked carefully when partly grown.$(br)These Petals can be used as $(l:decoration/jade_vine_petal_blocks)decoration$().$(br)Rarely, when searching the petals, $(thing)another Bulb$() can be found." - }, - { - "type": "patchouli:spotlight", - "title": "Moonstruck Nectar", - "anchor": "nectar", - "item": "spectrum:moonstruck_nectar", - "advancement": "spectrum:hidden/instilled_germinated_jade_vine_seeds", - "text": "After many nights on a full moon, the plants reach full bloom. The nectar that they collect in their blossoms can be harvested with a Glass Bottle.$(br)Bears great restorative properties:$(li)can be drunk for healing$(li)able to repair any damaged item$()." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/lightning_stones.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/lightning_stones.json deleted file mode 100644 index 4870d43ed2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/lightning_stones.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Storm Stones", - "advancement": "spectrum:midgame/collect_lightning_stone", - "icon": "spectrum:lightning_stone", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:lightning_stone": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Thunderstorms", - "text": "Thunderstorms are a powerful sign of the forces of nature.$(br)Using the $(l:general/fusion_shrine)Fusion Shrine$() you did even start them when crafting some powerful resources.$(br2)There was no doubt coming across something here that had a connection to the magic of pigments." - }, - { - "type": "patchouli:spotlight", - "title": "Storm Stones", - "item": "spectrum:lightning_stone", - "text": "Dug into the ground by lightning strikes, you found these stones vibrating in your hand due to the inherent static.$(br)Used in the $(l:general/fusion_shrine)Fusion Shrine$(), you can use them to summon thunderstorms yourself.$(br2)$(italic)Because of their volatile nature they do not react too nicely to explosions..." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/liquid_crystal_powders.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/liquid_crystal_powders.json deleted file mode 100644 index a257c68fe6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/liquid_crystal_powders.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "Crystallization", - "advancement": "spectrum:hidden/collect_any_crystallized_block", - "icon": "spectrum:liquid_crystal_bucket", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:blazing_crystal": 0, - "spectrum:fiery_powder": 0, - "spectrum:frostbite_crystal": 0, - "spectrum:blizzard_powder": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_blazing_crystal", - "item": "spectrum:blazing_crystal", - "text": "Letting a full block of Liquid Crystal absorb the immense heat of Lava resulted in this.$(br)Almost feels like a Magma Block, albeit way hotter." - }, - { - "type": "spectrum:anvil_crushing", - "advancement": "spectrum:hidden/collect_blazing_crystal", - "recipe": "spectrum:anvil_crushing/fiery_powder_from_blazing_crystal", - "text": "Crushing $(thing)Blazing Crystal$() with an Anvil yields this burning hot powder, which almost sets your hand in flames by holding it. Crushing $(thing)Magma Blocks$() seems to work, too, albeit with much less yield." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_frostbite_crystal", - "item": "spectrum:frostbite_crystal", - "text": "As Water tried to flow to a full block of Liquid Crystal the crystal turned solid.$(br)Since even a light touch is enough to give you a cold shiver, you called it Frostbite Crystal" - }, - { - "type": "spectrum:anvil_crushing", - "advancement": "spectrum:hidden/collect_frostbite_crystal", - "recipe": "spectrum:anvil_crushing/blizzard_powder_from_frostbite_crystal", - "text": "Crushing $(thing)Frostbite Crystal$() with an Anvil yields this ice cold powder, which almost makes your hand freeze just by holding it. Crushing $(thing)Ice$() seems to work, too, albeit with much less yield." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/malachite.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/malachite.json deleted file mode 100644 index 5ce004ff51..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/malachite.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "Malachite", - "advancement": "spectrum:lategame/collect_malachite", - "secret": true, - "icon": "spectrum:malachite_cluster", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:malachite_ore": 0, - "spectrum:deepslate_malachite_ore": 0, - "spectrum:blackslag_malachite_ore": 0, - "spectrum:raw_malachite": 0, - "spectrum:malachite_block": 0, - "spectrum:small_malachite_bud": 0, - "spectrum:large_malachite_bud": 0, - "spectrum:malachite_cluster": 0, - "spectrum:malachite_crystal": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Malachite", - "text": "A pristine material, sparkling in a deep green hue. It seems to have strong magical properties, almost like a $(l:dimension/dimension)Deeper Down$() analog of $(l:resources/azurite)Azurite$().$(br)As another similarity to $(l:resources/azurite)Azurite$(), Malachite has to be refined, too. The small fragments you obtained by mining the ore must first grow into full, usable crystals." - }, - { - "type": "spectrum:crystallarieum_growing", - "advancement": "spectrum:progression/unlock_crystallarieum", - "title": "Refining Malachite", - "recipe": "spectrum:crystallarieum/malachite", - "text": "The Crystallarieum seems to be the only way for you to grow Malachite your short life's timeframe.$(br)The influence of $(item)Moonstone$() is required to create an environment for it to grow, mimicking the Deeper Down." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/paletur.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/paletur.json deleted file mode 100644 index bef8f820a2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/paletur.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "Paltaeria", - "advancement": "spectrum:lategame/collect_paletur", - "secret": true, - "icon": "spectrum:paletur_fragments", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:paletur_ore": 0, - "spectrum:paletur_fragments": 0, - "spectrum:paletur_gem": 0, - "spectrum:paletur_fragment_block": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Paltaeria", - "item": "spectrum:paletur_fragments", - "text": "The light blue color is the trademark of this ore. It is found exclusively in the end in small clusters.$(br)Like the end itself, the curious properties of this material are not to be overlooked." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Paltaeria Gem", - "advancement": "spectrum:hidden/collect_paletur_gem", - "recipe": "spectrum:pedestal/tier4/paletur_gem", - "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." - }, - { - "type": "patchouli:spotlight", - "title": "Paltaeria Floatblock", - "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", - "item": "spectrum:paletur_fragment_block", - "text": "From your previous experience with Paltaeria, you can already guess that it would not be a good idea to place this block in open sky.$(br2)The arrow on this block will service you as a reminder - your future self will thank you." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", - "recipe": "spectrum:pedestal/tier1/compacting/paletur_fragment_block", - "text": " $(italic)~Fly far away~" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/quitoxic_reeds.json deleted file mode 100644 index f6df265d7c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/quitoxic_reeds.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "Quitoxic Reeds", - "icon": "spectrum:quitoxic_reeds", - "advancement": "spectrum:collect_quitoxic_reeds", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:quitoxic_reeds": 0, - "spectrum:quitoxic_powder": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Quitoxic Reeds", - "images": [ - "spectrum:textures/gui/manual/quitoxic_reed.png" - ], - "border": true, - "text": "Grows exclusively in Swamps and seems to devour Clay as a form of nutrient." - }, - { - "type": "patchouli:spotlight", - "anchor": "quitoxic_powder", - "item": "spectrum:quitoxic_powder", - "text": "A purple glittering powder can be extracted from the stems of the alien-looking plant by crushing it with an anvil.$(br)Smell and consistency are very unusual when rubbed between your fingers.$(br2)$(italic)...wait a moment, what are fingers?" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/resonating_ender.json deleted file mode 100644 index 6739e4c490..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/resonating_ender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Resonating Ender", - "advancement": "spectrum:milestones/reveal_ender_treasure", - "icon": "minecraft:ender_pearl", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:ender_treasure": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Those pesky Endermen!$(br2)They always show up at night and steal blocks off the ground right from your nose. You have the feeling that the whole area here will be nothing but a single crater landscape in a month.$()" - }, - { - "type": "patchouli:spotlight", - "title": "Resonating Ender", - "item": "spectrum:ender_treasure", - "text": "The Endermen come to this world to place those blocks. But what is this stuff? And $(italic)WHY$() do they leave it here?$(br2)Now that you hold one in your hands... they are everywhere! How didn't you notice earlier? Anyways, you are sure that you can take advantage of this interesting material." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/scarlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/scarlet.json deleted file mode 100644 index 2063852c24..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/scarlet.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "Stratine", - "advancement": "spectrum:midgame/collect_scarlet", - "icon": "spectrum:scarlet_fragments", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:scarlet_ore": 0, - "spectrum:scarlet_fragments": 0, - "spectrum:scarlet_gem": 0, - "spectrum:scarlet_fragment_block": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Stratine", - "item": "spectrum:scarlet_fragments", - "text": "This very heavy ore is scattered around the depths of the Nether.$(br)It's probably not the best idea to carry large amounts of it home at once." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Stratine Gem", - "advancement": "spectrum:hidden/collect_scarlet_gem", - "recipe": "spectrum:pedestal/tier3/scarlet_gem", - "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." - }, - { - "type": "patchouli:spotlight", - "title": "Stratine Floatblock", - "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "item": "spectrum:scarlet_fragment_block", - "text": "Stratine - as you may have already noticed - is an exceptionally heavy material. And difficult to shape, too. Even the blazing heat of the Nether could not harm the material.$(br2)However, shaping it via your $(l:general/pedestal)Pedestal$() should not be a problem whatsoever." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "recipe": "spectrum:pedestal/tier1/compacting/scarlet_fragment_block", - "text": "$(italic)Heavy Metal" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/shimmerstone.json deleted file mode 100644 index d8902cfe91..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/shimmerstone.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Shimmerstone", - "advancement": "spectrum:collect_sparklestone", - "icon": "spectrum:sparklestone_ore", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:sparklestone_ore": 0, - "spectrum:deepslate_sparklestone_ore": 0, - "spectrum:blackslag_sparklestone_ore": 0, - "spectrum:sparklestone_gem": 0, - "spectrum:sparklestone_block": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Shimmerstone", - "item": "spectrum:sparklestone_gem", - "text": "A yellow ore that does not only emit energy in the form of light, but is able to manipulate it, too.$(br2)Shimmerstone is found close to sea level altitudes." - }, - { - "type": "patchouli:crafting", - "recipe": "spectrum:crafting_table/storage_blocks/sparklestone_block", - "text": "Full blocks of Shimmerstone emit glowing bright yellow particles." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/stargazing.json deleted file mode 100644 index e2a6abc14e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/en_us/entries/resources/stargazing.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "Stargazing", - "advancement": "spectrum:milestones/unlock_shooting_stars", - "icon": "minecraft:spyglass", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:shooting_star": 0, - "spectrum:stardust": 0, - "spectrum:shooting_star_glistering": 0, - "spectrum:shooting_star_fiery": 0, - "spectrum:shooting_star_colorful": 0, - "spectrum:shooting_star_pristine": 0, - "spectrum:shooting_star_gemstone": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Wishing upon a Star", - "images": [ - "spectrum:textures/gui/manual/stargazing.png" - ], - "border": true, - "text": "$(italic)The calmness of the night invites you to lie down in the grass and watch the stars." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:collect_shooting_star", - "title": "Shooting Stars", - "item": "spectrum:shooting_star_glistering", - "text": "The small Shooting Stars are made of a material unknown to you thus far.$(br2)Can you catch one right off the sky?$(br2)$(italic)Tip: Shooting Stars are much easier to spot when using a Telescope or Night Vision.$()" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:collect_shooting_star", - "title": "Star Fragments", - "item": "spectrum:shooting_star", - "text": "Shooting Stars yield precious resources, including this rare Star Fragment, Stardust and a whole lot of other rare materials.$(br2)Picking up a Shooting Star by crouching and $(l:general/anvil_crushing)smashing it via an Anvil$(/l) will yield double the Star Fragments, albeit at the cost of the other materials." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:collect_shooting_star", - "title": "Stardust", - "item": "spectrum:stardust", - "text": "A powder of unknown origin blessed with the soul of the stars.$(br)Bears coy, yet latent power." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "advancement": "spectrum:collect_all_shooting_star_variants", - "title": "Star Hardening", - "recipe": "spectrum:fusion_shrine/shooting_star_hardening", - "text": "Now that you've collected all the variations, it's finally time to unwind! Hardened with a Diamond the Stars do not break anymore when hit.$(br2)$(italic)Fancy a Starball tournament with your friends?" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/resources_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/resources_category.json deleted file mode 100644 index 08fb54df80..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/categories/resources_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Recursos", - "description": "Várias plantas e minérios estão espalhados pelo mundo apenas esperando que você os descubra. Isso se você notar eles.$(br)Quanto mais acostumado você estiver com a mágia que vem do mundo, maior a quantidade de recursos que você vai conseguir ver.", - "icon": "spectrum:sparklestone_ore", - "sortnum": 1 -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/banner_patterns.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/banner_patterns.json deleted file mode 100644 index fe2f470e24..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/banner_patterns.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Desenhos para Estandarte", - "icon": "spectrum:amethyst_shard_banner_pattern", - "advancement": "spectrum:spectrum", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:logo_banner_pattern": 0, - "spectrum:amethyst_shard_banner_pattern": 0, - "spectrum:amethyst_cluster_banner_pattern": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Desenhos para Estandarte", - "border": true, - "images": [ - "spectrum:textures/gui/manual/banners.png" - ], - "text": "Recursos e ferramentas que você encontra podem ser diretamente usados no Tear como desenhos." - }, - { - "type": "patchouli:crafting", - "title": "Desenhos Vanilla", - "recipe": "spectrum:crafting_table/banner_patterns/amethyst_cluster_banner_pattern", - "recipe2": "spectrum:crafting_table/banner_patterns/amethyst_shard_banner_pattern" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_lamps.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_lamps.json deleted file mode 100644 index 7f36260d39..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_lamps.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "Lâmpadas de Pedra Preciosa", - "icon": "spectrum:citrine_basalt_lamp", - "advancement": "spectrum:collect_sparklestone", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:topaz_basalt_lamp": 0, - "spectrum:amethyst_basalt_lamp": 0, - "spectrum:citrine_basalt_lamp": 0, - "spectrum:onyx_basalt_lamp": 0, - "spectrum:moonstone_basalt_lamp": 0, - "spectrum:topaz_calcite_lamp": 0, - "spectrum:amethyst_calcite_lamp": 0, - "spectrum:citrine_calcite_lamp": 0, - "spectrum:onyx_calcite_lamp": 0, - "spectrum:moonstone_calcite_lamp": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:citrine_basalt_lamp", - "title": "Lâmpadas de Pedra Preciosa", - "text": "$(italic)Quando você pisou no primeiro geodo, você se deparou com um agradável brilho confortante. Com o seu conhecimento e com ajuda da Pedra Cintilante, é fácil apliar essa luz para criar lâmpadas chiques.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Receita de Pedestal", - "recipe": "spectrum:pedestal/tier1/gem_lamps/citrine_basalt_lamp", - "text": "Lâmpadas de Pedra Preciosa existem nas cores de todas as pedras gemas disponíveis a você. Ambos $(l:decoration/block_variants#polished_basalt)Calcita Talhada$() e $(l:decoration/block_variants#polished_calcite)Basalto Talhado$() podem ser usados como base." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_storage_blocks.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_storage_blocks.json deleted file mode 100644 index fee694cc2e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/gemstone_storage_blocks.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "Blocos de Pedra Preciosa", - "advancement": "spectrum:spectrum", - "icon": "spectrum:citrine_storage_block", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:topaz_storage_block": 0, - "spectrum:amethyst_storage_block": 0, - "spectrum:citrine_storage_block": 0, - "spectrum:onyx_storage_block": 0, - "spectrum:moonstone_storage_block": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Blocos de Pedra Preciosa", - "text": "$(italic)As gemas tem uma aparência excepcionalmente bonita.$(br)A aparência de gemas brutas, de como você conhece dos geodos, parece muito natural para algumas contruções. Com recursos o suficiente, entranto, isso pode não ser um problema.$(br2)E se acabarem suas gemas alguma hora, a decoração pode ser facilmente quebrada novamente.$()" - }, - { - "type": "patchouli:crafting", - "title": "Topázio Polido", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "recipe": "spectrum:crafting_table/storage_blocks/topaz_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/topaz_shards_from_topaz_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Ametista Polida", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "recipe": "spectrum:crafting_table/storage_blocks/amethyst_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/amethyst_shards_from_amethyst_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Citrino Polido", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "recipe": "spectrum:crafting_table/storage_blocks/citrine_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/citrine_shards_from_citrine_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Ônix Polido", - "advancement": "spectrum:create_onyx_shard", - "recipe": "spectrum:crafting_table/storage_blocks/onyx_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/onyx_shards_from_onyx_storage_block" - }, - { - "type": "patchouli:crafting", - "title": "Pedra da Lua Polida", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "recipe": "spectrum:crafting_table/storage_blocks/moonstone_storage_block", - "recipe2": "spectrum:crafting_table/storage_blocks/moonstone_shards_from_moonstone_storage_block" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/phantom_frame.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/phantom_frame.json deleted file mode 100644 index d2b70387e9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/phantom_frame.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "Molduras Phantom", - "icon": "spectrum:invisible_item_frame", - "advancement": "spectrum:collect_sparklestone", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:invisible_item_frame": 0, - "spectrum:invisible_glow_item_frame": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Phantom Frames", - "text": "$(italic)Você gostaria de mostrar seus preciosos bens. Até agora, você sempre usou molduras para isso. Mas algumas exibições seriam melhores se não desse para ver a moldura.$(br)Mel na chupeta, você se aproveitou das propriedades de manipulação de luz das suas gemas." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Receita de Pedestal", - "recipe": "spectrum:pedestal/tier1/invisible_item_frame", - "text": "A Moldura Phantom fica invisível assim que você coloca um item nela." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Molduras Phantom Brilhantes", - "recipe": "spectrum:pedestal/tier1/invisible_glow_item_frame", - "text": "Essa tem um outro detalhe: o item mostrado emana uma luz clara, fazendo ele parecer ainda mais imponente." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/radiant_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/radiant_glass.json deleted file mode 100644 index 75b45846b4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/radiant_glass.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Vidro Radiante", - "advancement": "spectrum:collect_sparklestone", - "icon": "spectrum:glowing_glass", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:glowing_glass": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:glowing_glass", - "title": "Vidro Radiante", - "text": "$(italic)Você precisa de uma forma eficiente de iluminar seu abrigo e suas outras estruturas.$(br2)O que seria melhor que usar as propriedaded luminosas da Pedra Cintilante diretamente no seu vidro?$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Receita de Pedestal", - "recipe": "spectrum:pedestal/tier1/glowing_glass", - "text": "Vidro Radiante é basicamente o oposto de Vidro Fosco. A Pedra Cintilante usada na sua fabricação garante que o vidro brilho de dentro." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/sparklestone_lights.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/sparklestone_lights.json deleted file mode 100644 index d0e0606402..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/decoration/sparklestone_lights.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "Luzes de Pedra Cintilante", - "icon": "spectrum:basalt_sparklestone_light", - "advancement": "spectrum:progression/unlock_sparklestone_lights", - "category": "spectrum:decoration_category", - "extra_recipe_mappings": { - "spectrum:andesite_sparklestone_light": 0, - "spectrum:basalt_sparklestone_light": 0, - "spectrum:calcite_sparklestone_light": 0, - "spectrum:deepslate_sparklestone_light": 0, - "spectrum:diorite_sparklestone_light": 0, - "spectrum:granite_sparklestone_light": 0, - "spectrum:stone_sparklestone_light": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Nas primeiras noites nesse mundo você iluminou sua tendo improvisada com tochas.$(br)Mesmo sendo tão atmosférico quanto foi, também foi uma coisa: primitivo.$(br2)Pra se afastar do seu passado iluminado com tochas, você projetou lâmpadas baseadas em Pedra Cintilante.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Receita de Pedestal", - "recipe": "spectrum:pedestal/tier1/sparklestone_lights/basalt_sparklestone_light", - "text": "Você pode usar Basalto Polido, Calcita Polida, Pedra Lisa, Ardósia Polida, Diorito Polido, Andesito Polido ou Granito Polido como base." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/creating_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/creating_enchanted_books.json deleted file mode 100644 index a9efe1597b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/creating_enchanted_books.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Criando Livros", - "icon": "minecraft:enchanted_book", - "priority": true, - "sortnum": 2, - "advancement": "spectrum:midgame/enter_liquid_crystal", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "Usando $(l:general/pigment)Pigmento$(/l), ingredientes selecionados e um pouco de exeperiência, o $(l:enchanting/enchanter)Encantador$(/l) te perimite adicionar Encantamentos a Livros comuns.$(br2)Enquanto esse processo gasta mais experiência que encantar em uma Mesa de Encantamentos normal você tem total controle de qual Encantamento você quer criar." - }, - { - "type": "patchouli:image", - "images": [ - "spectrum:textures/gui/manual/creating_enchanted_books.png" - ], - "border": true, - "text": "$(italic)Talvez você até consiga usar esse processo para encantar suas ferramentas mágicas." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/curse_of_the_void.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/curse_of_the_void.json deleted file mode 100644 index ca64b388fe..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/curse_of_the_void.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "Maldição do Vazio", - "icon": "minecraft:wooden_pickaxe", - "advancement": "spectrum:progression/tools/unlock_voiding_pickaxe", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Suas ferramentas com esse encantmento parecem dissolver tudo que mineram sem deixar nada. Quebrado virando a areia mais fina e sendo levado pelo vento.$(br2)Para caso você queira derrubar mais cidade feita de pura pedra isso possa ser útil. Algumas coisas provavelmente são uma maldição e uma bênção ao mesmo tempo." - }, - { - "type": "patchouli:spotlight", - "title": "Características", - "item": "minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "text": "Destroi o blocos sem gerar espólios.$(br2)Maior Nível: 1$(br)Aplicável em ferramentas de mineração." - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Receitar de Encantador", - "recipe": "spectrum:enchanter/spectrum_books/book_voiding", - "advancement": "spectrum:progression/enchantments/voiding", - "text": "Você pode infusionar um livro comum com Maldição do Vazio rodeando seu Encantador com Pigmento e outros materiais necessários." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/enchanting_items.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/enchanting_items.json deleted file mode 100644 index 566478d981..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/enchanting_items.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Encantação Spectrum", - "icon": "spectrum:enchanter", - "priority": true, - "sortnum": 1, - "advancement": "spectrum:midgame/enter_liquid_crystal", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Encantação Spectrum", - "text": "Usar o Encantador para encantar itens é bem fácil:$(br)Coloque Livros Encantados nas $(l:decoration/item_bowl)Tijelas de Item$(/l) e o item que você quer encantar no próprio Encantador.$(br2)Diferente de encatação normal, isso não consome os livros - mas vai precisar de uma quantidade de experiência muito maior." - }, - { - "type": "patchouli:image", - "images": [ - "spectrum:textures/gui/manual/enchanting_items.png" - ], - "border": true, - "text": "Finalmente providencie uma fonte constante de experiência usando uma $(l:magical_items/knowledge_gem)Gema do Conhecimento$(/l) e está tudo pronto." - }, - { - "type": "patchouli:spotlight", - "item": "minecraft:enchanted_book", - "title": "Copiar Livros Encantados", - "text": "Você também pode usar esse mecanismo para criar novos Livros Encantador. Basta colocar o(s) Livro(s) Encantado(s) que você quer colocar nas $(l:decoration/item_bowl)Tijelas de Item$(/l) e um livro simples no $(l:enchanting/enchanter)Encantador$(/l).$(br2)Por causa da natureza mundana dos livros isso vai precisar de muita experiência." - }, - { - "type": "patchouli:text", - "title": "Experiência Necessária", - "text": "Você estima um valor $(bold)entre 50 e 200 pontos de experiência na maior parte dos casos por encantamento$().$(br)Quanto mais raro o encantamento, maior seu nível, melhor o alvo para receber os encantamentos, e alguns outros fatores afeta esse resultado.$(br)Interferências aumentam o custo, como encantamentos que não são para seu alvo." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/treasure_hunter.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/treasure_hunter.json deleted file mode 100644 index 9f176e5cbe..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/treasure_hunter.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Caçador de Tesouros", - "icon": "minecraft:iron_sword", - "advancement": "spectrum:progression/enchantments/treasure_hunter", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Em uma pintura você viu uma criatura fantástica que parece ser feita de Areia das Almas e Crânios de Esqueletos Wither. Por horas você fica em uma Fortaleza no Nether, quase perdendo a própria cabeça enquanto procura com um Esqueleto Wither com a espinha solta o suficiente para derrubar seu crânio. Paciência, você nunca foi de desistir fácil." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:cow_head", - "text": "$(italic)Mas tem os Creepers! Uma vez atingidos por um raio, eles causam uma explosão tão robusta que a explosão arranca a cabeça de seus oponentes do corpo (no pior caso: você).$(br)Num momento de epifania você pensou nesse novo encantamento usando $(l:resources/lightning_stones)Pedras de Tempestade$(/l).$(br)Então Caçador de Tesouros foi criado, permitindo você coletar $(l:creating_life/mob_heads)Cabeças de todos os tipo de Criaturas$(/l)." - }, - { - "type": "patchouli:spotlight", - "title": "Características", - "item": "minecraft:iron_sword{Enchantments: [{id: \"spectrum:treasure_hunter\", lvl: 3s}]}", - "text": "Ocasionalmente derruba cabeças de criaturas ao matar.$(br2)Nível Máximo: 3$(br)Aplicável a armas corpo a corpo.$(br)Mutualmente exclusivo com Saque." - }, - { - "type": "spectrum:enchanter_crafting", - "title": "Receita de Encantador", - "recipe": "spectrum:enchanter/spectrum_books/book_treasure_hunter", - "text": "Você pode infusionar um livro comum com Caçador de Tesouros rodeando seu Encantador com Pigmento e outros materiais necessários." - }, - { - "type": "spectrum:enchanter_upgrading", - "title": "Melhoria de Encantador", - "recipe": "spectrum:enchantment_upgrade/spectrum/treasure_hunter_level_2", - "text": "Melhorar Caçador de Tesouros do nível 1 ao nível 2 é razoavelmente barato no começo.$(br)Esse preço rapidamenta aumenta para mais e mais Pigmento e Experiência para cada nível adicional." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/upgrading_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/upgrading_enchanted_books.json deleted file mode 100644 index b86883ef71..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/enchanting/upgrading_enchanted_books.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Melhorando Livros", - "icon": "minecraft:enchanted_book", - "priority": true, - "sortnum": 3, - "advancement": "spectrum:midgame/enter_liquid_crystal", - "category": "spectrum:enchanting_category", - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Encantamentos e sua Magia de Cor tem muito em comum. É por isso que você não ficou surpreso quando sua primeira tentativa de combinar Livros Encantados com $(l:general/pigment)Pigmento$(/l) foi um sucesso instantâneo.$()$(br2)Colocando um Livro Ecnantado no Encantador, rodeando com Pigmento apropriado e dano uma fonte constante de experiência aumenta o nível do seu livro." - }, - { - "type": "patchouli:image", - "images": [ - "spectrum:textures/gui/manual/upgrading_enchanted_books.png" - ], - "border": true, - "text": "Só tente não interromper o processo, se não ele para completamente." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/ancient_ruins.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/ancient_ruins.json deleted file mode 100644 index b3d0883a37..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/ancient_ruins.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Ruínas Anciãs", - "icon": "spectrum:dike_chiseled_preservation_stone", - "advancement": "spectrum:find_ancient_ruins", - "sortnum": 16, - "turnin": "spectrum:generate_ancient_ruins_loot", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:preservation_stone": 0, - "spectrum:preservation_controller": 0, - "spectrum:dike_chiseled_preservation_stone": 0, - "spectrum:treasure_chest": 0, - "spectrum:preservation_glass": 0, - "spectrum:tinted_preservation_glass": 0, - "spectrum:dike_gate": 0, - "spectrum:dike_gate_fountain": 0, - "spectrum:courier_statue": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Ruínas Anciãs", - "item": "spectrum:dike_chiseled_preservation_stone", - "text": "No subterrânio você achou essa estrutura gigante, a entrada da qual parece estar protegida por uma forte, força mágica." - }, - { - "type": "patchouli:image", - "title": "A Entrada", - "images": [ - "spectrum:textures/gui/manual/ancient_ruins.png" - ], - "border": true, - "text": "O que pode estar se escondendo de você atrás dessa barreira? Qual o significado desses glifos?" - }, - { - "type": "patchouli:spotlight", - "title": "Mais do Digno", - "item": "spectrum:azure_dike_ring", - "advancement": "spectrum:enter_ancient_ruins", - "text": "Parece que usar equipamento de Dique Azul te permitiu entrar.$(br2)Até agora, você pensou estar sozinho no seu empenho com as gemas e os pigmentos. Pelo que parece você estava errado. $(italic)Muito, muito errado..." - }, - { - "type": "patchouli:text", - "title": "Um Desafio?", - "advancement": "spectrum:generate_ancient_ruins_loot", - "text": "Quem quer que tenha construído essas estruturas, obviamente seguiram o mesmo caminho que você, mas eles estão kilómetro na sua frente, tecnologicamente.$(br2)De qualquer forma. Você aceita o desafio, claro. Você tem uma grande vantagem:$(br)$(italic)VOCÊ ainda está vivo." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/anvil_crushing.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/anvil_crushing.json deleted file mode 100644 index 879cc54a40..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/anvil_crushing.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Esmagar Item", - "icon": "minecraft:anvil", - "sortnum": 3, - "advancement": "spectrum:place_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:collect_gemstone_powder", - "pages": [ - { - "type": "patchouli:image", - "title": "Esmagar Item", - "images": [ - "spectrum:textures/gui/manual/anvil_crushing.png" - ], - "border": true, - "text": "$(italic)\"Para criar algo novo$(br)você tem que ir pelo caminho da destruição\" - alguém" - }, - { - "type": "patchouli:text", - "text": "Até agora você usou sua bigorna principalmente para reparar e aprimorar suas ferramentas. Porém, um objeto tã̀o pesado como uma bigorna pode ser muito mais útil! Por que não usá-la para esmagar coisas até o pó por força bruta? Tipo a cabeça dos seus inimigos ... ou itens. É, isso é provavelmente melhor.$(br2)Você pode esmagar $(l:general/shards)Fragmentos de Pedra Gema$() em $(l:general/gemstone_powder)pó$().$(br2)$(italic)Dica: Quanto mais a bigorna cair, melhor." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/color_mixing.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/color_mixing.json deleted file mode 100644 index aa91e41638..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/color_mixing.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "Misturar Cores", - "icon": "minecraft:light_blue_dye", - "sortnum": 5, - "advancement": "spectrum:collect_vegetal", - "category": "spectrum:general_category", - "turnin": "spectrum:craft_colored_sapling", - "pages": [ - { - "type": "patchouli:image", - "title": "Misturar Cores", - "images": [ - "spectrum:textures/gui/manual/color_mixing.png" - ], - "text": "Ao usar as cores base $(c_cyan)Ciano$(), $(c_magenta)Magenta$() e $(c_yellow)Amarelo$(), (quase) toda cor pode ser criada." - }, - { - "type": "patchouli:text", - "text": "Suas tentativas de misturar $(l:general/gemstone_powder)Pó de Pedra Gema$(/l) diretamente não tiveram muito sucesso. Mas você teve outra ideia agora:$(br)A relação das suas pedras gemas com a natureza implica que $(italic)natureza$() deve ser tanto a fonte como a resposta!$(br2)Rapidamente você rabisca algumas anotações e $(l:general/colored_trees)sai uma receita$(), que parece promissora." - }, - { - "type": "patchouli:text", - "title": "Criando Pigmento Marrom", - "text": "Você tentou e tentou. Você não conseguiu achar uma forma de criar pigmento marrom ao misturar seus pós de pedra gema. O mais perto que você conseguiu foi um laranja desbotado - ui.$(br)Não pode ser TÃO difícil. Tipo... $(c_brown)terra é marrom$() e é a coisa mais comum por perto.$(br2)Tem que ter um jeito...$(br)e você está bem certo de que $(c_black)Preto$() é a resposta." - }, - { - "type": "patchouli:link", - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "text": "$(br2)$(br2)$(italic)Sério, pode ver! O jeito que a gente percebe marrom é facinante!$()", - "url": "https://www.youtube.com/watch?v=wh4aWZRtTwU", - "link_text": "Marrom é Estranho" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/colored_trees.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/colored_trees.json deleted file mode 100644 index fffccb085b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/colored_trees.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "name": "Ãrvores Coloridas", - "icon": "spectrum:red_sapling", - "sortnum": 6, - "advancement": "spectrum:collect_vegetal", - "turnin": "spectrum:craft_colored_sapling", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:black_sapling": 0, - "spectrum:blue_sapling": 0, - "spectrum:brown_sapling": 0, - "spectrum:cyan_sapling": 0, - "spectrum:gray_sapling": 0, - "spectrum:green_sapling": 0, - "spectrum:light_blue_sapling": 0, - "spectrum:light_gray_sapling": 0, - "spectrum:lime_sapling": 0, - "spectrum:magenta_sapling": 0, - "spectrum:orange_sapling": 0, - "spectrum:pink_sapling": 0, - "spectrum:purple_sapling": 0, - "spectrum:red_sapling": 0, - "spectrum:white_sapling": 0, - "spectrum:yellow_sapling": 0, - "spectrum:black_log": 0, - "spectrum:blue_log": 0, - "spectrum:brown_log": 0, - "spectrum:cyan_log": 0, - "spectrum:gray_log": 0, - "spectrum:green_log": 0, - "spectrum:light_blue_log": 0, - "spectrum:light_gray_log": 0, - "spectrum:lime_log": 0, - "spectrum:magenta_log": 0, - "spectrum:orange_log": 0, - "spectrum:pink_log": 0, - "spectrum:purple_log": 0, - "spectrum:red_log": 0, - "spectrum:white_log": 0, - "spectrum:yellow_log": 0, - "spectrum:black_leaves": 0, - "spectrum:blue_leaves": 0, - "spectrum:brown_leaves": 0, - "spectrum:cyan_leaves": 0, - "spectrum:gray_leaves": 0, - "spectrum:green_leaves": 0, - "spectrum:light_blue_leaves": 0, - "spectrum:light_gray_leaves": 0, - "spectrum:lime_leaves": 0, - "spectrum:magenta_leaves": 0, - "spectrum:orange_leaves": 0, - "spectrum:pink_leaves": 0, - "spectrum:purple_leaves": 0, - "spectrum:red_leaves": 0, - "spectrum:white_leaves": 0, - "spectrum:yellow_leaves": 0, - "spectrum:black_planks": 0, - "spectrum:blue_planks": 0, - "spectrum:brown_planks": 0, - "spectrum:cyan_planks": 0, - "spectrum:gray_planks": 0, - "spectrum:green_planks": 0, - "spectrum:light_blue_planks": 0, - "spectrum:light_gray_planks": 0, - "spectrum:lime_planks": 0, - "spectrum:magenta_planks": 0, - "spectrum:orange_planks": 0, - "spectrum:pink_planks": 0, - "spectrum:purple_planks": 0, - "spectrum:red_planks": 0, - "spectrum:white_planks": 0, - "spectrum:yellow_planks": 0, - "spectrum:black_plank_stairs": 0, - "spectrum:blue_plank_stairs": 0, - "spectrum:brown_plank_stairs": 0, - "spectrum:cyan_plank_stairs": 0, - "spectrum:gray_plank_stairs": 0, - "spectrum:green_plank_stairs": 0, - "spectrum:light_blue_plank_stairs": 0, - "spectrum:light_gray_plank_stairs": 0, - "spectrum:lime_plank_stairs": 0, - "spectrum:magenta_plank_stairs": 0, - "spectrum:orange_plank_stairs": 0, - "spectrum:pink_plank_stairs": 0, - "spectrum:purple_plank_stairs": 0, - "spectrum:red_plank_stairs": 0, - "spectrum:white_plank_stairs": 0, - "spectrum:yellow_plank_stairs": 0, - "spectrum:black_plank_pressure_plate": 0, - "spectrum:blue_plank_pressure_plate": 0, - "spectrum:brown_plank_pressure_plate": 0, - "spectrum:cyan_plank_pressure_plate": 0, - "spectrum:gray_plank_pressure_plate": 0, - "spectrum:green_plank_pressure_plate": 0, - "spectrum:light_blue_plank_pressure_plate": 0, - "spectrum:light_gray_plank_pressure_plate": 0, - "spectrum:lime_plank_pressure_plate": 0, - "spectrum:magenta_plank_pressure_plate": 0, - "spectrum:orange_plank_pressure_plate": 0, - "spectrum:pink_plank_pressure_plate": 0, - "spectrum:purple_plank_pressure_plate": 0, - "spectrum:red_plank_pressure_plate": 0, - "spectrum:white_plank_pressure_plate": 0, - "spectrum:yellow_plank_pressure_plate": 0, - "spectrum:black_plank_fence": 0, - "spectrum:blue_plank_fence": 0, - "spectrum:brown_plank_fence": 0, - "spectrum:cyan_plank_fence": 0, - "spectrum:gray_plank_fence": 0, - "spectrum:green_plank_fence": 0, - "spectrum:light_blue_plank_fence": 0, - "spectrum:light_gray_plank_fence": 0, - "spectrum:lime_plank_fence": 0, - "spectrum:magenta_plank_fence": 0, - "spectrum:orange_plank_fence": 0, - "spectrum:pink_plank_fence": 0, - "spectrum:purple_plank_fence": 0, - "spectrum:red_plank_fence": 0, - "spectrum:white_plank_fence": 0, - "spectrum:yellow_plank_fence": 0, - "spectrum:black_plank_fence_gate": 0, - "spectrum:blue_plank_fence_gate": 0, - "spectrum:brown_plank_fence_gate": 0, - "spectrum:cyan_plank_fence_gate": 0, - "spectrum:gray_plank_fence_gate": 0, - "spectrum:green_plank_fence_gate": 0, - "spectrum:light_blue_plank_fence_gate": 0, - "spectrum:light_gray_plank_fence_gate": 0, - "spectrum:lime_plank_fence_gate": 0, - "spectrum:magenta_plank_fence_gate": 0, - "spectrum:orange_plank_fence_gate": 0, - "spectrum:pink_plank_fence_gate": 0, - "spectrum:purple_plank_fence_gate": 0, - "spectrum:red_plank_fence_gate": 0, - "spectrum:white_plank_fence_gate": 0, - "spectrum:yellow_plank_fence_gate": 0, - "spectrum:black_plank_button": 0, - "spectrum:blue_plank_button": 0, - "spectrum:brown_plank_button": 0, - "spectrum:cyan_plank_button": 0, - "spectrum:gray_plank_button": 0, - "spectrum:green_plank_button": 0, - "spectrum:light_blue_plank_button": 0, - "spectrum:light_gray_plank_button": 0, - "spectrum:lime_plank_button": 0, - "spectrum:magenta_plank_button": 0, - "spectrum:orange_plank_button": 0, - "spectrum:pink_plank_button": 0, - "spectrum:purple_plank_button": 0, - "spectrum:red_plank_button": 0, - "spectrum:white_plank_button": 0, - "spectrum:yellow_plank_button": 0, - "spectrum:black_plank_slab": 0, - "spectrum:blue_plank_slab": 0, - "spectrum:brown_plank_slab": 0, - "spectrum:cyan_plank_slab": 0, - "spectrum:gray_plank_slab": 0, - "spectrum:green_plank_slab": 0, - "spectrum:light_blue_plank_slab": 0, - "spectrum:light_gray_plank_slab": 0, - "spectrum:lime_plank_slab": 0, - "spectrum:magenta_plank_slab": 0, - "spectrum:orange_plank_slab": 0, - "spectrum:pink_plank_slab": 0, - "spectrum:purple_plank_slab": 0, - "spectrum:red_plank_slab": 0, - "spectrum:white_plank_slab": 0, - "spectrum:yellow_plank_slab": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Ãrvores Coloridas", - "text": "Você precisa de alguma coisa orgânica pra misturar seus pigmentos. Nos seus experimentos, você pode ver que as raízes das mudas absorveme a cor dos pigmentos com facilidade e se desenvolvem de acordo. A energia das gemas pulsa pelo tronco e pelas primeiras folhas já.$(br2)Como elas vão ser quando crescidas?" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Mudas Coloridas", - "recipe": "spectrum:pedestal/tier1/saplings/red_sapling", - "text": "Cada Muda Colorida vai precisar de uma combinção diferente de $(l:general/gemstone_powder)Pó de Pedra Gema$(), correspondente a $(l:general/color_mixing)quantidade para misturar sua cor$(/l)." - }, - { - "type": "patchouli:image", - "title": "Geração Natural", - "advancement": "spectrum:craft_colored_sapling", - "images": [ - "spectrum:textures/gui/manual/colored_trees.png" - ], - "text": "Elas sempre existiram! Quem sabe o que mais tem por aí?" - }, - { - "type": "patchouli:crafting", - "advancement": "spectrum:craft_colored_sapling", - "title": "Madeira Colorida", - "recipe": "spectrum:crafting_table/colored_wood/light_blue_planks", - "text": "Como sua versão não-colorida e não-mágica, você pode usar o tronco colorido para fazer Tábuas, Escadas, Lajes, Botões, Placas de Pressão, Cercas e Portões." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/fusion_shrine.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/fusion_shrine.json deleted file mode 100644 index 2ed6e9d650..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/fusion_shrine.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "Altar de Fusão", - "icon": "spectrum:fusion_shrine_basalt", - "sortnum": 9, - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "turnin": "spectrum:build_fusion_shrine", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:fusion_shrine_basalt": 1, - "spectrum:fusion_shrine_calcite": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Para o processo de criação de $(l:general/onyx_shards)Fragmentos Pretos$() você desenvolveu uma construção especial.$(br2)Você pode clicar ou jogar item e baldes nela. Você também consegue processar um pilha de ingredientes de fusão de uma vez, fazeno fusão muito mais eficiente do que com um único item por ciclo." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Receita de Pedestal", - "recipe": "spectrum:pedestal/tier2/fusion_shrine_basalt", - "text": "Pode ser feito de Basalto ou Calcita.$(br)Precisa de uma estrutura de foco e visão clara ao céu." - }, - { - "type": "patchouli:multiblock", - "name": "Estrutura de Altar", - "multiblock_id": "spectrum:fusion_shrine_structure", - "enable_visualize": true, - "text": "Você sempre pode trocar Basalto por Calcita e escolher $(l:decoration/gemstone_storage_blocks)Blocos de Pedra Gema$(/l) a sua preferência." - }, - { - "type": "patchouli:text", - "title": "Lista Cheque de Blocos", - "text": "$(li)1 Altar de Fusão$(li)4 Blocos Polidos de Pedra Gema$(li)4 Blocos Polidos Talhados$(li)8 Pilares Polidos$(li)12 Lajes Polidas$(li)77 Blocos Polidos" - }, - { - "type": "patchouli:text", - "title": "Mudando o Tempo", - "text": "Você projetou a estrutura do Altar de Fusão para juntar as energias magicas de $(c_cyan)Matéria$(), $(c_magenta)Tempo$() e $(c_yellow)Energia$() e focá-las em um único ponto central, o Altar de Fusão em si.$(br2)Essas energias poderosas agrupadas parecem ter poder suficiente até para mudar o Tempo." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Tempo Ensolarado", - "recipe": "spectrum:fusion_shrine/weather/weather_clear", - "text": "$(italic)É um novo dia$(br)E o Sol está alto$(br)Todos os pássaros estão cantando$(br)Que você vai morrer." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Tempo Chuvoso", - "advancement": "spectrum:collect_mermaids_gem", - "recipe": "spectrum:fusion_shrine/weather/weather_rain", - "text": "$(italic)Toc Toc$(br)Quem é?$(br)Senhor do Tempo$(br)Senhor do Tempo quem?$(br)Eu não sou senhor do tempo, mas eu sei que vai chover." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Tempestades", - "advancement": "spectrum:midgame/collect_lightning_stone", - "recipe": "spectrum:fusion_shrine/weather/weather_thunder", - "text": "$(italic)Não é bom dar um copo d'água pra Thor$(br2)Porque ele vai causar uma tempestade em copo d'água." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/intro.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/intro.json deleted file mode 100644 index 28599916a0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/intro.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "Intro", - "icon": "spectrum:pedestal_basic_amethyst", - "category": "spectrum:general_category", - "sortnum": 0, - "pages": [ - { - "type": "patchouli:image", - "title": "Welcome to Spectrum!", - "images": [ - "spectrum:textures/gui/manual/spectrum.png" - ], - "border": true, - "text": "Spectrum é um mod completo sobre magia e eexploração." - }, - { - "type": "patchouli:text", - "text": "Spectrum ée baseado em mistura de cores no sistema subtrativo de cores (CMYK). Mistura subtrativa de cores pode ser familiar a você de pintar com aquarela ou imprimir.$(br2)As cores principais de Spectrum são representadas por pedras gemas, achadas em geodos espalhados pelo mundo, com a Ametista do vanilla representando a parte Magenta do espétro." - }, - { - "type": "patchouli:text", - "title": "Sistema de Progressão", - "text": "Spectrum tem um sistema complexo de progressão onde você desbloqueia novas coisas ao progredir.$(br)Ao se aprofundar, você vai notar mudanças no mundo. Diferenças, que apenas você consegue notar.$(br2)Tudo que você aprender vai te trazer mais perto do seu destino final: Achar o que está esperando por você de baixo do chão impenetrável de Rocha-Mãe." - }, - { - "type": "patchouli:link", - "text": "Sem ideia de como progredir? Dê uma olhada nos seus progressos. Eles vão te dar varias dicas da próxima coisa a fazer.$(br2)$(br)Spectrum ainda está em desenvolvimento pesado. Se você achar um bug ou tiver uma sugestão, visite o Discord do Spectrum ou reporte no Github.$(br2)Se Divirta!$(br) - DaFuqs", - "url": "https://discord.com/invite/EXU9XFXT8a", - "link_text": "Discord do Spectrum" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_cmy.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_cmy.json deleted file mode 100644 index 60c8739218..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_cmy.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Melhoria CMY de Pedestal", - "icon": "spectrum:pedestal_all_basic", - "sortnum": 8, - "advancement": "spectrum:progression/unlock_cmy_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:build_basic_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_all_basic": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "Variante CMY", - "recipe": "spectrum:pedestal/tier1/pedestal_all_basic", - "text": "Aprimore seu $(l:general/pedestal)Pedestal de Pigmentos$() usando todos os fragmentos que você coletou na sua jornada." - }, - { - "type": "patchouli:text", - "title": "Estrutura de Pedestal", - "text": "Para pode usar as abilidades aprimoradas do $(l:general/pedestal)Pedestal de Pigmentos$() você vai precisar de uma estrutura para focar energia de pedra gema.$(br2)Você chama de $(br)$(bold)Foco Spectrum$()." - }, - { - "type": "patchouli:multiblock", - "name": "Foco Spectrum", - "multiblock_id": "spectrum:pedestal_simple_structure_check", - "enable_visualize": true, - "text": "Você pode trocar os blocos de basalto por calcita e escolher os blocos de pedra gema como quiser." - }, - { - "type": "patchouli:text", - "title": "Lista Cheque de Blocos", - "text": "$(li)1 Pedestal de Pigmentos$(li)4 Blocos de Pedra Gema Polidos$(li)4 Blocos Polidos Talhados$(li)4 Blocos Polidos Entalhados$(li)8 Pilares Polidos$(li)68 Blocos Polidos" - }, - { - "type": "patchouli:image", - "title": "Personalize!", - "images": [ - "spectrum:textures/gui/manual/spectrum_focus_customisation.png" - ], - "text": "Misture Basalto e Calcita para criar sua variaçã̀o pessoal!" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_moonstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_moonstone.json deleted file mode 100644 index fe37a1802d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_moonstone.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Melhoria de Pedra da Lua de Pedestal", - "icon": "spectrum:pedestal_moonstone", - "sortnum": 13, - "advancement": "spectrum:lategame/spectrum_lategame", - "category": "spectrum:general_category", - "turnin": "spectrum:lategame/build_complex_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_moonstone": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "Variante de Pedra da Lua", - "recipe": "spectrum:pedestal/tier3/pedestal_moonstone", - "text": "Aprimore seu $(l:general/pedestal)Pedestal de Pigmentos$() usando os $(l:general/shards#moonstone)Fragmentos de Pedra da Lua$() que você coletou." - }, - { - "type": "patchouli:multiblock", - "name": "Palácio Spectrum", - "multiblock_id": "spectrum:pedestal_complex_structure_check", - "enable_visualize": true, - "text": "Você pode trocar os blocos de basalto por calcilta e também os blocos de ametista por qualquer outro bloco de pedra gema." - }, - { - "type": "patchouli:text", - "title": "Lista Cheque (Completa)", - "text": "$(li)1 Pedestal de Pigmentos$(li)4 Blocos Esculpidos com Ônix$(li)4 Blocos Polidos Entalhados$(li)8 Lâmpadas de Pedra Gema$(li)4 Blocos Esculpidos com Pedra Gema$(li)12 Blocos de Pedra Gema Polida$(li)16 Bl. Esculpidos com CMY$(li)28 Bl. Esculpidos com Pedra da Lua$(li)36 Pilares Polidos$(li)52 Blocos Ornamentais Polidos$(li)144 Blocos Polidos" - }, - { - "type": "patchouli:text", - "title": "Lista Cheque (Aprimoramento)", - "text": "$(li)4 Blocos Esculpidos com Ônix$(li)4 Blocos de Pedra Gema Polidos$(li)28 Bl. Esculpidos com Pedra da Lua$(li)36 Blocos Ornamentais Polidos" - }, - { - "type": "patchouli:image", - "title": "Personalize!", - "images": [ - "spectrum:textures/gui/manual/spectrum_complex_customisation.png" - ], - "text": "Misture os blocos para criar sua variação pessoal!" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_onyx.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_onyx.json deleted file mode 100644 index 447b316fa7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/pedestal_upgrade_onyx.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "Melhoria Ônix de Pedestal", - "icon": "spectrum:pedestal_onyx", - "sortnum": 11, - "advancement": "spectrum:create_onyx_shard", - "category": "spectrum:general_category", - "turnin": "spectrum:midgame/build_advanced_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_onyx": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "Variante Ônix", - "recipe": "spectrum:pedestal/tier2/pedestal_onyx", - "text": "Aprimore seu $(l:general/pedestal)Pedestal de Pigmentos$() usando um dos seus $(l:general/shards#onyx)Fragmentos de Ônix$() para aumentar ainda mais seus poderes mágicos." - }, - { - "type": "patchouli:multiblock", - "name": "Templo Spectrum", - "multiblock_id": "spectrum:pedestal_advanced_structure_check", - "enable_visualize": true, - "text": "Você pode trocar os blocos de basalto por calcilta e também os blocos de ametista por qualquer outro bloco de pedra gema." - }, - { - "type": "patchouli:text", - "title": "Lista Cheque (Completa)", - "text": "$(li)1 Pedestal de Pigmentos$(li)8 Blocos de Pedra Gema Polidos$(li)8 Lâmpadas de Pedra Gema$(li)4 Blocos Polidos Talhados$(li)16 Blocos Esculpidos com Pedra Gema$(li)16 Blocos Ornamentais Polidos$(li)4 Blocos Polidos Entalhados$(li)36 Pilares Polidos$(li)160 Blocos Polidos" - }, - { - "type": "patchouli:text", - "title": "Lista Cheque (Aprimoramento)", - "text": "$(li)4 Blocos de Pedra Gema Polidos$(li)8 Lâmpadas de Pedra Gema$(li)16 Blocos Esculpidos com Pedra Gema$(li)16 Blocos Ornamentais Polidos$(li)28 Pilares Polidos$(li)92 Blocos Polidos" - }, - { - "type": "patchouli:image", - "title": "Personalize!", - "images": [ - "spectrum:textures/gui/manual/spectrum_hall_customisation.png" - ], - "text": "Misture os blocos para criar sua variação pessoal!" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/shards.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/shards.json deleted file mode 100644 index 61bb7bcf26..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/general/shards.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "Fragmentos de Pedra Gema", - "icon": "minecraft:amethyst_shard", - "sortnum": 1, - "category": "spectrum:general_category", - "turnin": "spectrum:collect_all_basic_shards", - "extra_recipe_mappings": { - "spectrum:topaz_shard": 0, - "minecraft:amethyst_shard": 0, - "spectrum:citrine_shard": 0, - "spectrum:onyx_shard": 0, - "spectrum:moonstone_shard": 0, - "spectrum:spectral_shard": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Para começar a investigar Spectrum você primeiro tem que achar alguns fragmentos de Pedra Gema.$(br2)Cada tipo de pedra gema representa uma cor elemental e um tipo diferente de força natural." - }, - { - "type": "patchouli:spotlight", - "anchor": "topaz", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "title": "Fragmentos de Topázio", - "item": "spectrum:topaz_shard", - "text": "Fragmentos de Topázio são surpreendentemente pesados na sua mão. Frágeis de relance, esse pedra gema rapidamente se tornou um dos materias mais robustos que você conseguir - talvez apenas superado pelo diamante. Topázio é achado em geodos bem no topo de colinas íngremes e no topo de montanhas muito altas.$(br)O Topázio representa $(bold)$(c_cyan)MATÉRIA$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "amethyst", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "title": "Fragmentos de Ametista", - "item": "minecraft:amethyst_shard", - "text": "A luz magenta refrata nessa pedra gema.$(br)Formada por eras nos geodos, essa pedra gema erradia temor. É um símbolo de permanência e achado nas camadas mais profunas o muno.$(br2)A Ametista representa $(bold)$(c_purple)TEMPO$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "citrine", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "title": "Fragmentos de Citrino", - "item": "spectrum:citrine_shard", - "text": "Essa pedra gema amarela é achada perto do nível da superfície, one a luz o sol dissipa em calor.$(br2)Seu brilho amarelo vivo erradia $(bold)$(c_yellow)ENERGIA$() pura e é levemente quente ao toque a todo momento." - }, - { - "type": "patchouli:spotlight", - "anchor": "onyx", - "advancement": "spectrum:create_onyx_shard", - "title": "Fragmentos de Ônix", - "item": "spectrum:onyx_shard", - "text": "Ônix é quase um breu. Parece até que retiraria a luz do ambiente.$(br2)A Ônix, como uma combinação de energia, matéria, e tempo, serve como $(bold)$(c_black)reforço de foco e catalista$() para ferramentas e dispositívos mágicos." - }, - { - "type": "patchouli:spotlight", - "anchor": "moonstone", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "title": "Fragmentos de Pedra da Lua", - "item": "spectrum:moonstone_shard", - "text": "Seu brilho branco azulada te lembra da luz acalmante da lua em uma noite calma de verão. A tranquilidade que exala deixa uma marca calma, mas significante, como um gato dormindo - bálsamo para a alma, mas também um predador, sempre de guarda.$(br2)A Pedra da Lua encarna $(bold)$(c_white)magia pura$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "spectral", - "advancement": "spectrum:lategame/create_spectral_shard", - "title": "Fragmentos Espectrais", - "item": "spectrum:spectral_shard", - "text": "Fragmentos Espectrais brilham em todas as cores do arco-íris." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/amethyst.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/amethyst.json deleted file mode 100644 index 6daeca65de..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/amethyst.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "A Gemstone", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:spectrum", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "cost": "spectrum:citrine_shard#16", - "text": "There is a type of geode to be found deep underground." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/azurite.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/azurite.json deleted file mode 100644 index ea4a5577d7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/azurite.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_azurite", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_azurite", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:midgame/collect_azurite", - "cost": "spectrum:neolith#8", - "text": "There is a new Ore to be found in the Overworld in all biomes." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:neolith#24", - "text": "This rich blue ore generates very deep down under the surface and is fairly rare." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/citrine.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/citrine.json deleted file mode 100644 index 0ac17c1f6c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/citrine.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "A Gemstone", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:spectrum", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:hidden/collect_shards/collect_citrine_shard", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "cost": "spectrum:topaz_shard#16", - "text": "There is a type of geode commonly found near surface level. You may find it exposed most often in lakes or ravines." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/clover.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/clover.json deleted file mode 100644 index e370be2509..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/clover.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/build_enchanting_structure", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_four_leaf_clover", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to look", - "completion_advancement": "spectrum:collect_four_leaf_clover", - "cost": "spectrum:vegetal#16", - "text": "Search for a Plains biome. Maybe you get lucky!" - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:vegetal#48", - "text": "There is Clover growing in Plains biomes. You can immediately notice a Four-Leaved Clover in its block form already. Break to harvest, Bonemeal/Nature's Staff to spread them." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/fading.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/fading.json deleted file mode 100644 index f3c5f38a91..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/fading.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Experiment #1", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:craft_bottle_of_fading", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_vegetal", - "pages": [ - { - "type": "spectrum:hint", - "title": "Small Clue", - "completion_advancement": "spectrum:collect_vegetal", - "cost": "spectrum:sparklestone_gem#16", - "text": "Fading, as a small and weak organism, can only process organic blocks placed next to it, while also taking quite a while." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:sparklestone_gem#48", - "text": "Place organic blocks, like Leaves, Pumpkins or Melons next to it and wait a while. After some time the block will get consumed and replaced with a different looking Variant. Break those converted blocks to get a new Resource." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/failing.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/failing.json deleted file mode 100644 index 24557469a4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/failing.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Experiment #2", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/craft_bottle_of_failing", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_neolith", - "pages": [ - { - "type": "spectrum:hint", - "title": "Small Clue", - "completion_advancement": "spectrum:midgame/collect_neolith", - "cost": "spectrum:scarlet_fragments#8", - "text": "Just like Fading, they prefer a specific block placed next to them. This time a lot more strong, though. 'I hate mining this' strong, to be precise." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:scarlet_fragments#24", - "text": "The preferred food is Obsidian. Watch out for their insatiable hunger, though. They will eat quite a lot, if given the chance..." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/lightning_stones.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/lightning_stones.json deleted file mode 100644 index 65b44d99a8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/lightning_stones.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_lightning_stones", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_lightning_stone", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:midgame/collect_lightning_stone", - "cost": "spectrum:neolith#8", - "text": "Thunderstorms are a powerful display of nature. There are tremendous energies playing." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:neolith#24", - "text": "Sometimes you are able to find weird shards at places where lightning struck. There even is a way to focus Lightning at a specific position, to make gathering them even more efficient." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/paletur.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/paletur.json deleted file mode 100644 index 64d613fd4d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/paletur.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_paletur", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:lategame/collect_paletur", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:lategame/collect_paletur", - "cost": "spectrum:moonstone_shard#8", - "text": "There is a new turquoise ore found in the End." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:moonstone_shard#32", - "text": "This ore, that you are now able to perceive is generating at both the central island and the outer regions of the End. Catch it, before it is too late!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/quitoxic_reeds.json deleted file mode 100644 index 06072351ea..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/quitoxic_reeds.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_quitoxic_reeds", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_quitoxic_reeds", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:collect_quitoxic_reeds", - "cost": "minecraft:clay_ball#16", - "text": "Time for an adventure trip on the surface. Visit a Swamp!" - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:clay_ball#48", - "text": "Strange looking plants have been seen in Swamps, growing on patches of Clay. They grow higher with more clay around and consume that clay in the process." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/resonating_ender.json deleted file mode 100644 index 263a97fe5d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/resonating_ender.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:get_ender_treasure", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:get_ender_treasure", - "cost": "minecraft:ender_pearl#4", - "text": "Not every block that an Enderman carries seems to be what is looks like at first glance." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:ender_pearl#12", - "text": "Some Endermen appear in the Overworld carrying Blocks that could very well be small relics of the End itself. You can get a hold of one by killing an Endermen while it carries what looks like Cobblestone. Endermen holding these blocks can also be found in the End, albeit more rarely." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/ruin.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/ruin.json deleted file mode 100644 index 1453778238..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/ruin.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "Experiment #3", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/craft_bottle_of_ruin", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/break_decayed_bedrock", - "pages": [ - { - "type": "spectrum:hint", - "title": "Small Clue", - "completion_advancement": "spectrum:midgame/break_decayed_bedrock", - "cost": "spectrum:brown_pigment#8", - "text": "This absolutely aggressive variant called Ruin is able to consume the most resistant material there is. Even ones too resistant for you to ever break before." - }, - { - "type": "spectrum:hint", - "title": "A Warning", - "cost": "spectrum:brown_pigment#24", - "text": "What could be more resistant than the unbreakable Bedrock itself? Better have a backup plan up your sleeve if anything goes wrong." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/ruins.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/ruins.json deleted file mode 100644 index 387dae024f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/ruins.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "A Structure", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:midgame/get_azure_dike_charge", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:generate_ancient_ruins_loot", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:generate_ancient_ruins_loot", - "cost": "spectrum:refined_azurite#4", - "text": "There are impenetrable structures hidden deep underground in the Overworld in any biome. They seem to be built from an unbreakable stone." - }, - { - "type": "spectrum:hint", - "title": "Entering", - "advancement": "spectrum:find_ancient_ruins", - "completion_advancement": "spectrum:generate_ancient_ruins_loot", - "cost": "spectrum:refined_azurite#12", - "text": "The entrance seems to be blocked by a powerful forcefield. Whoever built those was kind enough to leave you clues, however! The hearts on the forcefield's sides seem to indicate you have to have Azure Dike active." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/scarlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/scarlet.json deleted file mode 100644 index b59192a79b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/scarlet.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_scarlet", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:midgame/collect_scarlet", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:midgame/collect_scarlet", - "cost": "minecraft:quartz#16", - "text": "There is a new Ore found in the Nether." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:quartz#48", - "text": "It generates in the lower layers of the Nether in all biomes, below lava level." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/shimmerstone.json deleted file mode 100644 index 96581ec86e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/shimmerstone.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Ore", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/reveal_sparklestone", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_sparklestone", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:collect_sparklestone", - "cost": "minecraft:copper_ingot#8", - "text": "There is a new Ore to be found in the Overworld at and above surface level." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "minecraft:copper_ingot#24", - "text": "It generates in all biomes in the center and upper layers of the Overworld in large veins. Most often you can find it exposed in mountains." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/stargazing.json deleted file mode 100644 index 357e5aab6c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/stargazing.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "A new Resource", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:milestones/unlock_shooting_stars", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:collect_shooting_star", - "pages": [ - { - "type": "spectrum:hint", - "title": "What to look for", - "completion_advancement": "spectrum:collect_shooting_star", - "cost": "spectrum:sparklestone_gem#8", - "text": "Shooting Stars only show up at night. Having something ready to better see them in the darkness will surely help a lot. They show up with a noticeable particle trail." - }, - { - "type": "spectrum:hint", - "title": "Concise Instructions", - "cost": "spectrum:sparklestone_gem#24", - "text": "Your best chances to see a Shooting Star are to search for it with Night Vision and a Spyglass equipped. If you see one crashing down on the earth try to trace its steps to find out where it landed. They shoot up particles like a beam." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/topaz.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/topaz.json deleted file mode 100644 index ac7b00045e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/hints/topaz.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "A Gemstone", - "category": "spectrum:hints_category", - "icon": "minecraft:writable_book", - "advancement": "spectrum:spectrum", - "secret": true, - "read_by_default": true, - "turnin": "spectrum:hidden/collect_shards/collect_topaz_shard", - "pages": [ - { - "type": "spectrum:hint", - "title": "Where to find", - "completion_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "cost": "minecraft:amethyst_shard#16", - "text": "This type of geode is found at great heights, typically on top of hills and sky-high mountains." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/black_hole_chest.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/black_hole_chest.json deleted file mode 100644 index 5db0a58355..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/black_hole_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Black Hole Chest", - "advancement": "spectrum:progression/unlock_sucking_chest", - "icon": "spectrum:sucking_chest", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:sucking_chest": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)The problem with hoppers is that, on the one hand, they are not only slow, but also poorly suited for larger farms due to their non-existent range.$(br2)With a bit of application of blue pigment, all items in a large radius around the crate can easily be brought to safety." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/sucking_chest", - "text": "Black Hole Chests have a radius of 12 blocks. You can disable them by placing a block on top. It offers filters to specify which items it should accept." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_brewing.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_brewing.json deleted file mode 100644 index 3b6d42334e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_brewing.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "Potion Works.: Brewing", - "icon": "spectrum:potion_workshop", - "advancement": "spectrum:progression/unlock_potion_workshop", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "minecraft:potion": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Brewing Potions", - "text": "Since the Potion Workshop is basically an upgraded Brewing Stand, you are able to create all the Potion variants that were available to you before, too.$(br)In addition, the possibility to use magic items as ingredients opens new doors for you.$(br2)Some of them are easier or harder to get enhanced effects from." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Vanilla Potion Variants", - "recipe": "spectrum:potion_workshop_brewing/fire_resistance", - "text": "The process of creating Potions with the same effects that you could use before use the same ingredients. Unlike using the Brewing Stand, you can use $(l:magical_blocks/potion_workshop_reagents)Reagents$(/l) to enhance their effects even further." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Absorption", - "recipe": "spectrum:potion_workshop_brewing/absorption", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Glowing", - "recipe": "spectrum:potion_workshop_brewing/glowing", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Haste", - "recipe": "spectrum:potion_workshop_brewing/haste", - "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Mining Fatigue$() instead." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Saturation", - "recipe": "spectrum:potion_workshop_brewing/saturation", - "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Hunger$() instead." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Levitation", - "advancement": "spectrum:lategame/collect_paletur", - "recipe": "spectrum:potion_workshop_brewing/levitation", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Luck", - "recipe": "spectrum:potion_workshop_brewing/luck", - "advancement": "spectrum:collect_four_leaf_clover", - "text": "Adding a Fermented Spider Eye will change the Effect to $(bold)Bad Luck$() instead." - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Resistance", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "recipe": "spectrum:potion_workshop_brewing/resistance", - "text": "" - }, - { - "type": "spectrum:potion_workshop_brewing", - "title": "Wither", - "advancement": "spectrum:midgame/craft_midnight_chip", - "recipe": "spectrum:potion_workshop_brewing/wither", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_reagents.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_reagents.json deleted file mode 100644 index c481ac178c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/potion_workshop_reagents.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "Potion Works.: Reagents", - "icon": "spectrum:potion_workshop", - "advancement": "spectrum:progression/unlock_potion_workshop", - "category": "spectrum:magical_blocks_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Using Reagents", - "text": "Using Mermaids Gems as a Base instead of Blaze Powder results in a much more reactive potion. Not only does this allow you to add your new range of additional magical ingredients to your Potions, but also use some of them as additional Reagent. Each of those Reagents modifies the resulting properties of your Potions. Each Reagent can only be used once per recipe." - }, - { - "type": "patchouli:spotlight", - "title": "Redstone", - "item": "minecraft:redstone", - "text": "Doubles Duration" - }, - { - "type": "patchouli:spotlight", - "title": "Glowstone", - "item": "minecraft:glowstone_dust", - "text": "Flat increase in Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Gunpowder", - "item": "minecraft:gunpowder", - "text": "Creates Splash Potions" - }, - { - "type": "patchouli:spotlight", - "title": "Dragon's Breath", - "item": "minecraft:dragon_breath", - "advancement": "spectrum:hidden/collect_vanilla/collect_dragon_breath", - "text": "Creates Lingering Potions - also requires Gunpowder as reagent$(br2)Allows you to create Tipped Arrows, if you supply Arrows instead of Bottles" - }, - { - "type": "patchouli:spotlight", - "title": "Topaz", - "item": "spectrum:topaz_powder", - "text": "Makes Effects not show any particles" - }, - { - "type": "patchouli:spotlight", - "title": "Amethyst", - "item": "spectrum:amethyst_powder", - "text": "Adds a short flat bonus to the Potions Duration" - }, - { - "type": "patchouli:spotlight", - "title": "Citrine", - "item": "spectrum:citrine_powder", - "text": "Slight multiplicative Potency bonus" - }, - { - "type": "patchouli:spotlight", - "title": "Onyx", - "item": "spectrum:onyx_powder", - "text": "Adds a very weird taste and smell to the potion, making it unidentifiable.$(br)Also makes its color completely black." - }, - { - "type": "patchouli:spotlight", - "title": "Moonstone", - "item": "spectrum:moonstone_powder", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "text": "Changes all otherwise negative Effects to their positive ones" - }, - { - "type": "patchouli:spotlight", - "title": "Shimmerstone", - "item": "spectrum:sparklestone_gem", - "text": "Tiny multiplicative bonus to both Duration and Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Quitoxic Powder", - "item": "spectrum:quitoxic_powder", - "advancement": "spectrum:collect_quitoxic_reeds", - "text": "Increases Potency of all negative Effects by flat +2" - }, - { - "type": "patchouli:spotlight", - "title": "Stratine", - "item": "spectrum:scarlet_fragments", - "advancement": "spectrum:midgame/collect_scarlet", - "text": "Flat +1 bonus to all Effects Potencies, at the cost of adding a random negative Effect" - }, - { - "type": "patchouli:spotlight", - "title": "Paltaeria", - "item": "spectrum:paletur_fragments", - "advancement": "spectrum:lategame/collect_paletur", - "text": "Adds a random positive Effect" - }, - { - "type": "patchouli:spotlight", - "title": "Stardust", - "item": "spectrum:stardust", - "advancement": "spectrum:hidden/collect_stardust", - "text": "$(italic)Absorbs the last drops of what remains of your previous brew.$()$(br2)Small chance to add the main Effect of the Potion that was brewed previously" - }, - { - "type": "patchouli:spotlight", - "title": "Star Fragment", - "item": "spectrum:shooting_star", - "advancement": "spectrum:collect_shooting_star", - "text": "$(italic)Similar to Stardust, but much more potent.$()$(br2)Guaranteed chance to add the main Effect of the Potion that was brewed previously, at slightly decreased Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Storm Stone", - "item": "spectrum:lightning_stone", - "advancement": "spectrum:midgame/collect_lightning_stone", - "text": "Increases the Potions Potency at the beginning, but wearing off fast over time" - }, - { - "type": "patchouli:spotlight", - "title": "Azurite", - "item": "spectrum:raw_azurite", - "advancement": "spectrum:midgame/collect_azurite", - "text": "Negates the duration penalty for Lingering Potions as well as for Tipped Arrows" - }, - { - "type": "patchouli:spotlight", - "title": "Clover", - "item": "spectrum:four_leaf_clover", - "advancement": "spectrum:collect_four_leaf_clover", - "text": "Provides a huge boost to a random stat" - }, - { - "type": "patchouli:spotlight", - "title": "Vegetal", - "item": "spectrum:vegetal", - "advancement": "spectrum:collect_vegetal", - "text": "Doubles the potions Duration at the cost of their Potency" - }, - { - "type": "patchouli:spotlight", - "title": "Neolith", - "item": "spectrum:neolith", - "advancement": "spectrum:midgame/collect_neolith", - "text": "Increases Yield, allowing you to brew an additional potion" - }, - { - "type": "patchouli:spotlight", - "title": "Midnight Chip", - "item": "spectrum:midnight_chip", - "advancement": "spectrum:midgame/collect_midnight Chip", - "text": "Increases Potency and adds 30 seconds to the Duration, but drastically lowers Yield." - }, - { - "type": "patchouli:spotlight", - "title": "Moonstruck Nectar", - "item": "spectrum:moonstruck_nectar", - "advancement": "spectrum:hidden/harvest_moonstruck_nectar", - "text": "Makes the Potion much more smooth, resulting in it being way faster to drink. Might come in handy when every second is crucial." - }, - { - "type": "patchouli:spotlight", - "title": "Bedrock Dust", - "item": "spectrum:bedrock_dust", - "advancement": "spectrum:midgame/break_decayed_bedrock", - "text": "Doubles the Potions Potency, at the cost of Duration" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/semi_permeable_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/semi_permeable_glass.json deleted file mode 100644 index 0021f578dd..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/semi_permeable_glass.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "Semi-permeable Glass", - "advancement": "spectrum:midgame/build_advanced_pedestal_structure", - "icon": "spectrum:amethyst_player_only_glass", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:vanilla_player_only_glass": 0, - "spectrum:tinted_player_only_glass": 0, - "spectrum:glowing_player_only_glass": 0, - "spectrum:topaz_player_only_glass": 0, - "spectrum:amethyst_player_only_glass": 0, - "spectrum:citrine_player_only_glass": 0, - "spectrum:onyx_player_only_glass": 0, - "spectrum:moonstone_player_only_glass": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Semi-permeable Glass", - "item": "spectrum:amethyst_player_only_glass", - "text": "$(italic)For a long time now, those annoying monsters that always appear at night are no longer a threat to you and only serve as a resource supplier, if at all. But that doesn't stop them from pursuing you further.$(br)You spend more time keeping those pesky monsters out of your base than you care to admit.$()" - }, - { - "type": "patchouli:text", - "text": "$(italic)Then you remember the gemstone glass recipe you thought up earlier.$(br2)With a bit of magical energy, it should be no problem to make it not only transparent for you, but also passable (not for them!).$(br2)Bonus: If you make it look exactly like regular glass you might even be able to fool your competition.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/player_only_glass/amethyst_player_only_glass" - }, - { - "type": "patchouli:text", - "text": "Semi-permeable Glass comes in all gemstone colors, common, tinted and glowing variants.$(br2)It looks exactly like its $(l:decoration/gemstone_glass)mundane counterpart$(), but has the special property that players can pass through it without problems, while all other creatures will bounce off it like a fly off a window." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_yield.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_yield.json deleted file mode 100644 index 1aa36d7256..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_blocks/upgrade_yield.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "Production Surge", - "advancement": "spectrum:lategame/collect_paletur", - "icon": "spectrum:upgrade_yield", - "category": "spectrum:magical_blocks_category", - "extra_recipe_mappings": { - "spectrum:upgrade_yield": 0, - "spectrum:upgrade_yield2": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "This upgrade is an interesting one. Although the chance is very small, you can increase the amount of your crafting results.$(br2)$(italic)More bang for your buck!" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier4/upgrade_yield", - "text": "Place on top your $(l:general/pedestal)Pigment Pedestals$(/l) Gemstone Blocks or the Chiseled Blocks of your $(l:general/fusion_shrine)Fusion Shrine$(/l). Additional ones have a decreased effect." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/unlock_upgrade_yield2", - "title": "Tier 2", - "recipe": "spectrum:pedestal/tier4/upgrade_yield2", - "text": "This upgraded version is much more potent, allowing you to get even more output for your crafting." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ashen_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ashen_circlet.json deleted file mode 100644 index cff6163aa1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ashen_circlet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Ashen Circlet", - "advancement": "spectrum:progression/unlock_ashen_circlet", - "icon": "spectrum:ashen_circlet", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:ashen_circlet": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "The Stratine Gem you set into this Circlet, itself a creation of the Nether, can absorb high temperatures on you with ease.$(br)It even protects you from the blazing heat of lava - if only for a short time, until it has had a chance to cool down again.$(br)Pair it with something that grants you Fire Resistance, you are able to swim in Lava almost as if it were Water." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/ashen_circlet", - "text": "$(li)Prevents damage from fire and hot floors.$(li)If cooled down, grants you a short protection from lava" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/bedrock_armor.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/bedrock_armor.json deleted file mode 100644 index ed7267c69e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/bedrock_armor.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "Bedrock Armor", - "advancement": "spectrum:progression/unlock_bedrock_tools", - "icon": "spectrum:bedrock_chestplate", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:bedrock_helmet": 0, - "spectrum:bedrock_chestplate": 0, - "spectrum:bedrock_leggings": 0, - "spectrum:bedrock_boots": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "The strongest material you could make so far was Netherite. However, repairing Netherite armor had the disadvantage that it was more expensive than making the armor itself. In addition, the protection decreased with every scratch. All this is less problematic when the armor simply $(italic)cannot$() be damaged.$(br)$(italic)Never wilt, stone blossom." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_helmet", - "text": "The Bedrock Helmet comes with $(bold)Projectile Protection V$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_chestplate", - "text": "The Bedrock Chestplate comes with $(bold)Protection V$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_leggings", - "text": "The Bedrock Leggings come with $(bold)Blast Protection V$()." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "recipe": "spectrum:fusion_shrine/bedrock/bedrock_boots", - "text": "The Bedrock Boots come with $(bold)Fire Protection V$()." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/crescent_clock.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/crescent_clock.json deleted file mode 100644 index 8f0b523693..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/crescent_clock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Crescent Clock", - "advancement": "spectrum:progression/unlock_crescent_clock", - "icon": "spectrum:crescent_clock", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:crescent_clock": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "There seems to be something magical about the flow of time.$(br)This clock, formed from witnesses of time, is to show you a way in this never-ending stream of beginning and passing." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/crescent_clock", - "text": "$(italic)If we shadows have offended, Know but this and all is mended.$(br)That you have but slumbered here, While these visions did appear.$(br)And this weak and idle theme, No more yielding, but a dream." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/end_portal_cracker.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/end_portal_cracker.json deleted file mode 100644 index a414f904f7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/end_portal_cracker.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "End Portal Relocation", - "advancement": "spectrum:progression/unlock_end_portal_cracker", - "icon": "minecraft:end_portal_frame", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:end_portal_cracker": 0, - "spectrum:cracked_end_portal_frame": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Every time you want to enter the realm of the Endermen you have to travel half a world. Whoever created the portals to the End... you're so much more powerful than they are now.$(br2)Well, almost. You haven't yet figured out how to create such portals yourself, but pack them up and take them home? No problem." - }, - { - "type": "patchouli:image", - "title": "End Portal Relocation", - "images": [ - "spectrum:textures/gui/manual/end_portal.png" - ], - "border": true, - "text": "The end portal, like found in strongholds." - }, - { - "type": "patchouli:spotlight", - "title": "Pedestal Recipe", - "item": "spectrum:end_portal_cracker", - "text": "These modified Eye of Ender harbor extremely destructive potential. They need to be, to be able to manipulate the extremely robust portal frame.$(br)When used in an End Portal base, you should keep your distance quickly." - }, - { - "type": "patchouli:multiblock", - "name": "Reconstructed End Portal", - "multiblock": { - "pattern": [ - [ - " HHH ", - "VPPPV", - "VPPPV", - "VPPPV", - " HHH ", - " 0 " - ] - ], - "mapping": { - "H": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=false]", - "V": "spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=true]", - "P": "minecraft:end_portal" - }, - "offset": [ - 0, - 3, - 0 - ], - "symmetrical": false - }, - "text": "You just put the portal back together the way it was initially, add Ender Pearls, done!" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ender_bag.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ender_bag.json deleted file mode 100644 index 8ac3f698ff..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/ender_bag.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Bag of Holding", - "advancement": "spectrum:progression/unlock_ender_bag", - "icon": "spectrum:ender_bag", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:ender_bag": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Bag of Holding", - "item": "spectrum:ender_bag", - "text": "$(italic)Placing an Ender Chest, opening it, and mining it with an enchanted pickaxe is not what you think of as fun.$(br)That's why you invented this thing." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/ender_bag", - "text": "Just open it and the contents of your Ender Chest are right there." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/exchange_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/exchange_staff.json deleted file mode 100644 index 160c6e4300..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/exchange_staff.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Exchanging Staff", - "advancement": "spectrum:progression/unlock_exchange_staff", - "icon": "spectrum:exchange_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:exchange_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "For all those who don't live in a simple cobblestone house, or don't have walls at all - of course you don't feel addressed - you have thought up the Exchanging Staff.$(br2)Mining has just gotten a whole bunch more fun." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier4/exchange_staff", - "text": "Crouch-Click to get a selection of all available placement modi." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Enchanting - Fortune", - "item": "spectrum:exchange_staff{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", - "text": "Enchanting an Exchanging Staff with Fortune by using the $(l:enchanting/enchanting_items)Enchanter$(/l) allows it to multiply Ore drops when exchanging similar to using a common Fortune tool." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Silk Touch", - "item": "spectrum:exchange_staff{Enchantments: [{id: \"spectrum:silk_touch\", lvl: 1s}]}", - "text": "Enchanting an Exchanging Staff with Silk Touch by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will give it the power to exchange blocks exactly how they appear in the world, without breaking the more fragile blocks, like Glass or Ores." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/gemstone_armor.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/gemstone_armor.json deleted file mode 100644 index 5edb077837..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/gemstone_armor.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "Gemstone Armor", - "advancement": "spectrum:progression/unlock_gemstone_armor_category", - "icon": "spectrum:emergency_chestplate", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:emergency_helmet": 0, - "spectrum:emergency_chestplate": 0, - "spectrum:emergency_leggings": 0, - "spectrum:emergency_boots": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "You had more than enough time to develop your own individual fighting style.$(br)To best support this style, you've designed a range of matching gear out of interesting materials.$(br2)Disadvantage: The shards used in the production are kind of brittle. Therefore, this equipment has a comparatively low durability." - }, - { - "type": "patchouli:text", - "text": "To take advantage of their unique abilities you will need some special materials.$(br2)$(bold)Helmet:$() When nothingness meets hell$(br2)$(bold)Chestplate:$() The golden Ratio$(br2)$(bold)Leggings:$() The source of nightmares$(br2)$(bold)Boots:$() Mourning of the Nether$(br2)They can be repaired in Anvils by using $(l:general/gemstone_shards)Gemstone Shards$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_helmet", - "text": "Gives attackers Weakness and Slowness when they hit you, letting you slip through their claws like a shadow." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_chestplate", - "text": "Grants Absorption and Instant Health when you get hit, making you a formidable close combat fighter." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_leggings", - "text": "Gives a short burst of Speed and Invisibility when you get hit, giving you an opportunity to retreat. Perfect for ranged combat." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear", - "recipe": "spectrum:pedestal/tier2/emergency_armor/emergency_boots", - "text": "Gives you a short burst of Resistance and Regeneration on hit, making you a massive wall for a short duration." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/gleaming_pin.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/gleaming_pin.json deleted file mode 100644 index 43e8f670ba..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/gleaming_pin.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Gleaming Pin", - "advancement": "spectrum:progression/unlock_gleaming_pin", - "icon": "spectrum:gleaming_pin", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:gleaming_pin": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "During your explorations you were hit by arrows again and again, only to completely miss your enemy while looking around in panic - if it hasn't already disappeared behind the next corner already.$(br2)When you get hit, the Gleaming Pin emits a magic surge that passes through walls and attaches to nearby creatures so you can easily track them down." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/gleaming_pin", - "text": "$(br)$(italic)Can't run, can't hide" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:progression/enchantments/sniper", - "title": "Sniping", - "item": "spectrum:gleaming_pin{Enchantments: [{id: \"spectrum:sniping\", lvl: 2s}]}", - "text": "Enchanting the Gleaming Pin with Sniping allows the surge to pierce even more matter, further increasing its range." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/glow_vision_helmet.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/glow_vision_helmet.json deleted file mode 100644 index e920e8e204..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/glow_vision_helmet.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Glow Vision Goggles", - "advancement": "spectrum:progression/unlock_glow_vision_helmet", - "icon": "spectrum:glow_vision_helmet", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:glow_vision_helmet": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:glow_vision_helmet", - "text": "$(italic)What makes Glow Squids so special is them lighting your way in the darkness of the caves. As beautiful as they are, they seem to wash ashore far too often and meet their sad end there.$(br)You honor their clumsy glowing legacy by designing glasses that can continue guiding you in the darkness of the caves." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier1/glow_vision_helmet", - "text": "If you are in a dark area and have Glow Ink Sacs on you, the Glow Vision Goggles grant you the Night Vision effect." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/jeopardant.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/jeopardant.json deleted file mode 100644 index 9421369ef7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/jeopardant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Jeopardant", - "advancement": "spectrum:progression/unlock_jeopardant", - "icon": "spectrum:jeopardant", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:jeopardant": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Adrenaline does not have to be the only thing racing through your veins in state of emergency.$(br)With every heart lost, the $(l:resources/scarlet)Stratine Gem$() in this ring shines brighter and brighter, pulsating in the same rhythm as your racing heart - granting you an exponential damage boost." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/jeopardant", - "text": "$(italic)Tell me what you think about your situation$(br)Complication, aggravation" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/multitool.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/multitool.json deleted file mode 100644 index bb9e9396ae..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/multitool.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Multitool", - "advancement": "spectrum:build_basic_pedestal_structure", - "icon": "spectrum:multitool", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:multitool": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:multitool", - "text": "Whenever you leave your home, you carry half a tool shed with you. Given the tons of stone you can carry around with you, that is no even worth mentioning, though. Nevertheless, a universal tool that combines the abilities of a pickaxe, axe, shovel and hoe would suit you.$()$(br)" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/multitool", - "text": "It's not as efficient in the individual tasks, but it is much better than having to change tools every three seconds." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/natures_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/natures_staff.json deleted file mode 100644 index 3b1e9f2550..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/natures_staff.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Nature's Staff", - "advancement": "spectrum:progression/unlock_natures_staff", - "icon": "spectrum:natures_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:natures_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Using the magic elements of $(c_brown)Nature$() and $(c_lime)Fertility$(), you have come up with this stroke of genius.$(br)Bonemeal is a joke when compared to your new gadget." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/natures_staff", - "text": "$(italic)Point at something you want to see blossom" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Enchanting - Efficiency", - "item": "spectrum:natures_staff{Enchantments: [{id: \"minecraft:efficiency\", lvl: 5s}]}", - "text": "Enchanting the Nature's Staff with Efficiency by using the $(l:enchanting/enchanting_items)Enchanter$(/l) decreases the chance of $(l:creating_life/fading#vegetal)Vegetal$(/l) to get consumed for each level." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/placement_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/placement_staff.json deleted file mode 100644 index 5e8c7963c1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/placement_staff.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Constructors' Staff", - "advancement": "spectrum:progression/unlock_placement_staff", - "icon": "spectrum:placement_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:placement_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "You always spend a lot of time placing blocks. You could almost think that this is the main reason for your existence. Placing a lot of similar blocks is tedious.$(br2)Or more like: $(italic)Was$() tedious." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/placement_staff", - "text": "Crouch-Click to get a selection of all available placement modi." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/preenchanted_tools.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/preenchanted_tools.json deleted file mode 100644 index 37460cf0be..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/preenchanted_tools.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "Preenchanted Tools", - "advancement": "spectrum:progression/tools/unlock_any_preenchanted_tool", - "icon": "spectrum:fortune_pickaxe", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:silker_pickaxe": 0, - "spectrum:fortune_pickaxe": 0, - "spectrum:looting_falchion": 0, - "spectrum:voiding_pickaxe": 0, - "spectrum:resonant_pickaxe": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "That stupid obsidian desk is very stubborn when it comes to giving you the enchantments you seek.$(br)Besides, you'd either have to slaughter a whole herd of cows or rob the books of a dozen villages (no wonder the inhabitants there are so dumb and all too happy to be eaten by zombies)." - }, - { - "type": "patchouli:text", - "text": "The advantage of knowing exactly what you want gives you the ability to shape your tools so that they inherently possess those qualities. The magic of colors makes it possible.$(br)Unfortunately, these features make these tools very fragile for the most part." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_silker_pickaxe", - "recipe": "spectrum:pedestal/tier1/tools/silker_pickaxe", - "text": "The ends of this pickaxe are studded with Topaz to cut even the most delicate material from stone.$(br)The Tender Pickaxe comes pre-enchanted with $(c_cyan)$(bold)Silk Touch$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_fortune_pickaxe", - "recipe": "spectrum:pedestal/tier1/tools/fortune_pickaxe", - "text": "Infused with the power of $(c_yellow)energy$(), it allows you to carve out every last bit of ore from every vein. The Lucky Pickaxe comes pre-enchanted with $(c_yellow)$(bold)Fortune III$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_looting_falchion", - "recipe": "spectrum:pedestal/tier1/tools/looting_falchion", - "text": "The short, razor-sharp blade makes this item a deadly weapon - but at the cost of durability.$(br)The Razor Falchion comes pre-enchanted with $(c_magenta)$(bold)Looting III$()." - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:progression/tools/unlock_voiding_pickaxe", - "recipe": "spectrum:pedestal/tier2/voiding_pickaxe", - "text": "As an outsider in the group, the Oblivion Pickaxe has a large amount of durability and mining speed. However, all mined blocks $(l:enchanting/curse_of_the_void)are destroyed$()." - }, - { - "type": "patchouli:text", - "title": "Resonant Pickaxe", - "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe", - "text": "This bright blue pickaxe matches its own gentle inherent vibration to that of its surroundings. This allows you to keep blocks intact that would otherwise be irreparably destroyed by force.$(br)The Resonant Pickaxe comes pre-enchanted with $(l:enchanting/resonance)Resonance$(/l)." - }, - { - "type": "spectrum:pedestal_crafting", - "recipe": "spectrum:pedestal/tier4/resonant_pickaxe", - "advancement": "spectrum:progression/tools/unlock_resonant_pickaxe" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/radiance_pin.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/radiance_pin.json deleted file mode 100644 index e4ce87927e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/radiance_pin.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Radiance Pin", - "advancement": "spectrum:progression/unlock_radiance_pin", - "icon": "spectrum:radiance_pin", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:radiance_pin": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "You didn't randomly choose the name of the Radiance Pin to resemble the $(l:magical_items/radiance_staff)Radiance Staff$(/l).$(br)If you are in a dark area, the pin automatically creates an invisible light on you. Unlike the lights of the $(l:magical_items/radiance_staff)Radiance Staff$(/l), however, they slowly become fainter and fainter until they eventually dissipate completely." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/radiance_pin", - "text": "Fantastic to see the paths you've already taken in your cave explorations." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/radiance_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/radiance_staff.json deleted file mode 100644 index 40f8b161c2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/radiance_staff.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Radiance Staff", - "advancement": "spectrum:progression/unlock_light_staff", - "icon": "spectrum:light_staff", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:light_staff": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Torches have one crucial weakness: you can only place them when you're already standing in the dark. In contrast the Radiance Staff can place lights far away and in the air, illuminating large caverns at a distance.$(br)As a final goodie, these lights are invisible, making them great for illuminating your structures atmospherically." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/light_staff", - "text": "Right click placed lights with the staff to adjust the emitted light level.$(br)They can even be summoned under water." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Enchanting - Infinity", - "item": "spectrum:light_staff{Enchantments: [{id: \"minecraft:infinity\", lvl: 1s}]}", - "text": "Enchanting the Radiance Staff with Infinity by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will completely remove the need for Shimmerstone." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/seven_league_boots.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/seven_league_boots.json deleted file mode 100644 index fb83c56382..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/seven_league_boots.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "Seven League Boots", - "advancement": "spectrum:progression/unlock_seven_league_boots", - "icon": "spectrum:seven_league_boots", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:seven_league_boots": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Getting from A to B is tedious.$(br)Especially in the case of $(l:resources/geodes)Geodes$(/l), they are usually far away, so the journey there takes quite some time.$(br)With these magic boots you are much more mobile than before." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/seven_league_boots", - "text": "Increases both Movement Speed and Step Height." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "title": "Power", - "item": "spectrum:seven_league_boots{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "text": "The Power enchantment increases the movement speed bonus further." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/take_off_belt.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/take_off_belt.json deleted file mode 100644 index 442e5715f8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/take_off_belt.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "Take-Off Belt", - "advancement": "spectrum:progression/unlock_take_off_belt", - "icon": "spectrum:take_off_belt", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:take_off_belt": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Climbing mountains or misshapen caves is always very time-consuming. If you don't see an option to scramble up over misshapen ledges, you have no choice but to carve a path into the rock.$(br)Using your new Take-Off Belt you are able to put great vertical distances behind you, saving time and sparing your beautiful nature from destruction." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/take_off_belt", - "text": "Sneak to charge a high jump, getting more powerful the longer you charge$(br2)$(italic)Although the name implies, please don't take it off." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:progression/enchantments/vanilla_projectile", - "title": "Power", - "item": "spectrum:take_off_belt{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "text": "The Power enchantment increases the jump height even further." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:progression/enchantments/vanilla_quitoxic", - "title": "Feather Falling", - "item": "spectrum:take_off_belt{Enchantments: [{id: \"minecraft:feather_falling\", lvl: 4s}]}", - "text": "Feather Falling will grant you a short slow fall effect, allowing you to better navigate to where you want to land. A high level of Feather Falling may be a very viable way to safely descend down those cliffs again, actually." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/tidal_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/tidal_circlet.json deleted file mode 100644 index e0b3cb1f78..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/tidal_circlet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Weeping Circlet", - "advancement": "spectrum:progression/unlock_tidal_circlet", - "icon": "spectrum:tidal_circlet", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:tidal_circlet": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "These hostile underwater temples are a hell to maneuver. Luckily, in your search for treasure you stumbled upon a Heart of The Sea.$(br)This circlet allows you to live and mine under water as if it were the most natural thing ever. You swim and mine faster, require no air and are able to see better.$(br)It also heals your little close by Axolotl friends ♥" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/tidal_circlet", - "text": "$(italic)Have you ever wanted to live underwater? No?$(br)Whatever, now you can.$(br)Time to build an underwater base!" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/totem_pendant.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/totem_pendant.json deleted file mode 100644 index ac1abfbbb0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/totem_pendant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Totem Pendant", - "advancement": "spectrum:progression/unlock_totem_pendant", - "icon": "spectrum:totem_pendant", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:totem_pendant": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "Totems of Undying, while having a powerful effect, have the significant disadvantage that you always have to hold them in your hand.$(br)Using the protective powers of $(l:general/pigment#blue)Blue Pigment$(/l) as a focus you can keep its life-saving effect active, even when worn around the neck." - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "Fusion Recipe", - "recipe": "spectrum:fusion_shrine/trinkets/totem_pendant", - "text": "One-time protection from death. After it is triggered, crumbles into dust." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/void_bundle.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/void_bundle.json deleted file mode 100644 index 124c1233d7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/magical_items/void_bundle.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Bottomless Bundle", - "advancement": "spectrum:progression/unlock_void_bundle", - "icon": "spectrum:void_bundle", - "category": "spectrum:magical_items_category", - "extra_recipe_mappings": { - "spectrum:void_bundle": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "item": "spectrum:void_bundle", - "text": "$(italic)On your journeys through the underground you collect a whole lot of identical blocks, which you will never need again. But they are too good to throw away, you think.$(br2)Time to develop a storage solution that takes care of your little homemade problem.$()" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier2/void_bundle", - "text": "The Bottomless Bundle stores a virtually unlimited number of items, but of only one type.$(br)Right click it on stacks or empty slots in your inventory to fill/empty it" - }, - { - "type": "patchouli:image", - "title": "Automation", - "images": [ - "spectrum:textures/gui/manual/bottomless_bundle_automation.png" - ], - "text": "Crouching places it down, making it able to be automatically filled / emptied." - }, - { - "type": "patchouli:text", - "title": "", - "text": "$(br)A placed Bundle will always remember the last item you put into it.$(br)Even if it is emptied it will only accept new items that it was holding before, making it also usable as a filter.$(br2)$(italic)Note: If it was placed empty it will accept the first item pumped into it and get locked to that.$()" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Enchanting - Power", - "item": "spectrum:void_bundle{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "text": "Enchanting a Bottomless Bundle with Power by using the $(l:enchanting/enchanting_items)Enchanter$(/l) you can increase its capacity tenfold for each level of Power.$(br2)$(italic)Are you able to fill a Bottomless Bundle with Power V?" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/build_enchanting_structure", - "title": "Curse of the Void", - "item": "spectrum:void_bundle{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "text": "Enchanting a Bottomless Bundle with Curse of the Void by using the $(l:enchanting/enchanting_items)Enchanter$(/l) will result in voiding all items that would overfill the Bottomless Bundle.$(br2)$(italic)No more useless blocks cluttering your path when mining." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/connection_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/connection_node.json deleted file mode 100644 index 474491d38d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/connection_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Connection Node", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Connection Node", - "text": "As the most basic of Nodes the Connection Node does not have any use by itself.$(br)They are very small and solely act as a cheap and unobtrusive way to expand the range of your network." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/connection_node", - "text": "As all other Nodes, the Connection Node has a range of 16 Blocks." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/interaction_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/interaction_node.json deleted file mode 100644 index 9c4db2ac17..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/interaction_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Interaction Node", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_interaction_node", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Interaction Node", - "text": "TODO. Getting close to it will present you a list of all items stored in its connected network. Just reach for it and it will be pulled out from the network for you, automatically." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/interaction_node", - "text": "TODO" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/pastel_network.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/pastel_network.json deleted file mode 100644 index c3431e3142..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/pastel_network.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "The Pastel Network", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "priority": true, - "sortnum": 0, - "pages": [ - { - "type": "patchouli:text", - "title": "Pastel Network", - "text": "$(italic)Logistics is a complicated thing.$(br)Your primitive ways of item transport like hopper arrays do not compare to the Pastel Network - that is what you called clusters of Azurite-based Nodes. Each Node with its own special features. Placed in close proximity, nodes will connect wirelessly to one another and form an item transfer network." - }, - { - "type": "patchouli:image", - "title": "", - "images": [ - "spectrum:textures/gui/manual/pastel_network.png" - ], - "border": true, - "text": "All Nodes have a range of 16 blocks and need to have line of sight to one another." - }, - { - "type": "patchouli:spotlight", - "title": "Dyeing Nodes", - "item": "spectrum:purple_pigment", - "text": "You can use $(l:general/pigment)Pigment$(/l) on Pastel Network Nodes to dye them.$(br2)Each node can only transfer items to nodes of the same color and colors it composites into, but not the other way around (Cyan nodes can transfer to Blue ones, but not Blue nodes to Cyan)." - }, - { - "type": "patchouli:image", - "title": "", - "images": [ - "spectrum:textures/gui/manual/composite_colors.png" - ], - "border": true, - "text": "" - }, - { - "type": "patchouli:spotlight", - "title": "Colored Nodes", - "item": "spectrum:red_pigment", - "text": "Using Pigment you can very finely adjust which Nodes can interact with others, allowing you to build complex transfer chains.$(br2)The default $(bold)White$() nodes, lacking all forms of color are only able to connect to other white nodes." - }, - { - "type": "patchouli:spotlight", - "title": "Spectral Colored Nodes", - "item": "spectrum:spectral_shard", - "text": "$(bold)Black$() in contrast, as the combination of all Pigment Colors, is able to interact with all other Nodes, including other black ones.$(br2)Nodes colored with spectral pigment are able to interact with all nodes, regardless of their color." - }, - { - "type": "patchouli:spotlight", - "title": "", - "item": "spectrum:purple_pigment", - "text": "Using a $(l:resources/mermaids_brush)Mermaids Gem$(/l) on a node will change it to a Fluid Node.$(br)It will behave very similar than before - but will be able to wirelessly tranfer liquid instead of items." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/provider_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/provider_node.json deleted file mode 100644 index af844e7df2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/provider_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Provider Node", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Provider Node", - "text": "Passively offers all items in the connected inventory to it's connected $(l:pastel_network/pastel_network)Pastel Network$(/l). Items will not be pushed to other nodes, but can be requested, for example by $(l:pastel_network/puller_node)Puller Nodes$(/l)." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/provider_node", - "text": "" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/puller_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/puller_node.json deleted file mode 100644 index 42494e9624..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/puller_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Puller Node", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Puller Node", - "text": "The Puller Node has the special feature of having an interface. There you are able to configure items that the Puller Node will actively request from other nodes to be placed in its connected inventory." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/puller_node", - "text": "The order, in which it checks other nodes to request items from is as follows:$(br)1. $(l:pastel_network/pusher_node)Pusher Nodes$(/l)$(br)2. $(l:pastel_network/provider_node)Provider Nodes$(/l)$(br)3. $(l:pastel_network/storage_node)Storage Nodes$(/l)" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/pusher_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/pusher_node.json deleted file mode 100644 index 1448cd549b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/pusher_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Pusher Node", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Pusher Node", - "text": "The pusher node actively tries to keep the connected inventory empty from items." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/pusher_node", - "text": "The order, in which it pushes items to is as follows:$(br)1. $(l:pastel_network/puller_node)Puller Nodes$(/l)$(br)2. $(l:pastel_network/storage_node)Storage Nodes$(/l)" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/storage_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/storage_node.json deleted file mode 100644 index 9634586dfa..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/pastel_network/storage_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "Storage Node", - "icon": "spectrum:provider_node", - "advancement": "spectrum:progression/pastel_network/__unlock_basic_nodes", - "category": "spectrum:pastel_network_category", - "pages": [ - { - "type": "patchouli:text", - "title": "Storage Node", - "text": "The Storage Node, while nothing spectacular itself, will show their greatest use in combination with $(l:pastel_network/pusher_node)Pusher Nodes$(/l) (Will push items to it) and $(l:pastel_network/puller_node)Puller Nodes$(/l) (pull items from it." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "recipe": "spectrum:pedestal/tier3/pastel_network/storage_node", - "text": "Right click it to open its item filter. This filters allows you to specify which items the Storage Node will be able to receive & provide. Otherwise it will act as a general storage for all types of items." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/geodes.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/geodes.json deleted file mode 100644 index 3911aa08ca..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/geodes.json +++ /dev/null @@ -1,324 +0,0 @@ -{ - "name": "Geodes", - "advancement": "spectrum:spectrum", - "icon": "minecraft:amethyst_cluster", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:topaz_ore": 0, - "spectrum:amethyst_ore": 0, - "spectrum:citrine_ore": 0, - "spectrum:moonstone_ore": 0, - "spectrum:deepslate_topaz_ore": 0, - "spectrum:deepslate_amethyst_ore": 0, - "spectrum:deepslate_citrine_ore": 0, - "spectrum:deepslate_moonstone_ore": 0, - "spectrum:small_topaz_bud": 0, - "spectrum:medium_topaz_bud": 0, - "spectrum:large_topaz_bud": 0, - "spectrum:topaz_cluster": 0, - "spectrum:topaz_block": 0, - "spectrum:budding_topaz": 0, - "minecraft:small_amethyst_bud": 0, - "minecraft:medium_amethyst_bud": 0, - "minecraft:large_amethyst_bud": 0, - "minecraft:amethyst_cluster": 0, - "minecraft:amethyst_block": 0, - "minecraft:budding_amethyst": 0, - "spectrum:small_citrine_bud": 0, - "spectrum:medium_citrine_bud": 0, - "spectrum:large_citrine_bud": 0, - "spectrum:citrine_cluster": 0, - "spectrum:citrine_block": 0, - "spectrum:budding_citrine": 0, - "spectrum:small_moonstone_bud": 0, - "spectrum:medium_moonstone_bud": 0, - "spectrum:large_moonstone_bud": 0, - "spectrum:moonstone_cluster": 0, - "spectrum:moonstone_block": 0, - "spectrum:budding_moonstone": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Gemstone Geodes", - "images": [ - "spectrum:textures/gui/manual/geode.png" - ], - "border": true, - "text": "Geodes form in places where magical energy is so abundant, it crystallizes to physical form - as Gemstones. Each type of gemstone seems to represent a different type of fundamental property." - }, - { - "type": "patchouli:multiblock", - "name": "Geode Structure", - "enable_visualize": false, - "multiblock": { - "pattern": [ - [ - " ", - " ", - "O ", - " O ", - " ", - " SS ", - " O SSSS ", - " SS O ", - " ", - " ", - " ", - " ", - " " - ], - [ - " O ", - " O ", - " ", - " SSSSSS ", - " SSSCCSSS ", - " SSCCCCSS ", - " SSCCCCCCSS ", - " SSCCCCSS ", - " SSSCCSSS ", - " SSSSSS ", - " ", - " O ", - " " - ], - [ - " ", - " ", - " SSSSSSS ", - " SSCCCCCSS ", - " SSCCAAACCS ", - " SCCAAAAACCS ", - " SCCAAAAACCS ", - " SSCCAAACCSS ", - " SSCCCCCSS ", - " SSSSSSS ", - " ", - " ", - " " - ], - [ - " ", - " SSSSSS ", - " SSCCCCCSS ", - " SSCCAAAACCS ", - " SCCAAAAAACSS ", - " SCCAA AACCS ", - " SCCA AACS ", - " SCCAA ACCS ", - " SCAA AACCS ", - " SCC AAACCS ", - " S CCCSS ", - " SSS ", - " " - ], - [ - " SSS ", - " SSCCCSS ", - " SSCCBACCCS ", - " SCCAAAAAACCS ", - " SCAA AACSS ", - " SCAA ACCS ", - " SCAA ACCS ", - " SCAA ACCS ", - " SCCA AACSS ", - " SC BACCSS ", - " ACCSS ", - " CCSS ", - " SS " - ], - [ - " SSSS ", - " SCCCCCSS ", - " SCCAABACSS ", - " SCCAB AAACSS ", - " SCCAB ACCS ", - " SCA AACS ", - "SCA ACSS", - "SCA AACSS", - "SCA AACS ", - "SCAA AACCS ", - " S AACCSS ", - " S CCSS ", - " SS " - ], - [ - " SSSSS ", - " SCCCCCSS ", - " SSCAAAAACCS ", - " CCAA AAACCS ", - " SCA AACS ", - " SCA ACSS", - " SCA ACCS", - " SCA ACCS", - " SCA AACSS", - " S BCSS ", - " AACCS ", - " CCSS ", - " O SS " - ], - [ - " SSSS ", - " SSCCCCSS ", - " SCCAAACCCS ", - "O SCAAA AAACCS ", - " SCAA AACS ", - " SBA ACSS", - " SCA 0 ACCS", - " SCB ACCS", - " CA ACSS", - " S ACCSS", - " AACSS ", - " CCSS ", - " SSS " - ], - [ - " S ", - " SSCCSSS ", - " SCCCACCCSS ", - " SCCAAAAAACSS ", - " CCA ACCS ", - " SCB AACSS", - " SCA ACSS", - " SCB ACSS", - " SC AACSS", - " S AACSS ", - " ACCS ", - " CCSS ", - " SS " - ], - [ - " ", - " SSSSS ", - " SCCCCCCS ", - " SCCABAACCS ", - " SCAAA ABACCS ", - " SCA AACS ", - " SCAA ABCS ", - " SCAB AACS ", - " SCA ACCS ", - " AAACSS ", - " ACCCS ", - " CCS ", - " SS " - ], - [ - " ", - " S ", - " SSSCSSS ", - " SCCCCCCCS ", - " SCCAAAACCS ", - " CCBAAAAACSS ", - " SCAA AACSS ", - " SCAAA AACSS ", - " SCCAAAAAACSS ", - " S ABACCS ", - " CCCS ", - " SSS ", - " O S " - ], - [ - " O ", - " ", - " SSS ", - " SSCCSSS ", - " SCCCCCCS ", - " SSCCAACCSS ", - " SCCAABCCSS ", - " SCCBAACCSS O", - " SCCCACCCSS ", - " OS CSS ", - " O SS ", - " ", - " " - ], - [ - " ", - " ", - " O ", - " SS ", - " SSSSS ", - " SSCCSSS ", - " SSCCCCSS ", - " SSCCCCSS ", - " SSSCCSS ", - " SSSSSSS O ", - " SS ", - " ", - " " - ], - [ - " ", - " ", - " ", - " ", - " O ", - " S ", - " SSS ", - " SS ", - " S O ", - " ", - " ", - " ", - " " - ] - ], - "mapping": { - "S": "minecraft:smooth_basalt", - "C": "minecraft:calcite", - "A": "minecraft:amethyst_block", - "B": "minecraft:budding_amethyst", - "W": "minecraft:small_amethyst_bud", - "X": "minecraft:medium_amethyst_bud", - "Y": "minecraft:large_amethyst_bud", - "Z": "minecraft:amethyst_cluster", - "O": "spectrum:amethyst_ore" - }, - "symmetrical": false - }, - "text": "Different heights promote formation of certain types. To find them all, it makes sense to search in different places." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:spectrum", - "title": "Gemstone Ores", - "item": "spectrum:amethyst_ore", - "text": "Now that you are paying attention, you noticed small inclusions of gems in the rock all over the place.$(br)If you see such an ore a geode is surely not far!$(br2)While not renewable like Gemstone Clusters, Gemstone Ore provides a lot of Shards, especially when broken with a Fortune-Tool." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "title": "Topaz Geodes", - "item": "spectrum:topaz_block", - "text": "Topaz geodes are gigantic in contrast to the others, fitting for their element of matter. However, for this they are found exclusively far above the ground in mountains or massive hills." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "title": "Amethyst Geodes", - "item": "minecraft:amethyst_block", - "text": "As elements of time, Amethyst Geodes tend to maintain their existence in the lowest layers of the world, quietly sealed off from all other happenings in the world.$(br)Leisurely and yet imposing." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "title": "Citrine Geodes", - "item": "spectrum:citrine_block", - "text": "Geodes with Citrine are found in the middle layers of the world, sometimes even accessible from the surface. These geodes are small, but harbor tremendous energy, so they are cracked especially often." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "title": "Moonstone Geodes", - "item": "spectrum:moonstone_block", - "text": "TODO" - }, - { - "type": "patchouli:text", - "advancement": "spectrum:lategame/collect_resonance_enchanted_tool", - "title": "Acquiring Budding Blocks", - "text": "=> $(l:enchanting/resonance)Resonance$()." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/lightning_stones.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/lightning_stones.json deleted file mode 100644 index 9c284732e1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/lightning_stones.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Storm Stones", - "advancement": "spectrum:midgame/collect_lightning_stone", - "icon": "spectrum:lightning_stone", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:lightning_stone": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "Thunderstorms", - "text": "Thunderstorms are a powerful sign of the forces of nature.$(br)With the $(l:general/fusion_shrine)Fusion Shrine$() you did even start them when crafting some powerful resources.$(br2)There was no doubt coming across something here that had a connection to the magic of pigments." - }, - { - "type": "patchouli:spotlight", - "title": "Storm Stones", - "item": "spectrum:lightning_stone", - "text": "Dug into the ground by lightning strikes, you found these stones vibrating in your hand due to the inherent static.$(br)Used in the $(l:general/fusion_shrine)Fusion Shrine$(), you can use them to summon thunderstorms yourself.$(br2)$(italic)Because of their volatile nature they do not react too nicely to explosions..." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/paletur.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/paletur.json deleted file mode 100644 index 52682a57e3..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/paletur.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "Paltaeria", - "advancement": "spectrum:lategame/collect_paletur", - "icon": "spectrum:paletur_fragments", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:paletur_ore": 0, - "spectrum:paletur_fragments": 0, - "spectrum:paletur_gem": 0, - "spectrum:paletur_fragment_block": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Paltaeria", - "item": "spectrum:paletur_fragments", - "text": "The light blue color is the trademark of this ore. It is found exclusively in the end in small clusters.$(br)Like the end itself, the curious properties of this material are not to be overlooked." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Paltaeria Gem", - "advancement": "spectrum:hidden/collect_paletur_gem", - "recipe": "spectrum:pedestal/tier4/paletur_gem", - "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." - }, - { - "type": "patchouli:spotlight", - "title": "Paltaeria Floatblock", - "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", - "item": "spectrum:paletur_fragment_block", - "text": "From your previous experience with Paltaeria, you can already guess that it would not be a good idea to place this block in open sky.$(br2)The arrow on this block will service you as a reminder - your future self will thank you." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", - "recipe": "spectrum:pedestal/tier1/compacting/paletur_fragment_block", - "text": " $(italic)~Fly far away~" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/quitoxic_reeds.json deleted file mode 100644 index 743bc8d2d9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/quitoxic_reeds.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "Quitoxic Reeds", - "icon": "spectrum:quitoxic_reeds", - "advancement": "spectrum:collect_quitoxic_reeds", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:quitoxic_reeds": 0, - "spectrum:quitoxic_powder": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Quitoxic Reeds", - "images": [ - "spectrum:textures/gui/manual/quitoxic_reed.png" - ], - "border": true, - "text": "Grows exclusively in Swamps and seems to devour Clay as a form of nutrient." - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:quitoxic_powder", - "text": "A purple glittering powder can be extracted from the stems of the alien-looking plant by crushing it with an anvil.$(br)Smell and consistency are very unusual when rubbed between your fingers.$(br2)$(italic)...wait a moment, what are fingers?" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/resonating_ender.json deleted file mode 100644 index 6739e4c490..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/resonating_ender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Resonating Ender", - "advancement": "spectrum:milestones/reveal_ender_treasure", - "icon": "minecraft:ender_pearl", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:ender_treasure": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "$(italic)Those pesky Endermen!$(br2)They always show up at night and steal blocks off the ground right from your nose. You have the feeling that the whole area here will be nothing but a single crater landscape in a month.$()" - }, - { - "type": "patchouli:spotlight", - "title": "Resonating Ender", - "item": "spectrum:ender_treasure", - "text": "The Endermen come to this world to place those blocks. But what is this stuff? And $(italic)WHY$() do they leave it here?$(br2)Now that you hold one in your hands... they are everywhere! How didn't you notice earlier? Anyways, you are sure that you can take advantage of this interesting material." - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/scarlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/scarlet.json deleted file mode 100644 index 2063852c24..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/scarlet.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "Stratine", - "advancement": "spectrum:midgame/collect_scarlet", - "icon": "spectrum:scarlet_fragments", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:scarlet_ore": 0, - "spectrum:scarlet_fragments": 0, - "spectrum:scarlet_gem": 0, - "spectrum:scarlet_fragment_block": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Stratine", - "item": "spectrum:scarlet_fragments", - "text": "This very heavy ore is scattered around the depths of the Nether.$(br)It's probably not the best idea to carry large amounts of it home at once." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Stratine Gem", - "advancement": "spectrum:hidden/collect_scarlet_gem", - "recipe": "spectrum:pedestal/tier3/scarlet_gem", - "text": "Rarely can one carve an intact stone. It can be used in recipes for which the Fragments were simply too small. Though with effort you can merge those together." - }, - { - "type": "patchouli:spotlight", - "title": "Stratine Floatblock", - "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "item": "spectrum:scarlet_fragment_block", - "text": "Stratine - as you may have already noticed - is an exceptionally heavy material. And difficult to shape, too. Even the blazing heat of the Nether could not harm the material.$(br2)However, shaping it via your $(l:general/pedestal)Pedestal$() should not be a problem whatsoever." - }, - { - "type": "spectrum:pedestal_crafting", - "title": "Pedestal Recipe", - "advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "recipe": "spectrum:pedestal/tier1/compacting/scarlet_fragment_block", - "text": "$(italic)Heavy Metal" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/shimmerstone.json deleted file mode 100644 index e59a6f8597..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/shimmerstone.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "Shimmerstone", - "advancement": "spectrum:collect_sparklestone", - "icon": "spectrum:sparklestone_ore", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:sparklestone_ore": 0, - "spectrum:deepslate_sparklestone_ore": 0, - "spectrum:sparklestone_gem": 0, - "spectrum:sparklestone_block": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "Shimmerstone", - "item": "spectrum:sparklestone_gem", - "text": "A yellow ore that does not only emit energy in the form of light, but is able to manipulate it, too.$(br2)Shimmerstone is found close to sea level altitudes." - }, - { - "type": "patchouli:crafting", - "recipe": "spectrum:crafting_table/storage_blocks/sparklestone_block", - "text": "Full blocks of Shimmerstone emit glowing bright yellow particles." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/stargazing.json deleted file mode 100644 index eadfbf9285..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/pt_br/entries/resources/stargazing.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "Stargazing", - "advancement": "spectrum:milestones/unlock_shooting_stars", - "icon": "minecraft:spyglass", - "category": "spectrum:resources_category", - "extra_recipe_mappings": { - "spectrum:shooting_star": 0, - "spectrum:stardust": 0, - "spectrum:shooting_star_glistering": 0, - "spectrum:shooting_star_fiery": 0, - "spectrum:shooting_star_colorful": 0, - "spectrum:shooting_star_pristine": 0, - "spectrum:shooting_star_gemstone": 0 - }, - "pages": [ - { - "type": "patchouli:image", - "title": "Wishing upon a Star", - "images": [ - "spectrum:textures/gui/manual/stargazing.png" - ], - "border": true, - "text": "$(italic)The calmness of the night invites you to lie down in the grass and watch the stars." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:collect_shooting_star", - "title": "Shooting Stars", - "item": "spectrum:shooting_star_glistering", - "text": "The small Shooting Stars are made of a material unknown to you thus far.$(br2)Can you catch one right off the sky?$(br2)$(italic)Tip: Shooting Stars are much easier to spot when using a Telescope or Night Vision.$()" - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:collect_shooting_star", - "title": "Star Fragments", - "item": "spectrum:shooting_star", - "text": "Shooting Stars yield precious resources, including this rare Star Fragment, Stardust and a whole lot of other rare materials.$(br2)Picking up a Shooting Star by crouching and $(l:general/anvil_crushing)smashing it via an Anvil$(/l) will yield double the Star Fragments, albeit at the cost of the other materials." - }, - { - "type": "patchouli:spotlight", - "advancement": "spectrum:collect_shooting_star", - "title": "Stardust", - "item": "spectrum:stardust", - "text": "A powder of unknown origin blessed with the soul of the stars.$(br)Bears coy, yet latent power." - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/creating_life_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/creating_life_category.json deleted file mode 100644 index c408f92d71..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/creating_life_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "创造生命", - "description": "让你的生物学家梦想æˆçœŸ: 创造生命的旅程ï¼", - "icon": "spectrum:bottle_of_fading", - "sortnum": 7 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/decoration_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/decoration_category.json deleted file mode 100644 index 9db4114b6c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/decoration_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "装饰", - "description": "用好看的方å—装饰你的家和周围的环境ï¼", - "icon": "spectrum:chiseled_polished_calcite", - "sortnum": 3 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/dimension_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/dimension_category.json deleted file mode 100644 index 5c0d58022a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/dimension_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "基岩之下", - "description": "属于你自己的冒险ï¼åˆ°è¾¾åœ°å¿ƒï¼", - "icon": "minecraft:bedrock", - "sortnum": 10 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/enchanting_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/enchanting_category.json deleted file mode 100644 index ffce782505..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/enchanting_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "你的最爱", - "description": "想è¦å‡çº§å·¥å…·å’Œæ­¦å™¨ï¼Ÿè¿™é‡Œæœ‰ä½ éœ€è¦çŸ¥é“的一切ï¼", - "icon": "spectrum:enchanter", - "sortnum": 8 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/general_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/general_category.json deleted file mode 100644 index 7b2179f753..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/general_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "开始冒险", - "description": "一段简å•快速的光谱世界概览,帮助你入门并开å¯ä¹‹åŽçš„冒险ï¼", - "icon": "spectrum:pedestal_basic_amethyst", - "sortnum": 0 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/hints_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/hints_category.json deleted file mode 100644 index 971b65e090..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/hints_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "锦囊妙计", - "description": "如果你å¡åœ¨äº†æŸä¸ªé˜¶æ®µæ— æ³•å‰è¿›ï¼Œå¯ä»¥æ¥è¿™é‡ŒèŽ·å–一些æç¤ºã€‚$(br)但如果你在没有æç¤ºçš„æƒ…况下完æˆäº†æ‰€æœ‰ä»»åŠ¡ï¼Œä¼šæ”¶åˆ°ä¸€ä¸ªå°å¥–åŠ±ï¼ :)$(br)就当这一章ä¸å­˜åœ¨å§~$(br) ~DaFuqs", - "icon": "minecraft:writable_book", - "sortnum": 12 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magic_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magic_category.json deleted file mode 100644 index d5486d4e31..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magic_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "Ink 魔法", - "description": "元素之çµåœ¨å¬å”¤ä½ ï¼", - "icon": "spectrum:pigment_palette", - "sortnum": 11 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magical_blocks_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magical_blocks_category.json deleted file mode 100644 index f1648365ab..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magical_blocks_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "魔法方å—", - "description": "åªéœ€æ¶ˆè€—一些神奇的魔法å®çŸ³çŸ¿ï¼Œå°±å¯ä»¥å®Œæˆè¯¸å¤šå·¥ä½œçš„魔法方å—ï¼$(br2) 还有一些魔法方å—éœ€è¦æŸç§å½¢å¼çš„èƒ½é‡æ¥æŒç»­ä¾›èƒ½ã€‚", - "icon": "spectrum:private_chest", - "sortnum": 6 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magical_items_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magical_items_category.json deleted file mode 100644 index c296ca95b5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/magical_items_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "魔法物å“", - "description": "一大堆å¯è£…å¤‡çš„é­”æ³•ç‰©å“æ¥è®©ä½ çš„冒险更加轻æ¾ï¼", - "icon": "spectrum:natures_staff", - "sortnum": 5 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/pastel_network_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/pastel_network_category.json deleted file mode 100644 index 03df94e6a3..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/pastel_network_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "七彩网路", - "description": "ä½¿ç”¨é¢œæ–™æ¥æ— çº¿ä¼ è¾“物å“ï¼", - "icon": "spectrum:provider_node", - "sortnum": 9 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/redstone_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/redstone_category.json deleted file mode 100644 index d200a3e28f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/redstone_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "红石组件", - "description": "当你手æŒç¬¬ä¸€ç‰‡å®çŸ³çŸ¿ï¼Œä½ å°±åº”该注æ„到了,å³ä½¿çŽ¯å¢ƒå‘生了微å°çš„æ”¹å˜ï¼Œå®çŸ³ç¢Žç‰‡ä¹Ÿä¼šæœ‰æ‰€å˜åŒ–。$(br)ä½ å¯ä»¥é€šè¿‡è¿™ä¸€ç‰¹æ€§æ¥èŽ·å–优势——在新的生æˆç»“构中使用å®çŸ³çŸ¿æˆ–者将它们连接到你的原始尘埃线(primitive dust lines)。", - "icon": "minecraft:redstone", - "sortnum": 4 -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/resources_category.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/resources_category.json deleted file mode 100644 index 202085a431..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/categories/resources_category.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "资æº", - "description": "散布世界的多ç§çŸ¿ç‰©å’Œæ¤ç‰©ç­‰å¾…ç€è¢«ä½ å‘çŽ°ï¼Œå‰ææ˜¯ä½ å¾—æ³¨æ„到它们。$(br)你越熟悉这些æ¥è‡ªä¸–界的魔法,它们就越容易被你å‘现。", - "icon": "spectrum:sparklestone_ore", - "sortnum": 1 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/creating_life.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/creating_life.json deleted file mode 100644 index b001c6f26a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/creating_life.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"创造人工生命一直是人们的梦想。$(br)既然你现在自己在处ç†é­”法å®çŸ³ï¼Œå®ƒä»¬ä¼¼ä¹Žæœ‰é­”力,这应该是å°èœä¸€ç¢Ÿã€‚", - "type":"patchouli:text", - "title":"创造生命" - }, - { - "text":"ç”±å®çŸ³æ†ç»‘çš„åŽŸå§‹é­”æ³•åŠ›é‡æ˜¯æ­¤ç±»ç ”究的最佳起点。$(br2)æ—¢ç„¶ä½ çœ‹èµ·æ¥æ˜¯ä¸æœ½çš„,你就有世界上所有的时间去æ€è€ƒå®ƒã€‚$(br)(上次一头直立行走的绿猪让你大åƒä¸€æƒŠï¼Œç¬¬äºŒå¤©æ—©ä¸Šä½ åœ¨åºŠä¸Šé†’æ¥ï¼‰$(br2)是时候。。。实验ï¼", - "type":"patchouli:text" - } - ], - "advancement":"spectrum:progression/unlock_bottle_of_fading", - "name":"创造生命", - "icon":"minecraft:egg", - "category":"spectrum:creating_life_category", - "priority":true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/decay_away.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/decay_away.json deleted file mode 100644 index 31480a39eb..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/decay_away.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:bottle_of_decay_away", - "text":"你上次的实验ä¸ä»…å±é™©ï¼Œè€Œä¸”很难摆脱。$(br)为了防止任何事情失控,您创建了这个修改的å˜ä½“。ä¸è¿‡ï¼Œè¿™æ¬¡æ˜¯ä¸ºäº†æ²»æ„ˆè€Œä¸æ˜¯æ·¹æ²¡ä½ çš„基地。$(br2)是的,那å¯èƒ½æ›´å¥½ã€‚", - "title":"清ç†å¾®ç”Ÿç‰©", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier3/bottle_of_decay_away", - "text":"去除99%的自我å¤åˆ¶å¾®ç”Ÿç‰©ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_bottle_of_decay_away", - "extra_recipe_mappings":{ - "spectrum:bottle_of_decay_away":0 - }, - "name":"清ç†å¾®ç”Ÿç‰©", - "icon":"spectrum:bottle_of_decay_away", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/fading.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/fading.json deleted file mode 100644 index d33dd31936..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/fading.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:bottle_of_fading", - "text":"没过多久,你就想到了一个建设计划。$(br2)你创造的有机体很弱,但你创造新生命的计划似乎是æˆåŠŸçš„ï¼Œè‡³å°‘åœ¨åŽŸåˆ™ä¸Šæ˜¯æˆåŠŸçš„ï¼ä¸å¯å¦è®¤ï¼Œè¿™åªæ˜¯ä¸€ç¾¤å¾®ç”Ÿç‰©ï¼Œä½†å®ƒä»¬æ˜¯æ´»çš„ï¼", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/bottle_of_fading", - "text":"æ¯ä¸ªç”Ÿç‰©åŸºæœ¬ä¸Šéƒ½æœ‰ç›¸åŒçš„目标:åƒå’Œç¹æ®–。$()所以这些弱å°çš„生物åƒä»€ä¹ˆï¼Ÿå…¶ä»–æ–¹å—?ç»å¯¹æ˜¯å®¹æ˜“消化的东西。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:vegetal", - "advancement":"spectrum:collect_vegetal", - "anchor":"vegetal", - "text":"答案似乎是有机物ï¼ç¡®å®žå®¹æ˜“消化。$(br)å½“æ¶ˆåŒ–æœ‰æœºç‰©æ—¶ï¼Œä¼šäº§ç”Ÿä¸€ç§æœ‰è¶£çš„副产å“,你称之为æ¤ç‰©ã€‚它由$(bold)自然的原始能é‡$()组æˆã€‚$(br2)你肯定这对你很有用。", - "type":"patchouli:spotlight", - "title":"æ¤ç‰©èƒ½é‡ç²‰" - } - ], - "advancement":"spectrum:progression/unlock_bottle_of_fading", - "extra_recipe_mappings":{ - "spectrum:bottle_of_fading":0, - "spectrum:vegetal":0 - }, - "name":"实验#1:消é€", - "icon":"spectrum:bottle_of_fading", - "turnin":"spectrum:collect_vegetal", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/failing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/failing.json deleted file mode 100644 index ba304dfe45..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/failing.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:bottle_of_failing", - "text":"由于你的玛瑙和红丹的强大能é‡ï¼Œè¿™ç¬¬äºŒä¸ªæœ‰æœºä½“显然是。。。比上一次创作更活跃。$(br2)$(bold)而且肯定更饥渴。$(br)更加饥渴了。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier3/bottle_of_failing", - "text":"也许你知é“çš„æœ€ç»“å®žçš„ææ–™ä¹‹ä¸€å¯ä»¥æ»¡è¶³ä»–们的饥饿感?", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:neolith", - "advancement":"spectrum:midgame/collect_neolith", - "anchor":"neolith", - "text":"黑曜石确实被你的实验粉碎了。这就是你所说的力é‡ï¼$(br2)结果就是这ç§åšå›ºçš„试剂。", - "type":"patchouli:spotlight", - "title":"黑曜能é‡ç²‰" - } - ], - "advancement":"spectrum:progression/unlock_bottle_of_failing", - "extra_recipe_mappings":{ - "spectrum:bottle_of_failing":0, - "spectrum:neolith":0 - }, - "name":"实验#2:侵蚀", - "icon":"spectrum:bottle_of_failing", - "turnin":"spectrum:midgame/collect_neolith", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/memories.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/memories.json deleted file mode 100644 index 4d3249073d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/memories.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:memory{EntityTag: {id: \"minecraft:fox\"}, TicksToManifest: 20}", - "text":"有了$(l:creating_life/spirit_instiller)çµé­‚注入器$(/l),你å¯ä»¥ç»™ä¸€ä¸ªæ›¾ç»æ­»åŽ»çš„ç”Ÿç‰©æ³¨å…¥æ–°çš„ç”Ÿå‘½ã€‚$(br)它将以$(italic)记忆$()的形å¼å‡ºçŽ°ã€‚", - "type":"patchouli:spotlight", - "title":"记忆" - }, - { - "recipe":"spectrum:spirit_instiller/memories/fox", - "text":"为了记ä½å…³äºŽä¸€ä¸ªç”Ÿç‰©çš„记忆,你需è¦å®ƒçš„$(l:creating_life/mob_heads)头$(/l),以åŠå®ƒæœ€å¿ƒçˆ±çš„物å“å’Œ$(l:creating_life/fading#vegetal)æ¤ç‰©èƒ½é‡ç²‰$(/l)作为粘åˆå‰‚。$(br)使用$(l:creating_life/failing#neolith)黑曜能é‡ç²‰$(/l)似乎完全压倒了生物的能é‡ï¼Œä½¿äº§ç”Ÿçš„记忆无法识别,直到它显现出æ¥ã€‚", - "type":"spectrum:spirit_instiller_crafting", - "title":"çµé­‚æ³¨å…¥å™¨é…æ–¹" - }, - { - "text":"记忆需è¦ä¸€å®šçš„æ—¶é—´æ‰èƒ½æ˜¾çŽ°ï¼Œå°±åƒé¸¡è›‹ä¸€æ ·ï¼šä½ å¿…须把它们放下æ¥ç­‰å¾…。根æ®ç”Ÿç‰©çš„ä¸åŒï¼Œå®ƒå¯èƒ½ç›¸å½“快,也å¯èƒ½éœ€è¦å¾ˆé•¿æ—¶é—´ã€‚$(br2)$(italic)将它们放在æŸäº›æ–¹å—的顶部似乎å¯ä»¥åŠ å¿«è¿™ä¸€è¿‡ç¨‹æˆ–å®Œå…¨åœæ­¢è¿™ä¸€è¿‡ç¨‹ã€‚", - "type":"patchouli:text", - "title":"显现" - } - ], - "advancement":"spectrum:midgame/collect_neolith", - "extra_recipe_mappings":{ - "spectrum:memory":0 - }, - "name":"记忆", - "icon":"spectrum:memory{EntityTag: {id: \"minecraft:fox\"}, TicksToManifest: 20}", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/mob_heads.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/mob_heads.json deleted file mode 100644 index 561962ee36..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/mob_heads.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:cow_head", - "text":"使用你的新$(l:enchanting/treasure_hunter)çµé­‚猎手$(/l)魔法,你å¯ä»¥ä»Žå„ç§ç”Ÿç‰©é‚£é‡Œæ”¶é›†äººå¤´ã€‚$(br)è™½ç„¶å®ƒä»¬å¾ˆå¥½åœ°å±•ç¤ºäº†ä½ çš„å°æ”¶èŽ·ï¼Œä½†å®ƒä»¬ä»ç„¶ç»§æ‰¿äº†è¿™ç§ç”Ÿç‰©å­˜åœ¨çš„一点ç«èŠ±ã€‚", - "type":"patchouli:spotlight", - "title":"生物头颅" - } - ], - "advancement":"spectrum:progression/enchantments/treasure_hunter", - "extra_recipe_mappings":{ - "spectrum:sheep_purple_head":0, - "spectrum:horse_head":0, - "spectrum:fox_arctic_head":0, - "spectrum:goat_head":0, - "spectrum:bee_head":0, - "spectrum:vindicator_head":0, - "spectrum:slime_head":0, - "spectrum:salmon_head":0, - "spectrum:wolf_head":0, - "spectrum:fox_head":0, - "spectrum:parrot_cyan_head":0, - "spectrum:wandering_trader_head":0, - "spectrum:husk_head":0, - "spectrum:sheep_lime_head":0, - "spectrum:pig_head":0, - "spectrum:shulker_pink_head":0, - "spectrum:axolotl_blue_head":0, - "spectrum:parrot_gray_head":0, - "spectrum:rabbit_head":0, - "spectrum:vex_head":0, - "spectrum:cow_head":0, - "spectrum:shulker_yellow_head":0, - "spectrum:sheep_black_head":0, - "spectrum:cave_spider_head":0, - "spectrum:evoker_head":0, - "spectrum:phantom_head":0, - "spectrum:shulker_green_head":0, - "spectrum:shulker_black_head":0, - "spectrum:sheep_green_head":0, - "spectrum:glow_squid_head":0, - "spectrum:shulker_white_head":0, - "spectrum:drowned_head":0, - "spectrum:enderman_head":0, - "spectrum:bat_head":0, - "spectrum:ghast_head":0, - "spectrum:illusioner_head":0, - "spectrum:sheep_brown_head":0, - "spectrum:clownfish_head":0, - "spectrum:ravager_head":0, - "spectrum:shulker_light_blue_head":0, - "spectrum:guardian_head":0, - "spectrum:hoglin_head":0, - "spectrum:parrot_blue_head":0, - "spectrum:panda_head":0, - "spectrum:sheep_light_blue_head":0, - "spectrum:silverfish_head":0, - "spectrum:shulker_orange_head":0, - "spectrum:axolotl_leucistic_head":0, - "spectrum:sheep_white_head":0, - "spectrum:magma_cube_head":0, - "spectrum:sheep_cyan_head":0, - "spectrum:shulker_lime_head":0, - "spectrum:polar_bear_head":0, - "spectrum:llama_head":0, - "spectrum:ocelot_head":0, - "spectrum:sheep_yellow_head":0, - "spectrum:villager_head":0, - "spectrum:chicken_head":0, - "spectrum:snow_golem_head":0, - "spectrum:spider_head":0, - "spectrum:iron_golem_head":0, - "spectrum:turtle_head":0, - "spectrum:sheep_blue_head":0, - "spectrum:shulker_brown_head":0, - "spectrum:shulker_red_head":0, - "spectrum:blaze_head":0, - "spectrum:parrot_green_head":0, - "spectrum:parrot_red_head":0, - "spectrum:shulker_gray_head":0, - "spectrum:axolotl_gold_head":0, - "spectrum:sheep_magenta_head":0, - "spectrum:sheep_orange_head":0, - "spectrum:shulker_cyan_head":0, - "spectrum:shulker_purple_head":0, - "spectrum:mooshroom_brown_head":0, - "spectrum:axolotl_cyan_head":0, - "spectrum:shulker_blue_head":0, - "spectrum:shulker_light_gray_head":0, - "spectrum:mooshroom_red_head":0, - "spectrum:strider_head":0, - "spectrum:donkey_head":0, - "spectrum:trader_llama_head":0, - "spectrum:piglin_head":0, - "spectrum:stray_head":0, - "spectrum:pufferfish_head":0, - "spectrum:sheep_red_head":0, - "spectrum:shulker_magenta_head":0, - "spectrum:elder_guardian_head":0, - "spectrum:cat_head":0, - "spectrum:witch_head":0, - "spectrum:endermite_head":0, - "spectrum:zombified_piglin_head":0, - "spectrum:sheep_light_gray_head":0, - "spectrum:wither_head":0, - "spectrum:mule_head":0, - "spectrum:zoglin_head":0, - "spectrum:sheep_gray_head":0, - "spectrum:sheep_pink_head":0, - "spectrum:axolotl_brown_head":0, - "spectrum:squid_head":0, - "spectrum:zombie_villager_head":0 - }, - "name":"生物头颅", - "icon":"minecraft:wither_skeleton_skull", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/ruin.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/ruin.json deleted file mode 100644 index d2e6d7ee5d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/ruin.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:bottle_of_ruin", - "text":"å°±æ˜¯è¿™æ ·ã€‚ä½ é…æ–¹çš„完美。你甚至ä¸ä¼šè®©å®ƒå˜å¾—微妙。这东西是故æ„让人$(#ff0000)讨厌$()çš„ï¼Œä½ ä¸æ˜¯ä¸ºäº†å¥½çŽ©æ‰è¿™ä¹ˆå«çš„。$(br)è¿™å¯èƒ½æ˜¯ä¸€ä»¶è¶³ä»¥æ‘§æ¯ä¹‹å‰è¢«è§†ä¸ºç‰¢ä¸å¯ç ´çš„ææ–™çš„具有侵略性的事情。$(br)$(bold)如果你ä¸å°å¿ƒï¼Œä½ å¯èƒ½ä¼šæ¯æŽ‰ä¸–界。字é¢ä¸Š$()", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier3/bottle_of_ruin", - "text":"ä½ å¯èƒ½æ²¡æœ‰åˆ›é€ å‡ºä½ æœ€åˆæƒ³è±¡çš„生活,但你ä»ç„¶åˆ›é€ å‡ºäº†ä¸€äº›æ˜Žæ˜¾å¼ºå¤§çš„东西。我猜这很é‡è¦ï¼Ÿ", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:bedrock_dust", - "advancement":"spectrum:midgame/break_decayed_bedrock", - "text":"å³ä½¿æ˜¯åŸºå²©ä¹Ÿä¸è¶³ä»¥æ‰¿å—你新创造的“生命â€ã€‚它åƒè’²å…¬è‹±ç©¿è¿‡æ··å‡åœŸä¸€æ ·å†²ç ´äº†åŸºå²©ã€‚", - "type":"patchouli:spotlight", - "title":"基岩粉尘" - }, - { - "advancement":"spectrum:midgame/break_decayed_bedrock", - "text":"如果你在这里阅读笔记,而其中一些内容ä»ç„¶å…费,你应该尽快改å˜ï¼Œå¦åˆ™ä½ ä¼šåŽæ‚”的。$(br2)幸è¿çš„æ˜¯ï¼Œä½ å·²ç»å‘明了一ç§åˆé€‚çš„$(l:creating_life/decay_away)åˆé€‚çš„å制物$(/l)。", - "type":"patchouli:text", - "title":"å‹å¥½çš„æé†’" - } - ], - "advancement":"spectrum:progression/unlock_bottle_of_ruin", - "extra_recipe_mappings":{ - "spectrum:bottle_of_ruin":0, - "spectrum:bedrock_dust":0 - }, - "name":"实验#3ï¼šæŸæ¯", - "icon":"spectrum:bottle_of_ruin", - "turnin":"spectrum:midgame/break_decayed_bedrock", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/spawner_manipulation.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/spawner_manipulation.json deleted file mode 100644 index 7b3ae530f6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/spawner_manipulation.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:resonant_pickaxe", - "text":"$(l:enchanting/resonance)共振$(/l)附魔使你å¯ä»¥è®©æ€ªç‰©ç¬¼æŽ‰è½ï¼Œç”±ä½ æ”¶é›†ã€‚$(br2)虽然你还没有弄清楚如何自己制作这些构件,但你现在感觉自己完全有能力使用$(l:creating_life/spirit_instiller)çµé­‚注入器$(/l)æ¥æ”¹å˜å®ƒä»¬çš„属性。", - "type":"patchouli:spotlight", - "title":"收获怪物笼" - }, - { - "recipe":"spectrum:spirit_instiller/spawner/spawner_creature_change", - "text":"使用与$(l:creating_life/memory)记忆$(/l)类似的技术,你å¯ä»¥æ”¹å˜æ€ªç‰©ç¬¼çš„ç”Ÿç‰©ï¼Œä½¿å…¶åŒæ—¶ç”Ÿæˆå¦ä¸€ç§ç±»åž‹çš„生物。", - "type":"spectrum:spirit_instiller_crafting", - "title":"改å˜ç”Ÿç‰©" - }, - { - "recipe":"spectrum:spirit_instiller/spawner/spawner_spawn_delay_change", - "text":"é™ä½Žæœ€å°å’Œæœ€å¤§ç”Ÿæˆå»¶è¿Ÿã€‚", - "type":"spectrum:spirit_instiller_crafting", - "title":"生æˆå»¶è¿Ÿ" - }, - { - "recipe":"spectrum:spirit_instiller/spawner/spawner_spawn_count_change", - "text":"增加æ¯ä¸ªå‘¨æœŸå¬å”¤çš„生物数é‡ã€‚", - "type":"spectrum:spirit_instiller_crafting", - "title":"生æˆè®¡æ•°" - }, - { - "recipe":"spectrum:spirit_instiller/spawner/spawner_max_nearby_entities_change", - "text":"增加å…许é è¿‘怪物笼的生物数é‡ã€‚å½“é™„è¿‘å·²ç»æœ‰å¾ˆå¤šç”Ÿç‰©æ—¶ï¼Œ$(br)$(italic)æ€ªç‰©ç¬¼ä¼¼ä¹Žä¼šè‡ªç„¶åœæ­¢ç”Ÿæˆã€‚å°±åƒä»–ä»¬æƒ³ç»™ä½ ä¸€ä¸ªæœºä¼šä¸€æ ·ã€‚çœŸå¯æ€œï¼Œä¸æ˜¯å—?好åƒä½ éœ€è¦ä¸€æ ·ã€‚", - "type":"spectrum:spirit_instiller_crafting", - "title":"å¬å”¤æ ‡å‡†" - }, - { - "recipe":"spectrum:spirit_instiller/spawner/spawner_required_player_range_change", - "text":"增加你å¯ä»¥ç«™ç«‹çš„范围,使怪物笼ä»ç„¶å¯ä»¥ç”Ÿæˆç”Ÿç‰©ã€‚", - "type":"spectrum:spirit_instiller_crafting", - "title":"激活范围" - } - ], - "advancement":"spectrum:milestones/unlock_spawner_manipulation", - "extra_recipe_mappings":{ - "spectrum:spawner":0, - "minecraft:spawner":0 - }, - "name":"怪物笼æ“作", - "icon":"spectrum:spawner", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/spirit_instiller.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/spirit_instiller.json deleted file mode 100644 index 51ba04a1e3..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/creating_life/spirit_instiller.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "pages":[ - { - "text":"用你收集的所有知识创造,你创造了çµé­‚注入器。它能够连接两个物体的能é‡ï¼Œå¹¶å€ŸåŠ©ç¬¬ä¸‰ä¸ªç‰©ä½“å°†å…¶ç»‘å®šã€‚$(br)一个近乎çµé­‚上的的过程。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/spirit_instiller", - "text":"çµé­‚注入器需è¦ä¸€ä¸ªä¸“注结构æ¥å·¥ä½œã€‚è¦æŒ‰æ‚¨æƒ³è¦çš„æ–¹å‘旋转结构全æ¯å›¾ï¼Œè¯·å•击放置的“çµé­‚注入器â€ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "multiblock_id":"spectrum:spirit_instiller_structure", - "name":"注入å¼ç»“æž„", - "text":"为了通过å‡çº§æå‡çµé­‚注入器的能力,请将其放置在两个玛瑙凿å—上。", - "type":"patchouli:multiblock", - "enable_visualize":true - }, - { - "text":"$(li)1 çµé­‚注入器 $(li)2磨制å®çŸ³å—$(li)2物å“çƒ$(li)2錾制磨制å—$(li)2玛瑙凿å—$(li)6磨制柱$(li)17ç£¨åˆ¶æ¿æ¡$(li)116磨制å—$(li)2å®çŸ³ç¼–é’Ÿ", - "type":"patchouli:text", - "title":"æ–¹å—æ£€æŸ¥è¡¨" - } - ], - "advancement":"spectrum:progression/unlock_spirit_instiller", - "extra_recipe_mappings":{ - "spectrum:spirit_instiller":0 - }, - "name":"çµé­‚注入器", - "icon":"spectrum:spirit_instiller", - "category":"spectrum:creating_life_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/banner_patterns.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/banner_patterns.json deleted file mode 100644 index eb32e72656..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/banner_patterns.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/banners.png" - ], - "text":"您é‡åˆ°çš„资æºå’Œå·¥å…·å¯ä»¥ä½œä¸ºæ¨¡æ¿ç›´æŽ¥åœ¨ç»‡å¸ƒæœºä¸­ä½¿ç”¨ã€‚", - "type":"patchouli:image", - "title":"横幅模æ¿" - }, - { - "recipe2":"spectrum:crafting_table/banner_patterns/amethyst_shard_banner_pattern", - "recipe":"spectrum:crafting_table/banner_patterns/amethyst_cluster_banner_pattern", - "type":"patchouli:crafting", - "title":"原版模æ¿" - } - ], - "advancement":"spectrum:spectrum", - "extra_recipe_mappings":{ - "spectrum:amethyst_shard_banner_pattern":0, - "spectrum:logo_banner_pattern":0, - "spectrum:amethyst_cluster_banner_pattern":0 - }, - "name":"横幅模æ¿", - "icon":"spectrum:amethyst_shard_banner_pattern", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/block_variants.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/block_variants.json deleted file mode 100644 index fedb6a9d70..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/block_variants.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "pages":[ - { - "anchor":"polished_basalt", - "recipe":"spectrum:smelting/smooth_basalt_to_polished_basalt", - "text":"è¿˜è®°å¾—é‚£äº›ä¿æŠ¤ä½ çš„å®çŸ³å…å—外界影å“的方å—å—?加热更能çªå‡ºå…¶æ·±è‰²å’Œç™½è‰²çº¹ç†ã€‚$(br)冶炼åŽï¼ŒçŽ„æ­¦å²©å‡ ä¹Žå˜é»‘。$(br)ä¹Ÿè®¸ä»–ä»¬ä¹Ÿå¸æ”¶äº†æ™¶æ´žæœ¬èº«çš„一些神奇特性?$(br)è°çŸ¥é“呢。", - "type":"patchouli:smelting", - "title":"磨制玄武岩" - }, - { - "anchor":"polished_calcite", - "recipe":"spectrum:smelting/calcite_to_polished_calcite", - "text":"方解石的亮白色å¯èƒ½æ˜¯ä½ å¶ç„¶å‘现的最亮的天然颜色,看起æ¥éžå¸¸å¹²å‡€ï¼Œæ•£å‘ç€å°Šä¸¥ã€‚白色方解石与玄武岩的深色形æˆé²œæ˜Žå¯¹æ¯”。$(br2)磨制玄武岩和方解石都å¯ä»¥åˆ¶ä½œæˆå„ç§è£…饰å—。", - "type":"patchouli:smelting", - "title":"磨制方解石" - }, - { - "recipe2":"spectrum:crafting_table/stone_deco/polished_calcite_stairs", - "recipe":"spectrum:crafting_table/stone_deco/polished_basalt_slab", - "type":"patchouli:crafting", - "title":"å°é˜¶å’Œæ¥¼æ¢¯" - }, - { - "recipe2":"spectrum:crafting_table/stone_deco/polished_calcite_crest", - "recipe":"spectrum:crafting_table/stone_deco/polished_basalt_pillar", - "type":"patchouli:crafting", - "title":"柱å­&冠饰" - }, - { - "recipe2":"spectrum:crafting_table/stone_deco/notched_polished_calcite", - "recipe":"spectrum:crafting_table/stone_deco/chiseled_polished_basalt", - "type":"patchouli:crafting", - "title":"凿形和缺å£" - }, - { - "recipe2":"spectrum:crafting_table/stone_deco/polished_basalt_wall", - "type":"patchouli:crafting", - "title":"墙å£" - }, - { - "recipe2":"spectrum:crafting_table/stone_deco/calcite_slab", - "recipe":"spectrum:crafting_table/stone_deco/basalt_brick_stairs", - "type":"patchouli:crafting", - "title":"ç –å—和原始å˜ä½“" - }, - { - "recipe2":"spectrum:smelting/stone_deco_unsmelting/chiseled_polished_calcite_to_polished_calcite", - "recipe":"spectrum:smelting/stone_deco_unsmelting/basalt_brick_stairs_to_polished_basalt", - "text":"通过加热,所有的木å—å¯ä»¥å†æ¬¡è½¬æ¢å›žå®ƒä»¬çš„磨制版本。", - "type":"patchouli:smelting", - "title":"把它们熔炼回æ¥" - } - ], - "advancement":"spectrum:spectrum", - "extra_recipe_mappings":{ - "spectrum:polished_basalt_crest":0, - "spectrum:chiseled_polished_calcite":0, - "spectrum:basalt_brick_stairs":0, - "spectrum:polished_calcite_stairs":0, - "spectrum:polished_calcite_wall":0, - "spectrum:polished_basalt":0, - "spectrum:polished_basalt_slab":0, - "spectrum:polished_basalt_pillar":0, - "spectrum:polished_calcite_crest":0, - "spectrum:calcite_bricks":0, - "spectrum:calcite_brick_slab":0, - "spectrum:notched_polished_calcite":0, - "spectrum:polished_basalt_stairs":0, - "spectrum:calcite_slab":0, - "spectrum:smooth_basalt_wall":0, - "spectrum:notched_polished_basalt":0, - "spectrum:basalt_brick_slab":0, - "spectrum:basalt_brick_wall":0, - "spectrum:calcite_brick_stairs":0, - "spectrum:calcite_wall":0, - "spectrum:smooth_basalt_slab":0, - "spectrum:polished_calcite":0, - "spectrum:chiseled_polished_basalt":0, - "spectrum:basalt_bricks":0, - "spectrum:polished_calcite_slab":0, - "spectrum:polished_calcite_pillar":0, - "spectrum:calcite_stairs":0, - "spectrum:calcite_brick_wall":0, - "spectrum:polished_basalt_wall":0, - "spectrum:smooth_basalt_stairs":0 - }, - "name":"æ–¹å—å˜ä½“", - "icon":"spectrum:chiseled_polished_basalt", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/colored_lamps.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/colored_lamps.json deleted file mode 100644 index ac23a710d9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/colored_lamps.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你终于能够正确地混åˆé¢œè‰²äº†ã€‚è¿˜æœ‰ä»€ä¹ˆæ¯”ç«‹å³æµ‹è¯•新颜料的性能更自然的呢?到现在为止,你已ç»å—够了普通的红石ç¯ã€‚是时候添加一点色彩了ï¼$()", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier1/colored_lamps/cyan_lamp", - "text":"当激活时,它们被充满活力的光包围。除此之外,彩色ç¯çš„功能与ä¹å‘³çš„红石ç¯ç±»ä¼¼ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/colored_lamps/unlock_any_colored_lamp", - "extra_recipe_mappings":{ - "spectrum:white_lamp":0, - "spectrum:light_blue_lamp":0, - "spectrum:red_lamp":0, - "spectrum:orange_lamp":0, - "spectrum:purple_lamp":0, - "spectrum:yellow_lamp":0, - "spectrum:blue_lamp":0, - "spectrum:black_lamp":0, - "spectrum:lime_lamp":0, - "spectrum:magenta_lamp":0, - "spectrum:light_gray_lamp":0, - "spectrum:pink_lamp":0, - "spectrum:gray_lamp":0, - "spectrum:green_lamp":0, - "spectrum:brown_lamp":0, - "spectrum:cyan_lamp":0 - }, - "name":"彩色ç¯", - "icon":"spectrum:cyan_lamp", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/colored_spore_blossoms.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/colored_spore_blossoms.json deleted file mode 100644 index 516a84166d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/colored_spore_blossoms.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "pages":[ - { - "text":"当你漫步在一个绿树æˆè«çš„山洞时,你注æ„到许多花瓣在空中飘扬。$(br)你被这一景象迷ä½äº†ï¼ŒäºŽæ˜¯å¼€å§‹è®¾è®¡è‡ªå·±çš„多彩å˜ä½“。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/colored_spore_blossoms/orange_spore_blossom", - "text":"通过使用ä¸åŒçš„颜料,你å¯ä»¥ç»™èŠ±ç“£æ¶‚ä¸Šå¤šç§é¢œè‰²ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_colored_spore_blossoms", - "extra_recipe_mappings":{ - "spectrum:magenta_spore_blossom":0, - "spectrum:pink_spore_blossom":0, - "spectrum:lime_spore_blossom":0, - "spectrum:blue_spore_blossom":0, - "spectrum:yellow_spore_blossom":0, - "spectrum:light_gray_spore_blossom":0, - "spectrum:black_spore_blossom":0, - "spectrum:brown_spore_blossom":0, - "spectrum:green_spore_blossom":0, - "spectrum:gray_spore_blossom":0, - "spectrum:white_spore_blossom":0, - "spectrum:orange_spore_blossom":0, - "spectrum:light_blue_spore_blossom":0, - "spectrum:red_spore_blossom":0, - "spectrum:purple_spore_blossom":0, - "spectrum:cyan_spore_blossom":0 - }, - "name":"彩色孢å­èб", - "icon":"spectrum:orange_spore_blossom", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/decostones.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/decostones.json deleted file mode 100644 index dd8987cdd9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/decostones.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "pages":[ - { - "text":"这两å—高的装饰石代表ç€ä½ çš„çè´µå‘现。$(br2)它们给人留下了深刻的å°è±¡ã€‚", - "type":"patchouli:text", - "title":"摆件" - }, - { - "recipe":"spectrum:pedestal/tier1/decostones/topaz_decostone", - "text":"摆件有多ç§å®çŸ³é¢œè‰²ä¾›æ‚¨é€‰æ‹©ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/decostones/unlock_any_decostone", - "extra_recipe_mappings":{ - "spectrum:topaz_decostone":0, - "spectrum:citrine_decostone":0, - "spectrum:onyx_decostone":0, - "spectrum:moonstone_decostone":0, - "spectrum:amethyst_decostone":0 - }, - "name":"摆件", - "icon":"spectrum:amethyst_decostone", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/ethereal_platform.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/ethereal_platform.json deleted file mode 100644 index 341160e86b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/ethereal_platform.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ethereal_platform", - "text":"$(italic)在你寻找一个对你æ¥è¯´å¯ä»¥é€šè¡Œä½†ä¸ä¼šç ´åå»ºç­‘ç‰©å¤–è§‚çš„æ–¹å—æ—¶ï¼Œæµæ˜Ÿæ˜¯ä¸€ä¸ªå¾ˆå¤§çš„帮助。$(br2)éšç€çŽ›ç‘™çš„å¢žå¼ºï¼Œä½ èƒ½å¤Ÿå°†ç²’å­å¢žå¼ºåˆ°ä¸€å®šç¨‹åº¦ï¼Œä½¿å…¶å˜ä¸ºå›ºä½“。", - "type":"patchouli:spotlight", - "title":"以太平å°" - }, - { - "recipe":"spectrum:pedestal/tier3/ethereal_platform", - "text":"以太平å°çš„å¦ä¸€ä¸ªå®žç”¨ç‰¹å¾æ˜¯ï¼Œè¯¥å¹³å°ä»…对生物作出å应。对象(如物å“ï¼‰åªæ˜¯ç®€å•地通过它。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ethereal_platform", - "extra_recipe_mappings":{ - "spectrum:ethereal_platform":0 - }, - "name":"以太平å°", - "icon":"spectrum:ethereal_platform", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_chimes.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_chimes.json deleted file mode 100644 index e5ba479b72..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_chimes.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)在处ç†è¿™äº›å®çŸ³è¶³å¤Ÿé•¿çš„æ—¶é—´åŽï¼Œä½ çŽ°åœ¨å‘现自己能够以最好的方å¼å¡‘造这些脆弱的资æºã€‚$(br2)钟声在风中缓缓摇曳,让你想起了旅程的开始——第一次è¸ä¸Šå¤§åœ°ã€‚", - "type":"patchouli:text", - "title":"å®çŸ³ç¼–é’Ÿ" - }, - { - "recipe":"spectrum:pedestal/tier3/gemstone_chimes/topaz_chime", - "text":"æ¯ä¸ªé’Ÿå£°éƒ½å‘出相应å®çŸ³çš„舒缓声音。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/gemstone_chimes/unlock_any_chime", - "extra_recipe_mappings":{ - "spectrum:topaz_chime":0, - "spectrum:citrine_chime":0, - "spectrum:amethyst_chime":0, - "spectrum:moonstone_chime":0, - "spectrum:onyx_chime":0 - }, - "name":"å®çŸ³ç¼–é’Ÿ", - "icon":"spectrum:amethyst_chime", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_glass.json deleted file mode 100644 index 0f36ea9c3e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_glass.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:topaz_glass", - "text":"$(italic)ä½ çš„å®çŸ³æœ¬è´¨ä¸Šå·²ç»æœ‰ç‚¹é€æ˜Žäº†ã€‚è¿˜æœ‰ä»€ä¹ˆæ¯”ç”¨è¿™äº›ææ–™åˆ¶æˆä¸€ç§çŽ»ç’ƒæ›´è‡ªç„¶çš„å‘¢ï¼Ÿ$()", - "type":"patchouli:spotlight", - "title":"å®çŸ³çŽ»ç’ƒ" - }, - { - "recipe":"spectrum:pedestal/tier1/glass/topaz_glass", - "text":"å®çŸ³çŽ»ç’ƒæœ‰å„ç§é¢œè‰²çš„å®çŸ³ä¾›æ‚¨é€‰æ‹©ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:place_pedestal", - "extra_recipe_mappings":{ - "spectrum:onyx_glass":0, - "spectrum:citrine_glass":0, - "spectrum:moonstone_glass":0, - "spectrum:amethyst_glass":0, - "spectrum:topaz_glass":0 - }, - "name":"å®çŸ³çŽ»ç’ƒ", - "icon":"spectrum:topaz_glass", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_lamps.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_lamps.json deleted file mode 100644 index a91eb62ce9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_lamps.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:citrine_basalt_lamp", - "text":"$(italic)当你è¸ä¸Šç¬¬ä¸€ä¸ªæ™¶æ´žæ—¶ï¼Œä½ ä¼šçœ‹åˆ°èˆ’适宜人的光芒。凭借您的知识和闪光石的帮助,å¯ä»¥å¾ˆå®¹æ˜“地放大这ç§å…‰çº¿ï¼Œä»¥åˆ›å»ºå¥‡ç‰¹çš„ç¯å…·ã€‚$()", - "type":"patchouli:spotlight", - "title":"å®çŸ³ç¯" - }, - { - "recipe":"spectrum:pedestal/tier1/gem_lamps/citrine_basalt_lamp", - "text":"å®çŸ³ç¯æœ‰å„ç§é¢œè‰²çš„å®çŸ³ä¾›æ‚¨é€‰æ‹©ã€‚$(l:decoration/block_variants#polished_basalt)錾制方解石$()å’Œ$(l:decoration/block_variants#polished_calcite)錾制玄武岩$()å‡å¯ç”¨ä½œåŸºåº•。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:collect_sparklestone", - "extra_recipe_mappings":{ - "spectrum:amethyst_calcite_lamp":0, - "spectrum:citrine_calcite_lamp":0, - "spectrum:moonstone_calcite_lamp":0, - "spectrum:amethyst_basalt_lamp":0, - "spectrum:citrine_basalt_lamp":0, - "spectrum:topaz_basalt_lamp":0, - "spectrum:moonstone_basalt_lamp":0, - "spectrum:topaz_calcite_lamp":0, - "spectrum:onyx_basalt_lamp":0, - "spectrum:onyx_calcite_lamp":0 - }, - "name":"å®çŸ³ç¯", - "icon":"spectrum:citrine_basalt_lamp", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_runes.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_runes.json deleted file mode 100644 index 8b0778b7e1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_runes.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)方解石和玄武岩å¯ä»¥æŽ§åˆ¶å®çŸ³çš„能é‡ï¼Œåªè¦å®ƒä»¬å®Œå…¨åŒ…围晶洞,这是肯定的。然而,有时几个世纪以æ¥ç§¯ç´¯çš„能é‡å¦‚此强大,以至于在晶洞中撕裂了一个洞。$(br2)你把整个事情都åšäº†ç¼©å½±ã€‚当然,你的新建筑拥有很多神奇的能é‡ã€‚$()", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/runes/topaz_chiseled_basalt_from_shards", - "text":"有å„ç§å®çŸ³é¢œè‰²å¯ä¾›é€‰æ‹©ã€‚框架å¯ä»¥ç”±$(l:decoration/block_variants#polished_basalt)磨制玄武岩$()或$(l:decoration/block_variants#polished_calcite)磨制方解石$()制æˆã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:pedestal/tier2/runes/amethyst_chiseled_basalt_from_cluster", - "text":"如果你æˆåŠŸåœ°æŽŒæ¡äº†å®Œæ•´çš„å®çŸ³ç°‡ï¼Œé‚£ä¹ˆç¬¦æ–‡çš„创建效率会更高。", - "type":"spectrum:pedestal_crafting", - "title":"æ›¿ä»£é…æ–¹" - } - ], - "advancement":"spectrum:create_onyx_shard", - "extra_recipe_mappings":{ - "spectrum:topaz_chiseled_basalt":0, - "spectrum:moonstone_chiseled_basalt":0, - "spectrum:amethyst_chiseled_basalt":0, - "spectrum:amethyst_chiseled_calcite":0, - "spectrum:topaz_chiseled_calcite":0, - "spectrum:citrine_chiseled_basalt":0, - "spectrum:onyx_chiseled_basalt":0, - "spectrum:citrine_chiseled_calcite":0, - "spectrum:onyx_chiseled_calcite":0, - "spectrum:moonstone_chiseled_calcite":0 - }, - "name":"å®çŸ³ç¬¦æ–‡", - "icon":"spectrum:citrine_chiseled_calcite", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_storage_blocks.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_storage_blocks.json deleted file mode 100644 index 9f56f941a0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/gemstone_storage_blocks.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)这些å®çŸ³å¤–表异常美丽。$(br)原始å®çŸ³çš„外观,正如你从晶洞中了解到的,对于你的å‰å«å»ºç­‘æ¥è¯´ï¼Œä¼¼ä¹Žæœ‰ç‚¹å¤ªè‡ªç„¶äº†ã€‚然而,如果有足够的资æºï¼Œè¿™åº”è¯¥ä¸æ˜¯é—®é¢˜ã€‚$(br2)如果你在æŸä¸ªæ—¶å€™ç”¨å®Œäº†å®çŸ³ï¼Œè£…é¥°å¾ˆå®¹æ˜“å†æ¬¡è¢«ç ´å。$()", - "type":"patchouli:text", - "title":"å®çŸ³å—" - }, - { - "recipe2":"spectrum:crafting_table/storage_blocks/topaz_shards_from_topaz_storage_block", - "advancement":"spectrum:hidden/collect_shards/collect_topaz_shard", - "recipe":"spectrum:crafting_table/storage_blocks/topaz_storage_block", - "type":"patchouli:crafting", - "title":"磨制黄玉" - }, - { - "recipe2":"spectrum:crafting_table/storage_blocks/amethyst_shards_from_amethyst_storage_block", - "advancement":"spectrum:hidden/collect_shards/collect_amethyst_shard", - "recipe":"spectrum:crafting_table/storage_blocks/amethyst_storage_block", - "type":"patchouli:crafting", - "title":"磨制紫水晶" - }, - { - "recipe2":"spectrum:crafting_table/storage_blocks/citrine_shards_from_citrine_storage_block", - "advancement":"spectrum:hidden/collect_shards/collect_citrine_shard", - "recipe":"spectrum:crafting_table/storage_blocks/citrine_storage_block", - "type":"patchouli:crafting", - "title":"磨制黄水晶" - }, - { - "recipe2":"spectrum:crafting_table/storage_blocks/onyx_shards_from_onyx_storage_block", - "advancement":"spectrum:create_onyx_shard", - "recipe":"spectrum:crafting_table/storage_blocks/onyx_storage_block", - "type":"patchouli:crafting", - "title":"磨制玛瑙" - }, - { - "recipe2":"spectrum:crafting_table/storage_blocks/moonstone_shards_from_moonstone_storage_block", - "advancement":"spectrum:midgame/collect_moonstone_shard", - "recipe":"spectrum:crafting_table/storage_blocks/moonstone_storage_block", - "type":"patchouli:crafting", - "title":"磨制月光石" - } - ], - "advancement":"spectrum:spectrum", - "extra_recipe_mappings":{ - "spectrum:moonstone_storage_block":0, - "spectrum:amethyst_storage_block":0, - "spectrum:citrine_storage_block":0, - "spectrum:onyx_storage_block":0, - "spectrum:topaz_storage_block":0 - }, - "name":"å®çŸ³å—", - "icon":"spectrum:citrine_storage_block", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/glowblocks.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/glowblocks.json deleted file mode 100644 index 2cc219823f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/glowblocks.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:orange_glowblock", - "text":"$(italic)你拥有尽å¯èƒ½çº¯å‡€çš„颜色。那么为什么ä¸åˆ›å»ºé¢œè‰²å°½å¯èƒ½çº¯å‡€çš„æ–¹å—å‘¢ï¼$(br2)你认为如果你应该称它们为åå—,但既然它们确实是å—,那就太傻了,对å—?$()", - "type":"patchouli:spotlight", - "title":"å‘å…‰å—" - }, - { - "recipe":"spectrum:pedestal/tier3/glowblocks/orange_glowblock", - "text":"å‘光嗿œ‰å„ç§é¢œè‰²ï¼Œæ— è®ºè¡¨é¢æœ‰å¤šå°‘å…‰ï¼Œå®ƒä»¬çœ‹èµ·æ¥æ€»æ˜¯ä¸€æ ·çš„。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:midgame/build_advanced_pedestal_structure", - "extra_recipe_mappings":{ - "spectrum:black_glowblock":0, - "spectrum:purple_glowblock":0, - "spectrum:white_glowblock":0, - "spectrum:yellow_glowblock":0, - "spectrum:magenta_glowblock":0, - "spectrum:pink_glowblock":0, - "spectrum:brown_glowblock":0, - "spectrum:cyan_glowblock":0, - "spectrum:light_gray_glowblock":0, - "spectrum:blue_glowblock":0, - "spectrum:red_glowblock":0, - "spectrum:gray_glowblock":0, - "spectrum:green_glowblock":0, - "spectrum:lime_glowblock":0, - "spectrum:light_blue_glowblock":0, - "spectrum:orange_glowblock":0 - }, - "name":"å‘å…‰å—", - "icon":"spectrum:orange_glowblock", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/item_bowl.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/item_bowl.json deleted file mode 100644 index ee1c4ce808..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/item_bowl.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:item_bowl_basalt", - "text":"$(italic)有一件物å“ä½ åœ¨æŒ–çŸ¿æ—¶æ€»æ˜¯å¿˜è®°ï¼Œæ¯”å¦‚ä¸€æ”¯ç²‰ç¬”ï¼Œç”¨æ¥æ ‡è®°è¿”回地é¢çš„路。放在这个装饰性的物å“碗里应该是一个很好的æé†’。$()$(br2)它包括磨制玄武岩和磨制方解石å˜ä½“。", - "type":"patchouli:spotlight", - "title":"物å“基座" - }, - { - "recipe":"spectrum:pedestal/tier3/item_bowl_calcite", - "text":"物å“基座呈现一个漂浮在其上方的å•个物å“堆栈。$(br)点击一个物å“åˆ°åŸºåº§é‡Œï¼Œæˆ–è€…æŠŠå®ƒæ‰”åˆ°ä¸Šé¢æŠŠå®ƒæ”¾è¿›åŽ»ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement": "spectrum:progression/unlock_item_bowl", - "extra_recipe_mappings":{ - "spectrum:item_bowl_calcite":0, - "spectrum:item_bowl_basalt":0 - }, - "name":"物å“基座", - "icon":"spectrum:item_bowl_basalt", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/jade_vine_petal_blocks.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/jade_vine_petal_blocks.json deleted file mode 100644 index 89ccd05307..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/jade_vine_petal_blocks.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "recipe":"spectrum:crafting_table/jade_vines/jade_vine_petal_block", - "text":"从$(l:resources/jade_vines)å¤çŽ‰è—¤æ ‘$(/l)上采集的花瓣中,你创造了一系列å°çš„装饰å—。", - "type":"patchouli:crafting", - "title":"玉瓣å—" - }, - { - "recipe":"spectrum:crafting_table/jade_vines/jade_vine_petal_carpet", - "text":"", - "type":"patchouli:crafting", - "title":"地毯" - } - ], - "advancement":"spectrum:hidden/collect_jade_vine_petals", - "extra_recipe_mappings":{ - "spectrum:jade_vine_petal_carpet":0, - "spectrum:jade_vine_petal_block":0 - }, - "name":"玉瓣å—", - "icon":"spectrum:jade_vine_petal_block", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/particle_spawner.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/particle_spawner.json deleted file mode 100644 index 38217e4901..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/particle_spawner.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ æ¡åˆ°çš„æµæ˜Ÿåœ¨å è½åœ°é¢çš„过程中留下了大é‡çš„ç²’å­ã€‚ä½ åˆ›å»ºäº†ç²’å­æ€ªç‰©ç¬¼æ¥å¤åˆ¶è¿™ä¸ªåœºæ™¯â€”—还有很多其他的——你自己。$()$(br2)烟囱?ç«ç®­å‘å°„ç²’å­ï¼ŸåŸºåº§ç»“构的大气粒å­é›¨ï¼Ÿç²’å­æ€ªç‰©ç¬¼å¸®ä½ æ‰¾åˆ°äº†ç›®æ ‡ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/particle_spawner", - "text":"åœ¨â€œç²’å­æ€ªç‰©ç¬¼â€GUI中,您å¯ä»¥æ ¹æ®è‡ªå·±çš„喜好é…置生æˆçš„ç²’å­ã€‚应用红石开始精彩的展示。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_particle_spawner", - "extra_recipe_mappings":{ - "spectrum:particle_spawner":0, - "spectrum:creative_particle_spawner":0 - }, - "name":"ç²’å­æ€ªç‰©ç¬¼", - "icon":"spectrum:particle_spawner", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/phantom_frame.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/phantom_frame.json deleted file mode 100644 index 5591a60129..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/phantom_frame.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你想展示你最ç贵的物å“。到目å‰ä¸ºæ­¢ï¼Œæ‚¨ä¸€ç›´ä½¿ç”¨ç‰©å“å±•ç¤ºæ¡†ã€‚ä½†æ˜¯å¦‚æžœä½ æ²¡æœ‰çœ‹åˆ°ç”»æ¡†ï¼Œä½ çš„ä¸€äº›å±•è§ˆä¼šçœ‹èµ·æ¥æ›´å¥½ã€‚$(br)å°èœä¸€ç¢Ÿï¼Œä½ åªéœ€è¦åˆ©ç”¨ä½ å®çŸ³çš„å…‰æ“纵特性。", - "type":"patchouli:text", - "title":"幻翼展示框" - }, - { - "recipe":"spectrum:pedestal/tier1/invisible_item_frame", - "text":"å½“æ‚¨åœ¨å…¶ä¸­æ˜¾ç¤ºä¸€ä¸ªç‰©å“æ—¶ï¼Œå¹»ç¿¼å±•示框就会ä¸å¯è§ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"基座制作" - }, - { - "recipe":"spectrum:pedestal/tier1/invisible_glow_item_frame", - "text":"这一款还有å¦ä¸€ä¸ªå¾ˆå¥½çš„触感:里é¢çš„物å“在明亮的光线下闪闪å‘å…‰ï¼Œä½¿å®ƒçœ‹èµ·æ¥æ›´åŠ å£®è§‚ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"辉光幻翼展示框" - } - ], - "advancement":"spectrum:collect_sparklestone", - "extra_recipe_mappings":{ - "spectrum:invisible_item_frame":0, - "spectrum:invisible_glow_item_frame":0 - }, - "name":"幻翼展示框", - "icon":"spectrum:invisible_item_frame", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/radiant_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/radiant_glass.json deleted file mode 100644 index 8bbcad7232..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/radiant_glass.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:glowing_glass", - "text":"$(italic)你需è¦ä¸€ç§æœ‰æ•ˆç…§æ˜Žä½ çš„庇护所和其他建筑的方法。$(br2)有什么比直接在玻璃中使用闪光石的å‘光特性更好?$()", - "type":"patchouli:spotlight", - "title":"è¾å°„玻璃" - }, - { - "recipe":"spectrum:pedestal/tier1/glowing_glass", - "text":"è¾å°„玻璃几乎与有色玻璃相å。制造过程中使用的闪光石确ä¿çŽ»ç’ƒä»Žå†…éƒ¨å‘光。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:collect_sparklestone", - "extra_recipe_mappings":{ - "spectrum:glowing_glass":0 - }, - "name":"è¾å°„玻璃", - "icon":"spectrum:glowing_glass", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/sparklestone_lights.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/sparklestone_lights.json deleted file mode 100644 index 32ba709dea..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/decoration/sparklestone_lights.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)åœ¨è¿™ä¸ªæ–°ä¸–ç•Œçš„ç¬¬ä¸€ä¸ªå¤œæ™šï¼Œä½ ç”¨ç«æŠŠç‚¹ç‡ƒäº†ä¸´æ—¶æ­å»ºçš„å°å±‹ã€‚$(br)尽管如此,这也是一件事:原始。$(br2)为了摆脱黑暗,ç«ç‚¬ç…§äº®çš„过去,你设计了基于闪光石的ç¯å…·ã€‚$()", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier1/sparklestone_lights/basalt_sparklestone_light", - "text":"您å¯ä»¥ä½¿ç”¨ç£¨åˆ¶çŽ„æ­¦å²©ã€ç£¨åˆ¶æ–¹è§£çŸ³ã€å…‰æ»‘石头ã€ç£¨åˆ¶æ·±æ¿å²©ã€ç£¨åˆ¶é—ªé•¿å²©ã€ç£¨åˆ¶å®‰å±±å²©æˆ–磨制花岗岩作为基底。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_sparklestone_lights", - "extra_recipe_mappings":{ - "spectrum:andesite_sparklestone_light":0, - "spectrum:diorite_sparklestone_light":0, - "spectrum:deepslate_sparklestone_light":0, - "spectrum:granite_sparklestone_light":0, - "spectrum:calcite_sparklestone_light":0, - "spectrum:stone_sparklestone_light":0, - "spectrum:basalt_sparklestone_light":0 - }, - "name":"闪光石", - "icon":"spectrum:basalt_sparklestone_light", - "category":"spectrum:decoration_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/dimension.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/dimension.json deleted file mode 100644 index 745986835f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/dimension/dimension.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "item":"minecraft:bedrock", - "text":"$(italic)待办", - "type":"patchouli:spotlight" - }, - { - "text":"太阳永远ä¸ä¼šç…§è€€çš„地方", - "type":"patchouli:text", - "title":"" - } - ], - "advancement":"spectrum:midgame/__enter_dimension", - "name":"更深层次的", - "icon":"minecraft:bedrock", - "sortnum":1, - "category":"spectrum:dimension_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/clovers_favor.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/clovers_favor.json deleted file mode 100644 index 3d4f70e944..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/clovers_favor.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)å¶å°”你会幸è¿åœ°è®©æ•Œäººç•™ä¸‹ä¸€ä»¶ç¨€æœ‰çš„物å“。$(br)$(l:resources/clover)三å¶è‰$(/l)å’Œ$(l:general/pigment#light_blue)æµ…è“色颜料$(/l)ä¸Žè¿æ°”的关系å¯ä»¥æ˜¾è‘—增加这些机会。", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_sword{Enchantments: [{id: \"spectrum:clovers_favor\", lvl: 3s}]}", - "text":"获得稀有战利å“的几率更高,比如僵尸身上的é“锭。$(br)甚至å¯èƒ½å¢žåŠ ä½ èŽ·å¾—æœ€æœ‰ä»·å€¼çš„è¯æ°´çš„æœºä¼šï¼Ÿ$(br2)最大等级:3$(br)适用于近战武器。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_clovers_favor", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让一本普通的书充满三å¶è‰çš„é’ç。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/clovers_favor_level_2", - "text":"一开始,将三å¶è‰çš„喜好从1级æå‡åˆ°2级相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/clovers_favor", - "name":"三å¶è‰çš„é’ç", - "icon":"minecraft:iron_sword", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/conflicting_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/conflicting_enchantments.json deleted file mode 100644 index 6f78ceb126..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/conflicting_enchantments.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "pages":[ - { - "item":"minecraft:diamond_chestplate{Enchantments: [{id: \"minecraft:protection\", lvl: 3s}, {id: \"minecraft:blast_protection\", lvl: 3s}, {id: \"minecraft:projectile_protection\", lvl: 3s}, {id: \"minecraft:fire_protection\", lvl: 3s}]}", - "text":"$(italic)你过去用多个相互冲çªçš„附魔æ¥é™„魔物å“的问题已ç»è¿‡åŽ»äº†ã€‚$(br)作为一个魔术大师,没有什么å¯ä»¥æ»¡è¶³ä½ çš„æ¬²æœ›ã€‚", - "type":"patchouli:spotlight", - "title":"精通附魔" - }, - { - "text":"你现在å¯ä»¥ä½¿ç”¨é™„魔器对你的装备应用通常相互排斥的附魔。$(br2)请注æ„:$(br)$(italic)此类行动需è¦å¤§é‡ç»éªŒã€‚$()", - "type":"patchouli:text" - } - ], - "advancement":"spectrum:milestones/unlock_conflicted_enchanting_with_enchanter", - "name":"精通附魔", - "icon":"minecraft:enchanted_book", - "sortnum":5, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/creating_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/creating_enchanted_books.json deleted file mode 100644 index 7b48417e90..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/creating_enchanted_books.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"通过使用$(l:general/pigment)颜料$(/l)ã€ç²¾é€‰é…料和一些ç»éªŒï¼Œ$(l:enchanting/enchanter)注魔基座$(/l)å¯ä»¥ä¸ºæ™®é€šä¹¦ç±æ·»åŠ é­”æ³•ã€‚$(br2)虽然在一个普通的附魔表中,这个过程比附魔消耗更多的ç»éªŒï¼Œä½†æ‚¨å¯ä»¥å¯¹è¦åˆ›å»ºçš„附魔进行粒度控制。", - "type":"patchouli:text" - }, - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/creating_enchanted_books.png" - ], - "text":"$(italic)也许你甚至å¯ä»¥åˆ©ç”¨è¿™ä¸ªè¿‡ç¨‹æ¥ä¸ºä½ çš„魔法工具施魔法。", - "type":"patchouli:image" - } - ], - "advancement":"spectrum:midgame/enter_liquid_crystal", - "name":"创建书ç±", - "icon":"minecraft:enchanted_book", - "sortnum":2, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/curse_of_the_void.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/curse_of_the_void.json deleted file mode 100644 index ad111d5e71..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/curse_of_the_void.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你带ç€è¿™ç§é­”åŠ›çš„å·¥å…·ä¼¼ä¹Žèƒ½å°†å®ƒä»¬æŒ–æŽ˜çš„æ‰€æœ‰ä¸œè¥¿æº¶è§£åœ¨ç¨€è–„çš„ç©ºæ°”ä¸­ã€‚åˆ†è§£æˆæœ€ç»†çš„æ²™å­ï¼Œè¢«é£Žå¹èµ°ã€‚然而,$(br2)就这一次而言,当你想把åŠåº§åŸŽå¸‚ä»Žç²—ç³™çš„çŸ³å¤´ä¸­æ•²å‡ºæ¥æ—¶ï¼Œå®ƒç”šè‡³å¯èƒ½æ´¾ä¸Šç”¨åœºã€‚有些事情å¯èƒ½æ˜¯è¯…å’’å’Œç¥ç¦åŒæ—¶å‘生。", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "text":"æ‘§æ¯æ‰€æœ‰æ–­å—的水滴。$(br2)最大级别:1$(br)适用于采矿工具。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "advancement":"spectrum:progression/enchantments/voiding", - "recipe":"spectrum:enchanter/spectrum_books/book_voiding", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,为一本普通的书注入虚空诅咒。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/tools/unlock_voiding_pickaxe", - "name":"虚空诅咒", - "icon":"minecraft:wooden_pickaxe", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/disarming.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/disarming.json deleted file mode 100644 index 4b2c990c6e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/disarming.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ æ¯å¤©é‡åˆ°çš„僵尸都戴ç€å¾ˆå¤šè´µé‡çš„装备。但当他们死åŽï¼Œå®ƒå°±æ¶ˆå¤±äº†ï¼Œå†ä¹Ÿçœ‹ä¸è§äº†ã€‚$(br2)如果你能在他们还活ç€çš„æ—¶å€™ä»Žä»–们那里抢走它,那没问题。明白了ï¼", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_sword{Enchantments: [{id: \"spectrum:disarming\", lvl: 2s}]}", - "text":"生物(和其他玩家ï¼ï¼‰åœ¨è¢«å‡»ä¸­æ—¶æ”¾ä¸‹ä»–们的装备。$(br2)最大等级:2$(br)适用于近战武器。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_disarming", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,为一本普通的书注入解除武装的效果。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/disarming_level_2", - "text":"首先,将解除武装从1级å‡çº§åˆ°2级相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/disarming", - "name":"解除防护", - "icon":"minecraft:iron_sword", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/enchanter.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/enchanter.json deleted file mode 100644 index 1e101f6046..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/enchanter.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)在你寻找完美工具的过程中,你会å‘现附魔Table通常ä¸ç¬¦åˆä½ çš„è¦æ±‚。使用这个ç»è¿‡é«˜åº¦ä¿®æ”¹çš„附魔桌应该å¯ä»¥è§£å†³æ‚¨åŽŸæ¥çš„æ¡Œçš„大部分问题。$()$(br2)它å…许你:$(li)$(l:enchanting/creating_enchanted_books)创建新的附魔书$(/l)$(li)$(l:enchanting/upgrading_enchanted_books)å‡çº§ç‰©å“$(/l)$(li)$(l:enchanting/enchanting_items)附魔物å“è€Œä¸æ¶ˆè€—附魔书$(/l)", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/enchanter", - "text":"注魔基座需è¦ä¸€ä¸ªç„¦ç‚¹ç»“æž„æ‰èƒ½å·¥ä½œã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "multiblock_id":"spectrum:enchanter_structure", - "name":"附魔结构", - "text":"å®çŸ³å—周围的水池必须填满$(l:magical_blocks/liquid_crystal)液晶$()。(未显示)", - "type":"patchouli:multiblock", - "enable_visualize":true - }, - { - "text":"$(li)1 注魔基座$(li)8 物å“åŸºå° $(li)4+液晶盒$(li)4个磨制å®çŸ³å—$(li)8个å®çŸ³ç¯$(li)12个磨制柱$(li)24ä¸ªç£¨åˆ¶æ¿æ¡$(li)159个磨制å—$(br2)$(italic)通过将其放置在å®çŸ³å—ä¸Šæ¥æå‡æ³¨é­”基座。$()", - "type":"patchouli:text", - "title":"æ–¹å—æ£€æŸ¥è¡¨" - } - ], - "advancement":"spectrum:midgame/enter_liquid_crystal", - "name":"注魔基座", - "icon":"spectrum:enchanter", - "sortnum":0, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/enchanting_items.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/enchanting_items.json deleted file mode 100644 index 83ab0783fe..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/enchanting_items.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "pages":[ - { - "text":"使用注魔基座对物å“进行附魔相当简å•:$(br)将附魔书放置在$(l:decoration/item_bowl)物å“基座$(/l)上,并将你想è¦å¯¹æ³¨é­”基座本身进行附魔的物å“上。$(br2)与普通的附魔ä¸åŒï¼Œè¿™ä¸ä¼šæ¶ˆè€—书ç±ï¼Œè€Œæ˜¯éœ€è¦æ›´å¤šçš„ç»éªŒã€‚", - "type":"patchouli:text", - "title":"光谱附魔" - }, - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/enchanting_items.png" - ], - "text":"最åŽï¼Œé€šè¿‡$(l:magical_items/knowledge_gem)知识å®çŸ³$(/l)æä¾›ç¨³å®šçš„ç»éªŒæµï¼Œä½ å°±å‡†å¤‡å¥½äº†ã€‚", - "type":"patchouli:image" - }, - { - "item":"minecraft:enchanted_book", - "text":"你也å¯ä»¥ä½¿ç”¨è¿™ä¸ªæœºåˆ¶æ¥åˆ›å»ºæ–°çš„附魔书。åªéœ€å°†ä½ æƒ³è¦å¤åˆ¶çš„$(l:decoration/item_bowl)附魔书$(/l)放在$(l:enchanting/enchanter)物å“基座$(/l)中,并将一本简å•的书放在注魔基座上。$(br2)然而,由于书ç±çš„世俗性质,这将需è¦å¤§é‡çš„ç»éªŒã€‚", - "type":"patchouli:spotlight", - "title":"å¤åˆ¶é­”法书" - }, - { - "text":"$(bold)在大多数情况下,æ¯ä¸ªé™„魔的ç»éªŒå€¼åœ¨50到200之间$()。$(br)一个附魔越稀有,其等级越高,目标物å“叿”¶é™„魔的能力就越好,$(br)其他一些因素也会影å“è¿™ä¸ªç»“æžœã€‚å¹²æ‰°ä¼šè¿›ä¸€æ­¥å¢žåŠ æ­¤æˆæœ¬ï¼Œä¾‹å¦‚ä¸é€‚åˆä½ çš„目标的附魔。", - "type":"patchouli:text", - "title":"所需ç»éªŒ" - } - ], - "advancement":"spectrum:midgame/enter_liquid_crystal", - "name":"光谱附魔", - "icon":"spectrum:enchanter", - "sortnum":1, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/exuberance.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/exuberance.json deleted file mode 100644 index 7415d6ff41..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/exuberance.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你那张由黑曜石和钻石组æˆçš„精美书桌,虽然很有用,但åªè¦ä½ èŽ·å¾—å®ƒï¼Œæˆ–å¤šæˆ–å°‘å°±ä¼šåžå™¬æŽ‰æ¯ä¸€æ®µç»éªŒã€‚ä¸ºäº†æ»¡è¶³å®ƒä¸æ–­å‡å°‘的饥饿感,æä¾›æ‚¨ä¸æ–­å¢žé•¿çš„魔法工具列表。$(br2)ä»Žå¯¹æ‰‹èº«ä¸Šæ¦¨å–æœ€åŽä¸€ç‚¹ç»éªŒä¼šæœ‰å¾ˆå¤§å¸®åŠ©ã€‚", - "type":"patchouli:text" - }, - { - "item":"spectrum:multitool{Enchantments: [{id: \"spectrum:exuberance\", lvl: 5s}]}", - "text":"å¢žåŠ äº†ç”Ÿç‰©æ€æ­»çš„ç»éªŒå€¼ã€‚$(br2)最大等级:5$(br)适用于近战武器和采矿工具。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_exuberance", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让普通的书充满活力。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/exuberance_level_2", - "text":"一开始,将ç¹è£ä»Ž1级å‡çº§åˆ°2级相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/exuberance", - "name":"活力勃å‘", - "icon":"spectrum:multitool", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/first_strike.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/first_strike.json deleted file mode 100644 index 087fb58f9e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/first_strike.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)åªéœ€è¦ä¸€æ¬¡è€ƒè™‘周全的打击。。。或者这å¥è¯ä¸€å®šå·²ç»è¿‡æ—¶äº†ã€‚$(br2)ä¸ç®¡æ€Žæ ·$(br)å…³äºŽä¸€ä¸ªç›¸å…³çš„æ³¨é‡Šï¼šä½ å‘æ˜Žäº†è¿™ä¸ªå…ˆå‘制人的改进。这将是一个很大的帮助,尤其是对许多软弱的对手。", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_sword{Enchantments: [{id: \"spectrum:first_strike\", lvl: 2s}]}", - "text":"如果目标有完整的生命,伤害会大大增加。$(br2)最大等级:2$(br)适用于近战武器。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_first_strike", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–æ‰€éœ€ææ–™å›´ç»•你的注魔基座,为一本普通书注入先å‘制人。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/first_strike_level_2", - "text":"一开始,将先å‘制人从1级å‡çº§åˆ°2级相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/first_strike", - "name":"å…ˆå‘制人", - "icon":"minecraft:iron_sword", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/foundry.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/foundry.json deleted file mode 100644 index ada1f91190..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/foundry.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你还记得世界上最åˆçš„几天,当你费力地从石头中挖出煤æ¥èžåŒ–你开采的矿石。但那些日å­å±ˆæŒ‡å¯æ•°äº†ï¼Œä½ å‘誓。未æ¥å°±æ˜¯çŽ°åœ¨ï¼Œè€é¸Ÿã€‚$(br2)然而,一切都是有代价的:你将失去通常从冶炼矿石中获得的ç»éªŒã€‚", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:autosmelt\", lvl: 1s}]}", - "text":"自动熔炼断å—。$(br2)最大级别:1$(br)适用于采矿工具。$(br)ä¸è´¨è§¦æ„Ÿä¸Žå…±é¸£ç›¸äº’排斥。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_autosmelt", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,用铸造厂注入一本普通的书。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/enchantments/autosmelt", - "name":"铸造厂", - "icon":"minecraft:iron_pickaxe", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/gilded_book.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/gilded_book.json deleted file mode 100644 index 0b9b881bf0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/gilded_book.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"é•€é‡‘çš„ä¹¦ç±æ˜¯ã€Šé™„魔》($(l:enchanting/enchanter)注魔基座$(/l))中普通书ç±çš„æ›¿ä»£å“。更容易接å—é­”æ³•ï¼Œé™„é­”çš„è¿‡ç¨‹å°†æ›´å¿«ã€æ›´ä¾¿å®œã€‚$(br)æ›´é‡è¦çš„æ˜¯ï¼Œå®ƒä»¬ç”šè‡³å¯ä»¥ç”¨äºŽå°†æ³¨é­”基座周围物å“基座中å„ç§ç‰©å“的魔法å¤åˆ¶åˆ°è‡ªèº«ï¼ˆè€Œä¸ä»…仅是其他附魔书ç±ï¼‰ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/gilded_book", - "text":"$(italic)闪光的未必都是金å­ã€‚$(br)然而,这些书是。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_gilded_book", - "extra_recipe_mappings":{ - "spectrum:gilded_book":0 - }, - "name":"镀金的书", - "icon":"spectrum:gilded_book", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/improved_critical.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/improved_critical.json deleted file mode 100644 index 8a37f5e57e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/improved_critical.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ å·²ç»æ³¨æ„åˆ°ï¼Œå¦‚æžœä½ åœ¨æ”»å‡»æ—¶è·³è·ƒï¼Œä¼šå¯¹æ•Œäººé€ æˆæ›´å¤§çš„伤害。$(br)为了进一步改善这些跳跃攻击,您开å‘了此é‡å‡»å¢žå¼ºï¼Œå®ƒä¼šè¿›ä¸€æ­¥å¢žåŠ é¢å¤–伤害。", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_sword{Enchantments: [{id: \"spectrum:improved_critical\", lvl: 2s}]}", - "text":"é€ æˆæš´å‡»æ—¶é¢å¤–伤害。最$(br2)大等级:2$(br)适用于近战武器。$(br)与锋利相互排斥。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_improved_critical", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™å›´ç»•你的注魔基座,为一本普通的书注入é‡å‡»å¢žå¼ºã€‚", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/improved_critical_level_2", - "text":"首先,将é‡å‡»å¢žå¼ºä»Žçº§åˆ«1å‡çº§åˆ°çº§åˆ«2相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/improved_critical", - "name":"é‡å‡»å¢žå¼º", - "icon":"minecraft:iron_sword", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/indestructible.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/indestructible.json deleted file mode 100644 index 9a398c25d9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/indestructible.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ å·²ç»èµ°äº†è¿™ä¹ˆè¿œï¼Œä½†ä½ ä»ç„¶éœ€è¦é¢å¯¹è¿™æ ·ä¸€ä¸ªäº‹å®žï¼Œå³ä½ çš„å¸¸ç”¨å·¥å…·ï¼Œå¦‚ç‡§çŸ³å’Œé’¢ï¼Œä¸€æ—¦ä½¿ç”¨å¤ªå¤šæ¬¡å°±ä¼šä¸æ–­ç ´ç¢Žã€‚你有足够多的设备,这些设备以å‰å¤ªè„†å¼±ï¼Œæ— æ³•长期使用。$(br)既然你有了基岩粉末?没问题。", - "type":"patchouli:text" - }, - { - "item":"spectrum:multitool{Enchantments: [{id: \"spectrum:indestructible\", lvl: 1s}]}", - "text":"使工具完全牢ä¸å¯ç ´ï¼Œä¸å†å—到æŸå。$(br2)最大级别:1$(br)适用于所有工具。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_indestructible", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让普通的书充满åšä¸å¯æ‘§ã€‚", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/enchantments/indestructible", - "name":"åšä¸å¯æ‘§", - "icon":"spectrum:multitool", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/inertia.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/inertia.json deleted file mode 100644 index 415da01dfc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/inertia.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你几乎会认为这ç§é­…力为你的工具注入了一点生命。$(br2)åƒç”Ÿç‰©ä¸€æ ·ï¼Œè¯¥å·¥å…·é€æ¸ä¹ æƒ¯äºŽä½ æ­£åœ¨æŒ–掘的方å—,并擅长于此。然而,作为回报,其他方å—çš„å¼€é‡‡é€Ÿåº¦å˜æ…¢ã€‚", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:inertia\", lvl: 3s}]}", - "text":"采矿速度é™ä½Žã€‚æ¯å¼€é‡‡ä¸€ä¸ªç›¸åŒç±»åž‹çš„æ–¹å—,速度都会增加。$(br2)最大级别:3$(br)适用于采矿工具。$(br)与效率相互排斥。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_inertia", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让普通的书充满惯性。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/inertia_level_2", - "text":"首先,将惯性从1级å‡çº§åˆ°2级相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/inertia", - "name":"惯性", - "icon":"minecraft:iron_pickaxe", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/inventory_insertion.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/inventory_insertion.json deleted file mode 100644 index a5fa4f7391..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/inventory_insertion.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)å¦‚æžœä½ æ¯æ¬¡å¼€é‡‡çŸ¿çŸ³æ—¶éƒ½æœ‰ä¸€å—土方å—,它正好è½å…¥ç†”岩中,你就会有很多土。$(br2)ä¸çŸ¥é“你会用这么多土åšä»€ä¹ˆã€‚也许把它给一个刚到这里的朋å‹ï¼Œä»–第一天晚上需è¦åº‡æŠ¤ï¼Ÿ$(br)æ— è®ºå¦‚ä½•ï¼ŒæŠŠä¸œè¥¿ä¸¢è¿›ç†”å²©çš„äº‹æƒ…å¿…é¡»åœæ­¢ã€‚", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:inventory_insertion\", lvl: 1s}]}", - "text":"把破碎的方å—ç›´æŽ¥æ”¾è¿›ä½ çš„åº“å­˜ä¸­ï¼Œè€Œä¸æ˜¯æŠŠå®ƒä»¬æ‰”到地上。$(br2)最大级别:1$(br)适用于采矿工具。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_inventory_insertion", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,在一本普通的书附上自动收集。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/enchantments/inventory_insertion", - "name":"自动收集", - "icon":"minecraft:iron_pickaxe", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/overchanting.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/overchanting.json deleted file mode 100644 index 0a984f3738..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/overchanting.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "item":"minecraft:enchanted_book{StoredEnchantments: [{id: \"minecraft:fortune\", lvl: 5s}]}", - "text":"$(italic)如此熟悉魔法和注魔基座为你打开了新的大门:$(br)过度冷å´ã€‚$(br2)将如此多的魔法能é‡åŽ‹å…¥ä¸€æœ¬é™„é­”ä¹¦å°†æ˜¯æ˜‚è´µçš„ã€‚åœ¨å¤§å¤šæ•°æƒ…å†µä¸‹ï¼Œç”šè‡³ä¸å€¼å¾—这么麻烦。", - "type":"patchouli:spotlight", - "title":"过度冷å´" - }, - { - "text":"$(li)三å¶è‰çš„é’ç:3=>6$(li)除你武器:2=>4$(li)精力旺盛:5=>10$(li)å…ˆå‘制人:2=>5$(li)é‡å‡»å¢žå¼ºï¼š2=>4$(li)惯性:2=>5$(li)快手:2=>4$(li)çµé­‚猎手:3=>5$(li)狙击手:2=>4", - "type":"patchouli:text", - "title":"光谱附魔" - }, - { - "text":"节肢动物的ç¾ç¥¸ï¼š5=>8$(li)çˆ†ç‚¸ä¿æŠ¤ï¼š4=>8$(li)深海漫游者:3=>3$(li)效率:5=>8$(li)ç¾½è½ï¼š4=>6$(li)ç«ç„°é™„加:2=>4$(li)ç«ç„°ä¿æŠ¤ï¼š4=>8$(li)幸è¿ï¼š3=>5$(li)冰霜行者:2=>4$(li)穿刺:5=>8$(li)击退:2=>5$(li)掠夺:3=>6$(li)忠诚:3=>4$(li)海之眷顾:3=>5", - "type":"patchouli:text", - "title":"原版附魔" - }, - { - "text":"诱惑:3=>5$(li)ç©¿é€ï¼š4=>8$(li)力é‡ï¼š5=>8$(li)弹射我防护:4=>8$(li)ä¿æŠ¤ï¼š4=>8$(li)冲击:2=>5$(li)快速装填:3=>5$(li)水下呼å¸ï¼š3=>6$(li)æ¿€æµï¼š3=>4$(li)锋利:5=>8$(li)击æ€ï¼š5=>8$(li)çµé­‚疾行:3=>4$(li)横扫之刃:3=>7$(li)è†æ£˜ï¼š3=>6$(li)è€ä¹…:3=>6", - "type":"patchouli:text" - } - ], - "advancement":"spectrum:milestones/unlock_overenchanting_with_enchanter", - "name":"过度冷å´", - "icon":"minecraft:enchanted_book", - "sortnum":4, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/pest_control.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/pest_control.json deleted file mode 100644 index cfadbd4b52..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/pest_control.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ å‘现了一个巨大的地下建筑,看起æ¥åƒæ˜¯è¿œåœ¨ä½ ä¹‹å‰çš„æ–‡æ˜Žçš„地下堡垒。$(br)虽然他们似乎拥有能够打开通å‘å¦ä¸€ä¸ªä¸–界的门户的技术,但他们肯定应该对自己的害虫问题åšäº›ä»€ä¹ˆã€‚", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:pest_control\", lvl: 1s}]}", - "text":"æ‰“ç ´å—æ„ŸæŸ“çš„æ–¹å—æ—¶ï¼Œæ‘†è„±è ¢è™«ã€‚$(br2)最大级别:1$(br)适用于采矿工具。$(br)与共振相互排斥。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_pest_control", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,为一本普通的书注入害虫控制。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/enchantments/pest_control", - "name":"害虫防治", - "icon":"minecraft:iron_pickaxe", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/resonance.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/resonance.json deleted file mode 100644 index d56badc40a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/resonance.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你总是对一些方å—很感兴趣,但你永远都ä¸å¯èƒ½æŠŠå®ƒä»¬å°å¿ƒåœ°ä»Žåœ°ä¸Šåˆ»å‡ºæ¥ï¼Œå®Œç¾Žåœ°å–回。然而,你注æ„到,这些积木的振动方å¼ä¸Žä½ æœ€è¿‘éžå¸¸å…³æ³¨çš„å®çŸ³ç±»ä¼¼ã€‚$(br)如果你点击了正确的频率,你最终å¯ä»¥æŠŠå…¶ä¸­ä¸€äº›æ‹¿åœ¨æ‰‹é‡Œã€‚", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_pickaxe{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", - "text":"使用柔和的振动使一些木å—自行掉è½ã€‚$(br2)最大级别:1$(br)适用于采矿工具。$(br)与Fortuneã€Foundry和害虫防治相互排斥。$(br2)$(br2)$(italic)我们应该把这个\næ™¶æ´ž$(br)推到别的地方。$()", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_resonance", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™å›´ç»•ç€ä½ çš„æ³¨é­”基座,给一本普通的书注入共振。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:budding_citrine", - "text":"这些方å—中的裂ç¼å…许它们在短时间内创造出新的芽(好å§ï¼Œä¸Žå®ƒä»¬çš„创造历å²ç›¸æ¯”,时间很短;对你æ¥è¯´ï¼Œç­‰å¾…ä»ç„¶æ„Ÿè§‰åƒæ˜¯æ°¸ä¸–长存)。$(br2)åœ¨ä½ è‡ªå·±çš„å®¶é‡Œè€Œä¸æ˜¯åœ¨ä½ çš„å‰å“¨ç«™ç­‰ä»–们å¬èµ·æ¥æ›´èˆ’适。", - "type":"patchouli:spotlight", - "title":"èŒèнå—" - }, - { - "item":"minecraft:medium_amethyst_bud", - "text":"较å°çš„å®çŸ³èŠ½é€šå¸¸å¤ªè„†å¼±ï¼Œæ— æ³•ä»Žæ¯äº²çš„æ–¹å—上折断。$(br2)然而,如果你点击正确的频率,较å°çš„å®çŸ³èŠ½å‡ ä¹Žä¼šè‡ªå·±ä»ŽçŸ³å¤´ä¸Šæ‘”ä¸‹æ¥ã€‚", - "type":"patchouli:spotlight", - "title":"å®çŸ³èн" - }, - { - "item":"spectrum:orange_leaves", - "text":"彩色å¶å­å—到刺激,释放出更多的树苗。$(br2)应用到锄头上,它将最终æˆä¸ºä½ èŽ·å¾—å†ç”Ÿ$(l:general/colored_trees)彩色树苗$()的关键。", - "type":"patchouli:spotlight", - "title":"彩色å¶å­" - }, - { - "item":"minecraft:spawner", - "text":"在深处,你会å‘现笼å­é‡Œä¼¼ä¹Žåå‡ºäº†æ— æ•°çš„æ•Œäººã€‚æ˜¯å“ªä¸ªç–¯å­æŠŠä»–ä»¬æ”¾åœ¨é‚£é‡Œçš„ï¼Œä»–ä»¬çš„ç›®çš„æ˜¯ä»€ä¹ˆï¼Œè¿™äº›åŠªåŠ›æ˜¯å¦çœŸçš„值得,对你æ¥è¯´éƒ½æ˜¯ä¸ªè°œã€‚然而,你肯定å¯ä»¥æ‰¾åˆ°ä¸€äº›ä½¿ç”¨è¿™äº›ã€‚无论制造商是è°ï¼Œéƒ½ä¸ä¼šé”™è¿‡ä½ æ‰“包的。", - "type":"patchouli:spotlight", - "title":"收获怪物笼" - }, - { - "item":"minecraft:infested_stone_bricks", - "text":"轻柔的振动使躲在方å—里的蠢虫安é™ä¸‹æ¥ã€‚$(br2)ä½ å¯ä»¥æŠŠåŒ…括蠢虫在内的积木打包带走,而ä¸è®©å®ƒä»¬çŸ¥é“å‘生了什么。$(br)甜蜜,甜蜜的å¤ä»‡ï¼Ÿ", - "type":"patchouli:spotlight", - "title":"å—æ„ŸæŸ“的方å—" - } - ], - "advancement":"spectrum:progression/tools/unlock_resonant_pickaxe", - "name":"共振", - "icon":"minecraft:diamond_pickaxe", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/sniper.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/sniper.json deleted file mode 100644 index 61716ef410..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/sniper.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)与弓相比,弩的存在并ä¸å¼•人注目。$(br2)ç„¶è€Œï¼Œåœ¨ç‹™å‡»é­”æ³•çš„ä½œç”¨ä¸‹ï¼Œå®ƒä¼šå°†å¼©å˜æˆè‡´å‘½çš„远程武器。", - "type":"patchouli:text" - }, - { - "item":"minecraft:crossbow{Enchantments: [{id: \"spectrum:sniper\", lvl: 2s}]}", - "text":"增加伤害ã€å‡†ç¡®æ€§å’ŒæŠ•射速度。$(br2)最大等级:$(br)2适用于弩。$(br)与多é‡å°„击相互排斥。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_sniper", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让普通的书充满狙击手。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/enchantments/sniper", - "name":"狙击", - "icon":"minecraft:crossbow", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/steadfast.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/steadfast.json deleted file mode 100644 index 1e2b6745dc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/steadfast.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)认识了你,你为自己创造了一个完美的工具,å´åœ¨ä¸€ä¸ªç–¯ç‹‚的瞬间è½å…¥ç†”å²©ã€‚ç„¶åŽæ˜¯æœ«å½±äººçš„维度,它æˆå‰§æ€§åœ°æƒ©ç½šäº†æ¯ä¸€ä¸ªé”™è¯¯ã€‚$(br2)è¿™ä¸ªæ–°çš„é™„é­”å°†ä¿æŠ¤ä½ æœ€å–œæ¬¢çš„å·¥å…·åœ¨è¿™ç§æƒ…况下的紧急情况(并投掷它对仙人掌)。", - "type":"patchouli:text" - }, - { - "item":"spectrum:multitool{Enchantments: [{id: \"spectrum:steadfast\", lvl: 1s}]}", - "text":"当工具躺在地上时,å³ä½¿æ˜¯ç†”岩或è½å…¥çœŸç©ºä¸­ï¼Œä¹Ÿèƒ½ä¿æŠ¤å·¥å…·å…å—å„ç§æŸå。$(br2)最大级别:1$(br)适用于所有工具。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_steadfast", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让普通的书充满æ„å¿—åšå®šã€‚", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/enchantments/steadfast", - "name":"æ„å¿—åšå®š", - "icon":"spectrum:multitool", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/tight_grip.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/tight_grip.json deleted file mode 100644 index 1d69de7717..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/tight_grip.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)你用武器打击的速度比你想象的è¦å¿«ï¼Œè¿™å‡ ä¹Žå°±åƒä¸€ä¸ªç‹‚çƒ­çš„æ¢¦æƒ³ã€‚åŒæ—¶ï¼Œæ¯ä¸€æ¬¡æ‰“击都会消耗你太多的力é‡ï¼Œä»¥è‡³äºŽä½ ä¸å¾—䏿š‚åœç‰‡åˆ»ã€‚$(br)也许你正在å˜è€ã€‚$(br2)通过对你的武器进行一些å°çš„调整,你å¯ä»¥åœ¨ä¸€å®šç¨‹åº¦ä¸Šå‡å°‘åœæœºæ—¶é—´ã€‚", - "type":"patchouli:text" - }, - { - "item":"minecraft:iron_sword{Enchantments: [{id: \"spectrum:tight_grip\", lvl: 2s}]}", - "text":"å‡å°‘æ”»å‡»å†·å´æ—¶é—´ã€‚$(br2)最大等级:2$(br)适用于近战武器。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_tight_grip", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–å¿…è¦çš„ææ–™åŒ…围你的注魔基座,让普通的书注入快手。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/tight_grip_level_2", - "text":"一开始,将快手从1级æå‡åˆ°2级相当便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/tight_grip", - "name":"快手", - "icon":"minecraft:iron_sword", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/treasure_hunter.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/treasure_hunter.json deleted file mode 100644 index a382e35748..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/treasure_hunter.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)在一幅画中,你看到了一个神奇的生物,它似乎是由çµé­‚沙和枯èŽçš„骷髅头骨组æˆçš„ã€‚ä½ åœ¨ä¸€ä¸ªå¹½å†¥çš„å ¡åž’é‡Œç­‰äº†å‡ ä¸ªå°æ—¶ï¼Œå´å‘çŽ°è‡ªå·±çš„è„‘è¢‹å‡ ä¹Žè¦æ¾äº†ï¼Œè€Œä½ æ­£åœ¨å¯»æ‰¾ä¸€å…·è„Šæ¤Žæ¾å¾—足以掉è½å¤´éª¨çš„æž¯èŽéª¨éª¼ã€‚抬头,你从æ¥ä¸æ˜¯é‚£ç§æŠŠå¤´åŸ‹åœ¨æ²™å­é‡Œçš„人。", - "type":"patchouli:text" - }, - { - "item":"spectrum:cow_head", - "text":"$(italic)但是还有苦力怕ï¼ä¸€æ—¦è¢«é—ªç”µå‡»ä¸­ï¼Œå®ƒä»¬å°±ä¼šçˆ†ç‚¸ï¼Œçˆ†ç‚¸å¨åŠ›å·¨å¤§ï¼Œä»¥è‡³äºŽå°†å¯¹æ‰‹çš„å¤´é¢…ä»Žä»–ä»¬çš„å¤´é¢…ç‚¸é£žï¼ˆæœ€ç³Ÿç³•çš„æƒ…å†µæ˜¯ï¼šä½ è‡ªå·±ï¼‰ã€‚$(br)å°±åƒè¢«é—ªç”µå‡»ä¸­ä¸€æ ·ï¼Œä½ ç”¨$(l:resources/lightning_stones)风暴石$(/l)想出了这个新的魔法。$(br)于是çµé­‚猎手诞生了,你å¯ä»¥ä»Ž$(l:creating_life/mob_heads)å„ç§ç”Ÿç‰©é‚£é‡Œæ”¶é›†å¤´é¢…$(/l)", - "type":"patchouli:spotlight" - }, - { - "item":"minecraft:iron_sword{Enchantments: [{id: \"spectrum:treasure_hunter\", lvl: 3s}]}", - "text":"击æ€ç”Ÿç‰©å¶å°”掉è½å¤´é¢…。$(br2)最大等级:3$(br)适用于近战武器。$(br)与掠夺相互排斥。", - "type":"patchouli:spotlight", - "title":"特点" - }, - { - "recipe":"spectrum:enchanter/spectrum_books/book_treasure_hunter", - "text":"ä½ å¯ä»¥ç”¨é¢œæ–™å’Œå…¶ä»–æ‰€éœ€ææ–™åŒ…围你的注魔基座,为一本普通书注入çµé­‚猎手。", - "type":"spectrum:enchanter_crafting", - "title":"æ³¨é­”åŸºåº§é…æ–¹" - }, - { - "recipe":"spectrum:enchantment_upgrade/spectrum/treasure_hunter_level_2", - "text":"一开始把çµé­‚猎手从一级å‡çº§åˆ°äºŒçº§ç›¸å½“便宜。æ¯å¢žåŠ ä¸€ä¸ªçº§åˆ«ï¼Œ$(br)这个价格将迅速增加到越æ¥è¶Šå¤šçš„颜料和ç»éªŒã€‚", - "type":"spectrum:enchanter_upgrading", - "title":"附魔å‡çº§" - } - ], - "advancement":"spectrum:progression/enchantments/treasure_hunter", - "name":"çµé­‚猎手", - "icon":"minecraft:iron_sword", - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/upgrading_enchanted_books.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/upgrading_enchanted_books.json deleted file mode 100644 index 24c225397f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/upgrading_enchanted_books.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)附魔和你的色彩魔法有很多共åŒç‚¹ã€‚这就是为什么当你第一次å°è¯•将《附魔》与$(l:general/pigment)颜料$(/l)结åˆåœ¨ä¸€èµ·æ—¶ï¼Œä½ å¹¶ä¸æ„Ÿåˆ°æƒŠè®¶ã€‚$()$(br2)将一本附魔书放在注魔基座身上,用匹é…的颜料将其包围,并æä¾›ç¨³å®šçš„ç»éªŒæµï¼Œå¯ä»¥æé«˜ä½ çš„书的等级。", - "type":"patchouli:text" - }, - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/upgrading_enchanted_books.png" - ], - "text":"å°½é‡ä¸è¦æ‰“断上述过程,å¦åˆ™å®ƒä¼šå®Œå…¨åœæ­¢ã€‚", - "type":"patchouli:image" - } - ], - "advancement":"spectrum:midgame/enter_liquid_crystal", - "name":"å‡çº§ä¹¦ç±", - "icon":"minecraft:enchanted_book", - "sortnum":3, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/vanilla_enchantments.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/vanilla_enchantments.json deleted file mode 100644 index 80f8db1113..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/enchanting/vanilla_enchantments.json +++ /dev/null @@ -1,280 +0,0 @@ -{ - "pages":[ - { - "text":"注魔基座还å¯ä»¥ä½¿ç”¨ä½ çš„æ™®é€šå·¥è‰ºæ¡Œæ¥è£…载你已ç»ç†Ÿæ‚‰çš„大部分魔法。$(br2)所有的附魔也å¯ä»¥å‡çº§åˆ°æ›´é«˜çš„级别-使用相åŒçš„颜料创建它。", - "type":"patchouli:text" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_water", - "recipe":"spectrum:enchanter/vanilla_books/book_aqua_affinity", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"水下速掘" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_damage", - "recipe":"spectrum:enchanter/vanilla_books/book_bane_of_arthropods", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"èŠ‚è‚¢æ€æ‰‹" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_curses", - "recipe":"spectrum:enchanter/vanilla_books/book_binding_curse", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"绑定诅咒" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_protection", - "recipe":"spectrum:enchanter/vanilla_books/book_blast_protection", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"çˆ†ç‚¸ä¿æŠ¤" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_trident_channeling", - "recipe":"spectrum:enchanter/vanilla_books/book_channeling", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"引雷" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_water", - "recipe":"spectrum:enchanter/vanilla_books/book_depth_strider", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"深海漫游者" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_quitoxic", - "recipe":"spectrum:enchanter/vanilla_books/book_efficiency", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"效率" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_quitoxic", - "recipe":"spectrum:enchanter/vanilla_books/book_feather_falling", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç¾½è½" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_damage", - "recipe":"spectrum:enchanter/vanilla_books/book_fire_aspect", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç«ç„°é™„加" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_protection", - "recipe":"spectrum:enchanter/vanilla_books/book_fire_protection", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç«ç„°ä¿æŠ¤" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "recipe":"spectrum:enchanter/vanilla_books/book_flame", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç«ç„°é™„加" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_luck", - "recipe":"spectrum:enchanter/vanilla_books/book_fortune", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"幸è¿" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_treasure", - "recipe":"spectrum:enchanter/vanilla_books/book_frost_walker", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"冰霜行者" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_trident", - "recipe":"spectrum:enchanter/vanilla_books/book_impaling", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç©¿é€" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile_infinity", - "recipe":"spectrum:enchanter/vanilla_books/book_infinity", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"æ— é™" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_damage", - "recipe":"spectrum:enchanter/vanilla_books/book_knockback", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"击退" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_luck", - "recipe":"spectrum:enchanter/vanilla_books/book_looting", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"掠夺" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_trident", - "recipe":"spectrum:enchanter/vanilla_books/book_loyalty", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"忠诚" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_water_luck", - "recipe":"spectrum:enchanter/vanilla_books/book_luck_of_the_sea", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"海之眷顾" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_water", - "recipe":"spectrum:enchanter/vanilla_books/book_lure", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"诱饵" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_treasure", - "recipe":"spectrum:enchanter/vanilla_books/book_mending", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç»éªŒä¿®è¡¥" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "recipe":"spectrum:enchanter/vanilla_books/book_multishot", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"多é‡å°„击" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "recipe":"spectrum:enchanter/vanilla_books/book_piercing", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ç©¿é€" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "recipe":"spectrum:enchanter/vanilla_books/book_power", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"力é‡" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_protection", - "recipe":"spectrum:enchanter/vanilla_books/book_projectile_protection", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"å¼¹å°„ç‰©ä¿æŠ¤" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_protection", - "recipe":"spectrum:enchanter/vanilla_books/book_protection", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"ä¿æŠ¤" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "recipe":"spectrum:enchanter/vanilla_books/book_punch", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"冲击" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "recipe":"spectrum:enchanter/vanilla_books/book_quick_charge", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"快速装填" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_water", - "recipe":"spectrum:enchanter/vanilla_books/book_respiration", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"水下呼å¸" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_trident", - "recipe":"spectrum:enchanter/vanilla_books/book_riptide", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"æ¿€æµ" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_damage", - "recipe":"spectrum:enchanter/vanilla_books/book_sharpness", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"锋利" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_silk_touch", - "recipe":"spectrum:enchanter/vanilla_books/book_silk_touch", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"精准采集" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_damage", - "recipe":"spectrum:enchanter/vanilla_books/book_smite", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"äº¡çµæ€æ‰‹" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_treasure", - "recipe":"spectrum:enchanter/vanilla_books/book_soul_speed", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"çµé­‚急行" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_damage", - "recipe":"spectrum:enchanter/vanilla_books/book_sweeping", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"横扫之刃" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_protection", - "recipe":"spectrum:enchanter/vanilla_books/book_thorns", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"è†æ£˜" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_unbreaking", - "recipe":"spectrum:enchanter/vanilla_books/book_unbreaking", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"è€ä¹…" - }, - { - "advancement":"spectrum:progression/enchantments/vanilla_curses", - "recipe":"spectrum:enchanter/vanilla_books/book_vanishing_curse", - "text":"", - "type":"spectrum:enchanter_crafting", - "title":"消失诅咒" - } - ], - "advancement":"spectrum:progression/enchantments/disarming", - "name":"原版附魔", - "icon":"spectrum:multitool", - "sortnum":6, - "priority":true, - "category":"spectrum:enchanting_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/ancient_ruins.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/ancient_ruins.json deleted file mode 100644 index d9f2862071..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/ancient_ruins.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "远å¤é—迹", - "icon": "spectrum:dike_chiseled_preservation_stone", - "advancement": "spectrum:find_ancient_ruins", - "sortnum": 16, - "turnin": "spectrum:generate_ancient_ruins_loot", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:preservation_stone": 0, - "spectrum:preservation_controller": 0, - "spectrum:dike_chiseled_preservation_stone": 0, - "spectrum:treasure_chest": 0, - "spectrum:preservation_glass": 0, - "spectrum:tinted_preservation_glass": 0, - "spectrum:dike_gate": 0, - "spectrum:dike_gate_fountain": 0, - "spectrum:courier_statue": 0 - }, - "pages": [ - { - "type": "patchouli:spotlight", - "title": "远å¤é—迹", - "item": "spectrum:dike_chiseled_preservation_stone", - "text": "在幽深的地下招到这些é—迹,é—迹的入å£è¢«å¼ºå¤§çš„魔法力é‡ä¿æŠ¤ç€ã€‚" - }, - { - "type": "patchouli:image", - "title": "å…¥å£", - "images": [ - "spectrum:textures/gui/manual/ancient_ruins.png" - ], - "border": true, - "text": "è—在这入å£èƒŒåŽçš„æ˜¯ä»€ä¹ˆï¼Ÿè¿™äº›ç¬¦å·åˆæ„味ç€ä»€ä¹ˆå‘¢ï¼Ÿ" - }, - { - "type": "patchouli:spotlight", - "title": "这一切都值得å—?", - "item": "spectrum:azure_dike_ring", - "advancement": "spectrum:enter_ancient_ruins", - "text": "看起æ¥éœ€è¦ç©¿é›è“色装备æ‰èƒ½è¿›å…¥.$(br2)ä½ è¿™æ‰æƒ³èµ·ï¼Œä½ ä¹‹å‰èŠ±åœ¨å®çŸ³çŸ¿å’Œé¢œæ–™ä¸Šçš„努力全都白费了。就现在而言,你大错特错了。" - }, - { - "type": "patchouli:text", - "title": "一个挑战?", - "advancement": "spectrum:generate_ancient_ruins_loot", - "text": "是è°å»ºé€ çš„这些é—迹?很明显他们和你走了åŒä¸€æ¡è·¯ï¼Œç¡®åˆ‡çš„说他们远在你的å‰å¤´ã€‚$(br2)å³ä½¿çŽ°åœ¨ä¹Ÿæ˜¯è¿œåœ¨ä½ å‰å¤´ã€‚但ä¸ç®¡æ€Žä¹ˆæ ·ï¼Œä½ æŽ¥å—了挑战。当然,你有一个巨大优势:$(br)$(italic)ä½  还 æ´» ç€ã€‚" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/anvil_crushing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/anvil_crushing.json deleted file mode 100644 index 71f971b032..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/anvil_crushing.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "物å“分解", - "icon": "minecraft:anvil", - "sortnum": 3, - "advancement": "spectrum:place_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:collect_gemstone_powder", - "pages": [ - { - "type": "patchouli:image", - "title": "物å“分解", - "images": [ - "spectrum:textures/gui/manual/anvil_crushing.png" - ], - "border": true, - "text": "$(italic)\"æ—§çš„ä¸åŽ»æ–°çš„ä¸æ¥\" - æŸäºº" - }, - { - "type": "patchouli:text", - "text": "ç›®å‰ä¸ºæ­¢ï¼Œä½ ä¸»è¦ä½¿ç”¨é“ç §ä¿®ç†å’Œå‡çº§å·¥å…·ã€‚åƒé“砧这么é‡çš„东西一定有别的用途å§ï¼æ‰€ä»¥ï¼ä¸ºå•¥ä¸ç”¨å®ƒå¤§åŠ›å‡ºå¥‡è¿¹ç›´æŽ¥æŠŠä¸œè¥¿ç¢¾æˆç²‰æœ«ï¼æ¯”如敌人的头骨和物å“å•¥çš„ï¼Œæ˜¯ä¸æ˜¯æ„Ÿè§‰è´¼æ£’。$(br2)ä½ å¯ä»¥ç”¨ç‰©å“分解把 $(l:general/shards)å®çŸ³çŸ¿ç¢Žç‰‡$() åˆ†è§£æˆ $(l:general/gemstone_powder)粉末$()。$(br2)$(italic)æç¤ºï¼šé“ç §è½å¾—越远越好ï¼" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/color_mixing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/color_mixing.json deleted file mode 100644 index 7e71e1ae34..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/color_mixing.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "颜色混åˆ", - "icon": "minecraft:light_blue_dye", - "sortnum": 5, - "advancement": "spectrum:collect_vegetal", - "category": "spectrum:general_category", - "turnin": "spectrum:craft_colored_sapling", - "pages": [ - { - "type": "patchouli:image", - "title": "颜色混åˆ", - "images": [ - "spectrum:textures/gui/manual/color_mixing.png" - ], - "text": "使用这几ç§åŸºæœ¬é¢œè‰²ï¼š $(c_cyan)è“绿色$(), $(c_magenta)å“红色$() å’Œ $(c_yellow)黄色$(), (几乎) 能混åˆå‡ºæ‰€æœ‰é¢œè‰²ã€‚" - }, - { - "type": "patchouli:text", - "text": "ä½ è¯•å›¾ç›´æŽ¥æ··åˆ $(l:general/gemstone_powder)å®çŸ³çŸ¿ç²‰æœ«$(/l) 貌似ä¸å¤ªæˆåŠŸã€‚ 但你现在还有å¦ä¸€ä¸ªåŠžæ³•ï¼š$(br)从你的å®çŸ³çŸ¿å’Œè‡ªç„¶ä¹‹é—´çš„è”ç³»å¯ä»¥çœ‹å‡º $(italic)自然$() å¿…ç„¶å³æ˜¯é—®é¢˜åˆæ˜¯ç­”案ï¼$(br2)ä½ è¿«ä¸åŠå¾…的潦è‰å‡ ç¬”记下了è¦ç‚¹å¹¶ä¸” $(l:general/colored_trees)得出了结论ï¼$(),看起æ¥èƒ½æˆï¼" - }, - { - "type": "patchouli:text", - "title": "制作棕色颜料", - "text": "ä½ å°è¯•了一次åˆä¸€æ¬¡ã€‚ 但一直没有找到通过混åˆå®çŸ³çŸ¿å°˜åˆ¶ä½œæ£•色颜料的办法。离æˆåŠŸæœ€è¿‘çš„ä¸€æ¬¡ä¹Ÿä»…ä»…æ˜¯æžå‡ºäº†æ©˜è‰² - å•§.$(br)ä¸åº”该这么难å§ã€‚ 因为... $(c_brown)泥土就是棕色的$() 而且那是周围最稀æ¾å¹³å¸¸çš„东西了。$(br2)肯定有办法的...$(br)肯定有办法的... $(c_black)黑色$() 就是答案。" - }, - { - "type": "patchouli:link", - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "text": "$(br2)$(br2)$(italic)Seriously, look it up! The way we perceive brown is fascinating!$()", - "url": "https://www.youtube.com/watch?v=wh4aWZRtTwU", - "link_text": "棕色好奇怪" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/colored_trees.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/colored_trees.json deleted file mode 100644 index 1a0469e9b6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/colored_trees.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "name": "染色树", - "icon": "spectrum:red_sapling", - "sortnum": 6, - "advancement": "spectrum:collect_vegetal", - "turnin": "spectrum:craft_colored_sapling", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:black_sapling": 0, - "spectrum:blue_sapling": 0, - "spectrum:brown_sapling": 0, - "spectrum:cyan_sapling": 0, - "spectrum:gray_sapling": 0, - "spectrum:green_sapling": 0, - "spectrum:light_blue_sapling": 0, - "spectrum:light_gray_sapling": 0, - "spectrum:lime_sapling": 0, - "spectrum:magenta_sapling": 0, - "spectrum:orange_sapling": 0, - "spectrum:pink_sapling": 0, - "spectrum:purple_sapling": 0, - "spectrum:red_sapling": 0, - "spectrum:white_sapling": 0, - "spectrum:yellow_sapling": 0, - "spectrum:black_log": 0, - "spectrum:blue_log": 0, - "spectrum:brown_log": 0, - "spectrum:cyan_log": 0, - "spectrum:gray_log": 0, - "spectrum:green_log": 0, - "spectrum:light_blue_log": 0, - "spectrum:light_gray_log": 0, - "spectrum:lime_log": 0, - "spectrum:magenta_log": 0, - "spectrum:orange_log": 0, - "spectrum:pink_log": 0, - "spectrum:purple_log": 0, - "spectrum:red_log": 0, - "spectrum:white_log": 0, - "spectrum:yellow_log": 0, - "spectrum:black_leaves": 0, - "spectrum:blue_leaves": 0, - "spectrum:brown_leaves": 0, - "spectrum:cyan_leaves": 0, - "spectrum:gray_leaves": 0, - "spectrum:green_leaves": 0, - "spectrum:light_blue_leaves": 0, - "spectrum:light_gray_leaves": 0, - "spectrum:lime_leaves": 0, - "spectrum:magenta_leaves": 0, - "spectrum:orange_leaves": 0, - "spectrum:pink_leaves": 0, - "spectrum:purple_leaves": 0, - "spectrum:red_leaves": 0, - "spectrum:white_leaves": 0, - "spectrum:yellow_leaves": 0, - "spectrum:black_planks": 0, - "spectrum:blue_planks": 0, - "spectrum:brown_planks": 0, - "spectrum:cyan_planks": 0, - "spectrum:gray_planks": 0, - "spectrum:green_planks": 0, - "spectrum:light_blue_planks": 0, - "spectrum:light_gray_planks": 0, - "spectrum:lime_planks": 0, - "spectrum:magenta_planks": 0, - "spectrum:orange_planks": 0, - "spectrum:pink_planks": 0, - "spectrum:purple_planks": 0, - "spectrum:red_planks": 0, - "spectrum:white_planks": 0, - "spectrum:yellow_planks": 0, - "spectrum:black_plank_stairs": 0, - "spectrum:blue_plank_stairs": 0, - "spectrum:brown_plank_stairs": 0, - "spectrum:cyan_plank_stairs": 0, - "spectrum:gray_plank_stairs": 0, - "spectrum:green_plank_stairs": 0, - "spectrum:light_blue_plank_stairs": 0, - "spectrum:light_gray_plank_stairs": 0, - "spectrum:lime_plank_stairs": 0, - "spectrum:magenta_plank_stairs": 0, - "spectrum:orange_plank_stairs": 0, - "spectrum:pink_plank_stairs": 0, - "spectrum:purple_plank_stairs": 0, - "spectrum:red_plank_stairs": 0, - "spectrum:white_plank_stairs": 0, - "spectrum:yellow_plank_stairs": 0, - "spectrum:black_plank_pressure_plate": 0, - "spectrum:blue_plank_pressure_plate": 0, - "spectrum:brown_plank_pressure_plate": 0, - "spectrum:cyan_plank_pressure_plate": 0, - "spectrum:gray_plank_pressure_plate": 0, - "spectrum:green_plank_pressure_plate": 0, - "spectrum:light_blue_plank_pressure_plate": 0, - "spectrum:light_gray_plank_pressure_plate": 0, - "spectrum:lime_plank_pressure_plate": 0, - "spectrum:magenta_plank_pressure_plate": 0, - "spectrum:orange_plank_pressure_plate": 0, - "spectrum:pink_plank_pressure_plate": 0, - "spectrum:purple_plank_pressure_plate": 0, - "spectrum:red_plank_pressure_plate": 0, - "spectrum:white_plank_pressure_plate": 0, - "spectrum:yellow_plank_pressure_plate": 0, - "spectrum:black_plank_fence": 0, - "spectrum:blue_plank_fence": 0, - "spectrum:brown_plank_fence": 0, - "spectrum:cyan_plank_fence": 0, - "spectrum:gray_plank_fence": 0, - "spectrum:green_plank_fence": 0, - "spectrum:light_blue_plank_fence": 0, - "spectrum:light_gray_plank_fence": 0, - "spectrum:lime_plank_fence": 0, - "spectrum:magenta_plank_fence": 0, - "spectrum:orange_plank_fence": 0, - "spectrum:pink_plank_fence": 0, - "spectrum:purple_plank_fence": 0, - "spectrum:red_plank_fence": 0, - "spectrum:white_plank_fence": 0, - "spectrum:yellow_plank_fence": 0, - "spectrum:black_plank_fence_gate": 0, - "spectrum:blue_plank_fence_gate": 0, - "spectrum:brown_plank_fence_gate": 0, - "spectrum:cyan_plank_fence_gate": 0, - "spectrum:gray_plank_fence_gate": 0, - "spectrum:green_plank_fence_gate": 0, - "spectrum:light_blue_plank_fence_gate": 0, - "spectrum:light_gray_plank_fence_gate": 0, - "spectrum:lime_plank_fence_gate": 0, - "spectrum:magenta_plank_fence_gate": 0, - "spectrum:orange_plank_fence_gate": 0, - "spectrum:pink_plank_fence_gate": 0, - "spectrum:purple_plank_fence_gate": 0, - "spectrum:red_plank_fence_gate": 0, - "spectrum:white_plank_fence_gate": 0, - "spectrum:yellow_plank_fence_gate": 0, - "spectrum:black_plank_button": 0, - "spectrum:blue_plank_button": 0, - "spectrum:brown_plank_button": 0, - "spectrum:cyan_plank_button": 0, - "spectrum:gray_plank_button": 0, - "spectrum:green_plank_button": 0, - "spectrum:light_blue_plank_button": 0, - "spectrum:light_gray_plank_button": 0, - "spectrum:lime_plank_button": 0, - "spectrum:magenta_plank_button": 0, - "spectrum:orange_plank_button": 0, - "spectrum:pink_plank_button": 0, - "spectrum:purple_plank_button": 0, - "spectrum:red_plank_button": 0, - "spectrum:white_plank_button": 0, - "spectrum:yellow_plank_button": 0, - "spectrum:black_plank_slab": 0, - "spectrum:blue_plank_slab": 0, - "spectrum:brown_plank_slab": 0, - "spectrum:cyan_plank_slab": 0, - "spectrum:gray_plank_slab": 0, - "spectrum:green_plank_slab": 0, - "spectrum:light_blue_plank_slab": 0, - "spectrum:light_gray_plank_slab": 0, - "spectrum:lime_plank_slab": 0, - "spectrum:magenta_plank_slab": 0, - "spectrum:orange_plank_slab": 0, - "spectrum:pink_plank_slab": 0, - "spectrum:purple_plank_slab": 0, - "spectrum:red_plank_slab": 0, - "spectrum:white_plank_slab": 0, - "spectrum:yellow_plank_slab": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "染色树", - "text": "你需è¦ä¸€äº›æœ‰æœºçš„ä¸œè¥¿æ¥æ··åˆä½ çš„é¢œæ–™ã€‚åœ¨å®žéªŒæ—¶ï¼Œä½ çœ‹åˆ°æ ‘è‹—çš„æ ¹å¾ˆå®¹æ˜“å¸æ”¶é¢œæ–™çš„颜色,并生长出相应颜色的æžå¶ã€‚å®çŸ³è„‰å†²çš„能é‡å·²ç»ç©¿è¿‡äº†æžå¹²å’Œå‡ ç‰‡å¶å­ã€‚$(br2)想想它们长æˆäº†ä¼šæ˜¯ä»€ä¹ˆæ ·å­ï¼" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "染色树苗", - "recipe": "spectrum:pedestal/tier1/saplings/red_sapling", - "text": "æ¯ä¸ªå½©è‰²æ ‘苗都需è¦ä¸€äº›ä¸åŒçš„$(l:general/gemstone_powder)å®çŸ³çŸ¿ç²‰æœ«$()æ··åˆç‰©ï¼Œå¯¹åº”它们$(l:general/color_mixing)æ··åˆæœ€ç»ˆé¢œè‰²$(/l)所需è¦çš„å®çŸ³çŸ¿ç²‰æœ«ã€‚" - }, - { - "type": "patchouli:image", - "title": "自然生æˆ", - "advancement": "spectrum:craft_colored_sapling", - "images": [ - "spectrum:textures/gui/manual/colored_trees.png" - ], - "text": "它们早就在你周围了ï¼è°çŸ¥é“外é¢è¿˜æœ‰å•¥å‘¢ï¼Ÿ" - }, - { - "type": "patchouli:crafting", - "advancement": "spectrum:craft_colored_sapling", - "title": "染色原木", - "recipe": "spectrum:crafting_table/colored_wood/light_blue_planks", - "text": "就和普通的原木一样,你å¯ä»¥ç”¨æŸ“色原木æ¥åˆæˆæœ¨æ¿ï¼Œæ¥¼æ¢¯ï¼Œå°é˜¶ï¼ŒæŒ‰é’®ï¼ŒåŽ‹åŠ›æ¿ï¼Œæ …æ å’Œæ …æ é—¨ã€‚" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/create_budding_onyx.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/create_budding_onyx.json deleted file mode 100644 index dbd0a95a0e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/create_budding_onyx.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "制作缟玛瑙æ¯å²©", - "icon": "spectrum:onyx_cluster", - "sortnum": 14, - "advancement": "spectrum:progression/unlock_budding_onyx", - "turnin": "spectrum:midgame/create_budding_onyx", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:small_onyx_bud": 0, - "spectrum:medium_onyx_bud": 0, - "spectrum:large_onyx_bud": 0, - "spectrum:onyx_cluster": 0, - "spectrum:onyx_block": 0, - "spectrum:budding_onyx": 0, - "spectrum:onyx_ore": 0, - "spectrum:deepslate_onyx_ore": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "制作缟玛瑙æ¯å²©", - "text": "制作缟玛瑙有点傻,因为å³ä¾¿æœ‰$(l:magical_items/crescent_clock)新月钟$(/l)它也å—到月相影å“。$(br)使缟玛瑙åƒå…¶ä»–å®çŸ³ä¸€æ ·å¯æŒç»­äº§ç”Ÿï¼Œèƒ½ç»™ä½ å‰©ä¸‹å¾ˆå¤šæ—¶é—´ã€‚$(br2)$(italic)奇怪的是, åŒæ ·çš„æ–¹æ³•对其他彩色å®çŸ³ä¸èµ·ä½œç”¨ï¼Ÿ" - }, - { - "type": "spectrum:spirit_instiller_crafting", - "title": "çµé­‚çŒæ³¨é…æ–¹", - "recipe": "spectrum:spirit_instiller/budding_onyx", - "text": "å³ä½¿å®žçŽ°æˆæœ¬å¾ˆé«˜ï¼Œä½†æ˜¯åˆ¶ä½œå¯æŒç»­å†ç”Ÿçš„缟玛瑙也是值得的。$(br)一次性多制作一些$(l:general/midnight_aberration)åˆå¤œç•¸å˜$(/l),因为它们畸å˜çš„很快。" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/fusion_shrine.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/fusion_shrine.json deleted file mode 100644 index a0de3386e8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/fusion_shrine.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "èžåˆç¥žé¾›", - "icon": "spectrum:fusion_shrine_basalt", - "sortnum": 9, - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "turnin": "spectrum:build_fusion_shrine", - "category": "spectrum:general_category", - "extra_recipe_mappings": { - "spectrum:fusion_shrine_basalt": 1, - "spectrum:fusion_shrine_calcite": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "为了制作 $(l:general/onyx_shards)黑色碎片$(),你å‘çŽ°äº†ä¸€ç§æ–°çš„建筑.$(br2)ä½ å¯ä»¥ç‚¹å‡»æˆ–者把物å“和桶扔到上é¢ã€‚你甚至å¯ä»¥ä¸€æ¬¡å¤„ç†æ‰€æœ‰çš„èžåˆææ–™ï¼Œè¿™ä½¿å¾—èžåˆæ¯”æ¯æ¬¡åªä½¿ç”¨ä¸€ä»¶ç‰©å“更有效。" - }, - { - "type": "spectrum:pedestal_crafting", - "title": "åŸºåº§é…æ–¹", - "recipe": "spectrum:pedestal/tier2/fusion_shrine_basalt", - "text": "å¯ä»¥ç”±çŽ„æ­¦å²©æˆ–æ–¹è§£çŸ³æž„æˆã€‚$(br)需è¦èšç„¦ç»“构和清晰的天空视野。 " - }, - { - "type": "patchouli:multiblock", - "name": "ç¥žé¾›é…æ–¹", - "multiblock_id": "spectrum:fusion_shrine_structure", - "enable_visualize": true, - "text": "åƒå¾€å¸¸ä¸€æ ·ï¼Œä½ å¯ä»¥åˆ‡æ¢çŽ„æ­¦å²©ä¸Žæ–¹è§£çŸ³ï¼Œå¹¶é€‰æ‹©ä½ å–œæ¬¢çš„$(l:decoration/gemstone_storage_blocks)å®çŸ³å—$(/l)." - }, - { - "type": "patchouli:text", - "title": "æ–¹å—æ¸…å•", - "text": "$(li)1 èžåˆç¥žé¾›$(li)4 磨制å®çŸ³å—$(li)4 錾制磨制å—$(li)8 磨制柱å­$(li)12 磨制å°é˜¶$(li)77 磨制å—" - }, - { - "type": "patchouli:text", - "title": "改å˜å¤©æ°”", - "text": "你为èžåˆç¥žé¾›è®¾è®¡äº†ä¸€ä¸ªç»“构,将$(c_cyan)物质$(),$(c_magenta)æ—¶é—´$() å’Œ $(c_yellow)能é‡$()çš„é­”æ³•èƒ½é‡æ†ç»‘在一起ã€å¹¶å°†å®ƒä»¬é›†ä¸­åœ¨ä¸€ä¸ªå•一的中心,å³èžåˆç¥žæ®¿æœ¬èº«ã€‚$(br2)这些强大的组åˆèƒ½é‡ç”šè‡³æœ‰è¶³å¤Ÿçš„åŠ›é‡æ¥æ”¹å˜å¤©æ°”。" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "晴天", - "recipe": "spectrum:fusion_shrine/weather/weather_clear", - "text": "$(italic)åˆæ˜¯æ–°çš„一天$(br)太阳当空照$(br)å°é¸Ÿéƒ½åœ¨æ­Œå”±$(br)今天是你的忌日。" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "雨天", - "advancement": "spectrum:collect_mermaids_gem", - "recipe": "spectrum:fusion_shrine/weather/weather_rain", - "text": "$(italic)å’šå’šå’š$(br)是è°ï¼Ÿ$(br)天气预报$(br)预报什么?$(br)预报今晚会下雨。" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "é›·æš´", - "advancement": "spectrum:midgame/collect_lightning_stone", - "recipe": "spectrum:fusion_shrine/weather/weather_thunder", - "text": "$(italic)雷神为什么è¦å–æ°´?$(br2)因为他脾气暴èºï¼ˆthorsty)" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/gemstone_powder.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/gemstone_powder.json deleted file mode 100644 index 1d5fa92a64..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/gemstone_powder.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "å®çŸ³ç²‰æœ«", - "icon": "spectrum:amethyst_powder", - "sortnum": 4, - "advancement": "spectrum:place_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:collect_gemstone_powder", - "extra_recipe_mappings": { - "spectrum:topaz_powder": 0, - "spectrum:amethyst_powder": 0, - "spectrum:citrine_powder": 0, - "spectrum:onyx_powder": 0, - "spectrum:moonstone_powder": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "åŸºåº§ä¸­çš„å¤§å¤šæ•°é…æ–¹éƒ½éœ€è¦å®çŸ³ç²‰æœ«ä½œä¸ºé­”法能é‡çš„æ¥æºã€‚$(br2)å®çŸ³ç²‰æœ«æœ‰å„ç§é¢œè‰²ï¼Œå¯ä»¥é€šè¿‡$(l:general/anvil_crushing)物å“分解$()磨制å®çŸ³ç¢Žç‰‡æ¥èŽ·å¾—ã€‚" - }, - { - "type": "patchouli:text", - "title": "颜色混åˆ", - "text": "对于一个å³å°†æˆä¸ºè‰ºæœ¯å®¶çš„人æ¥è¯´ï¼Œæ²¡æœ‰ä»€ä¹ˆæ¯”è°ƒé…æ­£ç¡®çš„颜料更é‡è¦äº†ã€‚$(br)ä¸å¹¸çš„æ˜¯ï¼Œä½ å‘现用å®çŸ³ç²‰æ··åˆé¢œè‰²æ²¡æœ‰ä½ ä»¥ä¸ºçš„那么容易:å®çŸ³ç²‰æœ«ä¸å¤ªæƒ³æ··åˆåœ¨ä¸€èµ·ã€‚结果总是五彩缤纷的一å¨ã€‚$(br2)也许你以åŽèƒ½æ‰¾åˆ°è§£å†³åŠžæ³•ï¼Ÿ" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/intro.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/intro.json deleted file mode 100644 index 450765d707..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/intro.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "简介", - "icon": "spectrum:pedestal_basic_amethyst", - "category": "spectrum:general_category", - "sortnum": 0, - "pages": [ - { - "type": "patchouli:image", - "title": "欢迎æ¥åˆ°å…‰è°±ä¸–界ï¼", - "images": [ - "spectrum:textures/gui/manual/spectrum.png" - ], - "border": true, - "text": "光谱世界是全é¢åŒ…å«å¤šç§åŠŸèƒ½ï¼Œä¸»æ‰“é­”æ³•å’Œå†’é™©çš„æ¨¡ç»„ï¼" - }, - { - "type": "patchouli:text", - "text": "光谱世界是基于å‡è‰²æ··åˆç³»ç»Ÿ (CMYK)。å‡è‰²æ··åˆå°±æœ‰ç‚¹åƒä½ ç”»æ°´å½©ç”»æˆ–æ˜¯æ‰“å°æœºçš„色彩混åˆã€‚光谱世界中的基础颜色通过å®çŸ³çŸ¿èŽ·å–,å®çŸ³çŸ¿å¯ä»¥åœ¨é布世界的水晶洞穴中找到,比如香è‰ç´«æ°´æ™¶æä¾›å…‰è°±ä¸–界中的紫色。" - }, - { - "type": "patchouli:text", - "title": "å¾ªåºæ¸è¿›çš„任务系统", - "text": "å…‰è°±ä¸–ç•Œå¸¦æœ‰ä¸€ä¸ªå¾ªåºæ¸è¿›çš„任务系统,伴éšç€ä½ çš„è¿›å±•è§£é”æ–°çš„事物。$(br)当你深入研究,就会å‘现世界的å˜åŒ–ã€‚åªæœ‰ä½ èƒ½æ„Ÿå—到,$(br2)ä½ å­¦åˆ°çš„æ‰€æœ‰ä¸œè¥¿éƒ½å¸¦ä½ èµ°å‘æœ€ç»ˆç›®æ ‡ï¼šæ‰¾å‡ºåœ¨ä¸å¯åˆ°è¾¾çš„基岩层下,到底是什么在等待你。" - }, - { - "type": "patchouli:link", - "text": "ä¸çŸ¥é“如何开始?看看你的æˆå°±å§ï¼æˆå°±ä¼šç»™äºˆä½ è¯¸å¤šæç¤ºæ¥å¼•导你下一步该干什么。$(br2)$(br)光谱世界还在开å‘中。如果你é‡åˆ°ä¸€äº›bug或是有些建议, å¯ä»¥åœ¨å…‰è°±ä¸–界的Discord上è”系我或者帖在GitHub上。$(br2)玩的开心ï¼$(br) - DaFuqs", - "url": "https://discord.com/invite/EXU9XFXT8a", - "link_text": "光谱世界Discord" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/midnight_aberration.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/midnight_aberration.json deleted file mode 100644 index 7da637dcc6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/midnight_aberration.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "æœ€ä½³æ‹æ¡£ï¼Ÿ", - "icon": "spectrum:midnight_aberration", - "sortnum": 12, - "advancement": "spectrum:midgame/collect_neolith", - "category": "spectrum:general_category", - "turnin": "spectrum:midgame/create_midnight_aberration", - "extra_recipe_mappings": { - "spectrum:midnight_aberration": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "上次实验的最新å‘现让你越æ¥è¶Šæ±‚知若渴。试图榨å–ä½ çš„å®çŸ³ä¸­çš„æ‰€æœ‰èƒ½é‡ã€‚$(br2)黑曜能é‡ç²‰æ˜¯å…³é”®ï¼ä¸€å®šæ˜¯çš„ï¼å¦‚果你把你收集到的所有石头和它结åˆèµ·æ¥ï¼Œä¸€å®šä¼šåˆ›é€ å‡ºæ‹¥æœ‰ä¸å¯æ€è®®åŠ›é‡çš„ä¸œè¥¿ã€‚åªæœ‰ä½ ä¸”åªä¸ºä½ ï¼Œé¢œæ–™å¤§å¸ˆ! " - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "èžåˆé…æ–¹", - "recipe": "spectrum:fusion_shrine/midnight_aberration", - "text": "èžåˆæ‰€æœ‰è¿™äº›ç¥žå¥‡çš„能é‡ä¸€å®šä¼šäº§ç”Ÿä¸€ç§ä¸å¯æ€è®®çš„能é‡ã€‚$(br2)需è¦ç™½å¤©å’Œæ™´æœ—的天空。" - }, - { - "type": "patchouli:spotlight", - "item": "spectrum:midnight_aberration", - "advancement": "spectrum:midgame/create_midnight_aberration", - "title": "åˆå¤œç•¸å˜", - "text": "$(italic)è¿™ç§ä»¤äººæ†Žæ¶çš„å®çŸ³æ•£å‘å‡ºä¸€ç§æ€ªå¼‚的光环。$()$(br2)å®ƒçœ‹èµ·æ¥æ˜¯æ¾æ•£çš„连接。难怪它在你手里很快就会散架。太失败了。" - }, - { - "type": "patchouli:text", - "advancement": "spectrum:midgame/create_midnight_aberration", - "text": "虽然éšä¹‹è€Œæ¥çš„æ··ä¹±$(italic)肯定$()䏿˜¯ä½ æ‰€æ¸´æœ›çš„结果,但结果ä»ç„¶å…·æœ‰å·¨å¤§çš„力é‡ã€‚$(br)事实上,如果ä¸é©¬ä¸Šä½¿ç”¨ï¼Œå®ƒå°±ä¼šå˜æˆç°å°˜ã€‚$(br2)ç„¶åŽåœ¨è¿™ä¸ªè¿‡ç¨‹ä¸­å‡ºçŽ°äº†å¸¦æœ‰è…蚀性的黑色液体。因为它的颜色,你把它命å为$(l:magical_blocks/midnight_solution)åˆå¤œæº¶æ¶²$(/l)。" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/onyx_shards.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/onyx_shards.json deleted file mode 100644 index 1e6e38d4b8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/onyx_shards.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "制作缟玛瑙碎片", - "icon": "spectrum:onyx_shard", - "sortnum": 10, - "advancement": "spectrum:collect_all_basic_pigments_besides_brown", - "category": "spectrum:general_category", - "turnin": "spectrum:create_onyx_shard", - "extra_recipe_mappings": { - "spectrum:onyx_shard": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "“为了混åˆå‡ºæ£•色颜料,你需è¦ä½¿æ©˜è‰²é¢œæ–™å˜æš—一些。â€$(br)你忽然想到。想想也是蛮符åˆé€»è¾‘的,你找到的三ç§å®çŸ³ä»£è¡¨äº†é¢œè‰²æ··åˆç†è®ºä¸­çš„三ç§åŸºæœ¬é¢œè‰²ã€‚$(br)把三ç§é¢œè‰²å…¨éƒ¨æ··åˆèµ·æ¥å°±å¯ä»¥åˆ¶é€ å‡ºä¸€ç§è¶…级黑的碎片,看起æ¥éƒ½æœ‰ç‚¹ä¸çœŸå®žã€‚" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "èžåˆé…æ–¹", - "recipe": "spectrum:fusion_shrine/onyx_shard", - "text": "为了在$(l:general/fusion_shrine)èžåˆç¥žé¾›$()åšå‡ºâ€œæœ€é»‘的黑â€ï¼Œæ™¶ä½“ä¸èƒ½æŽ¥å—åŠç‚¹å…‰ç…§ã€‚所以新月的åˆå¤œæ˜¯æœ€å¥½çš„æ—¶å€™ï¼Œè®°å¾—éšèº«å¸¦ä¸ªé’Ÿã€‚" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal.json deleted file mode 100644 index 14b555d2bc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "七彩基座", - "icon": "spectrum:pedestal_basic_amethyst", - "category": "spectrum:general_category", - "sortnum": 2, - "turnin": "spectrum:place_pedestal", - "extra_recipe_mappings": { - "spectrum:pedestal_basic_amethyst": 0, - "spectrum:pedestal_basic_topaz": 0, - "spectrum:pedestal_basic_citrine": 0 - }, - "pages": [ - { - "type": "patchouli:crafting", - "title": "七彩基座", - "recipe": "spectrum:crafting_table/pedestal_basic_amethyst", - "text": "å…‰è°±ä¸–ç•Œä¸­ï¼Œå¤§å¤šæ•°é…æ–¹åœ¨$(bold)七彩基座$()ä¸Šåˆæˆã€‚$(br2)在其上è¦ä¹ˆå•¥éƒ½æ²¡æœ‰ï¼Œè¦ä¹ˆæ˜¯é…æ–¹ã€‚å¼€å§‹åˆæˆä¹‹å‰å…ˆè¾“入一个红石信å·ã€‚" - }, - { - "type": "patchouli:text", - "text": "å¤§å¤šé…æ–¹éœ€è¦$(l:general/gemstone_powder)å®çŸ³ç²‰æœ«$()。$(br2)基座本身也å¯ä»¥ä½œä¸ºä¸€ä¸ªæ™®é€šçš„åˆæˆå°ç”¨æ¥åˆæˆåŽŸç‰ˆçš„ç‰©å“。$(br2)ä½ å¯ä»¥ä½¿ç”¨$(l:magical_items/crafting_tablet)åˆæˆæ¨¡æ¿$() æ¥è‡ªåŠ¨åˆæˆå…‰è°±ä¸–界的物å“和普通物å“。" - }, - { - "type": "patchouli:text", - "title": "å˜ç§", - "text": "七彩基座å¯ä»¥ç”¨ä¸åŒçš„å®çŸ³çŸ¿çŸ³æ¥åˆ¶ä½œï¼Œ$(br2)ä¸åŒçš„å®çŸ³çŸ¿åˆæˆçš„七彩基座看起æ¥ä¸ä¸€æ ·ä½†æ˜¯åŠŸèƒ½æ˜¯ä¸€æ ·çš„ã€‚" - }, - { - "type": "patchouli:crafting", - "title": "åˆæˆé…æ–¹", - "recipe": "spectrum:crafting_table/pedestal_basic_topaz", - "recipe2": "spectrum:crafting_table/pedestal_basic_citrine" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_cmy.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_cmy.json deleted file mode 100644 index b040be4fc2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_cmy.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "基座CMYå‡çº§", - "icon": "spectrum:pedestal_all_basic", - "sortnum": 8, - "advancement": "spectrum:progression/unlock_cmy_pedestal", - "category": "spectrum:general_category", - "turnin": "spectrum:build_basic_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_all_basic": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "CMY å˜ç§", - "recipe": "spectrum:pedestal/tier1/pedestal_all_basic", - "text": "用所有你在冒险中收集到的å®çŸ³ç¢Žç‰‡å‡çº§ $(l:general/pedestal)七彩基座$()。" - }, - { - "type": "patchouli:text", - "title": "基座结构", - "text": "为了使用 $(l:general/pedestal)七彩基座$() 的高级功能, 你需è¦ä¸€ç§ç»“æž„æ¥å§å®çŸ³çŸ¿çš„能é‡èšç„¦åˆ°ä¸ƒå½©åŸºåº§ã€‚$(br2)ä½ å¯ä»¥å«å®ƒ$(br)$(bold)光谱èšç„¦$()。" - }, - { - "type": "patchouli:multiblock", - "name": "光谱èšç„¦", - "multiblock_id": "spectrum:pedestal_simple_structure_check", - "enable_visualize": true, - "text": "å¯ä»¥äº’æ¢çŽ„æ­¦å²©å—与方解石或者把任æ„类型的å®çŸ³çŸ¿å—å˜ä¸ºå…¶ä»–å®çŸ³çŸ¿å—。" - }, - { - "type": "patchouli:text", - "title": "æ–¹å—æ£€æŸ¥å•", - "text": "$(li)1 七彩基座$(li)4 磨制å®çŸ³çŸ¿æ–¹å—$(li)4 錾制磨制方å—$(li)4 缺å£ç£¨åˆ¶æ–¹å—$(li)8 磨制柱å­$(li)68 磨制方å—" - }, - { - "type": "patchouli:image", - "title": "个性化ï¼", - "images": [ - "spectrum:textures/gui/manual/spectrum_focus_customisation.png" - ], - "text": "æ··åˆçŽ„æ­¦å²©å’Œæ–¹è§£çŸ³æ¥åˆ¶é€ ä½ è‡ªå·±çš„å˜ç§ï¼" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_moonstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_moonstone.json deleted file mode 100644 index 64af506d82..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_moonstone.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "基座月长石å‡çº§", - "icon": "spectrum:pedestal_moonstone", - "sortnum": 13, - "advancement": "spectrum:lategame/spectrum_lategame", - "category": "spectrum:general_category", - "turnin": "spectrum:lategame/build_complex_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_moonstone": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "月长石å˜ç§", - "recipe": "spectrum:pedestal/tier3/pedestal_moonstone", - "text": "用你手机的$(l:general/shards#moonstone)月长石碎片$()å‡çº§ä½ çš„$(l:general/pedestal)七彩基座$()。" - }, - { - "type": "patchouli:multiblock", - "name": "光谱宫殿", - "multiblock_id": "spectrum:pedestal_complex_structure_check", - "enable_visualize": true, - "text": "å¯ä»¥äº’æ¢çŽ„æ­¦å²©å—ä¸Žæ–¹è§£çŸ³æˆ–è€…æŠŠç´«æ°´æ™¶å˜æˆå…¶ä»–类型的å®çŸ³çŸ¿ã€‚" - }, - { - "type": "patchouli:text", - "title": "æ£€æŸ¥å• (完æˆ)", - "text": "$(li)1 七彩基座$(li)4 錾制缟玛瑙方å—$(li)4 éŒ¾åˆ¶ç¼ºå£æ–¹å—$(li)8 å®çŸ³ç¯$(li)4 錾制å®çŸ³æ–¹å—$(li)12 磨制å®çŸ³æ–¹å—$(li)16 CMY 錾制å®çŸ³æ–¹å—$(li)28 錾制月长石方å—$(li)36 磨制柱å­$(li)52 磨制冠饰$(li)144 磨制方å—" - }, - { - "type": "patchouli:text", - "title": "æ£€æŸ¥å• (å‡çº§)", - "text": "$(li)4 錾制缟玛瑙方å—$(li)4 磨制å®çŸ³æ–¹å—$(li)28 錾制月长石方å—$(li)36 磨制冠饰" - }, - { - "type": "patchouli:image", - "title": "个性化ï¼", - "images": [ - "spectrum:textures/gui/manual/spectrum_complex_customisation.png" - ], - "text": "æ··åˆå®ƒä»¬æ¥åˆ¶ä½œè‡ªå·±çš„å˜ç§ï¼" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_onyx.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_onyx.json deleted file mode 100644 index 9e2db7e9a4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pedestal_upgrade_onyx.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "基座缟玛瑙å‡çº§", - "icon": "spectrum:pedestal_onyx", - "sortnum": 11, - "advancement": "spectrum:create_onyx_shard", - "category": "spectrum:general_category", - "turnin": "spectrum:midgame/build_advanced_pedestal_structure", - "extra_recipe_mappings": { - "spectrum:pedestal_onyx": 0 - }, - "pages": [ - { - "type": "spectrum:pedestal_crafting", - "title": "缟玛瑙å˜ç§", - "recipe": "spectrum:pedestal/tier2/pedestal_onyx", - "text": "使用$(l:general/shards#onyx)缟玛瑙碎片$()æ¥å‡çº§ä½ çš„$(l:general/pedestal)七彩基座$()增加它魔法力é‡ã€‚" - }, - { - "type": "patchouli:multiblock", - "name": "光谱神庙", - "multiblock_id": "spectrum:pedestal_advanced_structure_check", - "enable_visualize": true, - "text": "å¯ä»¥äº’æ¢çŽ„æ­¦å²©å—ä¸Žæ–¹è§£çŸ³æˆ–è€…æŠŠç´«æ°´æ™¶å˜æˆå…¶ä»–类型的å®çŸ³çŸ¿ã€‚" - }, - { - "type": "patchouli:text", - "title": "æ£€æŸ¥å• (完整)", - "text": "$(li)1 七彩基座$(li)8 磨制å®çŸ³æ–¹å—$(li)8 å®çŸ³ç¯$(li)4 錾制磨制方å—$(li)16 錾制å®çŸ³æ–¹å—$(li)16 磨制冠饰$(li)4 ç£¨åˆ¶ç¼ºå£æ–¹å—$(li)36 磨制柱å­$(li)160 磨制方å—" - }, - { - "type": "patchouli:text", - "title": "æ£€æŸ¥å• (å‡çº§)", - "text": "$(li)4 磨制å®çŸ³æ–¹å—$(li)8 å®çŸ³ç¯$(li)16 錾制å®çŸ³æ–¹å—$(li)16 磨制冠饰$(li)28 磨制柱å­$(li)92 磨制方å—" - }, - { - "type": "patchouli:image", - "title": "个性化ï¼", - "images": [ - "spectrum:textures/gui/manual/spectrum_hall_customisation.png" - ], - "text": "æ··åˆå®ƒä»¬æ¥åˆ¶ä½œè‡ªå·±çš„å˜ç§ï¼" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pigment.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pigment.json deleted file mode 100644 index 7e76fe3818..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/pigment.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "name": "颜料", - "icon": "spectrum:magenta_pigment", - "sortnum": 7, - "advancement": "spectrum:collect_pigment", - "category": "spectrum:general_category", - "turnin": "spectrum:collect_all_basic_pigments_besides_brown", - "extra_recipe_mappings": { - "spectrum:black_pigment": 0, - "spectrum:blue_pigment": 0, - "spectrum:brown_pigment": 0, - "spectrum:cyan_pigment": 0, - "spectrum:gray_pigment": 0, - "spectrum:green_pigment": 0, - "spectrum:light_blue_pigment": 0, - "spectrum:light_gray_pigment": 0, - "spectrum:lime_pigment": 0, - "spectrum:magenta_pigment": 0, - "spectrum:orange_pigment": 0, - "spectrum:pink_pigment": 0, - "spectrum:purple_pigment": 0, - "spectrum:red_pigment": 0, - "spectrum:white_pigment": 0, - "spectrum:yellow_pigment": 0, - "spectrum:black_block": 0, - "spectrum:blue_block": 0, - "spectrum:brown_block": 0, - "spectrum:cyan_block": 0, - "spectrum:gray_block": 0, - "spectrum:green_block": 0, - "spectrum:light_blue_block": 0, - "spectrum:light_gray_block": 0, - "spectrum:lime_block": 0, - "spectrum:magenta_block": 0, - "spectrum:orange_block": 0, - "spectrum:pink_block": 0, - "spectrum:purple_block": 0, - "spectrum:red_block": 0, - "spectrum:white_block": 0, - "spectrum:yellow_block": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "终于ï¼ä½ å¯ä»¥ä»Ž$(l:general/colored_trees)七彩树$()的树å¶ä¸Šæ”¶é›†çº¯è‰²çš„颜料。$(br)用锄头å¯ä»¥å¾ˆå¿«çš„æ”¶é›†ã€‚$(br2)这些颜料由基本的元素组æˆï¼š$(bold)$(c_magenta)æ—¶é—´$()ã€$(bold)$(c_yellow)能é‡$() å’Œ $(bold)$(c_cyan)物质$() 等,æ¯ä¸ªéƒ½ä»£è¡¨äº†ç»„æˆå¤§è‡ªç„¶çš„元素。" - }, - { - "type": "patchouli:spotlight", - "anchor": "black", - "advancement": "spectrum:hidden/collect_pigment/collect_black_pigment", - "item": "spectrum:black_pigment", - "text": "è¿™åº”è¯¥æ˜¯ä½ ç»æ‰‹è¿‡æœ€é»‘çš„ç‰©è´¨äº†ã€‚çœ‹èµ·æ¥æœ‰ç‚¹ä¸å¤ªçœŸå®žã€‚$(br2)$(c_black)黑色$()代表了虚无的三部分: $(italic)虚空$(), $(italic)力é‡$() å’Œ $(italic)神秘$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "blue", - "advancement": "spectrum:hidden/collect_pigment/collect_blue_pigment", - "item": "spectrum:blue_pigment", - "text": "æ¡åœ¨æ‰‹ä¸­æ—¶å¸¦æ¥äº†å¼‚æ ·çš„å®‰å…¨æ„Ÿï¼Œä½†é‚£è‡ªç„¶æ˜¯å¹»è§‰ï¼Œå®ƒåªæ˜¯ä¸€ç§é¢œè‰²ç½¢äº†ã€‚但ä¾ç„¶...$(br2)$(c_blue)è“色$() 代表 $(italic)安定$() å’Œ $(italic)æ°¸æ’$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "brown", - "advancement": "spectrum:hidden/collect_pigment/collect_brown_pigment", - "item": "spectrum:brown_pigment", - "text": "è¿™ç§æ·±æ£•色使你渴望大自然。$(br2)$(c_brown)棕色$() 代表 $(italic)自然$() å’Œ $(italic)稳定$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "cyan", - "advancement": "spectrum:hidden/collect_pigment/collect_cyan_pigment", - "item": "spectrum:cyan_pigment", - "text": "它使你感å—到好åƒå在一座山顶,感å—世界无边无际的巨大。$(br2)$(c_cyan)è“绿色$() 代表 $(italic)物质$() å’Œ $(italic)完整$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "gray", - "advancement": "spectrum:hidden/collect_pigment/collect_gray_pigment", - "item": "spectrum:gray_pigment", - "text": "这颜色在你看æ¥å°±å¥½åƒæµ…ç°è‰²çš„哥哥打架没打过让æäº†ä¸€é¡¿ã€‚看到它就还挺难过的,但是ä¸çŸ¥é“为啥.$(br2)$(c_gray)ç°è‰²$() 代表 $(italic)消é€$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "green", - "advancement": "spectrum:hidden/collect_pigment/collect_green_pigment", - "item": "spectrum:green_pigment", - "text": "è¿™ç§é¢œæ–™æŸ”和的散å‘ç€å…¶ä¸­çš„平和。$(br2)$(c_green)绿色$() 代表 $(italic)平衡$() å’Œ $(italic)èžæ´½$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "light_blue", - "advancement": "spectrum:hidden/collect_pigment/collect_light_blue_pigment", - "item": "spectrum:light_blue_pigment", - "text": "看ç€è¿™ç§é¢œè‰²ï¼Œä½ æ„Ÿå—到了ä¹è§‚,å´ä¼´éšç€ç¦»åˆ«çš„æ‚²ä¼¤ã€‚$(br2)$(c_light_blue)æ·¡è“色$() 代表 $(italic)幸è¿$() å’Œ $(italic)å¹³é™$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "light_gray", - "advancement": "spectrum:hidden/collect_pigment/collect_light_gray_pigment", - "item": "spectrum:light_gray_pigment", - "text": "ä½ ç†Ÿæ‚‰è¿™ç§æ„Ÿè§‰ï¼Œé‚£æ˜¯ä½ é™å时看ç€çœ¼å‰çš„风景,感å—生命æµé€å´ä¸€åˆ‡å®‰å¥½çš„æ„Ÿè§‰ã€‚$(br2)$(c_light_gray)æ·¡ç°è‰²$() 代表 $(italic)改å˜$() å’Œ $(italic)安é™$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "lime", - "advancement": "spectrum:hidden/collect_pigment/collect_lime_pigment", - "item": "spectrum:lime_pigment", - "text": "多æ±çš„酸橙(Lime)闻起æ¥ä¹Ÿåƒæ˜¯æ¸©æš–çš„æ˜¥æ—¥æ—©æ™¨ï¼Œåˆæˆ–è®¸é‚£åªæ˜¯ä½ çš„æƒ³è±¡ï¼Ÿ$(br2)$(c_lime)淡黄绿色(Lime)$() 代表 $(italic)å¿«ä¹$() å’Œ $(italic)富饶$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "magenta", - "advancement": "spectrum:hidden/collect_pigment/collect_magenta_pigment", - "item": "spectrum:magenta_pigment", - "text": "柔和的å“红色会让你感到平é™å’Œæ»¡è¶³ï¼Œå†…心几乎毫无波澜。$(br2)$(c_magenta)å“红色$() 代表 $(italic)æ—¶é—´$(), $(italic)善良$() å’Œ $(italic)容å¿$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "orange", - "advancement": "spectrum:hidden/collect_pigment/collect_orange_pigment", - "item": "spectrum:orange_pigment", - "text": "橘色使你想起了秋天,让你感å—到å在å£ç‚‰å‰çš„æ‰¶æ‰‹æ¤…上的那ç§èˆ’适。$(br2)$(c_orange)橘色$() 代表 $(italic)温暖$() å’Œ $(italic)舒适$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "pink", - "advancement": "spectrum:hidden/collect_pigment/collect_pink_pigment", - "item": "spectrum:pink_pigment", - "text": "è¿™ç§æ˜Žäº®æ´»æ³¼ã€åƒæ˜¯æ£‰èŠ±ç³–ä¸€æ ·çš„ç²‰è‰²ä½¿ä½ å¿˜è®°çƒ¦æ¼ï¼Œç¬‘æ„盈盈。$(br2)$(c_pink)粉色$() 代表 $(italic)å¥åº·$() å’Œ $(italic)欣èµ$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "purple", - "advancement": "spectrum:hidden/collect_pigment/collect_purple_pigment", - "item": "spectrum:purple_pigment", - "text": "è¿™ç§é¢œè‰²ä½¿ä½ çš„æ€ç»´çµæ´»ã€‚它ä¸ä»…使你求知若渴,更带给你创造性的想法。$(br2)$(c_purple)紫色$() 代表 $(italic)智慧iu$() å’Œ $(italic)创造力$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "red", - "advancement": "spectrum:hidden/collect_pigment/collect_red_pigment", - "item": "spectrum:red_pigment", - "text": "你感到对于创造美的冲动和渴望。$(br2)$(c_red)红色$() 代表 $(italic)热情$() å’Œ $(italic)æ„志力$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "white", - "advancement": "spectrum:hidden/collect_pigment/collect_white_pigment", - "item": "spectrum:white_pigment", - "text": "è¿™ç§æ„Ÿè§‰å¾ˆéš¾ä¸€ä¸¤å¥è¯å°±è¯´æ¸…楚,这ç§é¢œæ–™æ•£å‘ç€ä¸å¯è¨€å–»çš„奇妙。$(br2)$(c_white)白色$() 代表 $(italic)生命$(),$(italic)å…‰$() å’Œ $(italic)纯净$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "yellow", - "advancement": "spectrum:hidden/collect_pigment/collect_yellow_pigment", - "item": "spectrum:yellow_pigment", - "text": "è¿™ç§é²œè‰³çš„黄色几乎都充满了能é‡ã€‚$(br2)$(c_yellow)黄色$() 代表 $(italic)能é‡$() å’Œ $(italic)ä¹è¶£$()。" - }, - { - "title": "染色方å—", - "type": "patchouli:crafting", - "recipe": "spectrum:crafting_table/pigment_storage_blocks/magenta_block", - "recipe2": "spectrum:crafting_table/pigment_storage_blocks/magenta_block_to_magenta_pigment" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/shards.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/shards.json deleted file mode 100644 index 1c5753d81c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/shards.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "å®çŸ³çŸ¿ç¢Žç‰‡", - "icon": "minecraft:amethyst_shard", - "sortnum": 1, - "category": "spectrum:general_category", - "turnin": "spectrum:collect_all_basic_shards", - "extra_recipe_mappings": { - "spectrum:topaz_shard": 0, - "minecraft:amethyst_shard": 0, - "spectrum:citrine_shard": 0, - "spectrum:onyx_shard": 0, - "spectrum:moonstone_shard": 0, - "spectrum:spectral_shard": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "text": "开始探索光谱世界之å‰ä½ éœ€è¦å…ˆæ‰¾åˆ°ä¸€äº›å®çŸ³çŸ¿ç¢Žç‰‡.$(br2)æ¯ç§å®çŸ³çŸ¿éƒ½ä»£è¡¨äº†ä¸€ç§é¢œè‰²å…ƒç´ å’Œä¸€ç§è‡ªç„¶åŠ›é‡ã€‚" - }, - { - "type": "patchouli:spotlight", - "anchor": "topaz", - "advancement": "spectrum:hidden/collect_shards/collect_topaz_shard", - "title": "黄玉碎片", - "item": "spectrum:topaz_shard", - "text": "手æ¡é»„玉碎片,它比你想象的è¦é‡ã€‚ä¹ä¸€çœ‹å¾ˆè„†å¼±ï¼Œä½†å¾ˆå¿«å°±èƒ½å‘现它是一ç§å¾ˆåšå›ºçš„ææ–™ï¼Œåœ¨çŽ°æœ‰çš„ç‰©è´¨ä¸­ï¼Œä¹Ÿè®¸åªæœ‰é’»çŸ³èƒ½è¶…过它。你å¯ä»¥åœ¨åœ¨é™¡å³­çš„山顶或是高耸的山峰的晶洞中上找到黄玉.$(br)黄玉代表 $(bold)$(c_cyan)物质$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "amethyst", - "advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard", - "title": "紫水晶碎片", - "item": "minecraft:amethyst_shard", - "text": "能在这ç§ç¢Žç‰‡ä¸Šçœ‹åˆ°å“红色的å射光。$(br)在晶洞中形æˆäº†äº¿ä¸‡å¹´çš„å®çŸ³çŸ¿ï¼Œæ•£å‘ç€ä»¤äººç•惧的光芒。它是永æ’的象å¾ï¼Œå­˜åœ¨äºŽä¸–界的最深层。$(br2)紫水晶代表 $(bold)$(c_purple)æ—¶é—´$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "citrine", - "advancement": "spectrum:hidden/collect_shards/collect_citrine_shard", - "title": "黄水晶碎片", - "item": "spectrum:citrine_shard", - "text": "è¿™ç§é»„色的å®çŸ³çŸ¿å¯ä»¥åœ¨èƒ½å¤Ÿè¢«å¤ªé˜³å¸¦åŽ»æ¸©æš–çš„åœ°è¡¨é™„è¿‘å‘现.$(br2)其明亮的黄色光泽散å‘纯净的$(bold)$(c_yellow)能é‡$()并使其摸起æ¥å¾ˆæ¸©æš–" - }, - { - "type": "patchouli:spotlight", - "anchor": "onyx", - "advancement": "spectrum:create_onyx_shard", - "title": "缟玛瑙碎片", - "item": "spectrum:onyx_shard", - "text": "ç¼ŸçŽ›ç‘™å‡ ä¹Žæ˜¯æ¼†é»‘ä¸€ç‰‡ï¼Œå®ƒä¼¼ä¹Žç”šè‡³ä¼šæŠŠå‘¨å›´çš„å…‰éƒ½å¸æ”¶æŽ‰ã€‚$(br2)缟玛瑙是能é‡ï¼Œç‰©è´¨ï¼Œå’Œæ—¶é—´çš„组åˆ, 作为魔法工具和设施的$(bold)$(c_black)强化èšç„¦å’Œå‚¬åŒ–剂$()。" - }, - { - "type": "patchouli:spotlight", - "anchor": "moonstone", - "advancement": "spectrum:midgame/collect_moonstone_shard", - "title": "月长石碎片", - "item": "spectrum:moonstone_shard", - "text": "它那è“白色的微光使你想起平é™å¤å¤œçš„æœˆå…‰ã€‚它散å‘出的å®é™ç»™äººç•™ä¸‹äº†ä¸€ç§å¹³é™è€Œåˆé‡è¦çš„å°è±¡ï¼Œå°±åƒä¸€åªæ²‰ç¡çš„猫——çµé­‚çš„å®‰æŠšå‰‚ï¼ŒåŒæ—¶åˆæ˜¯ä¸€ä¸ªæ—¶åˆ»è­¦æƒ•çš„æ•食者。$(br2)月长石代表 $(bold)$(c_white)纯魔法$()." - }, - { - "type": "patchouli:spotlight", - "anchor": "spectral", - "advancement": "spectrum:lategame/create_spectral_shard", - "title": "光谱碎片", - "item": "spectrum:spectral_shard", - "text": "光谱碎片在彩虹的所有颜色中闪耀。" - } - ] -} diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/spectral_shard.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/spectral_shard.json deleted file mode 100644 index bf1624eb9b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/general/spectral_shard.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "光谱碎片", - "advancement": "spectrum:lategame/spectrum_lategame", - "sortnum": 15, - "icon": "spectrum:spectral_shard", - "category": "spectrum:general_category", - "turnin": "spectrum:lategame/create_spectral_shard", - "extra_recipe_mappings": { - "spectrum:spectral_shard": 0, - "spectrum:spectral_shard_block": 0, - "spectrum:spectral_shard_storage_block": 0 - }, - "pages": [ - { - "type": "patchouli:text", - "title": "光谱碎片", - "text": "TODO" - }, - { - "type": "spectrum:fusion_shrine_crafting", - "title": "èžåˆé…æ–¹", - "recipe": "spectrum:fusion_shrine/spectral_shard", - "text": "TODO" - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:lategame/create_spectral_shard", - "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_block", - "text": "$(italic)棒æžäº†!$()" - }, - { - "type": "spectrum:pedestal_crafting", - "advancement": "spectrum:lategame/create_spectral_shard", - "recipe": "spectrum:pedestal/tier1/compacting/spectral_shard_storage_block", - "text": "$(italic)ä½ æ˜¯ä¸æ˜¯è§‰å¾—下届åˆé‡‘信标有点过分?$()" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/amethyst.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/amethyst.json deleted file mode 100644 index a353ac6b0c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/amethyst.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:hidden/collect_shards/collect_amethyst_shard", - "cost":"spectrum:citrine_shard#16", - "text":"在地下深处å¯ä»¥å‘现一ç§ç±»åž‹çš„æ™¶æ´žã€‚", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - } - ], - "advancement":"spectrum:spectrum", - "read_by_default":true, - "name":"å®çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:hidden/collect_shards/collect_amethyst_shard", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/azurite.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/azurite.json deleted file mode 100644 index 0f692de987..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/azurite.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:midgame/collect_azurite", - "cost":"spectrum:neolith#8", - "text":"在所有生物群è½çš„超世界中都会å‘çŽ°ä¸€ç§æ–°çš„矿石。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"spectrum:neolith#24", - "text":"è¿™ç§ä¸°å¯Œçš„è“色矿石在地表深处生æˆï¼Œç›¸å½“罕è§ã€‚", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/reveal_azurite", - "read_by_default":true, - "name":"ä¸€ç§æ–°çŸ¿çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:midgame/collect_azurite", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/citrine.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/citrine.json deleted file mode 100644 index 6ad5385ebc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/citrine.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:hidden/collect_shards/collect_citrine_shard", - "cost":"spectrum:topaz_shard#16", - "text":"在地表附近通常会å‘现一ç§ç±»åž‹çš„æ™¶æ´žã€‚ä½ å¯èƒ½ä¼šå‘现它最常暴露在湖泊或沟壑中。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - } - ], - "advancement":"spectrum:spectrum", - "read_by_default":true, - "name":"å®çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:hidden/collect_shards/collect_citrine_shard", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/clover.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/clover.json deleted file mode 100644 index 23510bc477..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/clover.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:collect_four_leaf_clover", - "cost":"spectrum:vegetal#16", - "text":"寻找平原生物群è½ã€‚也许你会幸è¿ï¼", - "type":"spectrum:hint", - "title":"去哪里看" - }, - { - "cost":"spectrum:vegetal#48", - "text":"平原生物群è½ä¸­ç”Ÿé•¿ç€ä¸‰å¶è‰ã€‚ä½ å¯ä»¥ç«‹å³æ³¨æ„到一个四å¶ä¸‰å¶è‰åœ¨å…¶æ–¹å—的形å¼å·²ç»ã€‚ç ´å以收集,使用骨粉将其传播。", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:midgame/build_enchanting_structure", - "read_by_default":true, - "name":"新资æº", - "icon":"minecraft:writable_book", - "turnin":"spectrum:collect_four_leaf_clover", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/fading.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/fading.json deleted file mode 100644 index 912531fe20..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/fading.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:collect_vegetal", - "cost":"spectrum:sparklestone_gem#16", - "text":"消é€ä½œä¸ºä¸€ç§å¼±å°çš„生物体,åªèƒ½å¤„ç†æ”¾ç½®åœ¨å…¶æ—边的有机å—ï¼ŒåŒæ—¶ä¹Ÿéœ€è¦ç›¸å½“长的时间。", - "type":"spectrum:hint", - "title":"å°çº¿ç´¢" - }, - { - "cost":"spectrum:sparklestone_gem#48", - "text":"å°†å¶å­ã€å—ç“œæˆ–è¥¿ç“œç­‰æœ‰æœºå—æ”¾åœ¨æ—边,等待片刻。一段时间åŽï¼Œæ–¹å—将被消耗并替æ¢ä¸ºå¤–è§‚ä¸åŒçš„å˜ä½“。分解那些转æ¢çš„å—ä»¥èŽ·å–æ–°èµ„æºã€‚", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:craft_bottle_of_fading", - "read_by_default":true, - "name":"实验#1", - "icon":"minecraft:writable_book", - "turnin":"spectrum:collect_vegetal", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/failing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/failing.json deleted file mode 100644 index 6b1e389271..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/failing.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:midgame/collect_neolith", - "cost":"spectrum:scarlet_fragments#8", - "text":"å°±åƒè¤ªè‰²ä¸€æ ·ï¼Œä»–们更喜欢放在æ—边的特定方å—。ä¸è¿‡ï¼Œè¿™æ¬¡è¦å¼ºå¤§å¾—多。â€ç¡®åˆ‡åœ°è¯´ï¼Œæˆ‘讨厌挖掘这ç§â€œå¼ºå¤§â€ã€‚", - "type":"spectrum:hint", - "title":"å°çº¿ç´¢" - }, - { - "cost":"spectrum:scarlet_fragments#24", - "text":"最喜欢的食物是黑曜石。ä¸è¿‡ï¼Œè¦æé˜²ä»–们的贪得无厌。如果有机会,他们会åƒå¾ˆå¤šã€‚。。", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:midgame/craft_bottle_of_failing", - "read_by_default":true, - "name":"实验#2", - "icon":"minecraft:writable_book", - "turnin":"spectrum:midgame/collect_neolith", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/lightning_stones.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/lightning_stones.json deleted file mode 100644 index dac1c32ea9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/lightning_stones.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:midgame/collect_lightning_stone", - "cost":"spectrum:neolith#8", - "text":"雷雨是大自然的有力展示。有巨大的能é‡åœ¨å‘挥。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"spectrum:neolith#24", - "text":"有时你å¯ä»¥åœ¨é—ªç”µå‡»ä¸­çš„åœ°æ–¹æ‰¾åˆ°å¥‡æ€ªçš„ç¢Žç‰‡ã€‚ç”šè‡³æœ‰ä¸€ç§æ–¹æ³•å¯ä»¥å°†é—ªç”µèšç„¦åœ¨ç‰¹å®šä½ç½®ï¼Œä½¿æ”¶é›†å®ƒä»¬æ›´åŠ æœ‰æ•ˆã€‚", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/reveal_lightning_stones", - "read_by_default":true, - "name":"新资æº", - "icon":"minecraft:writable_book", - "turnin":"spectrum:midgame/collect_lightning_stone", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/mermaids_gems.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/mermaids_gems.json deleted file mode 100644 index 9496b88e35..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/mermaids_gems.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:collect_mermaids_gem", - "cost":"spectrum:onyx_shard#4", - "text":"有时在海洋中会å‘现闪闪å‘光的å®çŸ³ï¼Œæ¼‚浮在水é¢ä¸Šï¼Œè¢«æµ·æµªæ¥å›žæ‘‡æ™ƒã€‚如果你花一些时间在附近或在海洋中,你å¯èƒ½ä¼šå‘现一个自己ï¼", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"spectrum:onyx_shard#12", - "text":"æºæ˜¯ä¸€ç§å¨‡å«©çš„花,生长在海底,æˆç¾¤ç»“é˜Ÿã€‚è¿™ç§æ¤ç‰©ä¼šå‘出微弱的辉光,如果你戴上活跃的辉光乌贼头盔,它也会å‘光。在它æ—边等待,直到它完全长大,释放出å®è´µçš„å®è—并收集起æ¥ã€‚", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:midgame/build_advanced_pedestal_structure", - "read_by_default":true, - "name":"新资æº", - "icon":"minecraft:writable_book", - "turnin":"spectrum:collect_mermaids_gem", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/paletur.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/paletur.json deleted file mode 100644 index cbc79eea4e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/paletur.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:lategame/collect_paletur", - "cost":"spectrum:moonstone_shard#8", - "text":"最åŽå‘现了一个新的绿æ¾çŸ³çŸ¿ã€‚", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"spectrum:moonstone_shard#32", - "text":"你现在能够感知到的矿石正在中心岛和末端的外部区域生æˆã€‚抓ä½å®ƒï¼Œå¦åˆ™å°±å¤ªæ™šäº†ï¼", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/reveal_paletur", - "read_by_default":true, - "name":"ä¸€ç§æ–°çŸ¿çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:lategame/collect_paletur", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/quitoxic_reeds.json deleted file mode 100644 index 413ddc9ef4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/quitoxic_reeds.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:collect_quitoxic_reeds", - "cost":"minecraft:clay_ball#16", - "text":"是时候在水é¢ä¸ŠæŽ¢é™©äº†ã€‚å‚观沼泽ï¼", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"minecraft:clay_ball#48", - "text":"在沼泽地里,人们看到了长在粘土片上的奇怪æ¤ç‰©ã€‚它们生长得更高,周围有更多的粘土,并在这个过程中消耗这些粘土。", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/reveal_quitoxic_reeds", - "read_by_default":true, - "name":"新资æº", - "icon":"minecraft:writable_book", - "turnin":"spectrum:collect_quitoxic_reeds", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/resonating_ender.json deleted file mode 100644 index 3173afa409..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/resonating_ender.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:get_ender_treasure", - "cost":"minecraft:ender_pearl#4", - "text":"并䏿˜¯æœ«å½±äººæºå¸¦çš„æ¯ä¸€ä¸ªæ–¹å—看起æ¥éƒ½æ˜¯ç¬¬ä¸€çœ¼çœ‹åˆ°çš„æ ·å­ã€‚", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"minecraft:ender_pearl#12", - "text":"一些末影人出现在超世界中,æºå¸¦çš„石å—很å¯èƒ½æ˜¯æœ«æ—¥æœ¬èº«çš„å°é—迹。你å¯ä»¥é€šè¿‡æ€æ­»ä¸€ä¸ªæœ«å½±äººæ¥æŠ“ä½å®ƒï¼Œè€Œå®ƒæºå¸¦ç€åƒé¹…åµçŸ³ä¸€æ ·çš„东西。最终也å¯ä»¥æ‰¾åˆ°æŒæœ‰è¿™äº›æ–¹å—çš„æœ«å½±äººï¼Œå°½ç®¡è¿™ç§æƒ…况较为罕è§ã€‚", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:midgame/build_advanced_pedestal_structure", - "read_by_default":true, - "name":"新资æº", - "icon":"minecraft:writable_book", - "turnin":"spectrum:get_ender_treasure", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/ruin.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/ruin.json deleted file mode 100644 index 523ac83546..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/ruin.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:midgame/break_decayed_bedrock", - "cost":"spectrum:brown_pigment#8", - "text":"è¿™ç§è¢«ç§°ä¸ºæ¯ç­çš„ç»å¯¹ä¾µç•¥æ€§å˜ä½“èƒ½å¤Ÿæ¶ˆè€—æœ€å…·æŠµæŠ—åŠ›çš„ææ–™ã€‚å³ä½¿æ˜¯é‚£äº›å¯¹ä½ æ¥è¯´å¤ªé𾿉“破的。", - "type":"spectrum:hint", - "title":"å°çº¿ç´¢" - }, - { - "cost":"spectrum:brown_pigment#24", - "text":"还有什么比牢ä¸å¯ç ´çš„基岩本身更具抵抗力?如果出了什么问题,最好有一个åŽå¤‡è®¡åˆ’。", - "type":"spectrum:hint", - "title":"警告" - } - ], - "advancement":"spectrum:midgame/craft_bottle_of_ruin", - "read_by_default":true, - "name":"实验#3", - "icon":"minecraft:writable_book", - "turnin":"spectrum:midgame/break_decayed_bedrock", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/ruins.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/ruins.json deleted file mode 100644 index 591b8e60f4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/ruins.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:generate_ancient_ruins_loot", - "cost":"spectrum:refined_azurite#4", - "text":"在任何生物群è½çš„超世界深处都éšè—ç€æ— æ³•ç©¿é€çš„结构。它们似乎是用一å—牢ä¸å¯ç ´çš„石头建造的。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "completion_advancement":"spectrum:generate_ancient_ruins_loot", - "cost":"spectrum:refined_azurite#12", - "advancement":"spectrum:find_ancient_ruins", - "text":"å…¥å£ä¼¼ä¹Žè¢«ä¸€ä¸ªå¼ºå¤§çš„力场堵ä½äº†ã€‚然而,无论是è°å»ºé€ äº†è¿™äº›å»ºç­‘,都会给你留下线索ï¼åŠ›åœºä¸¤ä¾§çš„çº¢å¿ƒä¼¼ä¹Žè¡¨æ˜Žä½ å¿…é¡»æ¿€æ´»è”šè“防御。", - "type":"spectrum:hint", - "title":"å…¥å£" - } - ], - "advancement":"spectrum:midgame/get_azure_dike_charge", - "read_by_default":true, - "name":"结构", - "icon":"minecraft:writable_book", - "turnin":"spectrum:generate_ancient_ruins_loot", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/scarlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/scarlet.json deleted file mode 100644 index be820ad511..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/scarlet.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:midgame/collect_scarlet", - "cost":"minecraft:quartz#16", - "text":"在地下å‘现了一个新的矿石。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"minecraft:quartz#48", - "text":"它产生于熔岩层以下的所有生物群è½çš„底层。", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/reveal_scarlet", - "read_by_default":true, - "name":"ä¸€ç§æ–°çŸ¿çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:midgame/collect_scarlet", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/shimmerstone.json deleted file mode 100644 index 837ed73fb0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/shimmerstone.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:collect_sparklestone", - "cost":"minecraft:copper_ingot#8", - "text":"在地表和地表以上的超世界中å‘çŽ°äº†ä¸€ç§æ–°çš„矿石。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - }, - { - "cost":"minecraft:copper_ingot#24", - "text":"它在所有生物群è½çš„中心和上层的超世界大é™è„‰ç”Ÿæˆã€‚通常你会å‘现它暴露在山里。", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/reveal_sparklestone", - "read_by_default":true, - "name":"ä¸€ç§æ–°çŸ¿çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:collect_sparklestone", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/stargazing.json deleted file mode 100644 index 561e549f9b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/stargazing.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:collect_shooting_star", - "cost":"spectrum:sparklestone_gem#8", - "text":"æµæ˜Ÿåªåœ¨æ™šä¸Šå‡ºçŽ°ã€‚å‡†å¤‡ä¸€äº›ä¸œè¥¿ï¼Œä»¥ä¾¿åœ¨é»‘æš—ä¸­æ›´å¥½åœ°çœ‹åˆ°ä»–ä»¬ï¼Œè‚¯å®šä¼šæœ‰å¾ˆå¤§å¸®åŠ©ã€‚å®ƒä»¬ä¼šå‡ºçŽ°æ˜Žæ˜¾çš„ç²’å­è½¨è¿¹ã€‚", - "type":"spectrum:hint", - "title":"寻找什么" - }, - { - "cost":"spectrum:sparklestone_gem#24", - "text":"ä½ çœ‹åˆ°æµæ˜Ÿçš„æœ€å¥½æœºä¼šæ˜¯ç”¨å¤œè§†ä»ªå’Œé…备的望远镜æœç´¢å®ƒã€‚如果你看到一个å è½åœ¨åœ°çƒä¸Šï¼Œè¯•ç€è¿½è¸ªå®ƒçš„足迹,找出它é™è½çš„地方。它们åƒå…‰æŸä¸€æ ·å°„出粒å­ã€‚", - "type":"spectrum:hint", - "title":"简明说明" - } - ], - "advancement":"spectrum:milestones/unlock_shooting_stars", - "read_by_default":true, - "name":"新资æº", - "icon":"minecraft:writable_book", - "turnin":"spectrum:collect_shooting_star", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/topaz.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/topaz.json deleted file mode 100644 index e50f212f2c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/hints/topaz.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "completion_advancement":"spectrum:hidden/collect_shards/collect_topaz_shard", - "cost":"minecraft:amethyst_shard#16", - "text":"è¿™ç§ç±»åž‹çš„æ™¶æ´žä½äºŽå¾ˆé«˜çš„地方,通常ä½äºŽä¸˜é™µå’Œå¤©é«˜çš„山脉顶部。", - "type":"spectrum:hint", - "title":"在哪里å¯ä»¥æ‰¾åˆ°" - } - ], - "advancement":"spectrum:spectrum", - "read_by_default":true, - "name":"å®çŸ³", - "icon":"minecraft:writable_book", - "turnin":"spectrum:hidden/collect_shards/collect_topaz_shard", - "secret":true, - "category":"spectrum:hints_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/artists_palette.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/artists_palette.json deleted file mode 100644 index 47f9c90eb5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/artists_palette.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"艺术家调色æ¿å°†$(l:magic/pigment_palette)颜料调色æ¿$(/l)的储墨能力与$(l:magic/color_picker)颜色选择器$(/l)的混åˆèƒ½åŠ›ç›¸ç»“åˆã€‚$(br)它直接存储元素墨水,并根æ®éœ€è¦æ··åˆå…¶ä»–å¢¨æ°´ï¼ŒåŒæ—¶å®¹é‡å¤§å¤§å¢žåŠ ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/artists_palette", - "text":"", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_artists_palette", - "extra_recipe_mappings":{ - "spectrum:artists_palette":0 - }, - "name":"艺术家调色æ¿", - "icon":"spectrum:artists_palette", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/catkin.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/catkin.json deleted file mode 100644 index d08d2fea38..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/catkin.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:vibrant_cyan_catkin", - "text":"待办事项", - "type":"patchouli:spotlight" - }, - { - "text":"待办事项", - "type":"patchouli:text", - "title":"逿˜ŽæŸ³çµ®" - } - ], - "advancement":"spectrum:progression/__grow_ominous_sapling", - "extra_recipe_mappings":{ - "spectrum:lucid_yellow_catkin":0, - "spectrum:lucid_white_catkin":0, - "spectrum:lucid_magenta_catkin":0, - "spectrum:vibrant_cyan_catkin":0, - "spectrum:vibrant_black_catkin":0, - "spectrum:vibrant_yellow_catkin":0, - "spectrum:lucid_cyan_catkin":0, - "spectrum:vibrant_magenta_catkin":0, - "spectrum:vibrant_white_catkin":0, - "spectrum:lucid_black_catkin":0 - }, - "name":"柳絮", - "icon":"spectrum:vibrant_cyan_catkin", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/color_picker.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/color_picker.json deleted file mode 100644 index aa74413316..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/color_picker.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"将颜料$(l:general/pigment)转化为纯墨水$(/l)。$(br)用于填充储存墨水的物å“,如$(l:magic/ink_flask)墨水瓶$()。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/color_picker", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_color_picker", - "name":"颜色选择器", - "icon":"spectrum:color_picker", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/crystal_apothecary.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/crystal_apothecary.json deleted file mode 100644 index 5dd5b1dabb..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/crystal_apothecary.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"放置在$(l:resources/geodes)æ™¶æ´ž$(/l)中,自动采集完全生长的å®çŸ³ç°‡ã€‚$(br2)通常情况下,当你ä¸åœ¨æ—¶ï¼Œä½ æ‰€æœ‰çš„其他构造甚至作物都会在时间上冻结,但å³ä½¿åœ¨é‚£æ—¶ï¼Œè¿™ä¸ªæž„造似乎ä»åœ¨ç»§ç»­å·¥ä½œã€‚奇怪的", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/crystal_apothecary", - "text":"虽然它ä¸å¦‚ç”¨ç¨¿å­æ‰“碎集群那么有效,但它的易用性肯定会派上用场。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_crystal_apothecary", - "extra_recipe_mappings":{ - "spectrum:crystal_apothecary":0 - }, - "name":"æ°´æ™¶è¯å‰‚师", - "icon":"spectrum:crystal_apothecary", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink.json deleted file mode 100644 index c56810cc59..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"既然你已ç»ç†Ÿæ‚‰äº†é¢œæ–™ï¼Œä½ å°±æ²¡æœ‰ç†ç”±åƒä¸­ä¸–纪那样拖ç€å®ƒåˆ°å¤„èµ°äº†ã€‚ä½ å·²ç»æ‰¾åˆ°äº†ä¸€ç§å°†è‰²ç´ è½¬åŒ–为更高形å¼èƒ½é‡çš„æ–¹æ³•。$(br)ä½ å«$(c_cyan)它$(c_magenta)墨$(c_yellow)水。$()", - "type":"patchouli:text" - }, - { - "text":"颜料å¯ä»¥ä½¿ç”¨$(l:magic/color_picker)颜色选择器$(/l)转æ¢ä¸ºå¢¨æ°´ï¼Œç„¶åŽæå–到容器中,如$(l:magic/ink_flask)墨水瓶$(/l)。$(br2)唯一的缺点是:失去了它的物ç†å½¢æ€ï¼Œå°±æ²¡æœ‰åŠžæ³•å°†å¢¨æ°´è½¬åŒ–å›žé¢œæ–™ã€‚", - "type":"patchouli:text", - "title":"生产和储存" - } - ], - "advancement":"spectrum:progression/unlock_ink_flask", - "name":"墨水", - "icon":"spectrum:ink_flask", - "category":"spectrum:magic_category", - "priority":true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_assortment.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_assortment.json deleted file mode 100644 index 1f424fc259..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_assortment.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"这些å°ç“¶å­å¯ä»¥å‚¨å­˜å„ç§å¢¨æ°´ï¼Œå°½ç®¡åªæ˜¯å°‘é‡å¢¨æ°´ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/ink_assortment", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ink_assortment", - "extra_recipe_mappings":{ - "spectrum:ink_assortment":0 - }, - "name":"油墨ç§ç±»", - "icon":"spectrum:ink_assortment", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_duct.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_duct.json deleted file mode 100644 index 289fae4a9f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_duct.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"用于将颜料能é‡ä»Ž$(l:magic/inkwell)墨水池$(/l)输é€åˆ°åº•座,为你的魔法装备æä¾›èƒ½é‡ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/ink_duct", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ink_duct", - "name":"油墨管é“", - "icon":"spectrum:ink_duct", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_flask.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_flask.json deleted file mode 100644 index 3a1d7e4501..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/ink_flask.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"墨水瓶能够容纳相当数é‡çš„å¢¨æ°´ï¼Œå°½ç®¡åªæœ‰ä¸€ç§é¢œè‰²ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/ink_flask", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ink_flask", - "extra_recipe_mappings":{ - "spectrum:ink_flask":0 - }, - "name":"墨水瓶", - "icon":"spectrum:ink_flask", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/inkwell.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/inkwell.json deleted file mode 100644 index 39f7b929ba..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/inkwell.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)当你把这个想法写在纸上时,你的手在颤抖。这将是一件大事。$()$(br2)生产油墨一直是一个ä¹å‘³çš„过程:从收集$(l:general/shards)å®çŸ³ç¢Žç‰‡$(/l),$(l:general/anvil_crushing)压碎$(/l)它们,$(l:general/colored_trees)创造树木$(/l)åªæ˜¯ä¸ºäº†å†æ¬¡ç ä¼å®ƒä»¬ä»¥èŽ·å–$(l:general/pigment)颜料$(/l)ï¼Œåªæ˜¯ä¸ºäº†åœ¨$(l:magic/color_picker)颜色选择器$(/l)中将其转æ¢ä¸ºæ²¹å¢¨ã€‚$(br)$(italic)æ˜¯æ—¶å€™å–æ¶ˆæ‰€æœ‰è¿™äº›ä¸­é—´é˜¶æ®µäº†ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/inkwell", - "text":"墨水池放置在$(l:magic/crystal_apothecary)æ°´æ™¶è¯å‰‚师$(/l)上,直接将晶洞能é‡è½¬æ¢ä¸ºå¢¨æ°´ï¼Œå…许其通过$(l:magic/ink_duct)墨水管é“$(/l)传输。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_inkwell", - "name":"墨水池", - "icon":"spectrum:inkwell", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/pigment_palette.json deleted file mode 100644 index b7cb7fe8e4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/pigment_palette.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"éšèº«æºå¸¦è¶³å¤Ÿçš„墨水æ¥ç»´æŠ¤ä½ çš„é­”æ³•è£…å¤‡å·²ç»æˆä¸ºä½ åº“存中的一项æ‚务和一个太空猪。$(br2)现在是一个新的创造:颜料调色æ¿ã€‚它能够储存相当数é‡çš„墨水,以供应你所有的魔法装置和设备。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/pigment_palette", - "text":"$(italic)现在你是一个真正的色彩艺术家。", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_pigment_palette", - "extra_recipe_mappings":{ - "spectrum:pigment_palette":0 - }, - "name":"颜料调色æ¿", - "icon":"spectrum:pigment_palette", - "category":"spectrum:magic_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/spirit_sallow.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/spirit_sallow.json deleted file mode 100644 index 7e867bae70..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magic/spirit_sallow.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ominous_sapling", - "text":"待办事项", - "type":"patchouli:spotlight" - }, - { - "advancement":"spectrum:lategame/grow_ominous_sapling", - "text":"待办事项", - "type":"patchouli:text", - "title":"çµé­‚木" - } - ], - "advancement":"spectrum:lategame/spectrum_lategame", - "extra_recipe_mappings":{ - "spectrum:ominous_sapling":0, - "spectrum:spirit_sallow_heart":0, - "spectrum:spirit_sallow_roots":0, - "spectrum:spirit_sallow_log":0, - "spectrum:spirit_sallow_leaves":0 - }, - "name":"çµé­‚木", - "icon":"spectrum:ominous_sapling", - "category":"spectrum:magic_category", - "priority":true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/bedrock_anvil.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/bedrock_anvil.json deleted file mode 100644 index 260d7c22b0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/bedrock_anvil.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"ä½ å·²ç»ç”¨äº†å¾ˆå¤šé“砧(准确地说,很多é“砧)。然而,无论是物å“$(l:general/anvil_crushing)破碎$(/l)ã€ä¿®å¤è¿˜æ˜¯é™„é­”å·¥å…·éƒ½ä¼šå¾ˆå¿«å¯¹å…¶é€ æˆæŸå,以至于无法修å¤ã€‚$(br)使é“ç §æ›´è€ç”¨â€”—甚至ä¸å¯æ‘§æ¯â€”—基岩似乎是完美的选择。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/bedrock/bedrock_anvil", - "text":"å…许您å…è´¹é‡å‘½å物å“,并且没有最大修å¤é™åˆ¶ã€‚$(br)$(italic)此外,您还å¯ä»¥ä¸ºç‰©å“添加æè¿°ã€‚æç¤ºï¼šé”®å…¥å°†æ–‡æœ¬æ‹†åˆ†ä¸ºå¤šè¡Œã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_bedrock_tools", - "extra_recipe_mappings":{ - "spectrum:bedrock_anvil":0 - }, - "name":"基岩砧", - "icon":"spectrum:bedrock_anvil", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/black_hole_chest.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/black_hole_chest.json deleted file mode 100644 index 8d3008930a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/black_hole_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)æ¼æ–—的问题是,一方é¢ï¼Œå®ƒä»¬ä¸ä»…速度慢,而且由于其ä¸å­˜åœ¨èŒƒå›´ï¼Œä¸é€‚åˆå¤§åž‹å†œåœºã€‚$(br2)åªè¦æ¶‚一点è“è‰²é¢œæ–™ï¼Œæ¿æ¡ç®±å‘¨å›´å¤§åŠå¾„内的所有物å“都å¯ä»¥å¾ˆå®¹æ˜“地安全æºå¸¦ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/sucking_chest", - "text":"黑洞箱的åŠå¾„为12个方å—。您å¯ä»¥é€šè¿‡åœ¨é¡¶éƒ¨æ”¾ç½®æ–¹å—æ¥ç¦ç”¨å®ƒä»¬ã€‚它æä¾›äº†è¿‡æ»¤å™¨æ¥æŒ‡å®šå®ƒåº”该接å—哪些物å“。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_sucking_chest", - "extra_recipe_mappings":{ - "spectrum:sucking_chest":0 - }, - "name":"黑洞箱", - "icon":"spectrum:sucking_chest", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/compacting_chest.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/compacting_chest.json deleted file mode 100644 index 70ec968e64..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/compacting_chest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ å·²ç»åŽŒå€¦äº†ä¸ºä½ å‚¨è—室里堆积如山的煤ã€é“ã€é“œå’Œé»„金创造新的储è—空间。然åŽï¼Œä¸€æ¬¡åˆä¸€æ¬¡åœ°å°†è¿™äº›ä¸œè¥¿ç»„è£…æˆæ›´ç´§å‡‘çš„å—也ä¸å¥½çŽ©ã€‚$(br2)所以你想出了一个紧凑的箱å­ï¼Œå®ƒå¯ä»¥è®©ä½ æ‘†è„±å•调的工作。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier1/compacting_chest", - "text":"å字说明了一切。$(br)压缩箱将å°è¯•以3x3ã€2x2或1x1模æ¿åˆ¶ä½œæ‚¨æ”¾å…¥å…¶ä¸­çš„æ‰€æœ‰ä¸œè¥¿ï¼Œå¯ä»¥åœ¨å…¶GUI中切æ¢ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_compacting_chest", - "extra_recipe_mappings":{ - "spectrum:compacting_chest":0 - }, - "name":"压缩箱", - "icon":"spectrum:compacting_chest", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/ender_dropper.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/ender_dropper.json deleted file mode 100644 index f33fd57e33..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/ender_dropper.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ender_dropper", - "text":"æœ«å½±æ»´ç®¡ä¸Žæœ«å½±æ¼æ–—ç›¸å¯¹åº”ã€‚æ¯æŽ¨ä¸€æ¬¡çº¢çŸ³ï¼Œå®ƒå°±ä¼šä»Žä½ çš„ä¸ªäººæœ«å½±ç®±å¼¹å‡ºä¸€ä»¶ç‰©å“。$(br2)注æ„:末影滴管åªåœ¨ä½ åœ¨çº¿çš„æ—¶å€™èµ·ä½œç”¨ã€‚è°åœ¨é˜»æ­¢ä»»ä½•人在它æ—边放一个按钮并清空你的末影箱?", - "type":"patchouli:spotlight", - "title":"末影滴管" - }, - { - "recipe":"spectrum:pedestal/tier2/ender_dropper", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ender_blocks", - "extra_recipe_mappings":{ - "spectrum:ender_dropper":0 - }, - "name":"末影滴管", - "icon":"spectrum:ender_dropper", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/ender_hopper.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/ender_hopper.json deleted file mode 100644 index cf5c01e0a6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/ender_hopper.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ender_hopper", - "text":"æœ«å½±æ¼æ–—的设计在形å¼å’ŒåŠŸèƒ½ä¸Šç±»ä¼¼äºŽæ™®é€šçš„æ¼æ–—,它具有特殊的能力,å¯ä»¥å°†æ‰€æœ‰ç‰©å“放在上é¢ï¼Œå¹¶ä»Žåº“存中直接放入末影箱å­ã€‚$(br2)æœ«å½±æ¼æ–—仅在您在线时å¯ç”¨ã€‚", - "type":"patchouli:spotlight", - "title":"æœ«å½±æ¼æ–—" - }, - { - "recipe":"spectrum:pedestal/tier2/ender_hopper", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ender_blocks", - "extra_recipe_mappings":{ - "spectrum:ender_hopper":1 - }, - "name":"æœ«å½±æ¼æ–—", - "icon":"spectrum:ender_dropper", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/fabrication_chest.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/fabrication_chest.json deleted file mode 100644 index 8e503bb0a6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/fabrication_chest.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:restocking_chest", - "text":"$(italic)颜料基座éžå¸¸é€‚åˆè‡ªåŠ¨åˆ›å»ºç‰©å“。但是如果你一éåˆä¸€é地需è¦åŒæ ·çš„几件物å“ï¼Œä½ å¿…é¡»é‡æ–°å®‰æŽ’你的整个结构。$(br2)å½“ç„¶ï¼Œä½ å·²ç»æ‰¾åˆ°äº†ä¸€ä¸ªæ›´åˆé€‚的解决方案。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier3/restocking_chest", - "text":"制作箱有四个槽用于制作平æ¿ç”µè„‘ã€‚ä½ åœ¨è¿™äº›é…æ–¹ä¸­å®šä¹‰çš„é…æ–¹æ€»æ˜¯æœ‰åº“存的——åªè¦ç®±å­é‡Œçš„æˆåˆ†å…许。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_restocking_chest", - "extra_recipe_mappings":{ - "spectrum:restocking_chest":0 - }, - "name":"预制箱", - "icon":"spectrum:restocking_chest", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/glistering_melons.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/glistering_melons.json deleted file mode 100644 index 0cffa43160..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/glistering_melons.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "item":"minecraft:glistering_melon_slice", - "text":"凭借å®çŸ³ç²‰æœ«å›ºæœ‰çš„é­”åŠ›ï¼Œä½ å·²ç»æˆåŠŸåœ°æ”¹å˜äº†å¹¼è‹—。是什么阻止了你在其他æ¤ç‰©ä¸Šè¯•验呢?$(br)å½“ç„¶ï¼Œä¸æ˜¯å› ä¸ºä½ è´ªå©ªæˆ–什么。", - "type":"patchouli:spotlight", - "title":"闪闪å‘光的瓜类æ¤ç‰©" - }, - { - "recipe":"spectrum:pedestal/tier1/glistering_melon_seeds", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:collect_vegetal", - "extra_recipe_mappings":{ - "spectrum:glistering_melon_seeds":0, - "minecraft:glistering_melon_slice":0, - "spectrum:glistering_melon":0 - }, - "name":"闪闪å‘光的西瓜", - "icon":"minecraft:glistering_melon_slice", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/lava_sponge.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/lava_sponge.json deleted file mode 100644 index 4b49de6e4c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/lava_sponge.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)当你手里拿ç€ä¸€å—湿漉漉的海绵时,你认为一定也有对应的岩浆。å³ä½¿ä½ è¿˜æ²¡æœ‰å¶ç„¶å‘çŽ°ä¸€ä¸ªï¼Œå½“ç„¶è¿™å¹¶æ²¡æœ‰é˜»æ­¢ä½ å‘æ˜Žä¸€ä¸ªã€‚$(br2)这将使在世界深处以åŠåœ°ç‹±ä¹‹é—¨ä¹‹å¤–的导航å˜å¾—更加容易。", - "type":"patchouli:text", - "title":"熔岩海绵" - }, - { - "recipe":"spectrum:pedestal/tier1/lava_sponge", - "text":"...或者你是这么想的,直到你æ„识到岩浆浸泡的海绵也有一个$(italic)ä¸å¹¸$()的副作用。$(br)你应该猜到的。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "text":"熔岩海绵å¯ç”¨ä½œç†”炉中的高效燃料,在此过程中使其干燥。", - "type":"patchouli:text", - "title":"熔炉燃料" - } - ], - "advancement":"spectrum:progression/unlock_lava_sponge", - "extra_recipe_mappings":{ - "spectrum:wet_lava_sponge":0, - "spectrum:lava_sponge":0 - }, - "name":"熔岩海绵", - "icon":"spectrum:lava_sponge", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/liquid_crystal.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/liquid_crystal.json deleted file mode 100644 index f2b40f5bcb..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/liquid_crystal.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:liquid_crystal_bucket", - "text":"$(italic)å®çŸ³æ¶²æ€çš„纯净能é‡ã€‚æ®è¯´å®ƒæœ‰æ²»ç–—作用。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier3/liquid_crystal_bucket", - "text":"将其与å„ç§å…¶ä»–液体结åˆï¼Œä¼šå½¢æˆå„ç§å¤–观怪异的物质。最好也去地狱试试ï¼", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"minecraft:clay", - "text":"让液晶与泥制粘土碰撞ï¼å½“然还有更多的组åˆéœ€è¦å‘现ï¼$(br2)$(italic)托马斯以å‰ä»Žæœªè§è¿‡å¦‚æ­¤ä¸å¹³è¡¡ã€‚$()", - "type":"patchouli:spotlight" - }, - { - "item":"spectrum:blazing_crystal", - "advancement":"spectrum:hidden/collect_blazing_crystal", - "text":"è®©ä¸€æ•´å—æ¶²æ™¶å¸æ”¶ç†”岩的巨大热é‡å¯¼è‡´äº†è¿™ä¸€ç»“果。$(br)感觉就åƒä¸€ä¸ªå²©æµ†æ–¹å—,尽管温度è¦é«˜å¾—多。", - "type":"patchouli:spotlight" - }, - { - "item":"spectrum:frostbite_crystal", - "advancement":"spectrum:hidden/collect_frostbite_crystal", - "text":"当水试图æµåˆ°ä¸€æ•´å—æ¶²æ™¶æ—¶ï¼Œæ¶²æ™¶å˜æˆäº†å›ºä½“。$(br)因为å³ä½¿æ˜¯è½»å¾®çš„è§¦æ‘¸ä¹Ÿè¶³ä»¥è®©ä½ å†·å¾—å‘æŠ–ï¼Œæ‰€ä»¥ä½ ç§°ä¹‹ä¸ºå†»ä¼¤æ°´æ™¶", - "type":"patchouli:spotlight" - }, - { - "item":"spectrum:resonant_lily", - "advancement":"spectrum:midgame/collect_resonant_lily", - "text":"这是一个有趣的例å­ã€‚èŠ±çš„æ ¹éƒ¨å¸æ”¶äº†è¿™ç§ç¥žå¥‡çš„æ¶²ä½“ï¼Œå˜æˆäº†éš¾ä»¥æ‰æ‘¸çš„æ¤ç‰©ã€‚ä½†å³ä½¿è¿™æ ·ï¼Œä¹Ÿæ— æ³•æ‰¿å—æ¶²ä½“的原始能é‡ï¼Œä½¿å…¶çˆ†è£‚。", - "type":"patchouli:spotlight" - } - ], - "advancement":"spectrum:progression/unlock_liquid_crystal_bucket", - "extra_recipe_mappings":{ - "spectrum:resonant_lily":0, - "spectrum:frostbite_crystal":0, - "spectrum:liquid_crystal_bucket":0, - "spectrum:blazing_crystal":0 - }, - "name":"液晶", - "icon":"spectrum:liquid_crystal_bucket", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/midnight_solution.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/midnight_solution.json deleted file mode 100644 index 5b9ab2a410..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/midnight_solution.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "pages":[ - { - "text":"你第一次å¶ç„¶å‘现这ç§å¥‡æ€ªçš„æ¶²ä½“是你$(l:general/midnight_aberration)失败的èšå˜å®žéªŒ$()的直接结果。$(br)触摸它的生物似乎会耗尽它们的生命。最好ä¸è¦è‡ªå·±é™·å…¥å›°å¢ƒã€‚$(br)ï¼æ²¡æœ‰ç»åŽ†è¿‡è¿™ç§æ®‹é…·è¿‡ç¨‹çš„生物似乎会丢弃物å“,就好åƒå®ƒä»¬è¢«çŽ©å®¶æ€æ­»ä¸€æ ·ã€‚", - "type":"patchouli:text" - }, - { - "item":"spectrum:midnight_chip", - "advancement":"spectrum:midgame/collect_midnight_chip", - "text":"在这ç§å……满活力的液体中死亡的生物会掉è½ä¸€å°å—碎片,几乎åƒ$(l:general/midnight_aberration)åˆå¤œç•¸å˜$(/l)ï¼Œåªæ˜¯å°äº†å¾ˆå¤šã€‚锋利ã€å‡¶ç‹ ã€‚å°±å¥½åƒæ˜¯å¥¹å¿ƒè„的那根刺最终导致了他们的死亡。", - "type":"patchouli:spotlight", - "title":"åˆå¤œç‰‡" - }, - { - "advancement":"spectrum:midgame/collect_midnight_chip", - "recipe":"spectrum:potion_workshop_crafting/midnight_solution_bucket", - "text":"ä½¿ç”¨è¿™ç§æ¶²ä½“æ€æ­»ç”Ÿç‰©æ‰€èŽ·å¾—çš„é¢å¤–掉è½ï¼Œä½ å¯ä»¥åˆ›é€ æ›´å¤šçš„æ»´æ°´ã€‚如果你仔细想想的è¯ï¼Œé‚£çœŸæ˜¯å¤ªç—…æ€äº†ã€‚", - "type":"spectrum:potion_workshop_crafting", - "title":"åˆå¤œæº¶æ¶²æ¡¶" - }, - { - "recipe":"spectrum:midnight_solution_converting/blackstone", - "text":"æŠŠä¸€äº›ç‰©å“æ‰”进液体中似乎会把它们è…èš€åˆ°å®Œå…¨å˜æˆå…¶ä»–东西的程度。", - "type":"spectrum:midnight_solution_converting", - "title":"物å“转æ¢" - }, - { - "text":"æ›´é‡è¦çš„æ˜¯ï¼Œå¦‚æžœä½ æŠŠé™„é­”ç‰©å“æ‰”è¿›åŽ»ï¼Œå®ƒä»¬çš„ç‰¹æ®Šèƒ½åŠ›å°±ä¼šè¢«å‰¥å¤ºã€‚å‰©ä¸‹çš„åªæ˜¯æ™®é€šçš„物å“和一堆ç»éªŒã€‚", - "type":"patchouli:text", - "title":"觉醒" - }, - { - "item":"spectrum:black_materia", - "advancement":"spectrum:hidden/break_black_materia", - "text":"在åˆå¤œæº¶æ¶²æ± å‘¨å›´å½¢æˆçš„一ç§çœ‹ä¼¼æ— ç”¨çš„物质。", - "type":"patchouli:spotlight", - "title":"é»‘è‰²ææ–™" - } - ], - "advancement":"spectrum:progression/unlock_midnight_solution", - "extra_recipe_mappings":{ - "spectrum:midnight_chip":0, - "spectrum:midnight_solution_bucket":0, - "spectrum:black_materia":0 - }, - "name":"åˆå¤œæº¶æ¶²", - "icon":"spectrum:midnight_solution_bucket", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/mob_blocks.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/mob_blocks.json deleted file mode 100644 index ac94a8f692..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/mob_blocks.json +++ /dev/null @@ -1,273 +0,0 @@ -{ - "pages":[ - { - "text":"æ–¹å—å½¢æ€ç”Ÿç‰©çš„表现。$(br)使用它们ã€åœ¨å®ƒä»¬èº«ä¸Šè¡Œèµ°æˆ–用投射物击中它们都会触å‘与该生物特别相关的动作。", - "type":"patchouli:text", - "title":"爱豆" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/axolotl_mob_block", - "text":"给予短暂的å†ç”Ÿçˆ†å‘。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/bat_mob_block", - "text":"回声定ä½å‘¨å›´8个方å—åŠå¾„内的生物。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/bee_mob_block", - "text":"ç»™æ—边的æ¤ç‰©æ–½è‚¥ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/blaze_mob_block", - "text":"设置触å‘它的生物并将其æ—边的方å—点ç€ã€‚$(br)还将其æ—边的一些方å—转æ¢ä¸ºçƒ§ç„¦çš„å˜ä½“(é“å—ã€ä¸‹ç•Œåˆé‡‘å—å˜æˆå²©æµ†å—等)", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/cat_mob_block", - "text":"在ç€é™†æ—¶æŠµæ¶ˆæ‰€æœ‰å è½ä¼¤å®³ã€‚也å¯ä»¥æš‚æ—¶é‡ç½®ä½ çš„æ‘”倒。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/chicken_mob_block", - "text":"进行短暂的缓慢下é™ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/cow_mob_block", - "text":"挤奶åŠå¾„为6æ–¹å—的所有奶牛ã€å±±ç¾Šå’Œè˜‘è‡ç‰›ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/creeper_mob_block", - "text":"引起å°çˆ†ç‚¸ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/ender_dragon_mob_block", - "text":"å‘射龙射弹。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/enderman_mob_block", - "text":"ä¼ é€åˆ°åŠå¾„为16æ–¹å—çš„éšæœºä½ç½®ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/endermite_mob_block", - "text":"ä¼ é€åˆ°å¦ä¸€ä¸ªé”¯é½¿çŠ¶çš„çˆ±è±†åœ¨ä¸€æ¡ç›´çº¿ä¸Šè¢«å‡»ä¸­çš„一侧(高达16个方å—)。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/evoker_mob_block", - "text":"å¬å”¤ä¸€ä¸ªæ¼é¬¼ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/fish_mob_block", - "text":"进行短暂的水下呼å¸ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/fox_mob_block", - "text":"给一个短暂的急迫。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/ghast_mob_block", - "text":"å‘å°„ç«çƒ", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/glow_squid_mob_block", - "text":"å‘出短暂的闪光。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/goat_mob_block", - "text":"导致击退。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/guardian_mob_block", - "text":"产生短暂的疲劳。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/horse_mob_block", - "text":"给予短暂的力é‡çˆ†å‘。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/illusioner_mob_block", - "text":"æä¾›çŸ­æš‚çš„éšå½¢çˆ†å‘。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/ocelot_mob_block", - "text":"å‘出短暂的夜视。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/parrot_mob_block", - "text":"ç»™äºˆçŸ­æš‚çš„å¸æ”¶ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/phantom_mob_block", - "text":"导致失眠。$(br)在开阔的天空中,玩家会立å³è¢«å¹»ç¿¼ç¼ ä½ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/pig_mob_block", - "text":"如果周围有食物,在6个方å—åŠå¾„内喂食动物。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/piglin_mob_block", - "text":"和你交æ¢é‡‘锭。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/polar_bear_mob_block", - "text":"冻结它周围的方å—(水到冰,熔岩到黑曜石,…)。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/pufferfish_mob_block", - "text":"引起一阵æ¶å¿ƒã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/rabbit_mob_block", - "text":"æä¾›çŸ­æš‚的跳跃æå‡ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/sheep_mob_block", - "text":"剪切åŠå¾„为6æ–¹å—的生物。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/shulker_mob_block", - "text":"进行短暂的悬浮。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/silverfish_mob_block", - "text":"用蠹虫入侵它æ—边的方å—。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/skeleton_mob_block", - "text":"射箭。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/slime_mob_block", - "text":"在6æ–¹å—åŠå¾„内增加粘液的大å°ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/snow_golem_mob_block", - "text":"射一个雪çƒã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/spider_mob_block", - "text":"å‘出短暂的剧毒。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/squid_mob_block", - "text":"短暂失明。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/stray_mob_block", - "text":"å‘出短暂的饥饿感。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/strider_mob_block", - "text":"æä¾›çŸ­æš‚çš„è€ç«æ€§ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/turtle_mob_block", - "text":"给予短暂的抵抗。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/witch_mob_block", - "text":"让人感到一阵虚弱。", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/wither_mob_block", - "text":"造æˆå·¨å¤§çˆ†ç‚¸ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/wither_skeleton_mob_block", - "text":"å‘出一阵枯èŽã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "recipe":"spectrum:pedestal/tier3/mob_blocks/zombie_mob_block", - "text":"å‘出短暂的饥饿感。", - "type":"spectrum:pedestal_crafting" - } - ], - "advancement":"spectrum:progression/unlock_mob_blocks", - "extra_recipe_mappings":{ - "spectrum:bee_mob_block":0, - "spectrum:cow_mob_block":0, - "spectrum:goat_mob_block":0, - "spectrum:pufferfish_mob_block":0, - "spectrum:ghast_mob_block":0, - "spectrum:spider_mob_block":0, - "spectrum:enderman_mob_block":0, - "spectrum:slime_mob_block":0, - "spectrum:phantom_mob_block":0, - "spectrum:illusioner_mob_block":0, - "spectrum:snow_golem_mob_block":0, - "spectrum:zombie_mob_block":0, - "spectrum:piglin_mob_block":0, - "spectrum:guardian_mob_block":0, - "spectrum:ocelot_mob_block":0, - "spectrum:axolotl_mob_block":0, - "spectrum:pig_mob_block":0, - "spectrum:shulker_mob_block":0, - "spectrum:turtle_mob_block":0, - "spectrum:chicken_mob_block":0, - "spectrum:horse_mob_block":0, - "spectrum:wither_mob_block":0, - "spectrum:squid_mob_block":0, - "spectrum:skeleton_mob_block":0, - "spectrum:polar_bear_mob_block":0, - "spectrum:fox_mob_block":0, - "spectrum:glow_squid_mob_block":0, - "spectrum:blaze_mob_block":0, - "spectrum:silverfish_mob_block":0, - "spectrum:sheep_mob_block":0, - "spectrum:stray_mob_block":0, - "spectrum:witch_mob_block":0, - "spectrum:cat_mob_block":0, - "spectrum:fish_mob_block":0, - "spectrum:parrot_mob_block":0, - "spectrum:rabbit_mob_block":0, - "spectrum:wither_skeleton_mob_block":0, - "spectrum:ender_dragon_mob_block":0, - "spectrum:evoker_mob_block":0, - "spectrum:bat_mob_block":0, - "spectrum:creeper_mob_block":0, - "spectrum:endermite_mob_block":0, - "spectrum:strider_mob_block":0 - }, - "name":"爱豆", - "icon":"spectrum:fox_mob_block", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/mud.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/mud.json deleted file mode 100644 index d60bff1a28..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/mud.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:mud_bucket", - "text":"$(italic)泥,这是泥。本身并ä¸ç‰¹åˆ«æœ‰è¶£ã€‚但实际情况是泥浆与水或熔岩的碰撞。这会分别产生土或粗土。", - "title":"æ³¥", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/mud_bucket", - "text":"虽然泥浴å¬èµ·æ¥å¾ˆå¥åº·ï¼Œä½†ä¸å»ºè®®è¿™æ ·åšã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_mud_bucket", - "extra_recipe_mappings":{ - "spectrum:mud_bucket":0 - }, - "name":"æ³¥", - "icon":"spectrum:mud_bucket", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop.json deleted file mode 100644 index 2987da9341..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä¸Žæ­¤åŒæ—¶ï¼Œä½ ä»¬å·²ç»æŽŒæ¡äº†è®¸å¤šæ–°ææ–™ã€‚现在是时候仔细看看它们对你的è¯å‰‚有什么影å“了。$(br2)作为一å专家,你有根æ®åœ°çŒœæµ‹ï¼šå¤ªæ£’了ï¼", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/potion_workshop", - "text":"è¯æ°´å·¥åœºä½¿ç”¨çš„䏿˜¯çƒˆç„°ç²‰ï¼Œè€Œæ˜¯ç¾Žäººé±¼å®çŸ³ã€‚主è¦ä¼˜ç‚¹æ˜¯ä½ ä¸å¿…åœ¨ä¹‹å‰æŠŠç“¶å­è£…满水。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_potion_workshop", - "name":"è¯æ°´å·¥åœº", - "icon":"spectrum:potion_workshop", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_brewing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_brewing.json deleted file mode 100644 index 43e525e92d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_brewing.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "pages":[ - { - "text":"ç”±äºŽè¯æ°´å·¥åœºåŸºæœ¬ä¸Šæ˜¯ä¸€ä¸ªå‡çº§çš„酿造å°ï¼Œæ‚¨ä¹Ÿå¯ä»¥åˆ›å»ºä¹‹å‰æä¾›ç»™æ‚¨çš„æ‰€æœ‰é­”è¯å˜ä½“。$(br)此外,使用魔法物å“ä½œä¸ºé…æ–™çš„å¯èƒ½æ€§ä¸ºæ‚¨æ‰“开了新的大门。$(br2)其中一些更容易或更难获得增强效果。", - "type":"patchouli:text", - "title":"酿造è¯å‰‚" - }, - { - "recipe":"spectrum:potion_workshop_brewing/fire_resistance", - "text":"åœ¨ä½¿ç”¨ç›¸åŒæˆåˆ†ä¹‹å‰ï¼Œåˆ¶ä½œå…·æœ‰ç›¸åŒæ•ˆæžœçš„è¯å‰‚的过程。与使用酿造架ä¸åŒï¼Œæ‚¨å¯ä»¥ä½¿ç”¨$(l:magical_blocks/potion_workshop_reagents)试剂$(/l)进一步增强其效果。", - "type":"spectrum:potion_workshop_brewing", - "title":"åŽŸç‰ˆè¯æ°´å˜ä½“" - }, - { - "recipe":"spectrum:potion_workshop_brewing/absorption", - "text":"", - "type":"spectrum:potion_workshop_brewing", - "title":"伤害叿”¶" - }, - { - "recipe":"spectrum:potion_workshop_brewing/glowing", - "text":"", - "type":"spectrum:potion_workshop_brewing", - "title":"å‘å…‰" - }, - { - "recipe":"spectrum:potion_workshop_brewing/haste", - "text":"添加å‘酵过的蜘蛛眼会改å˜å¯¹$(bold)挖掘疲劳$()的影å“。", - "type":"spectrum:potion_workshop_brewing", - "title":"急迫" - }, - { - "recipe":"spectrum:potion_workshop_brewing/saturation", - "text":"添加å‘酵过的蜘蛛眼会使效果å˜ä¸º$(bold)饥饿$()。", - "type":"spectrum:potion_workshop_brewing", - "title":"饱和" - }, - { - "advancement":"spectrum:lategame/collect_paletur", - "recipe":"spectrum:potion_workshop_brewing/levitation", - "text":"", - "type":"spectrum:potion_workshop_brewing", - "title":"悬浮" - }, - { - "advancement":"spectrum:collect_four_leaf_clover", - "recipe":"spectrum:potion_workshop_brewing/luck", - "text":"加上å‘酵过的蜘蛛眼,效果å而会å˜ä¸º$(bold)厄è¿$()。", - "type":"spectrum:potion_workshop_brewing", - "title":"好è¿" - }, - { - "advancement":"spectrum:midgame/collect_moonstone_shard", - "recipe":"spectrum:potion_workshop_brewing/resistance", - "text":"", - "type":"spectrum:potion_workshop_brewing", - "title":"抗性æå‡" - }, - { - "advancement":"spectrum:midgame/craft_midnight_chip", - "recipe":"spectrum:potion_workshop_brewing/wither", - "text":"", - "type":"spectrum:potion_workshop_brewing", - "title":"凋零" - } - ], - "advancement":"spectrum:progression/unlock_potion_workshop", - "extra_recipe_mappings":{ - "minecraft:potion":0 - }, - "name":"è¯å‰‚效果:酿造", - "icon":"spectrum:potion_workshop", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_crafting.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_crafting.json deleted file mode 100644 index d3e4d8b8db..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_crafting.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "pages":[ - { - "text":"é¡¾åæ€ä¹‰ï¼Œè¯å‰‚工场的主è¦é‡ç‚¹æ˜¯åˆ›é€ å¼ºå¤§çš„é­”è¯ã€‚$(br)但你也å‘现了创造其他事物的巨大效用。在花ä¸å’Œé¢—ç²’å¯è°ƒå¼€å…³å’Œé˜€é—¨çš„帮助下,你还å¯ä»¥åœ¨è¿™é‡Œé‡æ–°åˆ›é€ æ³¥æµ†å’Œæ¶²æ™¶â€”â€”æ¯”ä»¥å‰æ›´é«˜æ•ˆã€‚$(br)$()æ‰€æœ‰è¿™äº›é…æ–¹éƒ½ä¸ä½¿ç”¨$(l:magical_blocks/potion_workshop_reagents)试剂$(/l)。", - "type":"patchouli:text", - "title":"工厂工艺" - }, - { - "recipe":"spectrum:potion_workshop_crafting/water_bucket", - "text":"", - "type":"spectrum:potion_workshop_crafting", - "title":"æ°´" - }, - { - "recipe":"spectrum:potion_workshop_crafting/lava_bucket", - "text":"$(l:magical_blocks/lava_sponge)熔岩海绵$(/l)ä¸ä¼šè¢«ç”¨å®Œï¼Œå¯ä»¥è®©ä½ å¿«é€Ÿäº§ç”Ÿå¤§é‡ç†”岩。", - "type":"spectrum:potion_workshop_crafting", - "title":"熔岩" - }, - { - "recipe":"spectrum:potion_workshop_crafting/mud_bucket", - "text":"", - "type":"spectrum:potion_workshop_crafting", - "title":"æ³¥" - }, - { - "recipe":"spectrum:potion_workshop_crafting/liquid_crystal_bucket", - "text":"", - "type":"spectrum:potion_workshop_crafting", - "title":"液晶" - }, - { - "advancement":"spectrum:midgame/collect_midnight_chip", - "recipe":"spectrum:potion_workshop_crafting/midnight_solution_bucket", - "text":"", - "type":"spectrum:potion_workshop_crafting", - "title":"åˆå¤œæº¶æ¶²" - }, - { - "recipe":"spectrum:potion_workshop_crafting/honey_bottle", - "text":"", - "type":"spectrum:potion_workshop_crafting", - "title":"液化蜂蜜" - }, - { - "recipe":"spectrum:potion_workshop_crafting/powder_snow_bucket", - "text":"", - "type":"spectrum:potion_workshop_crafting", - "title":"雪粉" - }, - { - "recipe":"spectrum:potion_workshop_crafting/experience_bottle", - "text":"将消耗知识å®çŸ³10点ç»éªŒ", - "type":"spectrum:potion_workshop_crafting", - "title":"附魔的瓶å­" - } - ], - "advancement":"spectrum:progression/unlock_potion_workshop", - "extra_recipe_mappings":{ - "minecraft:powder_snow_bucket":0, - "minecraft:honey_bottle":0, - "spectrum:midnight_solution_bucket":0, - "minecraft:water_bucket":0, - "minecraft:lava_bucket":0, - "minecraft:experience_bottle":0 - }, - "name":"è¯å‰‚效果:手工制作", - "icon":"spectrum:potion_workshop", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_reagents.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_reagents.json deleted file mode 100644 index a4d3c010df..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/potion_workshop_reagents.json +++ /dev/null @@ -1,166 +0,0 @@ -{ - "pages":[ - { - "text":"使用美人鱼å®çŸ³ä½œä¸ºåŸºç¡€ï¼Œè€Œä¸æ˜¯çƒˆç„°ç²‰çš„结果是更活跃的è¯å‰‚。这ä¸ä»…å¯ä»¥è®©ä½ åœ¨é­”è¯ä¸­æ·»åŠ æ–°çš„ä¸€ç³»åˆ—é¢å¤–的魔法æˆåˆ†ï¼Œè¿˜å¯ä»¥ä½¿ç”¨å…¶ä¸­ä¸€äº›ä½œä¸ºé¢å¤–的试剂。这些试剂中的æ¯ä¸€ç§éƒ½ä¼šä¿®æ”¹è¯å‰‚的结果属性。æ¯ä¸ªè¯•剂在æ¯ä¸ªé…方中åªèƒ½ä½¿ç”¨ä¸€æ¬¡ã€‚", - "type":"patchouli:text", - "title":"使用试剂" - }, - { - "item":"minecraft:redstone", - "text":"åŒæ‰“æŒç»­æ—¶é—´", - "type":"patchouli:spotlight", - "title":"红石" - }, - { - "item":"minecraft:glowstone_dust", - "text":"效力平稳增加", - "type":"patchouli:spotlight", - "title":"辉石" - }, - { - "item":"minecraft:gunpowder", - "text":"创建飞溅è¯å‰‚", - "type":"patchouli:spotlight", - "title":"ç«è¯" - }, - { - "item":"minecraft:dragon_breath", - "advancement":"spectrum:hidden/collect_vanilla/collect_dragon_breath", - "text":"åˆ¶é€ æ»žç•™è¯æ°´-也需è¦ç«è¯ï¼Œå› ä¸ºå¦‚果你æä¾›ç®­è€Œä¸æ˜¯ç“¶å­ï¼Œ$(br2)试剂å…许你制造效果箭", - "type":"patchouli:spotlight", - "title":"é¾™æ¯" - }, - { - "item":"spectrum:topaz_powder", - "text":"ä½¿æ•ˆæžœä¸æ˜¾ç¤ºä»»ä½•ç²’å­", - "type":"patchouli:spotlight", - "title":"黄玉" - }, - { - "item":"spectrum:amethyst_powder", - "text":"ä¸ºé­”è¯æŒç»­æ—¶é—´å¢žåŠ ä¸€ä¸ªçŸ­æš‚çš„å›ºå®šåŠ æˆ", - "type":"patchouli:spotlight", - "title":"ç´«æ°´æ™¶" - }, - { - "item":"spectrum:citrine_powder", - "text":"轻微的å€å¢žæ•ˆåŠ›åŠ æˆ", - "type":"patchouli:spotlight", - "title":"黄水晶" - }, - { - "item":"spectrum:onyx_powder", - "text":"ç»™è¯å‰‚添加了一ç§éžå¸¸å¥‡æ€ªçš„味é“和气味,使其无法识别。$(br)也使其颜色完全为黑色。", - "type":"patchouli:spotlight", - "title":"玛瑙" - }, - { - "item":"spectrum:moonstone_powder", - "advancement":"spectrum:midgame/collect_moonstone_shard", - "text":"将所有其他负é¢å½±å“å˜ä¸ºç§¯æžå½±å“", - "type":"patchouli:spotlight", - "title":"月亮石" - }, - { - "item":"spectrum:sparklestone_gem", - "text":"æŒç»­æ—¶é—´å’Œæ•ˆåŠ›çš„å¾®å°ä¹˜æ³•加æˆ", - "type":"patchouli:spotlight", - "title":"微光石" - }, - { - "item":"spectrum:quitoxic_powder", - "advancement":"spectrum:collect_quitoxic_reeds", - "text":"将所有负é¢å½±å“的效力增加2å€", - "type":"patchouli:spotlight", - "title":"祛毒粉末" - }, - { - "item":"spectrum:scarlet_fragments", - "advancement":"spectrum:midgame/collect_scarlet", - "text":"所有效应效力的平加+1加æˆï¼Œä»£ä»·æ˜¯å¢žåŠ ä¸€ä¸ªéšæœºçš„è´Ÿé¢æ•ˆåº”", - "type":"patchouli:spotlight", - "title":"克里å¦" - }, - { - "item":"spectrum:paletur_fragments", - "advancement":"spectrum:lategame/collect_paletur", - "text":"æ·»åŠ éšæœºçš„ç§¯æžæ•ˆæžœ", - "type":"patchouli:spotlight", - "title":"调色æ¿" - }, - { - "item":"spectrum:stardust", - "advancement":"spectrum:hidden/collect_stardust", - "text":"$(italic)叿”¶ä¹‹å‰é…¿é€ çš„æœ€åŽä¸€æ»´ã€‚$()$(br2)添加之å‰é…¿é€ çš„è¯å‰‚çš„ä¸»è¦æ•ˆæžœçš„æœºä¼šå¾ˆå°", - "type":"patchouli:spotlight", - "title":"星尘" - }, - { - "item":"spectrum:shooting_star", - "advancement":"spectrum:collect_shooting_star", - "text":"$(italic)类似于星尘,但更有效。$()$(br2)ä¿è¯æœ‰æœºä¼šæ·»åŠ å…ˆå‰é…¿é€ çš„è¯æ°´çš„ä¸»è¦æ•ˆæžœï¼Œè¯åŠ›ç•¥æœ‰ä¸‹é™", - "type":"patchouli:spotlight", - "title":"æ’æ˜Ÿç¢Žç‰‡" - }, - { - "item":"spectrum:lightning_stone", - "advancement":"spectrum:midgame/collect_lightning_stone", - "text":"在开始时增加è¯å‰‚效力,但éšç€æ—¶é—´çš„æŽ¨ç§»ä¼šå¾ˆå¿«æ¶ˆå¤±", - "type":"patchouli:spotlight", - "title":"风暴石" - }, - { - "item":"spectrum:raw_azurite", - "advancement":"spectrum:midgame/collect_azurite", - "text":"æ¶ˆé™¤æ»žç•™è¯æ°´å’Œå°–ç®­çš„æŒç»­æ—¶é—´æƒ©ç½š", - "type":"patchouli:spotlight", - "title":"è“铜矿" - }, - { - "item":"spectrum:four_leaf_clover", - "advancement":"spectrum:collect_four_leaf_clover", - "text":"ä¸ºéšæœºå±žæ€§æä¾›å·¨å¤§çš„æå‡", - "type":"patchouli:spotlight", - "title":"三å¶è‰" - }, - { - "item":"spectrum:vegetal", - "advancement":"spectrum:collect_vegetal", - "text":"ä»¥è¯æ•ˆä¸ºä»£ä»·å°†è¯å‰‚æŒç»­æ—¶é—´å»¶é•¿ä¸€å€", - "type":"patchouli:spotlight", - "title":"æ¤ç‰©èƒ½é‡ç²‰" - }, - { - "item":"spectrum:neolith", - "advancement":"spectrum:midgame/collect_neolith", - "text":"æé«˜äº§é‡ï¼Œå…许您酿造é¢å¤–çš„è¯å‰‚", - "type":"patchouli:spotlight", - "title":"黑曜能é‡ç²‰" - }, - { - "item":"spectrum:midnight_chip", - "advancement":"spectrum:midgame/collect_midnight Chip", - "text":"增加效力,增加30ç§’çš„æŒç»­æ—¶é—´ï¼Œä½†å¤§å¹…é™ä½Žäº§é‡ã€‚", - "type":"patchouli:spotlight", - "title":"åˆå¤œç‰‡" - }, - { - "item":"spectrum:moonstruck_nectar", - "advancement":"spectrum:hidden/harvest_moonstruck_nectar", - "text":"ä½¿è¯æ°´æ›´åŠ é¡ºæ»‘ï¼Œå› æ­¤é¥®ç”¨é€Ÿåº¦æ›´å¿«ã€‚å½“æ¯ä¸€ç§’都至关é‡è¦æ—¶ï¼Œå¯èƒ½ä¼šæ´¾ä¸Šç”¨åœºã€‚", - "type":"patchouli:spotlight", - "title":"月相花蜜" - }, - { - "item":"spectrum:bedrock_dust", - "advancement":"spectrum:midgame/break_decayed_bedrock", - "text":"以æŒç»­æ—¶é—´ä¸ºä»£ä»·ï¼Œä½¿è¯å‰‚效力加å€", - "type":"patchouli:spotlight", - "title":"基岩粉末" - } - ], - "advancement":"spectrum:progression/unlock_potion_workshop", - "name":"è¯å‰‚效果:试剂", - "icon":"spectrum:potion_workshop", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/private_chest.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/private_chest.json deleted file mode 100644 index 83831605e1..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/private_chest.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:private_chest", - "text":"$(italic)一次åˆä¸€æ¬¡ï¼Œä½ åªæ˜¯å¿«é€Ÿæ”¾ä¸‹ä¸€ä¸ªç›’å­æ¥å­˜æ”¾ä½ çš„物å“,一旦你回æ¥ï¼Œæ‰€æœ‰ä¸œè¥¿éƒ½è¢«æ´—劫一空。$(br)为了解决这个问题,你开å‘了这个特殊的箱å­ï¼Œå®ƒå¯ä»¥è§£å†³è¿™ä¸ªé—®é¢˜ï¼Œç”šè‡³å¯ä»¥å¸®åŠ©å½“åœºæŠ“åˆ°å°å·ã€‚", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/private_chest", - "text":"心形箱åªèƒ½é€šè¿‡æ”¾ç½®å™¨æ‰“开,并æä¾›ä¸Žä¸¤ä¸ªæ­£å¸¸ç®±å­ç›¸åŒçš„空间。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "text":"与陷阱箱类似,它也会输出红石信å·ã€‚$(br)如果你作为主人打开它,信å·å¼ºåº¦å°†æ˜¯å……åˆ†çš„ï¼Œå¦‚æžœä¸€ä¸ªé™Œç”Ÿäººæƒ³ç¯¡æ”¹ä½ çš„è´¢äº§ï¼Œé‚£ä¹ˆåªæœ‰ä¸€åŠã€‚", - "type":"patchouli:text", - "title":"红石组件" - } - ], - "advancement":"spectrum:progression/unlock_private_chest", - "extra_recipe_mappings":{ - "spectrum:private_chest":0 - }, - "name":"心形箱å­", - "icon":"spectrum:private_chest", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/semi_permeable_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/semi_permeable_glass.json deleted file mode 100644 index 0448f5048a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/semi_permeable_glass.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:amethyst_player_only_glass", - "text":"$(italic)很长一段时间以æ¥ï¼Œé‚£äº›æ€»æ˜¯åœ¨æ™šä¸Šå‡ºçŽ°çš„ä»¤äººè®¨åŽŒçš„æ€ªç‰©ä¸å†æ˜¯å¯¹ä½ çš„å¨èƒï¼Œå¦‚果有的è¯ï¼Œå®ƒä»¬åªæ˜¯ä¸€ä¸ªèµ„æºä¾›åº”商。但这并ä¸èƒ½é˜»æ­¢ä»–们进一步追求你。$(br)ä½ èŠ±äº†æ¯”ä½ æ„¿æ„æ‰¿è®¤çš„æ›´å¤šçš„æ—¶é—´è®©é‚£äº›è®¨åŽŒçš„æ€ªç‰©è¿œç¦»ä½ çš„åŸºåœ°ã€‚$()", - "type":"patchouli:spotlight", - "title":"åŠæ¸—é€çŽ»ç’ƒ" - }, - { - "text":"$(italic)ç„¶åŽä½ è®°å¾—你之剿ƒ³åˆ°çš„å®çŸ³çŽ»ç’ƒé…æ–¹ã€‚$(br2)有了一点神奇的能é‡ï¼Œå®ƒåº”该是没有问题的,使它ä¸ä»…坹你逿˜Žï¼Œè€Œä¸”还å¯ä»¥é€šè¿‡ï¼ˆä¸æ˜¯å¯¹ä»–们ï¼ï¼‰ã€‚$(br2)é¢å¤–的好处:如果你让它看起æ¥åƒæ™®é€šçš„玻璃,你甚至å¯ä»¥æ¬ºéª—你的竞争对手。$()", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/player_only_glass/amethyst_player_only_glass", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "text":"åŠæ¸—é€çŽ»ç’ƒæœ‰å„ç§å®çŸ³é¢œè‰²ï¼Œå¸¸è§çš„ã€æœ‰è‰²çš„å’Œå‘光的。$(br2)它看起æ¥å’Œå®ƒçš„$(l:decoration/gemstone_glass)普通对手$()一模一样,但有一个特殊的特性,玩家å¯ä»¥æ¯«æ— é—®é¢˜åœ°ç©¿è¿‡å®ƒï¼Œè€Œæ‰€æœ‰å…¶ä»–生物都会åƒé£žç¦»çª—户一样从它身上弹起。", - "type":"patchouli:text" - } - ], - "advancement":"spectrum:midgame/build_advanced_pedestal_structure", - "extra_recipe_mappings":{ - "spectrum:amethyst_player_only_glass":0, - "spectrum:topaz_player_only_glass":0, - "spectrum:vanilla_player_only_glass":0, - "spectrum:glowing_player_only_glass":0, - "spectrum:citrine_player_only_glass":0, - "spectrum:tinted_player_only_glass":0, - "spectrum:moonstone_player_only_glass":0, - "spectrum:onyx_player_only_glass":0 - }, - "name":"åŠæ¸—é€çŽ»ç’ƒ", - "icon":"spectrum:amethyst_player_only_glass", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/universe_spyhole.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/universe_spyhole.json deleted file mode 100644 index 3ddd902ca9..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/universe_spyhole.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"这个奇怪的方å—让你的视线穿é€åœ°é¢å’Œå²©çŸ³ã€‚它直接放在墙上或地上,å¯ä»¥è®©ä½ çž¥è§å¦ä¸€é¢ã€‚$(br2)$(italic)末影çå®è®©ä½ ç”¨å…¶å¥‡æ€ªçš„特性创造的创造物永远ä¸ä¼šåœæ­¢è®©ä½ æƒŠè®¶ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/universe_spyhole", - "text":"$(italic)我知é“你在那里åšäº†ä»€ä¹ˆ", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_universe_spyhole", - "extra_recipe_mappings":{ - "spectrum:universe_spyhole":0 - }, - "name":"宇宙窥视孔", - "icon":"spectrum:universe_spyhole", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_efficiency.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_efficiency.json deleted file mode 100644 index 0cc8dee1fd..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_efficiency.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)用$(l:general/pedestal)颜料基座$(/l)制作物体会åžå™¬å¤§é‡çš„å®çŸ³ç²‰ã€‚$(br2)通过使用此å‡çº§ï¼Œæ‚¨åº”è¯¥èƒ½å¤Ÿç¼“å†²æ¶ˆè´¹ã€‚åªæ˜¯ä¸€ç‚¹ç‚¹ï¼Œä½†æ€»æœ‰ä¸€å¤©ä¼šå¥½èµ·æ¥çš„。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/upgrade_efficiency", - "text":"放在你的$(l:general/pedestal)颜料基座$(/l)上的å®çŸ³æ–¹å—或錾制方å—çš„$(l:general/fusion_shrine)èžåˆç¥žæ®¿$(/l)。é¢å¤–的影å“会é™ä½Žã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "advancement":"spectrum:progression/unlock_upgrade_efficiency2", - "recipe":"spectrum:pedestal/tier4/upgrade_efficiency2", - "text":"è¿™ç§â€œå‡çº§çš„å‡çº§â€è¿›ä¸€æ­¥å‡å°‘äº†è¾“å…¥ææ–™çš„æ¶ˆè€—。", - "type":"spectrum:pedestal_crafting", - "title":"第2层" - } - ], - "advancement":"spectrum:midgame/create_refined_azurite", - "extra_recipe_mappings":{ - "spectrum:upgrade_efficiency":0, - "spectrum:upgrade_efficiency2":0 - }, - "name":"效率斜率", - "icon":"spectrum:upgrade_efficiency", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_experience.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_experience.json deleted file mode 100644 index 58a783bd5e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_experience.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)用$(l:general/pedestal)颜料基座$(/l)制作会给你一些ç»éªŒã€‚ä¸è¿‡ï¼Œåœ¨å¤§å¤šæ•°æƒ…况下,金é¢å‡ ä¹Žå¯ä»¥å¿½ç•¥ä¸è®¡ã€‚通过使用类似的技术,如你的$(l:general/speed_upgrade)基座加速器$(/l),你å‘现你å¯ä»¥å¤§å¤§å¢žåŠ èŽ·å¾—çš„é‡‘é¢ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/upgrade_experience", - "text":"放在你的$(l:general/pedestal)颜料基座$(/l)上的å®çŸ³æ–¹å—或錾制方å—çš„$(l:general/fusion_shrine)èžåˆç¥žæ®¿$(/l)。é¢å¤–的影å“会é™ä½Žã€‚", - "type":"spectrum:pedestal_crafting", - "title":"知识焦点" - }, - { - "advancement":"spectrum:progression/unlock_upgrade_experience2", - "recipe":"spectrum:pedestal/tier3/upgrade_experience2", - "text":"这一改进的知识焦点进一步增加了生æˆçš„XP。", - "type":"spectrum:pedestal_crafting", - "title":"第2层" - } - ], - "advancement":"spectrum:progression/unlock_upgrade_experience", - "extra_recipe_mappings":{ - "spectrum:upgrade_experience":0, - "spectrum:upgrade_experience2":0 - }, - "name":"知识焦点", - "icon":"spectrum:upgrade_experience", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_speed.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_speed.json deleted file mode 100644 index 50b617ef86..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_speed.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)与原始工艺å°ä¸åŒï¼Œåœ¨$(l:general/pedestal)颜料基座$(/l)ä¸­è¿›è¡Œå·¥è‰ºéœ€è¦æ—¶é—´ã€‚$(br2)您å‘现,这些工艺过程所用的时间éšç€ç»„ä»¶çš„å¤æ‚性而稳步增加。$(br)这一é‡ç‚¹åº”该有助于您将制作时间æ¢å¤åˆ°å¯æŽ¥å—的水平。它帮助颜料基座收集结构èšç„¦çš„能é‡ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/upgrade_speed", - "text":"放在你的$(l:general/pedestal)颜料基座$(/l)上的å®çŸ³æ–¹å—或錾制方å—çš„$(l:general/fusion_shrine)èžåˆç¥žæ®¿$(/l)。é¢å¤–的影å“会é™ä½Žã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "advancement":"spectrum:progression/unlock_upgrade_speed2", - "recipe":"spectrum:pedestal/tier3/upgrade_speed2", - "text":"基座加速器T2改进了先å‰å˜ä½“的所有方é¢ã€‚让你的手工艺更快。", - "type":"spectrum:pedestal_crafting", - "title":"第2层" - }, - { - "advancement":"spectrum:progression/unlock_upgrade_speed3", - "recipe":"spectrum:pedestal/tier4/upgrade_speed3", - "text":"第3层没有留下任何需è¦çš„东西-至少在制作速度方é¢ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"第3层" - } - ], - "advancement":"spectrum:midgame/build_advanced_pedestal_structure", - "extra_recipe_mappings":{ - "spectrum:upgrade_speed2":0, - "spectrum:upgrade_speed":0, - "spectrum:upgrade_speed3":0 - }, - "name":"基座加速器", - "icon":"spectrum:upgrade_speed", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_yield.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_yield.json deleted file mode 100644 index 0cdf9b2f47..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_blocks/upgrade_yield.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "pages":[ - { - "text":"这次å‡çº§å¾ˆæœ‰è¶£ã€‚虽然几率很å°ï¼Œä½†ä½ å¯ä»¥å¢žåŠ ä½ çš„åˆ¶ä½œæ•ˆæžœã€‚$(br2)$(italic)你的钱更划算ï¼", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier4/upgrade_yield", - "text":"放在你的$(l:general/pedestal)颜料基座$(/l)上的å®çŸ³æ–¹å—或錾制方å—çš„$(l:general/fusion_shrine)èžåˆç¥žæ®¿$(/l)。é¢å¤–的影å“会é™ä½Žã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "advancement":"spectrum:progression/unlock_upgrade_yield2", - "recipe":"spectrum:pedestal/tier4/upgrade_yield2", - "text":"这个å‡çº§ç‰ˆæœ¬æ›´å¼ºå¤§ï¼Œè®©ä½ çš„æ‰‹å·¥è‰ºèŽ·å¾—æ›´å¤šçš„è¾“å‡ºã€‚", - "type":"spectrum:pedestal_crafting", - "title":"第2层" - } - ], - "advancement":"spectrum:lategame/collect_paletur", - "extra_recipe_mappings":{ - "spectrum:upgrade_yield":0, - "spectrum:upgrade_yield2":0 - }, - "name":"äº§é‡æ¿€å¢ž", - "icon":"spectrum:upgrade_yield", - "category":"spectrum:magical_blocks_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ashen_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ashen_circlet.json deleted file mode 100644 index 4d4c9cd181..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ashen_circlet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"你放在这个圆环里的深红色å®çŸ³æœ¬èº«å°±æ˜¯å†¥ç•Œçš„产物,å¯ä»¥è½»æ¾åœ°å¸æ”¶ä½ èº«ä¸Šçš„高温。$(br)它甚至å¯ä»¥ä¿æŠ¤ä½ å…å—熔岩的炽热——å³ä½¿åªæ˜¯å¾ˆçŸ­çš„ä¸€æ®µæ—¶é—´ï¼Œç›´åˆ°å®ƒæœ‰æœºä¼šå†æ¬¡å†·å´ä¸‹æ¥ã€‚$(br)把它和一些能让你抵抗ç«çš„东西æ­é…,你å¯ä»¥åƒåœ¨æ°´é‡Œä¸€æ ·åœ¨ç†”岩中游泳。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/ashen_circlet", - "text":"$(li)防ç«å’Œç†”岩å—造æˆä¼¤å®³ã€‚$(li)如果冷å´ä¸‹æ¥ï¼Œå¯¹ç†”å²©ç»™äºˆçŸ­æš‚ä¿æŠ¤", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ashen_circlet", - "extra_recipe_mappings":{ - "spectrum:ashen_circlet":0 - }, - "name":"ç°ç™½è‰²åœ†çޝ", - "icon":"spectrum:ashen_circlet", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/azure_dike_equipment.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/azure_dike_equipment.json deleted file mode 100644 index 53a0651651..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/azure_dike_equipment.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "pages":[ - { - "text":"结åˆ$(l:resources/azurite)è“铜矿$(/l)å’Œ$(l:general/pigment#blue)è“色颜料$(/l)çš„ä¿æŠ¤æ€§èƒ½çš„ç»“æžœçœŸçš„æ¿€å‘äº†ä½ çš„å…´è¶£ã€‚è¿™ç§ææ–™ä¼¼ä¹Žè¢«ä¸€ç§é€æ˜Žçš„光环包围ç€ï¼Œå½“ä½ ä¼¸æ‰‹åŽ»æ‹¿è‚¿å—æ—¶ï¼Œè¿™ç§å…‰çŽ¯éœ€è¦ä¸€äº›åŠªåŠ›æ‰èƒ½ç©¿é€ã€‚$(br2)$(italic)这会很有趣。。。", - "type":"patchouli:text" - }, - { - "text":"魔法光环环绕ç€ä½ çš„èº«ä½“ï¼Œä¿æŠ¤ä½ å…å—伤害。$(br)缓慢充电至特定é‡ã€‚$(br2)æ¯ä»¶è”šè“防御装备都会增加最大防护é‡ã€‚", - "type":"patchouli:text", - "title":"蔚è“防御" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/azure_dike_ring", - "text":"授予你$(c_green)4$()点$(c_blue)蔚è“防御$()积分。", - "type":"spectrum:fusion_shrine_crafting", - "title":"蔚è“防御环" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/azure_dike_belt", - "text":"授予你$(c_green)6$()点$(c_blue)蔚è“防御$()积分。", - "type":"spectrum:fusion_shrine_crafting", - "title":"蔚è“防御带" - } - ], - "advancement":"spectrum:progression/unlock_any_azure_dike_equipment", - "extra_recipe_mappings":{ - "spectrum:azure_dike_belt":0, - "spectrum:azure_dike_ring":0 - }, - "name":"蔚è“防御设备", - "icon":"spectrum:azure_dike_ring", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/base_trinkets.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/base_trinkets.json deleted file mode 100644 index b7c2fffddf..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/base_trinkets.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "pages":[ - { - "advancement":"spectrum:progression/unlock_fanciful_stone_ring", - "recipe":"spectrum:pedestal/tier3/trinkets/fanciful_stone_ring", - "text":"这些基本é…件被用作更高级饰å“的底座。所有最终饰å“都是在$(l:general/fusion_shrine)èžåˆç¥žæ®¿$()中制作的。", - "type":"spectrum:pedestal_crafting", - "title":"奇石戒指" - }, - { - "advancement":"spectrum:progression/unlock_fanciful_circlet", - "recipe":"spectrum:pedestal/tier3/trinkets/fanciful_circlet", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"奇异的圆环" - }, - { - "advancement":"spectrum:progression/unlock_fanciful_belt", - "recipe":"spectrum:pedestal/tier3/trinkets/fanciful_belt", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"奇幻腰带" - }, - { - "advancement":"spectrum:progression/unlock_fanciful_pendant", - "recipe":"spectrum:pedestal/tier3/trinkets/fanciful_pendant", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"奇幻åŠå " - } - ], - "advancement":"spectrum:progression/unlock_any_base_trinket", - "extra_recipe_mappings":{ - "spectrum:fanciful_circlet":0, - "spectrum:fanciful_pendant":0, - "spectrum:fanciful_stone_ring":0, - "spectrum:fanciful_belt":0 - }, - "name":"基本饰å“", - "icon":"spectrum:fanciful_stone_ring", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/bedrock_armor.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/bedrock_armor.json deleted file mode 100644 index a3ba864768..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/bedrock_armor.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "pages":[ - { - "text":"到目å‰ä¸ºæ­¢ï¼Œä½ èƒ½åšçš„æœ€ç»“å®žçš„ææ–™æ˜¯ä¸‹ç•Œåˆé‡‘。然而,修å¤ä¸‹ç•Œåˆé‡‘æŠ¤ç”²çš„ç¼ºç‚¹æ˜¯æ¯”åˆ¶é€ æŠ¤ç”²æœ¬èº«æ›´æ˜‚è´µã€‚æ­¤å¤–ï¼Œæ¯æ¬¡åˆ’伤都会导致防护性能下é™ã€‚当护甲$(italic)ä¸èƒ½$()被æŸå时,所有这些问题就ä¸é‚£ä¹ˆä¸¥é‡äº†ã€‚$(br)$(italic)æ°¸ä¸æž¯èŽï¼ŒçŸ³å¤´å¼€èŠ±ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_helmet", - "text":"åŸºå²©å¤´ç›”é…æœ‰$(bold)å¼¹å°„ç‰©ä¿æŠ¤V$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_chestplate", - "text":"基岩胸æ¿å¸¦æœ‰$(bold)ä¿æŠ¤V$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_leggings", - "text":"åŸºå²©æŠ¤è…¿é…æœ‰$(bold)çˆ†ç‚¸ä¿æŠ¤V$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_boots", - "text":"基岩é´é…有$(bold)ç«ç„°ä¿æŠ¤V$()。", - "type":"spectrum:fusion_shrine_crafting" - } - ], - "advancement":"spectrum:progression/unlock_bedrock_tools", - "extra_recipe_mappings":{ - "spectrum:bedrock_leggings":0, - "spectrum:bedrock_boots":0, - "spectrum:bedrock_chestplate":0, - "spectrum:bedrock_helmet":0 - }, - "name":"基岩护甲", - "icon":"spectrum:bedrock_chestplate", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/bedrock_tools.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/bedrock_tools.json deleted file mode 100644 index a72ae50afa..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/bedrock_tools.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "pages":[ - { - "text":"æ¯å½“你进入一个新的世界,你都会进行一项无æ„识的ã€é•¿è¾¾æ•°å¤©çš„ä»»åŠ¡ï¼Œå°†æ‘æ°‘èšé›†åœ¨ä½ å‘¨å›´ï¼Œå°†ä»–ä»¬å˜æˆåƒµå°¸ï¼Œå¹¶å†æ¬¡æ²»æ„ˆä»–们,结果他们中的一个人最终递给你一本ç»éªŒä¿®è¡¥é™„é­”ä¹¦ã€‚æ‰€æœ‰è¿™äº›ï¼Œåªæ˜¯ä¸ºäº†è®©ä½ ä¸å¿…ä¿®ç†ä½ çš„工具。$(br)这既ä¸å¤ªä»¤äººå…´å¥‹ï¼Œä¹Ÿä¸é€‚åˆç‰©ç§ã€‚现在您å¯ä»¥å¤„ç†åŸºå²©äº†ï¼Œæ— è®ºå¦‚何,您有了一个更方便的解决方案。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_pickaxe", - "text":"基岩稿带有$(bold)精准采集$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_axe", - "text":"基岩斧附带$(bold)效率VI$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_shovel", - "text":"基岩铲具有$(bold)效率VI$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_sword", - "text":"基岩剑具有$(bold)锋利VI$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_hoe", - "text":"基岩锄带有$(bold)幸è¿4$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_bow", - "text":"åŸºå²©å¼“é…æœ‰$(bold)力é‡VI$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_crossbow", - "text":"基岩弩é…备$(bold)快速装填III$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_shears", - "text":"基岩剪具有$(bold)精准采集$()。", - "type":"spectrum:fusion_shrine_crafting" - }, - { - "recipe":"spectrum:fusion_shrine/bedrock/bedrock_fishing_rod", - "text":"基岩钓竿带有$(bold)海之眷顾IV$()。", - "type":"spectrum:fusion_shrine_crafting" - } - ], - "advancement":"spectrum:progression/unlock_bedrock_tools", - "extra_recipe_mappings":{ - "spectrum:bedrock_axe":0, - "spectrum:bedrock_hoe":0, - "spectrum:bedrock_shovel":0, - "spectrum:bedrock_bow":0, - "spectrum:bedrock_sword":0, - "spectrum:bedrock_crossbow":0, - "spectrum:bedrock_pickaxe":0, - "spectrum:bedrock_shears":0, - "spectrum:bedrock_fishing_rod":0 - }, - "name":"基岩工具", - "icon":"spectrum:bedrock_pickaxe", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/block_flooder.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/block_flooder.json deleted file mode 100644 index 2f792463dc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/block_flooder.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"åƒç©´å±…人一样,你总是在附近手动照明或关闭难看的洞穴出å£ã€‚为了让你摆脱这项工作,你将$(l:creating_life/fading)消é€$(/l)的自我å¤åˆ¶èƒ½åŠ›ä½œä¸ºå¼€å‘æ–¹å—æ´ªæ°´çš„çµæ„Ÿã€‚$(br)扔进洞穴入å£ã€æ± å¡˜æˆ–沟壑,它们被填满了——在5%的情况下,结果看起æ¥ç”šè‡³å¯ä»¥æŽ¥å—ï¼", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/block_flooder", - "text":"为了填补空白,它直接从您的库存中æå–匹é…的方å—。如果你没有任何匹é…的方å—,它将回è½åˆ°é¹…åµçŸ³ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_block_flooder", - "extra_recipe_mappings":{ - "spectrum:block_flooder":0 - }, - "name":"æ–¹å—æ´ªæ°´", - "icon":"spectrum:block_flooder", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/celestial_pocketwatch.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/celestial_pocketwatch.json deleted file mode 100644 index 83e29a3617..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/celestial_pocketwatch.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"玛瑙碎片的问题是,创建的æ¡ä»¶éžå¸¸ä¸¥æ ¼ã€‚æ–°æœˆå¹¶ä¸æ˜¯æ¯å¤©éƒ½æœ‰çš„ã€‚æ¯æ¬¡ä½ çœ‹ç€æ—¶é’Ÿï¼Œå·§åˆçš„æ˜¯ï¼Œæ—¶é—´çª—å£å·²ç»è¿‡åŽ»äº†ä¸¤åˆ†é’Ÿã€‚$(br)打开大炮的时间:洋红的时间亲和力。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier4/celestial_pocketwatch", - "text":"$(italic)你的想法太棒了", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_celestial_pocketwatch", - "extra_recipe_mappings":{ - "spectrum:celestial_pocketwatch":0 - }, - "name":"天体怀表", - "icon":"spectrum:celestial_pocketwatch", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/crafting_tablet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/crafting_tablet.json deleted file mode 100644 index 8d18e0ff78..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/crafting_tablet.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "recipe":"spectrum:pedestal/tier1/crafting_tablet", - "text":"制作平æ¿ç”µè„‘ä¸ä»…仅是一个便æºå¼çš„制作å°ã€‚它å¯ä»¥ä¿å­˜ä¸€ä¸ªæ’å…¥çš„é…æ–¹ï¼Œè®©ä½ æŒ‰éœ€åˆ¶ä½œã€‚", - "type":"spectrum:pedestal_crafting", - "title":"制作平æ¿ç”µè„‘" - }, - { - "text":"å¯èƒ½ä¼šæœ‰ä¸€æ®µæ—¶é—´ï¼Œä½ è§‰å¾—ä½ ç»å¸¸éœ€è¦æŸç§ææ–™ï¼Œä»¥è‡³äºŽä½ æƒ³æŠŠå®ƒè‡ªåŠ¨åŒ–ã€‚æˆ–è€…ä½ æ˜¯é‚£äº›æŠŠæ¯ä¸€ä»¶ç‰©å“都自动化的å—è™ç‹‚之一,因为他们å¯ä»¥ã€‚$(br2)$(l:general/pedestal)颜料基座$()有一个专用槽,用于制作平æ¿ç”µè„‘ã€‚å½“æ‚¨æ·»åŠ å¸¦æœ‰æ¼æ–—æˆ–ç±»ä¼¼äºŽåŸºåº§çš„ç‰©å“æ—¶ï¼Œå®ƒä»¬å°†è¢«é€‚当ã€å‡åŒ€åœ°æ”¾ç½®ï¼Œå°±åƒä¿å­˜çš„é…æ–¹ä¸­æŒ‡å®šçš„那样。", - "type":"patchouli:text", - "title":"基座自动化" - } - ], - "advancement":"spectrum:progression/unlock_crafting_tablet", - "extra_recipe_mappings":{ - "spectrum:crafting_tablet":0 - }, - "name":"制作平æ¿ç”µè„‘", - "icon":"spectrum:crafting_tablet", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/crescent_clock.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/crescent_clock.json deleted file mode 100644 index d5cebb35f7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/crescent_clock.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"æ—¶é—´çš„æµåŠ¨ä¼¼ä¹Žæœ‰ä¸€äº›ç¥žå¥‡çš„ä¸œè¥¿ã€‚$(br)这个时钟是由时间的è§è¯äººç»„æˆçš„ï¼Œå®ƒå°†åœ¨è¿™æºæºä¸æ–­çš„开始和æµé€ä¸­ä¸ºä½ æŒ‡æ˜Žä¸€æ¡é“路。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/crescent_clock", - "text":"$(italic)如果我们的影å­å†’犯了你,你è¦çŸ¥é“,但这一切都会得到弥补。$(br)å½“è¿™äº›å¹»è±¡å‡ºçŽ°çš„æ—¶å€™ï¼Œä½ ä»¬åªæ˜¯åœ¨è¿™é‡Œç¡ç€äº†ã€‚$(br)而这个软弱而无èŠçš„主题,ä¸å†å±ˆæœï¼Œè€Œæ˜¯ä¸€ä¸ªæ¢¦æƒ³ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_crescent_clock", - "extra_recipe_mappings":{ - "spectrum:crescent_clock":0 - }, - "name":"新月时钟", - "icon":"spectrum:crescent_clock", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/end_portal_cracker.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/end_portal_cracker.json deleted file mode 100644 index 2373a68ba0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/end_portal_cracker.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)æ¯æ¬¡ä½ æƒ³è¿›å…¥æœ«å½±äººçš„王国,你都得游åŠä¸ªä¸–界。无论是è°åˆ›é€ äº†è¿™äº›ä¼ é€é—¨ã€‚。。你比他们现在强大多了。$(br2)嗯,差ä¸å¤šäº†ã€‚你还没有弄清楚如何自己创建这样的传é€é—¨ï¼Œä½†æŠŠå®ƒä»¬æ‰“包带回家?没问题。", - "type":"patchouli:text" - }, - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/end_portal.png" - ], - "text":"末影之门,就åƒåœ¨åœ°ä¸‹ä¸­å‘现的一样。", - "type":"patchouli:image", - "title":"釿–°å®šä½æœ«å½±ä¹‹é—¨" - }, - { - "item":"spectrum:end_portal_cracker", - "text":"这些ç»è¿‡ä¿®é¥°çš„æœ«å½±ä¹‹çœ¼å…·æœ‰æžå¼ºçš„ç ´åæ€§æ½œåŠ›ã€‚$(br)他们需è¦èƒ½å¤Ÿæ“纵éžå¸¸åšå›ºçš„é—¨æž¶ã€‚åœ¨æœ«å½±ä¹‹é—¨åŸºåº§ä¸­ä½¿ç”¨æ—¶ï¼Œåº”å¿«é€Ÿä¿æŒè·ç¦»ã€‚", - "type":"patchouli:spotlight", - "title":"åŸºåº§é…æ–¹" - }, - { - "multiblock":{ - "mapping":{ - "P":"minecraft:end_portal", - "V":"spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=true]", - "H":"spectrum:cracked_end_portal_frame[eye_type=ender,facing_vertical=false]" - }, - "offset":[ - 0, - 3, - 0 - ], - "symmetrical":false, - "pattern":[ - [ - " HHH ", - "VPPPV", - "VPPPV", - "VPPPV", - " HHH ", - " 0 " - ] - ] - }, - "name":"é‡å»ºæœ«å½±ä¹‹é—¨", - "text":"ä½ åªéœ€å°†ä¼ é€é—¨æ¢å¤åˆ°æœ€åˆçš„状æ€ï¼Œæ·»åŠ æœ«å½±çç ï¼Œå®Œæˆï¼", - "type":"patchouli:multiblock" - } - ], - "advancement":"spectrum:progression/unlock_end_portal_cracker", - "extra_recipe_mappings":{ - "spectrum:cracked_end_portal_frame":0, - "spectrum:end_portal_cracker":0 - }, - "name":"æœ«å½±ä¹‹é—¨é‡æ–°å®šä½", - "icon":"minecraft:end_portal_frame", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ender_bag.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ender_bag.json deleted file mode 100644 index 0d53f2da0a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ender_bag.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ender_bag", - "text":"$(italic)放置一个末影箱å­ï¼Œæ‰“开它,然åŽç”¨ä¸€æŠŠé™„魔长Œ–æŽ˜å®ƒï¼Œè¿™å¹¶ä¸æ˜¯ä½ è®¤ä¸ºæœ‰è¶£çš„事情。$(br)è¿™å°±æ˜¯ä¸ºä»€ä¹ˆä½ å‘æ˜Žäº†è¿™ä¸ªä¸œè¥¿ã€‚", - "type":"patchouli:spotlight", - "title":"æåŒ…" - }, - { - "recipe":"spectrum:pedestal/tier1/ender_bag", - "text":"åªè¦æ‰“开它,你的末影箱å­é‡Œçš„东西就在那里。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ender_bag", - "extra_recipe_mappings":{ - "spectrum:ender_bag":0 - }, - "name":"æåŒ…", - "icon":"spectrum:ender_bag", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ender_splice.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ender_splice.json deleted file mode 100644 index a72d1caa0c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/ender_splice.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ender_splice", - "text":"$(italic)毫无疑问,末影人最有趣的事情是他们的éšå½¢ä¼ æ€èƒ½åŠ›ã€‚ä½ å¤åˆ¶å®ƒç›¸å½“æˆåŠŸï¼ç„¶è€Œï¼Œä¸ºäº†ç¡®å®šä¼ é€çš„ç›®çš„åœ°ï¼Œä½ å¿…é¡»é¦–å…ˆæ‹æ‘„该ä½ç½®çš„快照。$(br)末影人ä¸å¿…这么åšâ€”—为什么?$()$(br2)末影绑定器的一个é™åˆ¶æ˜¯ï¼Œåªèƒ½åœ¨å…¶ç»‘定的相åŒç»´åº¦ä¸­ä½¿ç”¨ã€‚", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier3/ender_splice", - "text":"第一次使用末影绑定器ä¿å­˜å½“å‰ä½ç½®ã€‚$(br)第二次使用会将你传é€å›žåŽŸå§‹ä½ç½®ã€‚甚至å¯ä»¥ç”¨äºŽå…¶ä»–玩家。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:ender_splice{Enchantments: [{id: \"minecraft:unbreaking\", lvl: 3s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"附魔使用$(l:enchanter/enchanting_items)注魔基座$(/l)将末影绑定器为è€ä¹…,å‡å°‘其在使用时断裂的机会。", - "type":"patchouli:spotlight", - "title":"è€ä¹…" - }, - { - "item":"spectrum:ender_splice{Enchantments: [{id: \"spectrum:resonance\", lvl: 1s}]}", - "advancement":"spectrum:lategame/create_resonance_enchanted_book", - "text":"附魔通过使用“$(l:enchanting/enchanting_items)注魔基座$(/l)â€ä½¿æœ«å½±ç»‘定器具有共振,将å…许跨维度传é€ã€‚", - "type":"patchouli:spotlight", - "title":"共振" - } - ], - "advancement":"spectrum:progression/unlock_ender_splice", - "extra_recipe_mappings":{ - "spectrum:ender_splice":0 - }, - "name":"末影绑定器", - "icon":"spectrum:ender_splice", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/exchange_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/exchange_staff.json deleted file mode 100644 index 8e2cee4c40..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/exchange_staff.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "pages":[ - { - "text":"对于那些ä¸ä½åœ¨ç®€å•的鹅åµçŸ³æˆ¿å­é‡Œï¼Œæˆ–者根本没有围墙的人——当然,你ä¸ä¼šè§‰å¾—å—åˆ°äº†æŽ¥å¾…â€”â€”ä½ å·²ç»æƒ³åˆ°äº†äº¤æ¢å·¥ä½œäººå‘˜ã€‚$(br2)采矿刚刚å˜å¾—更加有趣。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier4/exchange_staff", - "text":"蹲下å•击以选择所有å¯ç”¨çš„ä½ç½®modi。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:exchange_staff{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"附魔通过使用$(l:enchanting/enchanting_items)注魔基座$(/l)与幸è¿äº¤æ¢ç‰©å“,å¯ä»¥åœ¨äº¤æ¢æ—¶å¢žåŠ çŸ¿çŸ³æŽ‰è½ï¼Œç±»ä¼¼äºŽä½¿ç”¨æ™®é€šè´¢å¯Œå·¥å…·ã€‚", - "type":"patchouli:spotlight", - "title":"附魔-幸è¿" - }, - { - "item":"spectrum:exchange_staff{Enchantments: [{id: \"spectrum:silk_touch\", lvl: 1s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"附魔通过使用精准采集交æ¢ç‰©å“,$(l:enchanting/enchanting_items)注魔基座$(/l)å°†ä½¿å…¶èƒ½å¤Ÿå‡†ç¡®åœ°äº¤æ¢æ–¹å—,而ä¸ç ´å更脆弱的方å—,如玻璃或矿石。", - "type":"patchouli:spotlight", - "title":"精准采集" - } - ], - "advancement":"spectrum:progression/unlock_exchange_staff", - "extra_recipe_mappings":{ - "spectrum:exchange_staff":0 - }, - "name":"交æ¢ç‰©å“", - "icon":"spectrum:exchange_staff", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/gemstone_armor.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/gemstone_armor.json deleted file mode 100644 index 4f82d22545..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/gemstone_armor.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "pages":[ - { - "text":"你有足够的时间å‘展自己的个人战斗风格。$(br)为了更好地支æŒè¿™ç§é£Žæ ¼ï¼Œä½ ç”¨æœ‰è¶£çš„ææ–™è®¾è®¡äº†ä¸€ç³»åˆ—匹é…的装备。$(br2)缺点:生产中使用的碎片有点易碎。因此,该设备的è€ä¹…性相对较低。", - "type":"patchouli:text" - }, - { - "text":"为了利用他们独特的能力,你需è¦ä¸€äº›ç‰¹æ®Šçš„ææ–™ã€‚$(br2)$(bold)头盔:$()å½“è™šæ— ä¸Žåœ°ç‹±ç›¸é‡æ—¶$(br2)$(bold)胸甲:$()黄金比例$(br2)$(bold)护腿:$()噩梦之æº$(br2)$(bold)é´å­ï¼š$()冥冥之痛$(br2)它们å¯ä»¥ç”¨$(l:general/gemstone_shards)å®çŸ³ç¢Žç‰‡$()在é“砧中修å¤ã€‚", - "type":"patchouli:text" - }, - { - "advancement":"spectrum:hidden/collect_vanilla/collect_ender_eye", - "recipe":"spectrum:pedestal/tier2/emergency_armor/emergency_helmet", - "text":"让攻击者在攻击你时å˜å¾—软弱和缓慢,让你åƒå½±å­ä¸€æ ·ç©¿è¿‡ä»–们的爪å­ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:hidden/collect_vanilla/collect_nautilus_shell", - "recipe":"spectrum:pedestal/tier2/emergency_armor/emergency_chestplate", - "text":"å½“ä½ è¢«å‡»ä¸­æ—¶ï¼Œç»™äºˆä¼¤å®³å¸æ”¶å’Œå³æ—¶ç”Ÿå‘½ï¼Œä½¿ä½ æˆä¸ºå¼ºå¤§çš„近战战士。", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:hidden/collect_vanilla/collect_phantom_membrane", - "recipe":"spectrum:pedestal/tier2/emergency_armor/emergency_leggings", - "text":"当你被击中时,给予短暂的速度和éšå½¢çˆ†å‘,给你一个撤退的机会。éžå¸¸é€‚åˆè¿œç¨‹ä½œæˆ˜ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:hidden/collect_vanilla/collect_ghast_tear", - "recipe":"spectrum:pedestal/tier2/emergency_armor/emergency_boots", - "text":"在命中时给予你短暂的抵抗力爆å‘å’Œå†ç”Ÿï¼Œä½¿ä½ åœ¨çŸ­æ—¶é—´å†…æˆä¸ºä¸€å µå·¨å¤§çš„墙。", - "type":"spectrum:pedestal_crafting" - } - ], - "advancement":"spectrum:progression/unlock_gemstone_armor_category", - "extra_recipe_mappings":{ - "spectrum:emergency_leggings":0, - "spectrum:emergency_helmet":0, - "spectrum:emergency_boots":0, - "spectrum:emergency_chestplate":0 - }, - "name":"å®çŸ³æŠ¤ç”²", - "icon":"spectrum:emergency_chestplate", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/gleaming_pin.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/gleaming_pin.json deleted file mode 100644 index 68246d3973..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/gleaming_pin.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "text":"在你的探险中,你被箭一次åˆä¸€æ¬¡åœ°å°„中,如果敌人还没有消失在下一个角è½çš„è¯ï¼Œä½ åªèƒ½æƒŠæåœ°çŽ¯é¡¾å››å‘¨ï¼Œå®Œå…¨é”™è¿‡æ•Œäººã€‚$(br2)当你被击中时,闪闪å‘光的大头针会å‘出魔法浪涌,穿过墙å£å¹¶é™„ç€åˆ°é™„近的生物上,这样你就å¯ä»¥è½»æ¾åœ°è¿½è¸ªåˆ°å®ƒä»¬ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/gleaming_pin", - "text":"$(br)$(italic)无法奔跑,无法éšè—", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - }, - { - "item":"spectrum:gleaming_pin{Enchantments: [{id: \"spectrum:sniping\", lvl: 2s}]}", - "advancement":"spectrum:progression/enchantments/sniper", - "text":"附魔带狙击的闪耀别针å…è®¸æµªæ¶Œç©¿é€æ›´å¤šç‰©è´¨ï¼Œè¿›ä¸€æ­¥å¢žåŠ å…¶å°„ç¨‹ã€‚", - "type":"patchouli:spotlight", - "title":"狙击" - } - ], - "advancement":"spectrum:progression/unlock_gleaming_pin", - "extra_recipe_mappings":{ - "spectrum:gleaming_pin":0 - }, - "name":"闪耀别针", - "icon":"spectrum:gleaming_pin", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/glow_vision_helmet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/glow_vision_helmet.json deleted file mode 100644 index 33e218eb2c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/glow_vision_helmet.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:glow_vision_helmet", - "text":"$(italic)夜光鱿鱼之所以如此特别,是因为它们在洞穴的黑暗中照亮了你的路。尽管它们很漂亮,但它们似乎过于频ç¹åœ°è¢«å†²ä¸Šå²¸ï¼Œå¹¶åœ¨é‚£é‡Œé­é‡æ‚²æƒ¨çš„结局。$(br)通过设计眼镜,你å¯ä»¥åœ¨æ´žç©´çš„黑暗中继续引导你,以此æ¥çºªå¿µä»–们笨拙的光辉é—产。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/glow_vision_helmet", - "text":"如果你在一个黑暗的地区,有辉光油墨囊,辉光眼镜授予你夜视效果。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_glow_vision_helmet", - "extra_recipe_mappings":{ - "spectrum:glow_vision_helmet":0 - }, - "name":"å‘光护目镜", - "icon":"spectrum:glow_vision_helmet", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/greater_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/greater_potion_pendant.json deleted file mode 100644 index d0a6799b9a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/greater_potion_pendant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"作å“很åƒ$(l:magical_items/lesser_potion_pendant)它的弟弟$(/l)。$(br)相比之下,这个版本有三个房间,æ¯ä¸ªæˆ¿é—´å¯ä»¥è£…满ä¸åŒçš„è¯å‰‚。由于å•个腔室较å°ï¼Œå› æ­¤åªèƒ½æ”¯æŒé«˜è¾¾I级的效果。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/greater_potion_pendant", - "text":"使用$(l:magical_blocks/potion_workshop)è¯æ°´å·¥åœº$(/l)将其装满è¯å‰‚。$(br)对于æ¯ä¸€ç§è¯å‰‚,你的$(l:general/pigment_palette)颜料调色æ¿$(/l)都会消耗掉特定的颜色能é‡ã€‚æ°´å¹³è¶Šé«˜ï¼Œæˆæœ¬è¶Šé«˜ã€‚", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_greater_potion_pendant", - "extra_recipe_mappings":{ - "spectrum:greater_potion_pendant":0 - }, - "name":"大魔è¯åŠå ", - "icon":"spectrum:greater_potion_pendant", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/jeopardant.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/jeopardant.json deleted file mode 100644 index d2cbdf036a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/jeopardant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"在紧急状æ€ä¸‹ï¼Œè‚¾ä¸Šè…ºç´ ä¸ä¸€å®šæ˜¯ä½ é™è„‰ä¸­å”¯ä¸€çš„血液。$(br)éšç€æ¯ä¸€é¢—失去的心,这枚戒指上的$(l:resources/scarlet)深红色å®çŸ³$()闪耀ç€è¶Šæ¥è¶Šäº®çš„光芒,以与你的竞速心è„相åŒçš„节å¥è·³åŠ¨â€”â€”ç»™ä½ ä¸€ä¸ªæŒ‡æ•°çº§çš„ä¼¤å®³æå‡ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/jeopardant", - "text":"$(italic)告诉我你对你的处境有什么看法$(br)夿‚ã€æ¶åŒ–", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_jeopardant", - "extra_recipe_mappings":{ - "spectrum:jeopardant":0 - }, - "name":"孤勇戒指", - "icon":"spectrum:jeopardant", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/knowledge_gem.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/knowledge_gem.json deleted file mode 100644 index 2a6c553f61..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/knowledge_gem.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)æ¯å½“ä½ æ¡èµ·ä¸€ä¸ªæ¯å½“ä½ æ€æ­»æ•Œäººæ—¶å‡ºçŽ°çš„ç»¿è‰²å°çƒï¼Œä½ å°±ä¼šå˜å¾—æ›´èªæ˜Žâ€”—æ®è¯´ã€‚$(br2)然而,ä¸å¯é¿å…的笨拙死亡æ„味ç€ä½ æ€»æ˜¯å¾ˆå¿«å¤±åŽ»è¿™ç§ç»éªŒã€‚结晶并安全存放在您的箱å­é‡Œï¼Œç„¶è€Œï¼Œå®ƒä»¬å°†å°½å¯èƒ½å®‰å…¨ã€‚$()", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier3/knowledge_gem", - "text":"一颗å®çŸ³æœ€å¤šå¯ä»¥å®¹çº³10000ç»éªŒã€‚$(bold)效率$()$(l:enchanting/enchanting_items)附魔$()增加了这个é™åˆ¶ï¼Œ$(bold)快速装填$()æé«˜äº†XP的推拉速度。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_knowledge_gem", - "extra_recipe_mappings":{ - "spectrum:knowledge_gem":0 - }, - "name":"知识å®çŸ³", - "icon":"spectrum:knowledge_gem{stored_experience:500}", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/lesser_potion_pendant.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/lesser_potion_pendant.json deleted file mode 100644 index 84325281b3..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/lesser_potion_pendant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"è¯æ°´å¾ˆæ–¹ä¾¿ã€‚然而,æºå¸¦å¤§çº¦ä¸€åŠçš„库存是éžå¸¸éº»çƒ¦çš„。$(br)è¯å‰‚æŒ‚ä»¶æœ‰ä¸€ä¸ªå°æˆ¿é—´ï¼Œé‡Œé¢å¯ä»¥è£…满è¯å‰‚。$(br)åªè¦ä½ æˆ´ä¸Šå®ƒï¼Œä½ å°±ä¼šå¾—到那ç§è¯å‰‚的效果。由于没有摄入è¯å‰‚,效果åªèƒ½è¾¾åˆ°ä¸‰çº§ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/lesser_potion_pendant", - "text":"使用$(l:magical_blocks/potion_workshop)è¯æ°´å·¥åœº$(/l)将其装满魔è¯ï¼Œå°±åƒä½¿ç”¨ç“¶å­ä¸€æ ·ã€‚", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_lesser_potion_pendant", - "extra_recipe_mappings":{ - "spectrum:lesser_potion_pendant":0 - }, - "name":"å°é­”è¯åŠå ", - "icon":"spectrum:lesser_potion_pendant", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/multitool.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/multitool.json deleted file mode 100644 index ee64fe1f21..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/multitool.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:multitool", - "text":"æ¯å½“你离开家,你都会éšèº«æºå¸¦åŠä¸ªå·¥å…·æ£šã€‚考虑到你å¯ä»¥éšèº«æºå¸¦å¤§é‡çŸ³å¤´ï¼Œè¿™ç”šè‡³ä¸å€¼å¾—一æã€‚然而,一个结åˆäº†é•ã€æ–§ã€é“²å’Œé”„å¤´åŠŸèƒ½çš„é€šç”¨å·¥å…·å°†é€‚åˆæ‚¨ã€‚$()$(br)", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier2/multitool", - "text":"它在å•个任务中效率ä¸é«˜ï¼Œä½†æ¯”æ¯ä¸‰ç§’æ›´æ¢ä¸€æ¬¡å·¥å…·è¦å¥½å¾—多。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:build_basic_pedestal_structure", - "extra_recipe_mappings":{ - "spectrum:multitool":0 - }, - "name":"多用途工具", - "icon":"spectrum:multitool", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/natures_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/natures_staff.json deleted file mode 100644 index 15eac6c90e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/natures_staff.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "text":"利用$(c_brown)大自然$()å’Œ$(c_lime)ç¹æ®–力$()的神奇元素,你创造了这一天æ‰ã€‚$(br)与你的新设备相比,施肥是一个笑è¯ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/natures_staff", - "text":"$(italic)指å‘你想看到的东西", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:natures_staff{Enchantments: [{id: \"minecraft:efficiency\", lvl: 5s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"使用注魔基座有效地对自然之æ–进行$(l:enchanting/enchanting_items)附魔$(/l)å¯ä»¥é™ä½Ž$(l:creating_life/fading#vegetal)æ¤ç‰©èƒ½é‡ç²‰$(/l)在æ¯ä¸€å…³å¡ä¸­è¢«æ¶ˆè€—的几率。", - "type":"patchouli:spotlight", - "title":"附魔-效率" - } - ], - "advancement":"spectrum:progression/unlock_natures_staff", - "extra_recipe_mappings":{ - "spectrum:natures_staff":0 - }, - "name":"自然之æ–", - "icon":"spectrum:natures_staff", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/neat_ring.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/neat_ring.json deleted file mode 100644 index e964b14bef..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/neat_ring.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)æˆ‘åªæ˜¯è§‰å¾—它们很整æ´ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/neat_ring", - "text":"", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_neat_ring", - "extra_recipe_mappings":{ - "spectrum:neat_ring":0 - }, - "name":"æ•´é½çš„æˆ’指 ", - "icon":"spectrum:neat_ring", - "secret":true, - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/pigment_palette.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/pigment_palette.json deleted file mode 100644 index 2f73d18936..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/pigment_palette.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "pages":[ - { - "text":"维护你的魔法装备本身就是一项任务。éšèº«æºå¸¦ä½ éœ€è¦çš„å„ç§é¢œæ–™ä¹Ÿæ˜¯ä½ åº“存中的一大消耗。$(br)既然你已ç»ç†Ÿæ‚‰äº†é¢œæ–™ï¼Œä½ å°±æ²¡æœ‰ç†ç”±åƒä¸­ä¸–纪那样拖ç€å®ƒåˆ°å¤„走了。你积累了那么多知识,ç»å—了那么多艰难困苦ï¼", - "type":"patchouli:text" - }, - { - "text":"现在是一个新的创造:颜料调色æ¿ã€‚现在你是一个真正的色彩艺术家。$(br)颜料调色æ¿èƒ½å¤Ÿå¸æ”¶ã€åŽ‹ç¼©å’Œå­˜å‚¨$(l:general/pigment)颜料$(/l)的元素魔法。颜料调色æ¿ä½œä¸ºä¸€ä¸ªå•独的设备,能够为你的所有魔法装置和设备æä¾›åˆé€‚的颜料。$(br2)唯一的缺点是:失去了它们的世俗形æ€ï¼Œæ²¡æœ‰åŠžæ³•å°†è‰²ç´ è½¬åŒ–å›žç‰©ç†å½¢æ€ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/pigment_palette", - "text":"", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_pigment_palette", - "extra_recipe_mappings":{ - "spectrum:pigment_palette":0 - }, - "name":"颜料调色æ¿", - "icon":"spectrum:pigment_palette", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/placement_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/placement_staff.json deleted file mode 100644 index 30395c402b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/placement_staff.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"你总是花很多时间放置方å—。你几乎å¯ä»¥è®¤ä¸ºè¿™æ˜¯ä½ å­˜åœ¨çš„主è¦åŽŸå› ã€‚æ”¾ç½®è®¸å¤šç±»ä¼¼çš„æ–¹å—很ä¹å‘³ã€‚$(br2)或者$(italic)æ›´åƒæ˜¯$():很ä¹å‘³ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/placement_staff", - "text":"蹲下å•击以选择所有å¯ç”¨çš„ä½ç½®modi。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_placement_staff", - "extra_recipe_mappings":{ - "spectrum:placement_staff":0 - }, - "name":"结构相关", - "icon":"spectrum:placement_staff", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/preenchanted_tools.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/preenchanted_tools.json deleted file mode 100644 index 47439ce701..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/preenchanted_tools.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "pages":[ - { - "text":"那张愚蠢的黑曜石桌å­åœ¨ç»™ä½ æƒ³è¦çš„附魔时éžå¸¸å›ºæ‰§ã€‚$(br)此外,你è¦ä¹ˆè¦å®°æ€ä¸€æ•´ç¾¤å¥¶ç‰›ï¼Œè¦ä¹ˆè¦æŠ¢åŠ«å几个æ‘庄的书ç±ï¼ˆé𾿀ªé‚£é‡Œçš„å±…æ°‘å¦‚æ­¤æ„šè ¢ï¼Œè€Œä¸”éƒ½å¾ˆé«˜å…´è¢«åƒµå°¸åƒæŽ‰ï¼‰ã€‚", - "type":"patchouli:text" - }, - { - "text":"准确地知é“你想è¦ä»€ä¹ˆçš„优势使你能够塑造你的工具,使它们天生具备这些å“质。色彩的魔力使它æˆä¸ºå¯èƒ½ã€‚$(br)ä¸å¹¸çš„æ˜¯ï¼Œè¿™äº›ç‰¹æ€§åœ¨å¾ˆå¤§ç¨‹åº¦ä¸Šä½¿è¿™äº›å·¥å…·éžå¸¸è„†å¼±ã€‚", - "type":"patchouli:text" - }, - { - "advancement":"spectrum:progression/tools/unlock_silker_pickaxe", - "recipe":"spectrum:pedestal/tier1/tools/silker_pickaxe", - "text":"这把é•的两端镶嵌ç€é»„玉,甚至å¯ä»¥ä»ŽçŸ³å¤´ä¸Šåˆ‡å‰²å‡ºæœ€ç²¾è‡´çš„ææ–™ã€‚$(br)温柔的é•预先被$(c_cyan)$(bold)精准采集$()è¿·ä½äº†ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:progression/tools/unlock_fortune_pickaxe", - "recipe":"spectrum:pedestal/tier1/tools/fortune_pickaxe", - "text":"它充满了$(c_yellow)能é‡$()的力é‡ï¼Œå¯ä»¥è®©ä½ ä»Žæ¯ä¸€ä¸ªçŸ¿è„‰ä¸­æŒ–出最åŽä¸€ç‚¹çŸ¿çŸ³ã€‚幸è¿çš„é•被$(c_yellow)$(bold)å¹¸è¿ III$()预先迷ä½äº†ã€‚", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:progression/tools/unlock_looting_falchion", - "recipe":"spectrum:pedestal/tier1/tools/looting_falchion", - "text":"çŸ­è€Œé”‹åˆ©çš„åˆ€ç‰‡ä½¿è¿™ä»¶ç‰©å“æˆä¸ºè‡´å‘½æ­¦å™¨â€”—但以è€ä¹…性为代价。$(br)剃刀自带了$(c_magenta)$(bold)掠夺III$()。", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:progression/tools/unlock_voiding_pickaxe", - "recipe":"spectrum:pedestal/tier2/voiding_pickaxe", - "text":"作为团队中的局外人,é—忘é•具有大é‡çš„è€ç”¨æ€§å’ŒæŒ–掘速度。然而,所有开采的方å—都被$(l:enchanting/curse_of_the_void)æ‘§æ¯$()。", - "type":"spectrum:pedestal_crafting" - }, - { - "advancement":"spectrum:progression/tools/unlock_resonant_pickaxe", - "text":"这把明亮的è“色é•与其周围环境的温和固有振动相匹é…。这å…è®¸ä½ ä¿æŒæ–¹å—完好无æŸï¼Œå¦åˆ™ä¼šè¢«æ­¦åŠ›æ‘§æ¯ã€‚$(br)共振é•预先被$(l:enchanting/resonance)共振$(/l)附魔了。", - "type":"patchouli:text", - "title":"共振é•" - }, - { - "advancement":"spectrum:progression/tools/unlock_resonant_pickaxe", - "recipe":"spectrum:pedestal/tier4/resonant_pickaxe", - "type":"spectrum:pedestal_crafting" - } - ], - "advancement":"spectrum:progression/tools/unlock_any_preenchanted_tool", - "extra_recipe_mappings":{ - "spectrum:voiding_pickaxe":0, - "spectrum:silker_pickaxe":0, - "spectrum:fortune_pickaxe":0, - "spectrum:resonant_pickaxe":0, - "spectrum:looting_falchion":0 - }, - "name":"预先附魔的工具", - "icon":"spectrum:fortune_pickaxe", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/puff_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/puff_circlet.json deleted file mode 100644 index 76e284c27c..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/puff_circlet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"这个闪闪å‘光的é“环在你周围形æˆäº†ä¸€å±‚ç©ºæ°”ä¿æŠ¤è†œã€‚$(br)授予你$(c_green)4$()点$(c_blue)蔚è“防御$()积分。$(br)ä½¿ç”¨è¿™äº›ä¿æŠ¤è†œï¼Œå®ƒä¸ä»…å¯ä»¥ä¿æŠ¤ä½ å…å—æ•Œäººç‚®å¼¹çš„袭击,甚至å¯ä»¥ç¼“冲一次深度å è½ã€‚$(br)泡芙头ç®è¿˜èƒ½é˜²æ­¢å†œç”°è¢«è·µè¸ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/puff_circlet", - "text":"$(italic)骷髅在一个ä¸å¯é¢„è§çš„æ—¶åˆ»ä»ŽèƒŒåŽè¢­å‡»ä½ çš„æ—¥å­ä¸€åŽ»ä¸å¤è¿”了。", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_puff_circlet", - "extra_recipe_mappings":{ - "spectrum:puff_circlet":0 - }, - "name":"泡芙头ç®", - "icon":"spectrum:puff_circlet", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/radiance_pin.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/radiance_pin.json deleted file mode 100644 index 954762928d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/radiance_pin.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"æ‚¨æ²¡æœ‰éšæœºé€‰æ‹©å…‰èŠ’ä¹‹é’ˆçš„å称以类似$(l:magical_items/radiance_staff)光芒法æ–$(/l)。$(br)如果您处于黑暗区域,光芒之针会自动在您身上创建一个ä¸å¯è§çš„光。然而,与$(l:magical_items/radiance_staff)光芒法æ–$(/l)çš„ç¯å…‰ä¸åŒï¼Œå®ƒä»¬æ…¢æ…¢å˜å¾—è¶Šæ¥è¶Šæš—,直到最终完全消散。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/radiance_pin", - "text":"很高兴看到你在洞穴探险中走过的é“路。", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_radiance_pin", - "extra_recipe_mappings":{ - "spectrum:radiance_pin":0 - }, - "name":"光芒之针", - "icon":"spectrum:radiance_pin", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/radiance_staff.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/radiance_staff.json deleted file mode 100644 index 4c19588dee..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/radiance_staff.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "text":"ç«æŠŠæœ‰ä¸€ä¸ªå…³é”®çš„ç¼ºç‚¹ï¼šä½ åªèƒ½åœ¨å·²ç»ç«™åœ¨é»‘暗中的时候放置。相比之下,光芒法æ–å¯ä»¥åœ¨è¿œå¤„和空中放置ç¯å…‰ï¼Œç…§äº®è¿œå¤„的大型洞穴。$(br)最åŽï¼Œè¿™äº›å…‰çº¿æ˜¯çœ‹ä¸è§çš„,éžå¸¸é€‚åˆåœ¨å¤§æ°”中照亮你的建筑。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier2/light_staff", - "text":"用法æ–é¼ æ ‡å³é”®å•击“放置的ç¯å…‰â€ä»¥è°ƒæ•´ç¯å…‰çº§åˆ«ã€‚$(br)他们甚至å¯ä»¥åœ¨æ°´ä¸‹è¢«å¬å”¤ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "item":"spectrum:light_staff{Enchantments: [{id: \"minecraft:infinity\", lvl: 1s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"使用注魔基座将光芒法æ–$(l:enchanting/enchanting_items)附魔$(/l)æ— é™ï¼Œå°†å®Œå…¨æ¶ˆé™¤å¯¹é—ªå…‰çŸ³çš„需求。", - "type":"patchouli:spotlight", - "title":"附魔-æ— é™" - } - ], - "advancement":"spectrum:progression/unlock_light_staff", - "extra_recipe_mappings":{ - "spectrum:light_staff":0 - }, - "name":"光芒法æ–", - "icon":"spectrum:light_staff", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/restoration_tea.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/restoration_tea.json deleted file mode 100644 index f025bb1ff4..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/restoration_tea.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"有什么比在下雨的晚上å在家里的å£ç‚‰æ—å–一æ¯èŒ¶æ›´èˆ’适的了å—?$(br)当然:事先æ€äº†ä¸€ä¸ªBOSS。$(br)è¿™ç§èŒ¶æ˜¯ç”±$(l:resources/jade_vines)å¤çŽ‰è—¤æ ‘$(/l)的花瓣酿造而æˆçš„,既能让你放æ¾ï¼Œåˆèƒ½ä¿æŠ¤ä½ å…å—调零的致命影å“。$(italic)实用$()", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:potion_workshop_crafting/restoration_tea", - "text":"$(italic)别想和牛奶一起å–ï¼", - "type":"spectrum:potion_workshop_crafting", - "title":"å·¥åŽ‚é…æ–¹" - } - ], - "advancement":"spectrum:hidden/collect_jade_vine_petals", - "extra_recipe_mappings":{ - "spectrum:restoration_tea":0 - }, - "name":"æ¢å¤ä¹‹èŒ¶", - "icon":"spectrum:restoration_tea", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/seven_league_boots.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/seven_league_boots.json deleted file mode 100644 index d9a8c0c6ad..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/seven_league_boots.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "pages":[ - { - "text":"从A到B很ä¹å‘³ã€‚$(br)特别是在$(l:resources/geodes)æ™¶æ´ž$(/l)的情况下,它们通常很远,因此在那里的旅程需è¦ç›¸å½“长的时间。$(br)有了这些神奇的é´å­ï¼Œä½ çš„移动能力比以å‰å¤§å¾—多。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/seven_league_boots", - "text":"æé«˜ç§»åŠ¨é€Ÿåº¦å’Œè·³è·ƒé«˜åº¦ã€‚", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - }, - { - "item":"spectrum:seven_league_boots{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "text":"力é‡é™„魔进一步增加移动速度加æˆã€‚", - "type":"patchouli:spotlight", - "title":"力é‡" - } - ], - "advancement":"spectrum:progression/unlock_seven_league_boots", - "extra_recipe_mappings":{ - "spectrum:seven_league_boots":0 - }, - "name":"飞跃é´", - "icon":"spectrum:seven_league_boots", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/take_off_belt.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/take_off_belt.json deleted file mode 100644 index 3ad49adf8f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/take_off_belt.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "pages":[ - { - "text":"爬山或畸形的洞穴总是éžå¸¸è€—时。如果你看ä¸åˆ°æ”€çˆ¬ç•¸å½¢å²©æž¶çš„选择,你别无选择,åªèƒ½åœ¨å²©çŸ³ä¸Šå¼€è¾Ÿä¸€æ¡è·¯ã€‚$(br)使用新的蓄能腰带,你å¯ä»¥åœ¨èº«åŽä¿æŒå·¨å¤§çš„垂直è·ç¦»ï¼ŒèŠ‚çœæ—¶é—´ï¼Œä¿æŠ¤ä½ ç¾Žä¸½çš„天性å…å—ç ´å。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/take_off_belt", - "text":"潜行æ¥è“„力跳高,潜行时间越长,力é‡è¶Šå¤§ã€‚$(br2)$(italic)尽管å字暗示ç€ï¼Œè¯·ä¸è¦è„±æŽ‰å®ƒã€‚", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - }, - { - "item":"spectrum:take_off_belt{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "advancement":"spectrum:progression/enchantments/vanilla_projectile", - "text":"力é‡é™„魔进一步增加跳跃高度。", - "type":"patchouli:spotlight", - "title":"力é‡" - }, - { - "item":"spectrum:take_off_belt{Enchantments: [{id: \"minecraft:feather_falling\", lvl: 4s}]}", - "advancement":"spectrum:progression/enchantments/vanilla_quitoxic", - "text":"ç¾½è½ä¼šç»™ä½ ä¸€ä¸ªçŸ­æš‚çš„ç¼“é™æ•ˆæžœï¼Œè®©ä½ æ›´å¥½åœ°å¯¼èˆªåˆ°ä½ æƒ³è¦é™è½çš„地方。事实上,高水平的羽è½å¯èƒ½æ˜¯ä¸€ç§éžå¸¸å¯è¡Œçš„æ–¹æ³•,å¯ä»¥å†æ¬¡å®‰å…¨åœ°ä»Žæ‚¬å´–上å è½ã€‚", - "type":"patchouli:spotlight", - "title":"ç¾½è½" - } - ], - "advancement":"spectrum:progression/unlock_take_off_belt", - "extra_recipe_mappings":{ - "spectrum:take_off_belt":0 - }, - "name":"蓄能腰带", - "icon":"spectrum:take_off_belt", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/tidal_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/tidal_circlet.json deleted file mode 100644 index f0775105a2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/tidal_circlet.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"这些充满敌æ„的水下寺庙是一个难以驾驭的地方。幸è¿çš„æ˜¯ï¼Œåœ¨ä½ å¯»æ‰¾å®è—的过程中,你å¶ç„¶å‘现了一个大海之心。$(br)这个头ç®è®©ä½ åœ¨æ°´ä¸‹ç”Ÿæ´»å’Œé‡‡çŸ¿ï¼Œå°±å¥½åƒå®ƒæ˜¯æœ‰å²ä»¥æ¥æœ€è‡ªç„¶çš„东西一样。你游得更快,我也游得更快,ä¸éœ€è¦ç©ºæ°”,而且能看得更清楚。$(br)它还å¯ä»¥æ²»æ„ˆä½ çš„å°äº²å¯†çš„Axolotl朋å‹â™¥", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/tidal_circlet", - "text":"$(italic)你想过水下生活å—?$(br)ä¸ä¸ç®¡æ€Žæ ·ï¼ŒçŽ°åœ¨ä½ å¯ä»¥äº†ã€‚$(br)是时候建造一个水下基地了ï¼", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_tidal_circlet", - "extra_recipe_mappings":{ - "spectrum:tidal_circlet":0 - }, - "name":"哭泣头ç®", - "icon":"spectrum:tidal_circlet", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/totem_pendant.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/totem_pendant.json deleted file mode 100644 index 175ab28edf..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/totem_pendant.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"䏿­»å›¾è…¾è™½ç„¶æœ‰å¼ºå¤§çš„æ•ˆæžœï¼Œä½†æœ‰ä¸€ä¸ªæ˜¾è‘—的缺点,那就是你总是ä¸å¾—ä¸æŠŠå®ƒä»¬æ¡åœ¨æ‰‹ä¸­ã€‚$(br)使用$(l:general/pigment#blue)è“色颜料$(/l)çš„ä¿æŠ¤åŠŸèƒ½ä½œä¸ºç„¦ç‚¹ï¼Œå³ä½¿æˆ´åœ¨è„–å­ä¸Šï¼Œä¹Ÿå¯ä»¥ä¿æŒå…¶æ•‘生效果。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/totem_pendant", - "text":"ä¸€æ¬¡æ€§æ­»äº¡ä¿æŠ¤ã€‚è§¦å‘åŽï¼Œä¼šç¢Žè£‚æˆç²‰æœ«ã€‚", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_totem_pendant", - "extra_recipe_mappings":{ - "spectrum:totem_pendant":0 - }, - "name":"图腾åŠå ", - "icon":"spectrum:totem_pendant", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/void_bundle.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/void_bundle.json deleted file mode 100644 index 1b0a64fde7..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/void_bundle.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:void_bundle", - "text":"$(italic)在你穿越地下的旅途中,你收集了大é‡ç›¸åŒçš„æ–¹å—,你å†ä¹Ÿä¸éœ€è¦è¿™äº›æ–¹å—了。但你认为它们太好了,ä¸èƒ½æ‰”掉。$(br2)是时候开å‘一ç§å­˜å‚¨è§£å†³æ–¹æ¡ˆæ¥è§£å†³æ‚¨çš„å°ç™–好了。$()", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier2/void_bundle", - "text":"“无底包â€å®žé™…上å¯ä»¥å­˜å‚¨æ— é™æ•°é‡çš„物å“ï¼Œä½†åªæœ‰ä¸€ç§ç±»åž‹ã€‚$(br)å³é”®å•击库存中的堆栈或空格å­ä»¥å¡«å……/清空它", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - }, - { - "images":[ - "spectrum:textures/gui/manual/bottomless_bundle_automation.png" - ], - "text":"蹲下将其放下,使其能够自动填充/清空。", - "type":"patchouli:image", - "title":"自动化" - }, - { - "text":"$(br)æ”¾ç½®å¥½çš„åŒ…è£¹å°†å§‹ç»ˆè®°ä½æ‚¨æœ€åŽæ”¾å…¥çš„物å“。$(br)å³ä½¿å®ƒæ˜¯ç©ºçš„,它也åªä¼šæŽ¥å—以剿Œæœ‰çš„æ–°ç‰©å“,这使得它也å¯ä»¥ç”¨ä½œè¿‡æ»¤å™¨ã€‚$(br2)$(italic)注æ„:如果它是空的,它将接å—ç¬¬ä¸€ä¸ªç‰©å“æ³µå…¥å®ƒå¹¶é”定。$()", - "type":"patchouli:text", - "title":"" - }, - { - "item":"spectrum:void_bundle{Enchantments: [{id: \"minecraft:power\", lvl: 5s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"通过使用注魔基座给无底包裹$(l:enchanting/enchanting_items)附魔$(/l)力é‡ï¼Œä½ å¯ä»¥å°†å…¶å®¹é‡å¢žåŠ åå€ï¼Œæ¯ä¸€çº§åŠ›é‡ã€‚$(br2)$(italic)你能用力é‡V附魔一个无底包裹å—?", - "type":"patchouli:spotlight", - "title":"附魔-力é‡" - }, - { - "item":"spectrum:void_bundle{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "advancement":"spectrum:midgame/build_enchanting_structure", - "text":"使用$(l:enchanting/enchanting_items)注魔基座$(/l)对一个带有虚无诅咒的无底包裹进行附魔将导致所有会填满无底包裹的物å“销æ¯ã€‚$(br2)$(italic)挖掘时,ä¸å†æœ‰æ— ç”¨çš„æ–¹å—堵塞你的é“路。", - "type":"patchouli:spotlight", - "title":"虚无诅咒" - } - ], - "advancement":"spectrum:progression/unlock_void_bundle", - "extra_recipe_mappings":{ - "spectrum:void_bundle":0 - }, - "name":"无底包", - "icon":"spectrum:void_bundle", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/whispy_circlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/whispy_circlet.json deleted file mode 100644 index 6d7628bc16..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/magical_items/whispy_circlet.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "pages":[ - { - "text":"ä¸ä»…仅是你眼ç›ä¸‹é¢çš„眼袋是你缺ä¹ç¡çœ çš„è¯æ®ã€‚当你ä¸ç»å¸¸èººä¸‹ç¡è§‰çš„æ—¶å€™ï¼Œè¿™äº›ç”Ÿç‰©ä¼šç›´æŽ¥ä»Žä½ é”™è¿‡çš„噩梦中困扰你——几乎就åƒä»–们感觉被欺骗一样。$(br)这是放æ¾çš„表现,ä¸éœ€è¦ç¡è§‰ã€‚åªç©¿å‡ åˆ†é’ŸåŽï¼Œä½ å°±ä¼šæ„Ÿè§‰èº«ä½“和精神都焕然一新。", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:fusion_shrine/trinkets/whispy_circlet", - "text":"$(italic)ç¡ä¸ªå¥½è§‰çš„ä¹è¶£", - "type":"spectrum:fusion_shrine_crafting", - "title":"èžåˆé…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_whispy_circlet", - "name":"舒适头ç®", - "icon":"spectrum:whispy_circlet", - "category":"spectrum:magical_items_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/connection_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/connection_node.json deleted file mode 100644 index 1bf1689db0..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/connection_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "text":"作为最基本的节点,连接节点本身没有任何用途。$(br)它们éžå¸¸å°ï¼Œåªæ˜¯ä½œä¸ºä¸€ç§å»‰ä»·ä¸”ä¸å¼•äººæ³¨ç›®çš„æ–¹å¼æ¥æ‰©å¤§æ‚¨çš„网络范围。", - "type":"patchouli:text", - "title":"连接节点" - }, - { - "recipe":"spectrum:pedestal/tier3/pastel_network/connection_node", - "text":"与所有其他节点一样,连接节点具有16个方å—的范围。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_basic_nodes", - "name":"连接节点", - "icon":"spectrum:provider_node", - "category":"spectrum:pastel_network_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/interaction_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/interaction_node.json deleted file mode 100644 index 6c7b11aaa6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/interaction_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "text":"待办事项。走近它,你会看到一个存储在其连接网络中的所有物å“的列表。åªè¦ä¼¸æ‰‹åŽ»æ‹¿ï¼Œå®ƒå°±ä¼šè‡ªåŠ¨ä»Žç½‘ç»œä¸­ä¸ºä½ æ‹”å‡ºã€‚", - "type":"patchouli:text", - "title":"交互节点" - }, - { - "recipe":"spectrum:pedestal/tier3/pastel_network/interaction_node", - "text":"待办事项", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_interaction_node", - "name":"交互节点", - "icon":"spectrum:provider_node", - "category":"spectrum:pastel_network_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/pastel_network.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/pastel_network.json deleted file mode 100644 index c2daca1dd5..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/pastel_network.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ç‰©æµæ˜¯ä¸€ä»¶å¤æ‚的事情。$(br)您的原始物å“传输方å¼ï¼ˆå¦‚æ¼æ–—阵列)无法与粉彩网络相比,这就是您所称的基于è“铜矿的节点集群。æ¯ä¸ªèŠ‚ç‚¹éƒ½æœ‰è‡ªå·±çš„ç‰¹æ®ŠåŠŸèƒ½ã€‚å¦‚æžœèŠ‚ç‚¹é å¾—很近,它们将彼此无线连接,形æˆç‰©å“传输网络。", - "type":"patchouli:text", - "title":"彩绘网络" - }, - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/pastel_network.png" - ], - "text":"所有节点都有16个方å—的范围,并且需è¦å½¼æ­¤å…·æœ‰è§†çº¿ã€‚", - "type":"patchouli:image", - "title":"" - }, - { - "item":"spectrum:purple_pigment", - "text":"您å¯ä»¥åœ¨ç²‰å½©ç½‘络节点上使用$(l:general/pigment)颜料$(/l)对其进行染色。$(br2)æ¯ä¸ªèŠ‚ç‚¹åªèƒ½å°†ç‰©å“传输到具有相åŒé¢œè‰²å’Œåˆæˆé¢œè‰²çš„节点,但ä¸èƒ½ä»¥ç›¸å的方å¼ä¼ è¾“(é’色节点å¯ä»¥ä¼ è¾“到è“色节点,但è“色节点ä¸èƒ½ä¼ è¾“到é’色)。", - "type":"patchouli:spotlight", - "title":"染色节点" - }, - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/composite_colors.png" - ], - "text":"", - "type":"patchouli:image", - "title":"" - }, - { - "item":"spectrum:red_pigment", - "text":"使用颜料,您å¯ä»¥éžå¸¸ç²¾ç»†åœ°è°ƒæ•´å“ªäº›èŠ‚ç‚¹å¯ä»¥ä¸Žå…¶ä»–节点交互,从而å¯ä»¥æž„å»ºå¤æ‚的传输链。$(br2)缺少所有颜色形å¼çš„默认$(bold)白色$()节点åªèƒ½è¿žæŽ¥åˆ°å…¶ä»–白色节点。", - "type":"patchouli:spotlight", - "title":"彩色节点" - }, - { - "item":"spectrum:spectral_shard", - "text":"相比之下,$(bold)黑色$()作为所有颜料颜色的组åˆï¼Œèƒ½å¤Ÿä¸Žæ‰€æœ‰å…¶ä»–节点交互,包括其他黑色节点。$(br2)使用光谱颜料ç€è‰²çš„节点能够与所有节点交互,而ä¸ç®¡å…¶é¢œè‰²å¦‚何。", - "type":"patchouli:spotlight", - "title":"光谱彩色节点" - }, - { - "item":"spectrum:purple_pigment", - "text":"在节点上使用$(l:resources/mermaids_brush)美人鱼å®çŸ³$(/l)会将其更改为æµä½“节点。$(br)它的行为将与以å‰éžå¸¸ç›¸ä¼¼ï¼Œä½†å°†èƒ½å¤Ÿæ— çº¿ä¼ è¾“æ¶²ä½“ï¼Œè€Œä¸æ˜¯ç‰©å“。", - "type":"patchouli:spotlight", - "title":"" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_basic_nodes", - "name":"彩绘网络", - "icon":"spectrum:provider_node", - "sortnum":0, - "category":"spectrum:pastel_network_category", - "priority":true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/provider_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/provider_node.json deleted file mode 100644 index 7e81a6674d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/provider_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "text":"è¢«åŠ¨åœ°å°†è¿žæŽ¥çš„åº“å­˜ä¸­çš„æ‰€æœ‰ç‰©å“æä¾›ç»™å…¶è¿žæŽ¥çš„$(l:pastel_network/pastel_network)彩绘网络$(/l)。物å“ä¸ä¼šè¢«æŽ¨é€åˆ°å…¶ä»–节点,但å¯ä»¥è¢«è¯·æ±‚,例如通过$(l:pastel_network/puller_node)接å—节点$(/l)。", - "type":"patchouli:text", - "title":"æä¾›èŠ‚ç‚¹" - }, - { - "recipe":"spectrum:pedestal/tier3/pastel_network/provider_node", - "text":"", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_basic_nodes", - "name":"æä¾›èŠ‚ç‚¹", - "icon":"spectrum:provider_node", - "category":"spectrum:pastel_network_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/puller_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/puller_node.json deleted file mode 100644 index 9ab5b99fe2..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/puller_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "text":"接å—节点具有具有接å£çš„特殊特å¾ã€‚在那里,您å¯ä»¥é…置接å—节点将从其他节点主动请求的物å“,以放置在其连接的库存中。", - "type":"patchouli:text", - "title":"接å—节点" - }, - { - "recipe":"spectrum:pedestal/tier3/pastel_network/puller_node", - "text":"它检查其他节点以从中请求物å“的顺åºå¦‚下:$(br)1。$(l:pastel_network/pusher_node)å‘é€èŠ‚ç‚¹$(/l)$(br)2。$(l:pastel_network/provider_node)æä¾›èŠ‚ç‚¹$(/l)$(br)3。$(l:pastel_network/storage_node)存储节点$(/l)", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_basic_nodes", - "name":"接å—节点", - "icon":"spectrum:provider_node", - "category":"spectrum:pastel_network_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/pusher_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/pusher_node.json deleted file mode 100644 index 8233323288..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/pusher_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "text":"推é€èŠ‚ç‚¹ä¸»åŠ¨å°è¯•使连接的库存中的物å“ä¿æŒä¸ºç©ºã€‚", - "type":"patchouli:text", - "title":"推é€èŠ‚ç‚¹" - }, - { - "recipe":"spectrum:pedestal/tier3/pastel_network/pusher_node", - "text":"å®ƒå°†ç‰©å“æŽ¨é€åˆ°çš„顺åºå¦‚下:$(br)1。$(l:pastel_network/puller_node)接å—节点$(/l)$(br)2。$(l:pastel_network/storage_node)存储节点$(/l)", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_basic_nodes", - "name":"å‘é€èŠ‚ç‚¹", - "icon":"spectrum:provider_node", - "category":"spectrum:pastel_network_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/storage_node.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/storage_node.json deleted file mode 100644 index 8ea60d4525..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/pastel_network/storage_node.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "pages":[ - { - "text":"虽然存储节点本身并ä¸å¼•人注目,但它将与$(l:pastel_network/pusher_node)å‘é€èŠ‚ç‚¹$(/l)ï¼ˆå°†ç‰©å“æŽ¨é€åˆ°è¯¥èŠ‚ç‚¹ï¼‰å’Œ$(l:pastel_network/puller_node)接å—节点$(/l)(将物å“从中拉出æ¥ï¼‰ç»“åˆä½¿ç”¨ï¼Œæ˜¾ç¤ºå‡ºå…¶æœ€å¤§çš„用途。", - "type":"patchouli:text", - "title":"存储节点" - }, - { - "recipe":"spectrum:pedestal/tier3/pastel_network/storage_node", - "text":"å³é”®å•击它以打开其物å“过滤器。此过滤器å…许您指定存储节点能够接收和æä¾›å“ªäº›ç‰©å“。å¦åˆ™ï¼Œå®ƒå°†ä½œä¸ºæ‰€æœ‰ç±»åž‹ç‰©å“的通用存储。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/pastel_network/__unlock_basic_nodes", - "name":"存储节点", - "icon":"spectrum:provider_node", - "category":"spectrum:pastel_network_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/block_placer.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/block_placer.json deleted file mode 100644 index facbc67649..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/block_placer.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:block_placer", - "text":"$(italic)ä½ å¯ä»¥è‡ªåŠ¨æ‰“ç ´æ–¹å—,称é‡ï¼ŒæŽ’åºæˆ–把他们放在你的一个箱å­ã€‚有一件事是你所有的创æ„装置都åšä¸åˆ°çš„ï¼šæ”¾ç½®ä¸œè¥¿ã€‚è¿™å·²ç»æˆä¸ºè¿‡åŽ»ã€‚$(br)$(l:general/shards#topaz)黄玉$(/l)具有与物质的亲和力,å¯ä»¥è®©ä½ ä»Žå®ƒçš„库存中物化方å—。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/block_placer", - "text":"它åšåˆ°äº†ï¼", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_block_placer", - "extra_recipe_mappings":{ - "spectrum:block_placer":0 - }, - "name":"æ–¹å—æ”¾ç½®å™¨", - "icon":"spectrum:block_placer", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/ender_glass.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/ender_glass.json deleted file mode 100644 index 4c273cffed..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/ender_glass.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:ender_glass", - "text":"$(italic)ä½ å·²ç»è®¤ä¸ºï¼Œå½“ä½ æŠŠé…æ–¹å†™åœ¨çº¸ä¸Šçš„那一刻,这个创造将是一个特别的东西。$(br2)末地的力é‡ã€çº¢çŸ³å’Œé­”法的结åˆèµ‹äºˆäº†å®ƒéžå¸¸å¥‡æ€ªçš„特性。", - "type":"patchouli:spotlight" - }, - { - "text":"æ ¹æ®åº”用红石信å·çš„强度,该方å—具有ä¸åŒçš„特性。$(br2)没有红石,它是完全固体;当红石信å·åˆ°è¾¾æ—¶ï¼Œå®ƒå˜å¾—逿˜Žï¼Œå‡ ä¹ŽåƒçŽ»ç’ƒä¸€æ ·ã€‚$(br)ç„¶è€Œï¼Œå½“æ–½åŠ å…¨å¼ºåº¦çš„çº¢çŸ³ä¿¡å·æ—¶ï¼Œå®ƒè¾¾åˆ°äº†æœ€å¥‡æ€ªçš„状æ€ã€‚。。", - "type":"patchouli:text" - }, - { - "text":"$(br2)æ›´å¥‡æ€ªçš„æ˜¯ï¼Œè¿™ç§ææ–™ä¼¼ä¹Žåªå¯¹æœ€åŽæ–½åŠ çš„ä¿¡å·åšå‡ºååº”ï¼Œè€Œä¸æ˜¯æœ€å¼ºçš„。$(br2)真正的好奇心从最åŽã€‚", - "type":"patchouli:text" - }, - { - "test":"With the smallest external influence in the form of blocks it falls back to the state of lowest energy.", - "recipe":"spectrum:pedestal/tier1/ender_glass", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_ender_glass", - "extra_recipe_mappings":{ - "spectrum:ender_glass":0 - }, - "name":"末影玻璃", - "icon":"spectrum:ender_glass", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/entity_detector.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/entity_detector.json deleted file mode 100644 index 2d8b00fd4b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/entity_detector.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"生物探测器内置的å®çŸ³å¯¹åœ°é¢çš„微振动有å应。这使生物探测器能够测é‡é™„近生物的数é‡ã€‚", - "type":"patchouli:text", - "title":"生物探测器" - }, - { - "recipe":"spectrum:pedestal/tier1/detectors/entity_detector", - "text":"对于åŠå¾„为10æ–¹å—çš„æ¯ä¸ªç”Ÿç‰©ï¼Œç”Ÿç‰©æŽ¢æµ‹å™¨ä¼šé¢å¤–输出1的强度。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/detectors/unlock_entity_detector", - "extra_recipe_mappings":{ - "spectrum:entity_detector":0 - }, - "name":"实体检测器", - "icon":"spectrum:player_detector", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/item_detector.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/item_detector.json deleted file mode 100644 index 531c20e98d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/item_detector.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"ç‰©å“æ£€æµ‹å™¨ç”¨äºŽè®¡ç®—ä½äºŽå…¶10æ–¹å—åŠå¾„内地é¢ä¸Šçš„物å“。$(br)红石信å·çš„强度å–决于周围有多少物å“。", - "type":"patchouli:text", - "title":"ç‰©å“æ£€æµ‹å™¨" - }, - { - "recipe":"spectrum:pedestal/tier1/detectors/item_detector", - "text":"64个物å“产生最大强度的信å·ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/detectors/unlock_item_detector", - "extra_recipe_mappings":{ - "spectrum:item_detector":0 - }, - "name":"ç‰©å“æ£€æµ‹å™¨", - "icon":"spectrum:player_detector", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/light_level_detector.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/light_level_detector.json deleted file mode 100644 index 7a194c1e4b..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/light_level_detector.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"阳光探测器在测é‡å…‰çº¿æ—¶ç›¸å¯¹ä¸ç²¾ç¡®ã€‚ä½¿ç”¨çš„ä¸‹ä¸€ä¸ªçŸ³è‹±æ˜¯å¦‚æ­¤ç²—ç³™ï¼Œåªæœ‰é˜³å…‰æ‰èƒ½å¯é åœ°è§¦å‘探测器。$(br)å¦ä¸€æ–¹é¢ï¼Œç´«æ°´æ™¶åœ¨æµ‹é‡å…‰çº¿æ—¶æ›´åŠ æ•æ„Ÿã€‚å³ä½¿æ˜¯å¾®å¼±çš„ç«ç‚¬å…‰ä¹Ÿè¶³ä»¥äº§ç”Ÿç›¸å½“大的强度。", - "type":"patchouli:text", - "title":"æ–¹å—光检测器" - }, - { - "recipe":"spectrum:pedestal/tier1/detectors/light_level_detector", - "text":"光探测器ä¸ä»…对阳光有å应,而且还能够拾å–å…¶ä»–å…‰æºï¼Œä¾‹å¦‚æ¥è‡ªæ–¹å—的光æºã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/detectors/unlock_light_level_detector", - "extra_recipe_mappings":{ - "spectrum:light_level_detector":0 - }, - "name":"亮度检测器", - "icon":"spectrum:player_detector", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/player_detector.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/player_detector.json deleted file mode 100644 index 7aab82e4c6..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/player_detector.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)ä½ çŸ¥é“æœ‰äººç”¨çº¢çŸ³å»ºé€ å·¨å¤§çš„å»ºç­‘ï¼Œåªæ˜¯ä¸ºäº†æ‰“开一扇超大的门。然åŽä»–们用一个难看的压盘触å‘它。å¦ä¸€æ–¹é¢ï¼Œ$(br)玩家检测器能够感知你或其他玩家在远处的存在,并å‘出相应的红石信å·ã€‚$(br)好多了。", - "type":"patchouli:text", - "title":"玩家检测器" - }, - { - "recipe":"spectrum:pedestal/tier1/detectors/player_detector", - "text":"范围:10个方å—。$(br)如果检测到放置信å·çš„玩家,则å‘出全强度信å·ï¼Œå¦åˆ™ä¸º8。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/detectors/unlock_player_detector", - "extra_recipe_mappings":{ - "spectrum:player_detector":0 - }, - "name":"玩家检测器", - "icon":"spectrum:player_detector", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_calculator.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_calculator.json deleted file mode 100644 index a9bca1ba03..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_calculator.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:redstone_calculator", - "text":"$(italic)有了æ¥è‡ªåœ°ä¸‹çš„红色数学粉末,你已ç»å»ºé€ äº†å‡ åº§å·¨å¤§çš„å»ºç­‘ï¼Œåªæ˜¯ä¸ºäº†æ¨¡ä»¿é¹¦é¹‰çš„计算能力。当你看到这些,你的呼å¸å°±ä¼šåœæ­¢ï¼ˆä¸–界上其他地方也是如此,æ¯ç§’数次)。充满能é‡çš„$(l:general/shards#citrine)黄水晶$(/l)似乎与基本算术逻辑完美匹é…。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/redstone_calculator", - "text":"å¯ç”¨æ¨¡å¼ï¼šåŠ æ³•ã€å‡æ³•ã€ä¹˜æ³•ã€é™¤æ³•ã€æ¨¡ã€æœ€å°å’Œæœ€å¤§ã€‚第一个输入是背é¢ï¼Œç¬¬äºŒä¸ªæ˜¯ä¾§é¢çš„æœ€é«˜ä¿¡å·ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_redstone_calculator", - "extra_recipe_mappings":{ - "spectrum:redstone_calculator":0 - }, - "name":"红石计算器", - "icon":"spectrum:redstone_calculator", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_sand.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_sand.json deleted file mode 100644 index e71763d52e..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_sand.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:redstone_sand", - "text":"$(italic)你愉快地回想起那些为朋å‹è®¾ä¸‹å°åœˆå¥—的日å­ã€‚碰错了方å—,他们被沙å­å®Œå…¨æŽ©åŸ‹äº†ã€‚$(br)到现在为止,你的朋å‹ä»¬è¿˜ä¸é‚£ä¹ˆå®¹æ˜“上当å—骗。$(br2)似乎现代问题需è¦çŽ°ä»£è§£å†³æ–¹æ¡ˆã€‚", - "type":"patchouli:spotlight" - }, - { - "text":"é€šè¿‡å‘æ²™å­ä¸­åŠ å…¥çº¢çŸ³å’Œä¸€äº›é­”æ³•ï¼Œå®ƒèŽ·å¾—äº†ä¸€ä¸ªæœ‰è¶£çš„ç‰¹æ€§ï¼šåƒå…¶ä»–æ–¹å—一样,它一直留在空气中,直到里é¢çš„å®çŸ³ç²‰å¼€å§‹æŒ¯åŠ¨ã€‚$(br2)红石砂的行为就åƒä¸€ä¸ªåšå®žçš„æ–¹å—,直到它得到红石信å·ã€‚$(br)红石触å‘器通过所有连接的方å—传播,使其ä¸ç¨³å®šï¼Œé‡åŠ›å®šå¾‹è¿«ä½¿å…¶ä¸‹é™ã€‚", - "type":"patchouli:text" - }, - { - "recipe":"spectrum:pedestal/tier1/redstone_sand", - "text":"$(italic)有这么多的å¯èƒ½æ€§", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_redstone_sand", - "extra_recipe_mappings":{ - "spectrum:redstone_sand":0 - }, - "name":"红石沙", - "icon":"spectrum:redstone_sand", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_timer.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_timer.json deleted file mode 100644 index 21fe48417a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_timer.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:redstone_timer", - "text":"$(italic)虽然有很多计算时间的方法,但大多数方法似乎相对而言有点å¤è€ï¼Œçš„你的袖å­é‡Œæœ‰ä¸€ä¸ªæ–°æŠŠæˆï¼š$(l:general/shards#amethyst)ç´«æ°´æ™¶$(/l)碎片的时间亲和力。", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier1/redstone_timer", - "text":"您å¯ä»¥åˆ‡æ¢æ´»åŠ¨æ—¶é—´ï¼ˆ$(k:use)ï¼‰å’Œéžæ´»åŠ¨æ—¶é—´ï¼ˆ$(k:sneak)+$(k:use)空手)的æŒç»­æ—¶é—´ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/unlock_redstone_timer", - "extra_recipe_mappings":{ - "spectrum:redstone_timer":0 - }, - "name":"红石计时器", - "icon":"spectrum:redstone_timer", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_wireless.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_wireless.json deleted file mode 100644 index 822fc1a468..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/redstone_wireless.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:redstone_wireless", - "text":"$(italic)柔和的共振被$(l:general/shards#onyx)玛瑙$(/l)放大到这样的程度,甚至å¯ä»¥é€šè¿‡å¢™å£æµ‹é‡ï¼Œåªè¦æœ‰åˆé€‚的接收器。基于你之å‰å¯¹å®çŸ³ç¢Žç‰‡çš„实验,你很容易设计出这样的å‘射器和接收器系统。然而,这些继电器对快速å˜åŒ–的信å·å应ä¸ä½³ã€‚", - "type":"patchouli:spotlight" - }, - { - "recipe":"spectrum:pedestal/tier2/redstone_wireless", - "text":"空手点击切æ¢å‘é€/接收。使用染料/颜料改å˜ä¼ è¾“频率,使信å·ä¸é‡å ã€‚范围:16个方å—。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:create_onyx_shard", - "extra_recipe_mappings":{ - "spectrum:redstone_wireless":0 - }, - "name":"无线红石", - "icon":"spectrum:redstone_wireless", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/weather_detector.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/weather_detector.json deleted file mode 100644 index 73875da69a..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/redstone/weather_detector.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"黄水晶对风暴期间释放的能é‡éžå¸¸æ•感。$(br2)如果天气探测器直接暴露在雨或雷雨中,它会å‘出红石信å·ã€‚", - "type":"patchouli:text", - "title":"天气探测器" - }, - { - "recipe":"spectrum:pedestal/tier1/detectors/weather_detector", - "text":"雨å‘出的信å·å¼ºåº¦ä¸º8,雷雨为15。", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:progression/detectors/unlock_weather_detector", - "extra_recipe_mappings":{ - "spectrum:weather_detector":0 - }, - "name":"天气探测器", - "icon":"spectrum:player_detector", - "category":"spectrum:redstone_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/azurite.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/azurite.json deleted file mode 100644 index fd29be56d8..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/azurite.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:raw_azurite", - "text":"一ç§å¯Œå«è“色的矿石,从远处看,几乎å¯ä»¥è¢«è¯¯è®¤ä¸ºæ˜¯é’金石。在其天然形å¼ä¸­ï¼Œå®ƒå«æœ‰è®¸å¤šæ‚è´¨ï¼Œå¿…é¡»å…ˆå°†å…¶åŽ»é™¤ï¼Œç„¶åŽæ‰èƒ½ä½¿ç”¨ã€‚$(br2)它被å‘现在地下深处,似乎能够增强任何色素的能é‡ã€‚", - "type":"patchouli:spotlight", - "title":"è“铜矿" - }, - { - "recipe":"spectrum:fusion_shrine/refined_azurite", - "text":"æç‚¼è“é“œçŸ¿ä¸æ˜¯ä¸€é¡¹å»‰ä»·çš„任务。$(br)在这ç§ç²¾ç‚¼çš„锭型中,è“铜矿å¯ä»¥ç”¨äºŽæ›´å¤šçš„é…æ–¹ã€‚", - "type":"spectrum:fusion_shrine_crafting", - "title":"精炼è“铜矿" - } - ], - "advancement":"spectrum:midgame/collect_azurite", - "extra_recipe_mappings":{ - "spectrum:refined_azurite":0, - "spectrum:azurite_block":0, - "spectrum:raw_azurite":0, - "spectrum:azurite_ore":0, - "spectrum:deepslate_azurite_ore":0 - }, - "name":"è“铜矿", - "icon":"spectrum:azurite_ore", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/clover.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/clover.json deleted file mode 100644 index f971cb0015..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/clover.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:clover", - "text":"这些多æ±çš„绿色三å¶è‰ç”Ÿé•¿åœ¨å¹³åŽŸå’Œå…¶ä»–å……æ»¡ç”Ÿæœºçš„ç»¿è‰²ç”Ÿç‰©ç¾¤è½ä¸­ã€‚$(br2)$(italic)ä»Šå¤©æ˜¯ä½ çš„å¹¸è¿æ—¥å—?$()", - "type":"patchouli:spotlight", - "title":"三å¶è‰" - }, - { - "item":"spectrum:four_leaf_clover", - "advancement":"spectrum:collect_four_leaf_clover", - "text":"确实如此ï¼$(br)你肯定这个å°å°çš„幸è¿ä¿¡å·ä¼šæ´¾ä¸Šç”¨åœºã€‚", - "type":"patchouli:spotlight" - } - ], - "advancement":"spectrum:hidden/collect_clover", - "extra_recipe_mappings":{ - "spectrum:four_leaf_clover":0, - "spectrum:clover":0 - }, - "name":"三å¶è‰", - "icon":"spectrum:four_leaf_clover", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/geodes.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/geodes.json deleted file mode 100644 index de02757226..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/geodes.json +++ /dev/null @@ -1,324 +0,0 @@ -{ - "pages":[ - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/geode.png" - ], - "text":"晶洞是在魔法能é‡éžå¸¸ä¸°å¯Œçš„地方形æˆçš„,它会结晶æˆç‰©ç†å½¢æ€â€”—如å®çŸ³ã€‚æ¯ç§ç±»åž‹çš„å®çŸ³ä¼¼ä¹Žä»£è¡¨ç€ä¸åŒç±»åž‹çš„基本属性。", - "type":"patchouli:image", - "title":"å®çŸ³æ™¶æ´ž" - }, - { - "multiblock":{ - "mapping":{ - "A":"minecraft:amethyst_block", - "B":"minecraft:budding_amethyst", - "S":"minecraft:smooth_basalt", - "C":"minecraft:calcite", - "W":"minecraft:small_amethyst_bud", - "X":"minecraft:medium_amethyst_bud", - "Y":"minecraft:large_amethyst_bud", - "Z":"minecraft:amethyst_cluster", - "O":"spectrum:amethyst_ore" - }, - "symmetrical":false, - "pattern":[ - [ - " ", - " ", - "O ", - " O ", - " ", - " SS ", - " O SSSS ", - " SS O ", - " ", - " ", - " ", - " ", - " " - ], - [ - " O ", - " O ", - " ", - " SSSSSS ", - " SSSCCSSS ", - " SSCCCCSS ", - " SSCCCCCCSS ", - " SSCCCCSS ", - " SSSCCSSS ", - " SSSSSS ", - " ", - " O ", - " " - ], - [ - " ", - " ", - " SSSSSSS ", - " SSCCCCCSS ", - " SSCCAAACCS ", - " SCCAAAAACCS ", - " SCCAAAAACCS ", - " SSCCAAACCSS ", - " SSCCCCCSS ", - " SSSSSSS ", - " ", - " ", - " " - ], - [ - " ", - " SSSSSS ", - " SSCCCCCSS ", - " SSCCAAAACCS ", - " SCCAAAAAACSS ", - " SCCAA AACCS ", - " SCCA AACS ", - " SCCAA ACCS ", - " SCAA AACCS ", - " SCC AAACCS ", - " S CCCSS ", - " SSS ", - " " - ], - [ - " SSS ", - " SSCCCSS ", - " SSCCBACCCS ", - " SCCAAAAAACCS ", - " SCAA AACSS ", - " SCAA ACCS ", - " SCAA ACCS ", - " SCAA ACCS ", - " SCCA AACSS ", - " SC BACCSS ", - " ACCSS ", - " CCSS ", - " SS " - ], - [ - " SSSS ", - " SCCCCCSS ", - " SCCAABACSS ", - " SCCAB AAACSS ", - " SCCAB ACCS ", - " SCA AACS ", - "SCA ACSS", - "SCA AACSS", - "SCA AACS ", - "SCAA AACCS ", - " S AACCSS ", - " S CCSS ", - " SS " - ], - [ - " SSSSS ", - " SCCCCCSS ", - " SSCAAAAACCS ", - " CCAA AAACCS ", - " SCA AACS ", - " SCA ACSS", - " SCA ACCS", - " SCA ACCS", - " SCA AACSS", - " S BCSS ", - " AACCS ", - " CCSS ", - " O SS " - ], - [ - " SSSS ", - " SSCCCCSS ", - " SCCAAACCCS ", - "O SCAAA AAACCS ", - " SCAA AACS ", - " SBA ACSS", - " SCA 0 ACCS", - " SCB ACCS", - " CA ACSS", - " S ACCSS", - " AACSS ", - " CCSS ", - " SSS " - ], - [ - " S ", - " SSCCSSS ", - " SCCCACCCSS ", - " SCCAAAAAACSS ", - " CCA ACCS ", - " SCB AACSS", - " SCA ACSS", - " SCB ACSS", - " SC AACSS", - " S AACSS ", - " ACCS ", - " CCSS ", - " SS " - ], - [ - " ", - " SSSSS ", - " SCCCCCCS ", - " SCCABAACCS ", - " SCAAA ABACCS ", - " SCA AACS ", - " SCAA ABCS ", - " SCAB AACS ", - " SCA ACCS ", - " AAACSS ", - " ACCCS ", - " CCS ", - " SS " - ], - [ - " ", - " S ", - " SSSCSSS ", - " SCCCCCCCS ", - " SCCAAAACCS ", - " CCBAAAAACSS ", - " SCAA AACSS ", - " SCAAA AACSS ", - " SCCAAAAAACSS ", - " S ABACCS ", - " CCCS ", - " SSS ", - " O S " - ], - [ - " O ", - " ", - " SSS ", - " SSCCSSS ", - " SCCCCCCS ", - " SSCCAACCSS ", - " SCCAABCCSS ", - " SCCBAACCSS O", - " SCCCACCCSS ", - " OS CSS ", - " O SS ", - " ", - " " - ], - [ - " ", - " ", - " O ", - " SS ", - " SSSSS ", - " SSCCSSS ", - " SSCCCCSS ", - " SSCCCCSS ", - " SSSCCSS ", - " SSSSSSS O ", - " SS ", - " ", - " " - ], - [ - " ", - " ", - " ", - " ", - " O ", - " S ", - " SSS ", - " SS ", - " S O ", - " ", - " ", - " ", - " " - ] - ] - }, - "name":"晶洞结构", - "text":"ä¸åŒçš„高度促进了æŸäº›ç±»åž‹çš„å½¢æˆã€‚为了找到它们,在ä¸åŒçš„地方æœç´¢æ˜¯æœ‰æ„义的。", - "type":"patchouli:multiblock", - "enable_visualize":false - }, - { - "item":"spectrum:amethyst_ore", - "advancement":"spectrum:spectrum", - "text":"现在你注æ„到了,你注æ„到岩石中到处都是å®çŸ³ã€‚$(br)如果你看到这样的矿石,晶洞肯定ä¸è¿œï¼$(br2)虽然ä¸åƒå®çŸ³ç°‡é‚£æ ·å¯å†ç”Ÿï¼Œä½†å®çŸ³çŸ¿çŸ³æä¾›äº†å¤§é‡ç¢Žç‰‡ï¼Œå°¤å…¶æ˜¯ç”¨è´¢å¯Œå·¥å…·ç ´ç¢Žæ—¶ã€‚", - "type":"patchouli:spotlight", - "title":"å®çŸ³çŸ¿çŸ³" - }, - { - "item":"spectrum:topaz_block", - "advancement":"spectrum:hidden/collect_shards/collect_topaz_shard", - "text":"黄玉晶洞与其他晶洞相比是巨大的,适åˆå®ƒä»¬çš„物质æˆåˆ†ã€‚然而,正因为如此,它们åªèƒ½åœ¨è¿œç¦»åœ°é¢çš„山区或大山中被å‘现。", - "type":"patchouli:spotlight", - "title":"黄玉晶洞" - }, - { - "item":"minecraft:amethyst_block", - "advancement":"spectrum:hidden/collect_shards/collect_amethyst_shard", - "text":"ä½œä¸ºæ—¶é—´çš„å…ƒç´ ï¼Œç´«æ°´æ™¶æ™¶æ´žå¾€å¾€ä¿æŒåœ¨ä¸–界最底层的存在,悄悄地与世界上所有其他事件隔离开æ¥ã€‚$(br)æ‚ é—²è€Œåˆæ°”派。", - "type":"patchouli:spotlight", - "title":"ç´«æ°´æ™¶æ™¶æ´ž" - }, - { - "item":"spectrum:citrine_block", - "advancement":"spectrum:hidden/collect_shards/collect_citrine_shard", - "text":"带有黄水晶的晶洞ä½äºŽä¸–界的中间层,有时甚至å¯ä»¥ä»Žè¡¨é¢è¿›å…¥ã€‚这些晶洞很å°ï¼Œä½†è•´è—ç€å·¨å¤§çš„能é‡ï¼Œå› æ­¤å®ƒä»¬ç‰¹åˆ«å®¹æ˜“破裂。", - "type":"patchouli:spotlight", - "title":"黄水晶晶洞" - }, - { - "item":"spectrum:moonstone_block", - "advancement":"spectrum:midgame/collect_moonstone_shard", - "text":"待办事项", - "type":"patchouli:spotlight", - "title":"月亮石晶洞" - }, - { - "advancement":"spectrum:lategame/collect_resonance_enchanted_tool", - "text":"=>$(l:enchanting/resonance)共振$()。", - "type":"patchouli:text", - "title":"获得èŒèŠ½æ–¹å—" - } - ], - "advancement":"spectrum:spectrum", - "extra_recipe_mappings":{ - "spectrum:budding_citrine":0, - "spectrum:medium_moonstone_bud":0, - "spectrum:budding_moonstone":0, - "spectrum:amethyst_ore":0, - "minecraft:large_amethyst_bud":0, - "spectrum:large_citrine_bud":0, - "spectrum:deepslate_topaz_ore":0, - "spectrum:deepslate_citrine_ore":0, - "spectrum:budding_topaz":0, - "spectrum:citrine_cluster":0, - "spectrum:small_citrine_bud":0, - "spectrum:large_topaz_bud":0, - "spectrum:medium_citrine_bud":0, - "spectrum:medium_topaz_bud":0, - "spectrum:moonstone_ore":0, - "spectrum:topaz_ore":0, - "minecraft:medium_amethyst_bud":0, - "spectrum:citrine_ore":0, - "spectrum:topaz_cluster":0, - "minecraft:amethyst_cluster":0, - "spectrum:large_moonstone_bud":0, - "spectrum:moonstone_cluster":0, - "spectrum:small_moonstone_bud":0, - "spectrum:topaz_block":0, - "spectrum:citrine_block":0, - "spectrum:moonstone_block":0, - "minecraft:small_amethyst_bud":0, - "spectrum:deepslate_moonstone_ore":0, - "spectrum:small_topaz_bud":0, - "minecraft:budding_amethyst":0, - "minecraft:amethyst_block":0, - "spectrum:deepslate_amethyst_ore":0 - }, - "name":"æ™¶æ´ž", - "icon":"minecraft:amethyst_cluster", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/jade_vines.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/jade_vines.json deleted file mode 100644 index af2f687c07..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/jade_vines.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:hibernating_jade_vine_seeds", - "text":"è¿™ç§æ¤ç‰©ä»Žè¿œå¤æ—¶ä»£é—留下æ¥çš„能é‡çŽ°åœ¨è¿˜å‡ ä¹Žçœ‹ä¸åˆ°ã€‚如此轻和脆弱,以至于你认为任何错误的举动都å¯èƒ½è®©ä½ è„†å¼±çš„鳞茎失去最åŽä¸€ç‚¹ç”Ÿå‘½ã€‚$(br2)$(italic)è¿™ç§æ¤ç‰©çš„历å²ä¼šæ°¸è¿œè®©ä½ éš¾ä»¥æ‰æ‘¸å—?", - "type":"patchouli:spotlight", - "title":"å¤çŽ‰è—¤æ ‘" - }, - { - "advancement":"spectrum:midgame/build_spirit_instiller_structure", - "recipe":"spectrum:spirit_instiller/germinated_jade_vine_seeds", - "text":"曾ç»å‡ ä¹Žæ˜¯ä¸€é¡¹å¤±è´¥çš„事业,现在你有了一张王牌:$(br)在$(l:creating_life/spirit_instiller)çµé­‚注入器$(/l)的帮助下,你确信你å¯ä»¥å°†ç”Ÿå‘½é‡æ–°æ³¨å…¥è¿™ä¸ªå°é³žèŒŽã€‚", - "type":"spectrum:spirit_instiller_crafting", - "title":"å‘芽" - }, - { - "item":"spectrum:germinated_jade_vine_seeds", - "advancement":"spectrum:hidden/instilled_germinated_jade_vine_seeds", - "text":"æ …æ ï¼Œè„†å¼±ä½†ç¾Žä¸½çš„æ‚¬æŒ‚æ¤ç‰©ï¼Œç¼ ç»•ç€æœ¨è´¨æ …æ ã€‚$(br)$(c_red)ç»åŽ†äº†è¿™ä¹ˆå¤šå¹´ï¼Œå®ƒä»¬è¿˜ä¸ä¹ æƒ¯å¼ºå…‰ï¼Œç›´æŽ¥æš´éœ²åœ¨é˜³å…‰ä¸‹ä¼šæ­»åŽ»ã€‚$(br)$(c_lime)å®ƒä»¬æ¯æ™šåªç”Ÿé•¿ä¸€ä¸ªé˜¶æ®µï¼Œå¹¶ä¸”åªæœ‰å½“暴露在更柔和的ã€é—´æŽ¥çš„æœˆçƒå…‰ä¸‹æ—¶ã€‚", - "type":"patchouli:spotlight", - "title":"ç§æ¤å’Œç”Ÿé•¿" - }, - { - "item":"spectrum:jade_jelly", - "advancement":"spectrum:hidden/collect_jade_jelly", - "text":"当你ä¸å°å¿ƒæŠŠå…¶ä¸­ä¸€æ ªæ¤ç‰©æ”¾åœ¨å¼ºçƒˆçš„阳光下,你å‘现它枯èŽäº†ã€‚è¿™ç§æž¯èŽçš„çŒæœ¨ä¸ä»…给你留下了新的鳞茎,还留下了这ç§å‡èƒ¶çŠ¶çš„æžœå†»ã€‚$(br)$(italic)å‡ºäººæ„æ–™çš„美味。$()", - "type":"patchouli:spotlight", - "title":"玉质果冻" - }, - { - "item":"spectrum:jade_vine_petals", - "advancement":"spectrum:hidden/instilled_germinated_jade_vine_seeds", - "text":"有光泽的花瓣在部分生长时å¯ä»¥å°å¿ƒåœ°é‡‡æ‘˜ã€‚$(br)这些花瓣å¯ä»¥ç”¨æ¥$(l:decoration/jade_vine_petal_blocks)装饰$()。$(br)很少,当æœç´¢èŠ±ç“£æ—¶ï¼Œå¯ä»¥æ‰¾åˆ°å¦ä¸€ä¸ªé³žèŒŽã€‚", - "type":"patchouli:spotlight", - "title":"花瓣" - }, - { - "item":"spectrum:moonstruck_nectar", - "advancement":"spectrum:hidden/instilled_germinated_jade_vine_seeds", - "text":"在满月的许多夜晚之åŽï¼Œæ¤ç‰©è¾¾åˆ°äº†ç››å¼€ã€‚$(br)$(italic)他们在花中收集的花蜜å¯ä»¥ç”¨çŽ»ç’ƒç“¶é‡‡é›†ã€‚æœ‰å¾ˆå¥½çš„æ¢å¤ä½œç”¨ï¼Œå¯ä»¥å–æŽ‰æ¥æ²»ç–—。$()", - "type":"patchouli:spotlight", - "title":"月相花蜜" - } - ], - "advancement":"spectrum:hidden/collect_hibernating_jade_vine_seeds", - "extra_recipe_mappings":{ - "spectrum:moonstruck_nectar":0, - "spectrum:hibernating_jade_vine_seeds":0, - "spectrum:jade_jelly":0, - "spectrum:germinated_jade_vine_seeds":0, - "spectrum:jade_vine_petals":0 - }, - "name":"å¤çŽ‰è—¤æ ‘", - "icon":"spectrum:hibernating_jade_vine_seeds", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/lightning_stones.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/lightning_stones.json deleted file mode 100644 index 35dabb3531..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/lightning_stones.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "text":"雷雨是大自然力é‡çš„æœ‰åŠ›æ ‡å¿—ã€‚$(br)有了$(l:general/fusion_shrine)èžåˆç¥žæ®¿$(),你甚至å¯ä»¥åœ¨åˆ¶é€ ä¸€äº›å¼ºå¤§èµ„æºæ—¶å¯åŠ¨å®ƒä»¬ã€‚$(br2)毫无疑问,我们在这里å‘现了一些与颜料的魔力有关的东西。", - "type":"patchouli:text", - "title":"é›·æš´" - }, - { - "item":"spectrum:lightning_stone", - "text":"在被雷击的地é¢ä¸Šï¼Œä½ å‘现这些石头由于固有的é™ç”µè€Œåœ¨ä½ çš„æ‰‹ä¸ŠæŒ¯åŠ¨ã€‚$(br)在$(l:general/fusion_shrine)èžåˆç¥žæ®¿$()中使用,你å¯ä»¥ç”¨å®ƒä»¬å¬å”¤é›·é›¨ã€‚$(br2)$(italic)ç”±äºŽå…¶æŒ¥å‘æ€§ï¼Œå®ƒä»¬å¯¹çˆ†ç‚¸å应ä¸å¤ªå¥½ã€‚。。", - "type":"patchouli:spotlight", - "title":"风暴石" - } - ], - "advancement":"spectrum:midgame/collect_lightning_stone", - "extra_recipe_mappings":{ - "spectrum:lightning_stone":0 - }, - "name":"风暴石", - "icon":"spectrum:lightning_stone", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/mermaids_brush.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/mermaids_brush.json deleted file mode 100644 index c224007944..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/mermaids_brush.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:mermaids_brush", - "text":"$(italic)è¿™ç§ä¸èµ·çœ¼çš„æ¤ç‰©ç”Ÿé•¿åœ¨æµ·æ´‹æœ€æ·±å¤„ï¼Œæ°¸è¿œä¸å—人类影å“。$(br)它们长出一朵花,慢慢地长æˆèбä¸çŠ¶çš„ç§å­ã€‚$()$(br2)美人鱼刷å¯ä»¥ç”¨å‰ªåˆ€æ”¶å‰²ã€‚", - "type":"patchouli:spotlight" - }, - { - "item":"spectrum:mermaids_gem", - "text":"这些中空的ç§å­é•¿å¾—很好,漂浮在海é¢ä¸Šï¼Œè¢«æŸ”软的波浪带走。$(br2)显然,美人鱼å®çŸ³ä¸Žæ°´æœ‰å¾ˆå¼ºçš„结åˆåŠ›ã€‚", - "type":"patchouli:spotlight" - } - ], - "advancement":"spectrum:collect_mermaids_gem", - "extra_recipe_mappings":{ - "spectrum:mermaids_gem":0, - "spectrum:mermaids_brush":0 - }, - "name":"美人鱼å®çŸ³", - "icon":"spectrum:mermaids_gem", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/paletur.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/paletur.json deleted file mode 100644 index 2b36176467..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/paletur.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:paletur_fragments", - "text":"æµ…è“色是这ç§çŸ¿çŸ³çš„æ ‡å¿—。它åªåœ¨æœ€åŽçš„å°ç°‡ä¸­å‘现。$(br)å°±åƒç»“å±€æœ¬èº«ä¸€æ ·ï¼Œè¿™ç§ææ–™çš„å¥‡ç‰¹ç‰¹æ€§ä¹Ÿä¸å®¹å¿½è§†ã€‚", - "type":"patchouli:spotlight", - "title":"è‹ç»¿" - }, - { - "advancement":"spectrum:hidden/collect_paletur_gem", - "recipe":"spectrum:pedestal/tier4/paletur_gem", - "text":"很少有人能雕刻出完整的石头。它å¯ä»¥ç”¨äºŽç¢Žç‰‡å¤ªå°çš„é…æ–¹ä¸­ã€‚ä¸è¿‡åªè¦åŠªåŠ›ï¼Œä½ å°±å¯ä»¥æŠŠå®ƒä»¬åˆå¹¶åœ¨ä¸€èµ·ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"è‹ç»¿å®çŸ³" - }, - { - "item":"spectrum:paletur_fragment_block", - "advancement":"spectrum:lategame/carry_too_many_low_gravity_blocks", - "text":"æ ¹æ®æ‚¨ä¹‹å‰åœ¨è‹ç»¿çš„ç»éªŒï¼Œæ‚¨å·²ç»å¯ä»¥çŒœåˆ°ï¼Œå°†è¿™ä¸ªæ–¹å—æ”¾ç½®åœ¨å¼€é˜”çš„å¤©ç©ºä¸­ä¸æ˜¯ä¸€ä¸ªå¥½ä¸»æ„。$(br2)这个方å—上的箭头会æé†’你——你未æ¥çš„自己会感谢你。", - "type":"patchouli:spotlight", - "title":"è‹ç»¿æµ®åЍå—" - }, - { - "advancement":"spectrum:lategame/carry_too_many_low_gravity_blocks", - "recipe":"spectrum:pedestal/tier1/compacting/paletur_fragment_block", - "text":"$(italic)~飞远点~", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:lategame/collect_paletur", - "extra_recipe_mappings":{ - "spectrum:paletur_ore":0, - "spectrum:paletur_gem":0, - "spectrum:paletur_fragments":0, - "spectrum:paletur_fragment_block":0 - }, - "name":"è‹ç»¿", - "icon":"spectrum:paletur_fragments", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/quitoxic_reeds.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/quitoxic_reeds.json deleted file mode 100644 index 6801d09c0f..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/quitoxic_reeds.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "pages":[ - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/quitoxic_reed.png" - ], - "text":"åªç”Ÿé•¿åœ¨æ²¼æ³½ä¸­ï¼Œä¼¼ä¹Žåžé£Ÿç²˜åœŸä½œä¸ºä¸€ç§è¥å…»ç‰©è´¨ã€‚", - "type":"patchouli:image", - "title":"祛毒甘蔗" - }, - { - "item":"spectrum:quitoxic_powder", - "text":"用é“砧将这ç§çœ‹èµ·æ¥åƒå¤–星人的æ¤ç‰©çš„茎压碎,å¯ä»¥ä»Žä¸­æå–出一ç§ç´«è‰²çš„闪闪å‘光的粉末。$(br)当你用手指摩擦时,气味和稠度很ä¸å¯»å¸¸ã€‚。。。$(br2)$(italic)等等,手指是什么?", - "type":"patchouli:spotlight" - } - ], - "advancement":"spectrum:collect_quitoxic_reeds", - "extra_recipe_mappings":{ - "spectrum:quitoxic_reeds":0, - "spectrum:quitoxic_powder":0 - }, - "name":"祛毒甘蔗", - "icon":"spectrum:quitoxic_reeds", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/resonating_ender.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/resonating_ender.json deleted file mode 100644 index 6c847a4f77..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/resonating_ender.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "pages":[ - { - "text":"$(italic)那些讨厌的末影人ï¼$(br2)他们总是在晚上出现,从你眼皮底下里å·èµ°æ–¹å—。你会觉得在一个月内,这里的整个地区åªä¼šæ˜¯ä¸€ä¸ªç«å±±å£æ™¯è§‚。$()", - "type":"patchouli:text" - }, - { - "item":"spectrum:ender_treasure", - "text":"末影人æ¥åˆ°è¿™ä¸ªä¸–界是为了安置那些方å—。但这是什么?他们$(italic)为什么$()把它留在这里?$(br2)现在你手里拿ç€ä¸€ä¸ªã€‚。。他们无处ä¸åœ¨ï¼ä½ æ€Žä¹ˆæ²¡æ³¨æ„到?无论如何,你肯定å¯ä»¥åˆ©ç”¨è¿™ä¸ªæœ‰è¶£çš„ææ–™ã€‚", - "type":"patchouli:spotlight", - "title":"共鸣的末影" - } - ], - "advancement":"spectrum:milestones/reveal_ender_treasure", - "extra_recipe_mappings":{ - "spectrum:ender_treasure":0 - }, - "name":"共鸣的末影", - "icon":"minecraft:ender_pearl", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/scarlet.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/scarlet.json deleted file mode 100644 index 27281e04bc..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/scarlet.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:scarlet_fragments", - "text":"è¿™ç§å¾ˆé‡çš„矿石散è½åœ¨å¹½å†¥æ·±å¤„。$(br)一次æºå¸¦å¤§é‡åžƒåœ¾å›žå®¶å¯èƒ½ä¸æ˜¯æœ€å¥½çš„主æ„。", - "type":"patchouli:spotlight", - "title":"克里å¦" - }, - { - "advancement":"spectrum:hidden/collect_scarlet_gem", - "recipe":"spectrum:pedestal/tier3/scarlet_gem", - "text":"很少有人能雕刻出完整的石头。它å¯ä»¥ç”¨äºŽç¢Žç‰‡å¤ªå°çš„é…æ–¹ä¸­ã€‚ä¸è¿‡åªè¦åŠªåŠ›ï¼Œä½ å°±å¯ä»¥æŠŠå®ƒä»¬åˆå¹¶åœ¨ä¸€èµ·ã€‚", - "type":"spectrum:pedestal_crafting", - "title":"克利å¦å®çŸ³" - }, - { - "item":"spectrum:scarlet_fragment_block", - "advancement":"spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "text":"正如你å¯èƒ½å·²ç»æ³¨æ„åˆ°çš„é‚£æ ·ï¼Œå…‹é‡Œå¦æ˜¯ä¸€ç§éžå¸¸é‡çš„ææ–™ã€‚也很难塑造。å³ä½¿æ˜¯ä¸‹ç•Œçš„炽热也ä¸ä¼šä¼¤å®³çš„物质。$(br2)然而,通过你的$(l:general/pedestal)基座$()å¡‘é€ å®ƒåº”è¯¥ä¸æ˜¯ä¸€ä¸ªé—®é¢˜ã€‚", - "type":"patchouli:spotlight", - "title":"å…‹é‡Œå¦æµ®å—" - }, - { - "advancement":"spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "recipe":"spectrum:pedestal/tier1/compacting/scarlet_fragment_block", - "text":"$(italic)é‡é‡‘属", - "type":"spectrum:pedestal_crafting", - "title":"åŸºåº§é…æ–¹" - } - ], - "advancement":"spectrum:midgame/collect_scarlet", - "extra_recipe_mappings":{ - "spectrum:scarlet_fragment_block":0, - "spectrum:scarlet_gem":0, - "spectrum:scarlet_ore":0, - "spectrum:scarlet_fragments":0 - }, - "name":"克里å¦", - "icon":"spectrum:scarlet_fragments", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/shimmerstone.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/shimmerstone.json deleted file mode 100644 index f3d33d038d..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/shimmerstone.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "pages":[ - { - "item":"spectrum:sparklestone_gem", - "text":"一ç§é»„色矿石,ä¸ä»…能以光的形å¼é‡Šæ”¾èƒ½é‡ï¼Œè€Œä¸”还能对其进行æ“纵。$(br2)闪光石被å‘现在接近海平é¢çš„高度。", - "type":"patchouli:spotlight", - "title":"微光石" - }, - { - "recipe":"spectrum:crafting_table/storage_blocks/sparklestone_block", - "text":"整个方å—的闪光石å‘出明亮的黄色颗粒。", - "type":"patchouli:crafting" - } - ], - "advancement":"spectrum:collect_sparklestone", - "extra_recipe_mappings":{ - "spectrum:deepslate_sparklestone_ore":0, - "spectrum:sparklestone_ore":0, - "spectrum:sparklestone_block":0, - "spectrum:sparklestone_gem":0 - }, - "name":"微光石", - "icon":"spectrum:sparklestone_ore", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/stargazing.json b/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/stargazing.json deleted file mode 100644 index 8a9b74a474..0000000000 --- a/src/main/resources/data/spectrum/patchouli_books/manual/zh_cn/entries/resources/stargazing.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "pages":[ - { - "border":true, - "images":[ - "spectrum:textures/gui/manual/stargazing.png" - ], - "text":"$(italic)夜晚的å®é™é‚€è¯·ä½ èººåœ¨è‰åœ°ä¸Šçœ‹æ˜Ÿæ˜Ÿã€‚", - "type":"patchouli:image", - "title":"å¯¹ç€æ˜Ÿæ˜Ÿè®¸æ„¿" - }, - { - "item":"spectrum:shooting_star_glistering", - "advancement":"spectrum:collect_shooting_star", - "text":"è¿™äº›å°æµæ˜Ÿæ˜¯ç”±è¿„今为止你还ä¸çŸ¥é“çš„ææ–™åˆ¶æˆçš„。$(br2)你能从天上抓一个å—?$(br2)$(italic)æç¤ºï¼šå½“ä½¿ç”¨æœ›è¿œé•œæˆ–å¤œè§†ä»ªæ—¶ï¼Œæµæ˜Ÿæ›´å®¹æ˜“被å‘现。$()", - "type":"patchouli:spotlight", - "title":"æµæ˜Ÿ" - }, - { - "item":"spectrum:shooting_star", - "advancement":"spectrum:collect_shooting_star", - "text":"æµæ˜Ÿäº§ç”Ÿäº†å®è´µçš„资æºï¼ŒåŒ…括这ç§ç½•è§çš„æ’æ˜Ÿç¢Žç‰‡ã€æ˜Ÿå°˜å’Œå¤§é‡å…¶ä»–ç¨€æœ‰ææ–™ã€‚$(br2)è¹²ç€æ¡èµ·æµæ˜Ÿï¼Œç„¶åŽç”¨é“砧将其$(l:general/anvil_crushing)砸碎$(/l)ï¼Œè™½ç„¶ä¼šæ¶ˆè€—å…¶ä»–ææ–™ï¼Œä½†ä¼šäº§ç”ŸåŒå€çš„æ’æ˜Ÿç¢Žç‰‡ã€‚", - "type":"patchouli:spotlight", - "title":"æ’æ˜Ÿç¢Žç‰‡" - }, - { - "item":"spectrum:stardust", - "advancement":"spectrum:collect_shooting_star", - "text":"ä¸€ç§æ¥æºä¸æ˜Žçš„粉末,被星星的çµé­‚所ç¥ç¦ã€‚$(br)熊害羞,但潜在的力é‡ã€‚", - "type":"patchouli:spotlight", - "title":"星尘" - } - ], - "advancement":"spectrum:milestones/unlock_shooting_stars", - "extra_recipe_mappings":{ - "spectrum:shooting_star_fiery":0, - "spectrum:shooting_star_colorful":0, - "spectrum:shooting_star_gemstone":0, - "spectrum:shooting_star_glistering":0, - "spectrum:shooting_star_pristine":0, - "spectrum:shooting_star":0, - "spectrum:stardust":0 - }, - "name":"å‡è§†æ˜Ÿç©º", - "icon":"minecraft:spyglass", - "category":"spectrum:resources_category" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_crystal.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_crystal.json index 0ad4588331..0e131e9b01 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_crystal.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_crystal.json @@ -1,15 +1,17 @@ { "type": "spectrum:anvil_crushing", "ingredient": { - "item": "spectrum:bismuth_crystal" + "item": "spectrum:bismuth_cluster" }, "crushedItemsPerPointOfDamage": 0.75, "experience": 0.5, "result": { - "item": "spectrum:small_bismuth_bud", + "item": "spectrum:bismuth_flake", "count": 5 }, "particleEffectIdentifier": "enchanted_hit", "particleCount": 10, - "soundEventIdentifier": "block.chain.break" + "soundEventIdentifier": "block.chain.break", + "group": "bismuth_crushing", + "required_advancement": "spectrum:lategame/collect_bismuth" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_large_bud.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_large_bud.json index d853864a07..54536a8cd7 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_large_bud.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_large_bud.json @@ -6,10 +6,12 @@ "crushedItemsPerPointOfDamage": 0.75, "experience": 0.25, "result": { - "item": "spectrum:small_bismuth_bud", + "item": "spectrum:bismuth_flake", "count": 2 }, "particleEffectIdentifier": "enchanted_hit", "particleCount": 10, - "soundEventIdentifier": "block.chain.break" + "soundEventIdentifier": "block.chain.break", + "group": "bismuth_crushing", + "required_advancement": "spectrum:lategame/collect_bismuth" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_small_bud.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_small_bud.json new file mode 100644 index 0000000000..b21d86c915 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/bismuth/bismuth_from_small_bud.json @@ -0,0 +1,17 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "item": "spectrum:small_bismuth_bud" + }, + "crushedItemsPerPointOfDamage": 0.75, + "experience": 0.0, + "result": { + "item": "spectrum:bismuth_flake", + "count": 1 + }, + "particleEffectIdentifier": "enchanted_hit", + "particleCount": 10, + "soundEventIdentifier": "block.chain.break", + "group": "bismuth_crushing", + "required_advancement": "spectrum:lategame/collect_bismuth" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/blizzard_powder_from_frostbite_crystal.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/blizzard_powder_from_frostbite_crystal.json index 3c096c5e37..5da43191e2 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/blizzard_powder_from_frostbite_crystal.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/blizzard_powder_from_frostbite_crystal.json @@ -11,5 +11,6 @@ }, "particleEffectIdentifier": "enchanted_hit", "particleCount": 10, - "soundEventIdentifier": "block.glass.break" + "soundEventIdentifier": "block.glass.break", + "required_advancement": "spectrum:hidden/collect_frostbite_crystal" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/cobbled_blackslag_from_blackslag.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/cobbled_blackslag_from_blackslag.json new file mode 100644 index 0000000000..fbcfb7ec95 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/cobbled_blackslag_from_blackslag.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "item": "spectrum:blackslag" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0, + "result": { + "item": "spectrum:cobbled_blackslag", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.stone.break", + "required_advancement": "spectrum:hidden/collect_blackslag" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_buds.json index 29f303bd7b..c30ca5c4cb 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:coal", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_cluster.json index fca60d4033..022d7cadd3 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/coal_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_buds.json index 3524de85e5..5fe5664231 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:copper_ingot", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_cluster.json index 98d1097fe4..39e298aada 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/copper_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_buds.json index 2fc7e00951..95a647d31d 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:diamond", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_cluster.json index fac97f1a90..f7ae7f03a2 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/diamond_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_buds.json index 61cce4c828..9097bfb2ec 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:emerald", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_cluster.json index 9f7a669e00..88ee5d32b3 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/emerald_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_buds.json index 3b1b031279..a5d708e64a 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:glowstone_dust", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_cluster.json index 9f08a30ee3..0a03a7b708 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/glowstone_from_cluster.json @@ -10,5 +10,7 @@ "count": 12 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_buds.json index 75fb077858..b9a66e54c3 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:gold_ingot", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_cluster.json index 1f9bced48f..daf1d55574 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/gold_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_buds.json index be48083c52..076df1d532 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:iron_ingot", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_cluster.json index 6d2e4098cf..2a1dd9a9e3 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/iron_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_buds.json index 80d91b969f..2c12e1a976 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:lapis_lazuli", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_cluster.json index 8440e5402a..c84a4a7f12 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/lapis_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_buds.json index 2870bfd382..502be3d4ec 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:netherite_scrap", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_cluster.json index a42a97051a..cad7664f12 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/netherite_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_buds.json index 2d382e1b8e..8d8d814316 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:prismarine_crystals", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_cluster.json index 6527f4b8ec..a8660fd91a 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/prismarine_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_buds.json index f4fc423fc4..4ed8c4f85d 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:quartz", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_cluster.json index 32418104a0..95ad689caa 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/quartz_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_buds.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_buds.json index 6a57a7d84e..7417e6decb 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_buds.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_buds.json @@ -12,8 +12,10 @@ "experience": 2.0, "result": { "item": "minecraft:redstone", - "count": 2 + "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_cluster.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_cluster.json index a97d9fab4e..84d56d93eb 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/crystallarieum_growables/redstone_from_cluster.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "crystallarieum_growable_crushing", + "required_advancement": "spectrum:progression/unlock_crystallarieum" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/fiery_powder_from_blazing_crystal.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/fiery_powder_from_blazing_crystal.json index a3208780b5..1c383531f8 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/fiery_powder_from_blazing_crystal.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/fiery_powder_from_blazing_crystal.json @@ -11,5 +11,6 @@ }, "particleEffectIdentifier": "enchanted_hit", "particleCount": 10, - "soundEventIdentifier": "block.glass.break" + "soundEventIdentifier": "block.glass.break", + "required_advancement": "spectrum:hidden/collect_blazing_crystal" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_block_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_block_anvil_crushing.json index 2b31ee4416..e1245f5ce6 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_block_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_block_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_cluster_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_cluster_anvil_crushing.json index 1515416c1f..9f14832a6f 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_cluster_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_cluster_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 16 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.amethyst_cluster.break" + "soundEventIdentifier": "block.amethyst_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_shard.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_shard.json index 74aaf99d25..37f68c251a 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_shard.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_amethyst_shard.json @@ -10,5 +10,7 @@ "count": 2 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.small_amethyst_bud.break" + "soundEventIdentifier": "block.small_amethyst_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_large_amethyst_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_large_amethyst_bud_anvil_crushing.json index 77bd4ada18..185d6000aa 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_large_amethyst_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_large_amethyst_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 8 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.large_amethyst_bud.break" + "soundEventIdentifier": "block.large_amethyst_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_medium_amethyst_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_medium_amethyst_bud_anvil_crushing.json index fb32109c7d..57660ad9b2 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_medium_amethyst_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_medium_amethyst_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.medium_amethyst_bud.break" + "soundEventIdentifier": "block.medium_amethyst_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_small_amethyst_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_small_amethyst_bud_anvil_crushing.json index c9f3b35135..44e1bd63b6 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_small_amethyst_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/amethyst_powder_from_small_amethyst_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 4 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.small_amethyst_bud.break" + "soundEventIdentifier": "block.small_amethyst_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_amethyst_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_block_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_block_anvil_crushing.json index 800bb2274b..59c426fcb1 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_block_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_block_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.citrine_cluster.break" + "soundEventIdentifier": "spectrum:block.citrine_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_cluster_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_cluster_anvil_crushing.json index 6e7591ed53..387cbda64a 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_cluster_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_cluster_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 16 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.citrine_cluster.break" + "soundEventIdentifier": "spectrum:block.citrine_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_shard.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_shard.json index 0cbb54811c..45d93d9d06 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_shard.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_citrine_shard.json @@ -10,5 +10,7 @@ "count": 2 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_citrine_bud.break" + "soundEventIdentifier": "spectrum:block.small_citrine_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_large_citrine_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_large_citrine_bud_anvil_crushing.json index a6f1fdddec..e37bcf60c6 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_large_citrine_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_large_citrine_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 8 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.large_citrine_bud.break" + "soundEventIdentifier": "spectrum:block.large_citrine_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_medium_citrine_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_medium_citrine_bud_anvil_crushing.json index 9a6fc7b72f..4fe19d7f57 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_medium_citrine_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_medium_citrine_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.medium_citrine_bud.break" + "soundEventIdentifier": "spectrum:block.medium_citrine_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_small_citrine_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_small_citrine_bud_anvil_crushing.json index 7425b7b3b6..91b3012dd3 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_small_citrine_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/citrine_powder_from_small_citrine_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 4 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_citrine_bud.break" + "soundEventIdentifier": "spectrum:block.small_citrine_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_citrine_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_large_moonstone_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_large_moonstone_bud_anvil_crushing.json index ac9ec8fb04..1b1045c2a3 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_large_moonstone_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_large_moonstone_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 8 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.large_moonstone_bud.break" + "soundEventIdentifier": "spectrum:block.large_moonstone_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_medium_moonstone_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_medium_moonstone_bud_anvil_crushing.json index eceb5a8ba9..d87ee6f16c 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_medium_moonstone_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_medium_moonstone_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.medium_moonstone_bud.break" + "soundEventIdentifier": "spectrum:block.medium_moonstone_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_block_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_block_anvil_crushing.json index 15b2fc1a57..d9b9513e06 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_block_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_block_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.moonstone_cluster.break" + "soundEventIdentifier": "spectrum:block.moonstone_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_cluster_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_cluster_anvil_crushing.json index 1289f07174..08832866d4 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_cluster_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_cluster_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 16 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.moonstone_cluster.break" + "soundEventIdentifier": "spectrum:block.moonstone_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_shard.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_shard.json index ab4cd589b7..9dcea6dea6 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_shard.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_moonstone_shard.json @@ -10,5 +10,7 @@ "count": 2 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_moonstone_bud.break" + "soundEventIdentifier": "spectrum:block.small_moonstone_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_small_moonstone_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_small_moonstone_bud_anvil_crushing.json index 91d7ef36bd..bd2ea23f71 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_small_moonstone_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/moonstone_powder_from_small_moonstone_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 4 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_moonstone_bud.break" + "soundEventIdentifier": "spectrum:block.small_moonstone_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_large_onyx_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_large_onyx_bud_anvil_crushing.json index d85aa2e3eb..cedde96bb1 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_large_onyx_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_large_onyx_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 8 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.large_onyx_bud.break" + "soundEventIdentifier": "spectrum:block.large_onyx_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:create_onyx_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_medium_onyx_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_medium_onyx_bud_anvil_crushing.json index ead4148772..bfd049619c 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_medium_onyx_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_medium_onyx_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.medium_onyx_bud.break" + "soundEventIdentifier": "spectrum:block.medium_onyx_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:create_onyx_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_block_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_block_anvil_crushing.json index 108437bda8..67b34b0c85 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_block_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_block_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.onyx_cluster.break" + "soundEventIdentifier": "spectrum:block.onyx_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:create_onyx_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_cluster_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_cluster_anvil_crushing.json index 64d87bd648..3036fdc2a1 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_cluster_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_cluster_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 16 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.onyx_cluster.break" + "soundEventIdentifier": "spectrum:block.onyx_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:create_onyx_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_shard.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_shard.json index 0ea9a3c8cb..3f7c5d51f5 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_shard.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_onyx_shard.json @@ -10,5 +10,7 @@ "count": 2 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_onyx_bud.break" + "soundEventIdentifier": "spectrum:block.small_onyx_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:create_onyx_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_small_onyx_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_small_onyx_bud_anvil_crushing.json index dab0977041..4f8083f7db 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_small_onyx_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/onyx_powder_from_small_onyx_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 4 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_onyx_bud.break" + "soundEventIdentifier": "spectrum:block.small_onyx_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:create_onyx_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_large_topaz_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_large_topaz_bud_anvil_crushing.json index 3cac0bed0b..bf12456e8b 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_large_topaz_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_large_topaz_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 8 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.large_topaz_bud.break" + "soundEventIdentifier": "spectrum:block.large_topaz_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_medium_topaz_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_medium_topaz_bud_anvil_crushing.json index feca874022..34f16ecc62 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_medium_topaz_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_medium_topaz_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 6 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.medium_topaz_bud.break" + "soundEventIdentifier": "spectrum:block.medium_topaz_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_onyx_shard.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_onyx_shard.json index 33ad737b28..ec098af01a 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_onyx_shard.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_onyx_shard.json @@ -10,5 +10,7 @@ "count": 2 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_topaz_bud.break" + "soundEventIdentifier": "spectrum:block.small_topaz_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_small_topaz_bud_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_small_topaz_bud_anvil_crushing.json index 33d088da24..dce1856de1 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_small_topaz_bud_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_small_topaz_bud_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 4 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.small_topaz_bud.break" + "soundEventIdentifier": "spectrum:block.small_topaz_bud.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_block_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_block_anvil_crushing.json index d302465a0c..55f3f7da7d 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_block_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_block_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 1 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.topaz_cluster.break" + "soundEventIdentifier": "spectrum:block.topaz_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_cluster_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_cluster_anvil_crushing.json index 59bc3cbad2..21986523d6 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_cluster_anvil_crushing.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/gemstone_powder/topaz_powder_from_topaz_cluster_anvil_crushing.json @@ -10,5 +10,7 @@ "count": 16 }, "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "spectrum:block.topaz_cluster.break" + "soundEventIdentifier": "spectrum:block.topaz_cluster.break", + "group": "gemstone_crushing", + "required_advancement": "spectrum:hidden/collect_shards/collect_topaz_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/paletur_fragments.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/paletur_fragments.json deleted file mode 100644 index e10929ee7d..0000000000 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/paletur_fragments.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "spectrum:anvil_crushing", - "ingredient": { - "item": "spectrum:paletur_gem" - }, - "crushedItemsPerPointOfDamage": 1, - "experience": 0.5, - "result": { - "item": "spectrum:paletur_fragments", - "count": 8 - }, - "particleEffectIdentifier": "enchanted_hit", - "particleCount": 10, - "soundEventIdentifier": "block.glass.break" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/paltaeria_fragments.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/paltaeria_fragments.json new file mode 100644 index 0000000000..c92bd5d8de --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/paltaeria_fragments.json @@ -0,0 +1,16 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "item": "spectrum:paltaeria_gem" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.5, + "result": { + "item": "spectrum:paltaeria_fragments", + "count": 8 + }, + "particleEffectIdentifier": "enchanted_hit", + "particleCount": 10, + "soundEventIdentifier": "block.glass.break", + "required_advancement": "spectrum:lategame/collect_paltaeria" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/quitoxic_powder.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/quitoxic_powder.json index c4796543cd..1384985fd2 100644 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/quitoxic_powder.json +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/quitoxic_powder.json @@ -11,5 +11,6 @@ }, "particleEffectIdentifier": "witch", "particleCount": 10, - "soundEventIdentifier": "block.grass.break" + "soundEventIdentifier": "block.grass.break", + "required_advancement": "spectrum:collect_quitoxic_reeds" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/scarlet_fragments.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/scarlet_fragments.json deleted file mode 100644 index 8ce1ff45b5..0000000000 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/scarlet_fragments.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "spectrum:anvil_crushing", - "ingredient": { - "item": "spectrum:scarlet_gem" - }, - "crushedItemsPerPointOfDamage": 1, - "experience": 0.5, - "result": { - "item": "spectrum:scarlet_fragments", - "count": 8 - }, - "particleEffectIdentifier": "explosion", - "soundEventIdentifier": "block.glass.break" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/shooting_star.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/shooting_star.json deleted file mode 100644 index ad534792fb..0000000000 --- a/src/main/resources/data/spectrum/recipes/anvil_crushing/shooting_star.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "spectrum:anvil_crushing", - "ingredient": { - "tag": "spectrum:shooting_stars" - }, - "crushedItemsPerPointOfDamage": 0.3, - "experience": 5.0, - "result": { - "item": "spectrum:shooting_star", - "count": 2 - }, - "particleEffectIdentifier": "explosion", - "particleCount": 2, - "soundEventIdentifier": "block.stone.break" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cobbled_blackslag_from_blackslag_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cobbled_blackslag_from_blackslag_anvil_crushing.json new file mode 100644 index 0000000000..4c51dbcff4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cobbled_blackslag_from_blackslag_anvil_crushing.json @@ -0,0 +1,14 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "item": "spectrum:blackslag" + }, + "crushedItemsPerPointOfDamage": 0.8, + "experience": 0, + "result": { + "item": "spectrum:cobbled_blackslag", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cobbled_blackslag_from_infested_blackslag_anvil_crushing.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cobbled_blackslag_from_infested_blackslag_anvil_crushing.json new file mode 100644 index 0000000000..548e0788c6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cobbled_blackslag_from_infested_blackslag_anvil_crushing.json @@ -0,0 +1,14 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "item": "spectrum:infested_blackslag" + }, + "crushedItemsPerPointOfDamage": 0.8, + "experience": 0, + "result": { + "item": "spectrum:cobbled_blackslag", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_basalt_bricks.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_basalt_bricks.json new file mode 100644 index 0000000000..97a7aa091f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_basalt_bricks.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "group": "block_cracking", + "ingredient": { + "item": "spectrum:basalt_bricks" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.0, + "result": { + "item": "spectrum:cracked_basalt_bricks", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_basalt_tiles.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_basalt_tiles.json new file mode 100644 index 0000000000..72aeebc114 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_basalt_tiles.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "group": "block_cracking", + "ingredient": { + "item": "spectrum:basalt_tiles" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.0, + "result": { + "item": "spectrum:cracked_basalt_tiles", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_blackslag_bricks.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_blackslag_bricks.json new file mode 100644 index 0000000000..360017e752 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_blackslag_bricks.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "group": "block_cracking", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.0, + "result": { + "item": "spectrum:cracked_blackslag_bricks", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_blackslag_tiles.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_blackslag_tiles.json new file mode 100644 index 0000000000..2173d0e719 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_blackslag_tiles.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "group": "block_cracking", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.0, + "result": { + "item": "spectrum:cracked_blackslag_tiles", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_calcite_bricks.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_calcite_bricks.json new file mode 100644 index 0000000000..1080628fe8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_calcite_bricks.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "group": "block_cracking", + "ingredient": { + "item": "spectrum:calcite_bricks" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.0, + "result": { + "item": "spectrum:cracked_calcite_bricks", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_calcite_tiles.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_calcite_tiles.json new file mode 100644 index 0000000000..fdf478c254 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/spectrum_pulverising/cracked_calcite_tiles.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "group": "block_cracking", + "ingredient": { + "item": "spectrum:calcite_tiles" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.0, + "result": { + "item": "spectrum:cracked_calcite_tiles", + "count": 1 + }, + "particleEffectIdentifier": "cloud", + "soundEventIdentifier": "block.deepslate.break" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/star_fragment.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/star_fragment.json new file mode 100644 index 0000000000..dac10b12eb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/star_fragment.json @@ -0,0 +1,16 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "tag": "spectrum:shooting_stars" + }, + "crushedItemsPerPointOfDamage": 0.3, + "experience": 5.0, + "result": { + "item": "spectrum:star_fragment", + "count": 2 + }, + "particleEffectIdentifier": "explosion", + "particleCount": 2, + "soundEventIdentifier": "block.stone.break", + "required_advancement": "spectrum:collect_star_fragment" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/anvil_crushing/stratine_fragments.json b/src/main/resources/data/spectrum/recipes/anvil_crushing/stratine_fragments.json new file mode 100644 index 0000000000..d60f49c09b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/anvil_crushing/stratine_fragments.json @@ -0,0 +1,15 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": { + "item": "spectrum:stratine_gem" + }, + "crushedItemsPerPointOfDamage": 1, + "experience": 0.5, + "result": { + "item": "spectrum:stratine_fragments", + "count": 8 + }, + "particleEffectIdentifier": "explosion", + "soundEventIdentifier": "block.glass.break", + "required_advancement": "spectrum:midgame/collect_stratine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/basalt_brick_stairs_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_brick_stairs_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/basalt_brick_stairs_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_brick_stairs_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/basalt_brick_wall_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_brick_wall_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/basalt_brick_wall_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_brick_wall_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/basalt_bricks_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_bricks_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/basalt_bricks_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_bricks_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tile_stairs_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tile_stairs_to_polished_basalt.json new file mode 100644 index 0000000000..5944588630 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tile_stairs_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:basalt_tile_stairs" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tile_wall_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tile_wall_to_polished_basalt.json new file mode 100644 index 0000000000..a62101a34a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tile_wall_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:basalt_tile_wall" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tiles_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tiles_to_polished_basalt.json new file mode 100644 index 0000000000..297ddea813 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/basalt_tiles_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:basalt_tiles" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/chiseled_polished_basalt_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/chiseled_polished_basalt_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/chiseled_polished_basalt_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/chiseled_polished_basalt_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/cracked_basalt_tiles_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/cracked_basalt_tiles_to_polished_basalt.json new file mode 100644 index 0000000000..1473bd40b7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/cracked_basalt_tiles_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:cracked_basalt_tiles" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/notched_polished_basalt_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/notched_polished_basalt_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/notched_polished_basalt_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/notched_polished_basalt_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_button_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_button_to_polished_basalt.json new file mode 100644 index 0000000000..e322adf7b4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_button_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_basalt_button" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_crest_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_crest_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_crest_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_crest_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_pillar_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_pillar_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_pillar_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_pillar_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_pressure_plate_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_pressure_plate_to_polished_basalt.json new file mode 100644 index 0000000000..96453637bc --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_pressure_plate_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_basalt_pressure_plate" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_stairs_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_stairs_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_stairs_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_stairs_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_wall_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_wall_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_basalt_wall_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/blasting/basalt_unsmelting/polished_basalt_wall_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_ores/copper_from_blasting_blackslag_copper_ore.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_ores/copper_from_blasting_blackslag_copper_ore.json new file mode 100644 index 0000000000..f8a7e141c1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_ores/copper_from_blasting_blackslag_copper_ore.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:blasting", + "group": "copper", + "ingredient": { + "item": "spectrum:blackslag_copper_ore" + }, + "result": "minecraft:raw_copper", + "experience": 1.0, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_to_polished_blackslag.json new file mode 100644 index 0000000000..d436896950 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag.json new file mode 100644 index 0000000000..5e81180576 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag_brick_stairs" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_brick_wall_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_brick_wall_to_polished_blackslag.json new file mode 100644 index 0000000000..1c052af79c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_brick_wall_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag_brick_wall" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_bricks_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_bricks_to_polished_blackslag.json new file mode 100644 index 0000000000..3f8c304c97 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_bricks_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tile_stairs_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tile_stairs_to_polished_blackslag.json new file mode 100644 index 0000000000..f2b4ea241e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tile_stairs_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag_tile_stairs" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tile_wall_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tile_wall_to_polished_blackslag.json new file mode 100644 index 0000000000..de5fc1bff3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tile_wall_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag_tile_wall" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tiles_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tiles_to_polished_blackslag.json new file mode 100644 index 0000000000..8d44d5e9a4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/blackslag_tiles_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag.json new file mode 100644 index 0000000000..d2bb7c1787 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:chiseled_polished_blackslag" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cobbled_blackslag_stairs_to_cobbled_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cobbled_blackslag_stairs_to_cobbled_blackslag.json new file mode 100644 index 0000000000..01c02938d6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cobbled_blackslag_stairs_to_cobbled_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:cobbled_blackslag_stairs" + }, + "result": "spectrum:cobbled_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cobbled_blackslag_wall_to_cobbled_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cobbled_blackslag_wall_to_cobbled_blackslag.json new file mode 100644 index 0000000000..04d4ed7d64 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cobbled_blackslag_wall_to_cobbled_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:cobbled_blackslag_wall" + }, + "result": "spectrum:cobbled_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cracked_blackslag_tiles_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cracked_blackslag_tiles_to_polished_basalt.json new file mode 100644 index 0000000000..0bf74930d5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/cracked_blackslag_tiles_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:cracked_blackslag_tiles" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_button_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_button_to_polished_blackslag.json new file mode 100644 index 0000000000..f8b8fc73c7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_button_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_blackslag_button" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_pressure_plate_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_pressure_plate_to_polished_blackslag.json new file mode 100644 index 0000000000..e73e128f3a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_pressure_plate_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_blackslag_pressure_plate" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_stairs_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_stairs_to_polished_blackslag.json new file mode 100644 index 0000000000..5f4373ead1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_stairs_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_blackslag_stairs" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_wall_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_wall_to_polished_blackslag.json new file mode 100644 index 0000000000..2275446565 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/blackslag_unsmelting/polished_blackslag_wall_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_blackslag_wall" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/calcite_brick_stairs_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_brick_stairs_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/calcite_brick_stairs_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_brick_stairs_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/calcite_brick_wall_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_brick_wall_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/calcite_brick_wall_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_brick_wall_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/calcite_bricks_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_bricks_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/calcite_bricks_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_bricks_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tile_stairs_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tile_stairs_to_polished_calcite.json new file mode 100644 index 0000000000..f001e13113 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tile_stairs_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:calcite_tile_stairs" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tile_wall_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tile_wall_to_polished_calcite.json new file mode 100644 index 0000000000..448e329d52 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tile_wall_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:calcite_tile_wall" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tiles_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tiles_to_polished_calcite.json new file mode 100644 index 0000000000..2f7b7009af --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/calcite_tiles_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:calcite_tiles" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/chiseled_polished_calcite_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/chiseled_polished_calcite_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/chiseled_polished_calcite_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/chiseled_polished_calcite_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/cracked_calcite_tiles_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/cracked_calcite_tiles_to_polished_calcite.json new file mode 100644 index 0000000000..38ed2ff563 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/cracked_calcite_tiles_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:cracked_calcite_tiles" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/notched_polished_calcite_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/notched_polished_calcite_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/notched_polished_calcite_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/notched_polished_calcite_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_button_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_button_to_polished_calcite.json new file mode 100644 index 0000000000..4d222c3ac2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_button_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_calcite_button" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_crest_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_crest_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_crest_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_crest_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_pillar_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_pillar_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_pillar_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_pillar_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_pressure_plate_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_pressure_plate_to_polished_calcite.json new file mode 100644 index 0000000000..1b25bb05f5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_pressure_plate_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:polished_calcite_pressure_plate" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_stairs_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_stairs_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_stairs_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_stairs_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_wall_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_wall_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/blasting/stone_deco_unsmelting/polished_calcite_wall_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/blasting/calcite_unsmelting/polished_calcite_wall_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/blasting/cobbled_blackslag_to_blackslag.json b/src/main/resources/data/spectrum/recipes/blasting/cobbled_blackslag_to_blackslag.json new file mode 100644 index 0000000000..67c7e6d338 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/cobbled_blackslag_to_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:cobbled_blackslag" + }, + "result": "spectrum:blackslag", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/ore/paletur_fragment_from_paletur_ore_blasting.json b/src/main/resources/data/spectrum/recipes/blasting/ore/paletur_fragment_from_paletur_ore_blasting.json deleted file mode 100644 index 11ff2e3594..0000000000 --- a/src/main/resources/data/spectrum/recipes/blasting/ore/paletur_fragment_from_paletur_ore_blasting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:blasting", - "ingredient": { - "item": "spectrum:paletur_ore" - }, - "result": "spectrum:paletur_fragments", - "experience": 0.2, - "cookingtime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/ore/paltaeria_fragment_from_paltaeria_ore_blasting.json b/src/main/resources/data/spectrum/recipes/blasting/ore/paltaeria_fragment_from_paltaeria_ore_blasting.json new file mode 100644 index 0000000000..689ca64eb2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/ore/paltaeria_fragment_from_paltaeria_ore_blasting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:paltaeria_ore" + }, + "result": "spectrum:paltaeria_fragments", + "experience": 0.2, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/ore/scarlet_fragment_from_scarlet_ore_blasting.json b/src/main/resources/data/spectrum/recipes/blasting/ore/scarlet_fragment_from_scarlet_ore_blasting.json deleted file mode 100644 index 8c524c75b7..0000000000 --- a/src/main/resources/data/spectrum/recipes/blasting/ore/scarlet_fragment_from_scarlet_ore_blasting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:blasting", - "ingredient": { - "item": "spectrum:scarlet_ore" - }, - "result": "spectrum:scarlet_fragments", - "experience": 0.2, - "cookingtime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/ore/shimmerstone_gem_from_shimmerstone_ores_blasting.json b/src/main/resources/data/spectrum/recipes/blasting/ore/shimmerstone_gem_from_shimmerstone_ores_blasting.json new file mode 100644 index 0000000000..0045892c0e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/ore/shimmerstone_gem_from_shimmerstone_ores_blasting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "tag": "spectrum:shimmerstone_ores" + }, + "result": "spectrum:shimmerstone_gem", + "experience": 0.1, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/ore/sparklestone_gem_from_sparklestone_ores_blasting.json b/src/main/resources/data/spectrum/recipes/blasting/ore/sparklestone_gem_from_sparklestone_ores_blasting.json deleted file mode 100644 index b8fdd6fb9e..0000000000 --- a/src/main/resources/data/spectrum/recipes/blasting/ore/sparklestone_gem_from_sparklestone_ores_blasting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:blasting", - "ingredient": { - "tag": "spectrum:sparklestone_ores" - }, - "result": "spectrum:sparklestone_gem", - "experience": 0.1, - "cookingtime": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/ore/stratine_fragment_from_stratine_ore_blasting.json b/src/main/resources/data/spectrum/recipes/blasting/ore/stratine_fragment_from_stratine_ore_blasting.json new file mode 100644 index 0000000000..d6b9fe1251 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/blasting/ore/stratine_fragment_from_stratine_ore_blasting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:blasting", + "ingredient": { + "item": "spectrum:stratine_ore" + }, + "result": "spectrum:stratine_fragments", + "experience": 0.2, + "cookingtime": 100 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/blasting/pure_resources/pure_netherite.json b/src/main/resources/data/spectrum/recipes/blasting/pure_resources/pure_netherite.json index bede24212a..3a80fe206a 100644 --- a/src/main/resources/data/spectrum/recipes/blasting/pure_resources/pure_netherite.json +++ b/src/main/resources/data/spectrum/recipes/blasting/pure_resources/pure_netherite.json @@ -3,7 +3,7 @@ "ingredient": { "item": "spectrum:pure_netherite" }, - "result": "minecraft:netherite_scrap", + "result": "minecraft:netherite_ingot", "experience": 0.5, "cookingtime": 100 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_coal.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_coal.json index 9b2da7a160..9c88d15a37 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_coal.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_coal.json @@ -10,5 +10,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_copper.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_copper.json index 95aa5e2587..b82a58c1f7 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_copper.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_copper.json @@ -10,5 +10,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_diamond.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_diamond.json index 8c4e56fc42..21e74f7372 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_diamond.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_diamond.json @@ -10,5 +10,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_emerald.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_emerald.json index a912701fb0..7fdf602121 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_emerald.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_emerald.json @@ -10,5 +10,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_glowstone.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_glowstone.json index 47e89dae5b..5376496792 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_glowstone.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_glowstone.json @@ -15,5 +15,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_gold.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_gold.json index 744034e446..21d26aef95 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_gold.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_gold.json @@ -10,5 +10,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_iron.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_iron.json index ad0a7a6c8a..fbcc51f118 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_iron.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_iron.json @@ -10,5 +10,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_lapis.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_lapis.json index 28657d179d..25e0a87470 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_lapis.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_lapis.json @@ -15,5 +15,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_netherite.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_netherite.json index cf11e6e206..bcc49a20a6 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_netherite.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_netherite.json @@ -5,15 +5,16 @@ }, "results": [ { - "item": "minecraft:netherite_scrap", + "item": "minecraft:netherite_ingot", "count": 2 }, { - "item": "minecraft:netherite_scrap", + "item": "minecraft:netherite_ingot", "count": 1, "chance": 0.25 } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_prismarine.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_prismarine.json index 758810a7f4..a21f8da6a2 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_prismarine.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_prismarine.json @@ -15,5 +15,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_quartz.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_quartz.json index caa764c76c..20865cdc9c 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_quartz.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_quartz.json @@ -15,5 +15,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_redstone.json b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_redstone.json index 3547a0f698..61e2d74131 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_redstone.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/pure_resources/pure_redstone.json @@ -15,5 +15,6 @@ } ], "experience": 0.5, - "time": 200 + "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/coal.json b/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/coal.json index d7130169db..69d4cc0aa8 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/coal.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/coal.json @@ -1,12 +1,12 @@ { "type": "spectrum:cinderhearth", "ingredient": { - "item": "minecraft:coal_ore" + "tag": "minecraft:coal_ores" }, "results": [ { "item": "minecraft:coal", - "count": 2 + "count": 4 }, { "item": "minecraft:diamond", diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/copper.json b/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/copper.json deleted file mode 100644 index d7130169db..0000000000 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/copper.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "spectrum:cinderhearth", - "ingredient": { - "item": "minecraft:coal_ore" - }, - "results": [ - { - "item": "minecraft:coal", - "count": 2 - }, - { - "item": "minecraft:diamond", - "chance": 0.02 - } - ], - "experience": 0.2, - "time": 100 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/redstone.json b/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/redstone.json index 16c08b7b69..7306e2d976 100644 --- a/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/redstone.json +++ b/src/main/resources/data/spectrum/recipes/cinderhearth/vanilla_ores/redstone.json @@ -1,12 +1,12 @@ { "type": "spectrum:cinderhearth", "ingredient": { - "item": "minecraft:redstone_ore" + "tag": "minecraft:redstone_ores" }, "results": [ { "item": "minecraft:redstone", - "count": 2 + "count": 4 }, { "item": "minecraft:glowstone_dust", diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_brick_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_brick_slab.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_brick_slab.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_brick_slab.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_brick_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_brick_stairs.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_brick_stairs.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_brick_stairs.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_brick_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_brick_wall.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_brick_wall.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_brick_wall.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_bricks.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_bricks.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_bricks.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_bricks.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_slab.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_slab.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_slab.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_stairs.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_stairs.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_stairs.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_slab.json new file mode 100644 index 0000000000..96bccc1c55 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:basalt_tiles" + } + }, + "result": { + "item": "spectrum:basalt_tile_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_stairs.json new file mode 100644 index 0000000000..3749ed5b37 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:basalt_tiles" + } + }, + "result": { + "item": "spectrum:basalt_tile_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_wall.json new file mode 100644 index 0000000000..14acc17b0a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tile_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:basalt_tiles" + } + }, + "result": { + "item": "spectrum:basalt_tile_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tiles.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tiles.json new file mode 100644 index 0000000000..46b2b93485 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_tiles.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:basalt_bricks" + } + }, + "result": { + "item": "spectrum:basalt_tiles", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_wall.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/basalt_wall.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/basalt_wall.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/chiseled_polished_basalt.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/chiseled_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/chiseled_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/chiseled_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/notched_polished_basalt.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/notched_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/notched_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/notched_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_button.json new file mode 100644 index 0000000000..09b3405d4a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_button.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "spectrum:polished_basalt" + } + ], + "result": { + "item": "spectrum:polished_basalt_button" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_crest.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_crest.json similarity index 84% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_crest.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_crest.json index dbccb8633e..6c3fe57365 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_crest.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_crest.json @@ -1,7 +1,8 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "##" + " # ", + "# #" ], "key": { "#": { @@ -10,6 +11,6 @@ }, "result": { "item": "spectrum:polished_basalt_crest", - "count": 2 + "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_pillar.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_pillar.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_pillar.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_pillar.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_pressure_plate.json new file mode 100644 index 0000000000..3189df09bc --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:polished_basalt" + } + }, + "result": { + "item": "spectrum:polished_basalt_pressure_plate" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_slab.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_slab.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_slab.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_stairs.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_stairs.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_stairs.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_wall.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_basalt_wall.json rename to src/main/resources/data/spectrum/recipes/crafting_table/basalt/polished_basalt_wall.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_slab.json new file mode 100644 index 0000000000..4ddad26a9b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_bricks" + } + }, + "result": { + "item": "spectrum:blackslag_brick_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_stairs.json new file mode 100644 index 0000000000..a3b2869858 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_bricks" + } + }, + "result": { + "item": "spectrum:blackslag_brick_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_wall.json new file mode 100644 index 0000000000..5022fedea7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_brick_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_bricks" + } + }, + "result": { + "item": "spectrum:blackslag_brick_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_bricks.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_bricks.json new file mode 100644 index 0000000000..f862adeb50 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:blackslag_bricks", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_slab.json new file mode 100644 index 0000000000..f7e5332424 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_tiles" + } + }, + "result": { + "item": "spectrum:blackslag_tile_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_stairs.json new file mode 100644 index 0000000000..1cc0cbd1ea --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_tiles" + } + }, + "result": { + "item": "spectrum:blackslag_tile_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_wall.json new file mode 100644 index 0000000000..f6567ec647 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tile_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_tiles" + } + }, + "result": { + "item": "spectrum:blackslag_tile_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tiles.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tiles.json new file mode 100644 index 0000000000..1202ebc05e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/blackslag_tiles.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:blackslag_bricks" + } + }, + "result": { + "item": "spectrum:blackslag_tiles", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/chiseled_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/chiseled_polished_blackslag.json new file mode 100644 index 0000000000..6a192c8211 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/chiseled_polished_blackslag.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " # ", + "###", + " # " + ], + "key": { + "#": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:chiseled_polished_blackslag", + "count": 5 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_slab.json new file mode 100644 index 0000000000..3f0e3a4ac9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:cobbled_blackslag" + } + }, + "result": { + "item": "spectrum:cobbled_blackslag_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_stairs.json new file mode 100644 index 0000000000..915850d590 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:cobbled_blackslag" + } + }, + "result": { + "item": "spectrum:cobbled_blackslag_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_wall.json new file mode 100644 index 0000000000..ee89df327d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/cobbled_blackslag_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:cobbled_blackslag" + } + }, + "result": { + "item": "spectrum:cobbled_blackslag_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_button.json new file mode 100644 index 0000000000..b89b7a71bb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_button.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "spectrum:polished_blackslag" + } + ], + "result": { + "item": "spectrum:polished_blackslag_button" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_pillar.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_pillar.json new file mode 100644 index 0000000000..43f9c2700e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_pillar.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "#", + "#" + ], + "key": { + "#": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:polished_blackslag_pillar", + "count": 2 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_pressure_plate.json new file mode 100644 index 0000000000..ea04eda9f1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:polished_blackslag_pressure_plate" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_slab.json new file mode 100644 index 0000000000..e7ade70c19 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:polished_blackslag_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_stairs.json new file mode 100644 index 0000000000..67fba0c556 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:polished_blackslag_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_wall.json new file mode 100644 index 0000000000..c255a42a4c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/blackslag/polished_blackslag_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:polished_blackslag_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_brick_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_brick_slab.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_brick_slab.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_brick_slab.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_brick_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_brick_stairs.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_brick_stairs.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_brick_stairs.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_brick_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_brick_wall.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_brick_wall.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_brick_wall.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_bricks.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_bricks.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_bricks.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_bricks.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_slab.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_slab.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_slab.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_stairs.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_stairs.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_stairs.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_slab.json new file mode 100644 index 0000000000..003fc307ca --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:calcite_tiles" + } + }, + "result": { + "item": "spectrum:calcite_tile_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_stairs.json new file mode 100644 index 0000000000..0368ddc1fd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:calcite_tiles" + } + }, + "result": { + "item": "spectrum:calcite_tile_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_wall.json new file mode 100644 index 0000000000..1cacba448c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tile_wall.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:calcite_tiles" + } + }, + "result": { + "item": "spectrum:calcite_tile_wall", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tiles.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tiles.json new file mode 100644 index 0000000000..3f6bc457d8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_tiles.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:calcite_bricks" + } + }, + "result": { + "item": "spectrum:calcite_tiles", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_wall.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/calcite_wall.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/calcite_wall.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/chiseled_polished_calcite.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/chiseled_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/chiseled_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/chiseled_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/notched_polished_calcite.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/notched_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/notched_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/notched_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_button.json new file mode 100644 index 0000000000..15bacf6343 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_button.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "spectrum:polished_calcite" + } + ], + "result": { + "item": "spectrum:polished_calcite_button" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_crest.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_crest.json similarity index 84% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_crest.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_crest.json index 1ca6c1e550..79b5622461 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_crest.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_crest.json @@ -1,7 +1,8 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "##" + " # ", + "# #" ], "key": { "#": { @@ -10,6 +11,6 @@ }, "result": { "item": "spectrum:polished_calcite_crest", - "count": 2 + "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_pillar.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_pillar.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_pillar.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_pillar.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_pressure_plate.json new file mode 100644 index 0000000000..9fd1408a34 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_pressure_plate.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:polished_calcite" + } + }, + "result": { + "item": "spectrum:polished_calcite_pressure_plate" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_slab.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_slab.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_slab.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_stairs.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_stairs.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_stairs.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_wall.json b/src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_wall.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/crafting_table/stone_deco/polished_calcite_wall.json rename to src/main/resources/data/spectrum/recipes/crafting_table/calcite/polished_calcite_wall.json diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_button.json index 74c42c4ddb..c1c468af74 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:black_plank_button" + "item": "spectrum:black_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence.json index 1c23554972..9ab2261ee5 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:black_plank_fence", + "item": "spectrum:black_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence_gate.json index 05dddb4842..913ed72cdb 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:black_plank_fence_gate" + "item": "spectrum:black_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_pressure_plate.json index b03efb993f..affdde9d26 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:black_plank_pressure_plate" + "item": "spectrum:black_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_slab.json index 0a31fb61b8..7372a081f6 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:black_plank_slab", + "item": "spectrum:black_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_stairs.json index aa68921472..3fe92dbb4e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/black_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:black_plank_stairs", + "item": "spectrum:black_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_button.json index c018c619a6..45ba25eee3 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:blue_plank_button" + "item": "spectrum:blue_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence.json index 3f5992a52a..19902427c1 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:blue_plank_fence", + "item": "spectrum:blue_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence_gate.json index 21b90c5ac1..07cf295e86 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:blue_plank_fence_gate" + "item": "spectrum:blue_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_pressure_plate.json index 0405f9ce5c..6ec89474ff 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:blue_plank_pressure_plate" + "item": "spectrum:blue_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_slab.json index fb69b165ab..8bedb6de70 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:blue_plank_slab", + "item": "spectrum:blue_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_stairs.json index cdf2c2cfe1..2ac96aadf1 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/blue_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:blue_plank_stairs", + "item": "spectrum:blue_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_button.json index 171fb0f5ba..4446476eaf 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:brown_plank_button" + "item": "spectrum:brown_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence.json index 9aed6e63aa..cb74515381 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:brown_plank_fence", + "item": "spectrum:brown_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence_gate.json index 0566187cd7..8d212a44e4 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:brown_plank_fence_gate" + "item": "spectrum:brown_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_pressure_plate.json index 8a9d679d8f..f6618b99c5 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:brown_plank_pressure_plate" + "item": "spectrum:brown_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_slab.json index b5a829cef3..83bf59848a 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:brown_plank_slab", + "item": "spectrum:brown_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_stairs.json index e1b14d6bb9..30386bb1af 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/brown_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:brown_plank_stairs", + "item": "spectrum:brown_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_button.json index f59b552fe9..eb81667194 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:cyan_plank_button" + "item": "spectrum:cyan_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence.json index eb470ab09a..aeb6357698 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:cyan_plank_fence", + "item": "spectrum:cyan_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence_gate.json index 358e5cc4ed..8d2aac4c4d 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:cyan_plank_fence_gate" + "item": "spectrum:cyan_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_pressure_plate.json index a827997673..3046e29a49 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:cyan_plank_pressure_plate" + "item": "spectrum:cyan_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_slab.json index 1c12793b47..911d5067fb 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:cyan_plank_slab", + "item": "spectrum:cyan_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_stairs.json index 5af52bdfd4..7117716f72 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/cyan_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:cyan_plank_stairs", + "item": "spectrum:cyan_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_button.json index e29834bbca..35f4b6ded0 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:gray_plank_button" + "item": "spectrum:gray_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence.json index b5b24a25d4..8d62e6209e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:gray_plank_fence", + "item": "spectrum:gray_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence_gate.json index 8b63745f8b..3ba4bc7242 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:gray_plank_fence_gate" + "item": "spectrum:gray_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_pressure_plate.json index a8df3bb74a..ed811984a0 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:gray_plank_pressure_plate" + "item": "spectrum:gray_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_slab.json index 101f9e01d0..216d06a2c9 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:gray_plank_slab", + "item": "spectrum:gray_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_stairs.json index 3535571b89..9773f448bd 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/gray_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:gray_plank_stairs", + "item": "spectrum:gray_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_button.json index d594e34773..d63cb03b19 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:green_plank_button" + "item": "spectrum:green_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence.json index 206080fb7b..6dd3aebdfb 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:green_plank_fence", + "item": "spectrum:green_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence_gate.json index 05e47e1001..b090a33081 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:green_plank_fence_gate" + "item": "spectrum:green_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_pressure_plate.json index 727b1c136a..7d308e3213 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:green_plank_pressure_plate" + "item": "spectrum:green_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_slab.json index 4fb21e68cb..890d6935fc 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:green_plank_slab", + "item": "spectrum:green_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_stairs.json index 4acd88434c..d8a779343e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/green_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:green_plank_stairs", + "item": "spectrum:green_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_button.json index a5e725dc6d..c59042e652 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:light_blue_plank_button" + "item": "spectrum:light_blue_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence.json index b4ac4191ea..1206381e7e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:light_blue_plank_fence", + "item": "spectrum:light_blue_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence_gate.json index c5adccea58..e2a1981b02 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:light_blue_plank_fence_gate" + "item": "spectrum:light_blue_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_pressure_plate.json index 44dd367789..de1b4d51ba 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:light_blue_plank_pressure_plate" + "item": "spectrum:light_blue_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_slab.json index 1368bb2d65..0333a98072 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:light_blue_plank_slab", + "item": "spectrum:light_blue_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_stairs.json index d5992af761..d51aeac95c 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_blue_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:light_blue_plank_stairs", + "item": "spectrum:light_blue_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_button.json index 3063d603c1..7833b81987 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:light_gray_plank_button" + "item": "spectrum:light_gray_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence.json index 12f3fe8af1..8559260663 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:light_gray_plank_fence", + "item": "spectrum:light_gray_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence_gate.json index 1bec7c9cc7..b3e100ccdd 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:light_gray_plank_fence_gate" + "item": "spectrum:light_gray_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_pressure_plate.json index 75794b12e0..0aacfc221b 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:light_gray_plank_pressure_plate" + "item": "spectrum:light_gray_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_slab.json index 74014209aa..8277eca2a0 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:light_gray_plank_slab", + "item": "spectrum:light_gray_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_stairs.json index bc52316235..3ae795e719 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/light_gray_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:light_gray_plank_stairs", + "item": "spectrum:light_gray_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_button.json index 6d85c7d915..a783d1a788 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:lime_plank_button" + "item": "spectrum:lime_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence.json index 1ef98ade02..ac8785ff23 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:lime_plank_fence", + "item": "spectrum:lime_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence_gate.json index c4339043d9..351cf9693e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:lime_plank_fence_gate" + "item": "spectrum:lime_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_pressure_plate.json index 5525a6d59e..912317edde 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:lime_plank_pressure_plate" + "item": "spectrum:lime_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_slab.json index 9ef18ff1a0..e7e68e1379 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:lime_plank_slab", + "item": "spectrum:lime_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_stairs.json index 3914801a58..cfc0baa918 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/lime_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:lime_plank_stairs", + "item": "spectrum:lime_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_button.json index f302dd90e2..545fb0ac23 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:magenta_plank_button" + "item": "spectrum:magenta_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence.json index 2a33ffc1e4..b5d78b1e74 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:magenta_plank_fence", + "item": "spectrum:magenta_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence_gate.json index a30919cc5d..8beab6035f 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:magenta_plank_fence_gate" + "item": "spectrum:magenta_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_pressure_plate.json index 029de7cc76..8b1e6cc31d 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:magenta_plank_pressure_plate" + "item": "spectrum:magenta_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_slab.json index 4055640363..42e0c16b22 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:magenta_plank_slab", + "item": "spectrum:magenta_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_stairs.json index 3a4c162b43..d525819374 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/magenta_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:magenta_plank_stairs", + "item": "spectrum:magenta_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_button.json index a6679d2176..7448749533 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:orange_plank_button" + "item": "spectrum:orange_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence.json index ab45a6ebd6..ee760d75a4 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:orange_plank_fence", + "item": "spectrum:orange_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence_gate.json index a41558d48b..a1d612edf3 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:orange_plank_fence_gate" + "item": "spectrum:orange_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_pressure_plate.json index 9eb9680b96..ab99a3173c 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:orange_plank_pressure_plate" + "item": "spectrum:orange_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_slab.json index b1609cd5fe..30274582b8 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:orange_plank_slab", + "item": "spectrum:orange_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_stairs.json index 3726ab53b4..c6812860ac 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/orange_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:orange_plank_stairs", + "item": "spectrum:orange_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_button.json index ef49c3cf49..1b77634d49 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:pink_plank_button" + "item": "spectrum:pink_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence.json index 84b6a4edae..0217a320a3 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:pink_plank_fence", + "item": "spectrum:pink_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence_gate.json index fa65ab3cd5..104e9bdb36 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:pink_plank_fence_gate" + "item": "spectrum:pink_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_pressure_plate.json index 7b57eae0e5..ae98224754 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:pink_plank_pressure_plate" + "item": "spectrum:pink_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_slab.json index e6cabcea46..efdaf8b106 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:pink_plank_slab", + "item": "spectrum:pink_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_stairs.json index f64e8ea792..1f9bc66de2 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/pink_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:pink_plank_stairs", + "item": "spectrum:pink_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_button.json index ef6a0ed54f..6dfc2df4dc 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:purple_plank_button" + "item": "spectrum:purple_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence.json index 6279a772be..4851de4952 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:purple_plank_fence", + "item": "spectrum:purple_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence_gate.json index bff3d4d1a7..e8d4c5de8b 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:purple_plank_fence_gate" + "item": "spectrum:purple_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_pressure_plate.json index e5b29f24ce..49adeeb1b5 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:purple_plank_pressure_plate" + "item": "spectrum:purple_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_slab.json index 0a71e65041..0b42140d8f 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:purple_plank_slab", + "item": "spectrum:purple_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_stairs.json index 66a85a5115..2e3faf198b 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/purple_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:purple_plank_stairs", + "item": "spectrum:purple_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_button.json index deca27d8bb..2b86e8ba51 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:red_plank_button" + "item": "spectrum:red_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence.json index d883b3e242..056440ce5d 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:red_plank_fence", + "item": "spectrum:red_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence_gate.json index 780aa960e2..f2bb0dfcdc 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:red_plank_fence_gate" + "item": "spectrum:red_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_pressure_plate.json index 30ee302cfa..68301c8531 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:red_plank_pressure_plate" + "item": "spectrum:red_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_slab.json index 4783fd060e..de67ffce1e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:red_plank_slab", + "item": "spectrum:red_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_stairs.json index f3211440c3..09ab9cb3c9 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/red_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:red_plank_stairs", + "item": "spectrum:red_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_button.json index aae23e1294..65b75398d1 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:white_plank_button" + "item": "spectrum:white_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence.json index 9eaafafe21..5130ace15a 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:white_plank_fence", + "item": "spectrum:white_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence_gate.json index ff43f64e69..ab4e58d88a 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:white_plank_fence_gate" + "item": "spectrum:white_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_pressure_plate.json index d43110e15c..e45e020b2e 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:white_plank_pressure_plate" + "item": "spectrum:white_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_slab.json index c5a21aa65a..9699b11bc3 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:white_plank_slab", + "item": "spectrum:white_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_stairs.json index 96cce9eafd..e104abc70a 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/white_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:white_plank_stairs", + "item": "spectrum:white_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_button.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_button.json index 6e64a0f44d..bc2551eb4a 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_button.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_button.json @@ -7,6 +7,6 @@ } ], "result": { - "item": "spectrum:yellow_plank_button" + "item": "spectrum:yellow_button" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence.json index 8b5d72b230..723fe63ccd 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence.json @@ -14,7 +14,7 @@ } }, "result": { - "item": "spectrum:yellow_plank_fence", + "item": "spectrum:yellow_fence", "count": 3 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence_gate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence_gate.json index ce01dc2e7e..4986640ae4 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence_gate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_fence_gate.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "spectrum:yellow_plank_fence_gate" + "item": "spectrum:yellow_fence_gate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_pressure_plate.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_pressure_plate.json index a9ee591250..24a081a836 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_pressure_plate.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_pressure_plate.json @@ -10,6 +10,6 @@ } }, "result": { - "item": "spectrum:yellow_plank_pressure_plate" + "item": "spectrum:yellow_pressure_plate" } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_slab.json index bb56aecc12..18491b15a2 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_slab.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_slab.json @@ -10,7 +10,7 @@ } }, "result": { - "item": "spectrum:yellow_plank_slab", + "item": "spectrum:yellow_slab", "count": 6 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_stairs.json index 2a000fc189..638f984019 100644 --- a/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_stairs.json +++ b/src/main/resources/data/spectrum/recipes/crafting_table/colored_wood/yellow_plank_stairs.json @@ -12,7 +12,7 @@ } }, "result": { - "item": "spectrum:yellow_plank_stairs", + "item": "spectrum:yellow_stairs", "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/guidebook.json b/src/main/resources/data/spectrum/recipes/crafting_table/guidebook.json new file mode 100644 index 0000000000..1cb437fbf7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/guidebook.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " S ", + "SBS", + " S " + ], + "key": { + "S": { + "tag": "spectrum:gemstone_shards" + }, + "B": { + "item": "minecraft:book" + } + }, + "result": { + "item": "spectrum:guidebook", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/manual.json b/src/main/resources/data/spectrum/recipes/crafting_table/manual.json deleted file mode 100644 index 6328b3e640..0000000000 --- a/src/main/resources/data/spectrum/recipes/crafting_table/manual.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " S ", - "SBS", - " S " - ], - "key": { - "S": { - "tag": "spectrum:gemstone_shards" - }, - "B": { - "item": "minecraft:book" - } - }, - "result": { - "item": "spectrum:manual", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_polished_shale_clay_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_polished_shale_clay_slab.json new file mode 100644 index 0000000000..797a2e8eb8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_polished_shale_clay_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:exposed_polished_shale_clay" + } + }, + "result": { + "item": "spectrum:exposed_polished_shale_clay_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..f3f9d89ae1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_polished_shale_clay_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:exposed_polished_shale_clay" + } + }, + "result": { + "item": "spectrum:exposed_polished_shale_clay_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_brick_slab.json new file mode 100644 index 0000000000..9c3b46cafe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_brick_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:exposed_shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:exposed_shale_clay_brick_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..d3d77b7185 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_brick_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:exposed_shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:exposed_shale_clay_brick_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_bricks.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_bricks.json new file mode 100644 index 0000000000..1cf6b998df --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:exposed_polished_shale_clay" + } + }, + "result": { + "item": "spectrum:exposed_shale_clay_bricks", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tile_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tile_slab.json new file mode 100644 index 0000000000..5195efbcb6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tile_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:exposed_shale_clay_tiles" + } + }, + "result": { + "item": "spectrum:exposed_shale_clay_tile_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..de354ce0d6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tile_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:exposed_shale_clay_tiles" + } + }, + "result": { + "item": "spectrum:exposed_shale_clay_tile_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tiles.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tiles.json new file mode 100644 index 0000000000..3a9d0ddb67 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/exposed_shale_clay_tiles.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:exposed_shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:exposed_shale_clay_tiles", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/polished_shale_clay_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/polished_shale_clay_slab.json new file mode 100644 index 0000000000..59d43d6759 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/polished_shale_clay_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_shale_clay" + } + }, + "result": { + "item": "spectrum:polished_shale_clay_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/polished_shale_clay_stairs.json new file mode 100644 index 0000000000..b68291b09a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/polished_shale_clay_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_shale_clay" + } + }, + "result": { + "item": "spectrum:polished_shale_clay_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_brick_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_brick_slab.json new file mode 100644 index 0000000000..17cb74e6c9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_brick_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:shale_clay_brick_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_brick_stairs.json new file mode 100644 index 0000000000..30164af2af --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_brick_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:shale_clay_brick_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_bricks.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_bricks.json new file mode 100644 index 0000000000..907fd1c77c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:polished_shale_clay" + } + }, + "result": { + "item": "spectrum:shale_clay_bricks", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tile_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tile_slab.json new file mode 100644 index 0000000000..469c8c452b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tile_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:shale_clay_tiles" + } + }, + "result": { + "item": "spectrum:shale_clay_tile_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tile_stairs.json new file mode 100644 index 0000000000..214c65a2ed --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tile_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:shale_clay_tiles" + } + }, + "result": { + "item": "spectrum:shale_clay_tile_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tiles.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tiles.json new file mode 100644 index 0000000000..967fd7e352 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/shale_clay_tiles.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:shale_clay_tiles", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_polished_shale_clay_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_polished_shale_clay_slab.json new file mode 100644 index 0000000000..9c31aed133 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_polished_shale_clay_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:weathered_polished_shale_clay" + } + }, + "result": { + "item": "spectrum:weathered_polished_shale_clay_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..f067978335 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_polished_shale_clay_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:weathered_polished_shale_clay" + } + }, + "result": { + "item": "spectrum:weathered_polished_shale_clay_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_brick_slab.json new file mode 100644 index 0000000000..79512af6d2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_brick_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:weathered_shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:weathered_shale_clay_brick_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..772702537e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_brick_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:weathered_shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:weathered_shale_clay_brick_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_bricks.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_bricks.json new file mode 100644 index 0000000000..42ce246870 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_bricks.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:weathered_polished_shale_clay" + } + }, + "result": { + "item": "spectrum:weathered_shale_clay_bricks", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tile_slab.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tile_slab.json new file mode 100644 index 0000000000..2b49e58b52 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tile_slab.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WWW" + ], + "key": { + "W": { + "item": "spectrum:weathered_shale_clay_tiles" + } + }, + "result": { + "item": "spectrum:weathered_shale_clay_tile_slab", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..a9b0e88119 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tile_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "W ", + "WW ", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:weathered_shale_clay_tiles" + } + }, + "result": { + "item": "spectrum:weathered_shale_clay_tile_stairs", + "count": 6 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tiles.json b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tiles.json new file mode 100644 index 0000000000..44d10f0741 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/shale_clay/weathered_shale_clay_tiles.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "WW", + "WW" + ], + "key": { + "W": { + "item": "spectrum:weathered_shale_clay_bricks" + } + }, + "result": { + "item": "spectrum:weathered_shale_clay_tiles", + "count": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/shimmerstone_block.json b/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/shimmerstone_block.json new file mode 100644 index 0000000000..dff12274ae --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/shimmerstone_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "SSS", + "SSS" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:shimmerstone_block", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/shimmerstone_gems_from_shimmerstone_block.json b/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/shimmerstone_gems_from_shimmerstone_block.json new file mode 100644 index 0000000000..3fa9647fd8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/shimmerstone_gems_from_shimmerstone_block.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "gem_storage", + "ingredients": [ + { + "item": "spectrum:shimmerstone_block" + } + ], + "result": { + "item": "spectrum:shimmerstone_gem", + "count": 9 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/sparklestone_block.json b/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/sparklestone_block.json deleted file mode 100644 index 76e1ec4fec..0000000000 --- a/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/sparklestone_block.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "SSS", - "SSS", - "SSS" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - } - }, - "result": { - "item": "spectrum:sparklestone_block", - "count": 1 - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/sparklestone_gems_from_sparklestone_block.json b/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/sparklestone_gems_from_sparklestone_block.json deleted file mode 100644 index df92e7f322..0000000000 --- a/src/main/resources/data/spectrum/recipes/crafting_table/storage_blocks/sparklestone_gems_from_sparklestone_block.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "group": "gem_storage", - "ingredients": [ - { - "item": "spectrum:sparklestone_block" - } - ], - "result": { - "item": "spectrum:sparklestone_gem", - "count": 9 - } -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/bismuth.json b/src/main/resources/data/spectrum/recipes/crystallarieum/bismuth.json index b63c2458f9..7bbdded4d6 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/bismuth.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/bismuth.json @@ -31,11 +31,14 @@ }, { "ingredient": { - "item": "spectrum:shooting_star" + "item": "spectrum:star_fragment" }, "growth_acceleration_mod": 1.25, "ink_consumption_mod": 1.0, "consume_chance_per_second": 0.0 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:bismuth_crystal" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/malachite.json b/src/main/resources/data/spectrum/recipes/crystallarieum/malachite.json index a67e49c576..db025e76ae 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/malachite.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/malachite.json @@ -22,5 +22,8 @@ "consume_chance_per_second": 0.04 } ], + "additional_recipe_manager_outputs": [ + "spectrum:malachite_crystal" + ], "required_advancement": "spectrum:lategame/collect_malachite" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/coal.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/coal.json index b3b67761a2..f08e2960c0 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/coal.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/coal.json @@ -29,5 +29,8 @@ "ink_consumption_mod": 2.0, "consume_chance_per_second": 0.05 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_coal" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/copper.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/copper.json index 40d8999ad6..2e34687e98 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/copper.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/copper.json @@ -21,5 +21,8 @@ "ink_consumption_mod": 0.25, "consume_chance_per_second": 0.02 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_copper" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/diamond.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/diamond.json index 2865cdb308..e5bf4833c1 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/diamond.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/diamond.json @@ -37,5 +37,8 @@ "ink_consumption_mod": 0.25, "consume_chance_per_second": 1.0 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_diamond" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/emerald.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/emerald.json index deb6081045..c5c1f4e2e9 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/emerald.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/emerald.json @@ -37,5 +37,8 @@ "ink_consumption_mod": 4.0, "consume_chance_per_second": 0.2 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_emerald" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/glowstone.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/glowstone.json index bd3f2575e8..2dc84ecbf1 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/glowstone.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/glowstone.json @@ -15,7 +15,7 @@ "catalysts": [ { "ingredient": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "growth_acceleration_mod": 16.0, "ink_consumption_mod": 1.0, @@ -29,7 +29,7 @@ "ink_consumption_mod": 0.25, "consume_chance_per_second": 0.02 }, - { + { "ingredient": { "item": "spectrum:moonstone_shard" }, @@ -37,5 +37,8 @@ "ink_consumption_mod": 0.01, "consume_chance_per_second": 0.05 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_glowstone" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/gold.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/gold.json index 855a68ad67..6139c784d5 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/gold.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/gold.json @@ -29,5 +29,8 @@ "ink_consumption_mod": 0.25, "consume_chance_per_second": 0.02 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_gold" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/iron.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/iron.json index e04fa2658f..2e8eeee229 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/iron.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/iron.json @@ -37,5 +37,8 @@ "ink_consumption_mod": 0.25, "consume_chance_per_second": 0.02 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_iron" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/lapis.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/lapis.json index 1c1114be34..0099b72102 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/lapis.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/lapis.json @@ -29,5 +29,8 @@ "ink_consumption_mod": 0.1, "consume_chance_per_second": 0.004 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_lapis" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/netherite.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/netherite.json index 1ed715493f..2ff7850398 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/netherite.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/netherite.json @@ -15,7 +15,7 @@ "catalysts": [ { "ingredient": { - "item": "minecraft:blaze_powder" + "item": "spectrum:fiery_powder" }, "growth_acceleration_mod": 1.5, "ink_consumption_mod": 2.0, @@ -31,7 +31,7 @@ }, { "ingredient": { - "item": "spectrum:fiery_powder" + "item": "minecraft:gold_ingot" }, "growth_acceleration_mod": 16.0, "ink_consumption_mod": 2.5, @@ -39,11 +39,14 @@ }, { "ingredient": { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, "growth_acceleration_mod": 2.0, "ink_consumption_mod": 0.125, "consume_chance_per_second": 0.02 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_netherite" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/prismarine_crystal.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/prismarine_crystal.json index acfba52feb..f0432c0a0f 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/prismarine_crystal.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/prismarine_crystal.json @@ -37,5 +37,8 @@ "ink_consumption_mod": 2.0, "consume_chance_per_second": 0.1 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_prismarine" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/quartz.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/quartz.json index d195be3a78..d0b176398e 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/quartz.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/quartz.json @@ -37,5 +37,8 @@ "ink_consumption_mod": 0.25, "consume_chance_per_second": 0.01 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_quartz" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/redstone.json b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/redstone.json index c4bed1e115..bfb433cd2e 100644 --- a/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/redstone.json +++ b/src/main/resources/data/spectrum/recipes/crystallarieum/vanilla/redstone.json @@ -15,7 +15,7 @@ "catalysts": [ { "ingredient": { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, "growth_acceleration_mod": 8.0, "ink_consumption_mod": 2.0, @@ -23,7 +23,7 @@ }, { "ingredient": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "growth_acceleration_mod": 1.0, "ink_consumption_mod": 0.25, @@ -37,5 +37,8 @@ "ink_consumption_mod": 0.5, "consume_chance_per_second": 0.005 } + ], + "additional_recipe_manager_outputs": [ + "spectrum:pure_redstone" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/dragonrot_converting/blackslag_from_stone.json b/src/main/resources/data/spectrum/recipes/dragonrot_converting/blackslag_from_stone.json new file mode 100644 index 0000000000..e7e748b3f6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/dragonrot_converting/blackslag_from_stone.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:dragonrot_converting", + "ingredient": { + "tag": "minecraft:base_stone_overworld" + }, + "result": { + "item": "spectrum:blackslag", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/enchanter/enchanted_golden_apple.json b/src/main/resources/data/spectrum/recipes/enchanter/enchanted_golden_apple.json new file mode 100644 index 0000000000..beee4b69d7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/enchanter/enchanted_golden_apple.json @@ -0,0 +1,37 @@ +{ + "type": "spectrum:enchanter", + "time": 600, + "required_experience": 50, + "ingredients": [ + { + "item": "minecraft:golden_apple" + }, + { + "item": "spectrum:shimmerstone_block" + }, + { + "item": "spectrum:shimmerstone_block" + }, + { + "item": "minecraft:gold_block" + }, + { + "item": "minecraft:gold_block" + }, + { + "item": "spectrum:shimmerstone_block" + }, + { + "item": "spectrum:shimmerstone_block" + }, + { + "item": "minecraft:gold_block" + }, + { + "item": "minecraft:gold_block" + } + ], + "result": { + "item": "minecraft:enchanted_golden_apple" + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_autosmelt.json b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_autosmelt.json index 70058df779..3704cd5e83 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_autosmelt.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_autosmelt.json @@ -16,7 +16,7 @@ "item": "minecraft:lava_bucket" }, { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" }, { "item": "spectrum:orange_pigment" @@ -28,7 +28,7 @@ "item": "minecraft:lava_bucket" }, { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_disarming.json b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_disarming.json index 04e926b272..ae0c5e42dd 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_disarming.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_disarming.json @@ -13,10 +13,10 @@ "item": "spectrum:red_pigment" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, { "item": "spectrum:red_pigment" @@ -25,10 +25,10 @@ "item": "spectrum:red_pigment" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_pest_control.json b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_pest_control.json index 8eb3bbc1d9..a3d52784e9 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_pest_control.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_pest_control.json @@ -16,7 +16,7 @@ "item": "minecraft:soul_sand" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:light_gray_pigment" @@ -28,7 +28,7 @@ "item": "minecraft:soul_sand" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_resonance.json b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_resonance.json index c28419f46d..0f4f90b218 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_resonance.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_resonance.json @@ -1,34 +1,34 @@ { "type": "spectrum:enchanter", - "time": 300, - "required_experience": 100, + "time": 400, + "required_experience": 800, "ingredients": [ { "item": "minecraft:book" }, { - "item": "spectrum:cyan_pigment" + "item": "spectrum:white_pigment" }, { - "item": "spectrum:cyan_pigment" + "item": "spectrum:white_pigment" }, { - "item": "spectrum:paletur_gem" + "item": "spectrum:paltaeria_gem" }, { - "item": "spectrum:mermaids_gem" + "item": "spectrum:resonance_shard" }, { - "item": "spectrum:cyan_pigment" + "item": "spectrum:white_pigment" }, { - "item": "spectrum:cyan_pigment" + "item": "spectrum:white_pigment" }, { - "item": "spectrum:paletur_gem" + "item": "spectrum:paltaeria_gem" }, { - "item": "spectrum:mermaids_gem" + "item": "spectrum:resonance_shard" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_steadfast.json b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_steadfast.json index 04028b82a4..940d21e300 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_steadfast.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_steadfast.json @@ -16,7 +16,7 @@ "item": "spectrum:moonstruck_nectar" }, { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, { "item": "spectrum:blue_pigment" @@ -28,7 +28,7 @@ "item": "spectrum:moonstruck_nectar" }, { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_treasure_hunter.json b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_treasure_hunter.json index e03a358ace..01e0ff393f 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_treasure_hunter.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/spectrum_books/book_treasure_hunter.json @@ -13,7 +13,7 @@ "item": "spectrum:light_blue_pigment" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "minecraft:flint" @@ -25,7 +25,7 @@ "item": "spectrum:light_blue_pigment" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "minecraft:flint" diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_bane_of_arthropods.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_bane_of_arthropods.json index 91eba7e58a..9eb7d8b3c1 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_bane_of_arthropods.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_bane_of_arthropods.json @@ -17,7 +17,7 @@ "item": "minecraft:string" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:black_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:string" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_binding_curse.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_binding_curse.json index c628d2a6d8..16ce8f640e 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_binding_curse.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_binding_curse.json @@ -17,7 +17,7 @@ "item": "minecraft:honeycomb" }, { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, { "item": "spectrum:gray_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:honeycomb" }, { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_channeling.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_channeling.json index d2d6fc0f70..ca293504ec 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_channeling.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_channeling.json @@ -14,7 +14,7 @@ "item": "spectrum:brown_pigment" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:mermaids_gem" @@ -26,7 +26,7 @@ "item": "spectrum:brown_pigment" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:mermaids_gem" diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_fire_aspect.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_fire_aspect.json index a732edd75e..ce47f24415 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_fire_aspect.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_fire_aspect.json @@ -17,7 +17,7 @@ "item": "minecraft:fire_charge" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:red_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:fire_charge" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_frost_walker.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_frost_walker.json index def0d3b2c8..087e515351 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_frost_walker.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_frost_walker.json @@ -17,7 +17,7 @@ "item": "minecraft:blue_ice" }, { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" }, { "item": "spectrum:light_gray_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:blue_ice" }, { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_knockback.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_knockback.json index 531d60809e..5eb7c147ae 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_knockback.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_knockback.json @@ -17,7 +17,7 @@ "item": "minecraft:gunpowder" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:black_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:gunpowder" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_mending.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_mending.json index 6cadc60adc..a73887c27d 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_mending.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_mending.json @@ -17,7 +17,7 @@ "item": "minecraft:experience_bottle" }, { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" }, { "item": "spectrum:light_gray_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:experience_bottle" }, { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sharpness.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sharpness.json index 1730ede526..6d352ec8a7 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sharpness.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sharpness.json @@ -17,7 +17,7 @@ "item": "minecraft:flint" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:black_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:flint" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_smite.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_smite.json index a97721c471..7e1587bc68 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_smite.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_smite.json @@ -17,7 +17,7 @@ "item": "minecraft:rotten_flesh" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:black_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:rotten_flesh" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_soul_speed.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_soul_speed.json index 6f25ebaa8b..e6d4d8bb69 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_soul_speed.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_soul_speed.json @@ -17,7 +17,7 @@ "item": "minecraft:soul_soil" }, { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" }, { "item": "spectrum:light_gray_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:soul_soil" }, { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sweeping.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sweeping.json index 29e010ada0..21c758ee79 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sweeping.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_sweeping.json @@ -17,7 +17,7 @@ "item": "minecraft:flint" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { "item": "spectrum:red_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:flint" }, { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_unbreaking.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_unbreaking.json index fe64c4ab2b..709b79f5ed 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_unbreaking.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_unbreaking.json @@ -14,7 +14,7 @@ "item": "spectrum:cyan_pigment" }, { - "item": "minecraft:netherite_scrap" + "item": "minecraft:iron_ingot" }, { "item": "spectrum:bedrock_dust" @@ -26,7 +26,7 @@ "item": "spectrum:cyan_pigment" }, { - "item": "minecraft:netherite_scrap" + "item": "minecraft:iron_ingot" }, { "item": "spectrum:bedrock_dust" diff --git a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_vanishing_curse.json b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_vanishing_curse.json index 52979ac8a8..e6a7317478 100644 --- a/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_vanishing_curse.json +++ b/src/main/resources/data/spectrum/recipes/enchanter/vanilla_books/book_vanishing_curse.json @@ -17,7 +17,7 @@ "item": "minecraft:coal" }, { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, { "item": "spectrum:gray_pigment" @@ -29,7 +29,7 @@ "item": "minecraft:coal" }, { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" } ], "result": { diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/clovers_favor.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/clovers_favor.json index 33c6c7fea0..9bcc68791d 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/clovers_favor.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/clovers_favor.json @@ -25,7 +25,7 @@ { "experience": 20000, "item": "spectrum:light_blue_pigment", - "item_count": 2028 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/clovers_favor", diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/exuberance.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/exuberance.json index 250d282057..9015a5f01f 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/exuberance.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/spectrum/exuberance.json @@ -40,12 +40,12 @@ { "experience": 900, "item": "spectrum:purple_pigment", - "item_count": 1024 + "item_count": 512 }, { "experience": 1000, "item": "spectrum:purple_pigment", - "item_count": 2048 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/exuberance", diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/looting.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/looting.json index 2bbd9f9d18..7ed364e11c 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/looting.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/looting.json @@ -26,7 +26,7 @@ { "experience": 20000, "item": "spectrum:light_blue_pigment", - "item_count": 2048 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/vanilla_luck" diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/lure.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/lure.json index 723625d6a7..41891cf9ee 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/lure.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/lure.json @@ -21,7 +21,7 @@ { "experience": 2000, "item": "spectrum:blue_pigment", - "item_count": 128 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/vanilla_water" diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/quick_charge.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/quick_charge.json index 1103b8f749..3a8b3d9e32 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/quick_charge.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/quick_charge.json @@ -21,7 +21,7 @@ { "experience": 5000, "item": "spectrum:red_pigment", - "item_count": 2048 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/vanilla_projectile" diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/sweeping.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/sweeping.json index a5dd650b75..d3a8deea41 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/sweeping.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/sweeping.json @@ -31,7 +31,7 @@ { "experience": 5000, "item": "spectrum:red_pigment", - "item_count": 1024 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/vanilla_damage" diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/thorns.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/thorns.json index 0c9ad7d587..447dc33bd5 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/thorns.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/thorns.json @@ -26,7 +26,7 @@ { "experience": 5000, "item": "spectrum:red_pigment", - "item_count": 1024 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/vanilla_protection" diff --git a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/unbreaking.json b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/unbreaking.json index 484da480bd..c50348b545 100644 --- a/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/unbreaking.json +++ b/src/main/resources/data/spectrum/recipes/enchantment_upgrade/vanilla/unbreaking.json @@ -21,12 +21,12 @@ { "experience": 2000, "item": "spectrum:cyan_pigment", - "item_count": 1024 + "item_count": 512 }, { "experience": 5000, "item": "spectrum:cyan_pigment", - "item_count": 2048 + "item_count": 512 } ], "required_advancement": "spectrum:progression/enchantments/vanilla_unbreaking" diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_axe.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_axe.json index a3d2b0fbba..17f06fd837 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_axe.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_axe.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_axe" @@ -20,11 +21,11 @@ "count": 3 }, { - "item": "spectrum:scarlet_gem", + "item": "spectrum:stratine_gem", "count": 1 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 3 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_boots.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_boots.json index a00255b57a..026e6a21d5 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_boots.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_boots.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_boots" @@ -20,7 +21,7 @@ "count": 4 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 2 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_bow.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_bow.json index a9f3287700..20e7db30fe 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_bow.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_bow.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:bow" @@ -20,7 +21,7 @@ "count": 4 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 2 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_chestplate.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_chestplate.json index de9275b8b0..c9b8bcbb8d 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_chestplate.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_chestplate.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_chestplate" @@ -20,7 +21,7 @@ "count": 8 }, { - "item": "spectrum:scarlet_gem", + "item": "spectrum:stratine_gem", "count": 1 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_crossbow.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_crossbow.json new file mode 100644 index 0000000000..ef87210827 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_crossbow.json @@ -0,0 +1,41 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:midnight_solution", + "copy_nbt": true, + "ingredients": [ + { + "item": "minecraft:crossbow" + }, + { + "item": "spectrum:bedrock_dust", + "count": 5 + }, + { + "item": "spectrum:black_pigment", + "count": 5 + }, + { + "item": "spectrum:onyx_powder", + "count": 5 + }, + { + "item": "spectrum:stratine_fragments", + "count": 3 + }, + { + "item": "minecraft:gold_ingot", + "count": 3 + } + ], + "result": { + "item": "spectrum:bedrock_crossbow", + "nbt": "{Enchantments: [{id: \"minecraft:quick_charge\", lvl: 4s}]}" + }, + "required_advancement": "spectrum:progression/unlock_bedrock_tools", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_fishing_rod.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_fishing_rod.json index fa9e52ab4d..e10eb8ed6b 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_fishing_rod.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_fishing_rod.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:fishing_rod" @@ -20,7 +21,7 @@ "count": 3 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 1 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_helmet.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_helmet.json index 56d60e3a79..f2a841bdad 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_helmet.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_helmet.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_helmet" @@ -20,7 +21,7 @@ "count": 5 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 2 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_hoe.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_hoe.json index 37adb5c1da..9aa9a382c6 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_hoe.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_hoe.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_hoe" @@ -20,11 +21,11 @@ "count": 2 }, { - "item": "spectrum:scarlet_gem", + "item": "spectrum:stratine_gem", "count": 1 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 2 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_leggings.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_leggings.json index 3563e1cc7d..d22dbba5f6 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_leggings.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_leggings.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_leggings" @@ -20,7 +21,7 @@ "count": 7 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 4 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_pickaxe.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_pickaxe.json index a871959d94..a97f8dcdac 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_pickaxe.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_pickaxe.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_pickaxe" @@ -20,11 +21,11 @@ "count": 3 }, { - "item": "spectrum:scarlet_gem", + "item": "spectrum:stratine_gem", "count": 1 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 3 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shears.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shears.json index 8e3cca7568..5edcf2ee52 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shears.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shears.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:shears" @@ -20,7 +21,7 @@ "count": 2 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 2 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shovel.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shovel.json index 02cdb28e26..5b6bd1752e 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shovel.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_shovel.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_shovel" @@ -20,11 +21,11 @@ "count": 1 }, { - "item": "spectrum:scarlet_gem", + "item": "spectrum:stratine_gem", "count": 1 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 1 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_sword.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_sword.json index 99747bc94d..288898ab4d 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_sword.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/bedrock/bedrock_sword.json @@ -3,6 +3,7 @@ "time": 1200, "experience": 16.0, "fluid": "spectrum:midnight_solution", + "copy_nbt": true, "ingredients": [ { "item": "minecraft:golden_sword" @@ -20,11 +21,11 @@ "count": 2 }, { - "item": "spectrum:scarlet_gem", + "item": "spectrum:stratine_gem", "count": 1 }, { - "item": "spectrum:scarlet_fragments", + "item": "spectrum:stratine_fragments", "count": 2 } ], diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/dreamflayer.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/dreamflayer.json index ac2715c35e..5c4395a9ee 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/dreamflayer.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/dreamflayer.json @@ -9,7 +9,7 @@ }, { "item": "spectrum:bismuth_crystal", - "count": 2 + "count": 4 }, { "item": "spectrum:moonstruck_nectar" @@ -35,10 +35,7 @@ "item": "spectrum:dreamflayer" }, "required_advancement": "spectrum:progression/unlock_dreamflayer", - "world_conditions": [ - "midnight", - "full_moon" - ], + "world_conditions": [], "start_crafting_effect": "single_visual_explosion_on_shrine", "during_crafting_effects": [ "nothing", diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/ferocious_glass_crest_bident.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/ferocious_glass_crest_bident.json new file mode 100644 index 0000000000..58e6d312c3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/ferocious_glass_crest_bident.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "copy_nbt": true, + "ingredients": [ + { + "item": "spectrum:malachite_bident" + }, + { + "item": "spectrum:moonstone_core" + }, + { + "item": "spectrum:mermaids_gem", + "count": 4 + }, + { + "item": "spectrum:white_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:ferocious_glass_crest_bident", + "nbt": "{Enchantments: [{id: \"minecraft:impaling\", lvl: 6s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_ferocious_glass_crest_bident", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/fractal_glass_crest_bident.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/fractal_glass_crest_bident.json new file mode 100644 index 0000000000..d2198de27c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/fractal_glass_crest_bident.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "copy_nbt": true, + "ingredients": [ + { + "item": "spectrum:malachite_bident" + }, + { + "item": "spectrum:moonstone_core" + }, + { + "item": "minecraft:echo_shard", + "count": 1 + }, + { + "item": "spectrum:white_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:fractal_glass_crest_bident", + "nbt": "{Enchantments: [{id: \"minecraft:impaling\", lvl: 6s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_fractal_glass_crest_bident", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_crossbow.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_crossbow.json new file mode 100644 index 0000000000..365076e75e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_crossbow.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "copy_nbt": true, + "ingredients": [ + { + "item": "spectrum:malachite_crossbow" + }, + { + "item": "spectrum:moonstone_core" + }, + { + "item": "spectrum:bismuth_crystal", + "count": 4 + }, + { + "item": "spectrum:white_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:glass_crest_crossbow", + "nbt": "{Enchantments: [{id: \"minecraft:piercing\", lvl: 5s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_glass_crest_crossbow", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_ultra_greatsword.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_ultra_greatsword.json new file mode 100644 index 0000000000..667d74b28c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_ultra_greatsword.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "copy_nbt": true, + "ingredients": [ + { + "item": "spectrum:malachite_ultra_greatsword" + }, + { + "item": "spectrum:moonstone_core" + }, + { + "item": "minecraft:nether_star" + }, + { + "item": "spectrum:pure_netherite", + "count": 4 + }, + { + "item": "spectrum:white_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:glass_crest_ultra_greatsword", + "nbt": "{Enchantments: [{id: \"minecraft:sweeping_edge\", lvl: 4s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_glass_crest_ultra_greatsword", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_workstaff.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_workstaff.json new file mode 100644 index 0000000000..093b5b0b16 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/glass_crest_workstaff.json @@ -0,0 +1,44 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "copy_nbt": true, + "ingredients": [ + { + "item": "spectrum:malachite_workstaff" + }, + { + "item": "spectrum:moonstone_core" + }, + { + "item": "minecraft:enchanted_book", + "recipeViewNbt": "{StoredEnchantments: [{id: \"spectrum:resonance\", lvl:1s}]}", + "matchbook": { + "mode": "AND", + "matches": [ + { + "type": "enchantment", + "key": "StoredEnchantments", + "minLevel": 1, + "maxLevel": 255, + "enchantmentId": "spectrum:resonance" + } + ] + } + }, + { + "item": "spectrum:white_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:glass_crest_workstaff", + "nbt": "{Enchantments: [{id: \"minecraft:fortune\", lvl: 4s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_glass_crest_workstaff", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_bident.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_bident.json new file mode 100644 index 0000000000..d0771efd76 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_bident.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "minecraft:trident" + }, + { + "item": "spectrum:malachite_crystal", + "count": 8 + }, + { + "item": "spectrum:pure_quartz", + "count": 8 + }, + { + "item": "spectrum:paltaeria_fragments", + "count": 4 + }, + { + "item": "spectrum:moonstone_powder", + "count": 8 + } + ], + "result": { + "item": "spectrum:malachite_bident", + "nbt": "{Enchantments: [{id: \"minecraft:impaling\", lvl: 6s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_crossbow.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_crossbow.json new file mode 100644 index 0000000000..ca446b8fa7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_crossbow.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "minecraft:crossbow" + }, + { + "item": "spectrum:malachite_crystal", + "count": 8 + }, + { + "item": "spectrum:pure_quartz", + "count": 8 + }, + { + "item": "spectrum:paltaeria_fragments", + "count": 4 + }, + { + "item": "spectrum:moonstone_powder", + "count": 8 + } + ], + "result": { + "item": "spectrum:malachite_crossbow", + "nbt": "{Enchantments: [{id: \"minecraft:piercing\", lvl: 5s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_ultra_greatsword.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_ultra_greatsword.json new file mode 100644 index 0000000000..3a402bd9fc --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_ultra_greatsword.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "minecraft:diamond_sword" + }, + { + "item": "spectrum:malachite_crystal", + "count": 8 + }, + { + "item": "spectrum:pure_quartz", + "count": 8 + }, + { + "item": "spectrum:paltaeria_fragments", + "count": 4 + }, + { + "item": "spectrum:moonstone_powder", + "count": 8 + } + ], + "result": { + "item": "spectrum:malachite_ultra_greatsword", + "nbt": "{Enchantments: [{id: \"minecraft:sweeping_edge\", lvl: 4s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_workstaff.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_workstaff.json new file mode 100644 index 0000000000..6ae5a924d0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/malachite/malachite_workstaff.json @@ -0,0 +1,42 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 1200, + "experience": 16.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "minecraft:diamond_pickaxe" + }, + { + "item": "minecraft:diamond_axe" + }, + { + "item": "minecraft:diamond_shovel" + }, + { + "item": "spectrum:malachite_crystal", + "count": 8 + }, + { + "item": "spectrum:pure_quartz", + "count": 8 + }, + { + "item": "spectrum:paltaeria_fragments", + "count": 4 + }, + { + "item": "spectrum:moonstone_powder", + "count": 8 + } + ], + "result": { + "item": "spectrum:malachite_workstaff", + "nbt": "{Enchantments: [{id: \"minecraft:fortune\", lvl: 4s}]}" + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/nightfalls_blade.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/nightfalls_blade.json new file mode 100644 index 0000000000..94911110ab --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/nightfalls_blade.json @@ -0,0 +1,44 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 2400, + "experience": 16.0, + "fluid": "spectrum:midnight_solution", + "ingredients": [ + { + "item": "minecraft:diamond_sword" + }, + { + "item": "spectrum:midnight_aberration", + "count": 2 + }, + { + "item": "spectrum:midnight_chip", + "count": 8 + }, + { + "item": "spectrum:quitoxic_powder", + "count": 8 + }, + { + "item": "spectrum:red_pigment", + "count": 4 + }, + { + "item": "spectrum:black_pigment", + "count": 4 + } + ], + "result": { + "item": "spectrum:nightfalls_blade" + }, + "required_advancement": "spectrum:progression/unlock_nightfalls_blade", + "world_conditions": [], + "start_crafting_effect": "single_visual_explosion_on_shrine", + "during_crafting_effects": [ + "nothing", + "visual_explosions_on_shrine", + "nothing" + ], + "finish_crafting_effect": "lightning_on_shrine", + "description": "spectrum.recipe.fusion_shrine.explanation.nightfalls_blade" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/spectral_shard.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/spectral_shard.json index 7bee7e4b14..3846e7e3d9 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/spectral_shard.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/spectral_shard.json @@ -23,7 +23,7 @@ "result": { "item": "spectrum:spectral_shard" }, - "required_advancement": "spectrum:lategame/spectrum_lategame", + "required_advancement": "spectrum:progression/__unlock_spectral_shard", "world_conditions": [], "start_crafting_effect": "nothing", "during_crafting_effects": [ diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ashen_circlet.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ashen_circlet.json index 1088de6b52..75072b6b94 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ashen_circlet.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ashen_circlet.json @@ -8,7 +8,7 @@ "item": "spectrum:fanciful_circlet" }, { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" }, { "item": "spectrum:neolith", diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/circlet_of_arrogance.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/circlet_of_arrogance.json new file mode 100644 index 0000000000..465bada801 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/circlet_of_arrogance.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 600, + "experience": 2.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "spectrum:fanciful_circlet" + }, + { + "item": "spectrum:malachite_crystal", + "count": 8 + }, + { + "item": "spectrum:blood_orchid_petal", + "count": 4 + }, + { + "item": "spectrum:moonstone_powder", + "count": 8 + }, + { + "item": "spectrum:red_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:circlet_of_arrogance" + }, + "required_advancement": "spectrum:progression/unlock_ashen_circlet", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/gleaming_pin.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/gleaming_pin.json index 0eb73a2cce..4e7cae7cc9 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/gleaming_pin.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/gleaming_pin.json @@ -9,7 +9,7 @@ "count": 4 }, { - "item": "spectrum:shooting_star" + "item": "spectrum:star_fragment" }, { "item": "spectrum:stardust", diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/greater_potion_pendant.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/greater_potion_pendant.json index 5384eefe24..f6f7c413b3 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/greater_potion_pendant.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/greater_potion_pendant.json @@ -8,7 +8,7 @@ "item": "spectrum:fanciful_pendant" }, { - "item": "spectrum:paletur_gem", + "item": "spectrum:paltaeria_gem", "count": 3 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/jeopardant.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/jeopardant.json index 373f45b688..349502c28d 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/jeopardant.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/jeopardant.json @@ -8,7 +8,7 @@ "item": "spectrum:fanciful_stone_ring" }, { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" }, { "item": "minecraft:lapis_lazuli", diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/lesser_potion_pendant.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/lesser_potion_pendant.json index a96b3ee7c8..29a5e9b055 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/lesser_potion_pendant.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/lesser_potion_pendant.json @@ -8,7 +8,7 @@ "item": "spectrum:fanciful_pendant" }, { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" }, { "item": "minecraft:glass", diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/neat_ring.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/neat_ring.json index 8607a44ef9..faabe3c933 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/neat_ring.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/neat_ring.json @@ -1,18 +1,19 @@ { "type": "spectrum:fusion_shrine", "time": 600, - "experience": 2.0, + "experience": 8.0, "fluid": "spectrum:liquid_crystal", "ingredients": [ { - "item": "spectrum:fanciful_stone_ring" + "item": "spectrum:fanciful_bismuth_ring" }, { "item": "minecraft:gold_ingot", - "count": 8 + "count": 64 }, { - "item": "spectrum:moonstone_shard" + "item": "spectrum:moonstone_shard", + "count": 32 }, { "item": "spectrum:resonant_lily" @@ -23,7 +24,15 @@ }, "required_advancement": "spectrum:progression/unlock_neat_ring", "world_conditions": [], - "start_crafting_effect": "nothing", - "during_crafting_effects": [], - "finish_crafting_effect": "single_visual_explosion_on_shrine" + "start_crafting_effect": "play_glass_breaking_sound", + "during_crafting_effects": [ + "nothing", + "lightning_on_shrine", + "nothing", + "explosions_and_lightning_around_shrine", + "explosions_and_lightning_around_shrine", + "explosions_and_lightning_around_shrine", + "nothing" + ], + "finish_crafting_effect": "ridiculously_squeaky_fart" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/puff_circlet.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/puff_circlet.json index af199750af..1c054e47d4 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/puff_circlet.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/puff_circlet.json @@ -11,10 +11,10 @@ "item": "spectrum:refined_azurite" }, { - "item": "spectrum:paletur_gem" + "item": "spectrum:paltaeria_gem" }, { - "item": "spectrum:moonstone_cluster" + "item": "spectrum:moonstone_shard" }, { "item": "spectrum:white_pigment", diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/radiance_pin.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/radiance_pin.json index cb02ba9289..e9cdbe6872 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/radiance_pin.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/radiance_pin.json @@ -9,10 +9,10 @@ "count": 4 }, { - "item": "spectrum:shooting_star" + "item": "spectrum:star_fragment" }, { - "item": "spectrum:sparklestone_gem", + "item": "spectrum:shimmerstone_gem", "count": 16 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ring_of_pursuit.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ring_of_pursuit.json new file mode 100644 index 0000000000..9b875a4147 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/ring_of_pursuit.json @@ -0,0 +1,31 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 600, + "experience": 2.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "spectrum:fanciful_bismuth_ring" + }, + { + "item": "spectrum:bedrock_dust", + "count": 8 + }, + { + "item": "minecraft:iron_ingot", + "count": 4 + }, + { + "item": "spectrum:magenta_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:ring_of_pursuit" + }, + "required_advancement": "spectrum:progression/unlock_ring_of_pursuit", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/take_off_belt.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/take_off_belt.json index 644db45e66..1db22e2fab 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/take_off_belt.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/take_off_belt.json @@ -11,7 +11,7 @@ "item": "minecraft:rabbit_foot" }, { - "item": "spectrum:lightning_stone", + "item": "spectrum:storm_stone", "count": 2 }, { diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/tidal_circlet.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/tidal_circlet.json deleted file mode 100644 index 0b370e55cd..0000000000 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/tidal_circlet.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:fusion_shrine", - "time": 600, - "experience": 2.0, - "fluid": "spectrum:liquid_crystal", - "ingredients": [ - { - "item": "spectrum:fanciful_circlet" - }, - { - "item": "minecraft:heart_of_the_sea" - }, - { - "item": "spectrum:mermaids_gem" - }, - { - "item": "minecraft:copper_ingot", - "count": 4 - }, - { - "item": "spectrum:light_blue_pigment", - "count": 16 - } - ], - "result": { - "item": "spectrum:tidal_circlet" - }, - "required_advancement": "spectrum:progression/unlock_tidal_circlet", - "world_conditions": [], - "start_crafting_effect": "nothing", - "during_crafting_effects": [], - "finish_crafting_effect": "single_visual_explosion_on_shrine" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/weeping_circlet.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/weeping_circlet.json new file mode 100644 index 0000000000..abd14de601 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/trinkets/weeping_circlet.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 600, + "experience": 2.0, + "fluid": "spectrum:liquid_crystal", + "ingredients": [ + { + "item": "spectrum:fanciful_circlet" + }, + { + "item": "minecraft:heart_of_the_sea" + }, + { + "item": "spectrum:mermaids_gem" + }, + { + "item": "minecraft:copper_ingot", + "count": 4 + }, + { + "item": "spectrum:light_blue_pigment", + "count": 16 + } + ], + "result": { + "item": "spectrum:weeping_circlet" + }, + "required_advancement": "spectrum:progression/unlock_weeping_circlet", + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "single_visual_explosion_on_shrine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/vanilla/enchanted_golden_apple.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/vanilla/enchanted_golden_apple.json deleted file mode 100644 index 6a1bb7b839..0000000000 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/vanilla/enchanted_golden_apple.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "spectrum:fusion_shrine", - "time": 600, - "experience": 4.0, - "fluid": "minecraft:water", - "ingredients": [ - { - "item": "minecraft:golden_apple" - }, - { - "item": "minecraft:gold_block", - "count": 4 - }, - { - "item": "spectrum:sparklestone_block", - "count": 4 - } - ], - "result": { - "item": "minecraft:enchanted_golden_apple" - }, - "required_advancement": "spectrum:create_onyx_shard", - "world_conditions": [], - "start_crafting_effect": "nothing", - "during_crafting_effects": [], - "finish_crafting_effect": "single_visual_explosion_on_shrine" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/fusion_shrine/weather/weather_thunder.json b/src/main/resources/data/spectrum/recipes/fusion_shrine/weather/weather_thunder.json index 7375bbe615..9d5e391510 100644 --- a/src/main/resources/data/spectrum/recipes/fusion_shrine/weather/weather_thunder.json +++ b/src/main/resources/data/spectrum/recipes/fusion_shrine/weather/weather_thunder.json @@ -5,7 +5,7 @@ "fluid": "minecraft:water", "ingredients": [ { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" } ], "required_advancement": "spectrum:progression/weather/weather_thunder", diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay.json new file mode 100644 index 0000000000..9a9a901989 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": { + "item": "spectrum:exposed_polished_shale_clay", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay_slab.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay_slab.json new file mode 100644 index 0000000000..880667afe7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay_slab.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:polished_shale_clay_slab" + }, + "result": { + "item": "spectrum:exposed_polished_shale_clay_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..08e681040d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_polished_shale_clay_stairs.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:polished_shale_clay_stairs" + }, + "result": { + "item": "spectrum:exposed_polished_shale_clay_stairs", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_brick_slab.json new file mode 100644 index 0000000000..a4dfd111bf --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_brick_slab.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:shale_clay_brick_slab" + }, + "result": { + "item": "spectrum:exposed_shale_clay_brick_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..3d65ca6353 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_brick_stairs.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:shale_clay_brick_stairs" + }, + "result": { + "item": "spectrum:exposed_shale_clay_brick_stairs", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_bricks.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_bricks.json new file mode 100644 index 0000000000..ba92792787 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_bricks.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:shale_clay_bricks" + }, + "result": { + "item": "spectrum:exposed_shale_clay_bricks", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tile_slab.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tile_slab.json new file mode 100644 index 0000000000..884d6af2f0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tile_slab.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:shale_clay_tile_slab" + }, + "result": { + "item": "spectrum:exposed_shale_clay_tile_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..db2164b0cb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tile_stairs.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:shale_clay_tile_stairs" + }, + "result": { + "item": "spectrum:exposed_shale_clay_tile_stairs", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tiles.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tiles.json new file mode 100644 index 0000000000..f4b3d1c717 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/exposed_shale_clay_tiles.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:shale_clay_tiles" + }, + "result": { + "item": "spectrum:exposed_shale_clay_tiles", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay.json new file mode 100644 index 0000000000..3a80854ba2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": { + "item": "spectrum:weathered_polished_shale_clay", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay_slab.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay_slab.json new file mode 100644 index 0000000000..1c01b146d3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay_slab.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay_slab" + }, + "result": { + "item": "spectrum:weathered_polished_shale_clay_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay_stairs.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay_stairs.json new file mode 100644 index 0000000000..32b37edf45 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_polished_shale_clay_stairs.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay_stairs" + }, + "result": { + "item": "spectrum:weathered_polished_shale_clay_stairs", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_brick_slab.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_brick_slab.json new file mode 100644 index 0000000000..1a919035a4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_brick_slab.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_brick_slab" + }, + "result": { + "item": "spectrum:weathered_shale_clay_brick_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_brick_stairs.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_brick_stairs.json new file mode 100644 index 0000000000..3739ba8103 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_brick_stairs.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_brick_stairs" + }, + "result": { + "item": "spectrum:weathered_shale_clay_brick_stairs", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_bricks.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_bricks.json new file mode 100644 index 0000000000..1c01b146d3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_bricks.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay_slab" + }, + "result": { + "item": "spectrum:weathered_polished_shale_clay_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tile_slab.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tile_slab.json new file mode 100644 index 0000000000..c3b0087b8d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tile_slab.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_tile_slab" + }, + "result": { + "item": "spectrum:weathered_shale_clay_tile_slab", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tile_stairs.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tile_stairs.json new file mode 100644 index 0000000000..eb7a5e2e9d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tile_stairs.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_tile_stairs" + }, + "result": { + "item": "spectrum:weathered_shale_clay_tile_stairs", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tiles.json b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tiles.json new file mode 100644 index 0000000000..206ceecc33 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/midnight_solution_converting/shale_clay/weathered_shale_clay_tiles.json @@ -0,0 +1,10 @@ +{ + "type": "spectrum:midnight_solution_converting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_tiles" + }, + "result": { + "item": "spectrum:weathered_shale_clay_tiles", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/anvil_crushing/certus_quartz_from_certus_buds.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/anvil_crushing/certus_quartz_from_certus_buds.json new file mode 100644 index 0000000000..d31eb0d3b5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/anvil_crushing/certus_quartz_from_certus_buds.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": [ + { + "item": "ae2:small_quartz_bud" + }, + { + "item": "ae2:medium_quartz_bud" + }, + { + "item": "ae2:large_quartz_bud" + } + ], + "crushedItemsPerPointOfDamage": 1.0, + "experience": 2.0, + "result": { + "item": "ae2:certus_quartz_dust", + "count": 2 + }, + "particleEffectIdentifier": "explosion", + "soundEventIdentifier": "block.amethyst_cluster.break", + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/anvil_crushing/certus_quartz_from_certus_cluster.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/anvil_crushing/certus_quartz_from_certus_cluster.json new file mode 100644 index 0000000000..05498ee633 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/anvil_crushing/certus_quartz_from_certus_cluster.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:anvil_crushing", + "ingredient": [ + { + "item": "ae2:quartz_cluster" + } + ], + "crushedItemsPerPointOfDamage": 1.0, + "experience": 2.0, + "result": { + "item": "ae2:certus_quartz_dust", + "count": 8 + }, + "particleEffectIdentifier": "explosion", + "soundEventIdentifier": "block.amethyst_cluster.break", + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_certus_quartz.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_certus_quartz.json index de1c180ecd..82616b89f8 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_certus_quartz.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_certus_quartz.json @@ -9,7 +9,7 @@ "count": 4 }, { - "item": "ae2:certus_crystal_seed", + "item": "ae2:certus_quartz_dust", "chance": 0.1 }, { @@ -19,6 +19,7 @@ ], "experience": 1, "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_fluix.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_fluix.json index c263c87143..d098c89e66 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_fluix.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/cinderhearth/pure_fluix.json @@ -9,13 +9,13 @@ "count": 4 }, { - "item": "ae2:fluix_crystal_seed", - "count": 1, + "item": "ae2:fluix_dust", "chance": 0.1 } ], "experience": 1, "time": 200, + "required_advancement": "spectrum:lategame/collect_pure_resource", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/certus_quartz_crystal.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/certus_quartz_crystal.json index 267b7652dd..59a87ebf5b 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/certus_quartz_crystal.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/certus_quartz_crystal.json @@ -23,7 +23,7 @@ }, { "ingredient": { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, "growth_acceleration_mod": 4.0, "ink_consumption_mod": 0.25, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/fluix_crystal.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/fluix_crystal.json index 3a04214fb0..b1bb97c67f 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/fluix_crystal.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/crystallarieum/fluix_crystal.json @@ -23,7 +23,7 @@ }, { "ingredient": { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, "growth_acceleration_mod": 4.0, "ink_consumption_mod": 0.25, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal.json index beeabca6f1..5c212fb46c 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/charged_certus_quartz_crystal.json @@ -5,20 +5,22 @@ "fluid": "minecraft:water", "ingredients": [ { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, { - "item": "ae2:certus_quartz_crystal" + "item": "ae2:certus_quartz_crystal", + "count": 4 } ], "result": { - "item": "ae2:charged_certus_quartz_crystal" + "item": "ae2:charged_certus_quartz_crystal", + "count": 4 }, "world_conditions": [], "start_crafting_effect": "nothing", "during_crafting_effects": [], "finish_crafting_effect": "lightning_on_shrine", - "advancement": "spectrum:midgame/collect_lightning_stone", + "advancement": "spectrum:midgame/collect_storm_stone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/fluix_crystal.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/fluix_crystal.json new file mode 100644 index 0000000000..72027216a7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/fluix_crystal.json @@ -0,0 +1,38 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 80, + "experience": 0.2, + "fluid": "minecraft:water", + "ingredients": [ + { + "item": "spectrum:storm_stone" + }, + { + "item": "ae2:charged_certus_quartz_crystal" + }, + { + "item": "minecraft:quartz", + "count": 2 + }, + { + "item": "minecraft:redstone" + } + ], + "result": { + "item": "ae2:fluix_crystal", + "count": 4 + }, + "world_conditions": [], + "start_crafting_effect": "nothing", + "during_crafting_effects": [], + "finish_crafting_effect": "lightning_on_shrine", + "advancement": "spectrum:midgame/collect_storm_stone", + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/fluix_dust.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/fluix_dust.json deleted file mode 100644 index 82b4d129d2..0000000000 --- a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/fusion_shrine/fluix_dust.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "type": "spectrum:fusion_shrine", - "time": 80, - "experience": 0.2, - "fluid": "minecraft:water", - "ingredients": [ - { - "item": "spectrum:lightning_stone" - }, - { - "item": "ae2:charged_certus_quartz_crystal" - }, - { - "item": "minecraft:quartz", - "count": 2 - }, - { - "item": "minecraft:redstone" - } - ], - "result": { - "item": "ae2:fluix_dust", - "count": 4 - }, - "world_conditions": [], - "start_crafting_effect": "nothing", - "during_crafting_effects": [], - "finish_crafting_effect": "lightning_on_shrine", - "advancement": "spectrum:midgame/collect_lightning_stone", - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "ae2" - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ae2/spirit_instiller/flawless_budding_quartz.json b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/spirit_instiller/flawless_budding_quartz.json new file mode 100644 index 0000000000..38be8b1952 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ae2/spirit_instiller/flawless_budding_quartz.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:spirit_instiller", + "time": 400, + "experience": 8.0, + "ingredient1": { + "tag": "ae2:flawed_budding_quartz" + }, + "ingredient2": { + "item": "ae2:charged_certus_quartz_crystal" + }, + "center_ingredient": { + "item": "spectrum:neolith", + "count": 4 + }, + "result": { + "item": "ae2:flawless_budding_quartz" + }, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ae2" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/paletur.json b/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/paletur.json index 507cd37ce6..252ded2256 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/paletur.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/paletur.json @@ -2,24 +2,24 @@ "type": "alloy_forgery:forging", "inputs": [ { - "item": "spectrum:paletur_ore" + "item": "spectrum:paltaeria_ore" } ], "output": { - "id": "spectrum:paletur_fragments", + "id": "spectrum:paltaeria_fragments", "count": 3 }, "overrides": { "2": { - "id": "spectrum:paletur_fragments", + "id": "spectrum:paltaeria_fragments", "count": 4 }, "3+": { - "id": "spectrum:paletur_fragments", + "id": "spectrum:paltaeria_fragments", "count": 5 }, "4+": { - "id": "spectrum:paletur_fragments", + "id": "spectrum:paltaeria_fragments", "count": 6 } }, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/scarlet.json b/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/scarlet.json deleted file mode 100644 index 218f86168a..0000000000 --- a/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/scarlet.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "alloy_forgery:forging", - "inputs": [ - { - "item": "spectrum:scarlet_ore" - } - ], - "output": { - "id": "spectrum:scarlet_fragments", - "count": 3 - }, - "overrides": { - "2": { - "id": "spectrum:scarlet_fragments", - "count": 4 - }, - "3+": { - "id": "spectrum:scarlet_fragments", - "count": 5 - }, - "4+": { - "id": "spectrum:scarlet_fragments", - "count": 6 - } - }, - "min_forge_tier": 2, - "fuel_per_tick": 5, - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "alloy_forgery" - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/stratine.json b/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/stratine.json new file mode 100644 index 0000000000..0f2522bcaa --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/alloy_forgery/alloy_forging/stratine.json @@ -0,0 +1,36 @@ +{ + "type": "alloy_forgery:forging", + "inputs": [ + { + "item": "spectrum:stratine_ore" + } + ], + "output": { + "id": "spectrum:stratine_fragments", + "count": 3 + }, + "overrides": { + "2": { + "id": "spectrum:stratine_fragments", + "count": 4 + }, + "3+": { + "id": "spectrum:stratine_fragments", + "count": 5 + }, + "4+": { + "id": "spectrum:stratine_fragments", + "count": 6 + } + }, + "min_forge_tier": 2, + "fuel_per_tick": 5, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "alloy_forgery" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/biomemakeover/potion_workshop_brewing/biomemakeover_antidote.json b/src/main/resources/data/spectrum/recipes/mod_integration/biomemakeover/potion_workshop_brewing/biomemakeover_antidote.json new file mode 100644 index 0000000000..60383a2486 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/biomemakeover/potion_workshop_brewing/biomemakeover_antidote.json @@ -0,0 +1,23 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "biomemakeover:wart" + }, + "effect": "biomemakeover:antidote", + "base_duration_ticks": 0, + "potency_modifier": 0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "biomemakeover" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/biomemakeover/potion_workshop_brewing/biomemakeover_nocturnal.json b/src/main/resources/data/spectrum/recipes/mod_integration/biomemakeover/potion_workshop_brewing/biomemakeover_nocturnal.json new file mode 100644 index 0000000000..96c312cc14 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/biomemakeover/potion_workshop_brewing/biomemakeover_nocturnal.json @@ -0,0 +1,23 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "biomemakeover:moth_scales" + }, + "effect": "biomemakeover:nocturnal", + "base_duration_ticks": 72000, + "potency_modifier": 0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "biomemakeover" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/black_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/black_glimmering_flower.json index 56731114a0..488e75ab97 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/black_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/black_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:black_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:black_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/blue_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/blue_glimmering_flower.json index 11f46928ea..31dc1c3f06 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/blue_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/blue_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:blue_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:blue_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/brown_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/brown_glimmering_flower.json index 2c0090fb7b..101c07874a 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/brown_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/brown_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:brown_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:brown_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/cyan_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/cyan_glimmering_flower.json index 2926c5d494..6ba1f6c699 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/cyan_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/cyan_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:cyan_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:cyan_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/gray_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/gray_glimmering_flower.json index 8c6324e638..6a7f552806 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/gray_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/gray_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:gray_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:gray_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/green_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/green_glimmering_flower.json index 2ea614edee..e87acc7d4c 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/green_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/green_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:green_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:green_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_blue_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_blue_glimmering_flower.json index 1dee6083c5..b496039f4f 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_blue_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_blue_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:light_blue_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:light_blue_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_gray_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_gray_glimmering_flower.json index 01b890ff9e..566552fccd 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_gray_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/light_gray_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:light_gray_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:light_gray_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/lime_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/lime_glimmering_flower.json index a08d491453..add428e544 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/lime_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/lime_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:lime_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:lime_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/magenta_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/magenta_glimmering_flower.json index 3aae09970c..b56d6447e2 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/magenta_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/magenta_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:magenta_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:magenta_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/orange_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/orange_glimmering_flower.json index 29056ec8ba..443b4894dc 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/orange_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/orange_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:orange_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:orange_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/pink_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/pink_glimmering_flower.json index 6c6cd8b34c..7b5083f601 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/pink_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/pink_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:pink_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:pink_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower.json index 7682d25a69..17f8a8384f 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/purple_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:purple_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:purple_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/red_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/red_glimmering_flower.json index fdb7b77455..712483543a 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/red_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/red_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:red_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:red_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/white_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/white_glimmering_flower.json index 2f3287a1ec..f6b5edb907 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/white_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/white_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:white_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:white_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/yellow_glimmering_flower.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/yellow_glimmering_flower.json index 1bc755cc1b..3dfe084b79 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/yellow_glimmering_flower.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/glimmering_flowers/yellow_glimmering_flower.json @@ -17,14 +17,14 @@ "item": "botania:yellow_mystical_flower" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "botania:yellow_shiny_flower", "count": 1 }, - "required_advancement": "spectrum:collect_sparklestone", + "required_advancement": "spectrum:collect_shimmerstone", "fabric:load_conditions": [ { "condition": "fabric:all_mods_loaded", diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/black_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/black_mushroom.json index bff280a2f1..c5e29e3017 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/black_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/black_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:black_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/blue_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/blue_mushroom.json index 359482cf16..11c52f463c 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/blue_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/blue_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:blue_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/brown_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/brown_mushroom.json index fa2f6720e8..61a8ca6f31 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/brown_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/brown_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:brown_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/cyan_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/cyan_mushroom.json index 9b04d77a5b..d861bfeda1 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/cyan_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/cyan_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:cyan_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/gray_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/gray_mushroom.json index 045bc28d5b..7e5c79ffb0 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/gray_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/gray_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:gray_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/green_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/green_mushroom.json index 68c6650234..aba1d39447 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/green_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/green_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:green_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_blue_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_blue_mushroom.json index 2791720744..aca40e2afe 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_blue_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_blue_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:light_blue_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_gray_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_gray_mushroom.json index e7c428bc5a..594cca9b21 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_gray_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/light_gray_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:light_gray_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/lime_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/lime_mushroom.json index d9cc9ff677..fb442518db 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/lime_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/lime_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:lime_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/magenta_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/magenta_mushroom.json index 652173f803..6489686c4a 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/magenta_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/magenta_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:magenta_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/orange_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/orange_mushroom.json index af8e7913a0..32046a7ab1 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/orange_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/orange_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:orange_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/pink_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/pink_mushroom.json index d9a9716e20..61cfb92583 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/pink_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/pink_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:pink_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/purple_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/purple_mushroom.json index baa2fb397a..59821ed5cf 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/purple_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/purple_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:purple_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/red_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/red_mushroom.json index 4868a9f728..57cf8f22e5 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/red_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/red_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:red_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/white_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/white_mushroom.json index 80230847ff..b0fc125300 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/white_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/white_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:white_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/yellow_mushroom.json b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/yellow_mushroom.json index 44d21de5d4..204c9af769 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/yellow_mushroom.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/botania/pedestal/mushrooms/yellow_mushroom.json @@ -20,7 +20,7 @@ "item": "spectrum:yellow_pigment" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_chalk.json index 0baca3d068..c7b4c09b4a 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_glow_chalk.json index a2e5af7135..854e1409f9 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/black_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_chalk.json index 35f8fc6bf4..43626f6708 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_glow_chalk.json index ff6117680b..98ea7ef164 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/blue_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_chalk.json index e856be4207..d4cac63d42 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_glow_chalk.json index 47c6776e79..267af7ce7c 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/brown_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_chalk.json index cd2c9f09a7..0bc2477588 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_glow_chalk.json index 25247c2751..bc03e82285 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/cyan_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_chalk.json index 599f0c101b..3b8cf67d96 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_glow_chalk.json index 4ec1d79590..a9254d60b6 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/gray_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_chalk.json index e618a0ca5e..3013856959 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_glow_chalk.json index d610500cfb..1fc489eacd 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/green_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_chalk.json index 46aac9b330..fb9940854c 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_glow_chalk.json index 48cb2f1605..7e9c26f6e5 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_blue_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_chalk.json index d4c66dad73..2398f351c5 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_glow_chalk.json index 8a7680ee91..5fc176f040 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/light_gray_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_chalk.json index 8175422835..20d0aa4e11 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_glow_chalk.json index fc5752c462..b7343a926e 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/lime_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_chalk.json index 5cb51c73f4..23fa0bd7f7 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_glow_chalk.json index f5d294a172..4dfd5a6784 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/magenta_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_chalk.json index fb5a94a379..6fffefdd4d 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_glow_chalk.json index b1e06bb83a..9bddc01885 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/orange_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_chalk.json index 1b3b5547e8..7eb02a4704 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_glow_chalk.json index df5d520777..57d4be4329 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/pink_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_chalk.json index 0216bc6f1c..739e6b3902 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_glow_chalk.json index e7578e6eee..f9ce96f82a 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/purple_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_chalk.json index 2f534214a4..75439ea4f7 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_glow_chalk.json index bde8ca8543..3a491c3c38 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/red_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_chalk.json index 71ef6d03c1..100346d257 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_chalk.json @@ -31,7 +31,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_glow_chalk.json b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_glow_chalk.json index f8c49c0401..6a8544b7d5 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_glow_chalk.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/chalk/pedestal/yellow_glow_chalk.json @@ -34,7 +34,7 @@ { "condition": "fabric:all_mods_loaded", "values": [ - "chalk" + "chalk-colorful-addon" ] } ] diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/black_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/black_leaves_to_sapling.json index 290f6da6aa..57aa3d8b83 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/black_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/black_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:black_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/blue_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/blue_leaves_to_sapling.json index 3410adbf3e..725f3a6f32 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/blue_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/blue_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:blue_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/brown_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/brown_leaves_to_sapling.json index 0612f3b59f..0c383ad023 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/brown_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/brown_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:brown_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/cyan_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/cyan_leaves_to_sapling.json index 873d07e40e..908532949d 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/cyan_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/cyan_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:cyan_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/gray_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/gray_leaves_to_sapling.json index 68f9cc478b..cdbcee31bc 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/gray_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/gray_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:gray_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/green_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/green_leaves_to_sapling.json index 531315b67c..ad361783b7 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/green_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/green_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:green_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_blue_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_blue_leaves_to_sapling.json index c79c7ccfd8..5904cbf146 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_blue_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_blue_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:light_blue_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_gray_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_gray_leaves_to_sapling.json index 682e8efbde..1fb0a7d5a5 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_gray_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/light_gray_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:light_gray_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/lime_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/lime_leaves_to_sapling.json index 7ff4645cf5..62aa2a03f4 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/lime_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/lime_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:lime_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/magenta_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/magenta_leaves_to_sapling.json index 9808dc30b4..ae6eaf2be3 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/magenta_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/magenta_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:magenta_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/orange_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/orange_leaves_to_sapling.json index e9b7a19a75..4071bea004 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/orange_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/orange_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:orange_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/pink_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/pink_leaves_to_sapling.json index 0184c706ef..8b82f15592 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/pink_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/pink_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:pink_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/purple_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/purple_leaves_to_sapling.json index 0651440919..4dcf6f3655 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/purple_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/purple_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:purple_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/red_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/red_leaves_to_sapling.json index f9b7bd170a..ca228fca2d 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/red_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/red_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:red_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/white_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/white_leaves_to_sapling.json index bdef531d84..93a5d76c77 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/white_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/white_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:white_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/yellow_leaves_to_sapling.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/yellow_leaves_to_sapling.json index dad9262198..9f9b786ae1 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/yellow_leaves_to_sapling.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/crushing/leaves/yellow_leaves_to_sapling.json @@ -14,7 +14,7 @@ { "item": "spectrum:yellow_sapling", "count": 1, - "chance": 0.12 + "chance": 0.04 } ], "processingTime": 450, diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/create/milling/quitoxic_powder.json b/src/main/resources/data/spectrum/recipes/mod_integration/create/milling/quitoxic_powder.json new file mode 100644 index 0000000000..dfd2b7ffd7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/create/milling/quitoxic_powder.json @@ -0,0 +1,29 @@ +{ + "type": "create:milling", + "ingredients": [ + { + "item": "spectrum:quitoxic_reeds" + } + ], + "results": [ + { + "item": "spectrum:quitoxic_powder", + "count": 2, + "chance": 1.0 + }, + { + "item": "spectrum:quitoxic_powder", + "count": 1, + "chance": 0.5 + } + ], + "processingTime": 450, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "create" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/ecologics/potion_workshop_brewing/ecologics_slippery.json b/src/main/resources/data/spectrum/recipes/mod_integration/ecologics/potion_workshop_brewing/ecologics_slippery.json new file mode 100644 index 0000000000..ff084cc56c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/ecologics/potion_workshop_brewing/ecologics_slippery.json @@ -0,0 +1,23 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "ecologics:penguin_feather" + }, + "effect": "ecologics:slippery", + "base_duration_ticks": 3600, + "potency_modifier": 0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "ecologics" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_combustion.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_combustion.json new file mode 100644 index 0000000000..7c1726a7e0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_combustion.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:sugar" + }, + "ingredient2": { + "item": "minecraft:coal_block" + }, + "effect": "extraalchemy:combustion", + "base_duration_ticks": 600, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_concentration.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_concentration.json new file mode 100644 index 0000000000..4e825f423a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_concentration.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:egg" + }, + "effect": "extraalchemy:concentration", + "base_duration_ticks": 0, + "potency_modifier": 0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_crumbling.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_crumbling.json new file mode 100644 index 0000000000..bacda11fa5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_crumbling.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:dirt" + }, + "effect": "extraalchemy:crumbling", + "base_duration_ticks": 1200, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_detection.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_detection.json new file mode 100644 index 0000000000..819a7b78aa --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_detection.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:sugar" + }, + "ingredient2": { + "item": "minecraft:kelp" + }, + "effect": "extraalchemy:detection", + "base_duration_ticks": 1200, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_fuse.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_fuse.json new file mode 100644 index 0000000000..2be4b177d5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_fuse.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:firework_star" + }, + "effect": "extraalchemy:fuse", + "base_duration_ticks": 400, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_gravity.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_gravity.json new file mode 100644 index 0000000000..b9077ddce5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_gravity.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:glowstone_dust" + }, + "ingredient2": { + "item": "minecraft:nether_brick" + }, + "effect": "extraalchemy:gravity", + "base_duration_ticks": 1200, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_growing.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_growing.json new file mode 100644 index 0000000000..191c2e8c35 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_growing.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:red_mushroom" + }, + "effect": "extraalchemy:growing", + "base_duration_ticks": 900, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy", + "pehkui" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_learning.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_learning.json new file mode 100644 index 0000000000..8172a164ac --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_learning.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:glowstone_dust" + }, + "ingredient2": { + "item": "minecraft:lapis_block" + }, + "effect": "extraalchemy:learning", + "base_duration_ticks": 2400, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_magnetism.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_magnetism.json new file mode 100644 index 0000000000..124d93dcc0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_magnetism.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:iron_ingot" + }, + "effect": "extraalchemy:magnetism", + "base_duration_ticks": 3600, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_pacifism.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_pacifism.json new file mode 100644 index 0000000000..ed02c79b6c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_pacifism.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:golden_apple" + }, + "ingredient3": { + "item": "minecraft:fermented_spider_eye" + }, + "effect": "extraalchemy:pacifism", + "base_duration_ticks": 500, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_photosynthesis.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_photosynthesis.json new file mode 100644 index 0000000000..9b05f77c69 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_photosynthesis.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:beetroot_seeds" + }, + "effect": "extraalchemy:photosynthesis", + "base_duration_ticks": 1600, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_piper.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_piper.json new file mode 100644 index 0000000000..775eb9f7f1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_piper.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:wheat" + }, + "effect": "extraalchemy:piper", + "base_duration_ticks": 2400, + "potency_modifier": 0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_recall.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_recall.json new file mode 100644 index 0000000000..c541f10ef5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_recall.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:sugar" + }, + "ingredient2": { + "item": "minecraft:ender_eye" + }, + "effect": "extraalchemy:recall", + "base_duration_ticks": 1200, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_returning.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_returning.json new file mode 100644 index 0000000000..2c80bb1c13 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_returning.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:prismarine_shard" + }, + "effect": "extraalchemy:returning", + "base_duration_ticks": 0, + "potency_modifier": 0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": false, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_sails.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_sails.json new file mode 100644 index 0000000000..db9653cdd9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_sails.json @@ -0,0 +1,24 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:salmon" + }, + "effect": "extraalchemy:sails", + "base_duration_ticks": 2400, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_shrinking.json b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_shrinking.json new file mode 100644 index 0000000000..26be87dd6e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/extraalchemy/potion_workshop_brewing/extraalchemy_shrinking.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "group": "extraalchemy_potions", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:brown_mushroom" + }, + "effect": "extraalchemy:shrinking", + "base_duration_ticks": 2400, + "potency_modifier": 1.0, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "extraalchemy", + "pehkui" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/hexcasting/fusion_shrine/charged_amethyst_from_amethyst_shard_fusion.json b/src/main/resources/data/spectrum/recipes/mod_integration/hexcasting/fusion_shrine/charged_amethyst_from_amethyst_shard_fusion.json new file mode 100644 index 0000000000..b659a27095 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/hexcasting/fusion_shrine/charged_amethyst_from_amethyst_shard_fusion.json @@ -0,0 +1,37 @@ +{ + "type": "spectrum:fusion_shrine", + "time": 800, + "experience": 2.0, + "fluid": "minecraft:water", + "ingredients": [ + { + "item": "minecraft:amethyst_shard", + "count": 8 + }, + { + "item": "spectrum:storm_stone" + } + ], + "result": { + "item": "hexcasting:charged_amethyst", + "count": 8 + }, + "required_advancement": "spectrum:midgame/collect_storm_stone", + "world_conditions": [], + "start_crafting_effect": "single_visual_explosion_on_shrine", + "during_crafting_effects": [ + "nothing", + "visual_explosions_on_shrine", + "nothing" + ], + "finish_crafting_effect": "lightning_on_shrine", + "description": "", + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "hexcasting" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/hexcasting/potion_workshop_reacting/charged_amethyst.json b/src/main/resources/data/spectrum/recipes/mod_integration/hexcasting/potion_workshop_reacting/charged_amethyst.json new file mode 100644 index 0000000000..8a26e57fa3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/hexcasting/potion_workshop_reacting/charged_amethyst.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "hexcasting:charged_amethyst", + "modifiers": [ + { + "flat_duration_bonus_ticks": 300 + }, + { + "flat_duration_bonus_ticks": 600 + }, + { + "flat_duration_bonus_ticks": 900 + }, + { + "flat_duration_bonus_ticks": 1200 + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "hexcasting" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/paletur_fragments_from_ore.json b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/paletur_fragments_from_ore.json deleted file mode 100644 index be93dff7cb..0000000000 --- a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/paletur_fragments_from_ore.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "techreborn:industrial_grinder", - "power": 64, - "time": 100, - "tank": { - "fluid": "spectrum:liquid_crystal", - "amount": 100 - }, - "ingredients": [ - { - "item": "spectrum:paletur_ore" - } - ], - "results": [ - { - "item": "spectrum:paletur_fragments", - "count": 6 - } - ], - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "techreborn" - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/paltaeria_fragments_from_ore.json b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/paltaeria_fragments_from_ore.json new file mode 100644 index 0000000000..a45989e4fb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/paltaeria_fragments_from_ore.json @@ -0,0 +1,28 @@ +{ + "type": "techreborn:industrial_grinder", + "power": 64, + "time": 100, + "tank": { + "fluid": "spectrum:liquid_crystal", + "amount": 100 + }, + "ingredients": [ + { + "item": "spectrum:paltaeria_ore" + } + ], + "results": [ + { + "item": "spectrum:paltaeria_fragments", + "count": 6 + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "techreborn" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/scarlet_fragments_from_ore.json b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/scarlet_fragments_from_ore.json deleted file mode 100644 index 4fa8eaaae3..0000000000 --- a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/scarlet_fragments_from_ore.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "techreborn:industrial_grinder", - "power": 64, - "time": 100, - "tank": { - "fluid": "spectrum:liquid_crystal", - "amount": 100 - }, - "ingredients": [ - { - "item": "spectrum:scarlet_ore" - } - ], - "results": [ - { - "item": "spectrum:scarlet_fragments", - "count": 6 - } - ], - "fabric:load_conditions": [ - { - "condition": "fabric:all_mods_loaded", - "values": [ - "techreborn" - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/shimmerstone_gems_from_ore.json b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/shimmerstone_gems_from_ore.json index 0f2ccd0c6a..53a61d4fd2 100644 --- a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/shimmerstone_gems_from_ore.json +++ b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/shimmerstone_gems_from_ore.json @@ -8,12 +8,12 @@ }, "ingredients": [ { - "tag": "spectrum:sparklestone_ores" + "tag": "spectrum:shimmerstone_ores" } ], "results": [ { - "item": "spectrum:sparklestone_gem", + "item": "spectrum:shimmerstone_gem", "count": 6 } ], diff --git a/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/stratine_fragments_from_ore.json b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/stratine_fragments_from_ore.json new file mode 100644 index 0000000000..79eb00c6d4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/mod_integration/tech_reborn/industrial_grinder/stratine_fragments_from_ore.json @@ -0,0 +1,28 @@ +{ + "type": "techreborn:industrial_grinder", + "power": 64, + "time": 100, + "tank": { + "fluid": "spectrum:liquid_crystal", + "amount": 100 + }, + "ingredients": [ + { + "item": "spectrum:stratine_ore" + } + ], + "results": [ + { + "item": "spectrum:stratine_fragments", + "count": 6 + } + ], + "fabric:load_conditions": [ + { + "condition": "fabric:all_mods_loaded", + "values": [ + "techreborn" + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/amethyst_glass_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/amethyst_glass_arrow.json new file mode 100644 index 0000000000..8c1f789a5a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/amethyst_glass_arrow.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "glass_arrows", + "time": 200, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "TMT", + " S ", + " F " + ], + "key": { + "T": { + "item": "minecraft:amethyst_shard" + }, + "M": { + "item": "spectrum:malachite_crystal" + }, + "S": { + "item": "minecraft:stick" + }, + "F": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "spectrum:amethyst_glass_arrow", + "count": 4 + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/citrine_glass_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/citrine_glass_arrow.json new file mode 100644 index 0000000000..a153239ff0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/citrine_glass_arrow.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "glass_arrows", + "time": 200, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "TMT", + " S ", + " F " + ], + "key": { + "T": { + "item": "spectrum:citrine_shard" + }, + "M": { + "item": "spectrum:malachite_crystal" + }, + "S": { + "item": "minecraft:stick" + }, + "F": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "spectrum:citrine_glass_arrow", + "count": 4 + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/malachite_glass_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/malachite_glass_arrow.json new file mode 100644 index 0000000000..f3e6886531 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/malachite_glass_arrow.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "glass_arrows", + "time": 200, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "M", + "S", + "F" + ], + "key": { + "M": { + "item": "spectrum:malachite_crystal" + }, + "S": { + "item": "minecraft:stick" + }, + "F": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "spectrum:malachite_glass_arrow", + "count": 4 + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/moonstone_glass_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/moonstone_glass_arrow.json new file mode 100644 index 0000000000..f994933095 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/moonstone_glass_arrow.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "glass_arrows", + "time": 200, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "TMT", + " S ", + " F " + ], + "key": { + "T": { + "item": "spectrum:moonstone_shard" + }, + "M": { + "item": "spectrum:malachite_crystal" + }, + "S": { + "item": "minecraft:stick" + }, + "F": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "spectrum:moonstone_glass_arrow", + "count": 4 + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/onyx_glass_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/onyx_glass_arrow.json new file mode 100644 index 0000000000..4b632be469 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/onyx_glass_arrow.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "glass_arrows", + "time": 200, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "TMT", + " S ", + " F " + ], + "key": { + "T": { + "item": "spectrum:onyx_shard" + }, + "M": { + "item": "spectrum:malachite_crystal" + }, + "S": { + "item": "minecraft:stick" + }, + "F": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "spectrum:onyx_glass_arrow", + "count": 4 + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/topaz_glass_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/topaz_glass_arrow.json new file mode 100644 index 0000000000..8790276c0a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/arrows/topaz_glass_arrow.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "glass_arrows", + "time": 200, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "TMT", + " S ", + " F " + ], + "key": { + "T": { + "item": "spectrum:topaz_shard" + }, + "M": { + "item": "spectrum:malachite_crystal" + }, + "S": { + "item": "minecraft:stick" + }, + "F": { + "item": "minecraft:feather" + } + }, + "result": { + "item": "spectrum:topaz_glass_arrow", + "count": 4 + }, + "required_advancement": "spectrum:progression/malachite/unlock_malachite_tools" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/bag_of_holding.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/bag_of_holding.json new file mode 100644 index 0000000000..98ce936fcd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/bag_of_holding.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:pedestal", + "time": 240, + "tier": "basic", + "magenta": 4, + "yellow": 0, + "cyan": 4, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "OOO", + "TET", + "OOO" + ], + "key": { + "O": { + "item": "minecraft:obsidian" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "T": { + "item": "spectrum:radiating_ender" + } + }, + "result": { + "item": "spectrum:bag_of_holding", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_bag_of_holding" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/bottle_of_fading.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/bottle_of_fading.json index f7f106aa2b..f2f94a75f2 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/bottle_of_fading.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/bottle_of_fading.json @@ -16,7 +16,7 @@ ], "key": { "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "F": { "item": "minecraft:fermented_spider_eye" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/black_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/black_lamp.json index a6ca6255c6..9bf5443eba 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/black_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/black_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/blue_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/blue_lamp.json index fb551c474c..2e81f27dff 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/blue_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/blue_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/brown_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/brown_lamp.json index 458feb5170..7eafb1c032 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/brown_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/brown_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/cyan_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/cyan_lamp.json index 69b03fd91d..673c3b0646 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/cyan_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/cyan_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/gray_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/gray_lamp.json index 0658ad4e08..163630da10 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/gray_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/gray_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/green_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/green_lamp.json index 2b716dac25..31087e12f0 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/green_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/green_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_blue_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_blue_lamp.json index 22be5c1fe5..93747c74d1 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_blue_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_blue_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_gray_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_gray_lamp.json index ed03e9ae12..2c236866fd 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_gray_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/light_gray_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/lime_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/lime_lamp.json index 73e7f01349..bf95cb4459 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/lime_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/lime_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/magenta_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/magenta_lamp.json index 77bf5e8e6b..088512bcbb 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/magenta_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/magenta_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/orange_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/orange_lamp.json index a0a28bbe8d..6e16e91599 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/orange_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/orange_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/pink_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/pink_lamp.json index 74774b1b23..4e4683baea 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/pink_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/pink_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/purple_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/purple_lamp.json index f9b01db0c0..e863467b22 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/purple_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/purple_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/red_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/red_lamp.json index a5c0847ed0..d02152b8b1 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/red_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/red_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/white_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/white_lamp.json index 0cdd5cd164..08d8af8d6c 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/white_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/white_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/yellow_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/yellow_lamp.json index f9854494fb..a4a5fc6f49 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/yellow_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/colored_lamps/yellow_lamp.json @@ -22,7 +22,7 @@ "item": "minecraft:redstone" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/paletur_fragment_block.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/paletur_fragment_block.json deleted file mode 100644 index 0c550ad4ae..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/paletur_fragment_block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 80, - "tier": "basic", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 0.0, - "pattern": [ - "###", - "###", - "###" - ], - "key": { - "#": { - "item": "spectrum:paletur_fragments" - } - }, - "result": { - "item": "spectrum:paletur_fragment_block", - "count": 1 - }, - "required_advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", - "disable_yield_upgrades": true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/paltaeria_fragment_block.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/paltaeria_fragment_block.json new file mode 100644 index 0000000000..09d127f673 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/paltaeria_fragment_block.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 0.0, + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "spectrum:paltaeria_fragments" + } + }, + "result": { + "item": "spectrum:paltaeria_fragment_block", + "count": 1 + }, + "required_advancement": "spectrum:lategame/carry_too_many_low_gravity_blocks", + "disable_yield_upgrades": true +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/scarlet_fragment_block.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/scarlet_fragment_block.json deleted file mode 100644 index 33278b0ce7..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/scarlet_fragment_block.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 80, - "tier": "basic", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 0.0, - "pattern": [ - "###", - "###", - "###" - ], - "key": { - "#": { - "item": "spectrum:scarlet_fragments" - } - }, - "result": { - "item": "spectrum:scarlet_fragment_block", - "count": 1 - }, - "required_advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", - "disable_yield_upgrades": true -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/stratine_fragment_block.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/stratine_fragment_block.json new file mode 100644 index 0000000000..1d4312dc48 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/compacting/stratine_fragment_block.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 0.0, + "pattern": [ + "###", + "###", + "###" + ], + "key": { + "#": { + "item": "spectrum:stratine_fragments" + } + }, + "result": { + "item": "spectrum:stratine_fragment_block", + "count": 1 + }, + "required_advancement": "spectrum:midgame/carry_too_many_heavy_gravity_blocks", + "disable_yield_upgrades": true +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_bag.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_bag.json deleted file mode 100644 index 2110490104..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_bag.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 240, - "tier": "basic", - "magenta": 4, - "yellow": 0, - "cyan": 4, - "black": 0, - "white": 0, - "experience": 2.0, - "pattern": [ - "OOO", - "TET", - "OOO" - ], - "key": { - "O": { - "item": "minecraft:obsidian" - }, - "E": { - "item": "minecraft:ender_eye" - }, - "T": { - "item": "spectrum:ender_treasure" - } - }, - "result": { - "item": "spectrum:ender_bag", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_ender_bag" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_glass.json index a89770eb1c..5d80c309bb 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_glass.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/ender_glass.json @@ -15,7 +15,7 @@ ], "key": { "E": { - "item": "spectrum:ender_treasure" + "item": "spectrum:radiating_ender" }, "G": { "item": "minecraft:glass" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_basalt_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_basalt_lamp.json index 48d0964213..f03f7b5b27 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_basalt_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_basalt_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_basalt" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_calcite_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_calcite_lamp.json index bbe8ccc891..648133c3e0 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_calcite_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/amethyst_calcite_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_basalt_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_basalt_lamp.json index aa4b538e11..730f8b8252 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_basalt_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_basalt_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_basalt" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_calcite_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_calcite_lamp.json index 0c6e97436a..eb11af1699 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_calcite_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/citrine_calcite_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_basalt_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_basalt_lamp.json index d5b1a1d586..2e1c5a32d8 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_basalt_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_basalt_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_basalt" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_calcite_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_calcite_lamp.json index 07e3f5bf47..d78147cb1d 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_calcite_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/moonstone_calcite_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_basalt_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_basalt_lamp.json index eb1d6686ba..5ecf388fc1 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_basalt_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_basalt_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_basalt" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_calcite_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_calcite_lamp.json index 5fb1d2a158..a63fcf53c8 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_calcite_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/onyx_calcite_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_basalt_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_basalt_lamp.json index 4174483e3d..ffd6e0142d 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_basalt_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_basalt_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_basalt" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_calcite_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_calcite_lamp.json index 32b81eb362..385faafe9f 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_calcite_lamp.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/gem_lamps/topaz_calcite_lamp.json @@ -22,7 +22,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glass/moonstone_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glass/moonstone_glass.json index f958851c4a..d597b30806 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glass/moonstone_glass.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glass/moonstone_glass.json @@ -26,5 +26,5 @@ "item": "spectrum:moonstone_glass", "count": 8 }, - "required_advancement": "spectrum:midgame/collect_moonstone_shard" + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_phantom_frame.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_phantom_frame.json new file mode 100644 index 0000000000..dee560495e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_phantom_frame.json @@ -0,0 +1,38 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 4, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "SGS", + "CLC", + "SFS" + ], + "key": { + "L": { + "item": "minecraft:leather" + }, + "S": { + "item": "minecraft:stick" + }, + "C": { + "item": "spectrum:shimmerstone_gem" + }, + "F": { + "item": "minecraft:phantom_membrane" + }, + "G": { + "item": "minecraft:glow_ink_sac" + } + }, + "result": { + "item": "spectrum:glow_phantom_frame", + "count": 1 + }, + "required_advancement": "spectrum:collect_shimmerstone" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_vision_goggles.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_vision_goggles.json new file mode 100644 index 0000000000..661bc18bbf --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_vision_goggles.json @@ -0,0 +1,28 @@ +{ + "type": "spectrum:pedestal", + "time": 200, + "tier": "basic", + "cyan": 0, + "magenta": 2, + "yellow": 2, + "white": 0, + "black": 0, + "experience": 2.0, + "pattern": [ + "R R", + "GRG" + ], + "key": { + "G": { + "item": "minecraft:glow_ink_sac" + }, + "R": { + "item": "minecraft:rabbit_hide" + } + }, + "result": { + "item": "spectrum:glow_vision_goggles", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_glow_vision_goggles" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_vision_helmet.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_vision_helmet.json deleted file mode 100644 index 3b44f384f7..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glow_vision_helmet.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 200, - "tier": "basic", - "cyan": 0, - "magenta": 2, - "yellow": 2, - "white": 0, - "black": 0, - "experience": 2.0, - "pattern": [ - "R R", - "GRG" - ], - "key": { - "G": { - "item": "minecraft:glow_ink_sac" - }, - "R": { - "item": "minecraft:rabbit_hide" - } - }, - "result": { - "item": "spectrum:glow_vision_helmet", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_glow_vision_helmet" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glowing_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glowing_glass.json index d35a50671b..c62349d92c 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/glowing_glass.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/glowing_glass.json @@ -18,12 +18,12 @@ "item": "minecraft:glass" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "spectrum:glowing_glass", "count": 2 }, - "required_advancement": "spectrum:collect_sparklestone" + "required_advancement": "spectrum:collect_shimmerstone" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/invisible_glow_item_frame.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/invisible_glow_item_frame.json deleted file mode 100644 index 407833e505..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/invisible_glow_item_frame.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 4, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "SGS", - "CLC", - "SFS" - ], - "key": { - "L": { - "item": "minecraft:leather" - }, - "S": { - "item": "minecraft:stick" - }, - "C": { - "item": "spectrum:sparklestone_gem" - }, - "F": { - "item": "minecraft:phantom_membrane" - }, - "G": { - "item": "minecraft:glow_ink_sac" - } - }, - "result": { - "item": "spectrum:invisible_glow_item_frame", - "count": 1 - }, - "required_advancement": "spectrum:collect_sparklestone" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/invisible_item_frame.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/invisible_item_frame.json deleted file mode 100644 index 2c1aa48553..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/invisible_item_frame.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 2, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "SSS", - "CLC", - "SFS" - ], - "key": { - "L": { - "item": "minecraft:leather" - }, - "S": { - "item": "minecraft:stick" - }, - "C": { - "item": "spectrum:sparklestone_gem" - }, - "F": { - "item": "minecraft:phantom_membrane" - } - }, - "result": { - "item": "spectrum:invisible_item_frame", - "count": 1 - }, - "required_advancement": "spectrum:collect_sparklestone" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/lucky_roll.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/lucky_roll.json index c7e9a145e2..e5e542311f 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/lucky_roll.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/lucky_roll.json @@ -21,7 +21,7 @@ "item": "spectrum:four_leaf_clover" }, "M": { - "item": "minecraft:milk_bucket" + "tag": "c:milk" }, "S": { "item": "minecraft:sugar" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_amphora.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_amphora.json new file mode 100644 index 0000000000..9d704d05a0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_amphora.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_amphoras", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + "SAS", + "I I", + "PSP" + ], + "key": { + "S": { + "item": "spectrum:chestnut_noxwood_slab" + }, + "P": { + "item": "spectrum:chestnut_noxwood_planks" + }, + "I": { + "item": "minecraft:copper_ingot" + }, + "A": { + "item": "minecraft:paper" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_amphora", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_beam.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_beam.json new file mode 100644 index 0000000000..85026653d2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_beam.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "CC", + "SS", + "CC" + ], + "key": { + "S": { + "item": "spectrum:chestnut_noxcap_stem" + }, + "C": { + "item": "spectrum:chestnut_noxcap_cap" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_beam", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_button.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_button.json new file mode 100644 index 0000000000..09413214e0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_button.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "S" + ], + "key": { + "S": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_button", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_door.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_door.json new file mode 100644 index 0000000000..a11a185b47 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_door.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##", + "##", + "##" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_door", + "count": 3 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_fence.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_fence.json new file mode 100644 index 0000000000..6380a61be0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_fence.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_fence", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_fence_gate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_fence_gate.json new file mode 100644 index 0000000000..90eef2b8f7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_fence_gate.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_fence_gate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_lamp.json new file mode 100644 index 0000000000..5f4b1e2e52 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_lamp.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lamps", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SSS", + "GXG", + "III" + ], + "key": { + "S": { + "item": "spectrum:chestnut_noxcap_stem" + }, + "G": { + "item": "spectrum:chestnut_noxcap_gills" + }, + "I": { + "item": "minecraft:copper_ingot" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_lamp", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_lantern.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_lantern.json new file mode 100644 index 0000000000..15325b640d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_lantern.json @@ -0,0 +1,39 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lanterns", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + " S ", + "GHG", + "CIC" + ], + "key": { + "S": { + "item": "spectrum:chestnut_noxwood_slab" + }, + "G": { + "item": "spectrum:chestnut_noxcap_gills" + }, + "C": { + "item": "spectrum:chestnut_noxcap_cap" + }, + "I": { + "item": "minecraft:copper_ingot" + }, + "H": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_lantern", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_light.json new file mode 100644 index 0000000000..99b4193233 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_light.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SGS", + "GXG", + "SGS" + ], + "key": { + "S": { + "item": "spectrum:chestnut_noxcap_stem" + }, + "G": { + "item": "spectrum:chestnut_noxcap_gills" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_light", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_planks_from_cap.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_planks_from_cap.json new file mode 100644 index 0000000000..9e4c290ad2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_planks_from_cap.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxcap_cap" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_planks", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_planks_from_stem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_planks_from_stem.json new file mode 100644 index 0000000000..5c0b0ed438 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_planks_from_stem.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxcap_stem" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_planks", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_pressure_plate.json new file mode 100644 index 0000000000..53eb4b1c73 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_pressure_plate.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_pressure_plate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_slab.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_slab.json new file mode 100644 index 0000000000..53ddd0a9c1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_slab.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_slab", + "count": 6 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_stairs.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_stairs.json new file mode 100644 index 0000000000..d5f6c756e4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_stairs.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_stairs", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_trapdoor.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_trapdoor.json new file mode 100644 index 0000000000..886e0a3eac --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/chestnut_noxwood_trapdoor.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "spectrum:chestnut_noxwood_planks" + } + }, + "result": { + "item": "spectrum:chestnut_noxwood_trapdoor", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_amphora.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_amphora.json new file mode 100644 index 0000000000..88c4aec4ac --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_amphora.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_amphoras", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + "SAS", + "I I", + "PSP" + ], + "key": { + "S": { + "item": "spectrum:ebony_noxwood_slab" + }, + "P": { + "item": "spectrum:ebony_noxwood_planks" + }, + "I": { + "item": "minecraft:iron_ingot" + }, + "A": { + "item": "minecraft:paper" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_amphora", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_beam.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_beam.json new file mode 100644 index 0000000000..8218ea4f7c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_beam.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "CC", + "SS", + "CC" + ], + "key": { + "S": { + "item": "spectrum:ebony_noxcap_stem" + }, + "C": { + "item": "spectrum:ebony_noxcap_cap" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_beam", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_button.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_button.json new file mode 100644 index 0000000000..0e324fabd8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_button.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "S" + ], + "key": { + "S": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_button", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_door.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_door.json new file mode 100644 index 0000000000..cdda3891f0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_door.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##", + "##", + "##" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_door", + "count": 3 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_fence.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_fence.json new file mode 100644 index 0000000000..5cc75f75d7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_fence.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_fence", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_fence_gate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_fence_gate.json new file mode 100644 index 0000000000..5956879821 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_fence_gate.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_fence_gate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_lamp.json new file mode 100644 index 0000000000..4a4b6ad5fa --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_lamp.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lamps", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SSS", + "GXG", + "III" + ], + "key": { + "S": { + "item": "spectrum:ebony_noxcap_stem" + }, + "G": { + "item": "spectrum:ebony_noxcap_gills" + }, + "I": { + "item": "minecraft:iron_ingot" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_lamp", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_lantern.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_lantern.json new file mode 100644 index 0000000000..cdf5a421e2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_lantern.json @@ -0,0 +1,39 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lanterns", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + " S ", + "GHG", + "CIC" + ], + "key": { + "S": { + "item": "spectrum:ebony_noxwood_slab" + }, + "G": { + "item": "spectrum:ebony_noxcap_gills" + }, + "C": { + "item": "spectrum:ebony_noxcap_cap" + }, + "I": { + "item": "minecraft:iron_ingot" + }, + "H": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_lantern", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_light.json new file mode 100644 index 0000000000..27c0a9fe4a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_light.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SGS", + "GXG", + "SGS" + ], + "key": { + "S": { + "item": "spectrum:ebony_noxcap_stem" + }, + "G": { + "item": "spectrum:ebony_noxcap_gills" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_light", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_planks_from_cap.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_planks_from_cap.json new file mode 100644 index 0000000000..8836e0bdfe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_planks_from_cap.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxcap_cap" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_planks", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_planks_from_stem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_planks_from_stem.json new file mode 100644 index 0000000000..86b94b9a9c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_planks_from_stem.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxcap_stem" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_planks", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_pressure_plate.json new file mode 100644 index 0000000000..05e095147b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_pressure_plate.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_pressure_plate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_slab.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_slab.json new file mode 100644 index 0000000000..14e470c219 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_slab.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_slab", + "count": 6 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_stairs.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_stairs.json new file mode 100644 index 0000000000..6ab5b918ac --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_stairs.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_stairs", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_trapdoor.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_trapdoor.json new file mode 100644 index 0000000000..30817c0455 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ebony_noxwood_trapdoor.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "spectrum:ebony_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ebony_noxwood_trapdoor", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_amphora.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_amphora.json new file mode 100644 index 0000000000..f5d69c5974 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_amphora.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_amphoras", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + "SAS", + "I I", + "PSP" + ], + "key": { + "S": { + "item": "spectrum:ivory_noxwood_slab" + }, + "P": { + "item": "spectrum:ivory_noxwood_planks" + }, + "I": { + "item": "minecraft:quartz" + }, + "A": { + "item": "minecraft:paper" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_amphora", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_beam.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_beam.json new file mode 100644 index 0000000000..36b43f20a4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_beam.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "CC", + "SS", + "CC" + ], + "key": { + "S": { + "item": "spectrum:ivory_noxcap_stem" + }, + "C": { + "item": "spectrum:ivory_noxcap_cap" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_beam", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_button.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_button.json new file mode 100644 index 0000000000..66e78453da --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_button.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "S" + ], + "key": { + "S": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_button", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_door.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_door.json new file mode 100644 index 0000000000..16ccf40efd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_door.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##", + "##", + "##" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_door", + "count": 3 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_fence.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_fence.json new file mode 100644 index 0000000000..81eba8ceb6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_fence.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_fence", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_fence_gate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_fence_gate.json new file mode 100644 index 0000000000..2bb7ec99cf --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_fence_gate.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_fence_gate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_lamp.json new file mode 100644 index 0000000000..4de8640af7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_lamp.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lamps", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SSS", + "GXG", + "III" + ], + "key": { + "S": { + "item": "spectrum:ivory_noxcap_stem" + }, + "G": { + "item": "spectrum:ivory_noxcap_gills" + }, + "I": { + "item": "minecraft:quartz" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_lamp", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_lantern.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_lantern.json new file mode 100644 index 0000000000..65dbb9e555 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_lantern.json @@ -0,0 +1,39 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lanterns", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + " S ", + "GHG", + "CIC" + ], + "key": { + "S": { + "item": "spectrum:ivory_noxwood_slab" + }, + "G": { + "item": "spectrum:ivory_noxcap_gills" + }, + "C": { + "item": "spectrum:ivory_noxcap_cap" + }, + "I": { + "item": "minecraft:quartz" + }, + "H": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_lantern", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_light.json new file mode 100644 index 0000000000..c86432b748 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_light.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SGS", + "GXG", + "SGS" + ], + "key": { + "S": { + "item": "spectrum:ivory_noxcap_stem" + }, + "G": { + "item": "spectrum:ivory_noxcap_gills" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_light", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_planks_from_cap.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_planks_from_cap.json new file mode 100644 index 0000000000..ab1d662019 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_planks_from_cap.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxcap_cap" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_planks", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_planks_from_stem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_planks_from_stem.json new file mode 100644 index 0000000000..b475f2ad5c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_planks_from_stem.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxcap_stem" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_planks", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_pressure_plate.json new file mode 100644 index 0000000000..e62fe60c24 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_pressure_plate.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_pressure_plate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_slab.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_slab.json new file mode 100644 index 0000000000..5eb6ba30c8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_slab.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_slab", + "count": 6 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_stairs.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_stairs.json new file mode 100644 index 0000000000..eadb7a66f5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_stairs.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_stairs", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_trapdoor.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_trapdoor.json new file mode 100644 index 0000000000..36ded0c646 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/ivory_noxwood_trapdoor.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "spectrum:ivory_noxwood_planks" + } + }, + "result": { + "item": "spectrum:ivory_noxwood_trapdoor", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_amphora.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_amphora.json new file mode 100644 index 0000000000..d09c6789fc --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_amphora.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_amphoras", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + "SAS", + "I I", + "PSP" + ], + "key": { + "S": { + "item": "spectrum:slate_noxwood_slab" + }, + "P": { + "item": "spectrum:slate_noxwood_planks" + }, + "I": { + "item": "minecraft:prismarine_crystals" + }, + "A": { + "item": "minecraft:paper" + } + }, + "result": { + "item": "spectrum:slate_noxwood_amphora", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_beam.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_beam.json new file mode 100644 index 0000000000..6abaf47ea5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_beam.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "CC", + "SS", + "CC" + ], + "key": { + "S": { + "item": "spectrum:slate_noxcap_stem" + }, + "C": { + "item": "spectrum:slate_noxcap_cap" + } + }, + "result": { + "item": "spectrum:slate_noxwood_beam", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_button.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_button.json new file mode 100644 index 0000000000..abb61a248f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_button.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "S" + ], + "key": { + "S": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_button", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_door.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_door.json new file mode 100644 index 0000000000..9fc9df99e6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_door.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##", + "##", + "##" + ], + "key": { + "#": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_door", + "count": 3 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_fence.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_fence.json new file mode 100644 index 0000000000..220ab2471e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_fence.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "W#W", + "W#W" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_fence", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_fence_gate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_fence_gate.json new file mode 100644 index 0000000000..c571f0580a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_fence_gate.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "#W#", + "#W#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "W": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_fence_gate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_lamp.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_lamp.json new file mode 100644 index 0000000000..c094d9f2ac --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_lamp.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lamps", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SSS", + "GXG", + "III" + ], + "key": { + "S": { + "item": "spectrum:slate_noxcap_stem" + }, + "G": { + "item": "spectrum:slate_noxcap_gills" + }, + "I": { + "item": "minecraft:prismarine_crystals" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:slate_noxwood_lamp", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_lantern.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_lantern.json new file mode 100644 index 0000000000..30db244c45 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_lantern.json @@ -0,0 +1,39 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lanterns", + "time": 240, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 1.0, + "pattern": [ + " S ", + "GHG", + "CIC" + ], + "key": { + "S": { + "item": "spectrum:slate_noxwood_slab" + }, + "G": { + "item": "spectrum:slate_noxcap_gills" + }, + "C": { + "item": "spectrum:slate_noxcap_cap" + }, + "I": { + "item": "minecraft:prismarine_crystals" + }, + "H": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:slate_noxwood_lantern", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_light.json new file mode 100644 index 0000000000..4fd72c209f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_light.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "SGS", + "GXG", + "SGS" + ], + "key": { + "S": { + "item": "spectrum:slate_noxcap_stem" + }, + "G": { + "item": "spectrum:slate_noxcap_gills" + }, + "X": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:slate_noxwood_light", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_planks_from_cap.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_planks_from_cap.json new file mode 100644 index 0000000000..8c8c156316 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_planks_from_cap.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:slate_noxcap_cap" + } + }, + "result": { + "item": "spectrum:slate_noxwood_planks", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_planks_from_stem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_planks_from_stem.json new file mode 100644 index 0000000000..de66ea9b07 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_planks_from_stem.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_planks", + "time": 40, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.0, + "pattern": [ + "#" + ], + "key": { + "#": { + "item": "spectrum:slate_noxcap_stem" + } + }, + "result": { + "item": "spectrum:slate_noxwood_planks", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_pressure_plate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_pressure_plate.json new file mode 100644 index 0000000000..cb56b4fb17 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_pressure_plate.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "##" + ], + "key": { + "#": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_pressure_plate", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_slab.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_slab.json new file mode 100644 index 0000000000..9899b8882d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_slab.json @@ -0,0 +1,25 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_slab", + "count": 6 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_stairs.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_stairs.json new file mode 100644 index 0000000000..d085fe9c0c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_stairs.json @@ -0,0 +1,27 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_stairs", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_trapdoor.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_trapdoor.json new file mode 100644 index 0000000000..298c78b4ce --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/noxwood/slate_noxwood_trapdoor.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:pedestal", + "group": "noxwood_decorations", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 0.1, + "pattern": [ + "###", + "###" + ], + "key": { + "#": { + "item": "spectrum:slate_noxwood_planks" + } + }, + "result": { + "item": "spectrum:slate_noxwood_trapdoor", + "count": 2 + }, + "required_advancement": "spectrum:lategame/collect_noxwood" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/phantom_frame.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/phantom_frame.json new file mode 100644 index 0000000000..b5701e1c3a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/phantom_frame.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 2, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "SSS", + "CLC", + "SFS" + ], + "key": { + "L": { + "item": "minecraft:leather" + }, + "S": { + "item": "minecraft:stick" + }, + "C": { + "item": "spectrum:shimmerstone_gem" + }, + "F": { + "item": "minecraft:phantom_membrane" + } + }, + "result": { + "item": "spectrum:phantom_frame", + "count": 1 + }, + "required_advancement": "spectrum:collect_shimmerstone" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/present.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/present.json index a7eebb1a55..f6261e3b53 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/present.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/present.json @@ -18,7 +18,7 @@ "item": "minecraft:paper" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "G": { "item": "minecraft:gunpowder" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_basalt_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_basalt_from_cluster.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_basalt_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_basalt_from_cluster.json index 01e21dafdf..e7d6dc3ce7 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_basalt_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_basalt_from_cluster.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "amethyst_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 4, "yellow": 0, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_basalt_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_basalt_from_shards.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_basalt_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_basalt_from_shards.json index bd53d4d4f7..1304b02551 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_basalt_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_basalt_from_shards.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "amethyst_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 1, "yellow": 0, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_calcite_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_calcite_from_cluster.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_calcite_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_calcite_from_cluster.json index 8156a1f096..2acbe509b4 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_calcite_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_calcite_from_cluster.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "amethyst_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 4, "yellow": 0, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_calcite_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_calcite_from_shards.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_calcite_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_calcite_from_shards.json index 910d68dfa5..755482a2c8 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/amethyst_chiseled_calcite_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/amethyst_chiseled_calcite_from_shards.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "amethyst_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 1, "yellow": 0, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/azurite_chiseled_basalt.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/azurite_chiseled_basalt.json new file mode 100644 index 0000000000..17f9251c67 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/azurite_chiseled_basalt.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "magenta": 4, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "WWW", + "WXW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_basalt" + }, + "X": { + "item": "spectrum:refined_azurite" + } + }, + "result": { + "item": "spectrum:azurite_chiseled_basalt", + "count": 4 + }, + "required_advancement": "spectrum:midgame/create_refined_azurite" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/azurite_chiseled_calcite.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/azurite_chiseled_calcite.json new file mode 100644 index 0000000000..97d8a71b3c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/azurite_chiseled_calcite.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "magenta": 4, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "WWW", + "WXW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_calcite" + }, + "X": { + "item": "spectrum:refined_azurite" + } + }, + "result": { + "item": "spectrum:azurite_chiseled_calcite", + "count": 4 + }, + "required_advancement": "spectrum:midgame/create_refined_azurite" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_basalt_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_basalt_from_cluster.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_basalt_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_basalt_from_cluster.json index c219939de0..7c3ac3a63d 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_basalt_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_basalt_from_cluster.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "citrine_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 4, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_basalt_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_basalt_from_shards.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_basalt_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_basalt_from_shards.json index 381abd3cc7..5ef9f6143a 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_basalt_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_basalt_from_shards.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "citrine_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 1, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_calcite_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_calcite_from_cluster.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_calcite_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_calcite_from_cluster.json index 1711e5ff06..8756b8d523 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_calcite_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_calcite_from_cluster.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "citrine_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 4, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_calcite_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_calcite_from_shards.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_calcite_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_calcite_from_shards.json index c9645b612f..d4b70897a7 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/citrine_chiseled_calcite_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/citrine_chiseled_calcite_from_shards.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "citrine_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 1, "cyan": 0, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/malachite_chiseled_basalt.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/malachite_chiseled_basalt.json new file mode 100644 index 0000000000..6b8fc2b573 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/malachite_chiseled_basalt.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "magenta": 4, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "WWW", + "WXW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_basalt" + }, + "X": { + "item": "spectrum:malachite_crystal" + } + }, + "result": { + "item": "spectrum:malachite_chiseled_basalt", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_malachite" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/malachite_chiseled_calcite.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/malachite_chiseled_calcite.json new file mode 100644 index 0000000000..8a0b7193c4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/malachite_chiseled_calcite.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "time": 80, + "tier": "basic", + "magenta": 4, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "WWW", + "WXW", + "WWW" + ], + "key": { + "W": { + "item": "spectrum:polished_calcite" + }, + "X": { + "item": "spectrum:malachite_crystal" + } + }, + "result": { + "item": "spectrum:malachite_chiseled_calcite", + "count": 4 + }, + "required_advancement": "spectrum:lategame/collect_malachite" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_basalt_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_basalt_from_cluster.json similarity index 86% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_basalt_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_basalt_from_cluster.json index 435d114c70..95c237de55 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_basalt_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_basalt_from_cluster.json @@ -26,5 +26,5 @@ "item": "spectrum:moonstone_chiseled_basalt", "count": 4 }, - "required_advancement": "spectrum:midgame/collect_moonstone_shard" + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_basalt_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_basalt_from_shards.json similarity index 86% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_basalt_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_basalt_from_shards.json index 6358564df5..f2320f0313 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_basalt_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_basalt_from_shards.json @@ -26,5 +26,5 @@ "item": "spectrum:moonstone_chiseled_basalt", "count": 1 }, - "required_advancement": "spectrum:midgame/collect_moonstone_shard" + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_calcite_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_calcite_from_cluster.json similarity index 86% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_calcite_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_calcite_from_cluster.json index 53947cdbe6..7f7619c60e 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_calcite_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_calcite_from_cluster.json @@ -26,5 +26,5 @@ "item": "spectrum:moonstone_chiseled_calcite", "count": 4 }, - "required_advancement": "spectrum:midgame/collect_moonstone_shard" + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_calcite_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_calcite_from_shards.json similarity index 86% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_calcite_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_calcite_from_shards.json index 5bde3c7ac5..ee7e244936 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/moonstone_chiseled_calcite_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/moonstone_chiseled_calcite_from_shards.json @@ -26,5 +26,5 @@ "item": "spectrum:moonstone_chiseled_calcite", "count": 1 }, - "required_advancement": "spectrum:midgame/collect_moonstone_shard" + "required_advancement": "spectrum:lategame/collect_moonstone_shard" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_basalt_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_basalt_from_cluster.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_basalt_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_basalt_from_cluster.json diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_basalt_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_basalt_from_shards.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_basalt_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_basalt_from_shards.json diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_calcite_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_calcite_from_cluster.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_calcite_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_calcite_from_cluster.json diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_calcite_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_calcite_from_shards.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/onyx_chiseled_calcite_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/onyx_chiseled_calcite_from_shards.json diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_basalt_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_basalt_from_cluster.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_basalt_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_basalt_from_cluster.json index da90bc813d..6519db1a05 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_basalt_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_basalt_from_cluster.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "topaz_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 0, "cyan": 4, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_basalt_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_basalt_from_shards.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_basalt_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_basalt_from_shards.json index a6a6d5df4b..6765a8b6f9 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_basalt_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_basalt_from_shards.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "topaz_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 0, "cyan": 1, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_calcite_from_cluster.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_calcite_from_cluster.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_calcite_from_cluster.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_calcite_from_cluster.json index d54d7f179d..7810fa186b 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_calcite_from_cluster.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_calcite_from_cluster.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "topaz_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 0, "cyan": 4, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_calcite_from_shards.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_calcite_from_shards.json similarity index 96% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_calcite_from_shards.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_calcite_from_shards.json index 776816d76a..40a5a30787 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/runes/topaz_chiseled_calcite_from_shards.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/runes/topaz_chiseled_calcite_from_shards.json @@ -2,7 +2,7 @@ "type": "spectrum:pedestal", "group": "topaz_runes", "time": 80, - "tier": "simple", + "tier": "basic", "magenta": 0, "yellow": 0, "cyan": 1, diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/andesite_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/andesite_shimmerstone_light.json new file mode 100644 index 0000000000..c59071f211 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/andesite_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "minecraft:polished_andesite" + } + }, + "result": { + "item": "spectrum:andesite_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/basalt_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/basalt_shimmerstone_light.json new file mode 100644 index 0000000000..557b2bf83b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/basalt_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "spectrum:polished_basalt" + } + }, + "result": { + "item": "spectrum:basalt_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/blackslag_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/blackslag_shimmerstone_light.json new file mode 100644 index 0000000000..3fdb42acf8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/blackslag_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "spectrum:polished_blackslag" + } + }, + "result": { + "item": "spectrum:blackslag_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_blackslag_shimmerstone_light" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/calcite_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/calcite_shimmerstone_light.json new file mode 100644 index 0000000000..7ff34db970 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/calcite_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "spectrum:polished_calcite" + } + }, + "result": { + "item": "spectrum:calcite_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/deepslate_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/deepslate_shimmerstone_light.json new file mode 100644 index 0000000000..0ce13e9bde --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/deepslate_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "minecraft:polished_deepslate" + } + }, + "result": { + "item": "spectrum:deepslate_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/diorite_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/diorite_shimmerstone_light.json new file mode 100644 index 0000000000..6acd1e196f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/diorite_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "minecraft:polished_diorite" + } + }, + "result": { + "item": "spectrum:diorite_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/granite_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/granite_shimmerstone_light.json new file mode 100644 index 0000000000..7b41a1a48d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/granite_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "minecraft:polished_granite" + } + }, + "result": { + "item": "spectrum:granite_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/stone_shimmerstone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/stone_shimmerstone_light.json new file mode 100644 index 0000000000..28fa3e7875 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/shimmerstone_lights/stone_shimmerstone_light.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "shimmerstone_lights", + "time": 80, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 1, + "white": 0, + "black": 0, + "experience": 0.5, + "pattern": [ + "TST", + "SSS", + "TST" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "T": { + "item": "minecraft:smooth_stone" + } + }, + "result": { + "item": "spectrum:stone_shimmerstone_light", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_shimmerstone_lights" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/andesite_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/andesite_sparklestone_light.json deleted file mode 100644 index a248ccc04f..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/andesite_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "minecraft:polished_andesite" - } - }, - "result": { - "item": "spectrum:andesite_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/basalt_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/basalt_sparklestone_light.json deleted file mode 100644 index 97d3bb36b3..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/basalt_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "spectrum:polished_basalt" - } - }, - "result": { - "item": "spectrum:basalt_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/calcite_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/calcite_sparklestone_light.json deleted file mode 100644 index ba065f8626..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/calcite_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "spectrum:polished_calcite" - } - }, - "result": { - "item": "spectrum:calcite_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/deepslate_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/deepslate_sparklestone_light.json deleted file mode 100644 index 5440fac07b..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/deepslate_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "minecraft:polished_deepslate" - } - }, - "result": { - "item": "spectrum:deepslate_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/diorite_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/diorite_sparklestone_light.json deleted file mode 100644 index 97992656c2..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/diorite_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "minecraft:polished_diorite" - } - }, - "result": { - "item": "spectrum:diorite_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/granite_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/granite_sparklestone_light.json deleted file mode 100644 index c769111238..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/granite_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "minecraft:polished_granite" - } - }, - "result": { - "item": "spectrum:granite_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/stone_sparklestone_light.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/stone_sparklestone_light.json deleted file mode 100644 index 1748d5f1b5..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/sparklestone_lights/stone_sparklestone_light.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "sparklestone_lights", - "time": 80, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 1, - "white": 0, - "black": 0, - "experience": 0.5, - "pattern": [ - "TST", - "SSS", - "TST" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "T": { - "item": "minecraft:smooth_stone" - } - }, - "result": { - "item": "spectrum:stone_sparklestone_light", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_sparklestone_lights" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/fortune_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/fortune_pickaxe.json deleted file mode 100644 index 6036d4721a..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/fortune_pickaxe.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 600, - "tier": "basic", - "cyan": 0, - "magenta": 0, - "yellow": 8, - "white": 0, - "black": 0, - "experience": 2, - "pattern": [ - "CGC", - " S ", - " S " - ], - "key": { - "S": { - "item": "minecraft:smooth_basalt" - }, - "C": { - "item": "spectrum:citrine_shard" - }, - "G": { - "item": "spectrum:sparklestone_gem" - } - }, - "result": { - "item": "spectrum:fortune_pickaxe", - "nbt": "{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", - "count": 1 - }, - "required_advancement": "spectrum:progression/tools/unlock_fortune_pickaxe" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lagoon_rod.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lagoon_rod.json index 0e6e79376b..5aaddcda44 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lagoon_rod.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lagoon_rod.json @@ -25,7 +25,9 @@ } }, "result": { - "item": "spectrum:lagoon_rod" + "item": "spectrum:lagoon_rod", + "nbt": "{Enchantments: [{id: \"minecraft:lure\", lvl: 3s}]}", + "count": 1 }, "required_advancement": "spectrum:progression/unlock_lagoon_rod" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/looting_falchion.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/looting_falchion.json deleted file mode 100644 index 57efb5a334..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/looting_falchion.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 600, - "tier": "basic", - "cyan": 0, - "magenta": 8, - "yellow": 0, - "white": 0, - "black": 0, - "experience": 2.0, - "pattern": [ - " A ", - " A ", - " S " - ], - "key": { - "S": { - "item": "minecraft:smooth_basalt" - }, - "A": { - "item": "minecraft:amethyst_shard" - } - }, - "result": { - "item": "spectrum:looting_falchion", - "nbt": "{Enchantments: [{id: \"minecraft:looting\", lvl: 3s}]}", - "count": 1 - }, - "required_advancement": "spectrum:progression/tools/unlock_looting_falchion" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lucky_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lucky_pickaxe.json new file mode 100644 index 0000000000..10bb68dd51 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/lucky_pickaxe.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "time": 600, + "tier": "basic", + "cyan": 0, + "magenta": 0, + "yellow": 8, + "white": 0, + "black": 0, + "experience": 2, + "pattern": [ + "CGC", + " S ", + " S " + ], + "key": { + "S": { + "item": "minecraft:smooth_basalt" + }, + "C": { + "item": "spectrum:citrine_shard" + }, + "G": { + "item": "spectrum:shimmerstone_gem" + } + }, + "result": { + "item": "spectrum:lucky_pickaxe", + "nbt": "{Enchantments: [{id: \"minecraft:fortune\", lvl: 3s}]}", + "count": 1 + }, + "required_advancement": "spectrum:progression/tools/unlock_lucky_pickaxe" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/razor_falchion.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/razor_falchion.json new file mode 100644 index 0000000000..a70f8bfe52 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/razor_falchion.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "time": 600, + "tier": "basic", + "cyan": 0, + "magenta": 8, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 2.0, + "pattern": [ + " A ", + " A ", + " S " + ], + "key": { + "S": { + "item": "minecraft:smooth_basalt" + }, + "A": { + "item": "minecraft:amethyst_shard" + } + }, + "result": { + "item": "spectrum:razor_falchion", + "nbt": "{Enchantments: [{id: \"minecraft:looting\", lvl: 3s}]}", + "count": 1 + }, + "required_advancement": "spectrum:progression/tools/unlock_razor_falchion" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/silker_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/silker_pickaxe.json deleted file mode 100644 index 11b0c92dce..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/silker_pickaxe.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 600, - "tier": "basic", - "cyan": 8, - "magenta": 0, - "yellow": 0, - "white": 0, - "black": 0, - "experience": 2, - "pattern": [ - "TMT", - " S ", - " S " - ], - "key": { - "S": { - "item": "minecraft:smooth_basalt" - }, - "T": { - "item": "spectrum:topaz_shard" - }, - "M": { - "item": "spectrum:mermaids_gem" - } - }, - "result": { - "item": "spectrum:silker_pickaxe", - "nbt": "{Enchantments: [{id: \"minecraft:silk_touch\", lvl: 1s}]}", - "count": 1 - }, - "required_advancement": "spectrum:progression/tools/unlock_silker_pickaxe" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/tender_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/tender_pickaxe.json new file mode 100644 index 0000000000..6ce0af4afe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/tools/tender_pickaxe.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "time": 600, + "tier": "basic", + "cyan": 8, + "magenta": 0, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 2, + "pattern": [ + "TMT", + " S ", + " S " + ], + "key": { + "S": { + "item": "minecraft:smooth_basalt" + }, + "T": { + "item": "spectrum:topaz_shard" + }, + "M": { + "item": "spectrum:mermaids_gem" + } + }, + "result": { + "item": "spectrum:tender_pickaxe", + "nbt": "{Enchantments: [{id: \"minecraft:silk_touch\", lvl: 1s}]}", + "count": 1 + }, + "required_advancement": "spectrum:progression/tools/unlock_tender_pickaxe" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier1/vanilla/spectral_arrow.json b/src/main/resources/data/spectrum/recipes/pedestal/tier1/vanilla/spectral_arrow.json index 0ccd9d5fbf..1c6c6abdee 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier1/vanilla/spectral_arrow.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier1/vanilla/spectral_arrow.json @@ -18,12 +18,12 @@ "item": "minecraft:arrow" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { "item": "minecraft:spectral_arrow", "count": 2 }, - "required_advancement": "spectrum:collect_sparklestone" + "required_advancement": "spectrum:collect_shimmerstone" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/bottomless_bundle.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/bottomless_bundle.json new file mode 100644 index 0000000000..0e3de11e6e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/bottomless_bundle.json @@ -0,0 +1,29 @@ +{ + "type": "spectrum:pedestal", + "time": 240, + "tier": "simple", + "magenta": 0, + "yellow": 0, + "cyan": 8, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "QRQ", + "RQR", + "RRR" + ], + "key": { + "Q": { + "item": "spectrum:quitoxic_powder" + }, + "R": { + "item": "minecraft:rabbit_hide" + } + }, + "result": { + "item": "spectrum:bottomless_bundle", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_bottomless_bundle" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/constructors_staff.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/constructors_staff.json new file mode 100644 index 0000000000..7388d5c7dd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/constructors_staff.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:pedestal", + "time": 1200, + "tier": "simple", + "cyan": 6, + "magenta": 0, + "yellow": 2, + "white": 0, + "black": 0, + "experience": 2.0, + "pattern": [ + " OB", + " SO", + "S " + ], + "key": { + "S": { + "item": "minecraft:stick" + }, + "O": { + "item": "spectrum:orange_pigment" + }, + "B": { + "item": "spectrum:stratine_fragments" + } + }, + "result": { + "item": "spectrum:constructors_staff", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_constructors_staff" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_boots.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_boots.json deleted file mode 100644 index 7c935f66c7..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_boots.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1600, - "tier": "simple", - "cyan": 4, - "magenta": 4, - "yellow": 4, - "black": 0, - "white": 0, - "experience": 2.0, - "pattern": [ - "AGA", - "T T" - ], - "key": { - "T": { - "item": "spectrum:topaz_shard" - }, - "A": { - "item": "minecraft:amethyst_shard" - }, - "G": { - "item": "minecraft:ghast_tear" - } - }, - "result": { - "item": "spectrum:emergency_boots", - "count": 1 - }, - "required_advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_chestplate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_chestplate.json deleted file mode 100644 index aa74730227..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_chestplate.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1600, - "tier": "simple", - "cyan": 4, - "magenta": 4, - "yellow": 4, - "black": 0, - "white": 0, - "experience": 2.0, - "pattern": [ - "C C", - "ANA", - "TAT" - ], - "key": { - "T": { - "item": "spectrum:topaz_shard" - }, - "A": { - "item": "minecraft:amethyst_shard" - }, - "C": { - "item": "spectrum:citrine_shard" - }, - "N": { - "item": "minecraft:nautilus_shell" - } - }, - "result": { - "item": "spectrum:emergency_chestplate", - "count": 1 - }, - "required_advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_helmet.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_helmet.json deleted file mode 100644 index 93216a11d7..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_helmet.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1600, - "tier": "simple", - "cyan": 4, - "magenta": 4, - "yellow": 4, - "black": 0, - "white": 0, - "experience": 2.0, - "pattern": [ - "ACA", - "TET" - ], - "key": { - "T": { - "item": "spectrum:topaz_shard" - }, - "A": { - "item": "minecraft:amethyst_shard" - }, - "C": { - "item": "spectrum:citrine_shard" - }, - "E": { - "item": "minecraft:ender_eye" - } - }, - "result": { - "item": "spectrum:emergency_helmet", - "count": 1 - }, - "required_advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_leggings.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_leggings.json deleted file mode 100644 index ce4282be18..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/emergency_armor/emergency_leggings.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1600, - "tier": "simple", - "cyan": 4, - "magenta": 4, - "yellow": 4, - "black": 0, - "white": 0, - "experience": 2.0, - "pattern": [ - "APA", - "T T", - "C C" - ], - "key": { - "T": { - "item": "spectrum:topaz_shard" - }, - "A": { - "item": "minecraft:amethyst_shard" - }, - "C": { - "item": "spectrum:citrine_shard" - }, - "P": { - "item": "minecraft:phantom_membrane" - } - }, - "result": { - "item": "spectrum:emergency_leggings", - "count": 1 - }, - "required_advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_dropper.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_dropper.json index 157bf173f5..df061f5ee5 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_dropper.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_dropper.json @@ -18,7 +18,7 @@ "item": "spectrum:blue_pigment" }, "S": { - "item": "spectrum:ender_treasure" + "item": "spectrum:radiating_ender" }, "B": { "item": "minecraft:polished_blackstone" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_hopper.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_hopper.json index b4246446b1..2e1522fae2 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_hopper.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ender_hopper.json @@ -18,7 +18,7 @@ "item": "spectrum:blue_pigment" }, "S": { - "item": "spectrum:ender_treasure" + "item": "spectrum:radiating_ender" }, "B": { "item": "minecraft:polished_blackstone" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/dragonbone_broth.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/dragonbone_broth.json new file mode 100644 index 0000000000..8d12a340fe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/dragonbone_broth.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:pedestal", + "time": 120, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "YYY", + "DDD", + "VBV" + ], + "key": { + "Y": { + "item": "spectrum:prickly_bayleaf" + }, + "D": { + "item": "spectrum:dragonbone_shard" + }, + "V": { + "tag": "c:vegetables" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "result": { + "item": "spectrum:dragonbone_broth", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_dragonbone_broth" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_apple_pie.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_apple_pie.json new file mode 100644 index 0000000000..109e74aa2c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_apple_pie.json @@ -0,0 +1,38 @@ +{ + "type": "spectrum:pedestal", + "time": 120, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "YPY", + "SMS", + "AAA" + ], + "key": { + "Y": { + "item": "spectrum:myceylon" + }, + "M": { + "tag": "c:milks" + }, + "S": { + "item": "minecraft:sugar" + }, + "P": { + "item": "minecraft:pumpkin" + }, + "A": { + "item": "spectrum:amaranth_grains" + } + }, + "result": { + "item": "spectrum:myceylon_pumpkin_pie", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_myceylon_pastries" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_cookie.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_cookie.json new file mode 100644 index 0000000000..e98f190aab --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_cookie.json @@ -0,0 +1,28 @@ +{ + "type": "spectrum:pedestal", + "time": 120, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "YYY", + "AAA" + ], + "key": { + "Y": { + "item": "spectrum:myceylon" + }, + "A": { + "item": "spectrum:amaranth_grains" + } + }, + "result": { + "item": "spectrum:myceylon_cookie", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_myceylon_pastries" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_pumpkin_pie.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_pumpkin_pie.json new file mode 100644 index 0000000000..45df4e44b0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/myceylon_pumpkin_pie.json @@ -0,0 +1,38 @@ +{ + "type": "spectrum:pedestal", + "time": 120, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "YPY", + "SMS", + "AAA" + ], + "key": { + "Y": { + "item": "spectrum:myceylon" + }, + "M": { + "tag": "c:milks" + }, + "S": { + "item": "minecraft:sugar" + }, + "P": { + "item": "minecraft:apple" + }, + "A": { + "item": "spectrum:amaranth_grains" + } + }, + "result": { + "item": "spectrum:myceylon_apple_pie", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_myceylon_pastries" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/spiked_potatoes.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/spiked_potatoes.json new file mode 100644 index 0000000000..632ef9446f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/spiked_potatoes.json @@ -0,0 +1,28 @@ +{ + "type": "spectrum:pedestal", + "time": 120, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "B", + "P" + ], + "key": { + "B": { + "item": "spectrum:prickly_bayleaf" + }, + "P": { + "item": "minecraft:potato" + } + }, + "result": { + "item": "spectrum:spiked_potatoes", + "count": 1 + }, + "required_advancement": "spectrum:lategame/collect_prickly_bayleaf" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/triple_meat_pot_stew.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/triple_meat_pot_stew.json new file mode 100644 index 0000000000..f8137e0919 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/food/triple_meat_pot_stew.json @@ -0,0 +1,44 @@ +{ + "type": "spectrum:pedestal", + "time": 120, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 0, + "experience": 4.0, + "pattern": [ + "PWP", + "MFL", + "CBC" + ], + "key": { + "P": { + "item": "spectrum:prickly_bayleaf" + }, + "C": { + "item": "spectrum:clotted_cream" + }, + "M": { + "tag": "spectrum:common_meats" + }, + "F": { + "tag": "spectrum:water_meats" + }, + "L": { + "tag": "spectrum:lean_meats" + }, + "W": { + "tag": "spectrum:drinkable_spirits" + }, + "B": { + "item": "minecraft:bowl" + } + }, + "result": { + "item": "spectrum:triple_meat_pot_stew", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_triple_meat_pot_stew" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/ferocious_chestplate.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/ferocious_chestplate.json new file mode 100644 index 0000000000..f9d4b77048 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/ferocious_chestplate.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:pedestal", + "time": 1600, + "tier": "simple", + "cyan": 4, + "magenta": 4, + "yellow": 4, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "C C", + "ANA", + "TAT" + ], + "key": { + "T": { + "item": "spectrum:topaz_shard" + }, + "A": { + "item": "minecraft:amethyst_shard" + }, + "C": { + "item": "spectrum:citrine_shard" + }, + "N": { + "item": "minecraft:nautilus_shell" + } + }, + "result": { + "item": "spectrum:ferocious_chestplate", + "count": 1 + }, + "required_advancement": "spectrum:hidden/collect_vanilla/collect_nautilus_shell" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/fetchling_helmet.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/fetchling_helmet.json new file mode 100644 index 0000000000..5d558e59dd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/fetchling_helmet.json @@ -0,0 +1,34 @@ +{ + "type": "spectrum:pedestal", + "time": 1600, + "tier": "simple", + "cyan": 4, + "magenta": 4, + "yellow": 4, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "ACA", + "TET" + ], + "key": { + "T": { + "item": "spectrum:topaz_shard" + }, + "A": { + "item": "minecraft:amethyst_shard" + }, + "C": { + "item": "spectrum:citrine_shard" + }, + "E": { + "item": "minecraft:ender_eye" + } + }, + "result": { + "item": "spectrum:fetchling_helmet", + "count": 1 + }, + "required_advancement": "spectrum:hidden/collect_vanilla/collect_ender_eye" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/oread_boots.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/oread_boots.json new file mode 100644 index 0000000000..c099a903bb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/oread_boots.json @@ -0,0 +1,31 @@ +{ + "type": "spectrum:pedestal", + "time": 1600, + "tier": "simple", + "cyan": 4, + "magenta": 4, + "yellow": 4, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "AGA", + "T T" + ], + "key": { + "T": { + "item": "spectrum:topaz_shard" + }, + "A": { + "item": "minecraft:amethyst_shard" + }, + "G": { + "item": "minecraft:ghast_tear" + } + }, + "result": { + "item": "spectrum:oread_boots", + "count": 1 + }, + "required_advancement": "spectrum:hidden/collect_vanilla/collect_ghast_tear" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/sylph_leggings.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/sylph_leggings.json new file mode 100644 index 0000000000..9c45e4ebf0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/gemstone_armor/sylph_leggings.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:pedestal", + "time": 1600, + "tier": "simple", + "cyan": 4, + "magenta": 4, + "yellow": 4, + "black": 0, + "white": 0, + "experience": 2.0, + "pattern": [ + "APA", + "T T", + "C C" + ], + "key": { + "T": { + "item": "spectrum:topaz_shard" + }, + "A": { + "item": "minecraft:amethyst_shard" + }, + "C": { + "item": "spectrum:citrine_shard" + }, + "P": { + "item": "minecraft:phantom_membrane" + } + }, + "result": { + "item": "spectrum:sylph_leggings", + "count": 1 + }, + "required_advancement": "spectrum:hidden/collect_vanilla/collect_phantom_membrane" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_assortment.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_assortment.json index 0c28ba37a6..e6ecd193b7 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_assortment.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_assortment.json @@ -24,7 +24,7 @@ "item": "spectrum:four_leaf_clover" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_flask.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_flask.json index a9fd8baceb..aa10878011 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_flask.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/ink_flask.json @@ -21,7 +21,7 @@ "item": "minecraft:glass" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/item_roundel.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/item_roundel.json index 677f0d0d89..f48836dfc8 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/item_roundel.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/item_roundel.json @@ -21,7 +21,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/light_staff.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/light_staff.json deleted file mode 100644 index 0bee564203..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/light_staff.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1200, - "tier": "simple", - "cyan": 0, - "magenta": 0, - "yellow": 8, - "white": 0, - "black": 0, - "experience": 2.0, - "pattern": [ - " BG", - " SB", - "S " - ], - "key": { - "S": { - "item": "minecraft:stick" - }, - "G": { - "item": "spectrum:sparklestone_gem" - }, - "B": { - "item": "spectrum:blue_pigment" - } - }, - "result": { - "item": "spectrum:light_staff", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_light_staff" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/oblivion_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/oblivion_pickaxe.json new file mode 100644 index 0000000000..81f207affe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/oblivion_pickaxe.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "time": 1200, + "tier": "simple", + "cyan": 2, + "magenta": 4, + "yellow": 0, + "white": 0, + "black": 0, + "experience": 2.0, + "pattern": [ + "PQP", + " S ", + " S " + ], + "key": { + "S": { + "item": "minecraft:smooth_basalt" + }, + "Q": { + "item": "spectrum:quitoxic_powder" + }, + "P": { + "item": "minecraft:phantom_membrane" + } + }, + "result": { + "item": "spectrum:oblivion_pickaxe", + "nbt": "{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", + "count": 1 + }, + "required_advancement": "spectrum:progression/tools/unlock_oblivion_pickaxe" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/particle_spawner.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/particle_spawner.json index 06140bc31d..372217fdba 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/particle_spawner.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/particle_spawner.json @@ -18,7 +18,7 @@ "tag": "spectrum:pigments" }, "S": { - "item": "spectrum:shooting_star" + "item": "spectrum:star_fragment" }, "X": { "item": "spectrum:polished_calcite" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/placement_staff.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/placement_staff.json deleted file mode 100644 index fb80b4ac1b..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/placement_staff.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1200, - "tier": "simple", - "cyan": 6, - "magenta": 0, - "yellow": 2, - "white": 0, - "black": 0, - "experience": 2.0, - "pattern": [ - " OB", - " SO", - "S " - ], - "key": { - "S": { - "item": "minecraft:stick" - }, - "O": { - "item": "spectrum:orange_pigment" - }, - "B": { - "item": "spectrum:scarlet_fragments" - } - }, - "result": { - "item": "spectrum:placement_staff", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_placement_staff" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/radiance_staff.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/radiance_staff.json new file mode 100644 index 0000000000..6afe569026 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier2/radiance_staff.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:pedestal", + "time": 1200, + "tier": "simple", + "cyan": 0, + "magenta": 0, + "yellow": 8, + "white": 0, + "black": 0, + "experience": 2.0, + "pattern": [ + " BG", + " SB", + "S " + ], + "key": { + "S": { + "item": "minecraft:stick" + }, + "G": { + "item": "spectrum:shimmerstone_gem" + }, + "B": { + "item": "spectrum:blue_pigment" + } + }, + "result": { + "item": "spectrum:radiance_staff", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_radiance_staff" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/void_bundle.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/void_bundle.json deleted file mode 100644 index 2dcafaa982..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/void_bundle.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 240, - "tier": "simple", - "magenta": 0, - "yellow": 0, - "cyan": 8, - "black": 0, - "white": 0, - "experience": 2.0, - "pattern": [ - "QRQ", - "RQR", - "RRR" - ], - "key": { - "Q": { - "item": "spectrum:quitoxic_powder" - }, - "R": { - "item": "minecraft:rabbit_hide" - } - }, - "result": { - "item": "spectrum:void_bundle", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_void_bundle" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/voiding_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier2/voiding_pickaxe.json deleted file mode 100644 index c7f6c7242d..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier2/voiding_pickaxe.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1200, - "tier": "simple", - "cyan": 2, - "magenta": 4, - "yellow": 0, - "white": 0, - "black": 0, - "experience": 2.0, - "pattern": [ - "PQP", - " S ", - " S " - ], - "key": { - "S": { - "item": "minecraft:smooth_basalt" - }, - "Q": { - "item": "spectrum:quitoxic_powder" - }, - "P": { - "item": "minecraft:phantom_membrane" - } - }, - "result": { - "item": "spectrum:voiding_pickaxe", - "nbt": "{Enchantments: [{id: \"spectrum:voiding\", lvl: 1s}]}", - "count": 1 - }, - "required_advancement": "spectrum:progression/tools/unlock_voiding_pickaxe" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/black_hole_chest.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/black_hole_chest.json new file mode 100644 index 0000000000..1a3bfe7390 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/black_hole_chest.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:pedestal", + "time": 3600, + "tier": "advanced", + "cyan": 4, + "magenta": 8, + "yellow": 4, + "white": 0, + "black": 2, + "experience": 4.0, + "pattern": [ + "BBB", + "XSX", + "YYY" + ], + "key": { + "B": { + "item": "spectrum:blue_pigment" + }, + "Y": { + "item": "spectrum:polished_basalt" + }, + "X": { + "item": "spectrum:polished_calcite" + }, + "S": { + "item": "spectrum:stratine_gem" + } + }, + "result": { + "item": "spectrum:black_hole_chest", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_black_hole_chest" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/bottle_of_failing.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/bottle_of_failing.json index 0dbbe5c092..2a4a7e61c5 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/bottle_of_failing.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/bottle_of_failing.json @@ -15,7 +15,7 @@ ], "key": { "S": { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, "F": { "item": "minecraft:fermented_spider_eye" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/cinderhearth.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/cinderhearth.json index 51aec05ed8..4ce2f3f497 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/cinderhearth.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/cinderhearth.json @@ -21,10 +21,10 @@ "item": "spectrum:polished_basalt" }, "G": { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" }, "F": { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier2/crescent_clock.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/crescent_clock.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/pedestal/tier2/crescent_clock.json rename to src/main/resources/data/spectrum/recipes/pedestal/tier3/crescent_clock.json diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/crystal_apothecary.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/crystal_apothecary.json index 86c1d4e3a8..4f1f40a2aa 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/crystal_apothecary.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/crystal_apothecary.json @@ -15,7 +15,7 @@ ], "key": { "L": { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, "C": { "item": "spectrum:polished_calcite" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/enchanter.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/enchanter.json index 3f01f39fa8..1117622e05 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/enchanter.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/enchanter.json @@ -24,7 +24,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/ender_splice.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/ender_splice.json index 9f491392fa..4338b3e3ad 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/ender_splice.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/ender_splice.json @@ -15,7 +15,7 @@ ], "key": { "T": { - "item": "spectrum:ender_treasure" + "item": "spectrum:radiating_ender" }, "C": { "item": "minecraft:chorus_fruit" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/ethereal_platform.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/ethereal_platform.json index 1d61efd328..98f14ae857 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/ethereal_platform.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/ethereal_platform.json @@ -18,7 +18,7 @@ "item": "spectrum:stardust" }, "G": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "Y": { "item": "spectrum:yellow_pigment" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/amethyst_chime.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/amethyst_chime.json index 550105782b..03bdf2b2bf 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/amethyst_chime.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/amethyst_chime.json @@ -28,7 +28,7 @@ "item": "minecraft:string" }, "P": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/citrine_chime.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/citrine_chime.json index 899b67ab5e..7c2f8bf4ef 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/citrine_chime.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/citrine_chime.json @@ -28,7 +28,7 @@ "item": "minecraft:string" }, "P": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/moonstone_chime.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/moonstone_chime.json index a96522c657..c6403ee907 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/moonstone_chime.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/moonstone_chime.json @@ -28,7 +28,7 @@ "item": "minecraft:string" }, "P": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/onyx_chime.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/onyx_chime.json index 9d6e80a217..9b68706b3f 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/onyx_chime.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/onyx_chime.json @@ -28,7 +28,7 @@ "item": "minecraft:string" }, "P": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/topaz_chime.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/topaz_chime.json index 643204aeff..46b80a8880 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/topaz_chime.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/gemstone_chimes/topaz_chime.json @@ -28,7 +28,7 @@ "item": "minecraft:string" }, "P": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_basalt.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_basalt.json index c49fabba1a..231f72e291 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_basalt.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_basalt.json @@ -19,7 +19,7 @@ "item": "spectrum:polished_basalt" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_calcite.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_calcite.json index 44cf9c6bee..4a69b82887 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_calcite.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/item_bowl_calcite.json @@ -19,7 +19,7 @@ "item": "spectrum:polished_calcite" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" } }, "result": { diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/liquid_crystal_bucket.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/liquid_crystal_bucket.json index cffa2f9cd1..409a3fef3d 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/liquid_crystal_bucket.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/liquid_crystal_bucket.json @@ -24,7 +24,7 @@ "item": "minecraft:bucket" }, "S": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "M": { "item": "spectrum:mermaids_gem" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/connection_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/connection_node.json index bf64656981..a44f319ab4 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/connection_node.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/connection_node.json @@ -10,13 +10,13 @@ "white": 0, "experience": 1.0, "pattern": [ - " P ", + " A ", "ASA", "YXY" ], "key": { "S": { - "tag": "spectrum:gemstone_shards" + "item": "minecraft:quartz" }, "X": { "item": "spectrum:polished_basalt" @@ -26,14 +26,11 @@ }, "A": { "item": "spectrum:raw_azurite" - }, - "P": { - "tag": "spectrum:pigments" } }, "result": { "item": "spectrum:connection_node", - "count": 1 + "count": 4 }, - "required_advancement": "spectrum:progression/pastel_network/unlock_basic_nodes" + "required_advancement": "spectrum:progression/unlock_pastel_network" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/gather_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/gather_node.json new file mode 100644 index 0000000000..364dcba9d8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/gather_node.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "pastel_network", + "time": 80, + "tier": "advanced", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 1, + "white": 0, + "experience": 1.0, + "pattern": [ + " A ", + "ASA", + "YXY" + ], + "key": { + "S": { + "item": "spectrum:onyx_shard" + }, + "X": { + "item": "spectrum:polished_basalt" + }, + "Y": { + "item": "spectrum:polished_calcite" + }, + "A": { + "item": "spectrum:raw_azurite" + } + }, + "result": { + "item": "spectrum:gather_node", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_pastel_network" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/interaction_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/interaction_node.json deleted file mode 100644 index b85414797d..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/interaction_node.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "pastel_network", - "time": 800, - "tier": "complex", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 1, - "experience": 1.0, - "pattern": [ - " S ", - "ASA", - "YXY" - ], - "key": { - "S": { - "item": "spectrum:moonstone_shard" - }, - "X": { - "item": "spectrum:polished_basalt" - }, - "Y": { - "item": "spectrum:polished_calcite" - }, - "A": { - "item": "spectrum:raw_azurite" - } - }, - "result": { - "item": "spectrum:interaction_node", - "count": 1 - }, - "required_advancement": "spectrum:progression/pastel_network/unlock_interaction_node" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/provider_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/provider_node.json index 2c8755dd2c..3c2b346986 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/provider_node.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/provider_node.json @@ -10,7 +10,7 @@ "white": 0, "experience": 1.0, "pattern": [ - " S ", + " A ", "ASA", "YXY" ], @@ -32,5 +32,5 @@ "item": "spectrum:provider_node", "count": 1 }, - "required_advancement": "spectrum:progression/pastel_network/unlock_basic_nodes" + "required_advancement": "spectrum:progression/unlock_pastel_network" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/puller_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/puller_node.json deleted file mode 100644 index 59677cbcf8..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/puller_node.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "pastel_network", - "time": 80, - "tier": "advanced", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 1, - "white": 0, - "experience": 1.0, - "pattern": [ - " S ", - "ASA", - "YXY" - ], - "key": { - "S": { - "item": "spectrum:onyx_shard" - }, - "X": { - "item": "spectrum:polished_basalt" - }, - "Y": { - "item": "spectrum:polished_calcite" - }, - "A": { - "item": "spectrum:raw_azurite" - } - }, - "result": { - "item": "spectrum:puller_node", - "count": 1 - }, - "required_advancement": "spectrum:progression/pastel_network/unlock_basic_nodes" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/pusher_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/pusher_node.json deleted file mode 100644 index 771c8d3252..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/pusher_node.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "pastel_network", - "time": 80, - "tier": "advanced", - "magenta": 0, - "yellow": 1, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 1.0, - "pattern": [ - " S ", - "ASA", - "YXY" - ], - "key": { - "S": { - "item": "spectrum:citrine_shard" - }, - "X": { - "item": "spectrum:polished_basalt" - }, - "Y": { - "item": "spectrum:polished_calcite" - }, - "A": { - "item": "spectrum:raw_azurite" - } - }, - "result": { - "item": "spectrum:pusher_node", - "count": 1 - }, - "required_advancement": "spectrum:progression/pastel_network/unlock_basic_nodes" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/sender_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/sender_node.json new file mode 100644 index 0000000000..48a1771260 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/sender_node.json @@ -0,0 +1,36 @@ +{ + "type": "spectrum:pedestal", + "group": "pastel_network", + "time": 80, + "tier": "advanced", + "magenta": 0, + "yellow": 1, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + " A ", + "ASA", + "YXY" + ], + "key": { + "S": { + "item": "spectrum:citrine_shard" + }, + "X": { + "item": "spectrum:polished_basalt" + }, + "Y": { + "item": "spectrum:polished_calcite" + }, + "A": { + "item": "spectrum:raw_azurite" + } + }, + "result": { + "item": "spectrum:sender_node", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_pastel_network" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/storage_node.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/storage_node.json index a1fade10cd..7405beedc9 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/storage_node.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pastel_network/storage_node.json @@ -10,7 +10,7 @@ "white": 0, "experience": 1.0, "pattern": [ - " S ", + " A ", "ASA", "YXY" ], @@ -32,5 +32,5 @@ "item": "spectrum:storage_node", "count": 1 }, - "required_advancement": "spectrum:progression/pastel_network/unlock_basic_nodes" + "required_advancement": "spectrum:progression/unlock_pastel_network" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pedestal_moonstone.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pedestal_moonstone.json index a45024d49f..8a3061b35c 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/pedestal_moonstone.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/pedestal_moonstone.json @@ -22,6 +22,6 @@ "item": "spectrum:pedestal_moonstone", "count": 1 }, - "required_advancement": "spectrum:midgame/collect_moonstone_shard", + "required_advancement": "spectrum:lategame/collect_moonstone_shard", "disable_yield_upgrades": true } diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/amethyst_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/amethyst_player_only_glass.json deleted file mode 100644 index cdfd929cde..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/amethyst_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 8, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "minecraft:amethyst_shard" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:amethyst_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/amethyst_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/amethyst_semi_permeable_glass.json new file mode 100644 index 0000000000..f602167587 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/amethyst_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 8, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "minecraft:amethyst_shard" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:amethyst_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/citrine_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/citrine_player_only_glass.json deleted file mode 100644 index f7ea6c1e71..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/citrine_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 0, - "yellow": 8, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "spectrum:citrine_shard" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:citrine_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/citrine_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/citrine_semi_permeable_glass.json new file mode 100644 index 0000000000..3e57dd5e29 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/citrine_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 0, + "yellow": 8, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "spectrum:citrine_shard" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:citrine_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/glowing_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/glowing_player_only_glass.json deleted file mode 100644 index 4084ba99b6..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/glowing_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 4, - "yellow": 2, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "spectrum:sparklestone_gem" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:glowing_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/glowing_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/glowing_semi_permeable_glass.json new file mode 100644 index 0000000000..e9fe4a4ed9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/glowing_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 4, + "yellow": 2, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "spectrum:shimmerstone_gem" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:glowing_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/moonstone_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/moonstone_player_only_glass.json deleted file mode 100644 index ffa7e07e97..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/moonstone_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "complex", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 8, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "spectrum:moonstone_shard" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:moonstone_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:progression/unlock_moonstone_player_only_glass" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/moonstone_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/moonstone_semi_permeable_glass.json new file mode 100644 index 0000000000..5c0e819885 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/moonstone_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "complex", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 8, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "spectrum:moonstone_shard" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:moonstone_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:progression/unlock_moonstone_semi_permeable_glass" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/onyx_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/onyx_player_only_glass.json deleted file mode 100644 index 973577302b..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/onyx_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 8, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "spectrum:onyx_shard" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:onyx_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/onyx_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/onyx_semi_permeable_glass.json new file mode 100644 index 0000000000..4eccb4f015 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/onyx_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 8, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "spectrum:onyx_shard" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:onyx_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/tinted_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/tinted_player_only_glass.json deleted file mode 100644 index 8b02d9c12f..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/tinted_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 2, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "spectrum:onyx_shard" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:tinted_glass" - } - }, - "result": { - "item": "spectrum:tinted_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/tinted_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/tinted_semi_permeable_glass.json new file mode 100644 index 0000000000..07d7de20aa --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/tinted_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 2, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "spectrum:onyx_shard" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:tinted_glass" + } + }, + "result": { + "item": "spectrum:tinted_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/topaz_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/topaz_player_only_glass.json deleted file mode 100644 index b797d8f172..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/topaz_player_only_glass.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 8, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PSP", - "GPG" - ], - "key": { - "S": { - "item": "spectrum:topaz_shard" - }, - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:topaz_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/topaz_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/topaz_semi_permeable_glass.json new file mode 100644 index 0000000000..c25e6c345a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/topaz_semi_permeable_glass.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 8, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PSP", + "GPG" + ], + "key": { + "S": { + "item": "spectrum:topaz_shard" + }, + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:topaz_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/vanilla_player_only_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/vanilla_player_only_glass.json deleted file mode 100644 index d4aadd3415..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/vanilla_player_only_glass.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "group": "player_only_glass", - "time": 80, - "tier": "advanced", - "magenta": 1, - "yellow": 1, - "cyan": 1, - "black": 0, - "white": 0, - "experience": 1.0, - "pattern": [ - "GPG", - "PGP", - "GPG" - ], - "key": { - "P": { - "item": "spectrum:purple_pigment" - }, - "G": { - "item": "minecraft:glass" - } - }, - "result": { - "item": "spectrum:vanilla_player_only_glass", - "count": 6 - }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/vanilla_semi_permeable_glass.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/vanilla_semi_permeable_glass.json new file mode 100644 index 0000000000..895970a22a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/player_only_glass/vanilla_semi_permeable_glass.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "group": "player_only_glass", + "time": 80, + "tier": "advanced", + "magenta": 1, + "yellow": 1, + "cyan": 1, + "black": 0, + "white": 0, + "experience": 1.0, + "pattern": [ + "GPG", + "PGP", + "GPG" + ], + "key": { + "P": { + "item": "spectrum:purple_pigment" + }, + "G": { + "item": "minecraft:glass" + } + }, + "result": { + "item": "spectrum:vanilla_semi_permeable_glass", + "count": 6 + }, + "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/potion_workshop.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/potion_workshop.json index 7f6fe0a81c..6121271a9f 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/potion_workshop.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/potion_workshop.json @@ -24,7 +24,7 @@ "item": "minecraft:copper_ingot" }, "G": { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, "Q": { "item": "spectrum:quitoxic_powder" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/restocking_chest.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/restocking_chest.json index 7598e25256..4e7dc39013 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/restocking_chest.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/restocking_chest.json @@ -24,7 +24,7 @@ "item": "minecraft:copper_ingot" }, "G": { - "item": "spectrum:scarlet_fragments" + "item": "spectrum:stratine_fragments" }, "T": { "item": "spectrum:red_pigment" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/scarlet_gem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/scarlet_gem.json deleted file mode 100644 index 9bf0624297..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/scarlet_gem.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 400, - "tier": "advanced", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 2, - "white": 0, - "experience": 0.5, - "pattern": [ - "###", - "#X#", - "###" - ], - "key": { - "#": { - "item": "spectrum:scarlet_fragments" - }, - "X": { - "item": "minecraft:emerald" - } - }, - "result": { - "item": "spectrum:scarlet_gem", - "count": 1 - }, - "required_advancement": "spectrum:hidden/collect_scarlet_gem", - "disable_yield_upgrades": true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/stratine_gem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/stratine_gem.json new file mode 100644 index 0000000000..00d32611e9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/stratine_gem.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "time": 400, + "tier": "advanced", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 2, + "white": 0, + "experience": 0.5, + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "spectrum:stratine_fragments" + }, + "X": { + "item": "minecraft:emerald" + } + }, + "result": { + "item": "spectrum:stratine_gem", + "count": 1 + }, + "required_advancement": "spectrum:hidden/collect_stratine_gem", + "disable_yield_upgrades": true +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/sucking_chest.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/sucking_chest.json deleted file mode 100644 index abca29a9f8..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/sucking_chest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 3600, - "tier": "advanced", - "cyan": 4, - "magenta": 8, - "yellow": 4, - "white": 0, - "black": 2, - "experience": 4.0, - "pattern": [ - "BBB", - "XSX", - "YYY" - ], - "key": { - "B": { - "item": "spectrum:blue_pigment" - }, - "Y": { - "item": "spectrum:polished_basalt" - }, - "X": { - "item": "spectrum:polished_calcite" - }, - "S": { - "item": "spectrum:scarlet_gem" - } - }, - "result": { - "item": "spectrum:sucking_chest", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_sucking_chest" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/universe_spyhole.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/universe_spyhole.json index 190a03aea4..e6077e9b63 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/universe_spyhole.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/universe_spyhole.json @@ -15,7 +15,7 @@ ], "key": { "E": { - "item": "spectrum:ender_treasure" + "item": "spectrum:radiating_ender" }, "M": { "item": "spectrum:midnight_chip" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_efficiency.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_efficiency.json index 80be909c04..8737882516 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_efficiency.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_efficiency.json @@ -37,5 +37,5 @@ "item": "spectrum:upgrade_efficiency", "count": 1 }, - "required_advancement": "spectrum:midgame/create_refined_azurite" + "required_advancement": "spectrum:progression/unlock_upgrade_experience" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_experience.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_experience.json index 6c320f6d10..e8ebb77341 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_experience.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_experience.json @@ -24,7 +24,7 @@ "item": "spectrum:polished_basalt" }, "L": { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, "P": { "item": "spectrum:purple_pigment" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed.json index d425c66731..c390163bcb 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed.json @@ -37,5 +37,5 @@ "item": "spectrum:upgrade_speed", "count": 1 }, - "required_advancement": "spectrum:midgame/build_advanced_pedestal_structure" + "required_advancement": "spectrum:progression/unlock_upgrade_speed" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed2.json b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed2.json index aa89523190..4cdd429369 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed2.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier3/upgrade_speed2.json @@ -14,7 +14,7 @@ ], "key": { "S": { - "item": "spectrum:lightning_stone" + "item": "spectrum:storm_stone" }, "U": { "item": "spectrum:upgrade_speed" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/celestial_pocketwatch.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/celestial_pocketwatch.json index 3629a0049f..31a34109fa 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/celestial_pocketwatch.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/celestial_pocketwatch.json @@ -18,7 +18,7 @@ "item": "minecraft:amethyst_shard" }, "C": { - "item": "spectrum:paletur_gem" + "item": "spectrum:paltaeria_gem" }, "P": { "item": "spectrum:magenta_pigment" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/crystallarieum.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/crystallarieum.json index e1ea3ed32a..7d4a846dc9 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/crystallarieum.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/crystallarieum.json @@ -24,7 +24,7 @@ "item": "spectrum:polished_basalt" }, "P": { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" }, "L": { "item": "spectrum:liquid_crystal_bucket" diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/end_portal_cracker.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/end_portal_cracker.json deleted file mode 100644 index 883550b320..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/end_portal_cracker.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 2400, - "tier": "complex", - "cyan": 0, - "magenta": 0, - "yellow": 8, - "white": 4, - "black": 0, - "experience": 4.0, - "pattern": [ - "QPQ", - "PEP", - "QPQ" - ], - "key": { - "E": { - "item": "minecraft:ender_eye" - }, - "Q": { - "item": "spectrum:quitoxic_powder" - }, - "P": { - "item": "spectrum:paletur_fragments" - } - }, - "result": { - "item": "spectrum:end_portal_cracker", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_end_portal_cracker" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/exchange_staff.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/exchange_staff.json deleted file mode 100644 index 628d0e1061..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/exchange_staff.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 1200, - "tier": "complex", - "cyan": 2, - "magenta": 4, - "yellow": 0, - "white": 4, - "black": 1, - "experience": 2.0, - "pattern": [ - " PG", - " SP", - "S " - ], - "key": { - "S": { - "item": "minecraft:stick" - }, - "P": { - "item": "spectrum:light_gray_pigment" - }, - "G": { - "item": "spectrum:paletur_gem" - } - }, - "result": { - "item": "spectrum:exchange_staff", - "count": 1 - }, - "required_advancement": "spectrum:progression/unlock_exchange_staff" -} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/exchanging_staff.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/exchanging_staff.json new file mode 100644 index 0000000000..345e665614 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/exchanging_staff.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:pedestal", + "time": 1200, + "tier": "complex", + "cyan": 2, + "magenta": 4, + "yellow": 0, + "white": 4, + "black": 1, + "experience": 2.0, + "pattern": [ + " PG", + " SP", + "S " + ], + "key": { + "S": { + "item": "minecraft:stick" + }, + "P": { + "item": "spectrum:light_gray_pigment" + }, + "G": { + "item": "spectrum:paltaeria_gem" + } + }, + "result": { + "item": "spectrum:exchanging_staff", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_exchanging_staff" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/fanciful_bismuth_ring.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/fanciful_bismuth_ring.json new file mode 100644 index 0000000000..3d7e3f1ae3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/fanciful_bismuth_ring.json @@ -0,0 +1,26 @@ +{ + "type": "spectrum:pedestal", + "time": 800, + "tier": "complex", + "cyan": 0, + "magenta": 0, + "yellow": 0, + "black": 0, + "white": 8, + "experience": 2.0, + "pattern": [ + " B ", + "B B", + " B " + ], + "key": { + "B": { + "item": "spectrum:bismuth_crystal" + } + }, + "result": { + "item": "spectrum:fanciful_bismuth_ring", + "count": 1 + }, + "required_advancement": "spectrum:progression/unlock_fanciful_bismuth_ring" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/paletur_gem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/paletur_gem.json deleted file mode 100644 index 2f66837a14..0000000000 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/paletur_gem.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "type": "spectrum:pedestal", - "time": 400, - "tier": "complex", - "magenta": 0, - "yellow": 0, - "cyan": 0, - "black": 0, - "white": 2, - "experience": 0.5, - "pattern": [ - "###", - "#X#", - "###" - ], - "key": { - "#": { - "item": "spectrum:paletur_fragments" - }, - "X": { - "item": "minecraft:diamond" - } - }, - "result": { - "item": "spectrum:paletur_gem", - "count": 1 - }, - "required_advancement": "spectrum:hidden/collect_paletur_gem", - "disable_yield_upgrades": true -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/paltaeria_gem.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/paltaeria_gem.json new file mode 100644 index 0000000000..b84d134180 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/paltaeria_gem.json @@ -0,0 +1,30 @@ +{ + "type": "spectrum:pedestal", + "time": 400, + "tier": "complex", + "magenta": 0, + "yellow": 0, + "cyan": 0, + "black": 0, + "white": 4, + "experience": 0.5, + "pattern": [ + "###", + "#X#", + "###" + ], + "key": { + "#": { + "item": "spectrum:paltaeria_fragments" + }, + "X": { + "item": "minecraft:diamond" + } + }, + "result": { + "item": "spectrum:paltaeria_gem", + "count": 1 + }, + "required_advancement": "spectrum:hidden/collect_paltaeria_gem", + "disable_yield_upgrades": true +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/perturbed_eye.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/perturbed_eye.json new file mode 100644 index 0000000000..c8b4d9f6a6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/perturbed_eye.json @@ -0,0 +1,32 @@ +{ + "type": "spectrum:pedestal", + "time": 2400, + "tier": "complex", + "cyan": 0, + "magenta": 0, + "yellow": 8, + "white": 4, + "black": 0, + "experience": 4.0, + "pattern": [ + "EPE", + "PRP", + "EPE" + ], + "key": { + "E": { + "item": "minecraft:ender_eye" + }, + "R": { + "item": "spectrum:radiating_ender" + }, + "P": { + "item": "spectrum:paltaeria_fragments" + } + }, + "result": { + "item": "spectrum:perturbed_eye", + "count": 4 + }, + "required_advancement": "spectrum:progression/unlock_perturbed_eye" +} diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/resonant_pickaxe.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/resonant_pickaxe.json index 8e3c8606f8..f70ff173c4 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/resonant_pickaxe.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/resonant_pickaxe.json @@ -9,7 +9,7 @@ "black": 0, "experience": 2, "pattern": [ - "PMP", + "MPM", " S ", " S " ], @@ -21,7 +21,7 @@ "item": "spectrum:moonstone_shard" }, "P": { - "item": "spectrum:paletur_gem" + "item": "spectrum:resonance_shard" } }, "result": { @@ -30,4 +30,4 @@ "count": 1 }, "required_advancement": "spectrum:progression/tools/unlock_resonant_pickaxe" -} +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/upgrade_yield.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/upgrade_yield.json index d540e26c23..6a403a289d 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/upgrade_yield.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/upgrade_yield.json @@ -18,10 +18,10 @@ "item": "spectrum:polished_basalt" }, "P": { - "item": "spectrum:paletur_gem" + "item": "spectrum:paltaeria_gem" }, "C": { - "item": "spectrum:scarlet_gem" + "item": "spectrum:stratine_gem" }, "L": { "item": "spectrum:light_blue_pigment" @@ -31,5 +31,5 @@ "item": "spectrum:upgrade_yield", "count": 1 }, - "required_advancement": "spectrum:lategame/collect_paletur" + "required_advancement": "spectrum:progression/unlock_upgrade_yield" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/pedestal/tier4/vanilla/elytra.json b/src/main/resources/data/spectrum/recipes/pedestal/tier4/vanilla/elytra.json index cd35ddb9d9..6105658132 100644 --- a/src/main/resources/data/spectrum/recipes/pedestal/tier4/vanilla/elytra.json +++ b/src/main/resources/data/spectrum/recipes/pedestal/tier4/vanilla/elytra.json @@ -15,7 +15,7 @@ ], "key": { "P": { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" }, "S": { "item": "spectrum:spectral_shard" @@ -31,5 +31,5 @@ "item": "minecraft:elytra", "count": 1 }, - "required_advancement": "spectrum:lategame/collect_paletur" + "required_advancement": "spectrum:lategame/collect_paltaeria" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/absorption.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/absorption.json index 4a84225b09..f7e5928db0 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/absorption.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/absorption.json @@ -8,9 +8,11 @@ }, "effect": "minecraft:absorption", "base_duration_ticks": 1800, - "potency_modifier": 0.75, + "potency_modifier": 0.5, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": false, - "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop" + "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "ink_color": "blue", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/darkness.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/darkness.json new file mode 100644 index 0000000000..dffd300a07 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/darkness.json @@ -0,0 +1,21 @@ +{ + "type": "spectrum:potion_workshop_brewing", + "ingredient1": { + "item": "minecraft:nether_wart" + }, + "ingredient2": { + "item": "minecraft:echo_shard" + }, + "ingredient3": { + "item": "minecraft:fermented_spider_eye" + }, + "effect": "minecraft:darkness", + "base_duration_ticks": 400, + "potency_modifier": 0.5, + "applicable_to_potions": true, + "applicable_to_tipped_arrows": true, + "applicable_to_potion_fillables": true, + "required_advancement": "spectrum:progression/potions/unlock_darkness_potion", + "ink_color": "black", + "ink_cost": 8 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/fire_resistance.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/fire_resistance.json index bcd9c9729a..f431e13b18 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/fire_resistance.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/fire_resistance.json @@ -12,5 +12,7 @@ "potency_modifier": 0.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "orange", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/glowing.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/glowing.json index 0ca283af7b..5cd1a3dd98 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/glowing.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/glowing.json @@ -4,7 +4,7 @@ "item": "minecraft:nether_wart" }, "ingredient2": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "effect": "minecraft:glowing", "base_duration_ticks": 1800, @@ -12,5 +12,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop" + "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "ink_color": "green", + "ink_cost": 1 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/haste.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/haste.json index 93b9642554..1f4c56a610 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/haste.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/haste.json @@ -12,5 +12,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop" + "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "ink_color": "magenta", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/hunger.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/hunger.json index 153bc0d7fb..3da3966b88 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/hunger.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/hunger.json @@ -15,5 +15,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop" + "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "ink_color": "lime", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage.json index ed793300dc..7df1507d92 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage.json @@ -12,8 +12,10 @@ }, "effect": "minecraft:instant_damage", "base_duration_ticks": 0, - "potency_modifier": 1.0, + "potency_modifier": 0.5, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": false + "applicable_to_potion_fillables": false, + "ink_color": "black", + "ink_cost": 16 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage2.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage2.json index c2cd4c665d..7698f3386c 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage2.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_damage2.json @@ -12,8 +12,10 @@ }, "effect": "minecraft:instant_damage", "base_duration_ticks": 0, - "potency_modifier": 1.0, + "potency_modifier": 0.5, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": false + "applicable_to_potion_fillables": false, + "ink_color": "black", + "ink_cost": 16 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_health.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_health.json index e69253ed89..a5b0665b32 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_health.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/instant_health.json @@ -12,5 +12,7 @@ "potency_modifier": 1.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": false + "applicable_to_potion_fillables": false, + "ink_color": "lime", + "ink_cost": 16 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/invisibility.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/invisibility.json index 40958ae50b..6bdef8ebd0 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/invisibility.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/invisibility.json @@ -15,5 +15,7 @@ "potency_modifier": 0.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "green", + "ink_cost": 8 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/jump_boost.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/jump_boost.json index 8a1bbdedeb..9736b41eff 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/jump_boost.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/jump_boost.json @@ -12,5 +12,7 @@ "potency_modifier": 1.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "yellow", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/levitation.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/levitation.json index 0043965b28..abae3ec3af 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/levitation.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/levitation.json @@ -4,7 +4,7 @@ "item": "minecraft:nether_wart" }, "ingredient2": { - "item": "spectrum:paletur_fragments" + "item": "spectrum:paltaeria_fragments" }, "effect": "minecraft:levitation", "base_duration_ticks": 200, @@ -12,5 +12,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:progression/potions/unlock_levitation_potion" + "required_advancement": "spectrum:progression/potions/unlock_levitation_potion", + "ink_color": "brown", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/luck.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/luck.json index d7f2934737..d1bf955d41 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/luck.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/luck.json @@ -12,5 +12,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:progression/potions/unlock_luck_potion" + "required_advancement": "spectrum:progression/potions/unlock_luck_potion", + "ink_color": "light_blue", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/mining_fatigue.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/mining_fatigue.json index 1d94bc952f..c908bad20f 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/mining_fatigue.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/mining_fatigue.json @@ -15,5 +15,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop" + "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "ink_color": "magenta", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/night_vision.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/night_vision.json index b8f001a093..f514e78229 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/night_vision.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/night_vision.json @@ -12,5 +12,7 @@ "potency_modifier": 0.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "yellow", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/poison.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/poison.json index 2df8662696..67fdb656f7 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/poison.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/poison.json @@ -12,5 +12,7 @@ "potency_modifier": 1.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "pink", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/regeneration.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/regeneration.json index 70044253ff..07181f0b08 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/regeneration.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/regeneration.json @@ -12,5 +12,7 @@ "potency_modifier": 1.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "pink", + "ink_cost": 8 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/resistance.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/resistance.json index db6e234c9d..314e03fbea 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/resistance.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/resistance.json @@ -13,5 +13,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:progression/potions/unlock_resistance_potion" + "required_advancement": "spectrum:progression/potions/unlock_resistance_potion", + "ink_color": "blue", + "ink_cost": 8 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/saturation.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/saturation.json index 3f833bed5c..b2368beea5 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/saturation.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/saturation.json @@ -12,5 +12,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop" + "required_advancement": "spectrum:midgame/brew_potion_in_potion_workshop", + "ink_color": "lime", + "ink_cost": 16 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slow_falling.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slow_falling.json index cf25b7de0f..7394faa96e 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slow_falling.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slow_falling.json @@ -12,5 +12,7 @@ "potency_modifier": 0.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "brown", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness.json index 69df40433c..e954096d88 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness.json @@ -15,5 +15,7 @@ "potency_modifier": 2.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "magenta", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness2.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness2.json index 98b4b50975..14a45d4cea 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness2.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/slowness2.json @@ -15,5 +15,7 @@ "potency_modifier": 2.5, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "magenta", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/speed.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/speed.json index 17dec5d398..ab4ca13698 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/speed.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/speed.json @@ -12,5 +12,7 @@ "potency_modifier": 1.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "magenta", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/strength.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/strength.json index 1d749d4edf..7b542ce5c2 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/strength.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/strength.json @@ -12,5 +12,7 @@ "potency_modifier": 1.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "red", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/unluck.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/unluck.json index 3119e5bfc1..fe0f4d9816 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/unluck.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/unluck.json @@ -15,5 +15,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:progression/potions/unlock_luck_potion" + "required_advancement": "spectrum:progression/potions/unlock_luck_potion", + "ink_color": "light_blue", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/water_breathing.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/water_breathing.json index 67c5cb3f6b..fad9b7e834 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/water_breathing.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/water_breathing.json @@ -12,5 +12,7 @@ "potency_modifier": 0.0, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "pink", + "ink_cost": 2 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/weakness.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/weakness.json index b25ce654bd..8e03b7915a 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/weakness.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/weakness.json @@ -12,5 +12,7 @@ "potency_modifier": 0.5, "applicable_to_potions": true, "applicable_to_tipped_arrows": true, - "applicable_to_potion_fillables": true + "applicable_to_potion_fillables": true, + "ink_color": "red", + "ink_cost": 4 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/wither.json b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/wither.json index 638034c331..5853c3f372 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/wither.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_brewing/wither.json @@ -15,5 +15,7 @@ "applicable_to_potions": true, "applicable_to_tipped_arrows": true, "applicable_to_potion_fillables": true, - "required_advancement": "spectrum:progression/potions/unlock_wither_potion" + "required_advancement": "spectrum:progression/potions/unlock_wither_potion", + "ink_color": "black", + "ink_cost": 16 } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea.json b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea.json index 2a36d0784c..1f4006fead 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea.json @@ -1,5 +1,6 @@ { "type": "spectrum:potion_workshop_crafting", + "group": "demon_tea", "base_ingredient": { "item": "minecraft:glass_bottle" }, diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea_milk.json b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea_milk.json index 650c89fa80..d8902c1eb1 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea_milk.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/demon_tea_milk.json @@ -1,5 +1,6 @@ { "type": "spectrum:potion_workshop_crafting", + "group": "demon_tea", "base_ingredient": { "item": "minecraft:glass_bottle" }, diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/incandescent_amalgam.json b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/incandescent_amalgam.json deleted file mode 100644 index ad7e997092..0000000000 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/incandescent_amalgam.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "type": "spectrum:titration_barrel", - "group": "infused_beverages", - "ingredients": [ - { - "tag": "spectrum:drinkable_spirits", - "count": 1 - }, - { - "item": "spectrum:fiery_powder", - "count": 32 - }, - { - "item": "minecraft:honeycomb", - "count": 2 - }, - { - "item": "spectrum:quitoxic_powder", - "count": 16 - } - ], - "min_fermentation_time_hours": 24, - "result": { - "item": "spectrum:incandescent_amalgam" - }, - "required_advancement": "spectrum:progression/unlock_incandescent_amalgam" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/liquid_crystal_bucket.json b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/liquid_crystal_bucket.json index aaf2a03505..3d19034bdc 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/liquid_crystal_bucket.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_crafting/liquid_crystal_bucket.json @@ -12,7 +12,7 @@ "item": "spectrum:yellow_pigment" }, "ingredient3": { - "item": "spectrum:sparklestone_gem" + "item": "spectrum:shimmerstone_gem" }, "result": { "item": "spectrum:liquid_crystal_bucket" diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/bismuth_crystal.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/bismuth_crystal.json new file mode 100644 index 0000000000..2d690a5d35 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/bismuth_crystal.json @@ -0,0 +1,9 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:bismuth_crystal", + "modifiers": { + "flat_potency_bonus_positive_effects": 1.0, + "random_color": true + }, + "required_advancement": "spectrum:lategame/collect_bismuth_crystal" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/citrine_powder.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/citrine_powder.json index a989f4b2ce..40dd84ccc0 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/citrine_powder.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/citrine_powder.json @@ -2,7 +2,7 @@ "type": "spectrum:potion_workshop_reacting", "item": "spectrum:citrine_powder", "modifiers": { - "multiplicative_potency_modifier": 1.25 + "multiplicative_potency_modifier": 0.25 }, "required_advancement": "spectrum:hidden/collect_gemstone_dust/collect_citrine_powder" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/lightning_stone.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/lightning_stone.json deleted file mode 100644 index ff9bb770a8..0000000000 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/lightning_stone.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "spectrum:potion_workshop_reacting", - "item": "spectrum:lightning_stone", - "modifiers": { - "potent_decreasing_effect": true - }, - "required_advancement": "spectrum:midgame/collect_lightning_stone" -} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/malachite_crystal.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/malachite_crystal.json new file mode 100644 index 0000000000..dd30262b77 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/malachite_crystal.json @@ -0,0 +1,9 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:malachite_crystal", + "modifiers": { + "multiplicative_duration_modifier": 3.0, + "additional_drink_duration_ticks": 54 + }, + "required_advancement": "spectrum:lategame/grow_malachite_in_crystallarieum" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/moonstruck_nectar.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/moonstruck_nectar.json index f98fb526e0..ee6eb80525 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/moonstruck_nectar.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/moonstruck_nectar.json @@ -2,7 +2,7 @@ "type": "spectrum:potion_workshop_reacting", "item": "spectrum:moonstruck_nectar", "modifiers": { - "fast_drinkable": true + "additional_drink_duration_ticks": -28 }, "required_advancement": "spectrum:midgame/harvest_moonstruck_nectar" } diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/paletur_fragments.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/paletur_fragments.json deleted file mode 100644 index 4636274fd6..0000000000 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/paletur_fragments.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "spectrum:potion_workshop_reacting", - "item": "spectrum:paletur_fragments", - "modifiers": { - "additional_random_positive_effect_count": 1.0 - }, - "required_advancement": "spectrum:lategame/collect_paletur" -} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/paltaeria_fragments.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/paltaeria_fragments.json new file mode 100644 index 0000000000..43f324f2d6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/paltaeria_fragments.json @@ -0,0 +1,8 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:paltaeria_fragments", + "modifiers": { + "additional_random_positive_effect_count": 1.0 + }, + "required_advancement": "spectrum:lategame/collect_paltaeria" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/prickly_bayleaf.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/prickly_bayleaf.json new file mode 100644 index 0000000000..089f57f2f0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/prickly_bayleaf.json @@ -0,0 +1,8 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:prickly_bayleaf", + "modifiers": { + "flat_potency_bonus_negative_effects": -2.0 + }, + "required_advancement": "spectrum:lategame/collect_prickly_bayleaf" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/scarlet_fragments.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/scarlet_fragments.json deleted file mode 100644 index a989d3a989..0000000000 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/scarlet_fragments.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "spectrum:potion_workshop_reacting", - "item": "spectrum:scarlet_fragments", - "modifiers": { - "flat_potency_bonus": 1.0, - "additional_random_negative_effect_count": 1.0 - }, - "required_advancement": "spectrum:midgame/collect_scarlet" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/shimmerstone_gem.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/shimmerstone_gem.json new file mode 100644 index 0000000000..6fd397af8b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/shimmerstone_gem.json @@ -0,0 +1,9 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:shimmerstone_gem", + "modifiers": { + "multiplicative_duration_modifier": 1.2, + "multiplicative_potency_modifier": 1.2 + }, + "required_advancement": "spectrum:collect_shimmerstone" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/shooting_star.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/shooting_star.json deleted file mode 100644 index 8a274bee3d..0000000000 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/shooting_star.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "spectrum:potion_workshop_reacting", - "item": "spectrum:shooting_star", - "modifiers": { - "chance_to_add_last_effect": 1.0, - "last_effect_potency_modifier": 0.75 - }, - "required_advancement": "spectrum:collect_shooting_star" -} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/sparklestone_gem.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/sparklestone_gem.json deleted file mode 100644 index 82080d213e..0000000000 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/sparklestone_gem.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "spectrum:potion_workshop_reacting", - "item": "spectrum:sparklestone_gem", - "modifiers": { - "multiplicative_duration_modifier": 1.1, - "multiplicative_potency_modifier": 1.1 - }, - "required_advancement": "spectrum:collect_sparklestone" -} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/star_fragment.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/star_fragment.json new file mode 100644 index 0000000000..d49fb2399d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/star_fragment.json @@ -0,0 +1,9 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:star_fragment", + "modifiers": { + "chance_to_add_last_effect": 1.0, + "last_effect_potency_modifier": 0.75 + }, + "required_advancement": "spectrum:collect_star_fragment" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/storm_stone.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/storm_stone.json new file mode 100644 index 0000000000..927241ff7a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/storm_stone.json @@ -0,0 +1,8 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:storm_stone", + "modifiers": { + "potent_decreasing_effect": true + }, + "required_advancement": "spectrum:midgame/collect_storm_stone" +} diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/stratine_fragments.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/stratine_fragments.json new file mode 100644 index 0000000000..637dd37c46 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/stratine_fragments.json @@ -0,0 +1,9 @@ +{ + "type": "spectrum:potion_workshop_reacting", + "item": "spectrum:stratine_fragments", + "modifiers": { + "flat_potency_bonus": 1.0, + "additional_random_negative_effect_count": 1.0 + }, + "required_advancement": "spectrum:midgame/collect_stratine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/vegetal.json b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/vegetal.json index 0b016e5400..e4c50095e8 100644 --- a/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/vegetal.json +++ b/src/main/resources/data/spectrum/recipes/potion_workshop_reacting/vegetal.json @@ -3,7 +3,7 @@ "item": "spectrum:vegetal", "modifiers": { "multiplicative_duration_modifier": 1.5, - "multiplicative_potency_modifier": 0.5 + "multiplicative_potency_modifier": 0.75 }, "required_advancement": "spectrum:collect_vegetal" } diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/basalt_brick_stairs_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_brick_stairs_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/basalt_brick_stairs_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_brick_stairs_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/basalt_brick_wall_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_brick_wall_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/basalt_brick_wall_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_brick_wall_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/basalt_bricks_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_bricks_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/basalt_bricks_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_bricks_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tile_stairs_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tile_stairs_to_polished_basalt.json new file mode 100644 index 0000000000..24989a2355 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tile_stairs_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:basalt_tile_stairs" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tile_wall_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tile_wall_to_polished_basalt.json new file mode 100644 index 0000000000..3e4ba8d047 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tile_wall_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:basalt_tile_wall" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tiles_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tiles_to_polished_basalt.json new file mode 100644 index 0000000000..38b3e832ac --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/basalt_tiles_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:basalt_tiles" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/chiseled_polished_basalt_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/chiseled_polished_basalt_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/chiseled_polished_basalt_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/chiseled_polished_basalt_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/cracked_basalt_tiles_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/cracked_basalt_tiles_to_polished_basalt.json new file mode 100644 index 0000000000..60dcc6e217 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/cracked_basalt_tiles_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:cracked_basalt_tiles" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/notched_polished_basalt_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/notched_polished_basalt_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/notched_polished_basalt_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/notched_polished_basalt_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_button_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_button_to_polished_basalt.json new file mode 100644 index 0000000000..813239d513 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_button_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_basalt_button" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_crest_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_crest_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_crest_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_crest_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_pillar_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_pillar_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_pillar_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_pillar_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_pressure_plate_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_pressure_plate_to_polished_basalt.json new file mode 100644 index 0000000000..dfbaabc139 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_pressure_plate_to_polished_basalt.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_basalt_pressure_plate" + }, + "result": "spectrum:polished_basalt", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_stairs_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_stairs_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_stairs_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_stairs_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_wall_to_polished_basalt.json b/src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_wall_to_polished_basalt.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_basalt_wall_to_polished_basalt.json rename to src/main/resources/data/spectrum/recipes/smelting/basalt_unsmelting/polished_basalt_wall_to_polished_basalt.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_ores/copper_from_smelting_blackslag_copper_ore.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_ores/copper_from_smelting_blackslag_copper_ore.json new file mode 100644 index 0000000000..153cad7e4a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_ores/copper_from_smelting_blackslag_copper_ore.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "group": "copper", + "ingredient": { + "item": "spectrum:blackslag_copper_ore" + }, + "result": "minecraft:raw_copper", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_to_polished_blackslag.json new file mode 100644 index 0000000000..4a9c4a0dde --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag.json new file mode 100644 index 0000000000..acb1656950 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_brick_stairs_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag_brick_stairs" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_brick_wall_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_brick_wall_to_polished_blackslag.json new file mode 100644 index 0000000000..3098e7affd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_brick_wall_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag_brick_wall" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_bricks_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_bricks_to_polished_blackslag.json new file mode 100644 index 0000000000..4022156ad4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_bricks_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tile_stairs_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tile_stairs_to_polished_blackslag.json new file mode 100644 index 0000000000..6bcd923f78 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tile_stairs_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag_tile_stairs" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tile_wall_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tile_wall_to_polished_blackslag.json new file mode 100644 index 0000000000..40a9c716e4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tile_wall_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag_tile_wall" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tiles_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tiles_to_polished_blackslag.json new file mode 100644 index 0000000000..9b551ab299 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/blackslag_tiles_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag.json new file mode 100644 index 0000000000..f84f1d1e4c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/chiseled_polished_blackslag_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:chiseled_polished_blackslag" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cobbled_blackslag_stairs_to_cobbled_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cobbled_blackslag_stairs_to_cobbled_blackslag.json new file mode 100644 index 0000000000..a0cf6b46b6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cobbled_blackslag_stairs_to_cobbled_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:cobbled_blackslag_stairs" + }, + "result": "spectrum:cobbled_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cobbled_blackslag_wall_to_cobbled_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cobbled_blackslag_wall_to_cobbled_blackslag.json new file mode 100644 index 0000000000..946e0ca911 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cobbled_blackslag_wall_to_cobbled_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:cobbled_blackslag_wall" + }, + "result": "spectrum:cobbled_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cracked_blackslag_tiles_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cracked_blackslag_tiles_to_polished_blackslag.json new file mode 100644 index 0000000000..4ad51790fd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/cracked_blackslag_tiles_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:cracked_blackslag_tiles" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_button_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_button_to_polished_blackslag.json new file mode 100644 index 0000000000..b8e12e46e1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_button_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_blackslag_button" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_pressure_plate_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_pressure_plate_to_polished_blackslag.json new file mode 100644 index 0000000000..7197e2d341 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_pressure_plate_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_blackslag_pressure_plate" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_stairs_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_stairs_to_polished_blackslag.json new file mode 100644 index 0000000000..ad030c6724 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_stairs_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_blackslag_stairs" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_wall_to_polished_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_wall_to_polished_blackslag.json new file mode 100644 index 0000000000..c818e96b16 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/blackslag_unsmelting/polished_blackslag_wall_to_polished_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_blackslag_wall" + }, + "result": "spectrum:polished_blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/calcite_brick_stairs_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_brick_stairs_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/calcite_brick_stairs_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_brick_stairs_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/calcite_brick_wall_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_brick_wall_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/calcite_brick_wall_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_brick_wall_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/calcite_bricks_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_bricks_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/calcite_bricks_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_bricks_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tile_stairs_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tile_stairs_to_polished_calcite.json new file mode 100644 index 0000000000..31554cd55a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tile_stairs_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:calcite_tile_stairs" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tile_wall_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tile_wall_to_polished_calcite.json new file mode 100644 index 0000000000..c75db4bdd8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tile_wall_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:calcite_tile_wall" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tiles_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tiles_to_polished_calcite.json new file mode 100644 index 0000000000..8f38e9cd3f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/calcite_tiles_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:calcite_tiles" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/chiseled_polished_calcite_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/chiseled_polished_calcite_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/chiseled_polished_calcite_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/chiseled_polished_calcite_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/cracked_calcite_tiles_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/cracked_calcite_tiles_to_polished_calcite.json new file mode 100644 index 0000000000..fd0fcb952c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/cracked_calcite_tiles_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:cracked_calcite_tiles" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/notched_polished_calcite_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/notched_polished_calcite_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/notched_polished_calcite_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/notched_polished_calcite_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_button_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_button_to_polished_calcite.json new file mode 100644 index 0000000000..0bf0b61ad0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_button_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_calcite_button" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_crest_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_crest_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_crest_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_crest_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_pillar_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_pillar_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_pillar_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_pillar_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_pressure_plate_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_pressure_plate_to_polished_calcite.json new file mode 100644 index 0000000000..80b9e1bc4f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_pressure_plate_to_polished_calcite.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:polished_calcite_pressure_plate" + }, + "result": "spectrum:polished_calcite", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_stairs_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_stairs_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_stairs_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_stairs_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_wall_to_polished_calcite.json b/src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_wall_to_polished_calcite.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/smelting/stone_deco_unsmelting/polished_calcite_wall_to_polished_calcite.json rename to src/main/resources/data/spectrum/recipes/smelting/calcite_unsmelting/polished_calcite_wall_to_polished_calcite.json diff --git a/src/main/resources/data/spectrum/recipes/smelting/cobbled_blackslag_to_blackslag.json b/src/main/resources/data/spectrum/recipes/smelting/cobbled_blackslag_to_blackslag.json new file mode 100644 index 0000000000..da89e23ef4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/cobbled_blackslag_to_blackslag.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:cobbled_blackslag" + }, + "result": "spectrum:blackslag", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/ore/paletur_fragment_from_paletur_ore_smelting.json b/src/main/resources/data/spectrum/recipes/smelting/ore/paletur_fragment_from_paletur_ore_smelting.json deleted file mode 100644 index 550853ef7c..0000000000 --- a/src/main/resources/data/spectrum/recipes/smelting/ore/paletur_fragment_from_paletur_ore_smelting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:smelting", - "ingredient": { - "item": "spectrum:paletur_ore" - }, - "result": "spectrum:paletur_fragments", - "experience": 0.2, - "cookingtime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/ore/paltaeria_fragment_from_paltaeria_ore_smelting.json b/src/main/resources/data/spectrum/recipes/smelting/ore/paltaeria_fragment_from_paltaeria_ore_smelting.json new file mode 100644 index 0000000000..a025109617 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/ore/paltaeria_fragment_from_paltaeria_ore_smelting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:paltaeria_ore" + }, + "result": "spectrum:paltaeria_fragments", + "experience": 0.2, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/ore/scarlet_fragment_from_scarlet_ore_smelting.json b/src/main/resources/data/spectrum/recipes/smelting/ore/scarlet_fragment_from_scarlet_ore_smelting.json deleted file mode 100644 index da2fe4c201..0000000000 --- a/src/main/resources/data/spectrum/recipes/smelting/ore/scarlet_fragment_from_scarlet_ore_smelting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:smelting", - "ingredient": { - "item": "spectrum:scarlet_ore" - }, - "result": "spectrum:scarlet_fragments", - "experience": 0.2, - "cookingtime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/ore/shimmerstone_gem_from_shimmerstone_ores_smelting.json b/src/main/resources/data/spectrum/recipes/smelting/ore/shimmerstone_gem_from_shimmerstone_ores_smelting.json new file mode 100644 index 0000000000..c8c7b57c7f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/ore/shimmerstone_gem_from_shimmerstone_ores_smelting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "tag": "spectrum:shimmerstone_ores" + }, + "result": "spectrum:shimmerstone_gem", + "experience": 0.1, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/ore/sparklestone_gem_from_sparklestone_ores_smelting.json b/src/main/resources/data/spectrum/recipes/smelting/ore/sparklestone_gem_from_sparklestone_ores_smelting.json deleted file mode 100644 index 0a48fa0094..0000000000 --- a/src/main/resources/data/spectrum/recipes/smelting/ore/sparklestone_gem_from_sparklestone_ores_smelting.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:smelting", - "ingredient": { - "tag": "spectrum:sparklestone_ores" - }, - "result": "spectrum:sparklestone_gem", - "experience": 0.1, - "cookingtime": 200 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/smelting/ore/stratine_fragment_from_stratine_ore_smelting.json b/src/main/resources/data/spectrum/recipes/smelting/ore/stratine_fragment_from_stratine_ore_smelting.json new file mode 100644 index 0000000000..cb02c3dc64 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/smelting/ore/stratine_fragment_from_stratine_ore_smelting.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "spectrum:stratine_ore" + }, + "result": "spectrum:stratine_fragments", + "experience": 0.2, + "cookingtime": 200 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/allay.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/allay.json new file mode 100644 index 0000000000..f1349bed95 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/allay.json @@ -0,0 +1,20 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:allay_head" + }, + "ingredient2": { + "item": "minecraft:amethyst_shard" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:allay\"}, TicksToManifest: 4}" + } +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_blue.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_blue.json index 81544b1404..f720d21ff7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_blue.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_blue.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:4}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:4}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_brown.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_brown.json index e9fa07ed9c..e3884ce996 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_brown.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_brown.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:1}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:1}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_cyan.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_cyan.json index 49f8686490..01b0ffc5d7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_cyan.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_cyan.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:3}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:3}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_gold.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_gold.json index 0a01d0ee8e..cc8ed5b8c7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_gold.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_gold.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:2}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:2}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_leucistic.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_leucistic.json index b03fd4e030..d2e3068a61 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_leucistic.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/axolotl_leucistic.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:0}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:axolotl\", Variant:0}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bat.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bat.json index deee38d8d9..015e37c596 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bat.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bat.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:bat\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:bat\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bee.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bee.json index 9a366d91ed..dd98f75070 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bee.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/bee.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:bee\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:bee\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/blaze.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/blaze.json index f35dfa0354..13c0d31db6 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/blaze.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/blaze.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:blaze\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:blaze\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cat.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cat.json index 7164162ae7..8c4f9104ed 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cat.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cat.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:cat\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:cat\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cave_spider.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cave_spider.json index 97c49b098b..ca9cd27381 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cave_spider.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cave_spider.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:cave_spider\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:cave_spider\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/chicken.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/chicken.json index abb2a07a41..cd43ca5a95 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/chicken.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/chicken.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:chicken\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:chicken\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/clownfish.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/clownfish.json index 2d50e21572..a22d457039 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/clownfish.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/clownfish.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:tropical_fish\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:tropical_fish\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cow.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cow.json index 4f403a99a1..442382ccb4 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cow.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/cow.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:cow\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:cow\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/creeper.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/creeper.json index 4a099ae815..06aaaf2970 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/creeper.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/creeper.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:creeper\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:creeper\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/donkey.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/donkey.json index 1b11debcc6..482cb0d68b 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/donkey.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/donkey.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:donkey\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:donkey\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/drowned.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/drowned.json index 05c764ff1b..6a7341e6d2 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/drowned.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/drowned.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:drowned\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:drowned\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/egg_laying_wooly_pig.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/egg_laying_wooly_pig.json index 12c696dc6b..5121c39a8c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/egg_laying_wooly_pig.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/egg_laying_wooly_pig.json @@ -15,7 +15,7 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"spectrum:egg_laying_wooly_pig\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"spectrum:egg_laying_wooly_pig\"}, TicksToManifest: 8}" }, "required_advancement": "spectrum:progression/unlock_egg_laying_wooly_pig_head" } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/elder_guardian.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/elder_guardian.json index 30db36651a..c5f5e7b4aa 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/elder_guardian.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/elder_guardian.json @@ -15,7 +15,7 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:elder_guardian\"}, TicksToManifest: 160}" + "nbt": "{EntityTag: {id: \"minecraft:elder_guardian\"}, TicksToManifest: 64}" }, "required_advancement": "spectrum:milestones/unlock_remembering_boss_memories" } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ender_dragon.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ender_dragon.json index 4a95eb1c27..7581bb8739 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ender_dragon.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ender_dragon.json @@ -15,7 +15,7 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:ender_dragon\"}, TicksToManifest: 160}" + "nbt": "{EntityTag: {id: \"minecraft:ender_dragon\"}, TicksToManifest: 64}" }, "required_advancement": "spectrum:milestones/unlock_remembering_boss_memories" } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/enderman.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/enderman.json index 0ba7ee8121..6ec100ade6 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/enderman.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/enderman.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:enderman\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:enderman\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/endermite.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/endermite.json index e58da180e3..7902a56f96 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/endermite.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/endermite.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:endermite\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:endermite\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/evoker.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/evoker.json index eccbea8906..ed5e5d5e6a 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/evoker.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/evoker.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:evoker\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:evoker\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox.json index 471435ebe1..fd4bc9720d 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox.json @@ -15,7 +15,7 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:fox\", Type: \"red\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:fox\", Type: \"red\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox_arctic.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox_arctic.json index edd2f5b22e..95fb9baf2c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox_arctic.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/fox_arctic.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:fox\", Type: \"snow\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:fox\", Type: \"snow\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_cold.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_cold.json new file mode 100644 index 0000000000..9f4f116526 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_cold.json @@ -0,0 +1,20 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:frog_cold_head" + }, + "ingredient2": { + "item": "minecraft:slime_ball" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:frog\", variant: \"minecraft:cold\"}, TicksToManifest: 4}" + } +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_temperate.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_temperate.json new file mode 100644 index 0000000000..31c955121a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_temperate.json @@ -0,0 +1,20 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:frog_temperate_head" + }, + "ingredient2": { + "item": "minecraft:slime_ball" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:frog\", variant: \"minecraft:temperate\"}, TicksToManifest: 4}" + } +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_warm.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_warm.json new file mode 100644 index 0000000000..7b582d0ee7 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/frog_warm.json @@ -0,0 +1,20 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:frog_warm_head" + }, + "ingredient2": { + "item": "minecraft:slime_ball" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:frog\", variant: \"minecraft:warm\"}, TicksToManifest: 4}" + } +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ghast.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ghast.json index 8ef3e782f4..6f9eca9de7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ghast.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ghast.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:ghast\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:ghast\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/glow_squid.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/glow_squid.json index 71d7f8d827..6c75a76bf9 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/glow_squid.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/glow_squid.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:glow_squid\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:glow_squid\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/goat.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/goat.json index 9803bd55f0..9378820299 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/goat.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/goat.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:goat\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:goat\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/guardian.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/guardian.json index c6aca2e221..df48ac65ce 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/guardian.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/guardian.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:guardian\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:guardian\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/hoglin.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/hoglin.json index bde695d241..2912844773 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/hoglin.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/hoglin.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:hoglin\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:hoglin\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/horse.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/horse.json index 3e6cea26c6..9340abcdd5 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/horse.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/horse.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:horse\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:horse\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/husk.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/husk.json index 12ca292f9f..0a3f6a0b33 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/husk.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/husk.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:husk\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:husk\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/illusioner.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/illusioner.json index 5cb4a8d52a..5bb903a219 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/illusioner.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/illusioner.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:illusioner\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:illusioner\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/iron_golem.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/iron_golem.json index f8fa47d423..1baaf9ef82 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/iron_golem.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/iron_golem.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:iron_golem\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:iron_golem\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/llama.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/llama.json index fd675b87a7..6584f86fa5 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/llama.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/llama.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:llama\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:llama\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/magma_cube.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/magma_cube.json index dd21f38bc0..a90a9f31b7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/magma_cube.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/magma_cube.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:magma_cube\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:magma_cube\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_brown.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_brown.json index 3ed9c39699..826e9f2544 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_brown.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_brown.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:mooshroom\", Type: \"brown\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:mooshroom\", Type: \"brown\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_red.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_red.json index 85ab466af6..967dbdd625 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_red.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mooshroom_red.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:mooshroom\", Type: \"red\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:mooshroom\", Type: \"red\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mule.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mule.json index c14f0287e6..882c9b9234 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mule.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/mule.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:mule\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:mule\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ocelot.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ocelot.json index 3bb69a6c3a..59e75d6ca7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ocelot.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ocelot.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:ocelot\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:ocelot\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/panda.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/panda.json index 3fc6a72740..3e2a085990 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/panda.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/panda.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:panda\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:panda\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_blue.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_blue.json index c5466813ff..bca2414723 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_blue.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_blue.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 1}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 1}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_cyan.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_cyan.json index 6d38f9e847..557714c93b 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_cyan.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_cyan.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 3}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 3}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_gray.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_gray.json index ccf6e82885..b3d0e94781 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_gray.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_gray.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 4}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 4}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_green.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_green.json index 1c3384db3c..c096d965bb 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_green.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_green.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 2}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 2}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_red.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_red.json index 81cf9cceab..2828573eae 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_red.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/parrot_red.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 0}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:parrot\", Variant: 0}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/phantom.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/phantom.json index 8ca020e16b..9f8c313f4d 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/phantom.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/phantom.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:phantom\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:phantom\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pig.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pig.json index f8c8949f54..c4fa9f604c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pig.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pig.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:pig\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:pig\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/piglin.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/piglin.json index 217171beac..c21e043df9 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/piglin.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/piglin.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:piglin\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:piglin\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/polar_bear.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/polar_bear.json index 13b1296961..33224a148b 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/polar_bear.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/polar_bear.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:polar_bear\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:polar_bear\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pufferfish.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pufferfish.json index 65a0c2b5f3..84380a1554 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pufferfish.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/pufferfish.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:pufferfish\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:pufferfish\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/rabbit.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/rabbit.json index 3d80b9d5e6..af6755e169 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/rabbit.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/rabbit.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:rabbit\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:rabbit\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ravager.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ravager.json index eb0baa2b20..f6d9be1ba8 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ravager.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/ravager.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:ravager\"}, TicksToManifest: 120}" + "nbt": "{EntityTag: {id: \"minecraft:ravager\"}, TicksToManifest: 32}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/salmon.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/salmon.json index 0e6424f739..fb993acb11 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/salmon.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/salmon.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:salmon\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:salmon\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_black.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_black.json index 17a4edb90f..b776c38545 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_black.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_black.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:15}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:15}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_blue.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_blue.json index aaf579b94f..e1019ee5fd 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_blue.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_blue.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:11}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:11}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_brown.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_brown.json index b12ecf916c..afdc4da4c8 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_brown.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_brown.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:12}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:12}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_cyan.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_cyan.json index 9f64b8649d..f05127722a 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_cyan.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_cyan.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:9}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:9}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_gray.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_gray.json index e5da91eebd..8dc4050b97 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_gray.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_gray.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:7}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:7}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_green.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_green.json index 7a60d8c906..94a352d7f6 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_green.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_green.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:13}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:13}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_blue.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_blue.json index 896af02a77..794242be6b 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_blue.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_blue.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:3}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:3}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_gray.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_gray.json index 074114b349..d4bb2e64d9 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_gray.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_light_gray.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:8}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:8}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_lime.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_lime.json index 6cf98f9203..fe83a66334 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_lime.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_lime.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:5}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:5}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_magenta.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_magenta.json index fd16435056..ff6dc6c152 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_magenta.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_magenta.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:2}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:2}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_orange.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_orange.json index a1979c5a99..aadf644d1c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_orange.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_orange.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:1}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:1}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_pink.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_pink.json index f7553663f3..da867a0438 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_pink.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_pink.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:6}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:6}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_purple.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_purple.json index b5a2b47ad5..248b2ffd7a 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_purple.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_purple.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:10}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:10}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_red.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_red.json index 26c7c9411f..a6b6f46e2a 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_red.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_red.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:14}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:14}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_white.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_white.json index 0dd9611434..2630cb58b7 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_white.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_white.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:0}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:0}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_yellow.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_yellow.json index 339a950162..1a4680c179 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_yellow.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/sheep_yellow.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:4}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:sheep\", Color:4}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker.json new file mode 100644 index 0000000000..a4aff1a57a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker.json @@ -0,0 +1,20 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:shulker_head" + }, + "ingredient2": { + "item": "minecraft:popped_chorus_fruit" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:16}, TicksToManifest: 16}" + } +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_black.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_black.json index 2cebcf35b7..80e93a154e 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_black.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_black.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:15}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:15}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_blue.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_blue.json index e6aeb95e8e..f3568cd8a3 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_blue.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_blue.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:11}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:11}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_brown.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_brown.json index 92bc44ab7f..98b42442ce 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_brown.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_brown.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:12}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:12}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_cyan.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_cyan.json index 14c3695418..46d3f9290a 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_cyan.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_cyan.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:9}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:9}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_gray.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_gray.json index ac429972cb..b491eef76c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_gray.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_gray.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:7}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:7}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_green.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_green.json index 00f198cccf..29db325b49 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_green.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_green.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:13}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:13}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_blue.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_blue.json index 627fa6214d..7d441a57c3 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_blue.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_blue.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:3}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:3}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_gray.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_gray.json index 6bb4f8e314..8f7b7d28a3 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_gray.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_light_gray.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:8}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:8}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_lime.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_lime.json index baf08dcafa..c98b9f1def 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_lime.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_lime.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:5}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:5}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_magenta.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_magenta.json index bf59b3f487..b2b6066f39 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_magenta.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_magenta.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:2}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:2}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_orange.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_orange.json index 42d75c264a..cd0c04bd8b 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_orange.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_orange.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:1}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:1}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_pink.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_pink.json index e36045c975..028b0712ea 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_pink.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_pink.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:6}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:6}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_purple.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_purple.json index 350596998b..f23a2603fc 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_purple.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_purple.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:10}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:10}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_red.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_red.json index 5c06423470..fd25c24345 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_red.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_red.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:14}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:14}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_white.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_white.json index ebe7ae704c..0b0022fef8 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_white.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_white.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:0}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:0}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_yellow.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_yellow.json index 4f91451ec9..edcbe6a73c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_yellow.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/shulker_yellow.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:4}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:shulker\", Color:4}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/silverfish.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/silverfish.json index d92dab5c30..c2a20284b4 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/silverfish.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/silverfish.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:silverfish\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:silverfish\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/skeleton.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/skeleton.json index 3647655aa4..247fadf95b 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/skeleton.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/skeleton.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:skeleton\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:skeleton\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/slime.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/slime.json index 3c8b8e3766..d01b066501 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/slime.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/slime.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:slime\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:slime\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/snow_golem.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/snow_golem.json index c203bafa79..f2f09b5519 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/snow_golem.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/snow_golem.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:snow_golem\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:snow_golem\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/spider.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/spider.json index 69797ea330..669bde1d5a 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/spider.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/spider.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:spider\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:spider\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/squid.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/squid.json index 4397a08548..e0c6806732 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/squid.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/squid.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:squid\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:squid\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/stray.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/stray.json index ab1d64461d..1d426c2f3f 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/stray.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/stray.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:stray\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:stray\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/strider.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/strider.json index c7c3957f6e..e83c2a99cb 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/strider.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/strider.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:strider\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:strider\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/tadpole.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/tadpole.json new file mode 100644 index 0000000000..b8f5b8f5d6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/tadpole.json @@ -0,0 +1,20 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:tadpole_head" + }, + "ingredient2": { + "item": "minecraft:slime_ball" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:tadpole\"}, TicksToManifest: 8}" + } +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/trader_llama.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/trader_llama.json index fbcab2bb0b..633a0e09f1 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/trader_llama.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/trader_llama.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:trader_llama\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:trader_llama\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/turtle.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/turtle.json index 6011f767f3..8a7f8378cd 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/turtle.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/turtle.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:turtle\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:turtle\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vex.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vex.json index 06467872c2..1ee347d2e2 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vex.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vex.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:vex\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:vex\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/villager.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/villager.json index 12793748f1..43da6d8123 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/villager.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/villager.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:villager\"}, TicksToManifest: 120}" + "nbt": "{EntityTag: {id: \"minecraft:villager\"}, TicksToManifest: 32}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vindicator.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vindicator.json index e396681f58..b71291a55d 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vindicator.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/vindicator.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:vindicator\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:vindicator\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wandering_trader.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wandering_trader.json index 1dfa9a1e18..d5472fa5c2 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wandering_trader.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wandering_trader.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:wandering_trader\"}, TicksToManifest: 20}" + "nbt": "{EntityTag: {id: \"minecraft:wandering_trader\"}, TicksToManifest: 4}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/warden.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/warden.json new file mode 100644 index 0000000000..3f39b79b8c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/warden.json @@ -0,0 +1,21 @@ +{ + "type": "spectrum:spirit_instiller", + "group": "boss_memories", + "time": 800, + "experience": 4.0, + "ingredient1": { + "item": "spectrum:warden_head" + }, + "ingredient2": { + "item": "minecraft:sculk_catalyst" + }, + "center_ingredient": { + "tag": "spectrum:memory_bonding_agents", + "count": 4 + }, + "result": { + "item": "spectrum:memory", + "nbt": "{EntityTag: {id: \"minecraft:warden\"}, TicksToManifest: 8}" + }, + "required_advancement": "spectrum:milestones/unlock_remembering_boss_memories" +} diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither.json index ec8f38c0ff..28e152f9a0 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither.json @@ -15,7 +15,7 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:wither\"}, TicksToManifest: 160}" + "nbt": "{EntityTag: {id: \"minecraft:wither\"}, TicksToManifest: 64}" }, "required_advancement": "spectrum:milestones/unlock_remembering_boss_memories" } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither_skeleton.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither_skeleton.json index e1cc54ee9f..2e9e9e5a95 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither_skeleton.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wither_skeleton.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:wither_skeleton\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:wither_skeleton\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wolf.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wolf.json index 79dc4c507a..341f98d473 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wolf.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/wolf.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:wolf\"}, TicksToManifest: 40}" + "nbt": "{EntityTag: {id: \"minecraft:wolf\"}, TicksToManifest: 8}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zoglin.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zoglin.json index 3f802ca209..c42936d833 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zoglin.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zoglin.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:zoglin\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:zoglin\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie.json index 1ae9533646..7c6f86012c 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:zombie\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:zombie\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie_villager.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie_villager.json index 1f4ccdee56..e9a0c65995 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie_villager.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombie_villager.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:zombie_villager\"}, TicksToManifest: 120}" + "nbt": "{EntityTag: {id: \"minecraft:zombie_villager\"}, TicksToManifest: 32}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombified_piglin.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombified_piglin.json index 41f16d1be9..fe42bba704 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombified_piglin.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/memories/zombified_piglin.json @@ -15,6 +15,6 @@ }, "result": { "item": "spectrum:memory", - "nbt": "{EntityTag: {id: \"minecraft:zombified_piglin\"}, TicksToManifest: 80}" + "nbt": "{EntityTag: {id: \"minecraft:zombified_piglin\"}, TicksToManifest: 16}" } } diff --git a/src/main/resources/data/spectrum/recipes/spirit_instiller/ominous_sapling.json b/src/main/resources/data/spectrum/recipes/spirit_instiller/ominous_sapling.json index 305b430d68..2d76098567 100644 --- a/src/main/resources/data/spectrum/recipes/spirit_instiller/ominous_sapling.json +++ b/src/main/resources/data/spectrum/recipes/spirit_instiller/ominous_sapling.json @@ -14,5 +14,5 @@ "result": { "item": "spectrum:ominous_sapling" }, - "required_advancement": "spectrum:__lategame/spectrum_lategame" + "required_advancement": "spectrum:__lategame/build_complex_pedestal_structure" } diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_slab_from_polished_basalt_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_slab_from_polished_basalt_bricks_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_slab_from_polished_basalt_bricks_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_slab_from_polished_basalt_bricks_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_slab_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_slab_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_slab_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_slab_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_stairs_from_polished_basalt_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_stairs_from_polished_basalt_bricks_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_stairs_from_polished_basalt_bricks_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_stairs_from_polished_basalt_bricks_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_stairs_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_stairs_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_stairs_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_stairs_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_wall_from_polished_basalt_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_wall_from_polished_basalt_bricks_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_wall_from_polished_basalt_bricks_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_wall_from_polished_basalt_bricks_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_wall_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_wall_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_brick_wall_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_brick_wall_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt_bricks_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_bricks_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/basalt_bricks_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_bricks_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_slab_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_slab_from_polished_basalt_stonecutting.json new file mode 100644 index 0000000000..74a85ecb7d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_slab_from_polished_basalt_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_basalt" + }, + "result": "spectrum:basalt_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_slab_from_polished_basalt_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_slab_from_polished_basalt_tiles_stonecutting.json new file mode 100644 index 0000000000..d021856e45 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_slab_from_polished_basalt_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:basalt_tiles" + }, + "result": "spectrum:basalt_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_stairs_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_stairs_from_polished_basalt_stonecutting.json new file mode 100644 index 0000000000..c8505d406d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_stairs_from_polished_basalt_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_basalt" + }, + "result": "spectrum:basalt_tile_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_stairs_from_polished_basalt_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_stairs_from_polished_basalt_tiles_stonecutting.json new file mode 100644 index 0000000000..0c79d49965 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/basalt_tile_stairs_from_polished_basalt_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:basalt_tiles" + }, + "result": "spectrum:basalt_tile_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/chiseled_polished_basalt_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/chiseled_polished_basalt_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/chiseled_polished_basalt_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/chiseled_polished_basalt_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/cracked_basalt_bricks_from_basalt_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/cracked_basalt_bricks_from_basalt_bricks_stonecutting.json new file mode 100644 index 0000000000..20f4dfa870 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/cracked_basalt_bricks_from_basalt_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:basalt_bricks" + }, + "result": "spectrum:cracked_basalt_bricks", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/cracked_basalt_tiles_from_basalt_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/cracked_basalt_tiles_from_basalt_tiles_stonecutting.json new file mode 100644 index 0000000000..b6f7c29399 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/cracked_basalt_tiles_from_basalt_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:basalt_tiles" + }, + "result": "spectrum:cracked_basalt_tiles", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/notched_polished_basalt_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/notched_polished_basalt_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/notched_polished_basalt_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/notched_polished_basalt_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_crest_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_crest_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_crest_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_crest_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_pillar_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_pillar_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_pillar_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_pillar_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_slab_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_slab_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_slab_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_slab_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_stairs_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_stairs_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_stairs_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_stairs_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_wall_from_polished_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_wall_from_polished_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_basalt_wall_from_polished_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/polished_basalt_wall_from_polished_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_slab_from_smooth_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_slab_from_smooth_basalt_stonecutting.json new file mode 100644 index 0000000000..93ee5a163b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_slab_from_smooth_basalt_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:basalt" + }, + "result": "spectrum:smooth_basalt_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_stairs_from_smooth_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_stairs_from_smooth_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_stairs_from_smooth_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_stairs_from_smooth_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_wall_from_smooth_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_wall_from_smooth_basalt_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_wall_from_smooth_basalt_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/basalt/smooth_basalt_wall_from_smooth_basalt_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/ancient_chiseled_polished_blackslag_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/ancient_chiseled_polished_blackslag_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..6ce36b3189 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/ancient_chiseled_polished_blackslag_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:ancient_chiseled_polished_blackslag", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_slab_from_polished_blackslag_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_slab_from_polished_blackslag_bricks_stonecutting.json new file mode 100644 index 0000000000..db29c5f6da --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_slab_from_polished_blackslag_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "result": "spectrum:blackslag_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_slab_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_slab_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..a56d70ae1b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_slab_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_stairs_from_polished_blackslag_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_stairs_from_polished_blackslag_bricks_stonecutting.json new file mode 100644 index 0000000000..eeecbb3a16 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_stairs_from_polished_blackslag_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "result": "spectrum:blackslag_brick_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_stairs_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_stairs_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..32d2254cd9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_stairs_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_brick_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_wall_from_polished_blackslag_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_wall_from_polished_blackslag_bricks_stonecutting.json new file mode 100644 index 0000000000..a5459357e5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_wall_from_polished_blackslag_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "result": "spectrum:blackslag_brick_wall", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_wall_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_wall_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..e8eb73c4ca --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_brick_wall_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_brick_wall", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_bricks_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_bricks_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..699802848a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_bricks_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_bricks", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_slab_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_slab_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..5f60fa43c8 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_slab_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_slab_from_polished_blackslag_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_slab_from_polished_blackslag_tiles_stonecutting.json new file mode 100644 index 0000000000..d48120369a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_slab_from_polished_blackslag_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "result": "spectrum:blackslag_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_stairs_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_stairs_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..7910df0fbe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_stairs_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_tile_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_stairs_from_polished_blackslag_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_stairs_from_polished_blackslag_tiles_stonecutting.json new file mode 100644 index 0000000000..ff7af242ef --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_stairs_from_polished_blackslag_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "result": "spectrum:blackslag_tile_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_wall_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_wall_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..becf51f14d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_wall_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_tile_wall", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_wall_from_polished_blackslag_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_wall_from_polished_blackslag_tiles_stonecutting.json new file mode 100644 index 0000000000..1106053625 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tile_wall_from_polished_blackslag_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "result": "spectrum:blackslag_tile_wall", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tiles_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tiles_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..2540b56c48 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/blackslag_tiles_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:blackslag_tiles", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/chiseled_polished_blackslag_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/chiseled_polished_blackslag_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..4f4862e9a4 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/chiseled_polished_blackslag_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:chiseled_polished_blackslag", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_slab_from_cobbled_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_slab_from_cobbled_blackslag_stonecutting.json new file mode 100644 index 0000000000..18808fbce1 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_slab_from_cobbled_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:cobbled_blackslag" + }, + "result": "spectrum:cobbled_blackslag_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_stairs_from_cobbled_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_stairs_from_cobbled_blackslag_stonecutting.json new file mode 100644 index 0000000000..ddabe40e03 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_stairs_from_cobbled_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:cobbled_blackslag" + }, + "result": "spectrum:cobbled_blackslag_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_wall_from_cobbled_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_wall_from_cobbled_blackslag_stonecutting.json new file mode 100644 index 0000000000..0cb967242e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cobbled_blackslag_wall_from_cobbled_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:cobbled_blackslag" + }, + "result": "spectrum:cobbled_blackslag_wall", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cracked_blackslag_bricks_from_blackslag_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cracked_blackslag_bricks_from_blackslag_bricks_stonecutting.json new file mode 100644 index 0000000000..9a929f87ba --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cracked_blackslag_bricks_from_blackslag_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_bricks" + }, + "result": "spectrum:cracked_blackslag_bricks", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cracked_blackslag_tiles_from_blackslag_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cracked_blackslag_tiles_from_blackslag_tiles_stonecutting.json new file mode 100644 index 0000000000..9d4a512add --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/cracked_blackslag_tiles_from_blackslag_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:blackslag_tiles" + }, + "result": "spectrum:cracked_blackslag_tiles", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_pillar_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_pillar_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..8dbd00a35c --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_pillar_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:polished_blackslag_pillar", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_slab_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_slab_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..5eaa583205 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_slab_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:polished_blackslag_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_stairs_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_stairs_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..834ec425d9 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_stairs_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:polished_blackslag_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_wall_from_polished_blackslag_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_wall_from_polished_blackslag_stonecutting.json new file mode 100644 index 0000000000..89be96fbc5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/blackslag/polished_blackslag_wall_from_polished_blackslag_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_blackslag" + }, + "result": "spectrum:polished_blackslag_wall", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_slab_from_polished_calcite_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_slab_from_polished_calcite_bricks_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_slab_from_polished_calcite_bricks_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_slab_from_polished_calcite_bricks_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_slab_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_slab_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_slab_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_slab_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_stairs_from_polished_calcite_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_stairs_from_polished_calcite_bricks_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_stairs_from_polished_calcite_bricks_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_stairs_from_polished_calcite_bricks_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_stairs_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_stairs_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_stairs_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_stairs_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_wall_from_polished_calcite_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_wall_from_polished_calcite_bricks_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_wall_from_polished_calcite_bricks_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_wall_from_polished_calcite_bricks_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_wall_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_wall_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_brick_wall_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_brick_wall_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_bricks_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_bricks_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_bricks_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_bricks_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_slab_from_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_slab_from_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_slab_from_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_slab_from_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_stairs_from_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_stairs_from_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_stairs_from_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_stairs_from_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_slab_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_slab_from_polished_calcite_stonecutting.json new file mode 100644 index 0000000000..d718082714 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_slab_from_polished_calcite_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_calcite" + }, + "result": "spectrum:calcite_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_slab_from_polished_calcite_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_slab_from_polished_calcite_tiles_stonecutting.json new file mode 100644 index 0000000000..29d2d95822 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_slab_from_polished_calcite_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:calcite_tiles" + }, + "result": "spectrum:calcite_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_stairs_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_stairs_from_polished_calcite_stonecutting.json new file mode 100644 index 0000000000..04de073ce0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_stairs_from_polished_calcite_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_calcite" + }, + "result": "spectrum:calcite_tile_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_stairs_from_polished_calcite_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_stairs_from_polished_calcite_tiles_stonecutting.json new file mode 100644 index 0000000000..8dda783a6a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_tile_stairs_from_polished_calcite_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:calcite_tiles" + }, + "result": "spectrum:calcite_tile_stairs", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite_wall_from_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_wall_from_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/calcite_wall_from_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/calcite_wall_from_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/chiseled_polished_calcite_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/chiseled_polished_calcite_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/chiseled_polished_calcite_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/chiseled_polished_calcite_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite/cracked_calcite_bricks_from_calcite_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/cracked_calcite_bricks_from_calcite_bricks_stonecutting.json new file mode 100644 index 0000000000..acc8211473 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/cracked_calcite_bricks_from_calcite_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:calcite_bricks" + }, + "result": "spectrum:cracked_calcite_bricks", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/calcite/cracked_calcite_tiles_from_calcite_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/cracked_calcite_tiles_from_calcite_tiles_stonecutting.json new file mode 100644 index 0000000000..5d42532e83 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/cracked_calcite_tiles_from_calcite_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:calcite_tiles" + }, + "result": "spectrum:cracked_calcite_tiles", + "count": 1 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/notched_polished_calcite_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/notched_polished_calcite_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/notched_polished_calcite_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/notched_polished_calcite_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_crest_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_crest_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_crest_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_crest_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_pillar_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_pillar_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_pillar_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_pillar_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_slab_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_slab_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_slab_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_slab_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_stairs_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_stairs_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_stairs_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_stairs_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_wall_from_polished_calcite_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_wall_from_polished_calcite_stonecutting.json similarity index 100% rename from src/main/resources/data/spectrum/recipes/stonecutting/polished_calcite_wall_from_polished_calcite_stonecutting.json rename to src/main/resources/data/spectrum/recipes/stonecutting/calcite/polished_calcite_wall_from_polished_calcite_stonecutting.json diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_polished_shale_clay_slab_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_polished_shale_clay_slab_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..186cb60e29 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_polished_shale_clay_slab_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_polished_shale_clay_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_polished_shale_clay_stairs_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_polished_shale_clay_stairs_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..5a29796659 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_polished_shale_clay_stairs_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_polished_shale_clay_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_slab_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_slab_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..91e4062c1b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_slab_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_shale_clay_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_slab_from_exposed_shale_clay_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_slab_from_exposed_shale_clay_bricks_stonecutting.json new file mode 100644 index 0000000000..bbbe96edcb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_slab_from_exposed_shale_clay_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_bricks" + }, + "result": "spectrum:exposed_shale_clay_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_stairs_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_stairs_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..e897ed71b0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_stairs_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_shale_clay_brick_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_stairs_from_exposed_shale_clay_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_stairs_from_exposed_shale_clay_bricks_stonecutting.json new file mode 100644 index 0000000000..952367760a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_brick_stairs_from_exposed_shale_clay_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_bricks" + }, + "result": "spectrum:exposed_shale_clay_brick_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_bricks_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_bricks_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..d5183ad1da --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_bricks_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_shale_clay_bricks", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_slab_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_slab_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..5e020024bd --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_slab_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_shale_clay_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_slab_from_exposed_shale_clay_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_slab_from_exposed_shale_clay_tiles_stonecutting.json new file mode 100644 index 0000000000..b6f30bb8ed --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_slab_from_exposed_shale_clay_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_tiles" + }, + "result": "spectrum:exposed_shale_clay_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_stairs_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_stairs_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..8b68eb3efa --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_stairs_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_shale_clay_tile_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_stairs_from_exposed_shale_clay_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_stairs_from_exposed_shale_clay_tiles_stonecutting.json new file mode 100644 index 0000000000..25484baf3b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tile_stairs_from_exposed_shale_clay_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_shale_clay_tiles" + }, + "result": "spectrum:exposed_shale_clay_tile_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tiles_from_exposed_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tiles_from_exposed_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..8fa7b3c9c0 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/exposed_shale_clay_tiles_from_exposed_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:exposed_polished_shale_clay" + }, + "result": "spectrum:exposed_shale_clay_tiles", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/polished_shale_clay_slab_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/polished_shale_clay_slab_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..b2d0021c44 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/polished_shale_clay_slab_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:polished_shale_clay_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/polished_shale_clay_stairs_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/polished_shale_clay_stairs_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..e422cc5197 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/polished_shale_clay_stairs_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:polished_shale_clay_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_slab_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_slab_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..88719f2835 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_slab_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:shale_clay_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_slab_from_shale_clay_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_slab_from_shale_clay_bricks_stonecutting.json new file mode 100644 index 0000000000..05865448d6 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_slab_from_shale_clay_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:shale_clay_bricks" + }, + "result": "spectrum:shale_clay_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_stairs_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_stairs_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..a58402b5fb --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_stairs_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:shale_clay_brick_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_stairs_from_shale_clay_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_stairs_from_shale_clay_bricks_stonecutting.json new file mode 100644 index 0000000000..d85796aefe --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_brick_stairs_from_shale_clay_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:shale_clay_bricks" + }, + "result": "spectrum:shale_clay_brick_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_bricks_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_bricks_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..3051379797 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_bricks_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:shale_clay_bricks", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_slab_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_slab_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..3fd444ee24 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_slab_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:shale_clay_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_slab_from_shale_clay_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_slab_from_shale_clay_tiles_stonecutting.json new file mode 100644 index 0000000000..25cb3e309d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_slab_from_shale_clay_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:shale_clay_tiles" + }, + "result": "spectrum:shale_clay_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_stairs_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_stairs_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..66f0802755 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_stairs_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:shale_clay_tile_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_stairs_from_shale_clay_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_stairs_from_shale_clay_tiles_stonecutting.json new file mode 100644 index 0000000000..0edc71beea --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tile_stairs_from_shale_clay_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:shale_clay_tiles" + }, + "result": "spectrum:shale_clay_tile_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tiles_from_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tiles_from_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..2e507eae85 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/shale_clay_tiles_from_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:polished_shale_clay" + }, + "result": "spectrum:shale_clay_tiles", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_polished_shale_clay_slab_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_polished_shale_clay_slab_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..c4a730b022 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_polished_shale_clay_slab_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_polished_shale_clay_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_polished_shale_clay_stairs_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_polished_shale_clay_stairs_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..984390c143 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_polished_shale_clay_stairs_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_polished_shale_clay_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_slab_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_slab_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..a6338d925a --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_slab_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_shale_clay_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_slab_from_weathered_shale_clay_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_slab_from_weathered_shale_clay_bricks_stonecutting.json new file mode 100644 index 0000000000..5d3028c51f --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_slab_from_weathered_shale_clay_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_shale_clay_bricks" + }, + "result": "spectrum:weathered_shale_clay_brick_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_stairs_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_stairs_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..f0ab872277 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_stairs_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_shale_clay_brick_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_stairs_from_weathered_shale_clay_bricks_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_stairs_from_weathered_shale_clay_bricks_stonecutting.json new file mode 100644 index 0000000000..62c0bda43b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_brick_stairs_from_weathered_shale_clay_bricks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_shale_clay_bricks" + }, + "result": "spectrum:weathered_shale_clay_brick_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_bricks_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_bricks_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..5069220803 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_bricks_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_shale_clay_bricks", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_slab_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_slab_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..d1588dbf15 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_slab_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_shale_clay_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_slab_from_weathered_shale_clay_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_slab_from_weathered_shale_clay_tiles_stonecutting.json new file mode 100644 index 0000000000..c27185c3f5 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_slab_from_weathered_shale_clay_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_shale_clay_tiles" + }, + "result": "spectrum:weathered_shale_clay_tile_slab", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_stairs_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_stairs_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..a49ef46f84 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_stairs_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_shale_clay_tile_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_stairs_from_weathered_shale_clay_tiles_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_stairs_from_weathered_shale_clay_tiles_stonecutting.json new file mode 100644 index 0000000000..2e9affd2a3 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tile_stairs_from_weathered_shale_clay_tiles_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_shale_clay_tiles" + }, + "result": "spectrum:weathered_shale_clay_tile_stairs", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tiles_from_weathered_polished_shale_clay_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tiles_from_weathered_polished_shale_clay_stonecutting.json new file mode 100644 index 0000000000..960c47b98b --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/stonecutting/shale_clay/weathered_shale_clay_tiles_from_weathered_polished_shale_clay_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "spectrum:weathered_polished_shale_clay" + }, + "result": "spectrum:weathered_shale_clay_tiles", + "count": 2 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_slab_from_smooth_basalt_stonecutting.json b/src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_slab_from_smooth_basalt_stonecutting.json deleted file mode 100644 index d14bf03543..0000000000 --- a/src/main/resources/data/spectrum/recipes/stonecutting/smooth_basalt_slab_from_smooth_basalt_stonecutting.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:stonecutting", - "ingredient": { - "item": "minecraft:basalt" - }, - "result": "spectrum:basalt_slab", - "count": 2 -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/clotted_cream.json b/src/main/resources/data/spectrum/recipes/titration_barrel/clotted_cream.json index 882d99d454..14ee2a44bc 100644 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/clotted_cream.json +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/clotted_cream.json @@ -13,6 +13,6 @@ "min_fermentation_time_hours": 1, "result": { "item": "spectrum:clotted_cream", - "count": 8 + "count": 4 } } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/ale.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/ale.json index 3e2d244a4c..e44345009b 100644 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/ale.json +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/ale.json @@ -60,11 +60,11 @@ "min_alc": 7 }, { - "min_alc": 14, + "min_alc": 9, "potency": 1 }, { - "min_alc": 21, + "min_alc": 11, "potency": 2 } ] diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/artemisa.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/artemisa.json index 81ffa87655..e84a90f30e 100644 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/artemisa.json +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/artemisa.json @@ -34,7 +34,7 @@ }, { "min_alc": 30, - "potency": 1 + "potency": 2 } ] }, diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/beer.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/beer.json index 3757006a9f..3e94a57ad7 100644 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/beer.json +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/beer.json @@ -52,11 +52,11 @@ "min_alc": 7 }, { - "min_alc": 14, + "min_alc": 9, "potency": 1 }, { - "min_alc": 21, + "min_alc": 11, "potency": 2 } ] diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/lager.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/lager.json index ce6715fae0..48fe08201f 100644 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/lager.json +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/lager.json @@ -56,11 +56,11 @@ "min_alc": 7 }, { - "min_alc": 14, + "min_alc": 9, "potency": 1 }, { - "min_alc": 21, + "min_alc": 11, "potency": 2 } ] diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/moonshine.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/moonshine.json new file mode 100644 index 0000000000..ef398097f2 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/moonshine.json @@ -0,0 +1,103 @@ +{ + "type": "spectrum:titration_barrel", + "ingredients": [ + { + "item": "minecraft:glow_berries", + "count": 8 + }, + { + "item": "spectrum:moonstone_powder", + "count": 4 + }, + { + "item": "spectrum:stardust", + "count": 4 + }, + { + "item": "spectrum:paltaeria_fragments", + "count": 2 + } + ], + "fluid": "spectrum:liquid_crystal", + "min_fermentation_time_hours": 24, + "tapping_item": "minecraft:glass_bottle", + "fermentation_data": { + "fermentation_speed_mod": 0.25, + "effects": [ + { + "id": "minecraft:invisibility", + "base_duration": 1200 + }, + { + "id": "spectrum:lightweight", + "base_duration": 1200, + "potency": [ + { + "potency": 0 + }, + { + "min_alc": 30, + "potency": 1 + }, + { + "min_alc": 32, + "potency": 2 + } + ] + }, + { + "id": "minecraft:jump_boost", + "base_duration": 1200, + "potency": [ + { + "potency": 0 + }, + { + "min_alc": 30, + "potency": 1 + }, + { + "min_alc": 32, + "potency": 2 + } + ] + }, + { + "id": "minecraft:slowness", + "base_duration": 1200, + "potency": [ + { + "potency": 2 + }, + { + "min_alc": 30, + "potency": 1 + }, + { + "min_alc": 32, + "potency": 0 + } + ] + }, + { + "id": "minecraft:nausea", + "base_duration": 200, + "potency": [ + { + "min_thickness": 2 + }, + { + "min_thickness": 3, + "potency": 1 + } + ] + } + ] + }, + "result": { + "item": "spectrum:infused_beverage", + "count": 4, + "nbt": "{Variant: \"moonshine\", Color: 14151663 }" + }, + "required_advancement": "spectrum:progression/unlock_moonshine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/myceylon_apple_juice.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/myceylon_apple_juice.json new file mode 100644 index 0000000000..34d930527d --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/myceylon_apple_juice.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:titration_barrel", + "ingredients": [ + { + "item": "minecraft:apple", + "count": 4 + }, + { + "item": "spectrum:myceylon", + "count": 8 + } + ], + "min_fermentation_time_hours": 4, + "fluid": "minecraft:water", + "tapping_item": "minecraft:glass_bottle", + "fermentation_data": { + "fermentation_speed_mod": 0.0, + "effects": [ + { + "id": "minecraft:absorption", + "base_duration": 9600 + }, + { + "id": "spectrum:nourishing", + "base_duration": 9600 + } + ] + }, + "result": { + "item": "spectrum:infused_beverage", + "count": 4, + "nbt": "{Variant: \"myceylon_apple_juice\", Color: 12018987 }" + }, + "required_advancement": "spectrum:lategame/collect_myceylon" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/myceylon_liquor.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/myceylon_liquor.json new file mode 100644 index 0000000000..26de3ff341 --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/myceylon_liquor.json @@ -0,0 +1,101 @@ +{ + "type": "spectrum:titration_barrel", + "group": "infused_beverages", + "fermentation_time_days": 2, + "ingredients": [ + { + "item": "spectrum:myceylon", + "count": 6 + }, + { + "item": "minecraft:sugar", + "count": 4 + } + ], + "min_fermentation_time_hours": 24, + "fluid": "minecraft:water", + "tapping_item": "minecraft:glass_bottle", + "fermentation_data": { + "fermentation_speed_mod": 0.25, + "effects": [ + { + "id": "minecraft:absorption", + "base_duration": 9600, + "potency": [ + { + "potency": 0 + }, + { + "min_alc": 20, + "potency": 1 + }, + { + "min_alc": 28, + "potency": 2 + }, + { + "min_alc": 36, + "potency": 3 + } + ] + }, + { + "id": "minecraft:speed", + "base_duration": 9600, + "potency": [ + { + "min_alc": 25, + "potency": 0 + }, + { + "min_alc": 25, + "potency": 1 + }, + { + "min_alc": 30, + "potency": 2 + }, + { + "min_alc": 35, + "potency": 3 + } + ] + }, + { + "id": "minecraft:slowness", + "base_duration": 9600, + "potency": [ + { + "min_thickness": 2 + }, + { + "min_thickness": 3, + "potency": 1 + }, + { + "min_thickness": 4, + "potency": 2 + } + ] + }, + { + "id": "minecraft:nausea", + "base_duration": 600, + "potency": [ + { + "min_thickness": 3 + }, + { + "min_alc": 30 + } + ] + } + ] + }, + "result": { + "item": "spectrum:infused_beverage", + "count": 4, + "nbt": "{Variant: \"myceylon_liquor\", Color: 16040760 }" + }, + "required_advancement": "spectrum:progression/unlock_myceylon_liquor" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/porter.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/porter.json index d498f20ba4..87cd9e0129 100644 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/porter.json +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/porter.json @@ -60,11 +60,11 @@ "min_alc": 7 }, { - "min_alc": 14, + "min_alc": 9, "potency": 1 }, { - "min_alc": 21, + "min_alc": 11, "potency": 2 } ] diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/spiked_mullet_wine.json b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/spiked_mullet_wine.json new file mode 100644 index 0000000000..4c80d2257e --- /dev/null +++ b/src/main/resources/data/spectrum/recipes/titration_barrel/infused_beverages/spiked_mullet_wine.json @@ -0,0 +1,101 @@ +{ + "type": "spectrum:titration_barrel", + "group": "infused_beverages", + "fermentation_time_days": 2, + "ingredients": [ + { + "item": "minecraft:sweet_berries", + "count": 6 + }, + { + "item": "spectrum:myceylon", + "count": 4 + }, + { + "item": "spectrum:prickly_bayleaf", + "count": 4 + }, + { + "item": "minecraft:sugar", + "count": 4 + } + ], + "min_fermentation_time_hours": 48, + "fluid": "minecraft:water", + "tapping_item": "minecraft:glass_bottle", + "fermentation_data": { + "fermentation_speed_mod": 0.25, + "effects": [ + { + "id": "minecraft:speed", + "base_duration": 9600, + "potency": [ + { + "potency": 0 + }, + { + "min_alc": 20, + "potency": 1 + }, + { + "min_alc": 30, + "potency": 2 + } + ] + }, + { + "id": "spectrum:immunity", + "base_duration": 2400, + "potency": [ + { + "min_alc": 22 + } + ] + }, + { + "id": "minecraft:resistance", + "base_duration": 2400, + "potency": [ + { + "min_alc": 25 + } + ] + }, + { + "id": "minecraft:slowness", + "base_duration": 9600, + "potency": [ + { + "min_thickness": 2 + }, + { + "min_thickness": 3, + "potency": 1 + }, + { + "min_thickness": 4, + "potency": 2 + } + ] + }, + { + "id": "minecraft:blindness", + "base_duration": 600, + "potency": [ + { + "min_thickness": 3 + }, + { + "min_alc": 9 + } + ] + } + ] + }, + "result": { + "item": "spectrum:infused_beverage", + "count": 4, + "nbt": "{Variant: \"spiked_mullet_wine\", Color: 10365209 }" + }, + "required_advancement": "spectrum:progression/unlock_spiked_mullet_wine" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/recipes/titration_barrel/moonshine.json b/src/main/resources/data/spectrum/recipes/titration_barrel/moonshine.json deleted file mode 100644 index ec6caac1ef..0000000000 --- a/src/main/resources/data/spectrum/recipes/titration_barrel/moonshine.json +++ /dev/null @@ -1,102 +0,0 @@ -{ - "type": "spectrum:titration_barrel", - "ingredients": [ - { - "item": "minecraft:glow_berries", - "count": 8 - }, - { - "item": "spectrum:moonstone_powder", - "count": 4 - }, - { - "item": "spectrum:stardust", - "count": 4 - }, - { - "item": "spectrum:paletur_fragments", - "count": 2 - } - ], - "fluid": "spectrum:liquid_crystal", - "min_fermentation_time_hours": 24, - "tapping_item": "minecraft:glass_bottle", - "fermentation_data": { - "fermentation_speed_mod": 0.25, - "effects": [ - { - "id": "minecraft:invisibility", - "base_duration": 1200 - }, - { - "id": "spectrum:lightweight", - "base_duration": 1200, - "potency": [ - { - "potency": 0 - }, - { - "min_alc": 30, - "potency": 1 - }, - { - "min_alc": 32, - "potency": 2 - } - ] - }, - { - "id": "minecraft:jump_boost", - "base_duration": 1200, - "potency": [ - { - "potency": 0 - }, - { - "min_alc": 30, - "potency": 1 - }, - { - "min_alc": 32, - "potency": 2 - } - ] - }, - { - "id": "minecraft:slowness", - "base_duration": 1200, - "potency": [ - { - "potency": 2 - }, - { - "min_alc": 30, - "potency": 1 - }, - { - "min_alc": 32, - "potency": 0 - } - ] - }, - { - "id": "minecraft:nausea", - "base_duration": 200, - "potency": [ - { - "min_thickness": 2 - }, - { - "min_thickness": 3, - "potency": 1 - } - ] - } - ] - }, - "result": { - "item": "spectrum:moonshine", - "count": 4 - }, - "required_advancement": "spectrum:progression/unlock_moonshine" -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/sphere_decorators/clover.json b/src/main/resources/data/spectrum/starry_skies/sphere_decorators/clover.json new file mode 100644 index 0000000000..4bc100a34a --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/sphere_decorators/clover.json @@ -0,0 +1,7 @@ +{ + "type": "starry_skies:single_block", + "type_data": { + "block": "spectrum:clover", + "chance": 0.02 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/sphere_decorators/four_leaf_clover.json b/src/main/resources/data/spectrum/starry_skies/sphere_decorators/four_leaf_clover.json new file mode 100644 index 0000000000..339fd77f4b --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/sphere_decorators/four_leaf_clover.json @@ -0,0 +1,7 @@ +{ + "type": "starry_skies:single_block", + "type_data": { + "block": "spectrum:four_leaf_clover", + "chance": 0.01 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/end/ores/paltaeria_ore.json b/src/main/resources/data/spectrum/starry_skies/spheres/end/ores/paltaeria_ore.json new file mode 100644 index 0000000000..d8945de3fa --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/end/ores/paltaeria_ore.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:end/ores", + "generation_weight": 0.5, + "min_size": 4, + "max_size": 7, + "type": "starry_skies:core", + "type_data": { + "core_block": "spectrum:paltaeria_ore", + "min_core_size": 2, + "max_core_size": 4, + "main_block": "$starry_skies:end_stones" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/nether/ores/stratine_ore.json b/src/main/resources/data/spectrum/starry_skies/spheres/nether/ores/stratine_ore.json new file mode 100644 index 0000000000..ed63d2659e --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/nether/ores/stratine_ore.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:nether/ores", + "generation_weight": 0.8, + "min_size": 4, + "max_size": 7, + "type": "starry_skies:core", + "type_data": { + "core_block": "spectrum:stratine_ore", + "min_core_size": 2, + "max_core_size": 5, + "main_block": "$starry_skies:nether_stones" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/essential/ressources.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/essential/ressources.json new file mode 100644 index 0000000000..42cb62beb9 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/essential/ressources.json @@ -0,0 +1,41 @@ +{ + "generation_group": "starry_skies:overworld/essential", + "generation_weight": 1.0, + "min_size": 5, + "max_size": 20, + "type": "starry_skies:modular", + "type_data": { + "main_block": "minecraft:dirt", + "top_block": "minecraft:grass_block" + }, + "decorators": { + "spectrum:clover": 0.8, + "spectrum:four_leaf_clover": 0.8 + }, + "spawns": [ + { + "type": "minecraft:cow", + "chance": 0.1, + "min_count": 2, + "max_count": 4 + }, + { + "type": "minecraft:sheep", + "chance": 0.1, + "min_count": 2, + "max_count": 4 + }, + { + "type": "minecraft:chicken", + "chance": 0.1, + "min_count": 2, + "max_count": 4 + }, + { + "type": "minecraft:pig", + "chance": 0.1, + "min_count": 2, + "max_count": 4 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/azurite_ore.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/azurite_ore.json new file mode 100644 index 0000000000..16dc2e8f78 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/azurite_ore.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/ores", + "generation_weight": 0.3, + "min_size": 3, + "max_size": 7, + "type": "starry_skies:core", + "type_data": { + "core_block": "spectrum:azurite_ore", + "min_core_size": 2, + "max_core_size": 4, + "main_block": "$starry_skies:stones" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/deepslate_azurite_ore.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/deepslate_azurite_ore.json new file mode 100644 index 0000000000..a6bee3e236 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/deepslate_azurite_ore.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/ores", + "generation_weight": 0.6, + "min_size": 3, + "max_size": 7, + "type": "starry_skies:core", + "type_data": { + "core_block": "spectrum:deepslate_azurite_ore", + "min_core_size": 2, + "max_core_size": 4, + "main_block": "$starry_skies:deepslates" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/deepslate_shimmerstone_ore.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/deepslate_shimmerstone_ore.json new file mode 100644 index 0000000000..59e82e3870 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/deepslate_shimmerstone_ore.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/ores", + "generation_weight": 0.5, + "min_size": 5, + "max_size": 9, + "type": "starry_skies:core", + "type_data": { + "core_block": "spectrum:deepslate_shimmerstone_ore", + "min_core_size": 3, + "max_core_size": 5, + "main_block": "$starry_skies:deepslates" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/shimmerstone_ore.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/shimmerstone_ore.json new file mode 100644 index 0000000000..518646ae97 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/ores/shimmerstone_ore.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/ores", + "generation_weight": 0.8, + "min_size": 5, + "max_size": 9, + "type": "starry_skies:core", + "type_data": { + "core_block": "spectrum:shimmerstone_ore", + "min_core_size": 3, + "max_core_size": 5, + "main_block": "$starry_skies:stones" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/treasure/citrine_geode.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/treasure/citrine_geode.json new file mode 100644 index 0000000000..decb0fb722 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/treasure/citrine_geode.json @@ -0,0 +1,16 @@ +{ + "generation_group": "starry_skies:overworld/treasure", + "generation_weight": 1.0, + "min_size": 5, + "max_size": 7, + "type": "starry_skies:geode", + "type_data": { + "inner_block": "spectrum:citrine_block", + "inner_speckles_block": "spectrum:budding_citrine", + "inner_speckles_block_chance": 0.1, + "middle_block": "minecraft:calcite", + "outer_block": "minecraft:basalt" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/treasure/topaz_geode.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/treasure/topaz_geode.json new file mode 100644 index 0000000000..c047693b1f --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/treasure/topaz_geode.json @@ -0,0 +1,16 @@ +{ + "generation_group": "starry_skies:overworld/treasure", + "generation_weight": 0.6, + "min_size": 8, + "max_size": 12, + "type": "starry_skies:geode", + "type_data": { + "inner_block": "spectrum:topaz_block", + "inner_speckles_block": "spectrum:budding_topaz", + "inner_speckles_block_chance": 0.05, + "middle_block": "minecraft:calcite", + "outer_block": "minecraft:basalt" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/blue_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/blue_wood.json new file mode 100644 index 0000000000..f5f703ee60 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/blue_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:blue_log", + "shell_block": "spectrum:blue_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/cyan_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/cyan_wood.json new file mode 100644 index 0000000000..30b5c2b860 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/cyan_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:cyan_log", + "shell_block": "spectrum:cyan_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/green_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/green_wood.json new file mode 100644 index 0000000000..9e7ae7393d --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/green_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:green_log", + "shell_block": "spectrum:green_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/light_blue_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/light_blue_wood.json new file mode 100644 index 0000000000..a38d999cc2 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/light_blue_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:light_blue_log", + "shell_block": "spectrum:light_blue_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/lime_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/lime_wood.json new file mode 100644 index 0000000000..d485fb4ffb --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/lime_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:lime_log", + "shell_block": "spectrum:lime_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/magenta_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/magenta_wood.json new file mode 100644 index 0000000000..dfc501da88 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/magenta_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:magenta_log", + "shell_block": "spectrum:magenta_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/orange_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/orange_wood.json new file mode 100644 index 0000000000..48f5425d05 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/orange_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:orange_log", + "shell_block": "spectrum:orange_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/pink_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/pink_wood.json new file mode 100644 index 0000000000..3f84f89187 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/pink_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:pink_log", + "shell_block": "spectrum:pink_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/purple_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/purple_wood.json new file mode 100644 index 0000000000..3662560b7d --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/purple_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:purple_log", + "shell_block": "spectrum:purple_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/red_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/red_wood.json new file mode 100644 index 0000000000..f84aa00b39 --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/red_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:red_log", + "shell_block": "spectrum:red_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/yellow_wood.json b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/yellow_wood.json new file mode 100644 index 0000000000..f603aa6d2e --- /dev/null +++ b/src/main/resources/data/spectrum/starry_skies/spheres/overworld/wood/yellow_wood.json @@ -0,0 +1,15 @@ +{ + "generation_group": "starry_skies:overworld/wood", + "generation_weight": 0.1, + "min_size": 8, + "max_size": 14, + "type": "starry_skies:shell", + "type_data": { + "min_shell_size": 2, + "max_shell_size": 4, + "main_block": "spectrum:yellow_log", + "shell_block": "spectrum:yellow_leaves[distance=1]" + }, + "decorators": {}, + "spawns": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/structures/ancient_ruins.nbt b/src/main/resources/data/spectrum/structures/ancient_ruins.nbt index 5d97bf722f..8c64da96f2 100644 Binary files a/src/main/resources/data/spectrum/structures/ancient_ruins.nbt and b/src/main/resources/data/spectrum/structures/ancient_ruins.nbt differ diff --git a/src/main/resources/data/spectrum/structures/city_below/arboretum.nbt b/src/main/resources/data/spectrum/structures/city_below/arboretum.nbt new file mode 100644 index 0000000000..18b66bd58b Binary files /dev/null and b/src/main/resources/data/spectrum/structures/city_below/arboretum.nbt differ diff --git a/src/main/resources/data/spectrum/structures/city_below/path1.nbt b/src/main/resources/data/spectrum/structures/city_below/path1.nbt new file mode 100644 index 0000000000..fe48902fde Binary files /dev/null and b/src/main/resources/data/spectrum/structures/city_below/path1.nbt differ diff --git a/src/main/resources/data/spectrum/structures/city_below/path2.nbt b/src/main/resources/data/spectrum/structures/city_below/path2.nbt new file mode 100644 index 0000000000..796e953219 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/city_below/path2.nbt differ diff --git a/src/main/resources/data/spectrum/structures/city_below/pedestal.nbt b/src/main/resources/data/spectrum/structures/city_below/pedestal.nbt new file mode 100644 index 0000000000..8867d9194f Binary files /dev/null and b/src/main/resources/data/spectrum/structures/city_below/pedestal.nbt differ diff --git a/src/main/resources/data/spectrum/structures/city_below/waterfall.nbt b/src/main/resources/data/spectrum/structures/city_below/waterfall.nbt new file mode 100644 index 0000000000..f93e1fd302 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/city_below/waterfall.nbt differ diff --git a/src/main/resources/data/spectrum/structures/color_mixing_puzzle_structure.nbt b/src/main/resources/data/spectrum/structures/color_mixing_puzzle_structure.nbt index 7461f4ea53..381c7b87ae 100644 Binary files a/src/main/resources/data/spectrum/structures/color_mixing_puzzle_structure.nbt and b/src/main/resources/data/spectrum/structures/color_mixing_puzzle_structure.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/skull_1.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_1.nbt new file mode 100644 index 0000000000..2f1f67101d Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_1.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/skull_2.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_2.nbt new file mode 100644 index 0000000000..bb5afd3868 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_2.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/skull_3.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_3.nbt new file mode 100644 index 0000000000..b3fb139166 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_3.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/skull_4.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_4.nbt new file mode 100644 index 0000000000..bfb6b1cc66 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/skull_4.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/spine_1.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_1.nbt new file mode 100644 index 0000000000..0b341a51bd Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_1.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/spine_2.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_2.nbt new file mode 100644 index 0000000000..5079e7e203 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_2.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/spine_3.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_3.nbt new file mode 100644 index 0000000000..ef5d8906b5 Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_3.nbt differ diff --git a/src/main/resources/data/spectrum/structures/dragon_fossil/spine_4.nbt b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_4.nbt new file mode 100644 index 0000000000..76adfe40fa Binary files /dev/null and b/src/main/resources/data/spectrum/structures/dragon_fossil/spine_4.nbt differ diff --git a/src/main/resources/data/spectrum/structures/wireless_redstone_puzzle_structure.nbt b/src/main/resources/data/spectrum/structures/wireless_redstone_puzzle_structure.nbt index 1b45f04497..42846b2403 100644 Binary files a/src/main/resources/data/spectrum/structures/wireless_redstone_puzzle_structure.nbt and b/src/main/resources/data/spectrum/structures/wireless_redstone_puzzle_structure.nbt differ diff --git a/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/amethyst_cluster.json b/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/amethyst_cluster.json new file mode 100644 index 0000000000..246fdadc79 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/amethyst_cluster.json @@ -0,0 +1,5 @@ +{ + "values": [ + "spectrum:amethyst_cluster" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/amethyst_shard.json b/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/amethyst_shard.json new file mode 100644 index 0000000000..b22cb048db --- /dev/null +++ b/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/amethyst_shard.json @@ -0,0 +1,5 @@ +{ + "values": [ + "spectrum:amethyst_shard" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/logo.json b/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/logo.json new file mode 100644 index 0000000000..1d21ea28d3 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/banner_pattern/pattern_item/logo.json @@ -0,0 +1,5 @@ +{ + "values": [ + "spectrum:logo" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/aloe_converted.json b/src/main/resources/data/spectrum/tags/blocks/aloe_converted.json new file mode 100644 index 0000000000..8df34b507e --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/aloe_converted.json @@ -0,0 +1,5 @@ +{ + "values": [ + "spectrum:black_materia" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/aloe_plantable.json b/src/main/resources/data/spectrum/tags/blocks/aloe_plantable.json new file mode 100644 index 0000000000..d74bfc7ab6 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/aloe_plantable.json @@ -0,0 +1,10 @@ +{ + "values": [ + "#spectrum:aloe_converted", + "#minecraft:base_stone_overworld", + "#minecraft:sand", + "spectrum:rotten_ground", + "spectrum:shimmel", + "spectrum:sawblade_grass" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/amethyst_ores.json b/src/main/resources/data/spectrum/tags/blocks/amethyst_ores.json index 308107ecb5..9aaae45b2e 100644 --- a/src/main/resources/data/spectrum/tags/blocks/amethyst_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/amethyst_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:amethyst_ore", - "spectrum:deepslate_amethyst_ore" + "spectrum:deepslate_amethyst_ore", + "spectrum:blackslag_amethyst_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/azurite_ores.json b/src/main/resources/data/spectrum/tags/blocks/azurite_ores.json index bca3493e42..35ba1a411b 100644 --- a/src/main/resources/data/spectrum/tags/blocks/azurite_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/azurite_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:azurite_ore", - "spectrum:deepslate_azurite_ore" + "spectrum:deepslate_azurite_ore", + "spectrum:blackslag_azurite_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/basalts.json b/src/main/resources/data/spectrum/tags/blocks/basalts.json new file mode 100644 index 0000000000..a4d3b3c474 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/basalts.json @@ -0,0 +1,31 @@ +{ + "values": [ + "spectrum:polished_basalt_button", + "spectrum:polished_basalt_pressure_plate", + "spectrum:basalt_tiles", + "spectrum:basalt_tile_stairs", + "spectrum:basalt_tile_wall", + "spectrum:basalt_tile_slab", + "spectrum:cracked_basalt_bricks", + "spectrum:cracked_basalt_tiles", + "spectrum:smooth_basalt_slab", + "spectrum:smooth_basalt_stairs", + "spectrum:polished_basalt", + "spectrum:polished_basalt_pillar", + "spectrum:polished_basalt_crest", + "spectrum:chiseled_polished_basalt", + "spectrum:notched_polished_basalt", + "spectrum:polished_basalt_slab", + "spectrum:polished_basalt_stairs", + "spectrum:basalt_bricks", + "spectrum:basalt_brick_slab", + "spectrum:basalt_brick_stairs", + "spectrum:amethyst_chiseled_basalt", + "spectrum:topaz_chiseled_basalt", + "spectrum:citrine_chiseled_basalt", + "spectrum:onyx_chiseled_basalt", + "spectrum:moonstone_chiseled_basalt", + "spectrum:azurite_chiseled_basalt", + "spectrum:malachite_chiseled_basalt" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/blackslag_ores.json b/src/main/resources/data/spectrum/tags/blocks/blackslag_ores.json index 74731a456c..37667a9abf 100644 --- a/src/main/resources/data/spectrum/tags/blocks/blackslag_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/blackslag_ores.json @@ -1,13 +1,19 @@ { "values": [ "spectrum:blackslag_coal_ore", + "spectrum:blackslag_copper_ore", "spectrum:blackslag_iron_ore", "spectrum:blackslag_gold_ore", "spectrum:blackslag_diamond_ore", "spectrum:blackslag_redstone_ore", "spectrum:blackslag_lapis_ore", "spectrum:blackslag_emerald_ore", - "spectrum:blackslag_sparklestone_ore", - "spectrum:blackslag_malachite_ore" + "spectrum:blackslag_shimmerstone_ore", + "spectrum:blackslag_malachite_ore", + "spectrum:blackslag_amethyst_ore", + "spectrum:blackslag_citrine_ore", + "spectrum:blackslag_topaz_ore", + "spectrum:blackslag_onyx_ore", + "spectrum:blackslag_moonstone_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/blackslags.json b/src/main/resources/data/spectrum/tags/blocks/blackslags.json new file mode 100644 index 0000000000..4b24e5da6e --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/blackslags.json @@ -0,0 +1,29 @@ +{ + "values": [ + "spectrum:blackslag", + "spectrum:cobbled_blackslag", + "spectrum:polished_blackslag", + "spectrum:polished_blackslag_button", + "spectrum:polished_blackslag_pressure_plate", + "spectrum:blackslag_tiles", + "spectrum:blackslag_tile_stairs", + "spectrum:blackslag_tile_wall", + "spectrum:blackslag_tile_slab", + "spectrum:cobbled_blackslag_stairs", + "spectrum:polished_blackslag_stairs", + "spectrum:blackslag_brick_stairs", + "spectrum:cobbled_blackslag_slab", + "spectrum:polished_blackslag_slab", + "spectrum:blackslag_brick_slab", + "spectrum:cobbled_blackslag_wall", + "spectrum:polished_blackslag_wall", + "spectrum:blackslag_brick_wall", + "spectrum:blackslag_bricks", + "spectrum:cracked_blackslag_bricks", + "spectrum:cracked_blackslag_tiles", + "spectrum:polished_blackslag_pillar", + "spectrum:chiseled_polished_blackslag", + "spectrum:ancient_chiseled_polished_blackslag", + "spectrum:infested_blackslag" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/building_staffs_blacklisted.json b/src/main/resources/data/spectrum/tags/blocks/building_staffs_blacklisted.json index 3b2296a03c..a9370addd2 100644 --- a/src/main/resources/data/spectrum/tags/blocks/building_staffs_blacklisted.json +++ b/src/main/resources/data/spectrum/tags/blocks/building_staffs_blacklisted.json @@ -5,9 +5,7 @@ "minecraft:cake", "minecraft:beehive", "minecraft:brewing_stand", - "spectrum:fading", - "spectrum:failing", - "spectrum:ruin", + "#spectrum:decay", "spectrum:decay_away" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/calcites.json b/src/main/resources/data/spectrum/tags/blocks/calcites.json new file mode 100644 index 0000000000..5654db1fca --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/calcites.json @@ -0,0 +1,31 @@ +{ + "values": [ + "spectrum:polished_calcite_button", + "spectrum:polished_calcite_pressure_plate", + "spectrum:calcite_tiles", + "spectrum:calcite_tile_stairs", + "spectrum:calcite_tile_wall", + "spectrum:calcite_tile_slab", + "spectrum:cracked_calcite_bricks", + "spectrum:cracked_calcite_tiles", + "spectrum:calcite_slab", + "spectrum:calcite_stairs", + "spectrum:polished_calcite", + "spectrum:polished_calcite_pillar", + "spectrum:polished_calcite_crest", + "spectrum:chiseled_polished_calcite", + "spectrum:notched_polished_calcite", + "spectrum:polished_calcite_slab", + "spectrum:polished_calcite_stairs", + "spectrum:calcite_bricks", + "spectrum:calcite_brick_slab", + "spectrum:calcite_brick_stairs", + "spectrum:amethyst_chiseled_calcite", + "spectrum:topaz_chiseled_calcite", + "spectrum:citrine_chiseled_calcite", + "spectrum:onyx_chiseled_calcite", + "spectrum:moonstone_chiseled_calcite", + "spectrum:azurite_chiseled_calcite", + "spectrum:malachite_chiseled_calcite" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/citrine_ores.json b/src/main/resources/data/spectrum/tags/blocks/citrine_ores.json index e2badfcc67..f36c776c42 100644 --- a/src/main/resources/data/spectrum/tags/blocks/citrine_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/citrine_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:citrine_ore", - "spectrum:deepslate_citrine_ore" + "spectrum:deepslate_citrine_ore", + "spectrum:blackslag_citrine_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/colored_buttons.json b/src/main/resources/data/spectrum/tags/blocks/colored_buttons.json index 6a6ef11b4c..e5f085a132 100644 --- a/src/main/resources/data/spectrum/tags/blocks/colored_buttons.json +++ b/src/main/resources/data/spectrum/tags/blocks/colored_buttons.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_button", - "spectrum:blue_plank_button", - "spectrum:brown_plank_button", - "spectrum:cyan_plank_button", - "spectrum:gray_plank_button", - "spectrum:green_plank_button", - "spectrum:light_blue_plank_button", - "spectrum:light_gray_plank_button", - "spectrum:lime_plank_button", - "spectrum:magenta_plank_button", - "spectrum:orange_plank_button", - "spectrum:pink_plank_button", - "spectrum:purple_plank_button", - "spectrum:red_plank_button", - "spectrum:white_plank_button", - "spectrum:yellow_plank_button" + "spectrum:black_button", + "spectrum:blue_button", + "spectrum:brown_button", + "spectrum:cyan_button", + "spectrum:gray_button", + "spectrum:green_button", + "spectrum:light_blue_button", + "spectrum:light_gray_button", + "spectrum:lime_button", + "spectrum:magenta_button", + "spectrum:orange_button", + "spectrum:pink_button", + "spectrum:purple_button", + "spectrum:red_button", + "spectrum:white_button", + "spectrum:yellow_button" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/colored_fence_gates.json b/src/main/resources/data/spectrum/tags/blocks/colored_fence_gates.json index 6de1008192..fe85341d38 100644 --- a/src/main/resources/data/spectrum/tags/blocks/colored_fence_gates.json +++ b/src/main/resources/data/spectrum/tags/blocks/colored_fence_gates.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_fence_gate", - "spectrum:blue_plank_fence_gate", - "spectrum:brown_plank_fence_gate", - "spectrum:cyan_plank_fence_gate", - "spectrum:gray_plank_fence_gate", - "spectrum:green_plank_fence_gate", - "spectrum:light_blue_plank_fence_gate", - "spectrum:light_gray_plank_fence_gate", - "spectrum:lime_plank_fence_gate", - "spectrum:magenta_plank_fence_gate", - "spectrum:orange_plank_fence_gate", - "spectrum:pink_plank_fence_gate", - "spectrum:purple_plank_fence_gate", - "spectrum:red_plank_fence_gate", - "spectrum:white_plank_fence_gate", - "spectrum:yellow_plank_fence_gate" + "spectrum:black_fence_gate", + "spectrum:blue_fence_gate", + "spectrum:brown_fence_gate", + "spectrum:cyan_fence_gate", + "spectrum:gray_fence_gate", + "spectrum:green_fence_gate", + "spectrum:light_blue_fence_gate", + "spectrum:light_gray_fence_gate", + "spectrum:lime_fence_gate", + "spectrum:magenta_fence_gate", + "spectrum:orange_fence_gate", + "spectrum:pink_fence_gate", + "spectrum:purple_fence_gate", + "spectrum:red_fence_gate", + "spectrum:white_fence_gate", + "spectrum:yellow_fence_gate" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/colored_fences.json b/src/main/resources/data/spectrum/tags/blocks/colored_fences.json index 96722c599d..d8e299bbe3 100644 --- a/src/main/resources/data/spectrum/tags/blocks/colored_fences.json +++ b/src/main/resources/data/spectrum/tags/blocks/colored_fences.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_fence", - "spectrum:blue_plank_fence", - "spectrum:brown_plank_fence", - "spectrum:cyan_plank_fence", - "spectrum:gray_plank_fence", - "spectrum:green_plank_fence", - "spectrum:light_blue_plank_fence", - "spectrum:light_gray_plank_fence", - "spectrum:lime_plank_fence", - "spectrum:magenta_plank_fence", - "spectrum:orange_plank_fence", - "spectrum:pink_plank_fence", - "spectrum:purple_plank_fence", - "spectrum:red_plank_fence", - "spectrum:white_plank_fence", - "spectrum:yellow_plank_fence" + "spectrum:black_fence", + "spectrum:blue_fence", + "spectrum:brown_fence", + "spectrum:cyan_fence", + "spectrum:gray_fence", + "spectrum:green_fence", + "spectrum:light_blue_fence", + "spectrum:light_gray_fence", + "spectrum:lime_fence", + "spectrum:magenta_fence", + "spectrum:orange_fence", + "spectrum:pink_fence", + "spectrum:purple_fence", + "spectrum:red_fence", + "spectrum:white_fence", + "spectrum:yellow_fence" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/colored_pressure_plates.json b/src/main/resources/data/spectrum/tags/blocks/colored_pressure_plates.json index 1b3537062b..fd7d9a7067 100644 --- a/src/main/resources/data/spectrum/tags/blocks/colored_pressure_plates.json +++ b/src/main/resources/data/spectrum/tags/blocks/colored_pressure_plates.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_pressure_plate", - "spectrum:blue_plank_pressure_plate", - "spectrum:brown_plank_pressure_plate", - "spectrum:cyan_plank_pressure_plate", - "spectrum:gray_plank_pressure_plate", - "spectrum:green_plank_pressure_plate", - "spectrum:light_blue_plank_pressure_plate", - "spectrum:light_gray_plank_pressure_plate", - "spectrum:lime_plank_pressure_plate", - "spectrum:magenta_plank_pressure_plate", - "spectrum:orange_plank_pressure_plate", - "spectrum:pink_plank_pressure_plate", - "spectrum:purple_plank_pressure_plate", - "spectrum:red_plank_pressure_plate", - "spectrum:white_plank_pressure_plate", - "spectrum:yellow_plank_pressure_plate" + "spectrum:black_pressure_plate", + "spectrum:blue_pressure_plate", + "spectrum:brown_pressure_plate", + "spectrum:cyan_pressure_plate", + "spectrum:gray_pressure_plate", + "spectrum:green_pressure_plate", + "spectrum:light_blue_pressure_plate", + "spectrum:light_gray_pressure_plate", + "spectrum:lime_pressure_plate", + "spectrum:magenta_pressure_plate", + "spectrum:orange_pressure_plate", + "spectrum:pink_pressure_plate", + "spectrum:purple_pressure_plate", + "spectrum:red_pressure_plate", + "spectrum:white_pressure_plate", + "spectrum:yellow_pressure_plate" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/colored_slabs.json b/src/main/resources/data/spectrum/tags/blocks/colored_slabs.json index 43d7253d6d..3ed08deac8 100644 --- a/src/main/resources/data/spectrum/tags/blocks/colored_slabs.json +++ b/src/main/resources/data/spectrum/tags/blocks/colored_slabs.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_slab", - "spectrum:blue_plank_slab", - "spectrum:brown_plank_slab", - "spectrum:cyan_plank_slab", - "spectrum:gray_plank_slab", - "spectrum:green_plank_slab", - "spectrum:light_blue_plank_slab", - "spectrum:light_gray_plank_slab", - "spectrum:lime_plank_slab", - "spectrum:magenta_plank_slab", - "spectrum:orange_plank_slab", - "spectrum:pink_plank_slab", - "spectrum:purple_plank_slab", - "spectrum:red_plank_slab", - "spectrum:white_plank_slab", - "spectrum:yellow_plank_slab" + "spectrum:black_slab", + "spectrum:blue_slab", + "spectrum:brown_slab", + "spectrum:cyan_slab", + "spectrum:gray_slab", + "spectrum:green_slab", + "spectrum:light_blue_slab", + "spectrum:light_gray_slab", + "spectrum:lime_slab", + "spectrum:magenta_slab", + "spectrum:orange_slab", + "spectrum:pink_slab", + "spectrum:purple_slab", + "spectrum:red_slab", + "spectrum:white_slab", + "spectrum:yellow_slab" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/colored_stairs.json b/src/main/resources/data/spectrum/tags/blocks/colored_stairs.json index 218d98de75..3d1eee7c95 100644 --- a/src/main/resources/data/spectrum/tags/blocks/colored_stairs.json +++ b/src/main/resources/data/spectrum/tags/blocks/colored_stairs.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_stairs", - "spectrum:blue_plank_stairs", - "spectrum:brown_plank_stairs", - "spectrum:cyan_plank_stairs", - "spectrum:gray_plank_stairs", - "spectrum:green_plank_stairs", - "spectrum:light_blue_plank_stairs", - "spectrum:light_gray_plank_stairs", - "spectrum:lime_plank_stairs", - "spectrum:magenta_plank_stairs", - "spectrum:orange_plank_stairs", - "spectrum:pink_plank_stairs", - "spectrum:purple_plank_stairs", - "spectrum:red_plank_stairs", - "spectrum:white_plank_stairs", - "spectrum:yellow_plank_stairs" + "spectrum:black_stairs", + "spectrum:blue_stairs", + "spectrum:brown_stairs", + "spectrum:cyan_stairs", + "spectrum:gray_stairs", + "spectrum:green_stairs", + "spectrum:light_blue_stairs", + "spectrum:light_gray_stairs", + "spectrum:lime_stairs", + "spectrum:magenta_stairs", + "spectrum:orange_stairs", + "spectrum:pink_stairs", + "spectrum:purple_stairs", + "spectrum:red_stairs", + "spectrum:white_stairs", + "spectrum:yellow_stairs" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/decay.json b/src/main/resources/data/spectrum/tags/blocks/decay.json index 672823d9bc..8bb153dfaf 100644 --- a/src/main/resources/data/spectrum/tags/blocks/decay.json +++ b/src/main/resources/data/spectrum/tags/blocks/decay.json @@ -3,6 +3,6 @@ "spectrum:fading", "spectrum:failing", "spectrum:ruin", - "spectrum:terror" + "spectrum:forfeiture" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/deep_soils.json b/src/main/resources/data/spectrum/tags/blocks/deep_soils.json new file mode 100644 index 0000000000..e5dd4b573f --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/deep_soils.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "spectrum:black_materia", + "spectrum:shale_clay", + "spectrum:slush" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/doombloom_plantable.json b/src/main/resources/data/spectrum/tags/blocks/doombloom_plantable.json new file mode 100644 index 0000000000..109ce2175c --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/doombloom_plantable.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:dirt", + "spectrum:rotten_ground" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/dragonjags.json b/src/main/resources/data/spectrum/tags/blocks/dragonjags.json new file mode 100644 index 0000000000..14ce022c06 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/dragonjags.json @@ -0,0 +1,14 @@ +{ + "values": [ + "spectrum:small_red_dragonjag", + "spectrum:small_green_dragonjag", + "spectrum:small_pink_dragonjag", + "spectrum:small_purple_dragonjag", + "spectrum:small_black_dragonjag", + "spectrum:tall_red_dragonjag", + "spectrum:tall_green_dragonjag", + "spectrum:tall_pink_dragonjag", + "spectrum:tall_purple_dragonjag", + "spectrum:tall_black_dragonjag" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/exempt_from_loot_table_debug_check.json b/src/main/resources/data/spectrum/tags/blocks/exempt_from_loot_table_debug_check.json index b3401e9057..f4af1cd61a 100644 --- a/src/main/resources/data/spectrum/tags/blocks/exempt_from_loot_table_debug_check.json +++ b/src/main/resources/data/spectrum/tags/blocks/exempt_from_loot_table_debug_check.json @@ -20,6 +20,10 @@ "spectrum:black_materia", "spectrum:tinted_preservation_glass", "spectrum:jade_vine_roots", - "spectrum:present" + "spectrum:present", + "spectrum:primordial_fire", + "spectrum:sag_leaf", + "spectrum:sag_bubble", + "spectrum:small_sag_bubble" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/exempt_from_mineable_debug_check.json b/src/main/resources/data/spectrum/tags/blocks/exempt_from_mineable_debug_check.json index 1904280fe0..897b7b19a5 100644 --- a/src/main/resources/data/spectrum/tags/blocks/exempt_from_mineable_debug_check.json +++ b/src/main/resources/data/spectrum/tags/blocks/exempt_from_mineable_debug_check.json @@ -12,6 +12,7 @@ "spectrum:cracked_end_portal_frame", "spectrum:creative_particle_spawner", "spectrum:tinted_preservation_glass", - "spectrum:jade_vine_roots" + "spectrum:jade_vine_roots", + "spectrum:primordial_fire" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/terror_safe.json b/src/main/resources/data/spectrum/tags/blocks/forfeiture_safe.json similarity index 100% rename from src/main/resources/data/spectrum/tags/blocks/terror_safe.json rename to src/main/resources/data/spectrum/tags/blocks/forfeiture_safe.json diff --git a/src/main/resources/data/spectrum/tags/blocks/hummingstones.json b/src/main/resources/data/spectrum/tags/blocks/hummingstones.json new file mode 100644 index 0000000000..2647015555 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/hummingstones.json @@ -0,0 +1,6 @@ +{ + "values": [ + "spectrum:hummingstone", + "spectrum:hummingstone_glass" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/infested_blocks.json b/src/main/resources/data/spectrum/tags/blocks/infested_blocks.json index 584b9f6e6f..8aebf77cee 100644 --- a/src/main/resources/data/spectrum/tags/blocks/infested_blocks.json +++ b/src/main/resources/data/spectrum/tags/blocks/infested_blocks.json @@ -6,6 +6,8 @@ "minecraft:infested_deepslate", "minecraft:infested_stone", "minecraft:infested_mossy_stone_bricks", - "minecraft:infested_stone_bricks" + "minecraft:infested_stone_bricks", + + "spectrum:infested_blackslag" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/mob_heads.json b/src/main/resources/data/spectrum/tags/blocks/mob_heads.json index 62360d0d5d..1fe7f857de 100644 --- a/src/main/resources/data/spectrum/tags/blocks/mob_heads.json +++ b/src/main/resources/data/spectrum/tags/blocks/mob_heads.json @@ -67,6 +67,7 @@ "spectrum:sheep_red_head", "spectrum:sheep_white_head", "spectrum:sheep_yellow_head", + "spectrum:shulker_head", "spectrum:shulker_black_head", "spectrum:shulker_blue_head", "spectrum:shulker_brown_head", @@ -102,7 +103,12 @@ "spectrum:zoglin_head", "spectrum:zombie_villager_head", "spectrum:zombified_piglin_head", - + "spectrum:frog_temperate_head", + "spectrum:frog_cold_head", + "spectrum:frog_warm_head", + "spectrum:allay_head", + "spectrum:warden_head", + "spectrum:tadpole_head", "spectrum:egg_laying_wooly_pig_wall_head", "spectrum:axolotl_blue_wall_head", "spectrum:axolotl_brown_wall_head", @@ -204,6 +210,12 @@ "spectrum:wolf_wall_head", "spectrum:zoglin_wall_head", "spectrum:zombie_villager_wall_head", - "spectrum:zombified_piglin_wall_head" + "spectrum:zombified_piglin_wall_head", + "spectrum:frog_temperate_wall_head", + "spectrum:frog_cold_wall_head", + "spectrum:frog_warm_wall_head", + "spectrum:allay_wall_head", + "spectrum:warden_wall_head", + "spectrum:tadpole_wall_head" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/moonstone_ores.json b/src/main/resources/data/spectrum/tags/blocks/moonstone_ores.json index 09346ac222..41223235d7 100644 --- a/src/main/resources/data/spectrum/tags/blocks/moonstone_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/moonstone_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:moonstone_ore", - "spectrum:deepslate_moonstone_ore" + "spectrum:deepslate_moonstone_ore", + "spectrum:blackslag_moonstone_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/natures_staff_tickable.json b/src/main/resources/data/spectrum/tags/blocks/natures_staff_tickable.json index ceba22bb35..35798d945e 100644 --- a/src/main/resources/data/spectrum/tags/blocks/natures_staff_tickable.json +++ b/src/main/resources/data/spectrum/tags/blocks/natures_staff_tickable.json @@ -1,6 +1,7 @@ { "values": [ "minecraft:vine", + "minecraft:nether_wart", "minecraft:chorus_flower", "spectrum:mermaids_brush", "spectrum:quitoxic_reeds" diff --git a/src/main/resources/data/spectrum/tags/blocks/noxcap_stems.json b/src/main/resources/data/spectrum/tags/blocks/noxcap_stems.json new file mode 100644 index 0000000000..9ce8e04415 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxcap_stems.json @@ -0,0 +1,12 @@ +{ + "values": [ + "spectrum:ivory_noxcap_stem", + "spectrum:stripped_ivory_noxcap_stem", + "spectrum:slate_noxcap_stem", + "spectrum:stripped_slate_noxcap_stem", + "spectrum:ebony_noxcap_stem", + "spectrum:stripped_ebony_noxcap_stem", + "spectrum:chestnut_noxcap_stem", + "spectrum:stripped_chestnut_noxcap_stem" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood.json b/src/main/resources/data/spectrum/tags/blocks/noxwood.json new file mode 100644 index 0000000000..f3d8d6f2d9 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood.json @@ -0,0 +1,76 @@ +{ + "values": [ + "spectrum:chestnut_noxwood_lantern", + "spectrum:chestnut_noxwood_fence", + "spectrum:chestnut_noxwood_amphora", + "spectrum:ebony_noxwood_trapdoor", + "spectrum:ivory_noxwood_slab", + "spectrum:ivory_noxwood_amphora", + "spectrum:ebony_noxwood_beam", + "spectrum:chestnut_noxwood_button", + "spectrum:slate_noxcap_gills", + "spectrum:ebony_noxcap_cap", + "spectrum:slate_noxwood_trapdoor", + "spectrum:slate_noxwood_planks", + "spectrum:stripped_chestnut_noxcap_stem", + "spectrum:stripped_slate_noxcap_stem", + "spectrum:ivory_noxcap_stem", + "spectrum:ebony_noxwood_lamp", + "spectrum:chestnut_noxwood_beam", + "spectrum:chestnut_noxwood_pressure_plate", + "spectrum:ivory_noxcap_gills", + "spectrum:ivory_noxwood_lamp", + "spectrum:ivory_noxwood_beam", + "spectrum:ebony_noxwood_fence", + "spectrum:slate_noxwood_fence", + "spectrum:slate_noxwood_fence_gate", + "spectrum:slate_noxcap_stem", + "spectrum:ebony_noxwood_lantern", + "spectrum:ebony_noxwood_fence_gate", + "spectrum:stripped_ivory_noxcap_stem", + "spectrum:stripped_ebony_noxcap_stem", + "spectrum:ivory_noxwood_planks", + "spectrum:ivory_noxwood_button", + "spectrum:slate_noxwood_light", + "spectrum:ebony_noxcap_gills", + "spectrum:slate_noxwood_lamp", + "spectrum:ivory_noxwood_fence", + "spectrum:ebony_noxcap_stem", + "spectrum:ebony_noxwood_amphora", + "spectrum:chestnut_noxwood_light", + "spectrum:slate_noxwood_pressure_plate", + "spectrum:ivory_noxwood_light", + "spectrum:ebony_noxwood_button", + "spectrum:slate_noxwood_stairs", + "spectrum:ebony_noxwood_door", + "spectrum:slate_noxwood_beam", + "spectrum:chestnut_noxcap_gills", + "spectrum:ivory_noxwood_lantern", + "spectrum:slate_noxwood_slab", + "spectrum:chestnut_noxwood_trapdoor", + "spectrum:chestnut_noxwood_stairs", + "spectrum:slate_noxwood_door", + "spectrum:ivory_noxwood_trapdoor", + "spectrum:chestnut_noxwood_lamp", + "spectrum:ivory_noxwood_stairs", + "spectrum:slate_noxwood_button", + "spectrum:slate_noxcap_cap", + "spectrum:ivory_noxwood_door", + "spectrum:ivory_noxwood_pressure_plate", + "spectrum:ebony_noxwood_pressure_plate", + "spectrum:ebony_noxwood_stairs", + "spectrum:ivory_noxcap_cap", + "spectrum:ivory_noxwood_fence_gate", + "spectrum:ebony_noxwood_planks", + "spectrum:chestnut_noxwood_fence_gate", + "spectrum:ebony_noxwood_light", + "spectrum:slate_noxwood_amphora", + "spectrum:ebony_noxwood_slab", + "spectrum:chestnut_noxwood_planks", + "spectrum:chestnut_noxwood_slab", + "spectrum:chestnut_noxcap_stem", + "spectrum:chestnut_noxcap_cap", + "spectrum:slate_noxwood_lantern", + "spectrum:chestnut_noxwood_door" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_buttons.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_buttons.json new file mode 100644 index 0000000000..39c15e7892 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_buttons.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_button", + "spectrum:slate_noxwood_button", + "spectrum:ebony_noxwood_button", + "spectrum:chestnut_noxwood_button" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_doors.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_doors.json new file mode 100644 index 0000000000..7ed9be02a8 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_doors.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_door", + "spectrum:slate_noxwood_door", + "spectrum:ebony_noxwood_door", + "spectrum:chestnut_noxwood_door" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_fence_gates.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_fence_gates.json new file mode 100644 index 0000000000..22ec86b328 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_fence_gates.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_fence_gate", + "spectrum:slate_noxwood_fence_gate", + "spectrum:ebony_noxwood_fence_gate", + "spectrum:chestnut_noxwood_fence_gate" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_fences.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_fences.json new file mode 100644 index 0000000000..3f9311fb58 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_fences.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_fence", + "spectrum:slate_noxwood_fence", + "spectrum:ebony_noxwood_fence", + "spectrum:chestnut_noxwood_fence" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_planks.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_planks.json new file mode 100644 index 0000000000..2ed03667a9 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_planks.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_planks", + "spectrum:slate_noxwood_planks", + "spectrum:ebony_noxwood_planks", + "spectrum:chestnut_noxwood_planks" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_pressure_plates.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_pressure_plates.json new file mode 100644 index 0000000000..b2f2650abc --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_pressure_plates.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_pressure_plate", + "spectrum:slate_noxwood_pressure_plate", + "spectrum:ebony_noxwood_pressure_plate", + "spectrum:chestnut_noxwood_pressure_plate" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_slabs.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_slabs.json new file mode 100644 index 0000000000..5b4b4cbfd5 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_slabs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_slab", + "spectrum:slate_noxwood_slab", + "spectrum:ebony_noxwood_slab", + "spectrum:chestnut_noxwood_slab" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_stairs.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_stairs.json new file mode 100644 index 0000000000..bba7e25e88 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_stairs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_stairs", + "spectrum:slate_noxwood_stairs", + "spectrum:ebony_noxwood_stairs", + "spectrum:chestnut_noxwood_stairs" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/noxwood_trapdoors.json b/src/main/resources/data/spectrum/tags/blocks/noxwood_trapdoors.json new file mode 100644 index 0000000000..9ee39d6abd --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/noxwood_trapdoors.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_trapdoor", + "spectrum:slate_noxwood_trapdoor", + "spectrum:ebony_noxwood_trapdoor", + "spectrum:chestnut_noxwood_trapdoor" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/onyx_ores.json b/src/main/resources/data/spectrum/tags/blocks/onyx_ores.json index 62d9bf408a..b211f34e1c 100644 --- a/src/main/resources/data/spectrum/tags/blocks/onyx_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/onyx_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:onyx_ore", - "spectrum:deepslate_onyx_ore" + "spectrum:deepslate_onyx_ore", + "spectrum:blackslag_onyx_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/ores.json b/src/main/resources/data/spectrum/tags/blocks/ores.json index 3e2f4b5a7e..97935497ea 100644 --- a/src/main/resources/data/spectrum/tags/blocks/ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/ores.json @@ -2,11 +2,11 @@ "values": [ "#spectrum:gemstone_ores", "#spectrum:azurite_ores", - "#spectrum:sparklestone_ores", + "#spectrum:shimmerstone_ores", "#spectrum:malachite_ores", "#spectrum:blackslag_ores", - "spectrum:scarlet_ore", - "spectrum:paletur_ore" + "spectrum:stratine_ore", + "spectrum:paltaeria_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/pastel_network_nodes.json b/src/main/resources/data/spectrum/tags/blocks/pastel_network_nodes.json index 0cf079ab74..5be22a0f57 100644 --- a/src/main/resources/data/spectrum/tags/blocks/pastel_network_nodes.json +++ b/src/main/resources/data/spectrum/tags/blocks/pastel_network_nodes.json @@ -3,8 +3,7 @@ "spectrum:connection_node", "spectrum:provider_node", "spectrum:storage_node", - "spectrum:pusher_node", - "spectrum:puller_node", - "spectrum:interaction_node" + "spectrum:sender_node", + "spectrum:gather_node" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/player_only_glass.json b/src/main/resources/data/spectrum/tags/blocks/player_only_glass.json index dd45c7dc96..8d7e7712c1 100644 --- a/src/main/resources/data/spectrum/tags/blocks/player_only_glass.json +++ b/src/main/resources/data/spectrum/tags/blocks/player_only_glass.json @@ -1,12 +1,12 @@ { "values": [ - "spectrum:vanilla_player_only_glass", - "spectrum:tinted_player_only_glass", - "spectrum:glowing_player_only_glass", - "spectrum:amethyst_player_only_glass", - "spectrum:topaz_player_only_glass", - "spectrum:citrine_player_only_glass", - "spectrum:onyx_player_only_glass", - "spectrum:moonstone_player_only_glass" + "spectrum:vanilla_semi_permeable_glass", + "spectrum:tinted_semi_permeable_glass", + "spectrum:glowing_semi_permeable_glass", + "spectrum:amethyst_semi_permeable_glass", + "spectrum:topaz_semi_permeable_glass", + "spectrum:citrine_semi_permeable_glass", + "spectrum:onyx_semi_permeable_glass", + "spectrum:moonstone_semi_permeable_glass" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/primordial_fire_base_blocks.json b/src/main/resources/data/spectrum/tags/blocks/primordial_fire_base_blocks.json new file mode 100644 index 0000000000..d6649e7754 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/primordial_fire_base_blocks.json @@ -0,0 +1,4 @@ +{ + "values": [ + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/quitoxic_reeds_plantable.json b/src/main/resources/data/spectrum/tags/blocks/quitoxic_reeds_plantable.json index 957a556dbd..5eff7008d9 100644 --- a/src/main/resources/data/spectrum/tags/blocks/quitoxic_reeds_plantable.json +++ b/src/main/resources/data/spectrum/tags/blocks/quitoxic_reeds_plantable.json @@ -1,5 +1,6 @@ { "values": [ - "minecraft:clay" + "minecraft:clay", + "minecraft:mud" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/resonance_harvestables.json b/src/main/resources/data/spectrum/tags/blocks/resonance_harvestables.json index 9d7176be62..8402ecccbf 100644 --- a/src/main/resources/data/spectrum/tags/blocks/resonance_harvestables.json +++ b/src/main/resources/data/spectrum/tags/blocks/resonance_harvestables.json @@ -4,20 +4,11 @@ "#spectrum:crystallarieum_growable_buds", "#spectrum:infested_blocks", "#spectrum:spawners", - "spectrum:black_materia", - + "minecraft:reinforced_deepslate", { "id": "botania:enchanted_soil", "required": false - }, - { - "id": "minecraft:sculk_shrieker", - "required": false - }, - { - "id": "minecraft:reinforced_deepslate", - "required": false } ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/ruin_safe.json b/src/main/resources/data/spectrum/tags/blocks/ruin_safe.json index 07beb72801..c9a7f4b5a2 100644 --- a/src/main/resources/data/spectrum/tags/blocks/ruin_safe.json +++ b/src/main/resources/data/spectrum/tags/blocks/ruin_safe.json @@ -1,6 +1,6 @@ { "values": [ - "#spectrum:terror_safe", + "#spectrum:forfeiture_safe", "minecraft:air", "minecraft:cave_air", "minecraft:light", diff --git a/src/main/resources/data/spectrum/tags/blocks/shale_clays.json b/src/main/resources/data/spectrum/tags/blocks/shale_clays.json new file mode 100644 index 0000000000..640b2a0419 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/shale_clays.json @@ -0,0 +1,35 @@ +{ + "values": [ + "spectrum:shale_clay", + "spectrum:polished_shale_clay", + "spectrum:shale_clay_bricks", + "spectrum:shale_clay_tiles", + + "spectrum:shale_clay_brick_slab", + "spectrum:shale_clay_brick_stairs", + "spectrum:polished_shale_clay_slab", + "spectrum:polished_shale_clay_stairs", + "spectrum:shale_clay_tile_slab", + "spectrum:shale_clay_tile_stairs", + + "spectrum:exposed_polished_shale_clay", + "spectrum:exposed_polished_shale_clay_slab", + "spectrum:exposed_polished_shale_clay_stairs", + "spectrum:exposed_shale_clay_brick_slab", + "spectrum:exposed_shale_clay_brick_stairs", + "spectrum:exposed_shale_clay_bricks", + "spectrum:exposed_shale_clay_tile_slab", + "spectrum:exposed_shale_clay_tile_stairs", + "spectrum:exposed_shale_clay_tiles", + + "spectrum:weathered_polished_shale_clay", + "spectrum:weathered_polished_shale_clay_slab", + "spectrum:weathered_polished_shale_clay_stairs", + "spectrum:weathered_shale_clay_brick_slab", + "spectrum:weathered_shale_clay_brick_stairs", + "spectrum:weathered_shale_clay_bricks", + "spectrum:weathered_shale_clay_tile_slab", + "spectrum:weathered_shale_clay_tile_stairs", + "spectrum:weathered_shale_clay_tiles" + ] +} diff --git a/src/main/resources/data/spectrum/tags/blocks/shimmerstone_lights.json b/src/main/resources/data/spectrum/tags/blocks/shimmerstone_lights.json new file mode 100644 index 0000000000..e75c6aa2eb --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/shimmerstone_lights.json @@ -0,0 +1,13 @@ +{ + "replace": false, + "values": [ + "spectrum:basalt_shimmerstone_light", + "spectrum:calcite_shimmerstone_light", + "spectrum:stone_shimmerstone_light", + "spectrum:granite_shimmerstone_light", + "spectrum:diorite_shimmerstone_light", + "spectrum:andesite_shimmerstone_light", + "spectrum:deepslate_shimmerstone_light", + "spectrum:blackslag_shimmerstone_light" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/shimmerstone_ores.json b/src/main/resources/data/spectrum/tags/blocks/shimmerstone_ores.json new file mode 100644 index 0000000000..6129aab758 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/shimmerstone_ores.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "spectrum:shimmerstone_ore", + "spectrum:deepslate_shimmerstone_ore", + "spectrum:blackslag_shimmerstone_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/snapping_ivy_plantable.json b/src/main/resources/data/spectrum/tags/blocks/snapping_ivy_plantable.json new file mode 100644 index 0000000000..109ce2175c --- /dev/null +++ b/src/main/resources/data/spectrum/tags/blocks/snapping_ivy_plantable.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:dirt", + "spectrum:rotten_ground" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/sparklestone_lights.json b/src/main/resources/data/spectrum/tags/blocks/sparklestone_lights.json deleted file mode 100644 index b58a9b0e62..0000000000 --- a/src/main/resources/data/spectrum/tags/blocks/sparklestone_lights.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "replace": false, - "values": [ - "spectrum:basalt_sparklestone_light", - "spectrum:calcite_sparklestone_light", - "spectrum:stone_sparklestone_light", - "spectrum:granite_sparklestone_light", - "spectrum:diorite_sparklestone_light", - "spectrum:andesite_sparklestone_light", - "spectrum:deepslate_sparklestone_light" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/sparklestone_ores.json b/src/main/resources/data/spectrum/tags/blocks/sparklestone_ores.json deleted file mode 100644 index e09314208c..0000000000 --- a/src/main/resources/data/spectrum/tags/blocks/sparklestone_ores.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "spectrum:sparklestone_ore", - "spectrum:deepslate_sparklestone_ore", - "spectrum:blackslag_sparklestone_ore" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/blocks/topaz_ores.json b/src/main/resources/data/spectrum/tags/blocks/topaz_ores.json index b318acad13..2a5b5bb003 100644 --- a/src/main/resources/data/spectrum/tags/blocks/topaz_ores.json +++ b/src/main/resources/data/spectrum/tags/blocks/topaz_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:topaz_ore", - "spectrum:deepslate_topaz_ore" + "spectrum:deepslate_topaz_ore", + "spectrum:blackslag_topaz_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/fluids/bedrock_rod_fishable_in.json b/src/main/resources/data/spectrum/tags/fluids/bedrock_rod_fishable_in.json index f85cda4086..3cf61bd640 100644 --- a/src/main/resources/data/spectrum/tags/fluids/bedrock_rod_fishable_in.json +++ b/src/main/resources/data/spectrum/tags/fluids/bedrock_rod_fishable_in.json @@ -4,6 +4,7 @@ "#minecraft:lava", "#spectrum:mud", "#spectrum:liquid_crystal", - "#spectrum:midnight_solution" + "#spectrum:midnight_solution", + "#spectrum:dragonrot" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/fluids/dragonrot.json b/src/main/resources/data/spectrum/tags/fluids/dragonrot.json new file mode 100644 index 0000000000..4099bd970a --- /dev/null +++ b/src/main/resources/data/spectrum/tags/fluids/dragonrot.json @@ -0,0 +1,6 @@ +{ + "values": [ + "spectrum:dragonrot", + "spectrum:flowing_dragonrot" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/fluids/molten_rod_fishable_in.json b/src/main/resources/data/spectrum/tags/fluids/molten_rod_fishable_in.json index 637ff6a66d..52afe6011e 100644 --- a/src/main/resources/data/spectrum/tags/fluids/molten_rod_fishable_in.json +++ b/src/main/resources/data/spectrum/tags/fluids/molten_rod_fishable_in.json @@ -3,6 +3,7 @@ "#minecraft:water", "#minecraft:lava", "#spectrum:mud", - "#spectrum:liquid_crystal" + "#spectrum:liquid_crystal", + "#spectrum:dragonrot" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/fluids/swimmable_fluid.json b/src/main/resources/data/spectrum/tags/fluids/swimmable_fluid.json index 584923fab4..1b948306eb 100644 --- a/src/main/resources/data/spectrum/tags/fluids/swimmable_fluid.json +++ b/src/main/resources/data/spectrum/tags/fluids/swimmable_fluid.json @@ -2,6 +2,7 @@ "values": [ "#spectrum:liquid_crystal", "#spectrum:mud", - "#spectrum:midnight_solution" + "#spectrum:midnight_solution", + "#spectrum:dragonrot" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/alcohols.json b/src/main/resources/data/spectrum/tags/items/alcohols.json index bc34b0aec7..af64ef72d5 100644 --- a/src/main/resources/data/spectrum/tags/items/alcohols.json +++ b/src/main/resources/data/spectrum/tags/items/alcohols.json @@ -2,6 +2,7 @@ "replace": "false", "values": [ "#spectrum:drinkable_spirits", - "spectrum:pure_alcohol" + "spectrum:pure_alcohol", + "spectrum:chrysocolla" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/amethyst_ores.json b/src/main/resources/data/spectrum/tags/items/amethyst_ores.json index 308107ecb5..9aaae45b2e 100644 --- a/src/main/resources/data/spectrum/tags/items/amethyst_ores.json +++ b/src/main/resources/data/spectrum/tags/items/amethyst_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:amethyst_ore", - "spectrum:deepslate_amethyst_ore" + "spectrum:deepslate_amethyst_ore", + "spectrum:blackslag_amethyst_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/azurite_ores.json b/src/main/resources/data/spectrum/tags/items/azurite_ores.json index bca3493e42..35ba1a411b 100644 --- a/src/main/resources/data/spectrum/tags/items/azurite_ores.json +++ b/src/main/resources/data/spectrum/tags/items/azurite_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:azurite_ore", - "spectrum:deepslate_azurite_ore" + "spectrum:deepslate_azurite_ore", + "spectrum:blackslag_azurite_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/catkin.json b/src/main/resources/data/spectrum/tags/items/catkin.json new file mode 100644 index 0000000000..2f3ebe862d --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/catkin.json @@ -0,0 +1,14 @@ +{ + "values": [ + "spectrum:vibrant_cyan_catkin", + "spectrum:vibrant_magenta_catkin", + "spectrum:vibrant_yellow_catkin", + "spectrum:vibrant_black_catkin", + "spectrum:vibrant_white_catkin", + "spectrum:lucid_cyan_catkin", + "spectrum:lucid_magenta_catkin", + "spectrum:lucid_yellow_catkin", + "spectrum:lucid_black_catkin", + "spectrum:lucid_white_catkin" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/citrine_ores.json b/src/main/resources/data/spectrum/tags/items/citrine_ores.json index e2badfcc67..f36c776c42 100644 --- a/src/main/resources/data/spectrum/tags/items/citrine_ores.json +++ b/src/main/resources/data/spectrum/tags/items/citrine_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:citrine_ore", - "spectrum:deepslate_citrine_ore" + "spectrum:deepslate_citrine_ore", + "spectrum:blackslag_citrine_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/colored_buttons.json b/src/main/resources/data/spectrum/tags/items/colored_buttons.json index 6a6ef11b4c..e5f085a132 100644 --- a/src/main/resources/data/spectrum/tags/items/colored_buttons.json +++ b/src/main/resources/data/spectrum/tags/items/colored_buttons.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_button", - "spectrum:blue_plank_button", - "spectrum:brown_plank_button", - "spectrum:cyan_plank_button", - "spectrum:gray_plank_button", - "spectrum:green_plank_button", - "spectrum:light_blue_plank_button", - "spectrum:light_gray_plank_button", - "spectrum:lime_plank_button", - "spectrum:magenta_plank_button", - "spectrum:orange_plank_button", - "spectrum:pink_plank_button", - "spectrum:purple_plank_button", - "spectrum:red_plank_button", - "spectrum:white_plank_button", - "spectrum:yellow_plank_button" + "spectrum:black_button", + "spectrum:blue_button", + "spectrum:brown_button", + "spectrum:cyan_button", + "spectrum:gray_button", + "spectrum:green_button", + "spectrum:light_blue_button", + "spectrum:light_gray_button", + "spectrum:lime_button", + "spectrum:magenta_button", + "spectrum:orange_button", + "spectrum:pink_button", + "spectrum:purple_button", + "spectrum:red_button", + "spectrum:white_button", + "spectrum:yellow_button" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/colored_fences.json b/src/main/resources/data/spectrum/tags/items/colored_fences.json index 96722c599d..d8e299bbe3 100644 --- a/src/main/resources/data/spectrum/tags/items/colored_fences.json +++ b/src/main/resources/data/spectrum/tags/items/colored_fences.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_fence", - "spectrum:blue_plank_fence", - "spectrum:brown_plank_fence", - "spectrum:cyan_plank_fence", - "spectrum:gray_plank_fence", - "spectrum:green_plank_fence", - "spectrum:light_blue_plank_fence", - "spectrum:light_gray_plank_fence", - "spectrum:lime_plank_fence", - "spectrum:magenta_plank_fence", - "spectrum:orange_plank_fence", - "spectrum:pink_plank_fence", - "spectrum:purple_plank_fence", - "spectrum:red_plank_fence", - "spectrum:white_plank_fence", - "spectrum:yellow_plank_fence" + "spectrum:black_fence", + "spectrum:blue_fence", + "spectrum:brown_fence", + "spectrum:cyan_fence", + "spectrum:gray_fence", + "spectrum:green_fence", + "spectrum:light_blue_fence", + "spectrum:light_gray_fence", + "spectrum:lime_fence", + "spectrum:magenta_fence", + "spectrum:orange_fence", + "spectrum:pink_fence", + "spectrum:purple_fence", + "spectrum:red_fence", + "spectrum:white_fence", + "spectrum:yellow_fence" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/colored_pressure_plates.json b/src/main/resources/data/spectrum/tags/items/colored_pressure_plates.json index 1b3537062b..fd7d9a7067 100644 --- a/src/main/resources/data/spectrum/tags/items/colored_pressure_plates.json +++ b/src/main/resources/data/spectrum/tags/items/colored_pressure_plates.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_pressure_plate", - "spectrum:blue_plank_pressure_plate", - "spectrum:brown_plank_pressure_plate", - "spectrum:cyan_plank_pressure_plate", - "spectrum:gray_plank_pressure_plate", - "spectrum:green_plank_pressure_plate", - "spectrum:light_blue_plank_pressure_plate", - "spectrum:light_gray_plank_pressure_plate", - "spectrum:lime_plank_pressure_plate", - "spectrum:magenta_plank_pressure_plate", - "spectrum:orange_plank_pressure_plate", - "spectrum:pink_plank_pressure_plate", - "spectrum:purple_plank_pressure_plate", - "spectrum:red_plank_pressure_plate", - "spectrum:white_plank_pressure_plate", - "spectrum:yellow_plank_pressure_plate" + "spectrum:black_pressure_plate", + "spectrum:blue_pressure_plate", + "spectrum:brown_pressure_plate", + "spectrum:cyan_pressure_plate", + "spectrum:gray_pressure_plate", + "spectrum:green_pressure_plate", + "spectrum:light_blue_pressure_plate", + "spectrum:light_gray_pressure_plate", + "spectrum:lime_pressure_plate", + "spectrum:magenta_pressure_plate", + "spectrum:orange_pressure_plate", + "spectrum:pink_pressure_plate", + "spectrum:purple_pressure_plate", + "spectrum:red_pressure_plate", + "spectrum:white_pressure_plate", + "spectrum:yellow_pressure_plate" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/colored_slabs.json b/src/main/resources/data/spectrum/tags/items/colored_slabs.json index 43d7253d6d..3ed08deac8 100644 --- a/src/main/resources/data/spectrum/tags/items/colored_slabs.json +++ b/src/main/resources/data/spectrum/tags/items/colored_slabs.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_slab", - "spectrum:blue_plank_slab", - "spectrum:brown_plank_slab", - "spectrum:cyan_plank_slab", - "spectrum:gray_plank_slab", - "spectrum:green_plank_slab", - "spectrum:light_blue_plank_slab", - "spectrum:light_gray_plank_slab", - "spectrum:lime_plank_slab", - "spectrum:magenta_plank_slab", - "spectrum:orange_plank_slab", - "spectrum:pink_plank_slab", - "spectrum:purple_plank_slab", - "spectrum:red_plank_slab", - "spectrum:white_plank_slab", - "spectrum:yellow_plank_slab" + "spectrum:black_slab", + "spectrum:blue_slab", + "spectrum:brown_slab", + "spectrum:cyan_slab", + "spectrum:gray_slab", + "spectrum:green_slab", + "spectrum:light_blue_slab", + "spectrum:light_gray_slab", + "spectrum:lime_slab", + "spectrum:magenta_slab", + "spectrum:orange_slab", + "spectrum:pink_slab", + "spectrum:purple_slab", + "spectrum:red_slab", + "spectrum:white_slab", + "spectrum:yellow_slab" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/colored_stairs.json b/src/main/resources/data/spectrum/tags/items/colored_stairs.json index 218d98de75..3d1eee7c95 100644 --- a/src/main/resources/data/spectrum/tags/items/colored_stairs.json +++ b/src/main/resources/data/spectrum/tags/items/colored_stairs.json @@ -1,21 +1,21 @@ { "replace": false, "values": [ - "spectrum:black_plank_stairs", - "spectrum:blue_plank_stairs", - "spectrum:brown_plank_stairs", - "spectrum:cyan_plank_stairs", - "spectrum:gray_plank_stairs", - "spectrum:green_plank_stairs", - "spectrum:light_blue_plank_stairs", - "spectrum:light_gray_plank_stairs", - "spectrum:lime_plank_stairs", - "spectrum:magenta_plank_stairs", - "spectrum:orange_plank_stairs", - "spectrum:pink_plank_stairs", - "spectrum:purple_plank_stairs", - "spectrum:red_plank_stairs", - "spectrum:white_plank_stairs", - "spectrum:yellow_plank_stairs" + "spectrum:black_stairs", + "spectrum:blue_stairs", + "spectrum:brown_stairs", + "spectrum:cyan_stairs", + "spectrum:gray_stairs", + "spectrum:green_stairs", + "spectrum:light_blue_stairs", + "spectrum:light_gray_stairs", + "spectrum:lime_stairs", + "spectrum:magenta_stairs", + "spectrum:orange_stairs", + "spectrum:pink_stairs", + "spectrum:purple_stairs", + "spectrum:red_stairs", + "spectrum:white_stairs", + "spectrum:yellow_stairs" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/coming_soon_tooltip.json b/src/main/resources/data/spectrum/tags/items/coming_soon_tooltip.json index cd7f1768c1..6f796a9b43 100644 --- a/src/main/resources/data/spectrum/tags/items/coming_soon_tooltip.json +++ b/src/main/resources/data/spectrum/tags/items/coming_soon_tooltip.json @@ -1,197 +1,25 @@ { "values": [ - "spectrum:crystallarieum", - "spectrum:dreamflayer", - - "spectrum:small_bismuth_bud", - "spectrum:large_bismuth_bud", - "spectrum:bismuth_cluster", - "spectrum:bismuth_block", - "spectrum:bismuth_crystal", - - "spectrum:malachite_ore", - "spectrum:deepslate_malachite_ore", - "spectrum:small_malachite_bud", - "spectrum:large_malachite_bud", - "spectrum:malachite_cluster", - "spectrum:raw_malachite", - "spectrum:malachite_crystal", - "spectrum:malachite_block", - - "#spectrum:pure_resources", - "spectrum:small_coal_bud", - "spectrum:large_coal_bud", - "spectrum:small_copper_bud", - "spectrum:large_copper_bud", - "spectrum:small_diamond_bud", - "spectrum:large_diamond_bud", - "spectrum:small_emerald_bud", - "spectrum:large_emerald_bud", - "spectrum:small_glowstone_bud", - "spectrum:large_glowstone_bud", - "spectrum:small_gold_bud", - "spectrum:large_gold_bud", - "spectrum:small_iron_bud", - "spectrum:large_iron_bud", - "spectrum:small_lapis_bud", - "spectrum:large_lapis_bud", - "spectrum:small_netherite_bud", - "spectrum:large_netherite_bud", - "spectrum:small_prismarine_bud", - "spectrum:large_prismarine_bud", - "spectrum:small_quartz_bud", - "spectrum:large_quartz_bud", - "spectrum:small_redstone_bud", - "spectrum:large_redstone_bud", - - "spectrum:small_certus_quartz_bud", - "spectrum:large_certus_quartz_bud", - "spectrum:small_fluix_bud", - "spectrum:large_fluix_bud", - - "spectrum:small_globette_bud", - "spectrum:large_globette_bud", - "spectrum:small_globette_end_bud", - "spectrum:large_globette_end_bud", - "spectrum:small_globette_nether_bud", - "spectrum:large_globette_nether_bud", - - "spectrum:malachite_cluster", - "spectrum:bismuth_cluster", - - "spectrum:coal_cluster", - "spectrum:copper_cluster", - "spectrum:diamond_cluster", - "spectrum:emerald_cluster", - "spectrum:glowstone_cluster", - "spectrum:gold_cluster", - "spectrum:iron_cluster", - "spectrum:lapis_cluster", - "spectrum:netherite_cluster", - "spectrum:prismarine_cluster", - "spectrum:quartz_cluster", - "spectrum:redstone_cluster", - - "spectrum:certus_quartz_cluster", - "spectrum:fluix_cluster", - - "spectrum:globette_cluster", - "spectrum:globette_end_cluster", - "spectrum:globette_nether_cluster", - "spectrum:music_disc_dimension_theme", - "spectrum:spawner", - "spectrum:bottle_of_terror", - "spectrum:puff_circlet", - "spectrum:neat_ring", - "spectrum:greater_potion_pendant", - "spectrum:resonant_pickaxe", - "spectrum:exchange_staff", - "spectrum:end_portal_cracker", - "spectrum:pedestal_moonstone", + "spectrum:bottle_of_forfeiture", + "spectrum:mysterious_locket", + "spectrum:frigid_stardust", "spectrum:upgrade_speed3", "spectrum:upgrade_efficiency2", - "spectrum:upgrade_yield", "spectrum:upgrade_yield2", - "spectrum:upgrade_experience2", - "spectrum:cracked_end_portal_frame", - "spectrum:entity_detector", - "spectrum:celestial_pocketwatch", "spectrum:inkwell", "spectrum:ink_duct", "spectrum:artists_palette", - "spectrum:paletur_ore", - "spectrum:paletur_fragments", - "spectrum:paletur_gem", - "spectrum:paletur_fragment_block", "spectrum:spectral_shard", "spectrum:spectral_shard_block", "spectrum:spectral_shard_storage_block", + "spectrum:ominous_sapling", "spectrum:spirit_sallow_roots", "spectrum:spirit_sallow_log", "spectrum:spirit_sallow_leaves", "spectrum:spirit_sallow_heart", - "spectrum:vibrant_cyan_catkin", - "spectrum:vibrant_magenta_catkin", - "spectrum:vibrant_yellow_catkin", - "spectrum:vibrant_black_catkin", - "spectrum:vibrant_white_catkin", - "spectrum:lucid_cyan_catkin", - "spectrum:lucid_magenta_catkin", - "spectrum:lucid_yellow_catkin", - "spectrum:lucid_black_catkin", - "spectrum:lucid_white_catkin", "spectrum:sacred_soil", - "spectrum:moonstone_shard", - "spectrum:moonstone_powder", - "spectrum:moonstone_storage_block", - "spectrum:moonstone_glass", - "spectrum:moonstone_player_only_glass", - "spectrum:moonstone_chime", - "spectrum:moonstone_decostone", - "spectrum:moonstone_chiseled_basalt", - "spectrum:moonstone_chiseled_calcite", - "spectrum:moonstone_calcite_lamp", - "spectrum:moonstone_basalt_lamp", - "spectrum:moonstone_block", - "spectrum:budding_moonstone", - "spectrum:small_moonstone_bud", - "spectrum:medium_moonstone_bud", - "spectrum:large_moonstone_bud", - "spectrum:moonstone_cluster", - "spectrum:moonstone_ore", - "spectrum:deepslate_moonstone_ore", - "spectrum:white_pigment", - "spectrum:light_gray_pigment", - "spectrum:gray_pigment", - "spectrum:white_block", - "spectrum:light_gray_block", - "spectrum:gray_block", - "spectrum:white_lamp", - "spectrum:gray_lamp", - "spectrum:light_gray_lamp", - "spectrum:white_log", - "spectrum:gray_log", - "spectrum:light_gray_log", - "spectrum:white_leaves", - "spectrum:gray_leaves", - "spectrum:light_gray_leaves", - "spectrum:white_sapling", - "spectrum:gray_sapling", - "spectrum:light_gray_sapling", - "spectrum:white_planks", - "spectrum:gray_planks", - "spectrum:light_gray_planks", - "spectrum:white_plank_stairs", - "spectrum:gray_plank_stairs", - "spectrum:light_gray_plank_stairs", - "spectrum:white_plank_pressure_plate", - "spectrum:gray_plank_pressure_plate", - "spectrum:light_gray_plank_pressure_plate", - "spectrum:white_plank_fence", - "spectrum:gray_plank_fence", - "spectrum:light_gray_plank_fence", - "spectrum:white_plank_fence_gate", - "spectrum:gray_plank_fence_gate", - "spectrum:light_gray_plank_fence_gate", - "spectrum:white_plank_button", - "spectrum:gray_plank_button", - "spectrum:light_gray_plank_button", - "spectrum:white_plank_slab", - "spectrum:gray_plank_slab", - "spectrum:light_gray_plank_slab", - "spectrum:white_glowblock", - "spectrum:gray_glowblock", - "spectrum:light_gray_glowblock", - "spectrum:white_spore_blossom", - "spectrum:gray_spore_blossom", - "spectrum:light_gray_spore_blossom", - "spectrum:connection_node", - "spectrum:provider_node", - "spectrum:storage_node", - "spectrum:pusher_node", - "spectrum:puller_node", - "spectrum:interaction_node" + "#spectrum:catkin" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/drinkable_spirits.json b/src/main/resources/data/spectrum/tags/items/drinkable_spirits.json index 174b876bd1..c6e82dd799 100644 --- a/src/main/resources/data/spectrum/tags/items/drinkable_spirits.json +++ b/src/main/resources/data/spectrum/tags/items/drinkable_spirits.json @@ -4,6 +4,7 @@ "spectrum:jade_wine", "spectrum:infused_beverage", "spectrum:suspicious_brew", - "spectrum:reprise" + "spectrum:reprise", + "spectrum:freigeist" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/gemstone_armor.json b/src/main/resources/data/spectrum/tags/items/gemstone_armor.json index 7aff79f8b7..0b7881b165 100644 --- a/src/main/resources/data/spectrum/tags/items/gemstone_armor.json +++ b/src/main/resources/data/spectrum/tags/items/gemstone_armor.json @@ -1,8 +1,8 @@ { "values": [ - "spectrum:emergency_helmet", - "spectrum:emergency_chestplate", - "spectrum:emergency_leggings", - "spectrum:emergency_boots" + "spectrum:fetchling_helmet", + "spectrum:ferocious_chestplate", + "spectrum:sylph_leggings", + "spectrum:oread_boots" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/glass_arrows.json b/src/main/resources/data/spectrum/tags/items/glass_arrows.json new file mode 100644 index 0000000000..35f92c8bc1 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/glass_arrows.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "spectrum:malachite_glass_arrow", + "spectrum:topaz_glass_arrow", + "spectrum:amethyst_glass_arrow", + "spectrum:citrine_glass_arrow", + "spectrum:onyx_glass_arrow", + "spectrum:moonstone_glass_arrow" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/greatswords.json b/src/main/resources/data/spectrum/tags/items/greatswords.json new file mode 100644 index 0000000000..2386e315a1 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/greatswords.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "spectrum:malachite_ultra_greatsword", + "spectrum:glass_crest_ultra_greatsword" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/malachite_ores.json b/src/main/resources/data/spectrum/tags/items/malachite_ores.json new file mode 100644 index 0000000000..fcf1d6cd01 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/malachite_ores.json @@ -0,0 +1,7 @@ +{ + "values": [ + "spectrum:malachite_ore", + "spectrum:deepslate_malachite_ore", + "spectrum:blackslag_malachite_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/mob_heads.json b/src/main/resources/data/spectrum/tags/items/mob_heads.json index 70d1fc5d51..682f1d2953 100644 --- a/src/main/resources/data/spectrum/tags/items/mob_heads.json +++ b/src/main/resources/data/spectrum/tags/items/mob_heads.json @@ -73,6 +73,7 @@ "spectrum:sheep_red_head", "spectrum:sheep_white_head", "spectrum:sheep_yellow_head", + "spectrum:shulker_head", "spectrum:shulker_black_head", "spectrum:shulker_blue_head", "spectrum:shulker_brown_head", @@ -107,6 +108,12 @@ "spectrum:wolf_head", "spectrum:zoglin_head", "spectrum:zombie_villager_head", - "spectrum:zombified_piglin_head" + "spectrum:zombified_piglin_head", + "spectrum:frog_temperate_head", + "spectrum:frog_cold_head", + "spectrum:frog_warm_head", + "spectrum:allay_head", + "spectrum:warden_head", + "spectrum:tadpole_head" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/mob_heads/frog_heads.json b/src/main/resources/data/spectrum/tags/items/mob_heads/frog_heads.json new file mode 100644 index 0000000000..e902a873ac --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/mob_heads/frog_heads.json @@ -0,0 +1,7 @@ +{ + "values": [ + "spectrum:frog_temperate_head", + "spectrum:frog_cold_head", + "spectrum:frog_warm_head" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/moonstone_ores.json b/src/main/resources/data/spectrum/tags/items/moonstone_ores.json index 09346ac222..41223235d7 100644 --- a/src/main/resources/data/spectrum/tags/items/moonstone_ores.json +++ b/src/main/resources/data/spectrum/tags/items/moonstone_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:moonstone_ore", - "spectrum:deepslate_moonstone_ore" + "spectrum:deepslate_moonstone_ore", + "spectrum:blackslag_moonstone_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/noxcap_stems.json b/src/main/resources/data/spectrum/tags/items/noxcap_stems.json new file mode 100644 index 0000000000..9ce8e04415 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/noxcap_stems.json @@ -0,0 +1,12 @@ +{ + "values": [ + "spectrum:ivory_noxcap_stem", + "spectrum:stripped_ivory_noxcap_stem", + "spectrum:slate_noxcap_stem", + "spectrum:stripped_slate_noxcap_stem", + "spectrum:ebony_noxcap_stem", + "spectrum:stripped_ebony_noxcap_stem", + "spectrum:chestnut_noxcap_stem", + "spectrum:stripped_chestnut_noxcap_stem" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/noxwood_fences.json b/src/main/resources/data/spectrum/tags/items/noxwood_fences.json new file mode 100644 index 0000000000..3f9311fb58 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/noxwood_fences.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_fence", + "spectrum:slate_noxwood_fence", + "spectrum:ebony_noxwood_fence", + "spectrum:chestnut_noxwood_fence" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/noxwood_planks.json b/src/main/resources/data/spectrum/tags/items/noxwood_planks.json new file mode 100644 index 0000000000..2ed03667a9 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/noxwood_planks.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_planks", + "spectrum:slate_noxwood_planks", + "spectrum:ebony_noxwood_planks", + "spectrum:chestnut_noxwood_planks" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/noxwood_slabs.json b/src/main/resources/data/spectrum/tags/items/noxwood_slabs.json new file mode 100644 index 0000000000..5b4b4cbfd5 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/noxwood_slabs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_slab", + "spectrum:slate_noxwood_slab", + "spectrum:ebony_noxwood_slab", + "spectrum:chestnut_noxwood_slab" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/noxwood_stairs.json b/src/main/resources/data/spectrum/tags/items/noxwood_stairs.json new file mode 100644 index 0000000000..bba7e25e88 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/noxwood_stairs.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_stairs", + "spectrum:slate_noxwood_stairs", + "spectrum:ebony_noxwood_stairs", + "spectrum:chestnut_noxwood_stairs" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/noxwood_trapdoors.json b/src/main/resources/data/spectrum/tags/items/noxwood_trapdoors.json new file mode 100644 index 0000000000..9ee39d6abd --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/noxwood_trapdoors.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:ivory_noxwood_trapdoor", + "spectrum:slate_noxwood_trapdoor", + "spectrum:ebony_noxwood_trapdoor", + "spectrum:chestnut_noxwood_trapdoor" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/onyx_ores.json b/src/main/resources/data/spectrum/tags/items/onyx_ores.json index 62d9bf408a..b211f34e1c 100644 --- a/src/main/resources/data/spectrum/tags/items/onyx_ores.json +++ b/src/main/resources/data/spectrum/tags/items/onyx_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:onyx_ore", - "spectrum:deepslate_onyx_ore" + "spectrum:deepslate_onyx_ore", + "spectrum:blackslag_onyx_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/ores.json b/src/main/resources/data/spectrum/tags/items/ores.json index ccdb2498cc..2b9b71f447 100644 --- a/src/main/resources/data/spectrum/tags/items/ores.json +++ b/src/main/resources/data/spectrum/tags/items/ores.json @@ -2,8 +2,9 @@ "values": [ "#spectrum:gemstone_ores", "#spectrum:azurite_ores", - "#spectrum:sparklestone_ores", - "spectrum:scarlet_ore", - "spectrum:paletur_ore" + "#spectrum:shimmerstone_ores", + "#spectrum:malachite_ores", + "spectrum:stratine_ore", + "spectrum:paltaeria_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/player_only_glass.json b/src/main/resources/data/spectrum/tags/items/player_only_glass.json index 0f3558324b..7cfe5f93a0 100644 --- a/src/main/resources/data/spectrum/tags/items/player_only_glass.json +++ b/src/main/resources/data/spectrum/tags/items/player_only_glass.json @@ -1,12 +1,12 @@ { "values": [ - "spectrum:tinted_player_only_glass", - "spectrum:glowing_player_only_glass", - "spectrum:vanilla_player_only_glass", - "spectrum:amethyst_player_only_glass", - "spectrum:topaz_player_only_glass", - "spectrum:citrine_player_only_glass", - "spectrum:onyx_player_only_glass", - "spectrum:moonstone_player_only_glass" + "spectrum:tinted_semi_permeable_glass", + "spectrum:glowing_semi_permeable_glass", + "spectrum:vanilla_semi_permeable_glass", + "spectrum:amethyst_semi_permeable_glass", + "spectrum:topaz_semi_permeable_glass", + "spectrum:citrine_semi_permeable_glass", + "spectrum:onyx_semi_permeable_glass", + "spectrum:moonstone_semi_permeable_glass" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/rock_candy.json b/src/main/resources/data/spectrum/tags/items/rock_candy.json new file mode 100644 index 0000000000..b31411b14c --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/rock_candy.json @@ -0,0 +1,11 @@ +{ + "replace": "false", + "values": [ + "spectrum:rock_candy", + "spectrum:topaz_rock_candy", + "spectrum:amethyst_rock_candy", + "spectrum:citrine_rock_candy", + "spectrum:onyx_rock_candy", + "spectrum:moonstone_rock_candy" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/shimmerstone_ores.json b/src/main/resources/data/spectrum/tags/items/shimmerstone_ores.json new file mode 100644 index 0000000000..6129aab758 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/shimmerstone_ores.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "spectrum:shimmerstone_ore", + "spectrum:deepslate_shimmerstone_ore", + "spectrum:blackslag_shimmerstone_ore" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/sparklestone_ores.json b/src/main/resources/data/spectrum/tags/items/sparklestone_ores.json deleted file mode 100644 index 5692c342a5..0000000000 --- a/src/main/resources/data/spectrum/tags/items/sparklestone_ores.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "replace": false, - "values": [ - "spectrum:sparklestone_ore", - "spectrum:deepslate_sparklestone_ore" - ] -} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/topaz_ores.json b/src/main/resources/data/spectrum/tags/items/topaz_ores.json index b318acad13..2a5b5bb003 100644 --- a/src/main/resources/data/spectrum/tags/items/topaz_ores.json +++ b/src/main/resources/data/spectrum/tags/items/topaz_ores.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "spectrum:topaz_ore", - "spectrum:deepslate_topaz_ore" + "spectrum:deepslate_topaz_ore", + "spectrum:blackslag_topaz_ore" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/items/trinkets.json b/src/main/resources/data/spectrum/tags/items/trinkets.json index 10cf642367..be7949eeb0 100644 --- a/src/main/resources/data/spectrum/tags/items/trinkets.json +++ b/src/main/resources/data/spectrum/tags/items/trinkets.json @@ -1,6 +1,6 @@ { "values": [ - "spectrum:glow_vision_helmet", + "spectrum:glow_vision_goggles", "spectrum:jeopardant", "spectrum:seven_league_boots", "spectrum:radiance_pin", @@ -12,7 +12,7 @@ "spectrum:gleaming_pin", "#spectrum:potion_pendants", "spectrum:ashen_circlet", - "spectrum:tidal_circlet", + "spectrum:weeping_circlet", "spectrum:puff_circlet", "spectrum:whispy_circlet", "spectrum:neat_ring" diff --git a/src/main/resources/data/spectrum/tags/items/workstaffs.json b/src/main/resources/data/spectrum/tags/items/workstaffs.json new file mode 100644 index 0000000000..11bf129c4f --- /dev/null +++ b/src/main/resources/data/spectrum/tags/items/workstaffs.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "spectrum:malachite_workstaff", + "spectrum:glass_crest_workstaff" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/worldgen/biome/colored_trees_generating_in.json b/src/main/resources/data/spectrum/tags/worldgen/biome/colored_trees_generating_in.json new file mode 100644 index 0000000000..be4f30de0d --- /dev/null +++ b/src/main/resources/data/spectrum/tags/worldgen/biome/colored_trees_generating_in.json @@ -0,0 +1,12 @@ +{ + "values": [ + "#minecraft:is_badlands", + "#minecraft:is_forest", + "#minecraft:is_hill", + "#minecraft:is_jungle", + "#minecraft:is_mountain", + "#minecraft:is_taiga", + "#minecraft:is_savanna", + "minecraft:plains" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/city_below.json b/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/city_below.json new file mode 100644 index 0000000000..358e03ea7a --- /dev/null +++ b/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/city_below.json @@ -0,0 +1,8 @@ +{ + "values": [ + "spectrum:deep_barrens", + "spectrum:deep_dripstone_caves", + "spectrum:mushroom_forest", + "spectrum:razor_edge" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/underground_structures.json b/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/underground_structures.json index 0ae4dcb352..ae43694adb 100644 --- a/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/underground_structures.json +++ b/src/main/resources/data/spectrum/tags/worldgen/biome/has_structure/underground_structures.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "#minecraft:has_structure/mineshaft" + "#minecraft:is_overworld" ] } \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/worldgen/biome/in_deeper_down.json b/src/main/resources/data/spectrum/tags/worldgen/biome/in_deeper_down.json new file mode 100644 index 0000000000..ed2b42b3cb --- /dev/null +++ b/src/main/resources/data/spectrum/tags/worldgen/biome/in_deeper_down.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "spectrum:crystal_garden", + "spectrum:deep_barrens", + "spectrum:dragonrot_swamp", + "spectrum:forlorm_caves", + "spectrum:razor_edge" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/tags/biome/quitoxic_reeds_generating_in.json b/src/main/resources/data/spectrum/tags/worldgen/biome/quitoxic_reeds_generating_in.json similarity index 100% rename from src/main/resources/data/spectrum/tags/biome/quitoxic_reeds_generating_in.json rename to src/main/resources/data/spectrum/tags/worldgen/biome/quitoxic_reeds_generating_in.json diff --git a/src/main/resources/data/spectrum/tags/worldgen/structure/pedestal_ruins.json b/src/main/resources/data/spectrum/tags/worldgen/structure/pedestal_ruins.json new file mode 100644 index 0000000000..2bc7705db4 --- /dev/null +++ b/src/main/resources/data/spectrum/tags/worldgen/structure/pedestal_ruins.json @@ -0,0 +1,6 @@ +{ + "values": [ + "spectrum:pedestal_ruins_stone", + "spectrum:pedestal_ruins_deepslate" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/ferocious_glass_crest_bident.json b/src/main/resources/data/spectrum/weapon_attributes/ferocious_glass_crest_bident.json new file mode 100644 index 0000000000..af615dd69a --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/ferocious_glass_crest_bident.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:trident" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/fractal_glass_crest_bident.json b/src/main/resources/data/spectrum/weapon_attributes/fractal_glass_crest_bident.json new file mode 100644 index 0000000000..af615dd69a --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/fractal_glass_crest_bident.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:trident" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/glass_crest_ultra_greatsword.json b/src/main/resources/data/spectrum/weapon_attributes/glass_crest_ultra_greatsword.json new file mode 100644 index 0000000000..11bc4728fc --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/glass_crest_ultra_greatsword.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:claymore" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/glass_crest_workstaff.json b/src/main/resources/data/spectrum/weapon_attributes/glass_crest_workstaff.json new file mode 100644 index 0000000000..511991cad5 --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/glass_crest_workstaff.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:pickaxe" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/malachite_bident.json b/src/main/resources/data/spectrum/weapon_attributes/malachite_bident.json new file mode 100644 index 0000000000..af615dd69a --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/malachite_bident.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:trident" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/malachite_ultra_greatsword.json b/src/main/resources/data/spectrum/weapon_attributes/malachite_ultra_greatsword.json new file mode 100644 index 0000000000..11bc4728fc --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/malachite_ultra_greatsword.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:claymore" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/malachite_workstaff.json b/src/main/resources/data/spectrum/weapon_attributes/malachite_workstaff.json new file mode 100644 index 0000000000..511991cad5 --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/malachite_workstaff.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:pickaxe" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/nightfalls_blade.json b/src/main/resources/data/spectrum/weapon_attributes/nightfalls_blade.json new file mode 100644 index 0000000000..daafc473ce --- /dev/null +++ b/src/main/resources/data/spectrum/weapon_attributes/nightfalls_blade.json @@ -0,0 +1,3 @@ +{ + "parent": "bettercombat:dagger" +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/weapon_attributes/looting_falchion.json b/src/main/resources/data/spectrum/weapon_attributes/razor_falchion.json similarity index 100% rename from src/main/resources/data/spectrum/weapon_attributes/looting_falchion.json rename to src/main/resources/data/spectrum/weapon_attributes/razor_falchion.json diff --git a/src/main/resources/data/spectrum/worldgen/biome/crystal_garden.json b/src/main/resources/data/spectrum/worldgen/biome/crystal_garden.json new file mode 100644 index 0000000000..dc4ab00b43 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/crystal_garden.json @@ -0,0 +1,85 @@ +{ + "temperature": 0.2, + "downfall": 0.2, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [ + "spectrum:lake_liquid_crystal_underground" + ], + [ + "spectrum:dd_downstone_sloped", + "spectrum:moonstone_geode" + ], + [ + "spectrum:buried_dragon_fossil" + ], + [], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_shimmerstone_ore", + "spectrum:dd_iron_ore", + "spectrum:dd_gold_ore", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_infested", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [ + "spectrum:hummingstone_crystal_formations", + "spectrum:dd_bismuth" + ], + [ + "spectrum:dd_water_springs", + "spectrum:dd_lava_springs" + ], + [ + "minecraft:cave_vines", + "spectrum:dd_glow_lichen", + "spectrum:dd_liquid_crystal_flower_patch" + ], + [] + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/biome/deep_barrens.json b/src/main/resources/data/spectrum/worldgen/biome/deep_barrens.json new file mode 100644 index 0000000000..f6d1a366b8 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/deep_barrens.json @@ -0,0 +1,87 @@ +{ + "temperature": 0.2, + "downfall": 0.2, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [], + [ + "spectrum:dd_downstone_sloped", + "spectrum:moonstone_geode", + "spectrum:blackslag_pile", + "spectrum:stone_pile", + "spectrum:deepslate_pile" + ], + [ + "spectrum:buried_dragon_fossil" + ], + [], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_malachite_ore", + "spectrum:dd_shimmerstone_ore", + "spectrum:dd_iron_ore", + "spectrum:dd_iron_ore_extra", + "spectrum:dd_gold_ore", + "spectrum:dd_gold_ore_extra", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_infested", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [], + [ + "spectrum:dd_water_springs", + "spectrum:dd_lava_springs" + ], + [ + "minecraft:brown_mushroom_nether", + "minecraft:red_mushroom_nether", + "spectrum:dd_glow_lichen", + "spectrum:random_dragonjag" + ], + [] + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/biome/deep_dripstone_caves.json b/src/main/resources/data/spectrum/worldgen/biome/deep_dripstone_caves.json new file mode 100644 index 0000000000..1f2d2a7962 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/deep_dripstone_caves.json @@ -0,0 +1,88 @@ +{ + "temperature": 0.2, + "downfall": 0.2, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [], + [ + "spectrum:dd_downstone_sloped", + "spectrum:moonstone_geode", + "spectrum:dd_large_dripstone", + "spectrum:blackslag_pile" + ], + [ + "spectrum:buried_dragon_fossil" + ], + [], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_malachite_ore", + "spectrum:dd_shimmerstone_ore", + "spectrum:dd_iron_ore", + "spectrum:dd_iron_ore_extra", + "spectrum:dd_gold_ore", + "spectrum:dd_gold_ore_extra", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_infested", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [ + "spectrum:dd_dripstone_cluster", + "spectrum:dd_pointed_dripstone" + ], + [ + "spectrum:dd_water_springs", + "spectrum:dd_lava_springs" + ], + [ + "minecraft:brown_mushroom_nether", + "minecraft:red_mushroom_nether", + "spectrum:dd_glow_lichen" + ], + [] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/biome/dragonrot_swamp.json b/src/main/resources/data/spectrum/worldgen/biome/dragonrot_swamp.json new file mode 100644 index 0000000000..bd96541885 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/dragonrot_swamp.json @@ -0,0 +1,87 @@ +{ + "temperature": 0.6, + "downfall": 0.8, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [ + "spectrum:lake_mud_underground", + "spectrum:lake_dragonrot_underground" + ], + [ + "spectrum:dd_downstone_sloped", + "spectrum:moonstone_geode", + "spectrum:blackslag_pile" + ], + [ + "spectrum:buried_dragon_fossil", + "spectrum:exposed_dragon_fossil", + "minecraft:fossil_lower" + ], + [], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_malachite_ore", + "spectrum:dd_shimmerstone_ore", + "spectrum:dd_iron_ore", + "spectrum:dd_gold_ore", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_infested", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [], + [], + [ + "minecraft:cave_vines", + "spectrum:dd_glow_lichen", + "spectrum:dd_vines", + "spectrum:doombloom_patch", + "spectrum:random_dragonjags", + "spectrum:snapping_ivy_patch" + ], + [] + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/biome/forlorm_caves.json b/src/main/resources/data/spectrum/worldgen/biome/forlorm_caves.json new file mode 100644 index 0000000000..c817d55383 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/forlorm_caves.json @@ -0,0 +1,82 @@ +{ + "temperature": 0.2, + "downfall": 0.2, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [ + "spectrum:lake_midnight_solution_underground" + ], + [ + "spectrum:dd_downstone_sloped", + "spectrum:blackslag_pile" + ], + [ + "spectrum:buried_dragon_fossil", + "minecraft:fossil_lower" + ], + [], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_iron_ore", + "spectrum:dd_gold_ore", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_infested", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [ + "spectrum:sludge_vegetation" + ], + [ + "spectrum:dd_water_springs", + "spectrum:dd_lava_springs" + ], + [ + "spectrum:dd_glow_lichen" + ], + [] + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/biome/mushroom_forest.json b/src/main/resources/data/spectrum/worldgen/biome/mushroom_forest.json new file mode 100644 index 0000000000..4de58f7aee --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/mushroom_forest.json @@ -0,0 +1,87 @@ +{ + "temperature": 0.2, + "downfall": 0.2, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [], + [ + "spectrum:dd_downstone_sloped", + "spectrum:moonstone_geode", + "spectrum:blackslag_pile" + ], + [ + "spectrum:buried_dragon_fossil" + ], + [], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_malachite_ore", + "spectrum:dd_shimmerstone_ore", + "spectrum:dd_iron_ore", + "spectrum:dd_gold_ore", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [ + "spectrum:chestnut_noxfungus", + "spectrum:ebony_noxfungus", + "spectrum:slate_noxfungus", + "spectrum:ivory_noxfungus", + "spectrum:mushroom_forest_mushrooms", + "spectrum:mushroom_forest_vegetation" + ], + [ + "spectrum:dd_water_springs" + ], + [ + "minecraft:brown_mushroom_nether", + "minecraft:red_mushroom_nether", + "spectrum:dd_glow_lichen" + ], + [] + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/biome/razor_edge.json b/src/main/resources/data/spectrum/worldgen/biome/razor_edge.json new file mode 100644 index 0000000000..b354d7e341 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/biome/razor_edge.json @@ -0,0 +1,91 @@ +{ + "temperature": 0.2, + "downfall": 0.2, + "precipitation": "none", + "creature_spawn_probability": 0, + "effects": { + "sky_color": 0, + "fog_color": 0, + "water_color": 13880241, + "water_fog_color": 7629410, + "grass_color": 7241038, + "foliage_color": 3819567, + "grass_color_modifier": "none", + "mood_sound": { + "sound": "spectrum:ambient.dimension_sounds", + "tick_delay": 6000, + "block_search_extent": 8, + "offset": 2 + }, + "music": { + "sound": "spectrum:music.deeper_down_theme", + "min_delay": 12000, + "max_delay": 24000, + "replace_current_music": false + } + }, + "spawners": { + "monster": [], + "creature": [], + "ambient": [], + "axolotls": [], + "underground_water_creature": [], + "water_creature": [], + "water_ambient": [], + "misc": [] + }, + "spawn_costs": {}, + "carvers": { + "air": "minecraft:cave" + }, + "features": [ + [], + [], + [ + "spectrum:dd_downstone_sloped", + "spectrum:moonstone_geode", + "spectrum:dd_large_dripstone", + "spectrum:dd_shale_clay_pillar", + "spectrum:blackslag_pile" + ], + [ + "spectrum:buried_dragon_fossil" + ], + [ + "spectrum:dd_sawblade_delta", + "spectrum:dd_small_shale_clay_columns" + ], + [], + [ + "spectrum:dd_downstone", + "spectrum:dd_malachite_ore", + "spectrum:dd_shimmerstone_ore", + "spectrum:dd_iron_ore", + "spectrum:dd_gold_ore", + "spectrum:dd_diamond_ore", + "spectrum:dd_emerald_ore", + "spectrum:dd_tuff", + "spectrum:dd_gravel", + "spectrum:dd_infested", + "spectrum:dd_granite", + "spectrum:dd_diorite", + "spectrum:dd_andesite", + "spectrum:dd_stone" + ], + [ + "spectrum:dd_pointed_dripstone" + ], + [ + "spectrum:dd_water_springs", + "spectrum:dd_lava_springs", + "spectrum:dd_shale_clay_crystal_formations" + ], + [ + "spectrum:dd_glow_lichen", + "spectrum:aloe_patch", + "spectrum:sawblade_holly", + "spectrum:bristle_sprouts" + ], + [] + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/aloe_patch.json b/src/main/resources/data/spectrum/worldgen/configured_feature/aloe_patch.json new file mode 100644 index 0000000000..5e59645b7e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/aloe_patch.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 16, + "xz_spread": 7, + "y_spread": 3, + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:aloe", + "Properties": { + "age": "4" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/blackslag_pile.json b/src/main/resources/data/spectrum/worldgen/configured_feature/blackslag_pile.json new file mode 100644 index 0000000000..bc6c84fa9a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/blackslag_pile.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:rotated_block_provider", + "state": { + "Name": "spectrum:blackslag" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_andesite.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_andesite.json new file mode 100644 index 0000000000..a43d23cfee --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_andesite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 64, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:base_stone_deeper_down" + }, + "state": { + "Name": "minecraft:andesite" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_andesite_blobs.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_andesite_blobs.json new file mode 100644 index 0000000000..de313dacee --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_andesite_blobs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:netherrack_replace_blobs", + "config": { + "state": { + "Name": "minecraft:andesite" + }, + "target": { + "Name": "spectrum:blackslag" + }, + "radius": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 3, + "max_inclusive": 7 + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_basalt_blobs.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_basalt_blobs.json new file mode 100644 index 0000000000..9484dbdd95 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_basalt_blobs.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:netherrack_replace_blobs", + "config": { + "state": { + "Name": "minecraft:basalt", + "Properties": { + "axis": "y" + } + }, + "target": { + "Name": "spectrum:blackslag" + }, + "radius": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 3, + "max_inclusive": 7 + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_bismuth.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_bismuth.json new file mode 100644 index 0000000000..b1da333ed1 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_bismuth.json @@ -0,0 +1,22 @@ +{ + "type": "spectrum:random_buds", + "config": { + "search_range": 12, + "can_place_on_floor": false, + "can_place_on_ceiling": true, + "can_place_on_wall": true, + "can_be_placed_on": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:dripstone_block", + "spectrum:blackslag" + ], + "blocks": [ + "spectrum:small_bismuth_bud", + "spectrum:large_bismuth_bud" + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_diamond_ore.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_diamond_ore.json new file mode 100644 index 0000000000..c6b251df52 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_diamond_ore.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 7, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "minecraft:diamond_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "minecraft:deepslate_diamond_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:blackslag_diamond_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_diorite.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_diorite.json new file mode 100644 index 0000000000..cd16fb1c5f --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_diorite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 64, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:base_stone_deeper_down" + }, + "state": { + "Name": "minecraft:diorite" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_downstone.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_downstone.json new file mode 100644 index 0000000000..64139e0069 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_downstone.json @@ -0,0 +1,17 @@ +{ + "type": "spectrum:air_check_disk", + "config": { + "size": 40, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:always_true" + }, + "state": { + "Name": "spectrum:downstone" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_emerald_ore.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_emerald_ore.json new file mode 100644 index 0000000000..22d0a0b397 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_emerald_ore.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 13, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "minecraft:emerald_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "minecraft:deepslate_emerald_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:blackslag_emerald_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_glow_lichen.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_glow_lichen.json new file mode 100644 index 0000000000..8bba958000 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_glow_lichen.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:multiface_growth", + "config": { + "block": "minecraft:glow_lichen", + "search_range": 20, + "chance_of_spreading": 0.5, + "can_place_on_floor": false, + "can_place_on_ceiling": true, + "can_place_on_wall": true, + "can_be_placed_on": [ + "minecraft:stone", + "minecraft:andesite", + "minecraft:diorite", + "minecraft:granite", + "minecraft:dripstone_block", + "minecraft:deepslate" + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_gold_ore.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_gold_ore.json new file mode 100644 index 0000000000..ffce4ce9d8 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_gold_ore.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 13, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "minecraft:gold_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "minecraft:deepslate_gold_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:blackslag_gold_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_granite.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_granite.json new file mode 100644 index 0000000000..f500828d89 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_granite.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 64, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:base_stone_deeper_down" + }, + "state": { + "Name": "minecraft:granite" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_gravel.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_gravel.json new file mode 100644 index 0000000000..4b272fba55 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_gravel.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 33, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:base_stone_deeper_down" + }, + "state": { + "Name": "minecraft:gravel" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_infested.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_infested.json new file mode 100644 index 0000000000..639b62797d --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_infested.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 14, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "minecraft:infested_stone" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "minecraft:infested_deepslate", + "Properties": { + "axis": "y" + } + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:infested_blackslag" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_iron_ore.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_iron_ore.json new file mode 100644 index 0000000000..f3990ffe90 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_iron_ore.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 17, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "minecraft:iron_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "minecraft:deepslate_iron_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:blackslag_iron_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_large_andesite_columns.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_large_andesite_columns.json new file mode 100644 index 0000000000..a1d18dbe91 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_large_andesite_columns.json @@ -0,0 +1,22 @@ +{ + "type": "spectrum:columns", + "config": { + "state": { + "Name": "minecraft:andesite" + }, + "reach": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 2, + "max_inclusive": 3 + } + }, + "height": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 5, + "max_inclusive": 10 + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_lava_springs.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_lava_springs.json new file mode 100644 index 0000000000..7c217b6200 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_lava_springs.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "state": { + "Name": "minecraft:lava", + "Properties": { + "falling": "true" + } + }, + "rock_count": 4, + "hole_count": 1, + "requires_block_below": true, + "valid_blocks": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:dirt", + "minecraft:dripstone_block", + "spectrum:blackslag" + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_liquid_crystal_flower_patch.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_liquid_crystal_flower_patch.json new file mode 100644 index 0000000000..ed7afd37ef --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_liquid_crystal_flower_patch.json @@ -0,0 +1,79 @@ +{ + "type": "spectrum:random_block_proximity_patch", + "config": { + "tries": 64, + "xz_spread": 7, + "y_spread": 3, + "block_scan_range": 2, + "blocks_to_find": [ + "spectrum:liquid_crystal" + ], + "close_to_block_feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:resonant_lily" + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + }, + "fallback_feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 4, + "data": { + "Name": "minecraft:pink_tulip" + } + }, + { + "weight": 3, + "data": { + "Name": "minecraft:red_tulip" + } + }, + { + "weight": 2, + "data": { + "Name": "minecraft:orange_tulip" + } + }, + { + "weight": 1, + "data": { + "Name": "minecraft:white_tulip" + } + } + ] + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_malachite_ore.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_malachite_ore.json new file mode 100644 index 0000000000..28b8b34ab8 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_malachite_ore.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 4, + "discard_chance_on_air_exposure": 0.75, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "spectrum:malachite_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "spectrum:deepslate_malachite_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:blackslag_malachite_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_sawblade_delta.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_sawblade_delta.json new file mode 100644 index 0000000000..fbc57f4cf6 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_sawblade_delta.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:delta_feature", + "config": { + "contents": { + "Name": "spectrum:sawblade_grass" + }, + "rim": { + "Name": "spectrum:shale_clay" + }, + "size": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 5, + "max_inclusive": 10 + } + }, + "rim_size": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 1, + "max_inclusive": 3 + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shale_clay_crystal_formation.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shale_clay_crystal_formation.json new file mode 100644 index 0000000000..122d2a7bc9 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shale_clay_crystal_formation.json @@ -0,0 +1,33 @@ +{ + "type": "spectrum:crystal_formation", + "config": { + "iterations": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 400, + "max_inclusive": 800 + } + }, + "state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:shale_clay" + } + }, + "can_start_on": [ + "spectrum:shale_clay", + "minecraft:diorite", + "minecraft:granite", + "minecraft:dripstone_block", + "minecraft:calcite", + "minecraft:tuff", + "minecraft:deepslate", + "spectrum:blackslag" + ], + "can_extend_on": [ + "spectrum:shale_clay" + ], + "can_grow_upwards": true, + "can_grow_downwards": false + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shale_clay_pillar.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shale_clay_pillar.json new file mode 100644 index 0000000000..ae09c41ff8 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shale_clay_pillar.json @@ -0,0 +1,8 @@ +{ + "type": "spectrum:pillar", + "config": { + "state": { + "Name": "spectrum:shale_clay" + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shimmerstone_ore.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shimmerstone_ore.json new file mode 100644 index 0000000000..c2a23d2b4b --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_shimmerstone_ore.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 7, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "spectrum:shimmerstone_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:deepslate_ore_replaceables" + }, + "state": { + "Name": "spectrum:deepslate_shimmerstone_ore" + } + }, + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:blackslag_ore_replaceables" + }, + "state": { + "Name": "spectrum:blackslag_shimmerstone_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_small_shale_clay_columns.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_small_shale_clay_columns.json new file mode 100644 index 0000000000..ff7c9cc272 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_small_shale_clay_columns.json @@ -0,0 +1,16 @@ +{ + "type": "spectrum:columns", + "config": { + "state": { + "Name": "spectrum:shale_clay" + }, + "reach": 1, + "height": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 1, + "max_inclusive": 4 + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_stone.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_stone.json new file mode 100644 index 0000000000..ef8c81bdae --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_stone.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 33, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:base_stone_deeper_down" + }, + "state": { + "Name": "minecraft:stone" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_tuff.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_tuff.json new file mode 100644 index 0000000000..1592b4dc4b --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_tuff.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 64, + "discard_chance_on_air_exposure": 0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "spectrum:base_stone_deeper_down" + }, + "state": { + "Name": "minecraft:tuff" + } + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dd_water_springs.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_water_springs.json new file mode 100644 index 0000000000..a2a449c260 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dd_water_springs.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:spring_feature", + "config": { + "state": { + "Name": "minecraft:water", + "Properties": { + "falling": "true" + } + }, + "rock_count": 4, + "hole_count": 1, + "requires_block_below": true, + "valid_blocks": [ + "minecraft:stone", + "minecraft:granite", + "minecraft:diorite", + "minecraft:andesite", + "minecraft:deepslate", + "minecraft:dirt", + "minecraft:dripstone_block", + "spectrum:blackslag" + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/deepslate_pile.json b/src/main/resources/data/spectrum/worldgen/configured_feature/deepslate_pile.json new file mode 100644 index 0000000000..8f60dd5143 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/deepslate_pile.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:rotated_block_provider", + "state": { + "Name": "minecraft:deepslate" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/doombloom_patch.json b/src/main/resources/data/spectrum/worldgen/configured_feature/doombloom_patch.json new file mode 100644 index 0000000000..ab7502c550 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/doombloom_patch.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 12, + "xz_spread": 8, + "y_spread": 2, + "feature": { + "feature": { + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:doombloom", + "Properties": { + "age": "4" + } + } + } + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + -1, + 0 + ], + "blocks": "spectrum:rotten_ground" + } + } + ] + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/dragon_fossil.json b/src/main/resources/data/spectrum/worldgen/configured_feature/dragon_fossil.json new file mode 100644 index 0000000000..abc48e4de9 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/dragon_fossil.json @@ -0,0 +1,20 @@ +{ + "type": "fossil", + "config": { + "fossil_structures": [ + "spectrum:dragon_fossil/spine_1", + "spectrum:dragon_fossil/spine_2", + "spectrum:dragon_fossil/spine_3", + "spectrum:dragon_fossil/spine_4" + ], + "overlay_structures": [ + "spectrum:dragon_fossil/spine_1", + "spectrum:dragon_fossil/spine_2", + "spectrum:dragon_fossil/spine_3", + "spectrum:dragon_fossil/spine_4" + ], + "fossil_processors": "minecraft:fossil_rot", + "overlay_processors": "minecraft:empty", + "max_empty_corners_allowed": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/hummingstone_crystal_formation.json b/src/main/resources/data/spectrum/worldgen/configured_feature/hummingstone_crystal_formation.json new file mode 100644 index 0000000000..c54f24117a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/hummingstone_crystal_formation.json @@ -0,0 +1,47 @@ +{ + "type": "spectrum:crystal_formation", + "config": { + "iterations": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 1800, + "max_inclusive": 2400 + } + }, + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 1, + "data": { + "Name": "spectrum:hummingstone" + } + }, + { + "weight": 15, + "data": { + "Name": "spectrum:hummingstone_glass" + } + } + ] + }, + "can_start_on": [ + "minecraft:andesite", + "minecraft:diorite", + "minecraft:granite", + "minecraft:dripstone_block", + "minecraft:calcite", + "minecraft:tuff", + "minecraft:deepslate", + "spectrum:blackslag" + ], + "can_extend_on": [ + "spectrum:hummingstone_glass", + "minecraft:dripstone_block", + "minecraft:calcite", + "minecraft:tuff" + ], + "can_grow_upwards": true, + "can_grow_downwards": true + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/lake_dragonrot.json b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_dragonrot.json new file mode 100644 index 0000000000..af7a0b4c55 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_dragonrot.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:lake", + "config": { + "fluid": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:dragonrot", + "Properties": { + "level": "0" + } + } + }, + "barrier": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mud" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/lake_liquid_crystal.json b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_liquid_crystal.json new file mode 100644 index 0000000000..3d43b908d1 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_liquid_crystal.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:lake", + "config": { + "fluid": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:liquid_crystal", + "Properties": { + "level": "0" + } + } + }, + "barrier": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:overgrown_blackslag" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/lake_midnight_solution.json b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_midnight_solution.json new file mode 100644 index 0000000000..8a9ebd71a8 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_midnight_solution.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:lake", + "config": { + "fluid": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:midnight_solution", + "Properties": { + "level": "0" + } + } + }, + "barrier": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:black_materia" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/lake_mud.json b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_mud.json new file mode 100644 index 0000000000..31c91f219b --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/lake_mud.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:lake", + "config": { + "fluid": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:mud", + "Properties": { + "level": "0" + } + } + }, + "barrier": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:mud" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/moonstone_geode.json b/src/main/resources/data/spectrum/worldgen/configured_feature/moonstone_geode.json new file mode 100644 index 0000000000..a289114f6e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/moonstone_geode.json @@ -0,0 +1,87 @@ +{ + "type": "minecraft:geode", + "config": { + "blocks": { + "filling_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:air" + } + }, + "inner_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:moonstone_block" + } + }, + "alternate_inner_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:budding_moonstone" + } + }, + "middle_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:calcite" + } + }, + "outer_layer_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:smooth_basalt" + } + }, + "inner_placements": [ + { + "Name": "spectrum:moonstone_cluster", + "Properties": { + "facing": "up", + "waterlogged": "false" + } + } + ], + "cannot_replace": "#minecraft:features_cannot_replace", + "invalid_blocks": "#minecraft:geode_invalid_blocks" + }, + "layers": { + "filling": 5, + "inner_layer": 6, + "middle_layer": 7, + "outer_layer": 8 + }, + "crack": { + "generate_crack_chance": 0.15, + "base_crack_size": 3, + "crack_point_offset": 3 + }, + "noise_multiplier": 0.05, + "use_potential_placements_chance": 1, + "use_alternate_layer0_chance": 0.1, + "placements_require_layer0_alternate": true, + "outer_wall_distance": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 7, + "max_inclusive": 9 + } + }, + "distribution_points": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 2, + "max_inclusive": 3 + } + }, + "point_offset": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 1, + "max_inclusive": 2 + } + }, + "min_gen_offset": -14, + "max_gen_offset": 14, + "invalid_blocks_threshold": 1 + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/mushroom_forest_mushrooms.json b/src/main/resources/data/spectrum/worldgen/configured_feature/mushroom_forest_mushrooms.json new file mode 100644 index 0000000000..07dc044a16 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/mushroom_forest_mushrooms.json @@ -0,0 +1,35 @@ +{ + "type": "spectrum:weighted_random_feature", + "config": { + "features": [ + { + "data": { + "feature": "spectrum:slate_noxfungus", + "placement": [] + }, + "weight": 100 + }, + { + "data": { + "feature": "spectrum:ebony_noxfungus", + "placement": [] + }, + "weight": 100 + }, + { + "data": { + "feature": "spectrum:ivory_noxfungus", + "placement": [] + }, + "weight": 100 + }, + { + "data": { + "feature": "spectrum:chestnut_noxfungus", + "placement": [] + }, + "weight": 1 + } + ] + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/mushroom_forest_vegetation.json b/src/main/resources/data/spectrum/worldgen/configured_feature/mushroom_forest_vegetation.json new file mode 100644 index 0000000000..253e67c9b2 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/mushroom_forest_vegetation.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:nether_forest_vegetation", + "config": { + "state_provider": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 100, + "data": { + "Name": "spectrum:slate_noxshroom" + } + }, + { + "weight": 100, + "data": { + "Name": "spectrum:ebony_noxshroom" + } + }, + { + "weight": 100, + "data": { + "Name": "spectrum:ivory_noxshroom" + } + }, + { + "weight": 1, + "data": { + "Name": "spectrum:chestnut_noxshroom" + } + } + ] + }, + "spread_width": 14, + "spread_height": 5 + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/random_dragonjag.json b/src/main/resources/data/spectrum/worldgen/configured_feature/random_dragonjag.json new file mode 100644 index 0000000000..1ff7e98ee9 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/random_dragonjag.json @@ -0,0 +1,48 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:noise_provider", + "seed": 2345, + "noise": { + "firstOctave": 0, + "amplitudes": [ + 1 + ] + }, + "scale": 0.020833334, + "states": [ + { + "Name": "spectrum:small_black_dragonjag" + }, + { + "Name": "spectrum:small_red_dragonjag" + }, + { + "Name": "spectrum:small_green_dragonjag" + }, + { + "Name": "spectrum:small_pink_dragonjag" + }, + { + "Name": "spectrum:small_purple_dragonjag" + }, + { + "Name": "spectrum:tall_black_dragonjag" + }, + { + "Name": "spectrum:tall_red_dragonjag" + }, + { + "Name": "spectrum:tall_green_dragonjag" + }, + { + "Name": "spectrum:tall_pink_dragonjag" + }, + { + "Name": "spectrum:tall_purple_dragonjag" + } + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/random_dragonjags.json b/src/main/resources/data/spectrum/worldgen/configured_feature/random_dragonjags.json new file mode 100644 index 0000000000..b2c0d19630 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/random_dragonjags.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 36, + "xz_spread": 7, + "y_spread": 3, + "feature": { + "feature": "spectrum:random_dragonjag", + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + } + } + ] + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/sawblade_holly.json b/src/main/resources/data/spectrum/worldgen/configured_feature/sawblade_holly.json new file mode 100644 index 0000000000..ce71421c62 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/sawblade_holly.json @@ -0,0 +1,80 @@ +{ + "type": "minecraft:random_patch", + "config": { + "tries": 20, + "xz_spread": 4, + "y_spread": 0, + "feature": { + "feature": { + "type": "minecraft:block_column", + "config": { + "direction": "up", + "allowed_placement": { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + "prioritize_tip": false, + "layers": [ + { + "height": 1, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:razor_holly", + "Properties": { + "age": "7", + "half": "lower" + } + } + } + }, + { + "height": 1, + "provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "spectrum:razor_holly", + "Properties": { + "half": "upper" + } + } + } + } + ] + } + }, + "placement": [ + { + "type": "minecraft:block_predicate_filter", + "predicate": { + "type": "minecraft:all_of", + "predicates": [ + { + "type": "minecraft:matching_blocks", + "blocks": "minecraft:air" + }, + { + "type": "minecraft:matching_blocks", + "offset": [ + 0, + 1, + 0 + ], + "blocks": "minecraft:air" + }, + { + "type": "minecraft:would_survive", + "state": { + "Name": "spectrum:razor_holly", + "Properties": { + "age": "0" + } + } + } + ] + } + } + ] + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/sludge_vegetation.json b/src/main/resources/data/spectrum/worldgen/configured_feature/sludge_vegetation.json new file mode 100644 index 0000000000..06b9634bbc --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/sludge_vegetation.json @@ -0,0 +1,28 @@ +{ + "type": "minecraft:simple_block", + "config": { + "to_place": { + "type": "minecraft:weighted_state_provider", + "entries": [ + { + "weight": 8, + "data": { + "Name": "spectrum:sag_leaf" + } + }, + { + "weight": 7, + "data": { + "Name": "spectrum:sag_bubble" + } + }, + { + "weight": 4, + "data": { + "Name": "spectrum:small_sag_bubble" + } + } + ] + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_feature/stone_pile.json b/src/main/resources/data/spectrum/worldgen/configured_feature/stone_pile.json new file mode 100644 index 0000000000..95794a7d54 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/configured_feature/stone_pile.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:block_pile", + "config": { + "state_provider": { + "type": "minecraft:simple_state_provider", + "state": { + "Name": "minecraft:stone" + } + } + } +} diff --git a/src/main/resources/data/spectrum/worldgen/configured_structure_feature/ancient_ruins.json b/src/main/resources/data/spectrum/worldgen/configured_structure_feature/ancient_ruins.json deleted file mode 100644 index 8ef138f54f..0000000000 --- a/src/main/resources/data/spectrum/worldgen/configured_structure_feature/ancient_ruins.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "type": "spectrum:underground_structures", - "config": { - "start_pool": "spectrum:ancient_ruins", - "min_y": -30, - "max_y": 32, - "size": 1 - }, - "biomes": "#spectrum:has_structure/underground_structures", - "adapt_noise": false, - "spawn_overrides": { - "monster": { - "bounding_box": "piece", - "spawns": [] - } - } -} diff --git a/src/main/resources/data/spectrum/worldgen/configured_structure_feature/pedestal_ruins_deepslate.json b/src/main/resources/data/spectrum/worldgen/configured_structure_feature/pedestal_ruins_deepslate.json deleted file mode 100644 index dea7d47027..0000000000 --- a/src/main/resources/data/spectrum/worldgen/configured_structure_feature/pedestal_ruins_deepslate.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "spectrum:underground_structures", - "config": { - "start_pool": "spectrum:pedestal_ruins_deepslate", - "min_y": -48, - "max_y": 0, - "size": 1 - }, - "biomes": "#spectrum:has_structure/underground_structures", - "adapt_noise": false, - "spawn_overrides": { } -} diff --git a/src/main/resources/data/spectrum/worldgen/configured_structure_feature/pedestal_ruins_stone.json b/src/main/resources/data/spectrum/worldgen/configured_structure_feature/pedestal_ruins_stone.json deleted file mode 100644 index 087aad170c..0000000000 --- a/src/main/resources/data/spectrum/worldgen/configured_structure_feature/pedestal_ruins_stone.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "spectrum:underground_structures", - "config": { - "start_pool": "spectrum:pedestal_ruins_stone", - "min_y": 10, - "max_y": 64, - "size": 1 - }, - "biomes": "#spectrum:has_structure/underground_structures", - "adapt_noise": false, - "spawn_overrides": { } -} diff --git a/src/main/resources/data/spectrum/worldgen/density_function/deeper_down_depth.json b/src/main/resources/data/spectrum/worldgen/density_function/deeper_down_depth.json new file mode 100644 index 0000000000..b4ff87f803 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/density_function/deeper_down_depth.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:add", + "argument1": { + "type": "minecraft:y_clamped_gradient", + "from_y": -448, + "to_y": -64, + "from_value": 1.15, + "to_value": -1.0 + }, + "argument2": "minecraft:overworld/offset" +} diff --git a/src/main/resources/data/spectrum/worldgen/noise/deeper_down_barrier.json b/src/main/resources/data/spectrum/worldgen/noise/deeper_down_barrier.json new file mode 100644 index 0000000000..69bf49db98 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/noise/deeper_down_barrier.json @@ -0,0 +1,8 @@ +{ + "amplitudes": [ + 0.0, + 2.0, + 1.0 + ], + "firstOctave": -3 +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/noise_settings/deeper_down_noise.json b/src/main/resources/data/spectrum/worldgen/noise_settings/deeper_down_noise.json index 69b87dc31f..59c947864c 100644 --- a/src/main/resources/data/spectrum/worldgen/noise_settings/deeper_down_noise.json +++ b/src/main/resources/data/spectrum/worldgen/noise_settings/deeper_down_noise.json @@ -1,7 +1,7 @@ { - "sea_level": -448, + "sea_level": -356, "disable_mob_generation": false, - "aquifers_enabled": true, + "aquifers_enabled": false, "ore_veins_enabled": false, "legacy_random_source": false, "default_block": { @@ -17,28 +17,7 @@ "min_y": -448, "height": 384, "size_horizontal": 1, - "size_vertical": 2, - "sampling": { - "xz_scale": 1, - "y_scale": 3, - "xz_factor": 80, - "y_factor": 60 - }, - "bottom_slide": { - "target": 2.5, - "size": 4, - "offset": 0.75 - }, - "top_slide": { - "target": 2.5, - "size": 3, - "offset": -0.8 - }, - "terrain_shaper": { - "offset": 2, - "factor": 1, - "jaggedness": 20 - } + "size_vertical": 2 }, "noise_router": { "barrier": 0, @@ -63,11 +42,11 @@ "shift_y": 0, "shift_z": "minecraft:shift_z" }, - "continents": 0.0, - "depth": 0.0, - "erosion": 0.0, - "ridges": 0.0, - "initial_density_without_jaggedness": 0.0, + "continents": "minecraft:overworld/continents", + "erosion": "minecraft:overworld/erosion", + "depth": "spectrum:deeper_down_depth", + "ridges": "minecraft:overworld/ridges", + "initial_density_without_jaggedness": 0, "final_density": { "type": "minecraft:squeeze", "argument": { @@ -84,10 +63,10 @@ "type": "minecraft:mul", "argument1": { "type": "minecraft:y_clamped_gradient", - "from_value": 0.0, "from_y": -350, - "to_value": 1.0, - "to_y": -340 + "to_y": -340, + "from_value": 0, + "to_value": 1 }, "argument2": { "type": "minecraft:add", @@ -99,21 +78,21 @@ "type": "minecraft:mul", "argument1": { "type": "minecraft:y_clamped_gradient", - "from_value": 1.0, "from_y": -300, - "to_value": 0.0, - "to_y": -64 + "to_y": -64, + "from_value": 1, + "to_value": 0 }, "argument2": { "type": "minecraft:add", "argument1": -0.9375, "argument2": { "type": "minecraft:old_blended_noise", - "smear_scale_multiplier": 8.0, - "xz_factor": 80.0, "xz_scale": 0.25, - "y_factor": 0.0, - "y_scale": 0.0 + "y_scale": 0.01, + "xz_factor": 80, + "y_factor": 0.01, + "smear_scale_multiplier": 8 } } } @@ -130,23 +109,17 @@ "argument": { "type": "minecraft:range_choice", "input": "minecraft:y", - "max_exclusive": -80.0, - "min_inclusive": -420.0, + "min_inclusive": -420, + "max_exclusive": -80, "when_in_range": { "type": "minecraft:noise", "noise": "minecraft:ore_veininess", "xz_scale": 0.25, "y_scale": 0.25 }, - "when_out_of_range": 0.0 + "when_out_of_range": 0 } }, - "vein_gap": { - "type": "minecraft:noise", - "noise": "minecraft:ore_gap", - "xz_scale": 1.0, - "y_scale": 1.0 - }, "vein_ridged": { "type": "minecraft:add", "argument1": -0.08, @@ -159,15 +132,15 @@ "argument": { "type": "minecraft:range_choice", "input": "minecraft:y", - "max_exclusive": -80.0, - "min_inclusive": -400.0, + "min_inclusive": -400, + "max_exclusive": -80, "when_in_range": { "type": "minecraft:noise", "noise": "minecraft:ore_vein_a", - "xz_scale": 4.0, - "y_scale": 4.0 + "xz_scale": 4, + "y_scale": 4 }, - "when_out_of_range": 0.0 + "when_out_of_range": 0 } } }, @@ -178,21 +151,83 @@ "argument": { "type": "minecraft:range_choice", "input": "minecraft:y", - "max_exclusive": -80.0, - "min_inclusive": -360.0, + "min_inclusive": -360, + "max_exclusive": -80, "when_in_range": { "type": "minecraft:noise", "noise": "minecraft:ore_vein_b", - "xz_scale": 4.0, - "y_scale": 4.0 + "xz_scale": 4, + "y_scale": 4 }, - "when_out_of_range": 0.0 + "when_out_of_range": 0 } } } } + }, + "vein_gap": { + "type": "minecraft:noise", + "noise": "minecraft:ore_gap", + "xz_scale": 1, + "y_scale": 1 } }, + "spawn_target": [ + { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + -1, + 1 + ], + "offset": 0 + }, + { + "temperature": [ + -1, + 1 + ], + "humidity": [ + -1, + 1 + ], + "continentalness": [ + -1, + 1 + ], + "erosion": [ + -1, + 1 + ], + "weirdness": [ + -1, + 1 + ], + "depth": [ + -1, + 1 + ], + "offset": 0 + } + ], "surface_rule": { "type": "minecraft:sequence", "sequence": [ @@ -222,12 +257,157 @@ "type": "minecraft:condition", "if_true": { "type": "minecraft:vertical_gradient", - "false_at_and_above": { - "absolute": -220 + "random_name": "minecraft:bedrock_floor", + "true_at_and_below": { + "above_bottom": 0 }, + "false_at_and_above": { + "above_bottom": 5 + } + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "spectrum:downstone" + } + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "spectrum:mushroom_forest" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "spectrum:shimmel" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "spectrum:crystal_garden" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "spectrum:overgrown_blackslag" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "spectrum:forlorm_caves" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "ceiling", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "spectrum:rotten_ground" + } + } + }, + { + "type": "minecraft:block", + "result_state": { + "Name": "spectrum:black_materia" + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:biome", + "biome_is": [ + "spectrum:dragonrot_swamp" + ] + }, + "then_run": { + "type": "minecraft:sequence", + "sequence": [ + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:stone_depth", + "offset": 0, + "surface_type": "floor", + "add_surface_depth": false, + "secondary_depth_range": 0 + }, + "then_run": { + "type": "minecraft:block", + "result_state": { + "Name": "spectrum:rotten_ground" + } + } + } + ] + } + }, + { + "type": "minecraft:condition", + "if_true": { + "type": "minecraft:vertical_gradient", "random_name": "minecraft:deepslate", "true_at_and_below": { "absolute": -234 + }, + "false_at_and_above": { + "absolute": -220 } }, "then_run": { @@ -240,7 +420,10 @@ { "type": "minecraft:block", "result_state": { - "Name": "minecraft:deepslate" + "Name": "minecraft:deepslate", + "Properties": { + "axis": "y" + } } } ] diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/aloe_patch.json b/src/main/resources/data/spectrum/worldgen/placed_feature/aloe_patch.json new file mode 100644 index 0000000000..c2659db233 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/aloe_patch.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:aloe_patch", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/black_dragonjags.json b/src/main/resources/data/spectrum/worldgen/placed_feature/black_dragonjags.json new file mode 100644 index 0000000000..cb2a9e805e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/black_dragonjags.json @@ -0,0 +1,29 @@ +{ + "feature": "spectrum:black_dragonjags", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 1, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -3, + "max_inclusive": 1 + } + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/blackslag_pile.json b/src/main/resources/data/spectrum/worldgen/placed_feature/blackslag_pile.json new file mode 100644 index 0000000000..1e959c4bff --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/blackslag_pile.json @@ -0,0 +1,16 @@ +{ + "feature": "spectrum:blackslag_pile", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:rarity_filter", + "chance": 4 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/bristle_sprouts.json b/src/main/resources/data/spectrum/worldgen/placed_feature/bristle_sprouts.json new file mode 100644 index 0000000000..3565d99783 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/bristle_sprouts.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:bristle_sprouts", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 4 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/buried_dragon_fossil.json b/src/main/resources/data/spectrum/worldgen/placed_feature/buried_dragon_fossil.json new file mode 100644 index 0000000000..4bb84f6153 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/buried_dragon_fossil.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dragon_fossil", + "placement": [ + { + "type": "rarity_filter", + "chance": 32 + }, + { + "type": "height_range", + "height": { + "type": "uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "in_square" + }, + { + "type": "biome" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/chestnut_noxfungus.json b/src/main/resources/data/spectrum/worldgen/placed_feature/chestnut_noxfungus.json new file mode 100644 index 0000000000..82389ade31 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/chestnut_noxfungus.json @@ -0,0 +1,4 @@ +{ + "feature": "spectrum:chestnut_noxfungus", + "placement": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_andesite.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_andesite.json new file mode 100644 index 0000000000..be6a4a36c3 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_andesite.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_andesite", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_andesite_blobs.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_andesite_blobs.json new file mode 100644 index 0000000000..9d58e5621a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_andesite_blobs.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_andesite_blobs", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_basalt_blobs.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_basalt_blobs.json new file mode 100644 index 0000000000..bbd152cec9 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_basalt_blobs.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_basalt_blobs", + "placement": [ + { + "type": "minecraft:count", + "count": 75 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_bismuth.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_bismuth.json new file mode 100644 index 0000000000..4b96d60b6a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_bismuth.json @@ -0,0 +1,33 @@ +{ + "feature": "spectrum:dd_gravel", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 128, + "max_inclusive": 156 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "above_bottom": 128 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_diamond_ore.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_diamond_ore.json new file mode 100644 index 0000000000..19a8737d9e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_diamond_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_diamond_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_diorite.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_diorite.json new file mode 100644 index 0000000000..d5af2ff967 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_diorite.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_diorite", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_downstone.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_downstone.json new file mode 100644 index 0000000000..a5d88e7b98 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_downstone.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_andesite", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "above_bottom": 92 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_downstone_sloped.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_downstone_sloped.json new file mode 100644 index 0000000000..dc58f449f5 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_downstone_sloped.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_andesite", + "placement": [ + { + "type": "minecraft:count", + "count": 24 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:very_biased_to_bottom", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "above_bottom": 50 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_dripstone_cluster.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_dripstone_cluster.json new file mode 100644 index 0000000000..1c8ff708d4 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_dripstone_cluster.json @@ -0,0 +1,33 @@ +{ + "feature": "minecraft:dripstone_cluster", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 48, + "max_inclusive": 96 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_emerald_ore.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_emerald_ore.json new file mode 100644 index 0000000000..0a867f35be --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_emerald_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_emerald_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 3 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_glow_lichen.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_glow_lichen.json new file mode 100644 index 0000000000..ba234a6e21 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_glow_lichen.json @@ -0,0 +1,33 @@ +{ + "feature": "minecraft:glow_lichen", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 148, + "max_inclusive": 240 + } + } + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gold_ore.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gold_ore.json new file mode 100644 index 0000000000..6134c13e30 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gold_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_gold_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 16 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gold_ore_extra.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gold_ore_extra.json new file mode 100644 index 0000000000..c55cb40b71 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gold_ore_extra.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_gold_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "above_bottom": 192 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_granite.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_granite.json new file mode 100644 index 0000000000..e0c13ed73e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_granite.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_granite", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gravel.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gravel.json new file mode 100644 index 0000000000..e6b87f90f9 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_gravel.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_gravel", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_infested.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_infested.json new file mode 100644 index 0000000000..0d853a4f44 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_infested.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_infested", + "placement": [ + { + "type": "minecraft:count", + "count": 14 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 8 + }, + "max_inclusive": { + "below_top": 8 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_iron_ore.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_iron_ore.json new file mode 100644 index 0000000000..f241a22f03 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_iron_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_iron_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_iron_ore_extra.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_iron_ore_extra.json new file mode 100644 index 0000000000..74b929303a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_iron_ore_extra.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_iron_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 8 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "above_bottom": 192 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_large_andesite_columns.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_large_andesite_columns.json new file mode 100644 index 0000000000..0d181fa372 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_large_andesite_columns.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:dd_large_andesite_columns", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_large_dripstone.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_large_dripstone.json new file mode 100644 index 0000000000..f36edfb9c4 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_large_dripstone.json @@ -0,0 +1,33 @@ +{ + "feature": "minecraft:large_dripstone", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 10, + "max_inclusive": 48 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_lava_springs.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_lava_springs.json new file mode 100644 index 0000000000..0c95027b51 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_lava_springs.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_lava_springs", + "placement": [ + { + "type": "minecraft:count", + "count": 5 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_liquid_crystal_flower_patch.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_liquid_crystal_flower_patch.json new file mode 100644 index 0000000000..f2f9bb059e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_liquid_crystal_flower_patch.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:dd_liquid_crystal_flower_patch", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_malachite_ore.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_malachite_ore.json new file mode 100644 index 0000000000..5f34ad1fed --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_malachite_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_malachite_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "above_bottom": 192 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_pointed_dripstone.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_pointed_dripstone.json new file mode 100644 index 0000000000..162c697565 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_pointed_dripstone.json @@ -0,0 +1,64 @@ +{ + "feature": "minecraft:pointed_dripstone", + "placement": [ + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 192, + "max_inclusive": 256 + } + } + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 1, + "max_inclusive": 5 + } + } + }, + { + "type": "minecraft:random_offset", + "xz_spread": { + "type": "minecraft:clamped_normal", + "value": { + "min_inclusive": -10, + "max_inclusive": 10, + "mean": 0, + "deviation": 3 + } + }, + "y_spread": { + "type": "minecraft:clamped_normal", + "value": { + "min_inclusive": -2, + "max_inclusive": 2, + "mean": 0, + "deviation": 0.6 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_sawblade_delta.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_sawblade_delta.json new file mode 100644 index 0000000000..44d641e69d --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_sawblade_delta.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:dd_sawblade_delta", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 40 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shale_clay_crystal_formations.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shale_clay_crystal_formations.json new file mode 100644 index 0000000000..7343c88cc5 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shale_clay_crystal_formations.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_shale_clay_crystal_formation", + "placement": [ + { + "type": "minecraft:count", + "count": 180 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shale_clay_pillar.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shale_clay_pillar.json new file mode 100644 index 0000000000..830fd21d84 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shale_clay_pillar.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_shale_clay_pillar", + "placement": [ + { + "type": "minecraft:count", + "count": 10 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 0 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shimmerstone_ore.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shimmerstone_ore.json new file mode 100644 index 0000000000..8b2397df65 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_shimmerstone_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_shimmerstone_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 24 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:trapezoid", + "min_inclusive": { + "below_top": 256 + }, + "max_inclusive": { + "below_top": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_small_shale_clay_columns.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_small_shale_clay_columns.json new file mode 100644 index 0000000000..98e61afe58 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_small_shale_clay_columns.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:dd_small_shale_clay_columns", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 2 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_stone.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_stone.json new file mode 100644 index 0000000000..4c1a4d4694 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_stone.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_stone", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "below_top": 128 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_tuff.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_tuff.json new file mode 100644 index 0000000000..ce12b822ac --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_tuff.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_tuff", + "placement": [ + { + "type": "minecraft:count", + "count": 2 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "below_top": 192 + }, + "max_inclusive": { + "below_top": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_vines.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_vines.json new file mode 100644 index 0000000000..c02d3618b3 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_vines.json @@ -0,0 +1,27 @@ +{ + "feature": "minecraft:vines", + "placement": [ + { + "type": "minecraft:count", + "count": 256 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "absolute": 256 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/dd_water_springs.json b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_water_springs.json new file mode 100644 index 0000000000..da2b142c01 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/dd_water_springs.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:dd_water_springs", + "placement": [ + { + "type": "minecraft:count", + "count": 25 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 0 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/deepslate_pile.json b/src/main/resources/data/spectrum/worldgen/placed_feature/deepslate_pile.json new file mode 100644 index 0000000000..793773e723 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/deepslate_pile.json @@ -0,0 +1,16 @@ +{ + "feature": "spectrum:deepslate_pile", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:rarity_filter", + "chance": 4 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/doombloom_patch.json b/src/main/resources/data/spectrum/worldgen/placed_feature/doombloom_patch.json new file mode 100644 index 0000000000..a0d2c6148c --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/doombloom_patch.json @@ -0,0 +1,18 @@ +{ + "feature": "spectrum:doombloom_patch", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 0, + "max_inclusive": 1 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/ebony_noxfungus.json b/src/main/resources/data/spectrum/worldgen/placed_feature/ebony_noxfungus.json new file mode 100644 index 0000000000..c32179e81e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/ebony_noxfungus.json @@ -0,0 +1,4 @@ +{ + "feature": "spectrum:ebony_noxfungus", + "placement": [] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/exposed_dragon_fossil.json b/src/main/resources/data/spectrum/worldgen/placed_feature/exposed_dragon_fossil.json new file mode 100644 index 0000000000..304f3e01c4 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/exposed_dragon_fossil.json @@ -0,0 +1,18 @@ +{ + "feature": "spectrum:dragon_fossil", + "placement": [ + { + "type": "in_square" + }, + { + "type": "dragon_fossil" + }, + { + "type": "biome" + }, + { + "type": "rarity_filter", + "chance": 16 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/green_dragonjags.json b/src/main/resources/data/spectrum/worldgen/placed_feature/green_dragonjags.json new file mode 100644 index 0000000000..2c10a7663b --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/green_dragonjags.json @@ -0,0 +1,29 @@ +{ + "feature": "spectrum:green_dragonjags", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 1, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -3, + "max_inclusive": 1 + } + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/hummingstone_crystal_formations.json b/src/main/resources/data/spectrum/worldgen/placed_feature/hummingstone_crystal_formations.json new file mode 100644 index 0000000000..05b78c319d --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/hummingstone_crystal_formations.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:hummingstone_crystal_formation", + "placement": [ + { + "type": "minecraft:count", + "count": 240 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "below_top": 16 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/ivory_noxfungus.json b/src/main/resources/data/spectrum/worldgen/placed_feature/ivory_noxfungus.json new file mode 100644 index 0000000000..bc3d7558e6 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/ivory_noxfungus.json @@ -0,0 +1,4 @@ +{ + "feature": "spectrum:ivory_noxfungus", + "placement": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/lake_dragonrot_underground.json b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_dragonrot_underground.json new file mode 100644 index 0000000000..11cea819bc --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_dragonrot_underground.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:lake_dragonrot", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 2 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/lake_liquid_crystal_underground.json b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_liquid_crystal_underground.json new file mode 100644 index 0000000000..7dd99b552a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_liquid_crystal_underground.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:lake_liquid_crystal", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 2 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/lake_midnight_solution_underground.json b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_midnight_solution_underground.json new file mode 100644 index 0000000000..d4f718ef64 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_midnight_solution_underground.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:lake_midnight_solution", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 7 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/lake_mud_underground.json b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_mud_underground.json new file mode 100644 index 0000000000..c6090155e1 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/lake_mud_underground.json @@ -0,0 +1,24 @@ +{ + "feature": "spectrum:lake_mud", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 10, + "data": 0 + }, + { + "weight": 1, + "data": 1 + } + ] + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/moonstone_geode.json b/src/main/resources/data/spectrum/worldgen/placed_feature/moonstone_geode.json new file mode 100644 index 0000000000..157e20d79b --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/moonstone_geode.json @@ -0,0 +1,27 @@ +{ + "feature": "spectrum:moonstone_geode", + "placement": [ + { + "type": "minecraft:rarity_filter", + "chance": 20 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "above_bottom": 16 + }, + "max_inclusive": { + "above_bottom": 96 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/mushroom_forest_mushrooms.json b/src/main/resources/data/spectrum/worldgen/placed_feature/mushroom_forest_mushrooms.json new file mode 100644 index 0000000000..c207e27a5c --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/mushroom_forest_mushrooms.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:mushroom_forest_mushrooms", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 6 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/mushroom_forest_vegetation.json b/src/main/resources/data/spectrum/worldgen/placed_feature/mushroom_forest_vegetation.json new file mode 100644 index 0000000000..6a2bac403e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/mushroom_forest_vegetation.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:mushroom_forest_vegetation", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/pink_dragonjags.json b/src/main/resources/data/spectrum/worldgen/placed_feature/pink_dragonjags.json new file mode 100644 index 0000000000..f882a80aa4 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/pink_dragonjags.json @@ -0,0 +1,29 @@ +{ + "feature": "spectrum:pink_dragonjags", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 1, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -3, + "max_inclusive": 1 + } + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/purple_dragonjags.json b/src/main/resources/data/spectrum/worldgen/placed_feature/purple_dragonjags.json new file mode 100644 index 0000000000..8d13d4b18d --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/purple_dragonjags.json @@ -0,0 +1,29 @@ +{ + "feature": "spectrum:purple_dragonjags", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 1, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -3, + "max_inclusive": 1 + } + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/random_dragonjag.json b/src/main/resources/data/spectrum/worldgen/placed_feature/random_dragonjag.json new file mode 100644 index 0000000000..0bd3191be7 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/random_dragonjag.json @@ -0,0 +1,24 @@ +{ + "feature": "spectrum:random_dragonjag", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": { + "type": "minecraft:weighted_list", + "distribution": [ + { + "weight": 11, + "data": 0 + }, + { + "weight": 1, + "data": 1 + } + ] + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/random_dragonjags.json b/src/main/resources/data/spectrum/worldgen/placed_feature/random_dragonjags.json new file mode 100644 index 0000000000..20339f4d35 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/random_dragonjags.json @@ -0,0 +1,18 @@ +{ + "feature": "spectrum:random_dragonjags", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": 0, + "max_inclusive": 2 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/red_dragonjags.json b/src/main/resources/data/spectrum/worldgen/placed_feature/red_dragonjags.json new file mode 100644 index 0000000000..db6f1e345e --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/red_dragonjags.json @@ -0,0 +1,29 @@ +{ + "feature": "spectrum:red_dragonjags", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:count", + "count": { + "type": "minecraft:clamped", + "value": { + "min_inclusive": 0, + "max_inclusive": 1, + "source": { + "type": "minecraft:uniform", + "value": { + "min_inclusive": -3, + "max_inclusive": 1 + } + } + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/sawblade_holly.json b/src/main/resources/data/spectrum/worldgen/placed_feature/sawblade_holly.json new file mode 100644 index 0000000000..b868f33550 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/sawblade_holly.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:sawblade_holly", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 4 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/slate_noxfungus.json b/src/main/resources/data/spectrum/worldgen/placed_feature/slate_noxfungus.json new file mode 100644 index 0000000000..cb204cc217 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/slate_noxfungus.json @@ -0,0 +1,4 @@ +{ + "feature": "spectrum:slate_noxfungus", + "placement": [] +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/sludge_vegetation.json b/src/main/resources/data/spectrum/worldgen/placed_feature/sludge_vegetation.json new file mode 100644 index 0000000000..0430ea6384 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/sludge_vegetation.json @@ -0,0 +1,12 @@ +{ + "feature": "spectrum:sludge_vegetation", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 12 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/snapping_ivy_patch.json b/src/main/resources/data/spectrum/worldgen/placed_feature/snapping_ivy_patch.json new file mode 100644 index 0000000000..52dce60721 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/snapping_ivy_patch.json @@ -0,0 +1,18 @@ +{ + "feature": "spectrum:snapping_ivy_patch", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": { + "type": "minecraft:biased_to_bottom", + "value": { + "min_inclusive": 0, + "max_inclusive": 1 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/placed_feature/stone_pile.json b/src/main/resources/data/spectrum/worldgen/placed_feature/stone_pile.json new file mode 100644 index 0000000000..16bc15972f --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/placed_feature/stone_pile.json @@ -0,0 +1,16 @@ +{ + "feature": "spectrum:stone_pile", + "placement": [ + { + "type": "minecraft:count_on_every_layer", + "count": 1 + }, + { + "type": "minecraft:rarity_filter", + "chance": 8 + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/structure/ancient_ruins.json b/src/main/resources/data/spectrum/worldgen/structure/ancient_ruins.json new file mode 100644 index 0000000000..b1d9fb8562 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/structure/ancient_ruins.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:jigsaw", + "start_pool": "spectrum:ancient_ruins", + "size": 1, + "max_distance_from_center": 80, + "biomes": "#spectrum:has_structure/underground_structures", + "step": "underground_structures", + "terrain_adaptation": "bury", + "start_height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 32 + }, + "min_inclusive": { + "above_bottom": 32 + } + }, + "use_expansion_hack": false, + "spawn_overrides": { + "monster": { + "bounding_box": "piece", + "spawns": [] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/structure/city_below.json b/src/main/resources/data/spectrum/worldgen/structure/city_below.json new file mode 100644 index 0000000000..cf955f3978 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/structure/city_below.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:jigsaw", + "start_pool": "spectrum:city_below/city_centers", + "size": 6, + "max_distance_from_center": 106, + "biomes": "#spectrum:has_structure/city_below", + "step": "underground_structures", + "terrain_adaptation": "beard_thin", + "start_height": { + "absolute": -334 + }, + "use_expansion_hack": false, + "spawn_overrides": {} +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/structure/pedestal_ruins_deepslate.json b/src/main/resources/data/spectrum/worldgen/structure/pedestal_ruins_deepslate.json new file mode 100644 index 0000000000..3f8a19e37a --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/structure/pedestal_ruins_deepslate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:jigsaw", + "start_pool": "spectrum:pedestal_ruins_deepslate", + "size": 2, + "max_distance_from_center": 80, + "biomes": "#spectrum:has_structure/underground_structures", + "step": "underground_structures", + "terrain_adaptation": "bury", + "start_height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 0 + }, + "min_inclusive": { + "above_bottom": 16 + } + }, + "use_expansion_hack": false, + "spawn_overrides": { } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/structure/pedestal_ruins_stone.json b/src/main/resources/data/spectrum/worldgen/structure/pedestal_ruins_stone.json new file mode 100644 index 0000000000..7550a2e706 --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/structure/pedestal_ruins_stone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:jigsaw", + "start_pool": "spectrum:pedestal_ruins_stone", + "size": 2, + "max_distance_from_center": 80, + "biomes": "#spectrum:has_structure/underground_structures", + "step": "underground_structures", + "terrain_adaptation": "bury", + "start_height": { + "type": "minecraft:uniform", + "max_inclusive": { + "absolute": 48 + }, + "min_inclusive": { + "absolute": 0 + } + }, + "use_expansion_hack": false, + "spawn_overrides": { } +} \ No newline at end of file diff --git a/src/main/resources/data/spectrum/worldgen/structure_set/city_below.json b/src/main/resources/data/spectrum/worldgen/structure_set/city_below.json new file mode 100644 index 0000000000..c801ac5aec --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/structure_set/city_below.json @@ -0,0 +1,14 @@ +{ + "structures": [ + { + "structure": "spectrum:city_below", + "weight": 1 + } + ], + "placement": { + "type": "minecraft:random_spread", + "spacing": 10, + "separation": 6, + "salt": 7831267 + } +} diff --git a/src/main/resources/data/spectrum/worldgen/template_pool/city_below/city_below.json b/src/main/resources/data/spectrum/worldgen/template_pool/city_below/city_below.json new file mode 100644 index 0000000000..bc6df3174c --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/template_pool/city_below/city_below.json @@ -0,0 +1,42 @@ +{ + "name": "spectrum:city_below", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "spectrum:city_below/arboretum", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "spectrum:city_below/waterfall", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "spectrum:city_below/path1", + "projection": "rigid", + "processors": "minecraft:empty" + } + }, + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "spectrum:city_below/path2", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} diff --git a/src/main/resources/data/spectrum/worldgen/template_pool/city_below/city_centers.json b/src/main/resources/data/spectrum/worldgen/template_pool/city_below/city_centers.json new file mode 100644 index 0000000000..40f28e495f --- /dev/null +++ b/src/main/resources/data/spectrum/worldgen/template_pool/city_below/city_centers.json @@ -0,0 +1,15 @@ +{ + "name": "spectrum:city_below", + "fallback": "minecraft:empty", + "elements": [ + { + "weight": 1, + "element": { + "element_type": "minecraft:single_pool_element", + "location": "spectrum:city_below/pedestal", + "projection": "rigid", + "processors": "minecraft:empty" + } + } + ] +} diff --git a/src/main/resources/data/trinkets/tags/items/hand/ring.json b/src/main/resources/data/trinkets/tags/items/hand/ring.json index 71ffb58f75..2b8946f43c 100644 --- a/src/main/resources/data/trinkets/tags/items/hand/ring.json +++ b/src/main/resources/data/trinkets/tags/items/hand/ring.json @@ -4,6 +4,7 @@ "spectrum:jeopardant", "spectrum:azure_dike_ring", "spectrum:neat_ring", - "spectrum:heartsingers_reward" + "spectrum:heartsingers_reward", + "spectrum:ring_of_pursuit" ] } \ No newline at end of file diff --git a/src/main/resources/data/trinkets/tags/items/head/crown.json b/src/main/resources/data/trinkets/tags/items/head/crown.json index 70627a5bec..a0c7762819 100644 --- a/src/main/resources/data/trinkets/tags/items/head/crown.json +++ b/src/main/resources/data/trinkets/tags/items/head/crown.json @@ -2,8 +2,9 @@ "replace": false, "values": [ "spectrum:ashen_circlet", - "spectrum:tidal_circlet", + "spectrum:weeping_circlet", "spectrum:puff_circlet", - "spectrum:whispy_circlet" + "spectrum:whispy_circlet", + "spectrum:circlet_of_arrogance" ] } \ No newline at end of file diff --git a/src/main/resources/data/trinkets/tags/items/head/face.json b/src/main/resources/data/trinkets/tags/items/head/face.json index d3c4c067ce..99d370a9dc 100644 --- a/src/main/resources/data/trinkets/tags/items/head/face.json +++ b/src/main/resources/data/trinkets/tags/items/head/face.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "spectrum:glow_vision_helmet" + "spectrum:glow_vision_goggles" ] } \ No newline at end of file diff --git a/src/main/resources/data/trinkets/tags/items/offhand/ring.json b/src/main/resources/data/trinkets/tags/items/offhand/ring.json index 71ffb58f75..2b8946f43c 100644 --- a/src/main/resources/data/trinkets/tags/items/offhand/ring.json +++ b/src/main/resources/data/trinkets/tags/items/offhand/ring.json @@ -4,6 +4,7 @@ "spectrum:jeopardant", "spectrum:azure_dike_ring", "spectrum:neat_ring", - "spectrum:heartsingers_reward" + "spectrum:heartsingers_reward", + "spectrum:ring_of_pursuit" ] } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index d947037996..fca2c167b6 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -22,6 +22,9 @@ "client": [ "de.dafuqs.spectrum.SpectrumClient" ], + "preLaunch": [ + "com.llamalad7.mixinextras.MixinExtrasBootstrap::init" + ], "modmenu": [ "de.dafuqs.spectrum.config.ModMenuConfig" ], @@ -50,27 +53,26 @@ }, "depends": { "fabricloader": ">=0.13.3", - "fabric": ">=0.49.0", - "minecraft": ">=1.18.2", + "fabric-api": ">=0.48.0", + "minecraft": ">=1.19.2", "java": ">=17", - "revelationary": ">=1.0.0", + "revelationary": ">=1.3.0", "arrowhead": "*", - "cloth-config": ">=6.0.0", - "patchouli": ">=1.18.2-71.1-FABRIC", - "owo": ">=0.5.4", - "trinkets": ">=3.3.0" + "cloth-config": ">=8.2.88", + "patchouli": "*", + "owo": "*", + "trinkets": ">=3.4.0", + "reverb": "*" }, "suggests": { - "chalk": ">=2.0.0", - "colored_lights": ">=1.0.3", + "chalk": "*", + "chalk-colorful-addon": "*", "paginatedadvancements": "*", - "paradise_lost": "*", - "limlib": "*", "ants": "*", - "bettercombat": "*", - "shimmer": "*" + "bettercombat": "*" }, "breaks": { - "Dashloader": "<=3.0.9" + "Dashloader": "<=3.0.9", + "healthoverlay": "<7.2.3" } } diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/attached_glistering_melon_stem.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/attached_glistering_melon_stem.png deleted file mode 100644 index 94165169d5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/attached_glistering_melon_stem.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil.png deleted file mode 100644 index cfe754b423..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil2.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil2.png deleted file mode 100644 index 5cf1dc8925..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil2.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil_top.png deleted file mode 100644 index 6b2c0f5c12..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_anvil_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_storage_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_storage_block.png deleted file mode 100644 index 58992d3819..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/bedrock_storage_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_glowblock.png deleted file mode 100644 index 4b188d84f5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp_on.png deleted file mode 100644 index 67d1700ff6..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_lucid.png deleted file mode 100644 index af8fe90872..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_none.png deleted file mode 100644 index 4e5e491b1e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_normal.png deleted file mode 100644 index fd439afa3a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_body_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_lucid.png deleted file mode 100644 index d23458f26e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_none.png deleted file mode 100644 index b8e15a3403..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_normal.png deleted file mode 100644 index d58eaaae3e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spirit_sallow_vines_head_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blazing_crystal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/blazing_crystal.png deleted file mode 100644 index 1cba8615cd..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/blazing_crystal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/block_placer_front.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/block_placer_front.png deleted file mode 100644 index 62c0bf8c10..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/block_placer_front.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/block_placer_front_vertical.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/block_placer_front_vertical.png deleted file mode 100644 index bcc78807e2..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/block_placer_front_vertical.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_block.png deleted file mode 100644 index 517bbe5d58..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp_on.png deleted file mode 100644 index 2c669e4317..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_block.png deleted file mode 100644 index fa2dafc704..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_glowblock.png deleted file mode 100644 index 591fcbfce4..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp_on.png deleted file mode 100644 index 98fc799168..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp_outer.png deleted file mode 100644 index f1a201005f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_spore_blossom.png deleted file mode 100644 index fdabafb402..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citine_ore.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/citine_ore.png deleted file mode 100644 index c20ba76be9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/citine_ore.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_eye.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_eye.png deleted file mode 100644 index f76bfeed19..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_eye.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_eye.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_eye.png.mcmeta deleted file mode 100644 index 1a799777fc..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_eye.png.mcmeta +++ /dev/null @@ -1,28 +0,0 @@ -{ - "animation": { - "interpolate": false, - "frametime": 1, - "frames": [ - {"index": 0,"time": 50}, - 1, - 2, - 3, - 4, - {"index": 5,"time": 2}, - 4, - 3, - 2, - 1, - {"index": 0,"time": 120}, - 1, - 2, - 3, - 4, - {"index": 5,"time": 2}, - 4, - 3, - 2, - 1 - ] - } -} diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_side.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_side.png deleted file mode 100644 index 4a5b9352dd..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_side.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_top.png deleted file mode 100644 index 431345cb82..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cracked_end_portal_frame_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_block.png deleted file mode 100644 index 1842cf1900..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_glowblock.png deleted file mode 100644 index f8138c516a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp_on.png deleted file mode 100644 index 9a1ba32981..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp_outer.png deleted file mode 100644 index f4aa8ec2ae..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_lucid.png deleted file mode 100644 index 11f77e845a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_none.png deleted file mode 100644 index adc20ec6c8..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_normal.png deleted file mode 100644 index 1688f2ae37..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_body_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_lucid.png deleted file mode 100644 index 4efc05e2b7..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_none.png deleted file mode 100644 index dd8c621763..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_normal.png deleted file mode 100644 index 8a867fe8a3..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spirit_sallow_vines_head_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_moonstone_ore.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_moonstone_ore.png deleted file mode 100644 index b993ca21f5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_moonstone_ore.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_onyx_ore.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_onyx_ore.png deleted file mode 100644 index 8ffd08f218..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_onyx_ore.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/enchanted_leaves.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/enchanted_leaves.mcmeta deleted file mode 100644 index 0645f48c62..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/enchanted_leaves.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_bag.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_bag.png deleted file mode 100644 index ea620c61e1..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_bag.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_front.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_front.png deleted file mode 100644 index 474b54a630..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_front.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_front_vertical.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_front_vertical.png deleted file mode 100644 index 6035e3715f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_front_vertical.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_side.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_side.png deleted file mode 100644 index 40680015b2..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_side.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_top.png deleted file mode 100644 index 896d14a520..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_dropper_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_inside.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_inside.png deleted file mode 100644 index ef14c95ffc..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_inside.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_outside.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_outside.png deleted file mode 100644 index 32c853db8d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_outside.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_top.png deleted file mode 100644 index f67d0882d9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_hopper_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/entity_detector_inverted_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/entity_detector_inverted_top.png deleted file mode 100644 index d8ab0c2bdb..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/entity_detector_inverted_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/entity_detector_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/entity_detector_top.png deleted file mode 100644 index e8d9f44cc6..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/entity_detector_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ethereal_platform.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ethereal_platform.png deleted file mode 100644 index 01e0ace7c2..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ethereal_platform.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/fading_default.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/fading_default.png deleted file mode 100644 index aba57d967a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/fading_default.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/fading_leaves.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/fading_leaves.png deleted file mode 100644 index 6d4f83199d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/fading_leaves.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/failing_default.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/failing_default.png deleted file mode 100644 index 144c26c43b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/failing_default.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/failing_obsidian.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/failing_obsidian.png deleted file mode 100644 index 1664d57261..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/failing_obsidian.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/fusion_shrine_basalt.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/fusion_shrine_basalt.png deleted file mode 100644 index 0fb13f7736..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/fusion_shrine_basalt.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_stem.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_stem.png deleted file mode 100644 index f551a4eeeb..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_stem.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_block.png deleted file mode 100644 index 14d8b6ae7b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_glowblock.png deleted file mode 100644 index 446c64cecb..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp_on.png deleted file mode 100644 index b50cf83e6f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp_outer.png deleted file mode 100644 index 9946a27843..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_spore_blossom.png deleted file mode 100644 index 77b5a58f14..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/green_block.png deleted file mode 100644 index 16b735b108..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/green_glowblock.png deleted file mode 100644 index 6ff0583610..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp_on.png deleted file mode 100644 index 65fda9538b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp_outer.png deleted file mode 100644 index 1421f52499..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/green_spore_blossom.png deleted file mode 100644 index 677c44ceec..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/item_detector_inverted_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/item_detector_inverted_top.png deleted file mode 100644 index 11ae47ce25..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/item_detector_inverted_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/item_detector_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/item_detector_top.png deleted file mode 100644 index 6cb39e379b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/item_detector_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lava_sponge.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/lava_sponge.png deleted file mode 100644 index 9824ad8dea..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/lava_sponge.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_block.png deleted file mode 100644 index 4b359651d0..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_glowblock.png deleted file mode 100644 index 26ba09f7ce..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp_on.png deleted file mode 100644 index 3a9c841309..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp_outer.png deleted file mode 100644 index 29698037ca..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_spore_blossom.png deleted file mode 100644 index f0ebc7e9d9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_block.png deleted file mode 100644 index 263e81eebe..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_glowblock.png deleted file mode 100644 index 57d0b918ab..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp_on.png deleted file mode 100644 index e44e60875f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp_outer.png deleted file mode 100644 index 9255e85131..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_spore_blossom.png deleted file mode 100644 index 31a379ba40..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_level_detector_inverted_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_level_detector_inverted_top.png deleted file mode 100644 index ce3ad3d0c3..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_level_detector_inverted_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_level_detector_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/light_level_detector_top.png deleted file mode 100644 index 976325ff57..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_level_detector_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_block.png deleted file mode 100644 index 6e8a24667b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_glowblock.png deleted file mode 100644 index 7b881b3c92..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp_on.png deleted file mode 100644 index b95c2f521b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp_outer.png deleted file mode 100644 index 28b8365b8c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_spore_blossom.png deleted file mode 100644 index ec3c53c042..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_flow.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_flow.png deleted file mode 100644 index 41acf7b4ac..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_flow.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_flow.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_flow.png.mcmeta deleted file mode 100644 index a5eaa4f678..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_flow.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_overlay.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_overlay.png deleted file mode 100644 index 1cd4c4f5e9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_overlay.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_still.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_still.png deleted file mode 100644 index 4b779cbb09..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_still.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_still.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_still.png.mcmeta deleted file mode 100644 index a5eaa4f678..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/liquid_crystal_still.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_block.png deleted file mode 100644 index f6410ed888..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_glowblock.png deleted file mode 100644 index 50fc6e40a8..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp_on.png deleted file mode 100644 index b1c2c278fa..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp_outer.png deleted file mode 100644 index 96998e91fe..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_lucid.png deleted file mode 100644 index 8f6c87eda7..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_none.png deleted file mode 100644 index bd78ae43b2..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_normal.png deleted file mode 100644 index a84e51c9e8..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_body_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_lucid.png deleted file mode 100644 index cb08614502..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_none.png deleted file mode 100644 index b0fe5f5c1b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_normal.png deleted file mode 100644 index 3656159438..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spirit_sallow_vines_head_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spore_blossom.png deleted file mode 100644 index 7811097efe..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png.mcmeta deleted file mode 100644 index 8866d74106..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": false, - "frametime": 24 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png.mcmeta deleted file mode 100644 index 8866d74106..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": false, - "frametime": 24 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_ore.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_ore.png deleted file mode 100644 index cb7b304db6..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_ore.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_flow.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_flow.png deleted file mode 100644 index ae0a3ba103..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_flow.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_flow.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_flow.png.mcmeta deleted file mode 100644 index f6730e30a9..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_flow.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 4 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_still.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_still.png deleted file mode 100644 index 4e439ec0cd..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_still.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_still.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_still.png.mcmeta deleted file mode 100644 index 3de4a0bdd8..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_still.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 8 - } -} diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_glass.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_glass.png deleted file mode 100644 index 0c39d6c811..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_glass.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_ore.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_ore.png deleted file mode 100644 index 461747566e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_ore.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_block.png deleted file mode 100644 index 624a511b80..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_glowblock.png deleted file mode 100644 index 5eaf1a1496..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp_on.png deleted file mode 100644 index 51b1cb9444..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp_outer.png deleted file mode 100644 index 7f657695c2..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_spore_blossom.png deleted file mode 100644 index 80e273e84e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_base.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_base.png deleted file mode 100644 index b74c71db8b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_base.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top.png deleted file mode 100644 index fdeb1aa833..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_powered.png deleted file mode 100644 index b040ad20bc..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_unpowered.png deleted file mode 100644 index 3adc703ee1..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_powered.png deleted file mode 100644 index 6c98a0430c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_unpowered.png deleted file mode 100644 index f4e869ee55..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_top.png deleted file mode 100644 index 7acf440e40..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_powered.png deleted file mode 100644 index 10175b60eb..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_unpowered.png deleted file mode 100644 index 7074385cbe..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_powered.png deleted file mode 100644 index 0eb8aabd23..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_top.png deleted file mode 100644 index f6cba7b72d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_unpowered.png deleted file mode 100644 index af5444c8f9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_powered.png deleted file mode 100644 index 8205c97017..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_top.png deleted file mode 100644 index 21ee414096..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_unpowered.png deleted file mode 100644 index b5c530efba..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_powered.png deleted file mode 100644 index 46379b55f0..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_top.png deleted file mode 100644 index d22382ae6c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_unpowered.png deleted file mode 100644 index 53a35396b9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_powered.png deleted file mode 100644 index 2338ffd7de..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_unpowered.png deleted file mode 100644 index 8621a0727d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_powered.png deleted file mode 100644 index ddf0735190..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_unpowered.png deleted file mode 100644 index 23a23202e5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_top.png deleted file mode 100644 index 4ba99f616e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_powered.png deleted file mode 100644 index 16f46fd492..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_unpowered.png deleted file mode 100644 index 11389d1f5f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_powered.png deleted file mode 100644 index d420a51f09..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_unpowered.png deleted file mode 100644 index 1254654d31..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_powered.png deleted file mode 100644 index df523ce16d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_unpowered.png deleted file mode 100644 index 18be24cfd0..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_top.png deleted file mode 100644 index a126a62129..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_powered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_powered.png deleted file mode 100644 index ccd34833f2..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_powered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_unpowered.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_unpowered.png deleted file mode 100644 index 4ffe5a502f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_unpowered.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_block.png deleted file mode 100644 index 9bf76e7c33..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_glowblock.png deleted file mode 100644 index 3c94df5c77..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp_on.png deleted file mode 100644 index a64d9d9c47..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp_outer.png deleted file mode 100644 index fda8054846..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_spore_blossom.png deleted file mode 100644 index 912212ce6f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/player_detector_inverted_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/player_detector_inverted_top.png deleted file mode 100644 index 3255da5b11..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/player_detector_inverted_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/player_detector_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/player_detector_top.png deleted file mode 100644 index 6bfbc27183..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/player_detector_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_block.png deleted file mode 100644 index e7d0c1fc90..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side_cracks.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side_cracks.png deleted file mode 100644 index 6c6da9a69b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side_cracks.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top_cracks.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top_cracks.png deleted file mode 100644 index c0f681c87b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top_cracks.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_glowblock.png deleted file mode 100644 index 3709eacf63..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp_on.png deleted file mode 100644 index df78f58e6e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp_outer.png deleted file mode 100644 index 7801085344..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_spore_blossom.png deleted file mode 100644 index e6fc8798eb..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/red_block.png deleted file mode 100644 index 2ddf1990b8..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/red_glowblock.png deleted file mode 100644 index 11f3b08f03..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp_on.png deleted file mode 100644 index 022b04767c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp_outer.png deleted file mode 100644 index f829ee6ad5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/red_spore_blossom.png deleted file mode 100644 index 80fd49f7be..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_calculator.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_calculator.png deleted file mode 100644 index be591345ed..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_calculator.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_calculator_citrine.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_calculator_citrine.png deleted file mode 100644 index fb8b1e4794..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_calculator_citrine.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_sand.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_sand.png deleted file mode 100644 index 03f3b6fa5d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_sand.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_timer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_timer.png deleted file mode 100644 index 45a9673f1f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_timer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_wireless_sender.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_wireless_sender.png deleted file mode 100644 index e71739244e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_wireless_sender.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ruin_bedrock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ruin_bedrock.png deleted file mode 100644 index 2fad646b5e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ruin_bedrock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ruin_default.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/ruin_default.png deleted file mode 100644 index 53c2b757b4..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/ruin_default.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil.png deleted file mode 100644 index 0a5269c243..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil.png.mcmeta deleted file mode 100644 index 7e77c64858..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_moist.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_moist.png deleted file mode 100644 index 20e6f97e05..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_moist.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_moist.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_moist.png.mcmeta deleted file mode 100644 index 7e77c64858..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_moist.png.mcmeta +++ /dev/null @@ -1,5 +0,0 @@ -{ - "animation": { - "frametime": 2 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_side.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_side.png deleted file mode 100644 index e8cbc4dee6..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/sacred_soil_side.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png deleted file mode 100644 index 4dc9b82103..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_heart.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_heart.png deleted file mode 100644 index a64b408829..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_heart.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_heart.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_heart.png.mcmeta deleted file mode 100644 index 498a93e781..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_heart.png.mcmeta +++ /dev/null @@ -1,14 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 4, - "frames": [ - 0, - 1, - 2, - 3, - 2, - 1 - ] - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_leaves.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_leaves.png deleted file mode 100644 index bac68bc173..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_leaves.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log.png deleted file mode 100644 index 6cf187b58a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log_top.png deleted file mode 100644 index 6628b18023..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log_top.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log_top.png.mcmeta deleted file mode 100644 index 5628294d2d..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_log_top.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": true, - "frametime": 6 - } -} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_roots.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_roots.png deleted file mode 100644 index 681e3c3d8d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/spirit_sallow_roots.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_glass.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_glass.png deleted file mode 100644 index 260ce99c7a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_glass.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_efficiency_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_efficiency_outer.png deleted file mode 100644 index 7365c3ebb3..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_efficiency_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/weather_detector_inverted_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/weather_detector_inverted_top.png deleted file mode 100644 index 4ca3eb8c55..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/weather_detector_inverted_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/weather_detector_top.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/weather_detector_top.png deleted file mode 100644 index 905a0d3ad8..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/weather_detector_top.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png deleted file mode 100644 index 07e9d8785d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_block.png deleted file mode 100644 index 385fcd2b51..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_glowblock.png deleted file mode 100644 index 12c204bf0f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp_on.png deleted file mode 100644 index 0dba7336bc..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp_outer.png deleted file mode 100644 index a0437ad5e4..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_lucid.png deleted file mode 100644 index 8555e3cf6b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_none.png deleted file mode 100644 index 2c854853c3..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_normal.png deleted file mode 100644 index 7b6f3f362d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_body_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_lucid.png deleted file mode 100644 index 7d6ca6ec86..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_none.png deleted file mode 100644 index b2d485c66b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_normal.png deleted file mode 100644 index 739ed10bef..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spirit_sallow_vines_head_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spore_blossom.png deleted file mode 100644 index a15cac084b..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_block.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_block.png deleted file mode 100644 index 810cb475dc..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_block.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_glowblock.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_glowblock.png deleted file mode 100644 index 889a9cc079..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_glowblock.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp_on.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp_on.png deleted file mode 100644 index ae50227eca..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp_on.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp_outer.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp_outer.png deleted file mode 100644 index 6b572a71b3..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp_outer.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_lucid.png deleted file mode 100644 index 0db46dd470..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_none.png deleted file mode 100644 index 3f0af524a5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_normal.png deleted file mode 100644 index 799cfd7a6f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_body_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_lucid.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_lucid.png deleted file mode 100644 index ea39cf41ec..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_lucid.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_none.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_none.png deleted file mode 100644 index 318a72dfb9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_none.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_normal.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_normal.png deleted file mode 100644 index b836219104..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spirit_sallow_vines_head_normal.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spore_blossom.png b/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spore_blossom.png deleted file mode 100644 index 37caec6c2e..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_spore_blossom.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_boots.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_boots.png deleted file mode 100644 index 4c5ccc996d..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_boots.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_chestplate.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_chestplate.png deleted file mode 100644 index 1d2f49acc5..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_chestplate.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_helmet.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_helmet.png deleted file mode 100644 index 5a447ca4ed..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_helmet.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_leggings.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_leggings.png deleted file mode 100644 index 5e3fcd6e3c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/emergency_leggings.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_bag.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_bag.png deleted file mode 100644 index bb197977bd..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_bag.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_hopper.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_hopper.png deleted file mode 100644 index 9620bb706a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_hopper.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/glistering_melon_seeds.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/glistering_melon_seeds.png deleted file mode 100644 index ef8ed99f9c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/glistering_melon_seeds.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem0.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem0.png deleted file mode 100644 index c0c57e0749..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem0.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem1.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem1.png deleted file mode 100644 index 97eb5f8e25..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem1.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem10.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem10.png deleted file mode 100644 index 44b6ee9390..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem10.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem2.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem2.png deleted file mode 100644 index a8104968b6..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem2.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem3.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem3.png deleted file mode 100644 index 019c498fa6..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem3.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem4.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem4.png deleted file mode 100644 index dd9df185bc..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem4.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem5.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem5.png deleted file mode 100644 index daab97b063..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem5.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem6.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem6.png deleted file mode 100644 index 16c73cda24..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem6.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem7.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem7.png deleted file mode 100644 index 7eee21a9b0..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem7.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem8.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem8.png deleted file mode 100644 index 43e3b2bcc9..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem8.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem9.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem9.png deleted file mode 100644 index 99ec76dab3..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem9.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff_use.png.mcmeta b/src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff_use.png.mcmeta deleted file mode 100644 index e969d1ebbf..0000000000 --- a/src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff_use.png.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "animation": { - "interpolate": false, - "frametime": 6 - } -} diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/liquid_crystal_bucket.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/liquid_crystal_bucket.png deleted file mode 100644 index 5953675c20..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/liquid_crystal_bucket.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_black_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_black_catkin.png deleted file mode 100644 index 7f2c48a47f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_black_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_cyan_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_cyan_catkin.png deleted file mode 100644 index 1eeb407b1a..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_cyan_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_magenta_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_magenta_catkin.png deleted file mode 100644 index 996db96747..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_magenta_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_white_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_white_catkin.png deleted file mode 100644 index d5492e877c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_white_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_yellow_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_yellow_catkin.png deleted file mode 100644 index 2e62f3c7d0..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/lucid_yellow_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/mud_bucket.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/mud_bucket.png deleted file mode 100644 index af1bc6593f..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/mud_bucket.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/music_disc_spectrum_theme.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/music_disc_spectrum_theme.png deleted file mode 100644 index 48aae96c72..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/music_disc_spectrum_theme.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff_use.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff_use.png deleted file mode 100644 index 6dfd3cd820..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff_use.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/obsidian_dust.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/obsidian_dust.png deleted file mode 100644 index 38962a8fea..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/obsidian_dust.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/sparklestone_gem.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/sparklestone_gem.png deleted file mode 100644 index 312de620bf..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/sparklestone_gem.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_black_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_black_catkin.png deleted file mode 100644 index d80c2429c1..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_black_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_cyan_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_cyan_catkin.png deleted file mode 100644 index 692653feee..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_cyan_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_magenta_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_magenta_catkin.png deleted file mode 100644 index 3d40f097e8..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_magenta_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_white_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_white_catkin.png deleted file mode 100644 index 9ccecc1b3c..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_white_catkin.png and /dev/null differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_yellow_catkin.png b/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_yellow_catkin.png deleted file mode 100644 index b9ad9d3e39..0000000000 Binary files a/src/main/resources/programmer_art/assets/spectrum/textures/item/vibrant_yellow_catkin.png and /dev/null differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/amaranth_bushel.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/amaranth_bushel.png new file mode 100644 index 0000000000..5c62bcf3db Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/amaranth_bushel.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/bismuth_block.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/bismuth_block.png new file mode 100644 index 0000000000..e6a12714c2 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/bismuth_block.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid0.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid0.png new file mode 100644 index 0000000000..117bb0ae84 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid0.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid1.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid1.png new file mode 100644 index 0000000000..99c13ca1b2 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid1.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid2.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid2.png new file mode 100644 index 0000000000..c44c7418f7 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid2.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid3.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid3.png new file mode 100644 index 0000000000..b6652a6e81 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid3.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid4.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid4.png new file mode 100644 index 0000000000..45c7da311e Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid4.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid5.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid5.png new file mode 100644 index 0000000000..4a2ba40c87 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/blood_orchid5.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/brown_sapling.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/brown_sapling.png new file mode 100644 index 0000000000..f4224c4087 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/brown_sapling.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/chiseled_polished_calcite.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/chiseled_polished_calcite.png new file mode 100644 index 0000000000..b331532108 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/chiseled_polished_calcite.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/cyan_planks.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/cyan_planks.png new file mode 100644 index 0000000000..4c9a54fdac Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/cyan_planks.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/deepslate_onyx_ore.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/deepslate_onyx_ore.png new file mode 100644 index 0000000000..f221281ff8 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/deepslate_onyx_ore.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ender_hopper_inside.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ender_hopper_inside.png new file mode 100644 index 0000000000..4dd1ed6cd0 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ender_hopper_inside.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ender_hopper_top.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ender_hopper_top.png new file mode 100644 index 0000000000..ac36f26426 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ender_hopper_top.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fading_default.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fading_default.png new file mode 100644 index 0000000000..da0555beed Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fading_default.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fading_leaves.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fading_leaves.png new file mode 100644 index 0000000000..a9fcddba0b Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fading_leaves.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fusion_shrine_basalt.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fusion_shrine_basalt.png new file mode 100644 index 0000000000..8ee57ca877 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fusion_shrine_basalt.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/fusion_shrine_calcite.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fusion_shrine_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/fusion_shrine_calcite.png rename to src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/fusion_shrine_calcite.png diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ink_vessel_pillar_basalt.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ink_vessel_pillar_basalt.png new file mode 100644 index 0000000000..a5eba99b71 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ink_vessel_pillar_basalt.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ink_vessel_pillar_calcite.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ink_vessel_pillar_calcite.png new file mode 100644 index 0000000000..b1f5572f2a Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/ink_vessel_pillar_calcite.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/large_moonstone_bud.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/large_moonstone_bud.png new file mode 100644 index 0000000000..53a0ca8427 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/large_moonstone_bud.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/liquid_crystal_overlay.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/liquid_crystal_overlay.png new file mode 100644 index 0000000000..32fbe9826e Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/liquid_crystal_overlay.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/onyx_chiseled_basalt.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/onyx_chiseled_basalt.png new file mode 100644 index 0000000000..c2dd009c6b Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/onyx_chiseled_basalt.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png.mcmeta b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/onyx_chiseled_basalt.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png.mcmeta rename to src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/onyx_chiseled_basalt.png.mcmeta diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_basalt.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_basalt.png new file mode 100644 index 0000000000..26f7da94a3 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_basalt.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite.png new file mode 100644 index 0000000000..563006c607 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite_pillar_side.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite_pillar_side.png new file mode 100644 index 0000000000..f4a36a6ef2 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite_pillar_side.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite_pillar_top.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite_pillar_top.png new file mode 100644 index 0000000000..7cbde80bc8 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/polished_calcite_pillar_top.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/redstone_sand.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/redstone_sand.png new file mode 100644 index 0000000000..bfb2b378a3 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/redstone_sand.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/resonant_lily.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/resonant_lily.png new file mode 100644 index 0000000000..d68a25b7d0 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/resonant_lily.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/white_planks.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/white_planks.png new file mode 100644 index 0000000000..5462782374 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/white_planks.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/yellow_planks.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/yellow_planks.png new file mode 100644 index 0000000000..727c09ff71 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/block/yellow_planks.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/amethyst_powder.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/amethyst_powder.png new file mode 100644 index 0000000000..5e48c1dc8f Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/amethyst_powder.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/brown_pigment.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/brown_pigment.png new file mode 100644 index 0000000000..e291d844be Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/brown_pigment.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_hopper.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_hopper.png new file mode 100644 index 0000000000..d3babdace7 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_hopper.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_splice_bound.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_splice_bound.png new file mode 100644 index 0000000000..871658ced8 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_splice_bound.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_splice_unbound.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_splice_unbound.png new file mode 100644 index 0000000000..410c3511f3 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/ender_splice_unbound.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/germinated_jade_vine_seeds.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/germinated_jade_vine_seeds.png new file mode 100644 index 0000000000..9f9709f37f Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/germinated_jade_vine_seeds.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/gray_pigment.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/gray_pigment.png new file mode 100644 index 0000000000..9d22fb7f34 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/gray_pigment.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/knowledge_gem0.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/knowledge_gem0.png new file mode 100644 index 0000000000..8ec631bfa0 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/knowledge_gem0.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/knowledge_gem1.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/knowledge_gem1.png new file mode 100644 index 0000000000..567850c71f Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/knowledge_gem1.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/lightning_stone.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/lightning_stone.png new file mode 100644 index 0000000000..9e41afd4c2 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/lightning_stone.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/looting_falchion.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/looting_falchion.png new file mode 100644 index 0000000000..53210da4aa Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/looting_falchion.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff.png new file mode 100644 index 0000000000..ed5f052a6a Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff_use.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff_use.png new file mode 100644 index 0000000000..0bdc82e068 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff_use.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff_use.png.mcmeta b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff_use.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff_use.png.mcmeta rename to src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/natures_staff_use.png.mcmeta diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/purple_pigment.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/purple_pigment.png new file mode 100644 index 0000000000..0309467573 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/purple_pigment.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/raw_azurite.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/raw_azurite.png new file mode 100644 index 0000000000..45df9511d5 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/raw_azurite.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/red_pigment.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/red_pigment.png new file mode 100644 index 0000000000..bdc4dedc5e Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/red_pigment.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/refined_azurite.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/refined_azurite.png new file mode 100644 index 0000000000..42fd182c08 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/refined_azurite.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/sparklestone_gem.png.mcmeta b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/sparklestone_gem.png.mcmeta rename to src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/silker_pickaxe.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/silker_pickaxe.png new file mode 100644 index 0000000000..2c9984395d Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/silker_pickaxe.png differ diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/sparklestone_gem.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/sparklestone_gem.png new file mode 100644 index 0000000000..a22f96b896 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/sparklestone_gem.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lightning_stone.png.mcmeta b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/storm_stone.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/lightning_stone.png.mcmeta rename to src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/storm_stone.png.mcmeta diff --git a/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/topaz_powder.png b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/topaz_powder.png new file mode 100644 index 0000000000..21049a4897 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/assets/spectrum/textures/item/topaz_powder.png differ diff --git a/src/main/resources/resourcepacks/jenny/pack.mcmeta b/src/main/resources/resourcepacks/jenny/pack.mcmeta new file mode 100644 index 0000000000..50074e4e9d --- /dev/null +++ b/src/main/resources/resourcepacks/jenny/pack.mcmeta @@ -0,0 +1,8 @@ +{ + "pack": { + "pack_format": 9, + "description": { + "text": "Jinc's Spectrum textures" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/jenny/pack.png b/src/main/resources/resourcepacks/jenny/pack.png new file mode 100644 index 0000000000..2931efbf61 Binary files /dev/null and b/src/main/resources/resourcepacks/jenny/pack.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_basalt_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_basalt_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_basalt_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_basalt_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_calcite_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_calcite_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_calcite_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_calcite_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_basalt.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_chiseled_calcite.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_glass.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_glass.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_glass.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_glass.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_storage_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_storage_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/amethyst_storage_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/amethyst_storage_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_block_bottom.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_block_bottom.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_block_bottom.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_block_bottom.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_block_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_block_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_block_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_block_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_block_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_block_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_block_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_block_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/azurite_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/azurite_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/basalt_bricks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/basalt_bricks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/basalt_bricks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/basalt_bricks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_hole_chest.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_hole_chest.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_hole_chest.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_hole_chest.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp_outer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_lamp_outer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_lamp_outer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_lamp_outer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/black_spore_blossom.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_spore_blossom.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/black_spore_blossom.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/black_spore_blossom.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blazing_crystal.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blazing_crystal.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blazing_crystal.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blazing_crystal.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/block_flooder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/block_flooder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/block_flooder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/block_flooder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_glowblock.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_glowblock.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_glowblock.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_glowblock.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp_outer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_lamp_outer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_lamp_outer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_lamp_outer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/blue_spore_blossom.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_spore_blossom.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/blue_spore_blossom.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/blue_spore_blossom.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/brown_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/brown_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/brown_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/budding_citrine.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_citrine.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/budding_citrine.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_citrine.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/budding_moonstone.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_moonstone.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/budding_moonstone.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_moonstone.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/budding_onyx.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_onyx.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/budding_onyx.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_onyx.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/budding_topaz.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_topaz.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/budding_topaz.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/budding_topaz.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/calcite_bricks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/calcite_bricks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/calcite_bricks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/calcite_bricks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/chiseled_polished_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/chiseled_polished_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/chiseled_polished_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/chiseled_polished_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/chiseled_polished_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/chiseled_polished_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/chiseled_polished_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/chiseled_polished_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_basalt_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_basalt_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_basalt_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_basalt_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_calcite_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_calcite_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_calcite_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_calcite_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_basalt.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_chiseled_calcite.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_cluster.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_cluster.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_cluster.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_cluster.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_glass.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_glass.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_glass.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_glass.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_storage_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_storage_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/citrine_storage_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/citrine_storage_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/clover.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/clover.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/clover.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/clover.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spore_blossom.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_spore_blossom.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/cyan_spore_blossom.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/cyan_spore_blossom.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/decay_away.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/decay_away.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/decay_away.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/decay_away.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_amethyst_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_amethyst_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_amethyst_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_amethyst_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_azurite_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_azurite_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_azurite_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_azurite_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_citrine_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_citrine_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_citrine_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_citrine_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_sparklestone_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_sparklestone_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_sparklestone_ore.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_sparklestone_ore.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_shimmerstone_ore.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_topaz_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_topaz_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/deepslate_topaz_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/deepslate_topaz_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_glass_no_collision.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ender_glass_no_collision.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/ender_glass_no_collision.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ender_glass_no_collision.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_glass_solid.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ender_glass_solid.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/ender_glass_solid.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ender_glass_solid.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_glass_translucent.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ender_glass_translucent.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/ender_glass_translucent.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ender_glass_translucent.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/four_leaf_clover.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/four_leaf_clover.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/four_leaf_clover.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/four_leaf_clover.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/frostbite_crystal.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/frostbite_crystal.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/frostbite_crystal.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/frostbite_crystal.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/frostbite_crystal.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/frostbite_crystal.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/frostbite_crystal.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/frostbite_crystal.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/glistering_melon_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/glistering_melon_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/glistering_melon_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/glistering_melon_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/glistering_melon_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/glowing_glass.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/glowing_glass.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/glowing_glass.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/glowing_glass.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/gray_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/gray_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/gray_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/green_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/green_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/green_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/item_bowl_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/item_bowl_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/item_bowl_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/item_bowl_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/item_bowl_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/item_bowl_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/item_bowl_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/item_bowl_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/large_citrine_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_citrine_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/large_citrine_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_citrine_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/large_moonstone_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_moonstone_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/large_moonstone_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_moonstone_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/large_onyx_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_onyx_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/large_onyx_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_onyx_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/large_topaz_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_topaz_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/large_topaz_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/large_topaz_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_blue_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_blue_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/light_gray_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/light_gray_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/lime_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/lime_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/lime_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/magenta_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/magenta_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/medium_citrine_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_citrine_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/medium_citrine_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_citrine_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/medium_moonstone_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_moonstone_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/medium_moonstone_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_moonstone_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/medium_onyx_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_onyx_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/medium_onyx_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_onyx_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/medium_topaz_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_topaz_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/medium_topaz_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/medium_topaz_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_full.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_none.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mermaids_brush_some.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_basalt_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_basalt_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_basalt_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_basalt_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_calcite_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_calcite_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_calcite_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_calcite_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_basalt.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_chiseled_calcite.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_cluster.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_cluster.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_cluster.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_cluster.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_glass.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_glass.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_glass.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_glass.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_storage_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_storage_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/moonstone_storage_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/moonstone_storage_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/mud_overlay.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mud_overlay.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/mud_overlay.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/mud_overlay.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ominous_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ominous_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/ominous_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/ominous_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_basalt_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_basalt_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_basalt_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_basalt_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_calcite_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_calcite_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_calcite_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_calcite_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_basalt.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_chiseled_calcite.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_cluster.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_cluster.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_cluster.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_cluster.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_storage_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_storage_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/onyx_storage_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/onyx_storage_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/orange_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/orange_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/orange_sapling.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side.png new file mode 100644 index 0000000000..11450b8af6 Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side.png differ diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side_overlay.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side_overlay.png new file mode 100644 index 0000000000..4abf8fc4ef Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side_overlay.png differ diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side_snow.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side_snow.png new file mode 100644 index 0000000000..302a4a0d6a Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_side_snow.png differ diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_top.png new file mode 100644 index 0000000000..eaa7e458f7 Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/overgrown_blackslag_top.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/paletur_fragment_block_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/paltaeria_fragment_block_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/paletur_fragment_block_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/paltaeria_fragment_block_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/paletur_fragment_block_vertical.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/paltaeria_fragment_block_vertical.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/paletur_fragment_block_vertical.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/paltaeria_fragment_block_vertical.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/paletur_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/paltaeria_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/paletur_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/paltaeria_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/particle_spawner_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/particle_spawner_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top_off.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/particle_spawner_top_off.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/particle_spawner_top_off.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/particle_spawner_top_off.png diff --git a/images/unused_textures/powered_pedestal/pedestal_all_basic_amethyst_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_all_basic_amethyst_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_all_basic_amethyst_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_all_basic_amethyst_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_amethyst_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_all_basic_citrine_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_all_basic_citrine_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_all_basic_citrine_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_all_basic_citrine_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_citrine_unpowered.png diff --git a/images/unused_textures/unpowered_pedestal/pedestal_all_basic_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_top.png similarity index 100% rename from images/unused_textures/unpowered_pedestal/pedestal_all_basic_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_top.png diff --git a/images/unused_textures/powered_pedestal/pedestal_all_basic_topaz_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_all_basic_topaz_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_all_basic_topaz_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_all_basic_topaz_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_all_basic_topaz_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_basic_amethyst_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_basic_amethyst_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_powered.png diff --git a/images/unused_textures/unpowered_pedestal/pedestal_basic_amethyst_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_top.png similarity index 100% rename from images/unused_textures/unpowered_pedestal/pedestal_basic_amethyst_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_top.png diff --git a/images/unused_textures/powered_pedestal/pedestal_basic_amethyst_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_basic_amethyst_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_amethyst_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_basic_citrine_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_basic_citrine_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_powered.png diff --git a/images/unused_textures/unpowered_pedestal/pedestal_basic_citrine_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_top.png similarity index 100% rename from images/unused_textures/unpowered_pedestal/pedestal_basic_citrine_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_top.png diff --git a/images/unused_textures/powered_pedestal/pedestal_basic_citrine_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_basic_citrine_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_citrine_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_basic_topaz_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_basic_topaz_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_powered.png diff --git a/images/unused_textures/unpowered_pedestal/pedestal_basic_topaz_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_top.png similarity index 100% rename from images/unused_textures/unpowered_pedestal/pedestal_basic_topaz_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_top.png diff --git a/images/unused_textures/powered_pedestal/pedestal_basic_topaz_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_basic_topaz_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_basic_topaz_unpowered.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_bottom.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_bottom.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pedestal_bottom.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_bottom.png diff --git a/images/unused_textures/powered_pedestal/pedestal_moonstone_amethyst_side_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_moonstone_amethyst_side_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_moonstone_amethyst_side_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_moonstone_amethyst_side_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_amethyst_side_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_moonstone_citrine_side_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_moonstone_citrine_side_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_moonstone_citrine_side_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_moonstone_citrine_side_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_citrine_side_unpowered.png diff --git a/images/unused_textures/unpowered_pedestal/pedestal_moonstone_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_top.png similarity index 100% rename from images/unused_textures/unpowered_pedestal/pedestal_moonstone_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_top.png diff --git a/images/unused_textures/powered_pedestal/pedestal_moonstone_topaz_side_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_moonstone_topaz_side_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_moonstone_topaz_side_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_moonstone_topaz_side_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_moonstone_topaz_side_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_onyx_amethyst_side_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_onyx_amethyst_side_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_onyx_amethyst_side_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_onyx_amethyst_side_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_amethyst_side_unpowered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_onyx_citrine_side_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_onyx_citrine_side_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_onyx_citrine_side_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_onyx_citrine_side_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_citrine_side_unpowered.png diff --git a/images/unused_textures/unpowered_pedestal/pedestal_onyx_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_top.png similarity index 100% rename from images/unused_textures/unpowered_pedestal/pedestal_onyx_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_top.png diff --git a/images/unused_textures/powered_pedestal/pedestal_onyx_topaz_side_powered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_powered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_onyx_topaz_side_powered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_powered.png diff --git a/images/unused_textures/powered_pedestal/pedestal_onyx_topaz_side_unpowered.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_unpowered.png similarity index 100% rename from images/unused_textures/powered_pedestal/pedestal_onyx_topaz_side_unpowered.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pedestal_onyx_topaz_side_unpowered.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/pink_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/pink_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/pink_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/polished_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/polished_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_basalt_pillar_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/polished_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/polished_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_calcite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/polished_calcite_pillar_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_end_portal_frame_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/purple_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/purple_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/purple_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/quitoxic_reeds.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/quitoxic_reeds.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/quitoxic_reeds.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/quitoxic_reeds.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/ender_treasure.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/radiating_ender.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/ender_treasure.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/radiating_ender.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/red_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/red_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/red_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_wireless_receiver.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/redstone_wireless_receiver.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/redstone_wireless_receiver.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/redstone_wireless_receiver.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/resonant_lily.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/resonant_lily.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/resonant_lily.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/resonant_lily.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_side.png new file mode 100644 index 0000000000..09f6020653 Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_side.png differ diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_snow.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_snow.png new file mode 100644 index 0000000000..0775ad7628 Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_snow.png differ diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_top.png new file mode 100644 index 0000000000..d98ad615d7 Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmel_top.png differ diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_block.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_gem.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_gem.png.mcmeta new file mode 100644 index 0000000000..2c17227333 --- /dev/null +++ b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_gem.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_light.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_light.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_light.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_light.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_ore.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_ore.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/sparklestone_ore.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/shimmerstone_ore.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/small_citrine_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_citrine_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/small_citrine_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_citrine_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/small_moonstone_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_moonstone_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/small_moonstone_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_moonstone_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/small_onyx_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_onyx_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/small_onyx_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_onyx_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/small_topaz_bud.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_topaz_bud.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/small_topaz_bud.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/small_topaz_bud.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/spectral_shard_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/spectral_shard_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/spectral_shard_storage_block.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/scarlet_fragment_block_side.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/stratine_fragment_block_side.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/scarlet_fragment_block_side.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/stratine_fragment_block_side.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/scarlet_fragment_block_vertical.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/stratine_fragment_block_vertical.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/scarlet_fragment_block_vertical.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/stratine_fragment_block_vertical.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/scarlet_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/stratine_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/scarlet_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/stratine_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_basalt_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_basalt_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_basalt_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_basalt_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_calcite_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_calcite_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_calcite_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_calcite_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_basalt.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png.mcmeta new file mode 100644 index 0000000000..034019ff92 --- /dev/null +++ b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_chiseled_calcite.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_cluster.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_cluster.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_cluster.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_cluster.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_ore.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_ore.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_ore.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_ore.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_storage_block.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_storage_block.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/topaz_storage_block.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/topaz_storage_block.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_base.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_base.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_base.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_base.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_efficiency_inner.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_efficiency_inner.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_efficiency_inner.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_efficiency_inner.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_experience_inner.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_experience_inner.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_experience_inner.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_experience_inner.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_speed_inner.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_speed_inner.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_speed_inner.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_speed_inner.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_speed_outer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_speed_outer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_speed_outer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_speed_outer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_yield_inner.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_yield_inner.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_yield_inner.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_yield_inner.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_yield_outer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_yield_outer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/upgrade_yield_outer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/upgrade_yield_outer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/wet_lava_sponge.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/white_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/white_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/white_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_lamp.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_lamp.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_lamp.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_leaves.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_leaves.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_leaves.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_leaves.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log_top.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log_top.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log_top.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log_top.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log_top.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log_top.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_log_top.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_log_top.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_planks.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_planks.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_planks.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_planks.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_sapling.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_sapling.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/block/yellow_sapling.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/block/yellow_sapling.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/amethyst_powder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/amethyst_powder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/amethyst_powder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/amethyst_powder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_axe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_axe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_axe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_axe.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_boots.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_boots.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_boots.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_boots.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_0.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_0.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_0.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_0.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_1.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_1.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_1.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_1.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_2.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_2.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_2.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_bow_pulling_2.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_chestplate.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_chestplate.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_chestplate.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_chestplate.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_arrow.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_arrow.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_arrow.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_arrow.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_firework.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_firework.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_firework.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_firework.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_0.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_1.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_pulling_2.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_standby.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_standby.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_crossbow_standby.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_crossbow_standby.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_dust.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_dust.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_dust.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_dust.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod_cast.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod_cast.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod_cast.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_fishing_rod_cast.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_helmet.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_helmet.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_helmet.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_helmet.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_hoe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_hoe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_hoe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_hoe.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_leggings.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_leggings.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_leggings.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_leggings.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_pickaxe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_pickaxe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_pickaxe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_pickaxe.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_shears.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_shears.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_shears.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_shears.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_shovel.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_shovel.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_shovel.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_shovel.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_sword.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_sword.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bedrock_sword.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bedrock_sword.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/black_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/black_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/black_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/black_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/block_flooder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/block_flooder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/block_flooder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/block_flooder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/block_flooder.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/block_flooder.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/block_flooder.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/block_flooder.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/blue_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/blue_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/blue_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/blue_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_decay_away.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_decay_away.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_decay_away.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_decay_away.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_fading.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_fading.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_fading.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_fading.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_failing.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_failing.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_failing.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_failing.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_ruin.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_ruin.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/bottle_of_ruin.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottle_of_ruin.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/void_bundle.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottomless_bundle.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/void_bundle.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/bottomless_bundle.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/brown_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/brown_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/brown_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/brown_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/citrine_powder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/citrine_powder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/citrine_powder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/citrine_powder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/citrine_shard.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/citrine_shard.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/citrine_shard.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/citrine_shard.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/clover.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/clover.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/clover.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/clover.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/placement_staff.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/constructors_staff.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/placement_staff.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/constructors_staff.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/corrupted_obsidian_dust.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/corrupted_obsidian_dust.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/corrupted_obsidian_dust.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/corrupted_obsidian_dust.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/crafting_tablet.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/crafting_tablet.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/crafting_tablet.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/crafting_tablet.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/cyan_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/cyan_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/cyan_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/cyan_pigment.png diff --git a/src/main/resources/assets/spectrum/textures/item/safer_dreamflayer_inventory.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/dreamflayer_activated.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/safer_dreamflayer_inventory.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/dreamflayer_activated.png diff --git a/src/main/resources/assets/spectrum/textures/item/safer_dreamflayer_hand.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/dreamflayer_activated_oversized.png old mode 100755 new mode 100644 similarity index 100% rename from src/main/resources/assets/spectrum/textures/item/safer_dreamflayer_hand.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/dreamflayer_activated_oversized.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/enchanter_structure_placer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/enchanter_structure_placer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/enchanter_structure_placer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/enchanter_structure_placer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_splice_bound.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/ender_splice_bound.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/ender_splice_bound.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/ender_splice_bound.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/ender_splice_unbound.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/ender_splice_unbound.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/ender_splice_unbound.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/ender_splice_unbound.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/exchange_staff.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/exchanging_staff.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/exchange_staff.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/exchanging_staff.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/four_leaf_clover.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/four_leaf_clover.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/four_leaf_clover.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/four_leaf_clover.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/fusion_shrine_structure_placer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/fusion_shrine_structure_placer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/fusion_shrine_structure_placer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/fusion_shrine_structure_placer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/germinated_jade_vine_seeds.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/germinated_jade_vine_seeds.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/germinated_jade_vine_seeds.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/germinated_jade_vine_seeds.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/glow_item_frame.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/glow_item_frame.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/glow_item_frame.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/glow_item_frame.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/invisible_glow_item_frame.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/glow_phantom_frame.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/invisible_glow_item_frame.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/glow_phantom_frame.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/glow_vision_helmet.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/glow_vision_goggles.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/glow_vision_helmet.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/glow_vision_goggles.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/gray_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/gray_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/gray_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/gray_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/green_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/green_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/green_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/green_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/manual.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/guidebook.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/manual.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/guidebook.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/hibernating_jade_vine_seeds.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/hibernating_jade_vine_seeds.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/hibernating_jade_vine_seeds.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/hibernating_jade_vine_seeds.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/jade_vine_petals.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/jade_vine_petals.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/jade_vine_petals.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/jade_vine_petals.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem0.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem0.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem0.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem0.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem1.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem1.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem1.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem1.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem10.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem10.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem10.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem10.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem2.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem2.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem2.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem2.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem3.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem3.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem3.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem3.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem4.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem4.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem4.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem4.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem5.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem5.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem5.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem5.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem6.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem6.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem6.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem6.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem7.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem7.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem7.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem7.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem8.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem8.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem8.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem8.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem9.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem9.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/knowledge_gem9.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/knowledge_gem9.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/light_blue_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/light_blue_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/light_blue_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/light_blue_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/light_gray_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/light_gray_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/light_gray_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/light_gray_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lime_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/lime_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/lime_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/lime_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/fortune_pickaxe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/lucky_pickaxe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/fortune_pickaxe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/lucky_pickaxe.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/magenta_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/magenta_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/magenta_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/magenta_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/mermaids_brush.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/mermaids_brush.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/mermaids_brush.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/mermaids_brush.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/mermaids_gem.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/mermaids_gem.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/mermaids_gem.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/mermaids_gem.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/midnight_aberration.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/midnight_aberration.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/midnight_aberration.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/midnight_aberration.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/midnight_chip.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/midnight_chip.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/midnight_chip.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/midnight_chip.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/moonstone_powder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/moonstone_powder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/moonstone_powder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/moonstone_powder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/moonstone_shard.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/moonstone_shard.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/moonstone_shard.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/moonstone_shard.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/multitool.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/multitool.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/multitool.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/multitool.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/natures_staff.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/natures_staff.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/natures_staff.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/natures_staff_use.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/natures_staff_use.png.mcmeta new file mode 100644 index 0000000000..b2e2153a40 --- /dev/null +++ b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/natures_staff_use.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 4 + } +} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/neolith.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/neolith.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/neolith.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/neolith.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/voiding_pickaxe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/oblivion_pickaxe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/voiding_pickaxe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/oblivion_pickaxe.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/onyx_powder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/onyx_powder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/onyx_powder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/onyx_powder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/onyx_shard.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/onyx_shard.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/onyx_shard.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/onyx_shard.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/orange_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/orange_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/orange_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/orange_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/paletur_fragments.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/paltaeria_fragments.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/paletur_fragments.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/paltaeria_fragments.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/paletur_gem.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/paltaeria_gem.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/paletur_gem.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/paltaeria_gem.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/pedestal_tier_1_structure_placer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pedestal_tier_1_structure_placer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/pedestal_tier_1_structure_placer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pedestal_tier_1_structure_placer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/pedestal_tier_2_structure_placer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pedestal_tier_2_structure_placer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/pedestal_tier_2_structure_placer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pedestal_tier_2_structure_placer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/pedestal_tier_3_structure_placer.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pedestal_tier_3_structure_placer.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/pedestal_tier_3_structure_placer.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pedestal_tier_3_structure_placer.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/end_portal_cracker.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/perturbed_eye.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/end_portal_cracker.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/perturbed_eye.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/end_portal_cracker.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/perturbed_eye.png.mcmeta similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/end_portal_cracker.png.mcmeta rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/perturbed_eye.png.mcmeta diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/invisible_item_frame.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/phantom_frame.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/invisible_item_frame.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/phantom_frame.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/pink_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pink_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/pink_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/pink_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/purple_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/purple_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/purple_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/purple_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/quitoxic_powder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/quitoxic_powder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/quitoxic_powder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/quitoxic_powder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/quitoxic_reeds.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/quitoxic_reeds.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/quitoxic_reeds.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/quitoxic_reeds.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/radiance_staff.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/radiance_staff.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff_use.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/radiance_staff_use.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/light_staff_use.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/radiance_staff_use.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/raw_azurite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/raw_azurite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/raw_azurite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/raw_azurite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/looting_falchion.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/razor_falchion.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/looting_falchion.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/razor_falchion.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/red_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/red_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/red_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/red_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/refined_azurite.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/refined_azurite.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/refined_azurite.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/refined_azurite.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/resonant_pickaxe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/resonant_pickaxe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/resonant_pickaxe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/resonant_pickaxe.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta new file mode 100644 index 0000000000..2c17227333 --- /dev/null +++ b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/shimmerstone_gem.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": true, + "frametime": 8 + } +} \ No newline at end of file diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/spectral_shard.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/spectral_shard.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/spectral_shard.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/spectral_shard.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/shooting_star.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/star_fragment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/shooting_star.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/star_fragment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/lightning_stone.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/storm_stone.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/lightning_stone.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/storm_stone.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/storm_stone.png.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/storm_stone.png.mcmeta new file mode 100644 index 0000000000..5740406c5d --- /dev/null +++ b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/storm_stone.png.mcmeta @@ -0,0 +1,16 @@ +{ + "animation": { + "interpolate": true, + "frametime": 4, + "frames": [ + {"index": 0,"time": 40}, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + } +} diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/scarlet_fragments.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/stratine_fragments.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/scarlet_fragments.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/stratine_fragments.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/scarlet_gem.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/stratine_gem.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/scarlet_gem.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/stratine_gem.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/silker_pickaxe.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/tender_pickaxe.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/silker_pickaxe.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/tender_pickaxe.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/topaz_powder.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/topaz_powder.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/topaz_powder.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/topaz_powder.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/topaz_shard.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/topaz_shard.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/topaz_shard.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/topaz_shard.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/vegetal.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/vegetal.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/vegetal.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/vegetal.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/white_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/white_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/white_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/white_pigment.png diff --git a/src/main/resources/programmer_art/assets/spectrum/textures/item/yellow_pigment.png b/src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/yellow_pigment.png similarity index 100% rename from src/main/resources/programmer_art/assets/spectrum/textures/item/yellow_pigment.png rename to src/main/resources/resourcepacks/spectrum_programmer_art/assets/spectrum/textures/item/yellow_pigment.png diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/pack.mcmeta b/src/main/resources/resourcepacks/spectrum_programmer_art/pack.mcmeta new file mode 100644 index 0000000000..ef4850cda1 --- /dev/null +++ b/src/main/resources/resourcepacks/spectrum_programmer_art/pack.mcmeta @@ -0,0 +1,8 @@ +{ + "pack": { + "pack_format": 9, + "description": { + "text": "Horrors beyond comprehension" + } + } +} \ No newline at end of file diff --git a/src/main/resources/resourcepacks/spectrum_programmer_art/pack.png b/src/main/resources/resourcepacks/spectrum_programmer_art/pack.png new file mode 100644 index 0000000000..92c655171f Binary files /dev/null and b/src/main/resources/resourcepacks/spectrum_programmer_art/pack.png differ diff --git a/src/main/resources/spectrum.accesswidener b/src/main/resources/spectrum.accesswidener index 70172285e5..90714155ca 100644 --- a/src/main/resources/spectrum.accesswidener +++ b/src/main/resources/spectrum.accesswidener @@ -2,6 +2,7 @@ accessWidener v1 named accessible class net/minecraft/client/render/RenderLayer$MultiPhase accessible class net/minecraft/client/render/RenderLayer$MultiPhaseParameters +accessible class net/minecraft/client/render/model/json/ModelOverrideList$BakedOverride accessible class net/minecraft/loot/function/ApplyBonusLootFunction$Formula accessible method net/minecraft/client/particle/BlockLeakParticle$Dripping (Lnet/minecraft/client/world/ClientWorld;DDDLnet/minecraft/fluid/Fluid;Lnet/minecraft/particle/ParticleEffect;)V @@ -11,3 +12,6 @@ accessible method net/minecraft/client/particle/BlockLeakParticle$Landing extendable method net/minecraft/entity/projectile/ProjectileEntity (Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;)V accessible method net/minecraft/entity/projectile/FishingBobberEntity (Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;II)V accessible method net/minecraft/advancement/criterion/AbstractCriterion trigger (Lnet/minecraft/server/network/ServerPlayerEntity;Ljava/util/function/Predicate;)V + +accessible method net/minecraft/util/registry/Registry create (Lnet/minecraft/util/registry/RegistryKey;Lnet/minecraft/util/registry/Registry$DefaultEntryGetter;)Lnet/minecraft/util/registry/Registry; +accessible class net/minecraft/util/registry/Registry$DefaultEntryGetter \ No newline at end of file diff --git a/src/main/resources/spectrum.mixins.json b/src/main/resources/spectrum.mixins.json index e25b661744..efaa1bd5a9 100644 --- a/src/main/resources/spectrum.mixins.json +++ b/src/main/resources/spectrum.mixins.json @@ -2,8 +2,9 @@ "required": true, "package": "de.dafuqs.spectrum.mixin", "compatibilityLevel": "JAVA_17", - "plugin": "de.dafuqs.spectrum.mixin.Plugin", + "plugin": "de.dafuqs.spectrum.mixin.compat.Plugin", "mixins": [ + "AbstractHorseEntityMixin", "AnvilBlockMixin", "ApplyBonusLootFunctionMixin", "BlockMixin", @@ -17,12 +18,12 @@ "EntityApplyFluidsMixin", "EntityMixin", "EntityTypeMixin", + "ExplosionMixin", "FarmlandBlockMixin", "FirstStrikeEnchantmentMixin", "FishingHookPredicateMixin", "GeodesGenerateWithGemstoneOresMixin", "GlassBottleItemMixin", - "HorseBaseEntityMixin", "InfestedBlockMixin", "ItemEntityMixin", "ItemFrameEntityMixin", @@ -31,7 +32,10 @@ "KilledByPlayerLootConditionMixin", "LightningEntityMixin", "LivingEntityMixin", + "LoomContainerPatternSlotMixin", + "LoomScreenHandlerMixin", "MiningToolItemMixin", + "MixinAbstractFireBlock", "MobSpawnerBlockEntityMixin", "PiglinBrainMixin", "PlayerEntityMixin", @@ -42,8 +46,10 @@ "RandomChanceWithLootingLootConditionMixin", "RedstoneOreMixin", "ServerPlayerEntityMixin", + "ServerPlayerGameModeFabricMixin", "ServerPlayerInteractionManagerMixin", "ServerWorldMixin", + "ShearsDispenserBehaviorMixin", "WitherEntityMixin", "accessors.FluidBlockAccessor", "accessors.FoxEntityAccessor", @@ -54,26 +60,39 @@ "accessors.ShapedRecipeAccessor", "accessors.ShulkerEntityAccessor", "accessors.SlimeEntityAccessor", - "accessors.StructureFeatureAccessor" + "accessors.TridentEntityAccessor" ], "client": [ + "MixinParticleManager", + "MixinRenderLayers", + "accessors.DimensionEffectsAccessor", + "accessors.InGameHudAccessor", + "accessors.WorldRendererAccessor", + "client.BipedEntityModelMixin", "client.BlockOverlayRendererMixin", "client.BuiltinModelItemRendererMixin", "client.CapeFeatureRendererMixin", - "client.ClientWorldReverbMixin", + "client.ClientPlayNetworkHandlerMixin", "client.DeathScreenMixin", "client.DimensionTypeMixin", "client.ElytraFeatureRendererMixin", + "client.GameRendererMixin", "client.HeadFeatureRendererMixin", - "client.InGameHudMixin", "client.ItemFrameEntityRendererMixin", "client.ItemRendererMixin", + "client.LightmapTextureManagerMixin", "client.MinecraftClientMixin", "client.PotionItemClientMixin", + "client.TranslationStorageMixin", "client.TransparentBlockMixin", "client.WorldRendererMixin", + "client.accessors.BakedOverrideAccessor", "client.accessors.BossBarHudAccessor", - "client.accessors.RenderLayerAccessor" + "client.accessors.ModelOverrideListAccessor", + "client.accessors.RenderLayerAccessor", + "compat.healthoverlay.absent.InGameHudMixin", + "compat.healthoverlay.present.HeartMixin", + "compat.healthoverlay.present.InGameHudMixin" ], "injectors": { "defaultRequire": 1